Esempio n. 1
0
 public Transform GetIKTargetTransform(IK_TARGET target)
 {
     if (ikTargets.ContainsKey(target))
     {
         return(ikTargets[target].transform);
     }
     else
     {
         return(null);
     }
 }
Esempio n. 2
0
 public Transform GetEmulatedIKTargetTransform(IK_TARGET bodyPart)
 {
     if (emulatedIKTargets.ContainsKey(bodyPart))
     {
         return(emulatedIKTargets[bodyPart].transform);
     }
     else
     {
         return(null);
     }
 }
Esempio n. 3
0
 public Transform GetTrackingTargetTransform(IK_TARGET target)
 {
     if (trackingTargets.ContainsKey(target))
     {
         return(trackingTargets[target]);
     }
     else
     {
         return(null);
     }
 }
Esempio n. 4
0
    public Quaternion GetIkTargetRotation(IK_TARGET ikTarget)
    {
        Transform ikTargetTransform = null;

        if (useAnimation)
        {
            ikTargetTransform = animationManager.GetEmulatedIKTargetTransform(ikTarget);
        }
        else
        {
            ikTargetTransform = vrTrackingManager.GetIKTargetTransform(ikTarget);
        }

        return(ikTargetTransform.rotation);
    }
Esempio n. 5
0
    public Vector3 GetIkTargetPosition(IK_TARGET ikTarget)
    {
        Transform ikTargetTransform = null;

        if (useAnimation)
        {
            ikTargetTransform = animationManager.GetEmulatedIKTargetTransform(ikTarget);
        }
        else
        {
            ikTargetTransform = vrTrackingManager.GetIKTargetTransform(ikTarget);
        }

        return(ikTargetTransform.position + manualPositionOffset);
    }
Esempio n. 6
0
    public SteamVR_TrackedObject GetTrackedObject(IK_TARGET target)
    {
        if (this.debugUseMockIKTargets)
        {
            return(null);
        }

        if (trackingTargets.ContainsKey(target))
        {
            return(trackingTargets[target].GetComponent <SteamVR_TrackedObject>());
        }
        else
        {
            return(null);
        }
    }
Esempio n. 7
0
    public static GameObject GenerateIKTarget(
        string name,
        Transform parent,
        IK_TARGET part,
        Vector3 localPos    = new Vector3(),
        Quaternion localRot = new Quaternion())
    {
        GameObject ikTarget = new GameObject(name);

        ikTarget.transform.parent        = parent;
        ikTarget.transform.localRotation = localRot;
        ikTarget.transform.localPosition = localPos;
        //AddIndicator(ikTarget.transform);

        return(ikTarget);
    }
Esempio n. 8
0
    async void InitIKTopics()
    {
        foreach (IK_TARGET ikTarget in Enum.GetValues(typeof(IK_TARGET)))
        {
            GameObject ikTargetObject = new GameObject("IK-Target PoseEstimator " + ikTarget.ToString());
            mapIKTargetTransforms.Add(ikTarget, ikTargetObject.transform);
            mapIKTarget2UbiiPose.Add(ikTarget, new UbiiPose3D
            {
                position = new Vector3(),
                rotation = new Quaternion()
            });
        }

        tokenIkTargetPose = await ubiiNode.SubscribeTopic(ubiiComponentIkTargets.GetTopicIKTargets(), (Ubii.TopicData.TopicDataRecord record) =>
        {
            for (int i = 0; i < record.Object3DList.Elements.Count; i++)
            {
                string ikTargetString            = record.Object3DList.Elements[i].Id;
                Ubii.DataStructure.Pose3D pose3D = record.Object3DList.Elements[i].Pose;
                IK_TARGET ikTarget;
                if (IK_TARGET.TryParse(ikTargetString, out ikTarget))
                {
                    UbiiPose3D pose = mapIKTarget2UbiiPose[ikTarget];
                    pose.position.Set(
                        (float)pose3D.Position.X,
                        (float)pose3D.Position.Y,
                        (float)pose3D.Position.Z);
                    pose.rotation.Set(
                        (float)pose3D.Quaternion.X,
                        (float)pose3D.Quaternion.Y,
                        (float)pose3D.Quaternion.Z,
                        (float)pose3D.Quaternion.W);
                    mapIKTarget2UbiiPose[ikTarget] = pose;
                }
            }
        });

        initialized = true;
    }
Esempio n. 9
0
 public static string GetIKTargetBodyPartString(IK_TARGET ikTarget)
 {
     return(ikTarget.ToString().ToLower());
 }