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; }
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; }