AttachPoint
- Last UpdatedDec 14, 2023
- 5 minute read
The AttachPoint node creates a coordinate system where a manipulable item can be positioned by the manipulation system.
See the Using the manipulation system for more information on how to set up and manage a manipulation-based application.
Platform support
This node is supported on XR-Windows platform only.
|
XR-WIN |
XR-P-WIN |
XR-P-IOS |
XR-P-AND |
XR-P-WASM |
|---|---|---|---|---|
|
Full support |
No support |
No support |
No support |
No support |
|
|
|
|
|
|
AttachPoint characteristics
-
By default, an AttachPoint can accept any manipulated item.
-
By setting a value to attachableManipulables, you can restrict interaction to a limited list of manipulable nodes.
-
The radius parameter defines the sphere of interaction of an AttachPoint. If the manipulated object is outside the sphere, then there is no possible interaction with the AttachPoint.
-
The attachTo parameter of the manipulable can bypass the attachableManipulables restriction, because this influences the behavior of the manipulator only.
Moving an AttachPoint
It can be useful to parent an AttachPoint. For example, if a screwdriver on an AttachPoint is placed inside a toolbox that is moved, the screwdriver must move accordingly. This can be achieved by copying the parent object matrix into the AttachPoint matrix field by using Transform position, rotation, and scale fields to reflect the values of the parent and then use positionOffset, rotationOffset, and scaleOffset to offset the AttachPoint from the parent itself.
Ghost
When a manipulated item enters into the radius sphere of a compatible and active attachPoint, its ghost, if defined, appears on the attach point.
.
Code example
This is a code example for the AttachPoint node.
<AttachPoint name="toolbox_labRoom_POA" templateInfo="AttachPoint|toolbox_labRoom_POA" extraParams="{sector=sec_lab}" position="-0.4427317 0.8069129 -1.359936" rotation="0 0 0 1" />
AttachPoint fields
These are the fields for AttachPoint node. Only the node-specific fields are indicated, not fields obtained by inheritance.
Field inheritance: NodeBase > AttachPoint
|
Fields |
Type |
Use |
Default value |
Description |
|---|---|---|---|---|
|
active |
sbool |
Optional |
true |
Enables and disables the AttachPoint . The disabling does not impact the Manipulable attachTo parameter functionality. |
|
attachableManipulables |
mstring |
Optional |
List of allowed manipulables whose nodes can be attached. When not set (void), no restriction is applied. This does not impact the Manipulable attachTo parameter functionality. |
|
|
attachableManipulablesMatrices |
dstring |
Optional |
Can assign an offset matrix to any specific manipulable so that when the node is placed on the AttachPoint , positioning is modified accordingly. In this dictionary, the keys must be the names of Manipulable nodes and the values must be matrices. |
|
|
debug |
sbool |
Optional |
false |
If set to true, enables sensor visualization when 3D Debug is running. |
|
matrix |
smatrix |
Optional |
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 |
This Matrix represents a space transformation that concurs to the final transformation of the node. It contributes to the node transformation as follows: TransformOffset * Transform * matrix. Being the last transformation applied to the node, it can be used as a parenting mechanism. |
|
position |
svec3 |
Optional |
0 0 0 |
The position of the attach point coordinate system. |
|
positionOffset |
svec3 |
Optional |
0 0 0 |
This field can be used to position the TransformOffset coordinate system. The TransformOffset coordinate system is composed as follows: scaleOffset * rotationOffset * positionOffset and it contributes to the node transformation as follows: TransformOffset * Transform * matrix. |
|
rotation |
squat |
Optional |
0 0 0 1 |
Rotates the Transform coordinate system. The Transform coordinate system is composed as follows: scale * rotation * position and it contributes to the node transformation as follows: TransformOffset * Transform * matrix * Parent. In cases where no parent is expressed, Parent corresponds to the World coordinate system (Identity). You can edit this field by using any type of Eulerian representation of the rotation from the Graphic Context Editor Interface if the editor preferences are set accordingly. See Rotate content in the 3D View. |
|
rotationOffset |
squat |
Optional |
0 0 0 1 |
Rotates the TransformOffset coordinate system. The TransformOffset coordinate system is composed as follows: scaleOffset * rotationOffset * positionOffset and it contributes to the node transformation as follows: TransformOffset * Transform * matrix. You can edit this field by using Eulerian representation of the rotation from the Graphic Context Editor Interface if the editor preferences are set accordingly. See Rotate content in the 3D View. |
|
scale |
svec3 |
Optional |
1 1 1 |
Scales the Transform coordinate system. The Transform coordinate system is composed as follows: scale * rotation * position and it contributes to the node transformation as follows: TransformOffset * Transform * matrix * Parent. In cases where no parent is expressed, Parent corresponds to the World coordinate system (Identity). Note: Scaling an AttachPoint Node will not affect its radius. The use of this field should be avoided in most cases because it can only affect the space transformations without a proper 3D geometrical representation of it. |
|
scaleOffset |
svec3 |
Optional |
1 1 1 |
Scales the TransformOffset coordinate system. The TransformOffset coordinate system is composed as follows: scaleOffset * rotationOffset * positionOffset and it contributes to the node transformation as follows: TransformOffset * Transform * matrix. Note: Scaling an AttachPoint Node will not affect its radius. The use of this field should be avoided in most cases because it can only affect the space transformations without a proper 3D geometrical representation of it. |
