![]() |
RenderMan
26.0
|
Base class for scene graph DAG nodes. More...
#include <RixSceneGraph.h>
Inherited by AnalyticLight [virtual]
, Camera [virtual]
, ClippingPlane [virtual]
, and Geometry [virtual]
.
Public Member Functions | |
virtual DagType | GetDagType () const =0 |
Get the DAG type. More... | |
virtual RtUString | GetIdentifier () const =0 |
Return the DAG node identifier. More... | |
virtual Error | SetIdentifier (RtUString identifier)=0 |
Set the DAG node identifier. More... | |
virtual Error | SetTransform (unsigned numsamples, RtMatrix4x4 const *xforms, float const *times)=0 |
Set the transform. More... | |
virtual Error | SetTransformNumSamples (unsigned numsamples)=0 |
Set the number of transform motion samples. More... | |
virtual Error | SetTransformSample (unsigned sample, RtMatrix4x4 const &xform, float time)=0 |
Set a single transform motion sample. More... | |
Error | SetTransform (RtMatrix4x4 const &xform) |
Set a static transform. More... | |
Error | SetIdentity () |
Set the identity transform. More... | |
virtual unsigned | GetTransformNumSamples () const =0 |
Return the number of transform motion samples. More... | |
virtual Error | GetTransformSample (unsigned sample, RtMatrix4x4 &xform, float &time) const =0 |
Get a single transform motion sample. More... | |
virtual Error | SetHidden (int state)=0 |
Set hidden state. More... | |
virtual int | GetHidden () const =0 |
Get hidden state. More... | |
virtual Error | AddCoordinateSystem (Group *coordsys)=0 |
Add scoped coordinate system. More... | |
virtual Error | RemoveCoordinateSystem (Group *coordsys)=0 |
Remove scoped coordinate system. More... | |
virtual Error | RemoveAllCoordinateSystems ()=0 |
Remove all scoped coordinate systems. More... | |
virtual unsigned | GetNumCoordinateSystems () const =0 |
Get the number of scoped coordinate systems. More... | |
virtual Group * | GetCoordinateSystem (unsigned idx) const =0 |
Get scoped coordinate system by index. More... | |
virtual Error | AddChild (Group *child)=0 |
Add a child DAG node. More... | |
virtual Error | RemoveChild (Group *child)=0 |
Remove a child DAG node. More... | |
virtual Error | RemoveAllChildren ()=0 |
Remove all child DAG nodes. More... | |
virtual unsigned | GetNumChildren () const =0 |
Return the number of child nodes. More... | |
virtual Group * | GetChild (unsigned idx) const =0 |
Return a pointer to any child DAG nodes. More... | |
virtual unsigned | GetNumParents () const =0 |
Return the number of parent nodes. More... | |
virtual Group * | GetParent (unsigned idx) const =0 |
Return a pointer to any parent DAG nodes. More... | |
virtual Group * | FindDagNode (char const *path) const =0 |
Find a DAG node from a identifier path. More... | |
virtual Material * | GetMaterial () const =0 |
Get material binding. More... | |
virtual Error | SetMaterial (Material *material)=0 |
Set material binding. More... | |
virtual Error | OverrideMaterial (Material *material, unsigned depth, Group **path)=0 |
Override material binding. More... | |
virtual RtParamList const & | GetAttributes () const =0 |
Get attribute list. More... | |
virtual Error | SetAttributes (RtParamList const &attributes)=0 |
Set attribute list. More... | |
virtual Error | SetNested (bool state)=0 |
Set nesting state. More... | |
virtual bool | GetNested () const =0 |
Get nesting state. More... | |
virtual Error | SetInheritTransform (bool value)=0 |
Set inherit transform. More... | |
virtual bool | GetInheritTransform () const =0 |
Return inherit transform. More... | |
Group ()=default | |
virtual | ~Group ()=default |
Base class for scene graph DAG nodes.
DAG (directed acyclic graph) nodes exhibit parent-child relationships with other DAG nodes to describe scene hierarchy. They are used to represent basic scene primitives such as transforms, cameras, lights, and geometry.
|
inlinedefault |
|
virtualdefault |
Add a child DAG node.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
[in] | child | The child DAG node |
Add scoped coordinate system.
The object-to-world transformation of coordsys nodes are inherited as a named coordinate system that may be used for shading. Transformations are resolved as the closest unique relative path between this node and the coordsys node. Ambiguous instance transformations are ignored.
[in] | coordsys | The coordinate system node |
|
pure virtual |
Find a DAG node from a identifier path.
Returns a DAG node based on the string identifier path relative to this node. DAG node paths should use the same separator given to Manager::CreateScene.
[in] | path | Identifier path |
|
pure virtual |
Get attribute list.
Parameters that are attached to scene graph DAG nodes and may vary per geometry instance are called attributes. In the scene graph, attribute state is inherited by updating parameters along DAG hierarchies to generate the instance attribute list used for rendering. Attributes define instance properties such as visibility as well as user parameters used for instance variation when shading.
|
pure virtual |
Return a pointer to any child DAG nodes.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
[in] | idx | The child index |
|
pure virtual |
Get scoped coordinate system by index.
The object-to-world transformation of coordsys nodes are inherited as a named coordinate system that may be used for shading. Transformations are resolved as the closest unique relative path between this node and the coordsys node. Ambiguous instance transformations are ignored.
[in] | idx | The coordinate system index |
|
pure virtual |
|
pure virtual |
Get hidden state.
Hidden objects are not visible in render but may still contribute as coordinate systems. The hidden state is inherited when unspecified. The default is unspecified.
|
pure virtual |
Return the DAG node identifier.
Node identifiers are concatenated along DAG hierarchies to uniquely identify DAG paths. Node identifiers themselves do not need to be unique.
|
pure virtual |
Return inherit transform.
Enable or disable inheriting parent transformations when generating the object-to-world transform. The default is true.
|
pure virtual |
Get material binding.
Material bindings determine the active bxdf, displacement, and light and light filter shading graph assignments. Materials bindings are inherited and may vary per instance.
|
pure virtual |
Get nesting state.
Nested DAGs avoid flattening during scene transveral. This can reduce memory consumption for heavily nested structures at the cost of slower ray traversal. The default is false.
|
pure virtual |
Return the number of child nodes.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
|
pure virtual |
Get the number of scoped coordinate systems.
The object-to-world transformation of coordsys nodes are inherited as a named coordinate system that may be used for shading. Transformations are resolved as the closest unique relative path between this node and the coordsys node. Ambiguous instance transformations are ignored.
|
pure virtual |
Return the number of parent nodes.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
|
pure virtual |
Return a pointer to any parent DAG nodes.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
[in] | idx | The parent index |
|
pure virtual |
Return the number of transform motion samples.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. The motion sample count may be set independently of the actual motion sample values.
|
pure virtual |
Get a single transform motion sample.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. Motion sample values may be set independently of the motion sample count.
[in] | sample | Motion sample index |
[out] | xform | Matrix sample |
[out] | time | Time sample |
|
pure virtual |
Override material binding.
Material bindings determine the active bxdf, displacement, and light and light filter shading graph assignments. Materials bindings are inherited and may vary per instance. Material binding may be overriden based on a relative DAG path where the terminal node should be this node.
[in] | material | The material container |
[in] | depth | The DAG path depth or zero to remove all overrides. |
[in] | path | The DAG path |
|
pure virtual |
Remove all child DAG nodes.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
|
pure virtual |
Remove all scoped coordinate systems.
The object-to-world transformation of coordsys nodes are inherited as a named coordinate system that may be used for shading. Transformations are resolved as the closest unique relative path between this node and the coordsys node. Ambiguous instance transformations are ignored.
Remove a child DAG node.
The scene graph DAG hierarchy is constructed of parent-child relationships where children nodes inherit instance properties from parent nodes such as transformation, attribute state, and coordinate systems. An object is considered instanced when it is reachable from the scene root via multiple DAG paths. These DAG paths are formed when a child node has multiple parents. In order to form unique DAG paths, node identifiers should be unique among children.
[in] | child | The child DAG node |
Remove scoped coordinate system.
The object-to-world transformation of coordsys nodes are inherited as a named coordinate system that may be used for shading. Transformations are resolved as the closest unique relative path between this node and the coordsys node. Ambiguous instance transformations are ignored.
[in] | coordsys | The coordinate system node |
|
pure virtual |
Set attribute list.
Parameters that are attached to scene graph DAG nodes and may vary per geometry instance are called attributes. In the scene graph, attribute state is inherited by updating parameters along DAG hierarchies to generate the instance attribute list used for rendering. Attributes define instance properties such as visibility as well as user parameters used for instance variation when shading.
[in] | attributes | Attribute list |
|
pure virtual |
Set hidden state.
Hidden objects are visible in render but may still contribute as coordinate systems. The hidden state is inherited when unspecified. The default is unspecified.
[in] | state | Hidden state: -1 (unspecified), 0 (unhide), 1 (hide) |
|
pure virtual |
Set the DAG node identifier.
Node identifiers are concatenated along DAG hierarchies to uniquely identify DAG paths. Node identifiers themselves do not need to be unique.
[in] | identifier | The DAG node identifier |
|
inline |
Set the identity transform.
Identity transforms are concatenated together along DAG hierarchies to generate the object-to-world transform.
References SetTransformNumSamples().
|
pure virtual |
Set inherit transform.
Enable or disable inheriting parent transformations when generating the object-to-world transform. The default is true.
[in] | value | Enable/disable inherit transform |
Set material binding.
Material bindings determine the active bxdf, displacement, and light and light filter shading graph assignments. Materials bindings are inherited and may vary per instance.
[in] | material | The material container or nullptr to unbind |
|
pure virtual |
Set nesting state.
Nested DAGs avoid flattening during scene transveral. This can reduce memory consumption for heavily nested structures at the cost of slower ray traversal. The default is false.
[in] | state | Nested state |
|
pure virtual |
Set the transform.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. Static transforms are described by a single matrix while motion transforms contain a matrix and time value per time sample.
[in] | numsamples | The number of motion samples. A zero value sets the transform to identity. |
[in] | xforms | Matrix samples pointer. This value must be valid for numsamples greater or equal to one. |
[in] | times | Time samples pointer. This value must be valid for numsamples greater or equal to two. A zero time is assumed for numsamples of one. |
Referenced by SetTransform().
|
inline |
Set a static transform.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. Static transforms are described by a single matrix while motion transforms contain a matrix and time value per motion sample.
[in] | xform | Static matrix |
References SetTransform().
|
pure virtual |
Set the number of transform motion samples.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. The motion sample count may be set independently of the actual motion sample values.
[in] | numsamples | The number of motion samples. A zero value sets the transform to identitiy. |
Referenced by SetIdentity().
|
pure virtual |
Set a single transform motion sample.
Transforms are concatenated together along DAG hierarchies to generate the object-to-world transform. Motion sample values may be set independently of the motion sample count.
[in] | sample | Motion sample index |
[in] | xform | Matrix sample |
[in] | time | Time sample |