diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:30:19 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:30:19 +0000 |
commit | 5c1676dfe6d2f3c837a5e074117b45613fd29a72 (patch) | |
tree | cbffb45144febf451e54061db2b21395faf94bfe /plug-ins/map-object/arcball.h | |
parent | Initial commit. (diff) | |
download | gimp-5c1676dfe6d2f3c837a5e074117b45613fd29a72.tar.xz gimp-5c1676dfe6d2f3c837a5e074117b45613fd29a72.zip |
Adding upstream version 2.10.34.upstream/2.10.34upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'plug-ins/map-object/arcball.h')
-rw-r--r-- | plug-ins/map-object/arcball.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/plug-ins/map-object/arcball.h b/plug-ins/map-object/arcball.h new file mode 100644 index 0000000..f0b56ce --- /dev/null +++ b/plug-ins/map-object/arcball.h @@ -0,0 +1,50 @@ +#ifndef __ARCBALL_H__ +#define __ARCBALL_H__ + +typedef struct +{ + double x, y, z, w; +} Quat; + +enum QuatPart +{ + X, + Y, + Z, + W, + QuatLen +}; + +typedef Quat HVect; + +typedef double HMatrix[QuatLen][QuatLen]; + +typedef enum AxisSet +{ + NoAxes, + CameraAxes, + BodyAxes, + OtherAxes, + NSets +} AxisSet; + +typedef double *ConstraintSet; + +extern Quat qOne; + +void ArcBall_Init (void); +void ArcBall_Place (HVect Center, + double Radius); +void ArcBall_UseSet (AxisSet axis_Set); +void ArcBall_Update (void); +void ArcBall_Value (HMatrix m_Now); +void ArcBall_Values (double *alpha, + double *beta, + double *gamma); +void ArcBall_BeginDrag (void); +void ArcBall_EndDrag (void); +void ArcBall_Mouse (HVect v_Now); +void ArcBall_CopyMat (HMatrix inm, + HMatrix outm); + +#endif /* __ARCBALL_H__ */ |