HandPosing
A tool for quickly authoring hand poses to objects in VR using hand-tracking
HandPosing.SnapSurfaces.CylinderSurface Class Reference

This type of surface defines a cylinder in which the grip pose is valid around an object. An angle can be used to constrain the cylinder and not use a full circle. The radious is automatically specified as the distance from the axis of the cylinder to the original grip position. More...

Inheritance diagram for HandPosing.SnapSurfaces.CylinderSurface:
HandPosing.SnapSurfaces.SnapSurface

Public Member Functions

override HandPose InvertedPose (HandPose pose)
 STUB: Inverts a hand pose to an upside-down position. More...
 
override Pose MirrorPose (Pose pose)
 Method for mirroring a Pose around the surface. Different surfaces will prefer mirroring along different axis. More...
 
override Vector3 NearestPointInSurface (Vector3 targetPosition)
 The nearest position at the surface from a given position. More...
 
override Pose MinimalRotationPoseAtSurface (Pose userPose, Pose snapPose)
 Calculates a valid pose at the surface with the most similar rotation possible to the user's hand More...
 
override Pose MinimalTranslationPoseAtSurface (Pose userPose, Pose snapPose)
 Calculates a valid pose at the surface with the most similar position possible to the user's hand More...
 

Protected Member Functions

Quaternion CalculateRotationOffset (Vector3 surfacePoint, Quaternion desiredRotation)
 

Properties

override SnapSurfaceData Data [get, set]
 
Vector3 StartAngleDir [get]
 Direction from the axis of the cylinder to the original grip position. More...
 
Vector3 EndAngleDir [get]
 Direction from the axis of the cylinder to the maximum angle alowance. More...
 
Vector3 StartPoint [get, set]
 Base cap of the cylinder, in world coordinates. More...
 
Vector3 EndPoint [get, set]
 End cap of the cylinder, in world coordinates. More...
 
float Angle [get, set]
 The maximum angle for the surface of the cylinder, starting from the original grip position. To invert the direction of the angle, swap the caps order. More...
 
float Radious [get]
 The generated radious of the cylinder. Represents the distance from the axis of the cylinder to the original grip position. More...
 
Vector3? Direction [get]
 The direction of the central axis of the cylinder. More...
 
- Properties inherited from HandPosing.SnapSurfaces.SnapSurface
virtual SnapSurfaceData Data [get, set]
 Getter for the data-only version of this surface. Used so it can be stored when created at Play-Mode. More...
 
Transform GripPoint [get]
 Valid point at which the hand can snap, typically the SnapPoint position itself. More...
 

Additional Inherited Members

- Public Attributes inherited from HandPosing.SnapSurfaces.SnapSurface
Transform relativeTo
 Object to which the surface refers to. More...
 

Detailed Description

This type of surface defines a cylinder in which the grip pose is valid around an object. An angle can be used to constrain the cylinder and not use a full circle. The radious is automatically specified as the distance from the axis of the cylinder to the original grip position.

Member Function Documentation

◆ InvertedPose()

override HandPose HandPosing.SnapSurfaces.CylinderSurface.InvertedPose ( HandPose  pose)
virtual

STUB: Inverts a hand pose to an upside-down position.

Parameters
poseThe hand pose to be inverted
Returns
An upside-down version of the given pose.

Implements HandPosing.SnapSurfaces.SnapSurface.

◆ MinimalRotationPoseAtSurface()

override Pose HandPosing.SnapSurfaces.CylinderSurface.MinimalRotationPoseAtSurface ( Pose  userPose,
Pose  snapPose 
)
virtual

Calculates a valid pose at the surface with the most similar rotation possible to the user's hand

Parameters
userPoseThe user's hand pose
snapPoseThe pose for the snap point
Returns
A valid pose at the surface

Implements HandPosing.SnapSurfaces.SnapSurface.

◆ MinimalTranslationPoseAtSurface()

override Pose HandPosing.SnapSurfaces.CylinderSurface.MinimalTranslationPoseAtSurface ( Pose  userPose,
Pose  snapPose 
)
virtual

Calculates a valid pose at the surface with the most similar position possible to the user's hand

Parameters
userPoseThe user's hand pose
snapPoseThe pose for the snap point
Returns
A valid pose at the surface

Implements HandPosing.SnapSurfaces.SnapSurface.

◆ MirrorPose()

override Pose HandPosing.SnapSurfaces.CylinderSurface.MirrorPose ( Pose  pose)
virtual

Method for mirroring a Pose around the surface. Different surfaces will prefer mirroring along different axis.

Parameters
poseThe Pose to be mirrored.
Returns
A new pose mirrored at this surface.

Reimplemented from HandPosing.SnapSurfaces.SnapSurface.

◆ NearestPointInSurface()

override Vector3 HandPosing.SnapSurfaces.CylinderSurface.NearestPointInSurface ( Vector3  targetPosition)
virtual

The nearest position at the surface from a given position.

Parameters
targetPositionThe position to measure from at world coordinates.
Returns
A valid position at the surface in world coordinates.

Implements HandPosing.SnapSurfaces.SnapSurface.

Property Documentation

◆ Angle

float HandPosing.SnapSurfaces.CylinderSurface.Angle
getset

The maximum angle for the surface of the cylinder, starting from the original grip position. To invert the direction of the angle, swap the caps order.

◆ Direction

Vector3? HandPosing.SnapSurfaces.CylinderSurface.Direction
get

The direction of the central axis of the cylinder.

◆ EndAngleDir

Vector3 HandPosing.SnapSurfaces.CylinderSurface.EndAngleDir
get

Direction from the axis of the cylinder to the maximum angle alowance.

◆ EndPoint

Vector3 HandPosing.SnapSurfaces.CylinderSurface.EndPoint
getset

End cap of the cylinder, in world coordinates.

◆ Radious

float HandPosing.SnapSurfaces.CylinderSurface.Radious
get

The generated radious of the cylinder. Represents the distance from the axis of the cylinder to the original grip position.

◆ StartAngleDir

Vector3 HandPosing.SnapSurfaces.CylinderSurface.StartAngleDir
get

Direction from the axis of the cylinder to the original grip position.

◆ StartPoint

Vector3 HandPosing.SnapSurfaces.CylinderSurface.StartPoint
getset

Base cap of the cylinder, in world coordinates.


The documentation for this class was generated from the following file: