UNPKG

io.extendreality.tilia.interactions.controllables.unity

Version:

Mechanisms that provide physics based and non-physics based linear and angular interactable controls for the Unity software.

723 lines (481 loc) 31.1 kB
# Class AngularDrive The basis to drive a control in a rotational angle. ## Contents * [Inheritance] * [Namespace] * [Syntax] * [Fields] * [circleDegrees] * [circleUpperLeftQuadrant] * [circleUpperRightQuadrant] * [currentActualRotation] * [currentPseudoRotation] * [previousActualRotation] * [previousPseudoRotation] * [pseudoAngularVelocity] * [rotationMultiplier] * [Properties] * [ActualTargetAngle] * [CurrentActualAngle] * [PreviousActualAngle] * [TargetValueReachedThresholdRotation] * [Methods] * [ApplyExistingAngularVelocity(Single)] * [ApplyLimits()] * [AttemptApplyLimits()] * [CalculateAutoDriveVelocity()] * [CalculateDirectionMultiplier()] * [CalculateDriveLimits(AngularDriveFacade)] * [CalculateHingeLocation(Vector3)] * [CalculateRotationMultiplier()] * [CalculateValue(DriveAxis.Axis, FloatRange)] * [GetSimpleEulerAngles()] * [MatchActualTargetAngle(Single)] * [Process()] * [ProcessAutoDrive(Single)] * [ResetDrive()] * [SetUpInternals()] * [Implements] ## Details ##### Inheritance * System.Object * [Drive]<[AngularDriveFacade], [AngularDrive]\> * AngularDrive * [AngularJointDrive] * [AngularTransformDrive] ##### Implements IProcessable ##### Inherited Members [Drive<AngularDriveFacade, AngularDrive>.MoveToTargetValueEnabled] [Drive<AngularDriveFacade, AngularDrive>.MoveToTargetValueDisabled] [Drive<AngularDriveFacade, AngularDrive>.Facade] [Drive<AngularDriveFacade, AngularDrive>.EventOutputContainer] [Drive<AngularDriveFacade, AngularDrive>.SnapToStepContainer] [Drive<AngularDriveFacade, AngularDrive>.GrabbedDragEmitter] [Drive<AngularDriveFacade, AngularDrive>.UngrabbedDragEmitter] [Drive<AngularDriveFacade, AngularDrive>.Interactable] [Drive<AngularDriveFacade, AngularDrive>.InteractableMesh] [Drive<AngularDriveFacade, AngularDrive>.ResetDriveOnSetup] [Drive<AngularDriveFacade, AngularDrive>.ResetDriveOnSetupFirstTimeOnly] [Drive<AngularDriveFacade, AngularDrive>.IsGrabbable] [Drive<AngularDriveFacade, AngularDrive>.InitialValueDriveSpeed] [Drive<AngularDriveFacade, AngularDrive>.DecreaseInitialValueDriveSpeedEachProcessMultiplier] [Drive<AngularDriveFacade, AngularDrive>.GizmoColor] [Drive<AngularDriveFacade, AngularDrive>.InitialTargetValueReachedThreshold] [Drive<AngularDriveFacade, AngularDrive>.TargetValueReachedThreshold] [Drive<AngularDriveFacade, AngularDrive>.GrabbedTargetValueReachedThreshold] [Drive<AngularDriveFacade, AngularDrive>.EmitEvents] [Drive<AngularDriveFacade, AngularDrive>.Value] [Drive<AngularDriveFacade, AngularDrive>.NormalizedValue] [Drive<AngularDriveFacade, AngularDrive>.StepValue] [Drive<AngularDriveFacade, AngularDrive>.NormalizedStepValue] [Drive<AngularDriveFacade, AngularDrive>.AxisDirection] [Drive<AngularDriveFacade, AngularDrive>.DriveLimits] [Drive<AngularDriveFacade, AngularDrive>.ActualTargetValueReachedThreshold] [Drive<AngularDriveFacade, AngularDrive>.previousValue] [Drive<AngularDriveFacade, AngularDrive>.previousStepValue] [Drive<AngularDriveFacade, AngularDrive>.previousTargetValueReached] [Drive<AngularDriveFacade, AngularDrive>.isMoving] [Drive<AngularDriveFacade, AngularDrive>.isMovingToInitialTargetValue] [Drive<AngularDriveFacade, AngularDrive>.cachedEmitEvents] [Drive<AngularDriveFacade, AngularDrive>.cachedMoveToTargetValue] [Drive<AngularDriveFacade, AngularDrive>.cachedTargetValue] [Drive<AngularDriveFacade, AngularDrive>.cachedDriveSpeed] [Drive<AngularDriveFacade, AngularDrive>.wasDisabled] [Drive<AngularDriveFacade, AngularDrive>.ConfigureAutoDrive(Boolean)] [Drive<AngularDriveFacade, AngularDrive>.SetUp()] [Drive<AngularDriveFacade, AngularDrive>.Process()] [Drive<AngularDriveFacade, AngularDrive>.ToggleSnapToStepLogic(Boolean)] [Drive<AngularDriveFacade, AngularDrive>.SetDriveLimits()] [Drive<AngularDriveFacade, AngularDrive>.SetAxisDirection()] [Drive<AngularDriveFacade, AngularDrive>.SetGrabbedDrag(Single)] [Drive<AngularDriveFacade, AngularDrive>.SetUngrabbedDrag(Single)] [Drive<AngularDriveFacade, AngularDrive>.ProcessDriveSpeed(Single, Boolean)] [Drive<AngularDriveFacade, AngularDrive>.SetTargetValue(Single)] [Drive<AngularDriveFacade, AngularDrive>.CalculateDriveAxis(DriveAxis.Axis)] [Drive<AngularDriveFacade, AngularDrive>.ResetDrive()] [Drive<AngularDriveFacade, AngularDrive>.ToggleGrabbaleState(Boolean)] [Drive<AngularDriveFacade, AngularDrive>.PreventGrab()] [Drive<AngularDriveFacade, AngularDrive>.AllowGrab()] [Drive<AngularDriveFacade, AngularDrive>.CalculateValue(DriveAxis.Axis, FloatRange)] [Drive<AngularDriveFacade, AngularDrive>.CalculateDriveLimits(AngularDriveFacade)] [Drive<AngularDriveFacade, AngularDrive>.GetDriveTransform()] [Drive<AngularDriveFacade, AngularDrive>.OnEnable()] [Drive<AngularDriveFacade, AngularDrive>.OnDisable()] [Drive<AngularDriveFacade, AngularDrive>.SetUpInternals()] [Drive<AngularDriveFacade, AngularDrive>.SetDriveTargetValue(Vector3)] [Drive<AngularDriveFacade, AngularDrive>.EliminateDriveVelocity()] [Drive<AngularDriveFacade, AngularDrive>.EmitStartMoving()] [Drive<AngularDriveFacade, AngularDrive>.EmitStopMoving()] [Drive<AngularDriveFacade, AngularDrive>.CheckStepValueChange()] [Drive<AngularDriveFacade, AngularDrive>.DecreaseDriveSpeedOnInitialMove()] [Drive<AngularDriveFacade, AngularDrive>.CheckTargetValueReached()] [Drive<AngularDriveFacade, AngularDrive>.GetTargetValue()] [Drive<AngularDriveFacade, AngularDrive>.CanMoveToTargetValue()] [Drive<AngularDriveFacade, AngularDrive>.CalculateStepValue(AngularDriveFacade)] [Drive<AngularDriveFacade, AngularDrive>.EmitValueChanged()] [Drive<AngularDriveFacade, AngularDrive>.EmitNormalizedValueChanged()] [Drive<AngularDriveFacade, AngularDrive>.EmitStepValueChanged()] [Drive<AngularDriveFacade, AngularDrive>.EmitTargetValueReached()] [Drive<AngularDriveFacade, AngularDrive>.EmitStartedMoving()] [Drive<AngularDriveFacade, AngularDrive>.EmitStoppedMoving()] [Drive<AngularDriveFacade, AngularDrive>.EmitMoveToTargetValueEvents()] [Drive<AngularDriveFacade, AngularDrive>.MoveToInitialTargetValue()] [Drive<AngularDriveFacade, AngularDrive>.ResetToCacheAfterReachedInitialTargetValue()] [Drive<AngularDriveFacade, AngularDrive>.OnAfterIsGrabbableChange()] ##### Namespace * [Tilia.Interactions.Controllables.AngularDriver] ##### Syntax ``` public abstract class AngularDrive : Drive<AngularDriveFacade, AngularDrive> ``` ### Fields #### circleDegrees The total number of degrees in a circle. ##### Declaration ``` protected const float circleDegrees = 360F ``` #### circleUpperLeftQuadrant The angle range that defines the upper left quadrant of a circle. ##### Declaration ``` protected static readonly FloatRange circleUpperLeftQuadrant ``` #### circleUpperRightQuadrant ##### Declaration ``` protected static readonly FloatRange circleUpperRightQuadrant ``` #### currentActualRotation The current actual rotational value of the drive. ##### Declaration ``` protected Vector3 currentActualRotation ``` #### currentPseudoRotation The representation of the current frame rotation in meaningful values and not limited to 0f to 360f. ##### Declaration ``` protected float currentPseudoRotation ``` #### previousActualRotation The previous actual rotational value of the drive. ##### Declaration ``` protected Vector3 previousActualRotation ``` #### previousPseudoRotation The representation of the previous frame rotation in meaningful values and not limited to 0f to 360f. ##### Declaration ``` protected float previousPseudoRotation ``` #### pseudoAngularVelocity The representation of the rotational velocity. ##### Declaration ``` protected float pseudoAngularVelocity ``` #### rotationMultiplier The multiplier used to determine how many complete revolutions the drive has performed. ##### Declaration ``` protected float rotationMultiplier ``` ### Properties #### ActualTargetAngle The target angle for the control to reach. ##### Declaration ``` protected virtual float ActualTargetAngle { get; } ``` #### CurrentActualAngle The current rotation angle of the control. ##### Declaration ``` protected virtual float CurrentActualAngle { get; } ``` #### PreviousActualAngle The previous rotation angle of the control. ##### Declaration ``` protected virtual float PreviousActualAngle { get; } ``` #### TargetValueReachedThresholdRotation The unnormalized threshold rotation for the drive. ##### Declaration ``` protected virtual float TargetValueReachedThresholdRotation { get; } ``` ### Methods #### ApplyExistingAngularVelocity(Single) Attempts to apply the existing angular velocity back on to the rotation of the drive. ##### Declaration ``` public abstract void ApplyExistingAngularVelocity(float multiplier = 1F) ``` ##### Parameters | Type | Name | Description | | --- | --- | --- | | System.Single | multiplier | The amount to multiply the angular velocity to be applied by. | #### ApplyLimits() Applies the limits on the drive rotation. ##### Declaration ``` protected virtual bool ApplyLimits() ``` ##### Returns | Type | Description | | --- | --- | | System.Boolean | Whether the limits have been applied. | #### AttemptApplyLimits() Attempts to apply the limits on the drive. ##### Declaration ``` protected virtual void AttemptApplyLimits() ``` #### CalculateAutoDriveVelocity() Calculates the velocity that the drive should automatically rotate the control with. ##### Declaration ``` protected virtual float CalculateAutoDriveVelocity() ``` ##### Returns | Type | Description | | --- | --- | | System.Single | The velocity to drive the control automatically with. | #### CalculateDirectionMultiplier() Calculates a multiplier based on the direction the rotation is traveling. ##### Declaration ``` protected virtual float CalculateDirectionMultiplier() ``` ##### Returns | Type | Description | | --- | --- | | System.Single | The multiplier that represents the direction. | #### CalculateDriveLimits(AngularDriveFacade) Calculates the limits of the drive. ##### Declaration ``` protected override FloatRange CalculateDriveLimits(AngularDriveFacade facade) ``` ##### Parameters | Type | Name | Description | | --- | --- | --- | | [AngularDriveFacade] | facade | n/a | ##### Returns | Type | Description | | --- | --- | | FloatRange | The minimum and maximum local space limit the drive can reach. | ##### Overrides Tilia.Interactions.Controllables.Driver.Drive<Tilia.Interactions.Controllables.AngularDriver.AngularDriveFacade, Tilia.Interactions.Controllables.AngularDriver.AngularDrive>.CalculateDriveLimits(Tilia.Interactions.Controllables.AngularDriver.AngularDriveFacade) #### CalculateHingeLocation(Vector3) Calculates the location of the rotational hinge for the drive. ##### Declaration ``` public abstract void CalculateHingeLocation(Vector3 newHingeLocation) ``` ##### Parameters | Type | Name | Description | | --- | --- | --- | | Vector3 | newHingeLocation | The new local space for the hinge point. | #### CalculateRotationMultiplier() Calculates the current rotation the control is at. ##### Declaration ``` protected virtual void CalculateRotationMultiplier() ``` #### CalculateValue(DriveAxis.Axis, FloatRange) Calculates the current value of the control. ##### Declaration ``` protected override float CalculateValue(DriveAxis.Axis driveAxis, FloatRange limits) ``` ##### Parameters | Type | Name | Description | | --- | --- | --- | | [DriveAxis.Axis] | driveAxis | n/a | | FloatRange | limits | The limits of the drive. | ##### Returns | Type | Description | | --- | --- | | System.Single | The calculated value. | ##### Overrides Tilia.Interactions.Controllables.Driver.Drive<Tilia.Interactions.Controllables.AngularDriver.AngularDriveFacade, Tilia.Interactions.Controllables.AngularDriver.AngularDrive>.CalculateValue(Tilia.Interactions.Controllables.Driver.DriveAxis.Axis, FloatRange) #### GetSimpleEulerAngles() Attempts to retrieve a simple x, y or z euler angle from the Transform.localEulerAngles utilizing any other axis rotation. ##### Declaration ``` protected virtual Vector3 GetSimpleEulerAngles() ``` ##### Returns | Type | Description | | --- | --- | | Vector3 | The actual axis angle from 0f to 360f. | #### MatchActualTargetAngle(Single) Attempts to match the target angle to set the control at the correct angle if the drive is no longer moving. ##### Declaration ``` protected virtual void MatchActualTargetAngle(float driveSpeed) ``` ##### Parameters | Type | Name | Description | | --- | --- | --- | | System.Single | driveSpeed | The speed the drive is automatically rotating at. | #### Process() Processes the value changes and emits the appropriate events. ##### Declaration ``` public override void Process() ``` ##### Overrides Tilia.Interactions.Controllables.Driver.Drive<Tilia.Interactions.Controllables.AngularDriver.AngularDriveFacade, Tilia.Interactions.Controllables.AngularDriver.AngularDrive>.Process() #### ProcessAutoDrive(Single) Automatically controls the drive to the target rotation at the given speed. ##### Declaration ``` protected abstract void ProcessAutoDrive(float driveSpeed) ``` ##### Parameters | Type | Name | Description | | --- | --- | --- | | System.Single | driveSpeed | The speed to automatically rotate the drive. | #### ResetDrive() Resets the drive back to any default settings. ##### Declaration ``` public override void ResetDrive() ``` ##### Overrides Tilia.Interactions.Controllables.Driver.Drive<Tilia.Interactions.Controllables.AngularDriver.AngularDriveFacade, Tilia.Interactions.Controllables.AngularDriver.AngularDrive>.ResetDrive() #### SetUpInternals() Performs any required internal setup. ##### Declaration ``` protected override void SetUpInternals() ``` ##### Overrides Tilia.Interactions.Controllables.Driver.Drive<Tilia.Interactions.Controllables.AngularDriver.AngularDriveFacade, Tilia.Interactions.Controllables.AngularDriver.AngularDrive>.SetUpInternals() ### Implements IProcessable [Drive]: ../Driver/Drive-2.md [AngularDrive]: AngularDrive.md [AngularJointDrive]: AngularJointDrive.md [AngularTransformDrive]: AngularTransformDrive.md [Drive<AngularDriveFacade, AngularDrive>.MoveToTargetValueEnabled]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_MoveToTargetValueEnabled [Drive<AngularDriveFacade, AngularDrive>.MoveToTargetValueDisabled]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_MoveToTargetValueDisabled [Drive<AngularDriveFacade, AngularDrive>.Facade]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_Facade [Drive<AngularDriveFacade, AngularDrive>.EventOutputContainer]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EventOutputContainer [Drive<AngularDriveFacade, AngularDrive>.SnapToStepContainer]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_SnapToStepContainer [Drive<AngularDriveFacade, AngularDrive>.GrabbedDragEmitter]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_GrabbedDragEmitter [Drive<AngularDriveFacade, AngularDrive>.UngrabbedDragEmitter]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_UngrabbedDragEmitter [Drive<AngularDriveFacade, AngularDrive>.Interactable]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_Interactable [Drive<AngularDriveFacade, AngularDrive>.InteractableMesh]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_InteractableMesh [Drive<AngularDriveFacade, AngularDrive>.ResetDriveOnSetup]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_ResetDriveOnSetup [Drive<AngularDriveFacade, AngularDrive>.ResetDriveOnSetupFirstTimeOnly]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_ResetDriveOnSetupFirstTimeOnly [Drive<AngularDriveFacade, AngularDrive>.IsGrabbable]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_IsGrabbable [Drive<AngularDriveFacade, AngularDrive>.InitialValueDriveSpeed]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_InitialValueDriveSpeed [Drive<AngularDriveFacade, AngularDrive>.DecreaseInitialValueDriveSpeedEachProcessMultiplier]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_DecreaseInitialValueDriveSpeedEachProcessMultiplier [Drive<AngularDriveFacade, AngularDrive>.GizmoColor]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_GizmoColor [Drive<AngularDriveFacade, AngularDrive>.InitialTargetValueReachedThreshold]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_InitialTargetValueReachedThreshold [Drive<AngularDriveFacade, AngularDrive>.TargetValueReachedThreshold]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_TargetValueReachedThreshold [Drive<AngularDriveFacade, AngularDrive>.GrabbedTargetValueReachedThreshold]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_GrabbedTargetValueReachedThreshold [Drive<AngularDriveFacade, AngularDrive>.EmitEvents]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EmitEvents [Drive<AngularDriveFacade, AngularDrive>.Value]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_Value [Drive<AngularDriveFacade, AngularDrive>.NormalizedValue]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_NormalizedValue [Drive<AngularDriveFacade, AngularDrive>.StepValue]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_StepValue [Drive<AngularDriveFacade, AngularDrive>.NormalizedStepValue]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_NormalizedStepValue [Drive<AngularDriveFacade, AngularDrive>.AxisDirection]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_AxisDirection [Drive<AngularDriveFacade, AngularDrive>.DriveLimits]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_DriveLimits [Drive<AngularDriveFacade, AngularDrive>.ActualTargetValueReachedThreshold]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_ActualTargetValueReachedThreshold [Drive<AngularDriveFacade, AngularDrive>.previousValue]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_previousValue [Drive<AngularDriveFacade, AngularDrive>.previousStepValue]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_previousStepValue [Drive<AngularDriveFacade, AngularDrive>.previousTargetValueReached]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_previousTargetValueReached [Drive<AngularDriveFacade, AngularDrive>.isMoving]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_isMoving [Drive<AngularDriveFacade, AngularDrive>.isMovingToInitialTargetValue]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_isMovingToInitialTargetValue [Drive<AngularDriveFacade, AngularDrive>.cachedEmitEvents]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_cachedEmitEvents [Drive<AngularDriveFacade, AngularDrive>.cachedMoveToTargetValue]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_cachedMoveToTargetValue [Drive<AngularDriveFacade, AngularDrive>.cachedTargetValue]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_cachedTargetValue [Drive<AngularDriveFacade, AngularDrive>.cachedDriveSpeed]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_cachedDriveSpeed [Drive<AngularDriveFacade, AngularDrive>.wasDisabled]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_wasDisabled [Drive<AngularDriveFacade, AngularDrive>.ConfigureAutoDrive(Boolean)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_ConfigureAutoDrive_System_Boolean_ [Drive<AngularDriveFacade, AngularDrive>.SetUp()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_SetUp [Drive<AngularDriveFacade, AngularDrive>.Process()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_Process [Drive<AngularDriveFacade, AngularDrive>.ToggleSnapToStepLogic(Boolean)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_ToggleSnapToStepLogic_System_Boolean_ [Drive<AngularDriveFacade, AngularDrive>.SetDriveLimits()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_SetDriveLimits [Drive<AngularDriveFacade, AngularDrive>.SetAxisDirection()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_SetAxisDirection [Drive<AngularDriveFacade, AngularDrive>.SetGrabbedDrag(Single)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_SetGrabbedDrag_System_Single_ [Drive<AngularDriveFacade, AngularDrive>.SetUngrabbedDrag(Single)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_SetUngrabbedDrag_System_Single_ [Drive<AngularDriveFacade, AngularDrive>.ProcessDriveSpeed(Single, Boolean)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_ProcessDriveSpeed_System_Single_System_Boolean_ [Drive<AngularDriveFacade, AngularDrive>.SetTargetValue(Single)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_SetTargetValue_System_Single_ [Drive<AngularDriveFacade, AngularDrive>.CalculateDriveAxis(DriveAxis.Axis)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_CalculateDriveAxis_Tilia_Interactions_Controllables_Driver_DriveAxis_Axis_ [Drive<AngularDriveFacade, AngularDrive>.ResetDrive()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_ResetDrive [Drive<AngularDriveFacade, AngularDrive>.ToggleGrabbaleState(Boolean)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_ToggleGrabbaleState_System_Boolean_ [Drive<AngularDriveFacade, AngularDrive>.PreventGrab()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_PreventGrab [Drive<AngularDriveFacade, AngularDrive>.AllowGrab()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_AllowGrab [Drive<AngularDriveFacade, AngularDrive>.CalculateValue(DriveAxis.Axis, FloatRange)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_CalculateValue_Tilia_Interactions_Controllables_Driver_DriveAxis_Axis_FloatRange_ [Drive<AngularDriveFacade, AngularDrive>.CalculateDriveLimits(AngularDriveFacade)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_CalculateDriveLimits__0_ [Drive<AngularDriveFacade, AngularDrive>.GetDriveTransform()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_GetDriveTransform [Drive<AngularDriveFacade, AngularDrive>.OnEnable()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_OnEnable [Drive<AngularDriveFacade, AngularDrive>.OnDisable()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_OnDisable [Drive<AngularDriveFacade, AngularDrive>.SetUpInternals()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_SetUpInternals [Drive<AngularDriveFacade, AngularDrive>.SetDriveTargetValue(Vector3)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_SetDriveTargetValue_Vector3_ [Drive<AngularDriveFacade, AngularDrive>.EliminateDriveVelocity()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EliminateDriveVelocity [Drive<AngularDriveFacade, AngularDrive>.EmitStartMoving()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EmitStartMoving [Drive<AngularDriveFacade, AngularDrive>.EmitStopMoving()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EmitStopMoving [Drive<AngularDriveFacade, AngularDrive>.CheckStepValueChange()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_CheckStepValueChange [Drive<AngularDriveFacade, AngularDrive>.DecreaseDriveSpeedOnInitialMove()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_DecreaseDriveSpeedOnInitialMove [Drive<AngularDriveFacade, AngularDrive>.CheckTargetValueReached()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_CheckTargetValueReached [Drive<AngularDriveFacade, AngularDrive>.GetTargetValue()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_GetTargetValue [Drive<AngularDriveFacade, AngularDrive>.CanMoveToTargetValue()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_CanMoveToTargetValue [Drive<AngularDriveFacade, AngularDrive>.CalculateStepValue(AngularDriveFacade)]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_CalculateStepValue__0_ [Drive<AngularDriveFacade, AngularDrive>.EmitValueChanged()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EmitValueChanged [Drive<AngularDriveFacade, AngularDrive>.EmitNormalizedValueChanged()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EmitNormalizedValueChanged [Drive<AngularDriveFacade, AngularDrive>.EmitStepValueChanged()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EmitStepValueChanged [Drive<AngularDriveFacade, AngularDrive>.EmitTargetValueReached()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EmitTargetValueReached [Drive<AngularDriveFacade, AngularDrive>.EmitStartedMoving()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EmitStartedMoving [Drive<AngularDriveFacade, AngularDrive>.EmitStoppedMoving()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EmitStoppedMoving [Drive<AngularDriveFacade, AngularDrive>.EmitMoveToTargetValueEvents()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_EmitMoveToTargetValueEvents [Drive<AngularDriveFacade, AngularDrive>.MoveToInitialTargetValue()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_MoveToInitialTargetValue [Drive<AngularDriveFacade, AngularDrive>.ResetToCacheAfterReachedInitialTargetValue()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_ResetToCacheAfterReachedInitialTargetValue [Drive<AngularDriveFacade, AngularDrive>.OnAfterIsGrabbableChange()]: Tilia.Interactions.Controllables.Driver.Drive-2.md#Tilia_Interactions_Controllables_Driver_Drive_2_OnAfterIsGrabbableChange [Tilia.Interactions.Controllables.AngularDriver]: README.md [AngularDriveFacade]: AngularDriveFacade.md [DriveAxis.Axis]: ../Driver/DriveAxis.Axis.md [Inheritance]: #Inheritance [Namespace]: #Namespace [Syntax]: #Syntax [Fields]: #Fields [circleDegrees]: #circleDegrees [circleUpperLeftQuadrant]: #circleUpperLeftQuadrant [circleUpperRightQuadrant]: #circleUpperRightQuadrant [currentActualRotation]: #currentActualRotation [currentPseudoRotation]: #currentPseudoRotation [previousActualRotation]: #previousActualRotation [previousPseudoRotation]: #previousPseudoRotation [pseudoAngularVelocity]: #pseudoAngularVelocity [rotationMultiplier]: #rotationMultiplier [Properties]: #Properties [ActualTargetAngle]: #ActualTargetAngle [CurrentActualAngle]: #CurrentActualAngle [PreviousActualAngle]: #PreviousActualAngle [TargetValueReachedThresholdRotation]: #TargetValueReachedThresholdRotation [Methods]: #Methods [ApplyExistingAngularVelocity(Single)]: #ApplyExistingAngularVelocitySingle [ApplyLimits()]: #ApplyLimits [AttemptApplyLimits()]: #AttemptApplyLimits [CalculateAutoDriveVelocity()]: #CalculateAutoDriveVelocity [CalculateDirectionMultiplier()]: #CalculateDirectionMultiplier [CalculateDriveLimits(AngularDriveFacade)]: #CalculateDriveLimitsAngularDriveFacade [CalculateHingeLocation(Vector3)]: #CalculateHingeLocationVector3 [CalculateRotationMultiplier()]: #CalculateRotationMultiplier [CalculateValue(DriveAxis.Axis, FloatRange)]: #CalculateValueDriveAxis.Axis-FloatRange [GetSimpleEulerAngles()]: #GetSimpleEulerAngles [MatchActualTargetAngle(Single)]: #MatchActualTargetAngleSingle [Process()]: #Process [ProcessAutoDrive(Single)]: #ProcessAutoDriveSingle [ResetDrive()]: #ResetDrive [SetUpInternals()]: #SetUpInternals [Implements]: #Implements