@class CMMotionManager; @interface FigCoreMotionDelegate : NSObject { struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } ringMutex; CMMotionManager *motionManager; BOOL manageFusedMotion; BOOL manageAccel; BOOL manageGravity; int accelRingIndex; float accelRingX[256]; float accelRingY[256]; float accelRingZ[256]; double accelRingTime[256]; int fusedRingIndex; double fusedRingTime[256]; BOOL fusedRingDoingBiasEstimation[256]; struct { float x; float y; float z; } fusedRingAccel[256]; struct { double w; double x; double y; double z; } fusedRingQuaternion[256]; struct { float x; float y; float z; } fusedRingPosition[256]; struct OpaqueFigSemaphore { } *dataSemaphore; double latestMotionDataTime; double latestGravityDataTime; BOOL copyingAllData; double dLatestFusedMotionCopied; double dLatestTimestamp; double dGyroUpdateInterval; double dStartOfLogging; struct { double w; double x; double y; double z; } previousQuaternion; struct { double w; double x; double y; double z; } currentQuaternion; BOOL computingPosition; struct { double timestamp; float x; float y; float z; } position; struct { double timestamp; float x; float y; float z; } velocity; } - (int)getVectorX:(float *)a0 y:(float *)a1 z:(float *)a2 forTimeStamp:(double)a3; - (id)init; - (void)getPositionX:(float *)a0 y:(float *)a1 z:(float *)a2 forTimeStamp:(double)a3; - (void)getCurrentDeltaQuaternion:(struct { double x0; double x1; double x2; double x3; } *)a0; - (void)dealloc; - (int)getLatestMotionDataTime:(double *)a0; - (void)getCurrentAttitudeRoll:(double *)a0 pitch:(double *)a1 yaw:(double *)a2; - (BOOL)managingGravity; - (void)didUpdateAcceleration:(struct { float x0; float x1; float x2; })a0 time:(double)a1; - (void)didUpdateVelocityWithAcceleration:(struct { float x0; float x1; float x2; } *)a0 forTimeStamp:(double)a1; - (void)didUpdateGravity:(struct { float x0; float x1; float x2; })a0 time:(double)a1; - (int)updateCurrentQuaternionForTimeStamp:(double)a0; - (BOOL)isCopyingAllData; - (void)getCurrentDeltaAttitudeRoll:(double *)a0 pitch:(double *)a1 yaw:(double *)a2; - (void)getCurrentQuaternion:(struct { double x0; double x1; double x2; double x3; } *)a0; - (void)didUpdatePositionWithAcceleration:(struct { float x0; float x1; float x2; } *)a0 forTimeStamp:(double)a1; - (void)updateGyroInterval:(float)a0; - (BOOL)managingAccel; - (void)didUpdateFusedMotionWithDeviceMotion:(struct { struct { double x0; double x1; double x2; double x3; } x0; struct { float x0; float x1; float x2; } x1; struct { float x0; float x1; float x2; } x2; struct { float x0; float x1; float x2; } x3; int x4; BOOL x5; BOOL x6; BOOL x7; float x8; BOOL x9; BOOL x10; int x11; })a0 time:(double)a1 ifsync:(BOOL)a2; - (id)copyAllFusedMotionData; - (id)copyFusedMotionData:(double)a0 endTime:(double)a1 timeoutValue:(double)a2 errOut:(int *)a3; - (id)initWithAccelerometer:(BOOL)a0 gravityZ:(BOOL)a1 fusedMotion:(BOOL)a2 accelUpdateInterval:(float)a3 fusedMotionUpdateInterval:(float)a4 motionCallbackThreadPriority:(id)a5; - (id)copyNewFusedMotionData; - (void)didUpdatePositionWithTimeStamp:(double)a0; - (int)getFusedVectorX:(float *)a0 y:(float *)a1 z:(float *)a2 forTimeStamp:(double)a3; - (BOOL)managingFusedMotion; - (void)updateDeviceCallback:(BOOL)a0 fusedMotionUpdateInterval:(float)a1; - (int)getGravityX:(float *)a0 y:(float *)a1 z:(float *)a2 forTimeStamp:(double)a3; - (int)updateCurrentQuaternionForTimeStamps:(double)a0 withEnd:(double)a1; @end