API reference
API reference
Select your platform
No SDKs available
No versions available

SyntheticHand Class

Used primarily for touch limiting during pokes and custom poses during grabs.
Oculus::Interaction::Input::SyntheticHand extends Oculus.Interaction.Input.Hand.

Overview

Public Types

enum
WristLockMode {
}

Data Fields

System.Action

Object Data

override void
Start ( )
override void

Public Member Functions

void
OverrideAllJoints
( in Quaternion[] jointRotations,
float overrideFactor )
Stores the rotation data for all joints in the hand, to be applied during the ApplyHand event.
void
OverrideFingerRotations
( HandFinger finger,
Quaternion[] rotations,
float overrideFactor )
Stores the rotation data for all joints for the given finger, to be applied during the ApplyHand event.
void
OverrideJointRotation
( HandJointId jointId,
Quaternion rotation,
float overrideFactor )
void
LockFingerAtCurrent
( in HandFinger finger )
Immediately locks an individual finger (all its internal joints) at the last known value.
void
LockJoint
( in HandJointId jointId,
Quaternion rotation,
float overrideFactor )
void
SetFingerFreedom
( in HandFinger finger,
in JointFreedom freedomLevel,
bool skipAnimation )
To use in conjunction with OverrideAllJoints, it sets the freedom state for a provided finger.
void
SetJointFreedom
( in HandJointId jointId,
in JointFreedom freedomLevel,
bool skipAnimation )
JointFreedom
GetJointFreedom
( in HandJointId jointId )
void
Short-hand method for setting the freedom level of all fingers in a hand to Free.
void
LockWristPose
( Pose wristPose,
float overrideFactor,
WristLockMode lockMode,
bool worldPose,
bool skipAnimation )
Stores the desired pose to set the wrist of the hand to.
void
LockWristPosition
( Vector3 position,
float overrideFactor,
bool skipAnimation )
void
LockWristRotation
( Quaternion rotation,
float overrideFactor,
bool skipAnimation )
void
FreeWrist
( WristLockMode lockMode )
Unlocks the hand (locked at the OverrideWristPose method) starting a timer for the smooth release animation.
void
InjectAllSyntheticHandModifier
( UpdateModeFlags updateMode,
IDataSource updateAfter,
DataModifier< HandDataAsset > modifyDataFromSource,
bool applyModifier,
ProgressCurve wristPositionLockCurve,
ProgressCurve wristPositionUnlockCurve,
ProgressCurve wristRotationLockCurve,
ProgressCurve wristRotationUnlockCurve,
ProgressCurve jointLockCurve,
ProgressCurve jointUnlockCurve,
float spreadAllowance )
void
InjectWristPositionLockCurve
( ProgressCurve wristPositionLockCurve )
void
InjectWristPositionUnlockCurve
( ProgressCurve wristPositionUnlockCurve )
void
InjectWristRotationLockCurve
( ProgressCurve wristRotationLockCurve )
void
InjectWristRotationUnlockCurve
( ProgressCurve wristRotationUnlockCurve )
void
void
void
InjectSpreadAllowance
( float spreadAllowance )

Details

Detailed Description

Alters hand data piped into this modifier to lock and unlock joints (wrist position and rotation, finger joint rotations). When switching between locked and unlocked states, additionally smooths out transitions by easing between source hand data and target hand data.

Member Enumerations

enum Oculus::Interaction::Input::SyntheticHand.WristLockMode
Enumerator
Position
= 1 << 0
Rotation
= 1 << 1
Full
= (1 << 2) - 1

Fields

System.Action Oculus.Interaction.Input.SyntheticHand.UpdateRequired
No description available.

Object Data

override void Oculus.Interaction.Input.SyntheticHand.Start ( )
No description available.
override void Oculus.Interaction.Input.SyntheticHand.Apply
( HandDataAsset data )
No description available.

Member Functions

