The converted object of the tree node.
The drag anchors can be defined as various points in space that will be transformed according to the node matrix that this data item belongs to. These anchors are used when an object is being dragged instead of the dragOrigin or the default, the intersection with the node.
The optional rotation in axis-angle representation is being applied to the node if the specified drag anchor has been used.
The ID of the tree node data.
The keys should respond to the ones in the interactionType. They represent the current state of the interactions.
The types of interactions that are activated for this node.
The restricted managers are the managers that are allowed to interact with this node. If the array is empty, all managers are allowed to interact with this node.
The update callback for the tree node data. This callback is called when the node is updated, e.g. when the version changes.
The update callback for the converted object of the tree node.
The version of the tree node data. If the version changes, the node data will be marked for an update. A version change can be triggered via updateVersion.
The drag origin can be defined instead of usind the default, the intersection with the node, as a dragging origin. If at least one dragAnchors is used, this property will be ignored.
The group id to be able to interact with multiple nodes at once. If the same group id is specified at the InteractionData of another node, these nodes are treated as being one.
Update the version.
InteractionData is used to make a TreeNode interactable.
Via the interactionTypes the type of interaction that is possible can be specified for the node. Example: Only if the property
drag
in the interactionTypes is set totrue
it will be possible to drag the node.If the node is interacted with, the interactionStates are set to the corresponding types. Example: If the node is dragged, the
drag
property in the interactionStates is set totrue
.The dragOrigin and dragAnchors are only used when the object is being dragged. The logic for dragging is as follow:
The calculations that are mentioned above happen in close proximity with the {@link IDragConstraint}s. As this is not the easiest of topics, please visit our help desk section on interactions. There we explain the process to set this up with many examples.