summaryrefslogtreecommitdiffstats
path: root/plug-ins/map-object/arcball.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 03:13:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 03:13:10 +0000
commit3c57dd931145d43f2b0aef96c4d178135956bf91 (patch)
tree3de698981e9f0cc2c4f9569b19a5f3595e741f6b /plug-ins/map-object/arcball.h
parentInitial commit. (diff)
downloadgimp-3c57dd931145d43f2b0aef96c4d178135956bf91.tar.xz
gimp-3c57dd931145d43f2b0aef96c4d178135956bf91.zip
Adding upstream version 2.10.36.upstream/2.10.36
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.h50
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__ */