RenderManAPI
24.0

#include <RixSceneGraph.h>
Inherits Geometry.
Public Member Functions  
virtual Error  Define (int32_t nu, int32_t uorder, int32_t nv, int32_t vorder)=0 
Define NURBS geometry. More...  
virtual RtUString  GetGeometry () const =0 
Return geometry type. More...  
virtual Error  SetGeometry (RtUString type)=0 
Define special geometry. More...  
virtual RtPrimVarList const &  GetPrimVars () const =0 
Get primitive variable list. More...  
virtual Error  SetPrimVars (RtPrimVarList const &primvars)=0 
Set primitive variable list. More...  
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...  
Error  SetTransform (RtMatrix4x4 const &xform) 
Set a static 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  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...  
Protected Member Functions  
NuPatch ()=default  
~NuPatch () override=default  

inlineprotecteddefault 

overrideprotecteddefault 
Add a child DAG node.
The scene graph DAG hierarchy is constructed of parentchild 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 objecttoworld 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 
Define NURBS geometry.
Nonuniform Bspline patches are also supported by RenderMan. Rational quadric Bslpines provide exact representation of many different surfaces including general quadrics, tori, surfaces of revolution, tabulated cylinders, and ruled surfaces. NURBS may contain many trim regions and holes that are specified by giving curves in parameter space.
This procedure creates a tensor product rational or polynomial nonuniform Bspline surface patch mesh. The surface specified is ratyional if the position of the vertices are 4vectors (x,y,z,w) and polynomial if the positions are 3vectors (x,y,z). The number of control points in the u direction equals nu and the number in the v direction equals nv. The total number of vertices is thus equal to (nu * nv). The uorder
and vorder
must be positive and is equal to the degree of the polynomial basis plus 1. There may be different orders in each parametric direction. The number of control points should be at least as large as the order of the polynomial basis. If not, a spline of order equal to the number of control points is computed. The knot vectors associated with each control point, uknot
and vknot
, must also be specified. Each value in these arrays must be greater than or equal to the previous value. The number of knots is equal to the number of control points plus the order of the spline.
A NuPatch may be thought of as a nonperiodic uniform Bspline mesh with (1 + nu  uorder) segments in the u parametric direction, and (1 + nv  vorder) segments in the v parametric direction.
Detail type  Size — 

constant  1 
uniform  (nu  uorder + 1) * (nv  vorder + 1) 
vertex  nu * nv 
varying  (nu  uorder + 2) * (nv  vorder + 2) 
facevarying  (nu  uorder + 2) * (nv  vorder + 2) 
[in]  nu  The number of control points in the u direction 
[in]  uorder  The uorder 
[in]  nv  The number of control points in the v direction 
[in]  vorder  The vorder 

pure virtualinherited 
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 virtualinherited 
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 virtualinherited 
Return a pointer to any child DAG nodes.
The scene graph DAG hierarchy is constructed of parentchild 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 virtualinherited 
Get scoped coordinate system by index.
The objecttoworld 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 virtualinherited 

pure virtualinherited 
Return geometry type.

pure virtualinherited 
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 virtualinherited 
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 virtualinherited 
Return inherit transform.
Enable or disable inheriting parent transformations when generating the objecttoworld transform. The default is true.

pure virtualinherited 
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 virtualinherited 
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 virtualinherited 
Return the number of child nodes.
The scene graph DAG hierarchy is constructed of parentchild 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 virtualinherited 
Get the number of scoped coordinate systems.
The objecttoworld 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 virtualinherited 
Return the number of parent nodes.
The scene graph DAG hierarchy is constructed of parentchild 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 virtualinherited 
Return a pointer to any parent DAG nodes.
The scene graph DAG hierarchy is constructed of parentchild 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 virtualinherited 
Get primitive variable list.
Parameters that are attached to and may vary over surface geometry are called primitive variables. Primitive variables are used to define the intrinsic properties of a surface such as position, normal, and surface topology. Primitive variables also define values that are used for shading such as texture coordinates and user data. Primitive variables are part of the geometry prototype description and may not vary per instance. Primitive variables which are declared to be of type point, vector, normal, or matrix are specified in object space and will be transformed into current space for shading.

pure virtualinherited 
Return the number of transform motion samples.
Transforms are concatenated together along DAG hierarchies to generate the objecttoworld transform. The motion sample count may be set independently of the actual motion sample values.

pure virtualinherited 
Get a single transform motion sample.
Transforms are concatenated together along DAG hierarchies to generate the objecttoworld 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 virtualinherited 
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 virtualinherited 
Remove all child DAG nodes.
The scene graph DAG hierarchy is constructed of parentchild 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 virtualinherited 
Remove all scoped coordinate systems.
The objecttoworld 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 parentchild 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 objecttoworld 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 virtualinherited 
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 
Define special geometry.
Special geometry primitives that are renderer specific.
Detail type  Size 

constant  1 
uniform  1 
vertex  1 
varying  1 
facevarying  1 
[in]  type  Supported special primitive types are: "Ri:BrickMap" 
Implemented in Quadric.

pure virtualinherited 
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) 
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 

inlineinherited 
Set the identity transform.
Identity transforms are concatenated together along DAG hierarchies to generate the objecttoworld transform.
References Group::SetTransformNumSamples().

pure virtualinherited 
Set inherit transform.
Enable or disable inheriting parent transformations when generating the objecttoworld 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 virtualinherited 
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 virtualinherited 
Set primitive variable list.
Parameters that are attached to and may vary over surface geometry are called primitive variables. Primitive variables are used to define the intrinsic properties of a surface such as position, normal, and surface topology. Primitive variables also define values that are used for shading such as texture coordinates and user data. Primitive variables are part of the geometry prototype description and may not vary per instance. Primitive variables which are declared to be of type point, vector, normal, or matrix are specified in object space and will be transformed into current space for shading.
[in]  primvars  Primitive variable list 

pure virtualinherited 
Set the transform.
Transforms are concatenated together along DAG hierarchies to generate the objecttoworld 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 Group::SetTransform().

inlineinherited 
Set a static transform.
Transforms are concatenated together along DAG hierarchies to generate the objecttoworld 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 Group::SetTransform().

pure virtualinherited 
Set the number of transform motion samples.
Transforms are concatenated together along DAG hierarchies to generate the objecttoworld 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 Group::SetIdentity().

pure virtualinherited 
Set a single transform motion sample.
Transforms are concatenated together along DAG hierarchies to generate the objecttoworld 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 