Beispiel #1
0
        /// <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));
        }
Beispiel #2
0
        /// <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));
        }