Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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));
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        protected override Finger CreateFinger(FingerIndex finger)
        {
            Finger        f             = base.CreateFinger(finger);
            PhysicsFinger physicsFinger = f as PhysicsFinger;

            physicsFinger.PhysicsFingerSettings = PhysicsFingerSettings;
            return(f);
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        /// <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);
        }
Esempio n. 8
0
        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;
 }