Inheritance diagram for DzNode:
DzNode objects all contain animatable position, rotation, and scale channels that can be set and accessed via the properties list in the DzElement class or through specialized calls in this class.
The transform order is Translate/Rotate/Scale. Non-uniform scaling is supported by implementing seperate X, Y, and Z scale channels. All channels are independent internally and can have keys set on them independent of any other channel.
Note that channel independence holds exactly true for translations and scales, but does not hold for rotations (which are represented as Euler angle degrees in each channel). Euler angles are inherently inter-dependent and prone to numerical singularities (gimbals) that make them less than perfect at representing rotations. For this reason, rotations are handled as DzQuat objects whenever possible. When setting keys on a DzNode, it is prefferable to use the set*Rot
() methods or set*Transform
() methods that take DzQuat arguments. Setting rotations as a DzQuat will create keys on all three rotation channels but will assure that the values are reasonable.
Nodes have an origin and an orientation that define their default state. The origin is the center point of the node and is given in untransformed world space. In other words, the origin is the center point of the node in relation to its untransformed and undeformed geometry. The orientation of the node defines the space in which this node's rotations occur. Orientation only has an effect on the rotation of the node, it does not affect translation or scale transforms.
Each node defines a local axis that is determined by evaluating the transforms of all nodes in the parent tree for this node in order.
Several functions are provided for accessing the transformation data of a node. Below are descriptions of the groups of functions, and the transform space that they return data for.
Classes derived from DzNode may also be drawn in the interactive 3D views (via the draw() method) or/and may be rendered using a RenderMan- compliant renderer (via the render() method).
DzNode::DzNode | ( | ) |
Default Constructor.
void DzNode::aboutToBeRemoved | ( | ) | [signal] |
Signature: "aboutToBeRemoved()"
Emitted immediately before the node is removed from the scene.
void DzNode::added | ( | ) | [signal] |
Signature: "added()"
Emitted when the node is added to the scene.
Adds a child to this node.
child | The node to add to this node's list of children. A child must be removed from one parent before it can be attached to another. | |
inPlace | If true, the necessary transforms to parent 'In Place' will be calculated and applied to the child. |
void DzNode::beginEdit | ( | ) |
Begin an edit on this node's transformation data. When called, the node will notify its transformation properties with beginEdit calls so that they can create undo items. Also calls beginEdit() on this node's object.
Reimplemented from DzElement.
void DzNode::cancelEdit | ( | ) |
Cancel an edit on this node's transformation data. When called, the node's transform properties are set back to their original state and the undo items are destroyed. Also calls cancelEdit() on this node's object.
Reimplemented from DzElement.
Boolean DzNode::castsShadow | ( | ) |
Get the current shadow-casting status of this node.
DzNode::childAdded | ( | DzNode | node | ) | [signal] |
Signature: "childAdded(DzNode*)"
Emitted when a child is added to the node.
node | The child added to the node. |
void DzNode::childListChanged | ( | ) | [signal] |
Signature: "childListChanged()"
Emitted when a child is added to or removed from the node.
DzNode::childRemoved | ( | DzNode | node | ) | [signal] |
Signature: "childRemoved(DzNode*)"
Emitted when a child is removed from the node.
node | The child removed from the node. |
void DzNode::clearAllTransformData | ( | ) |
Removes all local transform data.
void DzNode::clearManipOverColor | ( | ) |
Clears the override color to be used to draw the node while using manipulation draw styles
void DzNode::clearTransformData | ( | DzTimeRange | range | ) |
Removes local transform data.
range | The timerange to clear transform data across |
void DzNode::drawnDataChanged | ( | ) | [signal] |
Signature: "drawnDataChanged()"
Emitted when the visual representation of this node needs to be redrawn.
Finalizes the node's geometry cache.
isRender | If true, the geometry cache will be finalized for a render operation, otherwise, the geometry will be prepared for a drawing operation. |
Get a child from this node by name.
name | Name of the child to return. | |
scanHierarchy | If true, this will call findChild recursively on all this node's children, scanning the hierarchy from this node down, until a child with a matching name is found. |
void DzNode::finishEdit | ( | ) |
Finish the current edit on this node's transformation data. When called, the undo items created after the beginEdit call will be finalized and pushed on to the undo stack. Also calls finishEdit() on this node's object.
Reimplemented from DzElement.
DzVec3 DzNode::getEndPoint | ( | ) |
DzFloatProperty DzNode::getEndXControl | ( | ) |
DzFloatProperty DzNode::getEndYControl | ( | ) |
DzFloatProperty DzNode::getEndZControl | ( | ) |
DzBox3 DzNode::getLocalBoundingBox | ( | ) |
Calculate the local space bounding box for this node.
DzOrientedBox3 DzNode::getLocalOrientedBox | ( | ) |
Calculate the local space bounding box for this node.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
tm | The scene time at which to get the the transform. |
DzVec3 DzNode::getLocalPos | ( | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
tm | The scene time at which to get the the transform. |
DzQuat DzNode::getLocalRot | ( | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
tm | The scene time at which to get the the transform. |
DzMatrix3 DzNode::getLocalScale | ( | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Get the composed local transform info for this node.
tm | The scene time at which to get the the transform. |
DzMatrix3 DzNode::getLocalTransform | ( | ) |
Get the composed local transform info for this node at the current time.
Get the child at the given index.
Get a list of the children of this node, with the option for immediate children only, or all children, grandchildren, etc. Provided for DAZ Script access, plugin developers should use the more efficient getNodeChildren( DzNodeList&, bool ) overload of this method.
scanHierarchy | If true, recursively collect all this node's children, scanning the hierarchy from this node down. If false, collect only this node's immediate children. Default is false. |
DzNode DzNode::getNodeParent | ( | ) |
Get the parent of this node.
Number DzNode::getNumNodeChildren | ( | ) |
Get the number of children attached to this node.
DzObject DzNode::getObject | ( | ) |
Get the object currently associated with this node.
DzVec3 DzNode::getOffsetA | ( | ) |
DzVec3 DzNode::getOffsetB | ( | ) |
DzQuat DzNode::getOrientation | ( | ) |
DzFloatProperty DzNode::getOrientXControl | ( | ) |
DzFloatProperty DzNode::getOrientYControl | ( | ) |
DzFloatProperty DzNode::getOrientZControl | ( | ) |
DzVec3 DzNode::getOrigin | ( | ) |
DzFloatProperty DzNode::getOriginXControl | ( | ) |
DzFloatProperty DzNode::getOriginYControl | ( | ) |
DzFloatProperty DzNode::getOriginZControl | ( | ) |
DzNumericNodeProperty DzNode::getPointAtControl | ( | ) |
DzEnumProperty DzNode::getRenderPriorityControl | ( | ) |
DzBoolProperty DzNode::getRenderVisibilityControl | ( | ) |
DzRotationOrder DzNode::getRotationOrder | ( | ) |
Get the node rotation order.
DzFloatProperty DzNode::getScaleControl | ( | ) |
DzBoolProperty DzNode::getSelectabilityControl | ( | ) |
DzBoolProperty DzNode::getShadowControl | ( | ) |
void DzNode::getSkeleton | ( | ) |
Traverse up the hierarchy and attempt to find a DzSkeleton.
DzBoolProperty DzNode::getVisibilityControl | ( | ) |
DzBox3 DzNode::getWSBoundingBox | ( | ) |
Calculate a world space oriented bounding box for this node.
DzOrientedBox3 DzNode::getWSOrientedBox | ( | ) |
Calculate a world-space oriented bounding box for this node.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
tm | The scene time at which to get the the transform. |
DzVec3 DzNode::getWSPos | ( | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
tm | The scene time at which to get the the transform. |
DzQuat DzNode::getWSRot | ( | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
tm | The scene time at which to get the the transform. |
DzMatrix3 DzNode::getWSScale | ( | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Get the world-space transformation data for this node.
tm | The scene time at which to get the the transform. |
DzMatrix3 DzNode::getWSTransform | ( | ) |
Get the world-space transformation data for this node at the current time.
DzFloatProperty DzNode::getXOffsetAControl | ( | ) |
DzFloatProperty DzNode::getXOffsetBControl | ( | ) |
DzFloatProperty DzNode::getXPosControl | ( | ) |
DzFloatProperty DzNode::getXRotControl | ( | ) |
DzFloatProperty DzNode::getXScaleControl | ( | ) |
DzFloatProperty DzNode::getYOffsetAControl | ( | ) |
DzFloatProperty DzNode::getYOffsetBControl | ( | ) |
DzFloatProperty DzNode::getYPosControl | ( | ) |
DzFloatProperty DzNode::getYRotControl | ( | ) |
DzFloatProperty DzNode::getYScaleControl | ( | ) |
DzFloatProperty DzNode::getZOffsetAControl | ( | ) |
DzFloatProperty DzNode::getZOffsetBControl | ( | ) |
DzFloatProperty DzNode::getZPosControl | ( | ) |
DzFloatProperty DzNode::getZRotControl | ( | ) |
DzFloatProperty DzNode::getZScaleControl | ( | ) |
DzNode::hiddenChanged | ( | Boolean | hidden | ) | [signal] |
Signature: "hiddenChanged(bool)"
Emitted when the hidden state of this node is changed.
hidden | true if the node is currently hidden in the interface. |
bool DzNode::inheritsScale | ( | ) |
Boolean DzNode::isHidden | ( | ) |
Checks to see if given node is one of this node's children.
node | A pointer to the node to look for in this node's hierarchy. |
Boolean DzNode::isRootNode | ( | ) |
Check to see if this is a root level node.
Boolean DzNode::isSelectable | ( | ) |
Boolean DzNode::isSelected | ( | ) |
Get the current selection state of this node
Boolean DzNode::isVisible | ( | ) |
Get the current visibility status of this node.
void DzNode::materialListChanged | ( | ) | [signal] |
Signature: "materialListChanged()"
Emitted when the list of materials for this node has changed.
void DzNode::materialSelectionChanged | ( | ) | [signal] |
Signature: "materialSelectionChanged()"
Emitted when the list of selected materials for this node has changed.
Signature: "objectSwitched(DzNode*,DzObject*,DzObject*)"
Emitted when a different object becomes associated with this node.
node | A pointer to this node. | |
oldObject | A pointer to the prior object, or NULL if none. | |
newObject | A pointer to the new object, or NULL if none. |
Signature: "parentChanged(DzNode*,DzNode*,DzNode*)"
Emitted when the parent of this node changes.
node | A pointer to this node. | |
oldParent | The previous parent of the node. | |
newParent | The new parent of the node. |
void DzNode::removeAllNodeChildren | ( | ) |
Removes all the children of this node.
void DzNode::removed | ( | ) | [signal] |
Signature: "removed()"
Emitted when the node is removed from the scene.
Removes a child from this node.
child | The node to remove from this node's list of children. A child must be removed from one parent before it can be attached to another. | |
inPlace | If true, the necessary transforms to unparent 'In Place' will be calculated and applied to the child. |
void DzNode::riggingChanged | ( | ) | [signal] |
Signature: "riggingChanged()"
Emitted when the rotation order, orientation, center point, or end point for this node have changed.
void DzNode::rotationOrderChanged | ( | ) | [signal] |
Signature: "rotationOrderChanged()"
Emitted when the rotation order of this node changes.
Sets the selection state of this node.
onOff | true to set selection on for this node, false to set selection off. |
void DzNode::selectabilityChanged | ( | ) | [signal] |
Signature: "selectabilityChanged()"
Emitted when the selectability of the node has changed.
Signature: "selected(DzNode*,bool)"
Eitted when the selection state of this node changes.
node | A pointer to this node. | |
onOff | true if the node was selected, false if it was deselected. |
Sets the end point for this node
endPnt | The end point for the node. This is the node's end point in relation to its geometry. | |
makeDefault | Whether or not to set the default value as well as the current value. |
void DzNode::setHidden | ( | Boolean | onOff | ) |
Hide or show this node in the interface.
onOff | If true, the node will not appear in the hierarchy list. If false, the node will be displayed in the scene hierarchy. |
void DzNode::setInheritScale | ( | Boolean | onOff | ) |
Sets whether or not this node inherits the scale of its parent.
onOff | If true, scaling the parent of this node will scale this node also. |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets local-space translation for the node
tm | The scene time at which to set the transform for the node. | |
vec | The local space translation for the node |
void DzNode::setLocalPos | ( | DzVec3 | pos | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets local-space translation for the node at the current time
vec | The local space translation for the node |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets local-space rotation for the node
tm | The scene time at which to set the transform for the node. | |
val | The local space rotation for the node |
void DzNode::setLocalRot | ( | DzQuat | rot | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets local-space rotation for the node at the current time
val | The local space rotation for the node |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets local-space scale for the node
tm | The scene time at which to set the transform for the node. | |
val | The local space scale for the node | |
generalScale | The general scale factor for the node. |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets local-space scale for the node at the current time
val | The local space scale for the node | |
generalScale | The general scale factor for the node. |
void DzNode::setLocalTransform | ( | DzTime | tm, | |
DzVec3 | pos, | |||
DzQuat | rot, | |||
DzMatrix3 | scale, | |||
Number | generalScale = 1.0 | |||
) |
Calculates the local transform matrix for this node at the given time.
tm | The scene time at which to set the transform for the node. | |
pos | The local-space position offset for this node. | |
rot | The local-space rotation for this node. | |
scale | The local-space scale for this node. | |
generalScale | The general scale for the transform. |
void DzNode::setLocalTransform | ( | DzVec3 | pos, | |
DzQuat | rot, | |||
DzMatrix3 | scale, | |||
Number | generalScale = 1.0 | |||
) |
Calculates the local transform matrix for this node at the current time.
pos | The local-space position offset for this node. | |
rot | The local-space rotation for this node. | |
scale | The local-space scale for this node. | |
generalScale | The general scale for the transform. |
void DzNode::setManipOverColor | ( | Color | color | ) |
Sets the override color to be used to draw the node while using manipulation draw styles
color | The value for the override color. |
void DzNode::setObject | ( | DzObject | object | ) |
Sets the object for this node
object | The object that will be drawn by this node. The node takes ownership of this object and deletes it when it is no longer used. |
Sets the offsetA value for the node
offsetA | The offsetA value for the node. | |
makeDefault | Whether or not to set the default value as well as the current value. |
Sets the offsetB value for the node
offsetB | The offsetB value for the node. | |
makeDefault | Whether or not to set the default value as well as the current value. |
Sets the orientation for the node
orientation | The orientation for the node. This defines the space in which node rotations occur. | |
makeDefault | Whether or not to set the default value as well as the current value. |
Sets the origin for the node
origin | The origin for the node. This is the node's center point in relation to its geometry. | |
makeDefault | Whether or not to set the default value as well as the current value. |
void DzNode::setPointAtStrength | ( | Number | strength | ) |
Set the strength of the point at parameter
strength | A value in the range [0.0, 1.0] that determines how closely this node aims at its point-at target. |
void DzNode::setPointAtTarget | ( | DzNode | target | ) |
Set the target for this node to be pointed toward
target | The node whose centerpoint will serve as the target of point-at functionality |
void DzNode::setRotationOrder | ( | DzRotationOrder | order | ) |
Set the node rotation order
order | The order that the axis rotations will be applied in for this node. |
void DzNode::setSelectable | ( | Boolean | onOff | ) |
Sets whether or not this node is selectable via the 3D viewport
onOff | If true, the node will be selectable (the default), if false, the node will not participate in the pick image. |
void DzNode::setVisible | ( | Boolean | onOff | ) |
Sets whether or not this node is visible in the 3D viewport
onOff | If true, the node will be visible (the default), if false, the node will not be drawn in the 3D viewport. |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets world-space translation for the node
tm | The scene time at which to set the transform for the node. | |
vec | The World-Space translation for the node |
void DzNode::setWSPos | ( | DzVec3 | pos | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets world-space translation for the node at the current time
vec | The World-Space translation for the node |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets world-space rotation for the node
tm | The scene time at which to set the transform for the node. | |
val | The World-Space rotation for the node |
void DzNode::setWSRot | ( | DzQuat | rot | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets world-space rotation for the node at the current time
val | The World-Space rotation for the node |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets world-space scale for the node
tm | The scene time at which to set the transform for the node. | |
val | The World-Space scale for the node |
void DzNode::setWSScale | ( | DzMatrix3 | scale | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Sets world-space scale for the node at the current time
val | The World-Space sacle for the node |
Set world-space transform values for this node.
tm | The scene time at which to set the transform for the node. | |
pos | The world-space position offset for this node. | |
rot | The world-space rotation for this node. | |
scale | The world-space scale for this node. |
Set world-space transform values for this node at the current time.
pos | The world-space position offset for this node. | |
rot | The world-space rotation for this node. | |
scale | The world-space scale for this node. |
void DzNode::transformChanged | ( | ) | [signal] |
Signature: "transformChanged()"
Emitted when transformation properties of this node change
Called to update any cached or display data for this object.
isRender | If true, the node should prepare itself for a render quality presentation. |
void DzNode::updateOrientation | ( | ) |
Update the orientation of the node.
void DzNode::uvsChanged | ( | ) | [signal] |
Signature: "uvsChanged()"
Emitted when the current uv set for this node has changed.
void DzNode::visibilityChanged | ( | ) | [signal] |
Signature: "visibilityChanged()"
Emitted when the visibility of the node has changed.
The render priority for the node. Render priority controls the order in which nodes are rendered. The higher the priority, the earlier the node will be rendered. If several nodes have the same render priority, those nodes will be rendered in an arbitrary order.
The default render priority is RENDER_PRIORITY_NORMAL.