/// <summary> /// Get the controller predict position data. /// </summary> /// <param name="hand">0,1</param> /// <param name="predictTime">ms</param> public static Vector3 GetControllerPredictPosition(Controller controller, double predictTime) { PxrControllerTracking pxrControllerTracking = new PxrControllerTracking(); float[] headData = new float[7] { 0, 0, 0, 0, 0, 0, 0 }; PXR_Plugin.Controller.UPxr_GetControllerTrackingState((uint)controller, predictTime, headData, ref pxrControllerTracking); return(new Vector3( pxrControllerTracking.localControllerPose.pose.position.x, pxrControllerTracking.localControllerPose.pose.position.y, pxrControllerTracking.localControllerPose.pose.position.z)); }
/// <summary> /// Get the controller predict rotation data. /// </summary> /// <param name="hand">0,1</param> /// <param name="predictTime">ms</param> public static Quaternion GetControllerPredictRotation(Controller controller, double predictTime) { PxrControllerTracking pxrControllerTracking = new PxrControllerTracking(); float[] headData = new float[7] { 0, 0, 0, 0, 0, 0, 0 }; PXR_Plugin.Controller.UPxr_GetControllerTrackingState((uint)controller, predictTime, headData, ref pxrControllerTracking); return(new Quaternion( pxrControllerTracking.localControllerPose.pose.orientation.x, pxrControllerTracking.localControllerPose.pose.orientation.y, pxrControllerTracking.localControllerPose.pose.orientation.z, pxrControllerTracking.localControllerPose.pose.orientation.w)); }