Ball.h 754 B

123456789101112131415161718192021222324252627282930
  1. /***** Ball.h *****/
  2. #ifndef _H_Ball
  3. #define _H_Ball
  4. #include "BallAux.h"
  5. typedef enum AxisSet
  6. { NoAxes, CameraAxes, BodyAxes, OtherAxes, NSets } AxisSet;
  7. typedef float *ConstraintSet;
  8. typedef struct
  9. {
  10. HVect center;
  11. double radius;
  12. Quat qNow, qDown, qDrag;
  13. HVect vNow, vDown, vFrom, vTo, vrFrom, vrTo;
  14. HMatrix mNow, mDown;
  15. int dragging;
  16. } BallData;
  17. /* Public routines */
  18. void Ball_Init(BallData * ball);
  19. void Ball_Place(BallData * ball, HVect center, double radius);
  20. void Ball_Mouse(BallData * ball, HVect vNow);
  21. void Ball_Update(BallData * ball);
  22. void Ball_Value(BallData * ball, HMatrix mNow);
  23. void Ball_BeginDrag(BallData * ball);
  24. void Ball_EndDrag(BallData * ball);
  25. void Ball_SetMatrix(BallData * ball, HMatrix mat);
  26. #endif