XR8.HandController.pipelineModule()
XR8.HandController.pipelineModule()
Description
Creates a camera pipeline module that, when installed, receives callbacks on when the camera has started, camera proessing events, and other state changes. These are used to calculate the camera's position.
Parameters
None
Returns
Return value is an object made available to onUpdate
as:
processCpuResult.handcontroller: { rotation, position, intrinsics, cameraFeedTexture }
Property | Type | Description |
---|---|---|
rotation | {w, x, y, z} | The orientation (quaternion) of the camera in the scene. |
position | {x, y, z} | The position of the camera in the scene. |
intrinsics | [Number] | A 16 dimensional column-major 4x4 projection matrix that gives the scene camera the same field of view as the rendered camera feed. |
cameraFeedTexture | WebGLTexture | The texture containing camera feed data. |
Dispatched Events
handloading: Fires when loading begins for additional hand AR resources.
handloading.detail : {maxDetections, pointsPerDetection, rightIndices, leftIndices}
Property | Type | Description |
---|---|---|
maxDetections | Number | The maximum number of hands that can be simultaneously processed. |
pointsPerDetection | Number | Number of vertices that will be extracted per hand. |
rightIndices | [{a, b, c}] | Indexes into the vertices array that form the triangles of the hand mesh. |
leftIndices | [{a, b, c}] | Indexes into the vertices array that form the triangles of the hand mesh. |
handscanning: Fires when all hand AR resources have been loaded and scanning has begun.
handscanning.detail : {maxDetections, pointsPerDetection, rightIndices, leftIndices}
Property | Type | Description |
---|---|---|
maxDetections | Number | The maximum number of hands that can be simultaneously processed. |
pointsPerDetection | Number | Number of vertices that will be extracted per hand. |
rightIndices | [{a, b, c}] | Indexes into the vertices array that form the triangles of the hand mesh. |
leftIndices | [{a, b, c}] | Indexes into the vertices array that form the triangles of the hand mesh. |
handfound: Fires when a hand is first found.
handfound.detail : {id, transform, vertices, normals, attachmentPoints}
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located hand. |
transform | {position, rotation, scale} | Transform information of the located hand. |
vertices | [{x, y, z}] | Position of hand points, relative to transform. |
normals | [{x, y, z}] | Normal direction of vertices, relative to transform. |
handKind | Number | A numerical representation of the handedness of the located hand. Valid values are 0 (unspecified), 1 (left), and 2 (right). |
attachmentPoints | {name, position: {x,y,z}} | See XR8.HandController.AttachmentPoints for list of available attachment points. position is relative to the transform. |
transform
is an object with the following properties:
Property | Type | Description |
---|---|---|
position | {x, y, z} | The 3d position of the located hand. |
rotation | {w, x, y, z} | The 3d local orientation of the located hand. |
scale | Number | A scale factor that should be applied to objects attached to this hand. |
attachmentPoints
is an object with the following properties:
Property | Type | Description |
---|---|---|
name | String | The name of the attachment point. See XR8.HandController.AttachmentPoints for list of available attachment points. |
position | {x, y, z} | The 3d position of the attachment point on the located hand. |
rotation | {w, x, y, z} | The rotation quaternion that rotates positive-Y vector to the attachment point bone vector. |
innerPoint | {x, y, z} | The inner point of an attachment point. (ex. hand palm side) |
outerPoint | {x, y, z} | The outer point of an attachment point. (ex. hand backside) |
radius | Number | The radius of finger attachment points. |
minorRadius | Number | The shortest radius from hand surface to the wrist attachment point. |
majorRadius | Number | The longest radius from hand surface to the wrist attachment point. |
handupdated: Fires when a hand is subsequently found.
handupdated.detail : {id, transform, vertices, normals, attachmentPoints}
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located hand. |
transform | {position, rotation, scale} | Transform information of the located hand. |
vertices | [{x, y, z}] | Position of hand points, relative to transform. |
normals | [{x, y, z}] | Normal direction of vertices, relative to transform. |
handKind | Number | A numerical representation of the handedness of the located hand. Valid values are 0 (unspecified), 1 (left), and 2 (right). |
attachmentPoints | {name, position: {x,y,z}} | See XR8.HandController.AttachmentPoints for list of available attachment points. position is relative to the transform. |
transform
is an object with the following properties:
Property | Type | Description |
---|---|---|
position | {x, y, z} | The 3d position of the located hand. |
rotation | {w, x, y, z} | The 3d local orientation of the located hand. |
scale | Number | A scale factor that should be applied to objects attached to this hand. |
handlost: Fires when a hand is no longer being tracked.
handlost.detail : { id }
Property | Type | Description |
---|---|---|
id | Number | A numerical id of the located hand. |
Example - adding pipeline module
XR8.addCameraPipelineModule(XR8.HandController.pipelineModule())