using System; namespace UnityEngine.XR.Hands.Gestures { /// /// Configuration values for how to calculate . /// Defines minimum and maximum angles or distances between joints to normalize finger joints into each /// 's' 0 to 1 value. /// [Serializable] public class XRFingerShapeConfiguration { /// /// The minimum degrees between vectors from the first extension /// joint to its closest neighbors. /// public float minimumFullCurlDegrees1 { get; set; } /// /// The maximum degrees between vectors from the first extension /// joint to its closest neighbors. /// public float maximumFullCurlDegrees1 { get; set; } /// /// The minimum degrees between vectors from the second extension /// joint to its closest neighbors. /// public float minimumFullCurlDegrees2 { get; set; } /// /// The maximum degrees between vectors from the second extension /// joint to its closest neighbors. /// public float maximumFullCurlDegrees2 { get; set; } /// /// The minimum degrees between vectors from the third extension /// joint to its closest neighbors. Ignored on the thumb. /// public float minimumFullCurlDegrees3 { get; set; } /// /// The maximum degrees between vectors from the third extension /// joint to its closest neighbors. Ignored on the thumb. /// public float maximumFullCurlDegrees3 { get; set; } /// /// The minimum degrees between vectors from the central flex joint to /// its closest neighbors. When the angle between those two vectors is /// less than or equal to this value, the flex value will be 1. /// public float minimumBaseCurlDegrees { get; set; } /// /// The maximum degrees between vectors from the central flex joint to /// its closest neighbors. When the angle between those two vectors is /// greater than or equal to this value, the flex value will be 0. /// public float maximumBaseCurlDegrees { get; set; } /// /// The minimum degrees between vectors from the first curl /// joint to its closest neighbors. /// public float minimumTipCurlDegrees1 { get; set; } /// /// The maximum degrees between vectors from the first curl /// joint to its closest neighbors. /// public float maximumTipCurlDegrees1 { get; set; } /// /// The minimum degrees between vectors from the second curl /// joint to its closest neighbors. /// public float minimumTipCurlDegrees2 { get; set; } /// /// The maximum degrees between vectors from the second curl /// joint to its closest neighbors. /// public float maximumTipCurlDegrees2 { get; set; } /// /// The minimum distance between each finger tip and the thumb tip /// to calculate pinch values for. Values below or equal to this will /// result in a pinch value of 1. /// public float minimumPinchDistance { get; set; } /// /// The maximum distance between each finger tip and the thumb tip /// which allows for non-zero pinch values. /// public float maximumPinchDistance { get; set; } /// /// The minimum degrees for splay between this finger and the next. /// Not used for the little finger. /// public float minimumSpreadDegrees { get; set; } /// /// The maximum degrees for splay between this finger and the next. /// Not used for the little finger. /// public float maximumSpreadDegrees { get; set; } } }