You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: electrostatic-sandbox-framework/electrostatic-core/src/include/electrostatic/electronetsoft/algorithm/arithmos/vectorspaces/vector3d/vector3d.h
+41Lines changed: 41 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -58,7 +58,28 @@ struct vec3d_polar {
58
58
vec_componenttheta; // angle with +ve direction of xy plane
59
59
};
60
60
61
+
/**
62
+
* @brief Defines the encodings for a set of three gimbal axes.
63
+
* @note Those encodings are constant numbers; the don't swap orientation
64
+
* with one another.
65
+
*/
66
+
typedefenum {
67
+
GIMBAL_X= (INT16_MAX >> 8) ^ INT16_MAX,
68
+
GIMBAL_Y=GIMBAL_X-1,
69
+
GIMBAL_Z=GIMBAL_Y-1
70
+
} vector_gimbal;
71
+
61
72
structvec3d_processors {
73
+
/**
74
+
* @brief A function pointer to be called on a gimbal lock trap. A gimbal trap is a
75
+
* software trap that is executed when a potential angle that could produce gimbal
76
+
* lock is being floating-point approached or reached.
77
+
* @param rotated the rotated vector in the R(3) vectorspace.
78
+
* @param gimbal the gimbal around which the rotational motion is being executed.
79
+
* @param angle the last angle that triggered this gimbal trap
Copy file name to clipboardExpand all lines: electrostatic-sandbox-framework/electrostatic-core/src/libs/electrostatic-primer/electronetsoft/algorithm/arithmos/vector3d/vec3d_rotate.c
0 commit comments