Пример #1
0
 private void ZeroPalmPositionAndOrientation(IPalmIdentifiers palmIdentifiers)
 {
     data_[palmIdentifiers.Position]         = UnityEngine.Vector3.zero;
     data_[palmIdentifiers.Direction]        = UnityEngine.Vector3.zero;
     data_[palmIdentifiers.Normal]           = UnityEngine.Vector3.zero;
     data_[palmIdentifiers.ScaledDirection]  = UnityEngine.Vector3.zero;
     data_[palmIdentifiers.ScaledTransverse] = UnityEngine.Vector3.zero;
 }
Пример #2
0
        private void AssignPalmPositionAndOrientation(IPalmIdentifiers palmIdentifiers, UnityEngine.Object hand)
        {
            data_[palmIdentifiers.Position]  = leapReflectionData_.PalmPosition(hand);
            data_[palmIdentifiers.Direction] = leapReflectionData_.PalmDirection(hand);
            data_[palmIdentifiers.Normal]    = leapReflectionData_.PalmNormal(hand);

            var palmDirectionNormalized  = UnityEngine.Vector3.Normalize(data_[palmIdentifiers.Direction]);
            var crossDirectionNormalized = UnityEngine.Vector3.Normalize(UnityEngine.Vector3.Cross(palmDirectionNormalized, data_[palmIdentifiers.Normal]));

            var middleFinger   = leapReflectionData_.GetBoneCenter(hand, LeapDataStructures.Finger.MIDDLE, LeapDataStructures.Bone.DISTAL);
            var halfHandLength = UnityEngine.Vector3.Distance(middleFinger, leapReflectionData_.WristPosition(hand)) / 2.0f;
            var halfHandWidth  = leapReflectionData_.PalmWidth(hand) / 2.0f;

            data_[palmIdentifiers.ScaledDirection]  = palmDirectionNormalized * halfHandLength;
            data_[palmIdentifiers.ScaledTransverse] = crossDirectionNormalized * halfHandWidth;
        }