public AccelerationVector GetAccelerationVector() { HTCGSensorData data = GetRawSensorData(); double htcScaleFactor = 1.0 / 1000.0 * 9.8; // Depending on our orientation, this needs to behave differently int orientation = Convert.ToInt32(Microsoft.WindowsMobile.Status.SystemState.GetValue(Microsoft.WindowsMobile.Status.SystemProperty.DisplayRotation)); switch (orientation) { case 90: { return(new AccelerationVector(-data.TiltY, data.TiltX, data.TiltZ, htcScaleFactor)); } case 180: { return(new AccelerationVector(-data.TiltX, -data.TiltY, data.TiltZ, htcScaleFactor)); } case 270: { return(new AccelerationVector(data.TiltY, -data.TiltX, data.TiltZ, htcScaleFactor)); } default: { return(new AccelerationVector(data.TiltX, data.TiltY, data.TiltZ, htcScaleFactor)); } } }
private static extern IntPtr HTCSensorGetDataOutput(IntPtr handle, out HTCGSensorData sensorData);
private extern static IntPtr HTCSensorGetDataOutput(IntPtr handle, out HTCGSensorData sensorData);