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