Namespace Leap¶
- namespace Leap
HandModelBase defines abstract methods as a template for building Leap hand models
Typedefs
- TestHandPose = TestHandFactory.TestHandPose
Enums
- enum LeapEvent
An enumeration defining the types of Leap Motion events.
- Since
3.0
Values:
- EVENT_CONNECTION
A connection event has occurred.
- EVENT_CONNECTION_LOST
The connection with the service has been lost.
- EVENT_DEVICE
A device event has occurred.
- EVENT_DEVICE_FAILURE
A device failure event has occurred.
- EVENT_DEVICE_LOST
Event asserted when the underlying device object has been lost.
- EVENT_POLICY_CHANGE
A change in policy occurred.
- EVENT_CONFIG_RESPONSE
Response to a Config value request.
- EVENT_CONFIG_CHANGE
Success response to a Config value change.
- EVENT_FRAME
A tracking frame has been received.
- EVENT_INTERNAL_FRAME
An internal tracking frame has been received.
- EVENT_IMAGE_COMPLETE
A requested image is available.
- EVENT_IMAGE_REQUEST_FAILED
A requested image could not be provided.
- EVENT_DISTORTION_CHANGE
The distortion matrix used for image correction has changed.
- EVENT_LOG_EVENT
A diagnostic event has occurred.
- EVENT_INIT
- EVENT_DROPPED_FRAME
- EVENT_IMAGE
An unrequested image is available.
- EVENT_POINT_MAPPING_CHANGE
- EVENT_HEAD_POSE
- EVENT_FIDUCIAL_POSE
- enum MessageSeverity
Reports whether the message is for a severe failure, a recoverable warning, or a status change.
- Since
3.0
Values:
- MESSAGE_UNKNOWN
- MESSAGE_CRITICAL
- MESSAGE_WARNING
- MESSAGE_INFORMATION
A verbose, informational message
- enum Chirality
Supported chiralities
Values:
- Left
- Right
- enum ModelType
Supported hand model types
Values:
- Graphics
- Physics
- enum TrackingSource
Used to determine the source of the tracking data. NONE - Either not available or has not been detemined yet LEAPC - A direct connection to the Leap Service via LeapC OPENXR - An OpenXR connection, most likely not Ultraleap Tracking OPENXR_LEAP - An OpenXR connection, Ultraleap OpenXR layer is also active
Values:
- NONE
- LEAPC
- OPENXR
- OPENXR_LEAP
- enum ChiralitySelection
Values:
- LEFT
- RIGHT
- BOTH
- NONE
- class ActionDetector : public MonoBehaviour
Subclassed by Leap.GrabDetector, Leap.PinchDetector
- class Anchor : public MonoBehaviour
- class AnchorableBehaviour : public MonoBehaviour
AnchorableBehaviours mix well with InteractionBehaviours you’d like to be able to pick up and place in specific locations, specified by other GameObjects with an Anchor component.
Subclassed by Leap.PhysicalHandsAnchorable
- class AnchorGroup : public MonoBehaviour
- class AnchorSet : public Leap.SerializableHashSet<Anchor>
- struct BeginProfilingBlockArgs
- struct BeginProfilingForThreadArgs
- class BitConverterNonAlloc
- class Bone : public IEquatable<Bone>
The Bone class represents a tracked bone.
All fingers contain 4 bones that make up the anatomy of the finger. Get valid Bone objects from a Finger object.
Bones are ordered from base to tip, indexed from 0 to 3. Additionally, the bone’s Type enum may be used to index a specific bone anatomically.
The thumb does not have a base metacarpal bone and therefore contains a valid, zero length bone at that location.
- Since
2.0
Subclassed by Leap.Arm
- class CapsuleHand : public Leap.HandModelBase
The CapsuleHand is a basic Leap hand model that generates a set of spheres and cylinders to render hands using Leap hand data. It is constructed dynamically rather than using pre-existing geometry which allows hand visuals to scale to the size of the users hand and is a reliable way to visualize the raw tracking data.
- class Comment : public MonoBehaviour
- class Config
The Config class provides access to Leap Motion system configuration information.
- Since
1.0
- class ConfigChangeEventArgs : public Leap.LeapEventArgs
Dispatched when a configuration change is completed.
Provides the configuration key, whether the change was successful, and the id of the original change request.
- Since
3.0
- class ConnectionEventArgs : public Leap.LeapEventArgs
Dispatched when the connection is established.
- Since
3.0
- class ConnectionLostEventArgs : public Leap.LeapEventArgs
Dispatched when the connection is lost.
- Since
3.0
- class Controller : public Leap.IController
The Controller class is your main interface to the Leap Motion Controller.
Create an instance of this Controller class to access frames of tracking data and configuration information.Frame data can be polled at any time using the Controller.Frame() function.Call frame() or frame(0) to get the most recent frame.Set the history parameter to a positive integer to access previous frames.A controller stores up to 60 frames in its frame history.
Polling is an appropriate strategy for applications which already have an intrinsic update loop, such as a game. You can also subscribe to the FrameReady event to get tracking frames through an event delegate.
If the current thread implements a SynchronizationContext that contains a message loop, events are posted to that threads message loop. Otherwise, events are called on an independent thread and applications must perform any needed synchronization or marshalling of data between threads. Note that Unity3D does not create an appropriate SynchronizationContext object. Typically, event handlers cannot access any Unity objects.
- Since
1.0
- class CopyFromOtherExtensions
- class CSharpExtensions
Various C# extensions used by the Leap C# classes.
- Since
3.0
- class DebugHand : public Leap.HandModelBase
A HandModel that draws lines for the bones in the hand and its fingers.
The debugs lines are only drawn in the Editor Scene view (when a hand is tracked) and not in the Game view. Use debug hands when you aren’t using visible hands in a scene so that you can see where the hands are in the scene view.
- class Device : public IEquatable<Device>
The Device class represents a physically connected device.
The Device class contains information related to a particular connected device such as device id, field of view relative to the device, and the position and orientation of the device in relative coordinates.
The position and orientation describe the alignment of the device relative to the user. The alignment relative to the user is only descriptive. Aligning devices to users provides consistency in the parameters that describe user interactions.
Note that Device objects can be invalid, which means that they do not contain valid device information and do not correspond to a physical device.
- Since
1.0
- class DeviceEventArgs : public Leap.LeapEventArgs
Dispatched when a device is plugged in.
Provides the device as an argument.
- Since
3.0
- class DeviceFailureEventArgs : public Leap.LeapEventArgs
Dispatched when a device is plugged in, but fails to initialize or when a working device fails in use.
Provides the failure reason and, if available, the serial number.
- Since
3.0
- class DeviceList : public List<Device>
The DeviceList class represents a list of Device objects.
Get a DeviceList object by calling Controller.Devices().
- Since
1.0
- class DistortionData
The DistortionData class contains the distortion map for correcting the lens distortion of an image.
The distortion data is an array containing a 64x64 grid of floating point pairs. The distortion map for both sides of an image pair are stacked in the Data array the left map first, followed by the right map.
- Since
3.0
- class DistortionEventArgs : public Leap.LeapEventArgs
Dispatched when the image distortion map changes.
Provides the new distortion map as an argument.
- Since
3.0
- class DroppedFrameEventArgs : public Leap.LeapEventArgs
- class EnableDepthBuffer : public MonoBehaviour
- struct EndProfilingBlockArgs
- struct EndProfilingForThreadArgs
- class EnumEventTable : public ISerializationCallbackReceiver
- class FailedDevice : public IEquatable<FailedDevice>
The FailedDevice class provides information about Leap Motion hardware that has been physically connected to the client computer, but is not operating correctly.
Failed devices do not provide any tracking data and do not show up in the Controller.Devices() list.
Get the list of failed devices using Controller.FailedDevices().
- Since
3.0
- class FailedDeviceList : public List<FailedDevice>
The list of FailedDevice objects contains an entry for every failed Leap Motion hardware device connected to the client computer. FailedDevice objects report the device pnpID string and reason for failure.
Get the list of FailedDevice objects from Controller.FailedDevices().
- Since
3.0
- class FiducialPoseEventArgs : public Leap.LeapEventArgs
Dispatched when a Fiducial Marker is tracked
Note: Family and Size are not currently implemented
- class Finger
The Finger class represents a tracked finger.
Fingers are objects that the Leap Motion software has classified as a finger. Get valid Finger objects from a Frame or a Hand object.
- Since
1.0
- class FingerModel : public MonoBehaviour
The base class for all fingers.
This class serves as the interface between the HandController object, the parent Hand object and the concrete finger objects.
Subclasses of FingerModel must implement InitFinger() and UpdateFinger(). The InitHand() function is typically called by the parent HandModel InitHand() method; likewise, the UpdateFinger() function is typically called by the parent HandModel UpdateHand() function.
- class Frame : public IEquatable<Frame>
The Frame class represents a set of hand and finger tracking data detected in a single frame.
The Leap Motion software detects hands, fingers and tools within the tracking area, reporting their positions, orientations, gestures, and motions in frames at the Leap Motion frame rate.
Access Frame objects through an instance of the Controller class.
- Since
1.0
- class FrameEventArgs : public Leap.LeapEventArgs
Dispatched when a tracking frame is ready.
Provides the Frame object as an argument.
- Since
3.0
- class FromMatrixExtension
- class GrabDetector : public Leap.ActionDetector
A lightweight Grab Detector, that calculates a grab value based on the grab strength of the hand. Utilizes hysteresis to have different grab and ungrab thresholds.
- class Hand : public IEquatable<Hand>
The Hand class reports the physical characteristics of a detected hand.
Hand tracking data includes a palm position and velocity; vectors for the palm normal and direction to the fingers; and lists of the attached fingers.
Note that Hand objects can be invalid, which means that they do not contain valid tracking data and do not correspond to a physical entity. Invalid Hand objects can be the result of using the default constructor, or modifying the hand data in an incorrect way.
- Since
1.0
- class HandEnableDisable : public MonoBehaviour
A component to be attached to a HandModelBase to handle starting and ending of tracking. The parent gameobjet is activated when tracking begins and deactivated when tracking ends.
- class HandModel : public Leap.HandModelBase
The base class for all hand models, both graphics and physics.
This class serves as the interface between the LeapProvider and the concrete hand object containing the graphics and physics of a hand.
The UpdateHand() function is called in the Unity Update() phase for graphics HandModel instances; and in the Unity FixedUpdate() phase for physics objects. InitHand() is called once, when the hand is created and is followed by a call to UpdateHand().
- class HandModelBase : public MonoBehaviour
HandModelBase defines abstract methods as a template for building hand models. It allows you to receive tracking data for a left or right hand and it can be extended to drive hand visuals or physics representations of hands.
A HandModelBase will automatically subscribe and receive tracking data if there is a provider in the scene. The provider can be overridden (leapProvider).
Subclassed by Leap.CapsuleHand, Leap.DebugHand, Leap.HandModel, Leap.HandsModule.HandBinder
- class HandPoseDetector : public MonoBehaviour
- class HandPoseEditor : public Leap.LeapProvider
- class HandPoseRecorder : public MonoBehaviour
- class HandPoseScriptableObject : public ScriptableObject
- class HandPoseViewer : public Leap.LeapProvider
- class Hands
Static convenience methods and extension methods for getting useful Hand data.
- class HandTrackingHintManager
- class HandTrackingSourceUtility
- class HandUtils
Utility methods for constructing and manipulating Leap hand object data.
- class HeadPoseEventArgs : public Leap.LeapEventArgs
- interface ICanReportDuplicateInformation
Subclassed by Leap.SerializableHashSet< T >
- interface IController : public IDisposable
Subclassed by Leap.Controller
- class ImageEventArgs : public Leap.LeapEventArgs
Dispatched when an unrequested Image is ready.
Provides the Image object as an argument.
- Since
4.0
- class InternalFrameEventArgs : public Leap.LeapEventArgs
- interface IPoolable
Implement this interface to recieve a callback whenever your object is spawned from a pool.
- class KabschSolver
- class LeapEventArgs : public EventArgs
A generic object with no arguments beyond the event type.
- Since
3.0
Subclassed by Leap.ConfigChangeEventArgs, Leap.ConnectionEventArgs, Leap.ConnectionLostEventArgs, Leap.DeviceEventArgs, Leap.DeviceFailureEventArgs, Leap.DistortionEventArgs, Leap.DroppedFrameEventArgs, Leap.FiducialPoseEventArgs, Leap.FrameEventArgs, Leap.HeadPoseEventArgs, Leap.ImageEventArgs, Leap.InternalFrameEventArgs, Leap.LogEventArgs, Leap.PointMappingChangeEventArgs, Leap.PolicyEventArgs, Leap.SetConfigResponseEventArgs
- class LeapImageRetriever : public MonoBehaviour
Acquires images from a LeapServiceProvider and uploads image data as shader global data for use by any shaders that render those images.
Note: To use the LeapImageRetriever, you must be on version 2.1 or newer and you must enable “Allow Images” in your Leap Motion settings.
- class LeapProvider : public MonoBehaviour
Provides Frame object data to the Unity application by firing events as soon as Frame data is available. Frames contain all currently tracked Hands in view of the Leap Motion Controller.
LeapProvider defines the basic interface our plugin expects to use to retrieve Frame data. This abstraction allows you to create your own LeapProviders, which is useful when testing or developing in a context where Ultraleap Hand Tracking hardware isn’t immediately available.
Subclassed by Leap.HandPoseEditor, Leap.HandPoseViewer, Leap.LeapServiceProvider, Leap.PhysicalHands.PhysicalHandsManager, Leap.PostProcessProvider, Leap.Tracking.OpenXR.OpenXRLeapProvider, Leap.XRHandsLeapProvider, Leap.XRLeapProviderManager
- class LeapProviderExtensions
- class LeapServiceProvider : public Leap.LeapProvider
The LeapServiceProvider provides tracked Leap Hand data and images from the device via the Leap service running on the client machine.
It communicates with the Ultraleap Tracking Service running on your platform, and provides Frame objects containing Leap hands to your application. Generally, any class that needs hand tracking data from the camera will need a reference to a LeapServiceProvider to get that data.
Subclassed by Leap.LeapXRServiceProvider
- struct LeapTransform
The LeapTransform class represents a transform in three dimensional space.
Note that the LeapTransform class replaces the Leap.Matrix class.
- Since
3.1.2
- class LeapXRHandProvider : public XRHandSubsystemProvider
- class LeapXRServiceProvider : public Leap.LeapServiceProvider
The LeapXRServiceProvider expands on the standard LeapServiceProvider to account for the offset of the Leap device with respect to the attached HMD and warp tracked hand positions based on the motion of the headset to account for the differing latencies of the two tracking systems.
This component can be placed anywhere in your scene as long as mainCamera references the XR camera.
- class LogEventArgs : public Leap.LeapEventArgs
Dispatched when loggable events are generated by the service and the service connection code.
Provides the severity rating, log text, and timestamp as arguments.
- Since
3.0
- class MetadataUtil
This class captures information regarding use of the Ultraleap Unity Plugin This data is anonymized and only sent to Ultraleap when you choose to allow it. You can change your analytics preferences in the Ultraleap Tracking Control Panel. “Settings > Help Improve Tracking”
- class PhysicalHandsAnchorable : public Leap.AnchorableBehaviour, public Leap.PhysicalHands.IPhysicalHandGrab, public Leap.PhysicalHands.IPhysicalHandHover
- class PinchDetector : public Leap.ActionDetector
A lightweight Pinch Detector, that calculates a pinch value based on the distance between the provided finger tip and the thumb tip. Utilizes hysteresis to have different pinch and unpinch thresholds.
- struct PointMapping
- class PointMappingChangeEventArgs : public Leap.LeapEventArgs
Dispatched when point mapping change events are generated by the service.
- Since
4.0
- class PolicyEventArgs : public Leap.LeapEventArgs
Dispatched when a policy change is complete.
Provides the current and previous policies as arguments.
- Since
3.0
- class Pool<T>
A very lightweight pool implementation. When you call Spawn, an object of type T will be returned. If the pool was not empty, the T will be taken from the pool. If the pool was empty, a new T will be constructed and returned instead. Calling recycle will return a T to the pool.
It is not required to implement the IPoolable interface to use the Pool class, which allows you to pool types such as List or Dictionary, types which you have no control over. But make sure that you clean up these objects before you recycle them!
Example workflow for types you DO NOT have control over:
// " // (XML fix for Visual Studio) var obj = Pool\<T\>.Spawn(); obj.Init(stuff); //Do something with obj obj.Clear(); Pool\<T\>.Recycle(obj); // " // (Close XML fix for Visual Studio)
Example workflow for types you DO have control over:
// " // (XML fix for Visual Studio) var obj = Pool\<T\>.Spawn(); obj.Init(stuff); // Do something with obj obj.Dispose(); // e.g. call Recycle(this) in the Dispose() implementation // " // (Close XML fix for Visual Studio)
- class PoseExtensions
- class PostProcessProvider : public Leap.LeapProvider
Subclassed by Leap.HandsModule.DistortTrackingDataToVisuals
- class ProduceConsumeBuffer<T>
- struct ReadonlyHashSet<T>
A simple wrapper around HashSet to provide readonly access. Useful when you want to return a HashSet to someone but you want to make sure they don’t muck it up!
- class RingBuffer<T>
- class SerializableHashSet<T> : public Leap.SerializableHashSetBase, public Leap.ICanReportDuplicateInformation, public ISerializationCallbackReceiver, public IEnumerable<T>
- class SerializableHashSetBase
Subclassed by Leap.SerializableHashSet< T >
- class SetConfigResponseEventArgs : public Leap.LeapEventArgs
Dispatched when a configuration change is completed.
Provides the configuration key, whether the change was successful, and the id of the original change request.
- Since
3.0
- class SimpleAnchorFeedback : public MonoBehaviour
- class SimpleFacingCameraCallbacks : public MonoBehaviour
- struct SingleLayer : public IEquatable<SingleLayer>
An object you can use to represent a single Unity layer as a dropdown in the inspector. Can be converted back and forth between the integer representation Unity usually uses in its own methods.
- class SmoothedFloat
Time-step independent exponential smoothing.
When moving at a constant speed: speed * delay = Value - SmoothedFloat.value.
- class SubsystemStarter
- class Swizzle
- class TestHandFactory
- class TrackingMarker : public MonoBehaviour
- class TrackingMarkerObject : public MonoBehaviour
- class TransformExtensions
- class TransformHistory
Implements a resample-able transform history.
- class UltraleapSettings : public ScriptableObject
- class Utils
- class VisualFOV
Class to generate meshes that can be used for field of view visualization. Set the FOV variables depending on the device type used, call UpdateFOVs() and access the meshes OptimalFOVMesh, NoTrackingFOVMesh and MaxFOVMesh.
- class XRHandsLeapProvider : public Leap.LeapProvider
A LeapProvider that converts XRHands Subsystem data to a Leap.Frame for use in features that use Leap.Frame and LeapProviders as a data source.
- class XRHandsUtils
- class XRLeapProviderManager : public Leap.LeapProvider
XRLeapProviderManager offers a single access point while selecting the most suitable Hand Tracking Data source available at the time of application launch. The order of selection is: UL OpenXR -> Leap Direct -> OpenXR
- class XRSupportUtil
Wraps various (but not all) “XR” calls with Unity 5.6-supporting “VR” calls via #ifdefs.
- namespace Attachments
Enums
- enum AttachmentPointFlags
Flags for attachment points on the hand.
Values:
- None
- Wrist
- Palm
- ThumbProximalJoint
- ThumbDistalJoint
- ThumbTip
- IndexKnuckle
- IndexMiddleJoint
- IndexDistalJoint
- IndexTip
- MiddleKnuckle
- MiddleMiddleJoint
- MiddleDistalJoint
- MiddleTip
- RingKnuckle
- RingMiddleJoint
- RingDistalJoint
- RingTip
- PinkyKnuckle
- PinkyMiddleJoint
- PinkyDistalJoint
- PinkyTip
- PinchPoint
- class AttachmentHand : public MonoBehaviour
This MonoBehaviour is managed by an AttachmentHands component on a parent MonoBehaviour. Instead of adding AttachmentHand directly to a GameObject, add an AttachmentHands component to a parent GameObject to manage the construction and updating of AttachmentHand objects.
- class AttachmentHandEnableDisable : public MonoBehaviour
- class AttachmentHands : public MonoBehaviour
Add an GameObject with this script to your scene if you would like to have a Transform hierarchy that will follow various important points on a hand, whether for visuals or for logic. The AttachmentHands object will maintain two child objects, one for each of the player’s hands. Use the Inspector to customize which points you’d like to see in the hierarchy beneath the individual AttachmentHand objects.
- class AttachmentPointBehaviour : public MonoBehaviour
Simple container class for storing a reference to the attachment point this transform corresponds to within an AttachmentHand. Also contains mappings from a single AttachmentPointFlags flag constant to the relevant bone on a Leap.Hand; these mappings can be accessed statically via GetLeapHandPointData().
Can also be used to refer to a single AttachmentPointFlags flag constant (implicit conversion).
- class AttachmentPointFlagsExtensions
- namespace Attributes
Typedefs
- UnityObject = UnityEngine.Object
- class CombinablePropertyAttribute : public PropertyAttribute
Subclassed by Leap.Attributes.DisableAttribute, Leap.Attributes.DisableIfBase, Leap.Attributes.EditTimeOnly, Leap.Attributes.EnumFlags, Leap.Attributes.IndentAttribute, Leap.Attributes.InspectorNameAttribute, Leap.Attributes.MaxValue, Leap.Attributes.MinMax, Leap.Attributes.MinValue, Leap.Attributes.OnEditorChangeAttribute, Leap.Attributes.UnitsAttribute
- class DisableAttribute : public Leap.Attributes.CombinablePropertyAttribute, public Leap.Attributes.IPropertyDisabler
- class DisableIf : public Leap.Attributes.DisableIfBase
- class DisableIfAll : public Leap.Attributes.DisableIfBase
- class DisableIfAny : public Leap.Attributes.DisableIfBase
- class DisableIfBase : public Leap.Attributes.CombinablePropertyAttribute, public Leap.Attributes.IPropertyDisabler
Conditionally disables a property based on the value of another property. The only condition types that are currently supported are bool types, and enum types. The property has two arguments names ‘equalTo’ and ‘notEqualTo’. Exactly one of them must be specified, like so:
[DisableIf(“myBoolProperty”, isEqualTo: true)] [DisableIf(“myEnumProperty”, isNotEqualTo: MyEnum.Value)] [DisableIfAny(“bool1”, “bool2”, isEqualTo: false)] [DisableIfAll(“cond1”, “cond2”, “cond3”, isNotEqualTo: true)]
Subclassed by Leap.Attributes.DisableIf, Leap.Attributes.DisableIfAll, Leap.Attributes.DisableIfAny, Leap.Attributes.DisableIfEqual, Leap.Attributes.DisableIfNotEqual
- class DisableIfEqual : public Leap.Attributes.DisableIfBase
- class DisableIfNotEqual : public Leap.Attributes.DisableIfBase
- class EditTimeOnly : public Leap.Attributes.CombinablePropertyAttribute, public Leap.Attributes.IPropertyDisabler
- class EnumFlags : public Leap.Attributes.CombinablePropertyAttribute, public Leap.Attributes.IFullPropertyDrawer
- interface IAdditiveDrawer
Subclassed by Leap.Attributes.IAfterFieldAdditiveDrawer, Leap.Attributes.IAfterLabelAdditiveDrawer, Leap.Attributes.IBeforeFieldAdditiveDrawer, Leap.Attributes.IBeforeLabelAdditiveDrawer
- interface IAfterFieldAdditiveDrawer : public Leap.Attributes.IAdditiveDrawer
Subclassed by Leap.Attributes.UnitsAttribute
- interface IAfterLabelAdditiveDrawer : public Leap.Attributes.IAdditiveDrawer
- interface IBeforeFieldAdditiveDrawer : public Leap.Attributes.IAdditiveDrawer
- interface IBeforeLabelAdditiveDrawer : public Leap.Attributes.IAdditiveDrawer
Subclassed by Leap.Attributes.IndentAttribute
- interface IFullPropertyDrawer
Subclassed by Leap.Attributes.EnumFlags, Leap.Attributes.InspectorNameAttribute, Leap.Attributes.MinMax
- class IndentAttribute : public Leap.Attributes.CombinablePropertyAttribute, public Leap.Attributes.IBeforeLabelAdditiveDrawer
- class InspectorNameAttribute : public Leap.Attributes.CombinablePropertyAttribute, public Leap.Attributes.IFullPropertyDrawer
- interface IPropertyConstrainer
Subclassed by Leap.Attributes.MaxValue, Leap.Attributes.MinValue
- interface IPropertyDisabler
Subclassed by Leap.Attributes.DisableAttribute, Leap.Attributes.DisableIfBase, Leap.Attributes.EditTimeOnly
- interface ISupportDragAndDrop
- interface ITopPanelDrawer
- class MaxValue : public Leap.Attributes.CombinablePropertyAttribute, public Leap.Attributes.IPropertyConstrainer
- class MinMax : public Leap.Attributes.CombinablePropertyAttribute, public Leap.Attributes.IFullPropertyDrawer
- class MinValue : public Leap.Attributes.CombinablePropertyAttribute, public Leap.Attributes.IPropertyConstrainer
- class OnEditorChangeAttribute : public Leap.Attributes.CombinablePropertyAttribute
Use the OnChange attribute to recieve a callback whenever a field is changed. The callback can be in the form of:
A method accepting zero arguments
A method accepting a single argument matching the field type (new value is passed in as the argument)
A property matching the type of the field (the setter is called with the new value)
- class UnitsAttribute : public Leap.Attributes.CombinablePropertyAttribute, public Leap.Attributes.IAfterFieldAdditiveDrawer
- namespace Encoding
- interface IInterpolable<T>
An interface that signifies this class can interpolate via the standard techniques
- class VectorHand : public Leap.Encoding.IInterpolable<VectorHand>
A Vector-based encoding of a Leap Hand.
You can Encode a VectorHand from a Leap hand, Decode a VectorHand into a Leap hand, convert the VectorHand to a compressed byte representation using FillBytes, and decompress back into a VectorHand using FromBytes.
- class VectorHandExtensions
Defines Utility Extension Methods for a VectorHand
- namespace Examples
- class IgnoreCollisionsInChildren : public MonoBehaviour
This utility script scans through its Transform’s children and tells PhysX to ignore collisions between all pairs of Colliders it finds. This is particlarly useful, for example, for interfaces, where buttons shouldn’t collide with other buttons.
This is not the recommended strategy in general: It is much more optimal for your application to put interface objects on a layer and disable self-collision for that layer in your Physics settings (Edit / Project Settings / Physics).
- namespace HandsModule
Enums
- enum BoundTypes
ENUM types for bones of the hand the hand binder can attach to
Values:
- THUMB_METACARPAL
- THUMB_PROXIMAL
- THUMB_INTERMEDIATE
- THUMB_DISTAL
- INDEX_METACARPAL
- INDEX_PROXIMAL
- INDEX_INTERMEDIATE
- INDEX_DISTAL
- MIDDLE_METACARPAL
- MIDDLE_PROXIMAL
- MIDDLE_INTERMEDIATE
- MIDDLE_DISTAL
- RING_METACARPAL
- RING_PROXIMAL
- RING_INTERMEDIATE
- RING_DISTAL
- PINKY_METACARPAL
- PINKY_PROXIMAL
- PINKY_INTERMEDIATE
- PINKY_DISTAL
- WRIST
- ELBOW
- class BoneNameDefinitions
Used to define what bones names are valid for each finger
- class BoundBone
A data structure to define starting position, an offset and the Transform reference found in the scene
- class BoundFinger
A data structure to define a finger
- class BoundHand
A data structure to define all the fingers in a hand, the wrist and elbow
- class DistortTrackingDataToVisuals : public Leap.PostProcessProvider
A post process provider that allows hand visuals to generate leap hands that can be used to distort tracking data to visuals This should be used in cases where you have visual hands that do not conform to leap data size, e.g. a monster hand that has extra long fingers
- class HandBinder : public Leap.HandModelBase
The HandBinder allows you to use your own hand models so that they follow the leap tracking data. You can bind your model by specifying transforms for the different joints and use the debug and fine tuning options to test and adjust it.
- class HandBinderAutoBinder
- class HandBinderUtilities
- class HandModelManager : public MonoBehaviour
A script to manage the active hand models in the scene
- class SerializedTransform
A data structure to store information about a transform and a Gameobject
- class ShowArm : public MonoBehaviour
This script makes it easy to swap between two hand meshes. It is meant to be used with one hand mesh that includes an arm and one that doesn’t. It attempts to automatically find the meshes based on their names when adding this component or when resetting it.
- class TransformStore
A data structure to store a transforms position and rotation
- namespace InputActions
- class LeapHandInput : public InputDevice
An Input Device generated using two individual hand Input Devices representing left and right hands.
- struct LeapHandState : public IInputStateTypeInfo
The structure used to pass hand data to InputDevices
- class XRHandsInputActionUpdater
Updates Ultraleap Input Actions with the latest available hand data Must be provided information from a LeapProvider
- namespace PhysicalHands
- class ContactBone : public MonoBehaviour
Subclassed by Leap.PhysicalHands.HardContactBone, Leap.PhysicalHands.NoContactBone, Leap.PhysicalHands.SoftContactBone
- class ContactHand : public MonoBehaviour
Subclassed by Leap.PhysicalHands.HardContactHand, Leap.PhysicalHands.NoContactHand, Leap.PhysicalHands.SoftContactHand
- class ContactParent : public MonoBehaviour
Subclassed by Leap.PhysicalHands.HardContactParent, Leap.PhysicalHands.NoContactParent, Leap.PhysicalHands.SoftContactParent
- class ContactUtils
- class GrabBall : public MonoBehaviour, public Leap.PhysicalHands.IPhysicalHandGrab
A representation of an object with an attached object which can be restricted relative to the users head
Most useful for 3D UI panels to ensure they are reachable
- class GrabHelper : public MonoBehaviour
- class GrabHelperObject
- class HandFadeInAtDistanceFromRealData : public MonoBehaviour
- class HardContactBone : public Leap.PhysicalHands.ContactBone
- class HardContactHand : public Leap.PhysicalHands.ContactHand
- class HardContactParent : public Leap.PhysicalHands.ContactParent
- class IgnorePhysicalHands : public MonoBehaviour
- interface IPhysicalHandContact
Reports the contact event when any part of the hand is in contact with an interactable rigidbody. This will be called dependant on the contact distance set by the hand.
Subclassed by Leap.PhysicalHands.PhysicalHandEvents, Leap.PhysicalHands.PhysicalHandsButtonHelper, Leap.PhysicalHands.PhysicalHandsSliderHelper
- interface IPhysicalHandGrab
Reports the grab event when a grab helper starts or stops grabbing a rigidbody.
Subclassed by Leap.PhysicalHands.GrabBall, Leap.PhysicalHands.PhysicalHandEvents, Leap.PhysicalHands.PhysicalHandsSliderHelper, Leap.PhysicalHandsAnchorable
- interface IPhysicalHandHover
Reports the hover event, called when a grab helper is created for the hand. This is a relatively low accuracy hover.
Subclassed by Leap.PhysicalHands.PhysicalHandEvents, Leap.PhysicalHands.PhysicalHandsButtonHelper, Leap.PhysicalHandsAnchorable
- interface IPhysicalHandPrimaryHover
Reports the primary hover event when a grab helper starts or stops being the primary hover object.
Subclassed by Leap.PhysicalHands.PhysicalHandsButtonHelper
- class NoContactBone : public Leap.PhysicalHands.ContactBone
- class NoContactHand : public Leap.PhysicalHands.ContactHand
- class NoContactParent : public Leap.PhysicalHands.ContactParent
- class PhysExts
- class PhysicalHandEvents : public MonoBehaviour, public Leap.PhysicalHands.IPhysicalHandHover, public Leap.PhysicalHands.IPhysicalHandContact, public Leap.PhysicalHands.IPhysicalHandGrab
- class PhysicalHandsButton : public MonoBehaviour
Subclassed by Leap.PhysicalHands.PhysicalHandsButtonToggle
- class PhysicalHandsButtonHelper : public MonoBehaviour, public Leap.PhysicalHands.IPhysicalHandContact, public Leap.PhysicalHands.IPhysicalHandHover, public Leap.PhysicalHands.IPhysicalHandPrimaryHover
- class PhysicalHandsButtonToggle : public Leap.PhysicalHands.PhysicalHandsButton
Class for toggling a button using physical hands.
- class PhysicalHandsManager : public Leap.LeapProvider
- class PhysicalHandsSlider : public MonoBehaviour
- class PhysicalHandsSliderHelper : public MonoBehaviour, public Leap.PhysicalHands.IPhysicalHandGrab, public Leap.PhysicalHands.IPhysicalHandContact
This class is purely to get events from the slideable object. You do not need to add this class to your object, it will be added automatically by the slider.
- class PhysicalHandUtils
- class SoftContactBone : public Leap.PhysicalHands.ContactBone
- class SoftContactHand : public Leap.PhysicalHands.ContactHand
- class SoftContactParent : public Leap.PhysicalHands.ContactParent
- namespace Readme
- class SceneReadmePing : public MonoBehaviour
- namespace RuntimeGizmos
- interface IRuntimeGizmoComponent
Have your MonoBehaviour implement this interface to be able to draw runtime gizmos. You must also have a RuntimeGizmoManager component in the scene to recieve callbacks.
- class RuntimeGizmoDrawer
- class RuntimeGizmoExtensions
- class RuntimeGizmoManager : public MonoBehaviour
- class RuntimeGizmoToggle : public MonoBehaviour
This class controls the display of all the runtime gizmos that are either attatched to this gameObject, or a child of this gameObject. Enable this component to allow the gizmos to be drawn, and disable it to hide them.
- namespace Tracking
- namespace OpenXR
Enums
- enum Handedness
Which of the user’s two hands this hand tracker tracks.
Values:
- Left
The user’s left hand
- Right
The user’s right hand
- enum HandJoint
The hand joints according to the OpenXR Specification
.
Values:
- Palm
- Wrist
- ThumbMetacarpal
- ThumbProximal
- ThumbDistal
- ThumbTip
- IndexMetacarpal
- IndexProximal
- IndexIntermediate
- IndexDistal
- IndexTip
- MiddleMetacarpal
- MiddleProximal
- MiddleIntermediate
- MiddleDistal
- MiddleTip
- RingMetacarpal
- RingProximal
- RingIntermediate
- RingDistal
- RingTip
- LittleMetacarpal
- LittleProximal
- LittleIntermediate
- LittleDistal
- LittleTip
- Elbow
- enum HandJointSet
Values:
- Default
The Default OpenXR hand set of 26 joints per-hand, including the palm and wrist.
- HandWithForearm
Default hand-set with the addition of the elbow joint on the forearm.
This requires the Ultraleap extension
XR_ULTRALEAP_hand_tracking_forearm
- struct HandJointLocation
Represents a user’s hand joint with positional and optional velocity information.
- class HandTracker
Tracker for a single user’s hand, allow tracking of individual joints.
- class HandTrackingFeature : public OpenXRFeature
Enables OpenXR hand-tracking support via the XR_EXT_hand_tracking
OpenXR extension.
- class OpenXRLeapProvider : public Leap.LeapProvider
- class OpenXRUtility
A utility to pass data to the core plugin through one central entry point
- namespace Unity
- namespace MRTK
- class LeapMRTKSubsystem : public HandsSubsystem