Class SteamVR_Action_Skeleton_Source
  
  
  
  
    Inheritance
    System.Object
    
    
    
    SteamVR_Action_Skeleton_Source
   
  
  
    Inherited Members
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
      System.Object.Equals(System.Object)
    
    
      System.Object.Equals(System.Object, System.Object)
    
    
      System.Object.GetHashCode()
    
    
      System.Object.GetType()
    
    
      System.Object.MemberwiseClone()
    
    
      System.Object.ToString()
    
    
      System.Object.ReferenceEquals(System.Object, System.Object)
    
   
  
  Assembly: Assembly-CSharp.dll
  Syntax
  
    public class SteamVR_Action_Skeleton_Source : SteamVR_Action_Pose_Source, ISteamVR_Action_Pose, ISteamVR_Action_In_Source, ISteamVR_Action_Source, ISteamVR_Action_Skeleton_Source
   
  Fields
  
  
  
  lastSkeletalSummaryData
  
  
  Declaration
  
    protected VRSkeletalSummaryData_t lastSkeletalSummaryData
   
  Field Value
  
  
  
  lastSkeletonActionData
  
  
  Declaration
  
    protected InputSkeletalActionData_t lastSkeletonActionData
   
  Field Value
  
  
  
  skeletalSummaryData
  
  
  Declaration
  
    protected VRSkeletalSummaryData_t skeletalSummaryData
   
  Field Value
  
  
  
  skeletonAction
  
  
  Declaration
  
    protected SteamVR_Action_Skeleton skeletonAction
   
  Field Value
  
  
  
  skeletonActionData
  
  
  Declaration
  
    protected InputSkeletalActionData_t skeletonActionData
   
  Field Value
  
  
  
  skeletonActionData_size
  
  
  Declaration
  
    protected static uint skeletonActionData_size
   
  Field Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.UInt32 | 
         | 
      
    
  
  
  
  
  
  
  Declaration
  
    protected VRBoneTransform_t[] tempBoneTransforms
   
  Field Value
  
  
  
  tempSkeletonActionData
  
  
  Declaration
  
    protected InputSkeletalActionData_t tempSkeletonActionData
   
  Field Value
  
  Properties
  
  
  
  
  activeBinding
  True if the action is bound
 
  
  Declaration
  
    public override bool activeBinding { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  Overrides
  
  
  
  
  boneCount
  The number of bones in the skeleton for this action
 
  
  Declaration
  
    public int boneCount { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  
  boneHierarchy
  Gets the ordering of the bone hierarchy
 
  
  Declaration
  
    public int[] boneHierarchy { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32[] | 
         | 
      
    
  
  
  
  
  bonePositions
  An array of the positions of the bones from the most recent update. Relative to skeletalTransformSpace. See SteamVR_Skeleton_JointIndexes for bone indexes.
 
  
  Declaration
  
    public Vector3[] bonePositions { get; protected set; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | UnityEngine.Vector3[] | 
         | 
      
    
  
  
  
  
  boneRotations
  An array of the rotations of the bones from the most recent update. Relative to skeletalTransformSpace. See SteamVR_Skeleton_JointIndexes for bone indexes.
 
  
  Declaration
  
    public Quaternion[] boneRotations { get; protected set; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | UnityEngine.Quaternion[] | 
         | 
      
    
  
  
  
  
  fingerCurls
  0-1 values representing how curled the specified finger is. 0 being straight, 1 being fully curled. For indexes see: SteamVR_Skeleton_FingerIndexes
 
  
  Declaration
  
    public float[] fingerCurls { get; protected set; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single[] | 
         | 
      
    
  
  
  
  
  fingerSplays
  0-1 values representing how splayed the specified finger and it's next index'd finger is. For indexes see: SteamVR_Skeleton_FingerIndexes
 
  
  Declaration
  
    public float[] fingerSplays { get; protected set; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single[] | 
         | 
      
    
  
  
  
  
  indexCurl
  A 0-1 value representing how curled the index finger is. 0 being straight, 1 being fully curled.
 
  
  Declaration
  
    public float indexCurl { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  indexMiddleSplay
  A 0-1 value representing the size of the gap between the index and middle fingers
 
  
  Declaration
  
    public float indexMiddleSplay { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  lastActiveBinding
  True if the action's binding was active during the previous update
 
  
  Declaration
  
    public override bool lastActiveBinding { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  Overrides
  
  
  
  
  lastBonePositions
  From the previous update: An array of the positions of the bones from the most recent update. Relative to skeletalTransformSpace. See SteamVR_Skeleton_JointIndexes for bone indexes.
 
  
  Declaration
  
    public Vector3[] lastBonePositions { get; protected set; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | UnityEngine.Vector3[] | 
         | 
      
    
  
  
  
  
  lastBoneRotations
  From the previous update: An array of the rotations of the bones from the most recent update. Relative to skeletalTransformSpace. See SteamVR_Skeleton_JointIndexes for bone indexes.
 
  
  Declaration
  
    public Quaternion[] lastBoneRotations { get; protected set; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | UnityEngine.Quaternion[] | 
         | 
      
    
  
  
  
  
  lastFingerCurls
  [Previous Update] 0-1 values representing how curled the specified finger is. 0 being straight, 1 being fully curled. For indexes see: SteamVR_Skeleton_FingerIndexes
 
  
  Declaration
  
    public float[] lastFingerCurls { get; protected set; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single[] | 
         | 
      
    
  
  
  
  
  lastFingerSplays
  [Previous Update] 0-1 values representing how splayed the specified finger and it's next index'd finger is. For indexes see: SteamVR_Skeleton_FingerIndexes
 
  
  Declaration
  
    public float[] lastFingerSplays { get; protected set; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single[] | 
         | 
      
    
  
  
  
  
  lastIndexCurl
  [Previous Update] A 0-1 value representing how curled the index finger is. 0 being straight, 1 being fully curled.
 
  
  Declaration
  
    public float lastIndexCurl { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  lastIndexMiddleSplay
  [Previous Update] A 0-1 value representing the size of the gap between the index and middle fingers
 
  
  Declaration
  
    public float lastIndexMiddleSplay { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  lastMiddleCurl
  [Previous Update] A 0-1 value representing how curled the middle finger is. 0 being straight, 1 being fully curled.
 
  
  Declaration
  
    public float lastMiddleCurl { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  lastMiddleRingSplay
  [Previous Update] A 0-1 value representing the size of the gap between the middle and ring fingers
 
  
  Declaration
  
    public float lastMiddleRingSplay { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  lastPinkyCurl
  [Previous Update] A 0-1 value representing how curled the pinky finger is. 0 being straight, 1 being fully curled.
 
  
  Declaration
  
    public float lastPinkyCurl { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  lastRingCurl
  [Previous Update] A 0-1 value representing how curled the ring finger is. 0 being straight, 1 being fully curled.
 
  
  Declaration
  
    public float lastRingCurl { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  lastRingPinkySplay
  [Previous Update] A 0-1 value representing the size of the gap between the ring and pinky fingers
 
  
  Declaration
  
    public float lastRingPinkySplay { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  lastThumbCurl
  [Previous Update] A 0-1 value representing how curled the thumb is. 0 being straight, 1 being fully curled.
 
  
  Declaration
  
    public float lastThumbCurl { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  lastThumbIndexSplay
  [Previous Update] A 0-1 value representing the size of the gap between the thumb and index fingers
 
  
  Declaration
  
    public float lastThumbIndexSplay { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  middleCurl
  A 0-1 value representing how curled the middle finger is. 0 being straight, 1 being fully curled.
 
  
  Declaration
  
    public float middleCurl { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  middleRingSplay
  A 0-1 value representing the size of the gap between the middle and ring fingers
 
  
  Declaration
  
    public float middleRingSplay { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  pinkyCurl
  A 0-1 value representing how curled the pinky finger is. 0 being straight, 1 being fully curled.
 
  
  Declaration
  
    public float pinkyCurl { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  poseChanged
  Separate from "changed". If the pose for this skeleton action has changed (root position/rotation)
 
  
  Declaration
  
    public bool poseChanged { get; protected set; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  rangeOfMotion
  The range of motion the we're using to get bone data from. With Controller being your hand while holding the controller.
 
  
  Declaration
  
    public EVRSkeletalMotionRange rangeOfMotion { get; set; }
   
  Property Value
  
  
  
  
  ringCurl
  A 0-1 value representing how curled the ring finger is. 0 being straight, 1 being fully curled.
 
  
  Declaration
  
    public float ringCurl { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  ringPinkySplay
  A 0-1 value representing the size of the gap between the ring and pinky fingers
 
  
  Declaration
  
    public float ringPinkySplay { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  skeletalTrackingLevel
  Get the accuracy level of the skeletal tracking data.
* Estimated: Body part location can’t be directly determined by the device. Any skeletal pose provided by the device is estimated based on the active buttons, triggers, joysticks, or other input sensors. Examples include the Vive Controller and gamepads.
* Partial: Body part location can be measured directly but with fewer degrees of freedom than the actual body part.Certain body part positions may be unmeasured by the device and estimated from other input data.Examples include Knuckles or gloves that only measure finger curl
* Full: Body part location can be measured directly throughout the entire range of motion of the body part.Examples include hi-end mocap systems, or gloves that measure the rotation of each finger segment.
 
  
  Declaration
  
    public EVRSkeletalTrackingLevel skeletalTrackingLevel { get; }
   
  Property Value
  
  
  
  
  
  The space to get bone data in. Parent space by default
 
  
  Declaration
  
    public EVRSkeletalTransformSpace skeletalTransformSpace { get; set; }
   
  Property Value
  
  
  
  
  thumbCurl
  A 0-1 value representing how curled the thumb is. 0 being straight, 1 being fully curled.
 
  
  Declaration
  
    public float thumbCurl { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  
  
  
  thumbIndexSplay
  A 0-1 value representing the size of the gap between the thumb and index fingers
 
  
  Declaration
  
    public float thumbIndexSplay { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Single | 
         | 
      
    
  
  Methods
  
  
  
  
  CheckAndSendEvents()
  
  
  Declaration
  
    protected override void CheckAndSendEvents()
   
  Overrides
  
  
  
  
  GetBoneCount()
  Gets the number of bones in the skeleton for this action
 
  
  Declaration
  
    public uint GetBoneCount()
   
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.UInt32 | 
         | 
      
    
  
  
  
  
  GetBoneHierarchy()
  Gets the ordering of the bone hierarchy
 
  
  Declaration
  
    public int[] GetBoneHierarchy()
   
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32[] | 
         | 
      
    
  
  
  
  
  GetBoneName(Int32)
  Gets the name for a bone at the specified index
 
  
  Declaration
  
    public string GetBoneName(int boneIndex)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Int32 | 
        boneIndex | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.String | 
         | 
      
    
  
  
  
  
  
  Returns an array of positions/rotations that represent the state of each bone in a reference pose.
 
  
  Declaration
  
    public SteamVR_Utils.RigidTransform[] GetReferenceTransforms(EVRSkeletalTransformSpace transformSpace, EVRSkeletalReferencePose referencePose)
   
  Parameters
  
  Returns
  
  
  
  
  GetSkeletalSummaryData(Boolean)
  Get the skeletal summary data structure from OpenVR.
Contains curl and splay data in finger order: thumb, index, middlg, ring, pinky.
Easier access at named members: indexCurl, ringSplay, etc.
 
  
  Declaration
  
    protected VRSkeletalSummaryData_t GetSkeletalSummaryData(bool force = false)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Boolean | 
        force | 
         | 
      
    
  
  Returns
  
  
  
  
  GetSkeletalTrackingLevel()
  Get the accuracy level of the skeletal tracking data.
* Estimated: Body part location can’t be directly determined by the device. Any skeletal pose provided by the device is estimated based on the active buttons, triggers, joysticks, or other input sensors. Examples include the Vive Controller and gamepads.
* Partial: Body part location can be measured directly but with fewer degrees of freedom than the actual body part.Certain body part positions may be unmeasured by the device and estimated from other input data.Examples include Knuckles or gloves that only measure finger curl
* Full: Body part location can be measured directly throughout the entire range of motion of the body part.Examples include hi-end mocap systems, or gloves that measure the rotation of each finger segment.
 
  
  Declaration
  
    public EVRSkeletalTrackingLevel GetSkeletalTrackingLevel()
   
  Returns
  
  
  
  
  Initialize()
  [Should not be called by user code]
Initializes the handle for the inputSource, the skeletal action data size, and any other related SteamVR data.
 
  
  Declaration
  
    public override void Initialize()
   
  Overrides
  
  
  
  
  
  
  
  Declaration
  
    public override void Preinitialize(SteamVR_Action wrappingAction, SteamVR_Input_Sources forInputSource)
   
  Parameters
  
  Overrides
  
  
  
  
  UpdateValue()
  [Should not be called by user code]
Updates the data for this action and this input source. Sends related events.
 
  
  Declaration
  
    public override void UpdateValue()
   
  Overrides
  
  
  
  
  UpdateValue(Boolean)
  [Should not be called by user code]
Updates the data for this action and this input source. Sends related events.
 
  
  Declaration
  
    public override void UpdateValue(bool skipStateAndEventUpdates)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Boolean | 
        skipStateAndEventUpdates | 
         | 
      
    
  
  Overrides
  
  Events
  
  
  
  onActiveBindingChange
  Event fires when the active state of the binding changes
 
  
  Declaration
  
    public event SteamVR_Action_Skeleton.ActiveChangeHandler onActiveBindingChange
   
  Event Type
  
  
  
  onActiveChange
  Event fires when the active state (ActionSet active and binding active) changes
 
  
  Declaration
  
    public event SteamVR_Action_Skeleton.ActiveChangeHandler onActiveChange
   
  Event Type
  
  
  
  onChange
  Event fires when the orientation of the pose or bones changes more than the changeTolerance
 
  
  Declaration
  
    public event SteamVR_Action_Skeleton.ChangeHandler onChange
   
  Event Type
  
  
  
  onDeviceConnectedChanged
  Event fires when the device bound to this action is connected or disconnected
 
  
  Declaration
  
    public event SteamVR_Action_Skeleton.DeviceConnectedChangeHandler onDeviceConnectedChanged
   
  Event Type
  
  
  
  onTrackingChanged
  Event fires when the state of the tracking system that is used to create pose data (position, rotation, etc) changes
 
  
  Declaration
  
    public event SteamVR_Action_Skeleton.TrackingChangeHandler onTrackingChanged
   
  Event Type
  
  
  
  onUpdate
  Event fires when the action is updated
 
  
  Declaration
  
    public event SteamVR_Action_Skeleton.UpdateHandler onUpdate
   
  Event Type
  
  
  
  onValidPoseChanged
  Event fires when the state of the pose data retrieved for this action changes validity (good/bad data from the tracking source)
 
  
  Declaration
  
    public event SteamVR_Action_Skeleton.ValidPoseChangeHandler onValidPoseChanged
   
  Event Type
  
  Implements