diff options
author | Justin Berger <j.david.berger@gmail.com> | 2018-03-21 11:20:34 -0600 |
---|---|---|
committer | Justin Berger <j.david.berger@gmail.com> | 2018-03-22 12:26:55 -0600 |
commit | f60bed509a7e416c155bcd35d5151bca65eaa190 (patch) | |
tree | 9a093a142ee26a0c1dd4f3c0b286f0af7b412ed5 /src/poser_imu.c | |
parent | fc83b40221ccd935b85bb95a4e9cbe80516b259f (diff) | |
download | libsurvive-f60bed509a7e416c155bcd35d5151bca65eaa190.tar.gz libsurvive-f60bed509a7e416c155bcd35d5151bca65eaa190.tar.bz2 |
IMU research
Diffstat (limited to 'src/poser_imu.c')
-rw-r--r-- | src/poser_imu.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/poser_imu.c b/src/poser_imu.c new file mode 100644 index 0000000..8ca716b --- /dev/null +++ b/src/poser_imu.c @@ -0,0 +1,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); |