diff options
Diffstat (limited to 'source/blender/windowmanager/WM_types.h')
-rw-r--r-- | source/blender/windowmanager/WM_types.h | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 49bd3ede37d..cc3ae3ab753 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -377,6 +377,32 @@ typedef struct wmTabletData { float Ytilt; /* as above */ } wmTabletData; +typedef enum { // motion progress, for modal handlers + P_NOT_STARTED, + P_STARTING, // <-- + P_IN_PROGRESS, // <-- only these are sent for NDOF motion + P_FINISHING, // <-- + P_FINISHED + } wmProgress; + +typedef struct wmNDOFMotionData { + /* awfully similar to GHOST_TEventNDOFMotionData... */ + // Each component normally ranges from -1 to +1, but can exceed that. + // These use blender standard view coordinates, with positive rotations being CCW about the axis. + union { + float tvec[3]; // translation + struct { float tx, ty, tz; }; + }; + union { + float rvec[3]; // rotation: + struct { float rx, ry, rz; }; + }; + // axis = (rx,ry,rz).normalized + // amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg] + float dt; // time since previous NDOF Motion event + wmProgress progress; // is this the first event, the last, or one of many in between? +} wmNDOFMotionData; + typedef struct wmTimer { struct wmTimer *next, *prev; @@ -397,8 +423,6 @@ typedef struct wmTimer { typedef struct wmOperatorType { - struct wmOperatorType *next, *prev; - const char *name; /* text for ui, undo */ const char *idname; /* unique identifier */ const char *description; /* tooltips and python docs */ |