home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2002 April / pcpro0402.iso / essentials / graphics / Gimp / gimp-src-20001226.exe / src / gimp / plug-ins / MapObject / arcball.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-02-23  |  874 b   |  51 lines

  1. #ifndef __ARCBALL_H__
  2. #define __ARCBALL_H__
  3.  
  4. typedef struct
  5. {
  6.   double x, y, z, w;
  7. } Quat;
  8.  
  9. enum QuatPart
  10. {
  11.   X,
  12.   Y,
  13.   Z,
  14.   W,
  15.   QuatLen
  16. };
  17.  
  18. typedef Quat HVect;
  19.  
  20. typedef double HMatrix[QuatLen][QuatLen];
  21.  
  22. typedef enum AxisSet
  23. {
  24.   NoAxes,
  25.   CameraAxes,
  26.   BodyAxes,
  27.   OtherAxes,
  28.   NSets
  29. } AxisSet;
  30.  
  31. typedef double *ConstraintSet;
  32.  
  33. extern Quat qOne;
  34.  
  35. void ArcBall_Init      (void);
  36. void ArcBall_Place     (HVect    Center,
  37.             double   Radius);
  38. void ArcBall_UseSet    (AxisSet  axis_Set);
  39. void ArcBall_Update    (void);
  40. void ArcBall_Value     (HMatrix  m_Now);
  41. void ArcBall_Values    (double  *alpha,
  42.             double  *beta,
  43.             double  *gamma);
  44. void ArcBall_BeginDrag (void);
  45. void ArcBall_EndDrag   (void);
  46. void ArcBall_Mouse     (HVect    v_Now);
  47. void ArcBall_CopyMat   (HMatrix  inm,
  48.             HMatrix  outm);
  49.  
  50. #endif /* __ARCBALL_H__ */
  51.