Exemplo n.º 1
0
        static internal NullablePose GetNodePoseData(XR.XRNode currentNode)
        {
            NullablePose resultPose = new NullablePose();

            XR.InputTracking.GetNodeStates(nodeStates);
            foreach (var nodeState in nodeStates)
            {
                if (nodeState.nodeType == currentNode)
                {
                    var pose            = Pose.identity;
                    var positionSuccess = nodeState.TryGetPosition(out pose.position);
                    var rotationSuccess = nodeState.TryGetRotation(out pose.rotation);

                    if (positionSuccess)
                    {
                        resultPose.position = pose.position;
                    }
                    if (rotationSuccess)
                    {
                        resultPose.rotation = pose.rotation;
                    }

                    return(resultPose);
                }
            }
            return(resultPose);
        }
Exemplo n.º 2
0
 static internal bool TryGetNodePoseData(XR.XRNode node, out Pose resultPose)
 {
     XR.InputTracking.GetNodeStates(nodeStates);
     foreach (XR.XRNodeState nodeState in nodeStates)
     {
         if (nodeState.nodeType == node)
         {
             bool result = nodeState.TryGetPosition(out resultPose.position);
             result |= nodeState.TryGetRotation(out resultPose.rotation);
             return(result);
         }
     }
     resultPose = Pose.identity;
     return(false);
 }
Exemplo n.º 3
0
        static internal PoseDataFlags GetNodePoseData(XR.XRNode node, out Pose resultPose)
        {
            PoseDataFlags retData = PoseDataFlags.NoData;

            XR.InputTracking.GetNodeStates(nodeStates);
            foreach (XR.XRNodeState nodeState in nodeStates)
            {
                if (nodeState.nodeType == node)
                {
                    if (nodeState.TryGetPosition(out resultPose.position))
                    {
                        retData |= PoseDataFlags.Position;
                    }
                    if (nodeState.TryGetRotation(out resultPose.rotation))
                    {
                        retData |= PoseDataFlags.Rotation;
                    }
                    return(retData);
                }
            }
            resultPose = Pose.identity;
            return(retData);
        }