aboutsummaryrefslogtreecommitdiff
path: root/include/libsurvive/poser.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libsurvive/poser.h')
-rw-r--r--include/libsurvive/poser.h26
1 files changed, 14 insertions, 12 deletions
diff --git a/include/libsurvive/poser.h b/include/libsurvive/poser.h
index 4894acf..98c926e 100644
--- a/include/libsurvive/poser.h
+++ b/include/libsurvive/poser.h
@@ -9,24 +9,26 @@ typedef enum PoserType_t
POSERDATA_IMU,
POSERDATA_LIGHT, //Single lighting event.
POSERDATA_FULL_SCENE, //Full, statified X, Y sweep data for both lighthouses.
+ POSERDATA_DISASSOCIATE, //If you get this, it doesn't contain data. It just tells you to please disassociate from the current SurviveObject and delete your poserdata.
} PoserType;
-struct PoserData
+typedef struct
{
PoserType pt;
uint8_t data[0];
-};
+} PoserData;
-struct PoserDataIMU
+typedef struct
{
PoserType pt;
uint8_t datamask; //0 = accel present, 1 = gyro present, 2 = mag present.
FLT accel[3];
FLT gyro[3];
FLT mag[3];
-};
+ uint32_t timecode; //In object-local ticks.
+} PoserDataIMU;
-struct PoserDataLight
+typedef struct
{
PoserType pt;
int sensor_id;
@@ -34,21 +36,21 @@ struct PoserDataLight
uint32_t timecode; //In object-local ticks.
FLT length; //In seconds
FLT angle; //In radians from center of lighthouse.
-};
+} PoserDataLight;
-struct PoserDataFullScene
+typedef struct
{
PoserType pt;
//If "lengths[...]" < 0, means not a valid piece of sweep information.
FLT lengths[SENSORS_PER_OBJECT][NUM_LIGHTHOUSES][2];
- FLT angles [SENSORS_PER_OBJECT][NUM_LIGHTHOUSES][2]; //2 Axes
+ FLT angles [SENSORS_PER_OBJECT][NUM_LIGHTHOUSES][2]; //2 Axes (Angles in LH space)
- struct PoserDataIMU lastimu;
-};
+ PoserDataIMU lastimu;
+} PoserDataFullScene;
-//When you register your posers using the internal system,
-typedef int (*PoserCB)( struct SurviveObject * so, struct PoserData * pd );
+//When you write your posers, use the following definition, and register with REGISTER_LINKTIME.
+typedef int (*PoserCB)( SurviveObject * so, PoserData * pd );
#endif