void Oculus.Interaction.Input.SyntheticHand.OverrideAllJoints
( in Quaternion[] jointRotations,
float overrideFactor )
Stores the rotation data for all joints in the hand, to be applied during the ApplyHand event.
Parameters
jointRotations
The joint rotations following the FingersMetadata.HAND_JOINT_IDS format.
overrideFactor
How much to lerp the fingers from the tracked (raw) state to the provided one.
void Oculus.Interaction.Input.SyntheticHand.OverrideFingerRotations
( HandFinger finger,
Quaternion[] rotations,
float overrideFactor )
Stores the rotation data for all joints for the given finger, to be applied during the ApplyHand event.
Parameters
finger
The finger for which to lock joints.
rotations
The joint rotations for each joint on the finger
overrideFactor
How much to lerp the fingers from the tracked (raw) state to the provided one.
void Oculus.Interaction.Input.SyntheticHand.OverrideJointRotation
( HandJointId jointId,
Quaternion rotation,
float overrideFactor )
No description available.
void Oculus.Interaction.Input.SyntheticHand.LockFingerAtCurrent
( in HandFinger finger )
Immediately locks an individual finger (all its internal joints) at the last known value.
Parameters
finger
The finger for which to lock joints.
void Oculus.Interaction.Input.SyntheticHand.LockJoint
( in HandJointId jointId,
Quaternion rotation,
float overrideFactor )
No description available.
void Oculus.Interaction.Input.SyntheticHand.SetFingerFreedom
( in HandFinger finger,
in JointFreedom freedomLevel,
bool skipAnimation )
To use in conjunction with OverrideAllJoints, it sets the freedom state for a provided finger.
Opposite to LockFingerAtCurrent, this method uses the data provided in OverrideAllJoints instead of the last known state.
Parameters
freedomLevel
The freedom level for the finger
void Oculus.Interaction.Input.SyntheticHand.SetJointFreedom
( in HandJointId jointId,
in JointFreedom freedomLevel,
bool skipAnimation )
No description available.
JointFreedom Oculus.Interaction.Input.SyntheticHand.GetJointFreedom
( in HandJointId jointId )
No description available.
void Oculus.Interaction.Input.SyntheticHand.FreeAllJoints ( )
Short-hand method for setting the freedom level of all fingers in a hand to Free.
Similar to calling SetFingerFreedom for each single finger in the hand with a value of FingerFreedom.Free for the freedomLevel
void Oculus.Interaction.Input.SyntheticHand.LockWristPose
( Pose wristPose,
float overrideFactor,
WristLockMode lockMode,
bool worldPose,
bool skipAnimation )
Stores the desired pose to set the wrist of the hand to.
This is not necessarily the final pose of the hand, as it allows lerping between the tracked and provided one during the ApplyHand phase.
To ensure the hand is locked at the desired pose, pass a value of 1 in the overrideFactor
Parameters
wristPose
The final pose desired for the wrist
lockMode
Either lock the position, rotation or both (default)
overrideFactor
How much to lerp between the tracked and the provided pose
skipAnimation
Whether to skip the animation curve for this override.
void Oculus.Interaction.Input.SyntheticHand.LockWristPosition
( Vector3 position,
float overrideFactor,
bool skipAnimation )
No description available.
void Oculus.Interaction.Input.SyntheticHand.LockWristRotation
( Quaternion rotation,
float overrideFactor,
bool skipAnimation )
No description available.
void Oculus.Interaction.Input.SyntheticHand.FreeWrist
( WristLockMode lockMode )
Unlocks the hand (locked at the OverrideWristPose method) starting a timer for the smooth release animation.
void Oculus.Interaction.Input.SyntheticHand.InjectAllSyntheticHandModifier
( UpdateModeFlags updateMode,
IDataSource updateAfter,
DataModifier< HandDataAsset > modifyDataFromSource,
bool applyModifier,
ProgressCurve wristPositionLockCurve,
ProgressCurve wristPositionUnlockCurve,
ProgressCurve wristRotationLockCurve,
ProgressCurve wristRotationUnlockCurve,
ProgressCurve jointLockCurve,
ProgressCurve jointUnlockCurve,
float spreadAllowance )
No description available.
void Oculus.Interaction.Input.SyntheticHand.InjectWristPositionLockCurve
( ProgressCurve wristPositionLockCurve )
No description available.
void Oculus.Interaction.Input.SyntheticHand.InjectWristPositionUnlockCurve
( ProgressCurve wristPositionUnlockCurve )
No description available.
void Oculus.Interaction.Input.SyntheticHand.InjectWristRotationLockCurve
( ProgressCurve wristRotationLockCurve )
No description available.
void Oculus.Interaction.Input.SyntheticHand.InjectWristRotationUnlockCurve
( ProgressCurve wristRotationUnlockCurve )
No description available.
void Oculus.Interaction.Input.SyntheticHand.InjectJointLockCurve
( ProgressCurve jointLockCurve )
No description available.
void Oculus.Interaction.Input.SyntheticHand.InjectJointUnlockCurve
( ProgressCurve jointUnlockCurve )
No description available.
void Oculus.Interaction.Input.SyntheticHand.InjectSpreadAllowance
( float spreadAllowance )
No description available.
Did you find this page helpful?
Thumbs up icon
Thumbs down icon