public static Phalange GetPhalange(GameObject parent, FingerIndex index, int pos, device_type_t DeviceType) { Phalange phalange = parent.AddComponent <Phalange>(); phalange.PhalangeData = new PhalangeData(index, pos, DeviceType); return(phalange); }
protected virtual Finger CreateFinger(FingerIndex finger) { return(HandFactory.GetFinger(_fingerTransforms[(int)finger][1].gameObject, finger, HandType, this, DeviceType, _fingerTransforms[(int)finger][1].gameObject, _fingerTransforms[(int)finger][2].gameObject, _fingerTransforms[(int)finger][3].gameObject)); }
public static Finger GetFinger(GameObject parent, FingerIndex index, HandType handType, Hand hand, device_type_t deviceType, GameObject phalange0, GameObject phalange1, GameObject phalange2) { Finger finger; switch (handType) { case HandType.Normal: finger = parent.AddComponent <RegularFinger>(); break; case HandType.Physics: finger = parent.AddComponent <PhysicsFinger>(); break; default: finger = parent.AddComponent <RegularFinger>(); break; } finger.Index = index; finger.HandType = handType; finger.DeviceType = deviceType; finger.PhalangesGameObjects[1] = phalange0; finger.PhalangesGameObjects[2] = phalange1; finger.PhalangesGameObjects[3] = phalange2; finger.Hand = hand; return(finger); }
protected override Finger CreateFinger(FingerIndex finger) { Finger f = base.CreateFinger(finger); PhysicsFinger physicsFinger = f as PhysicsFinger; physicsFinger.PhysicsFingerSettings = PhysicsFingerSettings; return(f); }
/// <summary> /// Get the rotation of the given finger /// </summary> /// <param name="fingerIndex"></param> /// <param name="deviceType"></param> /// <param name="pose"></param> /// <returns></returns> public Quaternion GetFingerRotation(FingerIndex fingerIndex, device_type_t deviceType, int pose) { ApolloJointData hand = GetJointData(deviceType); if (!hand.IsValid) { return(Quaternion.identity); } Quaternion fingerRotation = hand.fingers[(int)fingerIndex].joints[pose].rotation; return(fingerRotation); }
public Transform GetFingerTransform(device_type_t deviceType, FingerIndex finger, PhalangeType phalange) { switch (phalange) { case PhalangeType.Proximal: return(GetHand(deviceType).GetFingerRig(finger).Proximal); case PhalangeType.Intermedial: return(GetHand(deviceType).GetFingerRig(finger).Intermedial); case PhalangeType.Distal: return(GetHand(deviceType).GetFingerRig(finger).Distal); default: throw new ArgumentOutOfRangeException("phalange", phalange, null); } }
/// <summary> /// Get the rotation of the given finger /// </summary> /// <param name="fingerIndex"></param> /// <param name="deviceType"></param> /// <param name="pose"></param> /// <returns></returns> public Quaternion GetFingerRotation(FingerIndex fingerIndex, device_type_t deviceType, int pose) { manus_hand_t hand; if (deviceType == device_type_t.GLOVE_LEFT) { hand = _leftHand; } else { hand = _rightHand; } Quaternion fingerRotation = hand.fingers[(int)fingerIndex].joints[pose].rotation; if (fingerRotation == null) { return(Quaternion.identity); } return(fingerRotation); }
public FingerRig GetFingerRig(FingerIndex finger) { switch (finger) { case FingerIndex.thumb: return(Thumb); case FingerIndex.index: return(Index); case FingerIndex.middle: return(Middle); case FingerIndex.ring: return(Ring); case FingerIndex.pink: return(Pinky); default: throw new ArgumentOutOfRangeException("finger", finger, null); } }
public PhalangeData(FingerIndex fingerIndex, int pos, device_type_t DeviceTypeT) { this.FingerIndex = fingerIndex; this.Pos = pos; this.DeviceTypeT = DeviceTypeT; }