blob: 8ca716b5348241f8a0906c7280d83ca6e179fe90 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include <survive.h>
#include <survive_imu.h>
#include <stdio.h>
#include <stdlib.h>
int PoserIMU(SurviveObject *so, PoserData *pd) {
PoserType pt = pd->pt;
SurviveContext *ctx = so->ctx;
SurviveIMUTracker *dd = so->PoserData;
if (!dd) {
so->PoserData = dd = malloc(sizeof(SurviveIMUTracker));
*dd = (SurviveIMUTracker){};
}
switch (pt) {
case POSERDATA_IMU: {
PoserDataIMU *imu = (PoserDataIMU *)pd;
survive_imu_tracker_integrate(so, dd, imu);
PoserData_poser_raw_pose_func(pd, so, -1, &dd->pose);
return 0;
}
}
return -1;
}
REGISTER_LINKTIME(PoserIMU);
|