![]() |
RenderMan API
23.0
|
#include <RixSceneGraph.h>
Public Member Functions | |
virtual RixSGDagType | GetDagType () const =0 |
virtual RtUString | GetIdentifier () const =0 |
virtual RixSGError | SetIdentifier (RtUString identifier)=0 |
virtual RixSGError | SetTransform (unsigned numsamples, RtMatrix4x4 const *xforms, float const *times)=0 |
virtual RixSGError | SetTransformNumSamples (unsigned numsamples)=0 |
virtual RixSGError | SetTransformSample (unsigned sample, RtMatrix4x4 const &xform, float time)=0 |
RixSGError | SetTransform (RtMatrix4x4 const &xform) |
RixSGError | SetIdentity () |
virtual RixSGError | SetHidden (int state)=0 |
virtual int | GetHidden () const =0 |
virtual RixSGError | AddCoordinateSystem (RixSGGroup *coordsys)=0 |
virtual RixSGError | RemoveCoordinateSystem (RixSGGroup *coordsys)=0 |
virtual unsigned | GetNumCoordinateSystems () const =0 |
virtual RixSGGroup * | GetCoordinateSystem (unsigned idx) const =0 |
virtual RixSGError | AddChild (RixSGGroup *child)=0 |
virtual RixSGError | RemoveChild (RixSGGroup *child)=0 |
virtual unsigned | GetNumChildren () const =0 |
virtual RixSGGroup * | GetChild (unsigned idx) const =0 |
virtual unsigned | GetNumParents () const =0 |
virtual RixSGGroup * | GetParent (unsigned idx) const =0 |
virtual RixSGGroup * | FindDagNode (char const *path) const =0 |
virtual RixSGMaterial * | GetMaterial () const =0 |
virtual RixSGError | SetMaterial (RixSGMaterial *material)=0 |
virtual RixSGError | OverrideMaterial (RixSGMaterial *material, unsigned depth, RixSGGroup **path)=0 |
virtual RtParamList const & | GetAttributes () const =0 |
virtual RixSGError | SetAttributes (RtParamList const &attributes)=0 |
virtual RixSGError | SetNested (bool state)=0 |
virtual bool | GetNested () const =0 |
virtual RixSGError | SetInheritTransform (bool value)=0 |
RixSGGroup ()=default | |
virtual | ~RixSGGroup ()=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.
Definition at line 270 of file RixSceneGraph.h.
|
inlinedefault |
|
virtualdefault |
|
pure virtual |
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 |
|
pure virtual |
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. Ambigious 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 RixSGManager::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. Ambigious instance transformations are ignored.
[in] | idx | The coordinate system index |
|
pure virtual |
Get the DAG type
The DAG type describes the role of the scene graph node. For example: Group, Camera, Mesh, etc..
|
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 |
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. Ambigious 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 |
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 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.
|
pure virtual |
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. Ambigious 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.
Definition at line 1499 of file RixSceneGraph.h.
|
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 |
|
pure virtual |
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 |
[in] | xforms | Matrix samples |
[in] | times | Time samples |
|
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 |
Definition at line 1494 of file RixSceneGraph.h.
|
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 |
|
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 |