46 #ifndef RixSceneGraph_h 47 #define RixSceneGraph_h 57 #define k_RixSGManagerVersion 3 58 #define RMAN_SCENEGRAPH_NAMESPACE scenegraph 59 #define RMAN_SCENEGRAPH_NAMESPACE_OPEN_SCOPE \ 60 namespace RMAN_SCENEGRAPH_NAMESPACE \ 62 #define RMAN_SCENEGRAPH_NAMESPACE_CLOSE_SCOPE } 317 float const* times) = 0;
731 Group const& operator=(
Group const&) =
delete;
734 inline Group() =
default;
735 virtual ~Group() =
default;
804 inline Camera() =
default;
1007 virtual Error Define(int32_t npolys, int32_t npoints, int32_t nverts) = 0;
1018 inline Mesh() =
default;
1019 ~Mesh()
override =
default;
1044 inline Points() =
default;
1070 virtual Error Define(int32_t nx, int32_t ny, int32_t nz) = 0;
1073 inline Volume() =
default;
1103 inline Blobby() =
default;
1164 int32_t npoints) = 0;
1167 inline Curves() =
default;
1212 virtual Error Define(int32_t nu, int32_t uorder, int32_t nv, int32_t vorder) = 0;
1555 virtual ~Scene() =
default;
1598 typedef RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Blobby
RixSGBlobby;
1599 typedef RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Camera
RixSGCamera;
1601 typedef RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Curves
RixSGCurves;
1606 typedef RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Group
RixSGGroup;
1608 typedef RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Mesh
RixSGMesh;
1610 typedef RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Points
RixSGPoints;
1613 typedef RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Scene
RixSGScene;
1614 typedef RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Shader
RixSGShader;
1617 typedef RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Volume
RixSGVolume;
1643 #endif // RixSceneGraph_h #define US_NULL
Definition: RiTypesHelper.h:683
Custom proceudral geometry.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::DagType RixSGDagType
Definition: RixSceneGraph.h:1602
Analytic light DAG node support RixLight plug-ins.
Definition: RixSceneGraph.h:839
virtual AnalyticLight * CreateAnalyticLight(RtUString identifier)=0
Create a analytic DAG light.
RtUString name
Shading node name, e.g. PxrDiffuse.
Definition: RixSceneGraph.h:181
RtUString handle
Display channel name, e.g. "Ci".
Definition: RixSceneGraph.h:154
virtual Error SetTransform(unsigned numsamples, RtMatrix4x4 const *xforms, float const *times)=0
Set the transform.
Define scoped edit block.
Definition: RixSceneGraph.h:1426
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Volume RixSGVolume
Definition: RixSceneGraph.h:1617
virtual Group * FindDagNode(char const *path) const =0
Find a DAG node from a identifier path.
virtual unsigned GetTransformNumSamples() const =0
Return the number of transform motion samples.
Scene *const sg
Definition: RixSceneGraph.h:1430
virtual Error InvalidateTexture(RtUString const name)=0
Invalidate a texture.
virtual Error SetGeometry(RtUString type)=0
Define special geometry.
virtual Error RemoveCoordinateSystem(Group *coordsys)=0
Remove scoped coordinate system.
virtual Error SetTransformNumSamples(unsigned numsamples)=0
Set the number of transform motion samples.
~Geometry() override=default
RixSGManager()
Definition: RixSceneGraph.h:1638
virtual void EditBegin()=0
Start an edit block.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Scene RixSGScene
Definition: RixSceneGraph.h:1613
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Group RixSGGroup
Definition: RixSceneGraph.h:1606
virtual unsigned GetNumChildren() const =0
Return the number of child nodes.
Implicit surface geometry.
Shader & operator=(Shader const &)=default
Default assign operator.
Scene graph display channel description.
Definition: RixSceneGraph.h:136
virtual bool GetNested() const =0
Get nesting state.
~ClippingPlane() override=default
virtual Error SetMaterial(Material *material)=0
Set material binding.
virtual RtUString GetGeometry() const =0
Return geometry type.
virtual Error SetAttributes(RtParamList const &attributes)=0
Set attribute list.
uint64_t(* UpdateIdCallback)(void *ctx, Group const *node, RtUString const &path)
Callback type used to optionally set object ids.
Definition: RixSceneGraph.h:85
virtual Error Define(int32_t npolys, int32_t npoints, int32_t nverts)=0
Define a polygon or subdivision mesh.
#define RMAN_SCENEGRAPH_NAMESPACE_OPEN_SCOPE
Definition: RixSceneGraph.h:59
Base class for all Rix interfaces.
Definition: RixInterfaces.h:133
#define RMAN_SCENEGRAPH_NAMESPACE_CLOSE_SCOPE
Definition: RixSceneGraph.h:62
pxrcore::ParamList RtParamList
Definition: RiTypesHelper.h:687
virtual Error Clear()=0
Clear the scenegraph.
virtual Error SetLightFilter(unsigned num, Shader const *nodes)=0
Set geometric light filter shading graph.
virtual Error RemoveAllCoordinateSystems()=0
Remove all scoped coordinate systems.
virtual Curves * CreateCurves(RtUString identifier)=0
Create a curves DAG object.
virtual NuPatch * CreateNuPatch(RtUString identifier)=0
Create a NURBS DAG object.
virtual RtPrimVarList const & GetPrimVars() const =0
Get primitive variable list.
RMAN_SCENEGRAPH_NAMESPACE_CLOSE_SCOPE RMAN_NAMESPACE_CLOSE_SCOPE typedef RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::AnalyticLight RixSGAnalyticLight
Definition: RixSceneGraph.h:1597
Quadric geometry, e.g. spheres.
Polygon or subdivision mesh.
Definition: RixSceneGraph.h:985
virtual ~Material()=default
virtual unsigned GetNumCoordinateSystems() const =0
Get the number of scoped coordinate systems.
virtual Group * Root() const =0
Return root node.
virtual Error DeleteDagNode(Group *node)=0
Delete a DAG node.
virtual Error SetDisplace(unsigned num, Shader const *nodes)=0
Set displace shading graph.
virtual Error SetBxdf(unsigned num, Shader const *nodes)=0
Set bxdf shading graph.
virtual ClippingPlane * CreateClippingPlane(RtUString identifier)=0
Create a DAG render camera.
Error
Scene graph error codes.
Definition: RixSceneGraph.h:89
virtual Error SetLightFilter(unsigned num, Shader const *nodes)=0
Set analytic light filter shading graph.
Operation not permitted in current state.
Shader()
Default constructor of invalid type.
Definition: RixSceneGraph.h:1566
virtual Error Stop()=0
Stop a live render.
Polygon and subdivision meshes.
virtual bool GetInheritTransform() const =0
Return inherit transform.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Shader RixSGShader
Definition: RixSceneGraph.h:1614
virtual Group * GetChild(unsigned idx) const =0
Return a pointer to any child DAG nodes.
virtual Error SetRenderable(int renderable)=0
Set renderable mode.
virtual Material * CreateMaterial(RtUString identifier)=0
Create scene graph material.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Blobby RixSGBlobby
Definition: RixSceneGraph.h:1598
virtual Error DeleteMaterial(Material *material)=0
Delete scene graph material.
virtual Error SetGeometry(RtUString type)=0
Define quadric geometry.
virtual Error Define(int32_t nleaf)=0
Define blobby implicit surfaces.
~NuPatch() override=default
virtual Error SetScheme(RtUString scheme)=0
Set subdivision scheme.
virtual Error SetOptions(RtParamList const &options)=0
Set option list.
virtual Procedural * CreateProcedural(RtUString identifier)=0
Create a procedural DAG object.
virtual unsigned GetNumParents() const =0
Return the number of parent nodes.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Error RixSGError
Definition: RixSceneGraph.h:1604
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Quadric RixSGQuadric
Definition: RixSceneGraph.h:1612
virtual Points * CreatePoints(RtUString identifier)=0
Create a points DAG object.
DisplayChannel()
Default constructor of float type.
Definition: RixSceneGraph.h:1560
virtual DagType GetDagType() const =0
Get the DAG type.
pxrcore::DataType RtDataType
Definition: RiTypesHelper.h:685
virtual Error RemoveChild(Group *child)=0
Remove a child DAG node.
#define k_RixSGManagerVersion
Definition: RixSceneGraph.h:57
virtual Error SetInheritTransform(bool value)=0
Set inherit transform.
ShaderType
Scene graph shading node types.
Definition: RixSceneGraph.h:117
Operation input is invalid.
Special geometry DAG node.
Definition: RixSceneGraph.h:898
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Camera RixSGCamera
Definition: RixSceneGraph.h:1599
virtual Error SetIntegrator(unsigned num, Shader const *nodes)=0
Set integrator shading graph.
virtual Error RemoveAllChildren()=0
Remove all child DAG nodes.
virtual Error SetPrimVars(RtPrimVarList const &primvars)=0
Set primitive variable list.
virtual RtUString GetIdentifier() const =0
Return the DAG node identifier.
DisplayChannel & operator=(DisplayChannel const &)=default
Default assign operator.
#define RMAN_NAMESPACE_OPEN_SCOPE
Definition: prmanapi.h:73
virtual Camera * CreateCamera(RtUString identifier)=0
Create a DAG render camera.
RtUString handle
User specified identifier, e.g. "diffuse1".
Definition: RixSceneGraph.h:184
virtual int GetHidden() const =0
Get hidden state.
Hair, ribbion, and curve geometry.
virtual RtUString GetIdentifier() const =0
Get material identifier.
virtual Geometry * CreateGeometry(RtUString identifier)=0
Create a basic geometric DAG object.
virtual Group * GetParent(unsigned idx) const =0
Return a pointer to any parent DAG nodes.
virtual Group * GetCoordinateSystem(unsigned idx) const =0
Get scoped coordinate system by index.
virtual Error Define(int32_t nx, int32_t ny, int32_t nz)=0
Define volume geometry.
virtual Error SetProjection(unsigned num, Shader const *nodes)=0
Set projection shading graph.
pxrcore::PrimVarList RtPrimVarList
Definition: RiTypesHelper.h:688
Curves.
Definition: RixSceneGraph.h:1109
virtual Volume * CreateVolume(RtUString identifier)=0
Create a volume DAG object.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Procedural RixSGProcedural
Definition: RixSceneGraph.h:1611
#define RMAN_NAMESPACE_CLOSE_SCOPE
Definition: prmanapi.h:74
virtual Error SetTransformSample(unsigned sample, RtMatrix4x4 const &xform, float time)=0
Set a single transform motion sample.
virtual Group * FindDagNode(char const *path) const =0
Find a DAG node from a identifier path.
virtual Error SetIdentifier(RtUString identifier)=0
Set the DAG node identifier.
virtual Error SetProperties(RtParamList const &prop)=0
Set light properties.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::NuPatch RixSGNuPatch
Definition: RixSceneGraph.h:1609
virtual Error SetDisplayChannel(unsigned num, DisplayChannel const *nodes)=0
Set display channels.
virtual Error SetOrientTransform(RtMatrix4x4 const &localxform)=0
Set orientation transform.
~Volume() override=default
virtual Blobby * CreateBlobby(RtUString identifier)=0
Create a blobby DAG object.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Curves RixSGCurves
Definition: RixSceneGraph.h:1601
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::DisplayChannel RixSGDisplayChannel
Definition: RixSceneGraph.h:1603
virtual Group * CreateGroup(RtUString identifier)=0
Create a group DAG node.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::ShaderType RixSGShaderType
Definition: RixSceneGraph.h:1615
virtual Error AddCoordinateSystem(Group *coordsys)=0
Add scoped coordinate system.
virtual Error Define(RtUString type, RtUString wrap, RtUString basis, int32_t ncurves, int32_t npoints)=0
Define curves geometry.
virtual Error SetUpdateIdCallback(UpdateIdCallback callback, void *ctx)=0
Optional callback to provide the object ids.
virtual Material * GetMaterial() const =0
Get material binding.
Scene graph shader node descriptions.
Definition: RixSceneGraph.h:163
virtual RtParamList const & GetProperties() const =0
Get camera properties.
Scene graph material description.
Definition: RixSceneGraph.h:194
Procedural primitive.
Definition: RixSceneGraph.h:1221
Clipping plane DAG node with arbitrary orientation.
Definition: RixSceneGraph.h:810
virtual RtParamList const & GetOptions() const =0
Get option list.
Points DAG node.
Definition: RixSceneGraph.h:1024
Volume geometry.
Definition: RixSceneGraph.h:1049
~AnalyticLight() override=default
virtual Error SetLight(unsigned num, Shader const *nodes)=0
Set analytic light shading graph.
Definition: RixSceneGraph.h:52
~Quadric() override=default
virtual Error SetDisplay(unsigned num, Shader const *nodes)=0
Set display drivers.
~Camera() override=default
virtual Quadric * CreateQuadric(RtUString identifier)=0
Create a quadric DAG primitve.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Material RixSGMaterial
Definition: RixSceneGraph.h:1607
Point particle and disk geometry.
virtual Error SetOrientTransform(RtMatrix4x4 const &localxform)=0
Set orientation transform.
ShaderType type
Shading node type, e.g., pattern, bxdf, etc.
Definition: RixSceneGraph.h:178
virtual Error SetDisplayFilter(unsigned num, Shader const *nodes)=0
Set display filter shading graph.
virtual Error Define(int32_t npoints)=0
Define points geometry.
~Blobby() override=default
RixInterface for constructing and manipulating scene graphs.
Definition: RixSceneGraph.h:1247
virtual Error GetTransformSample(unsigned sample, RtMatrix4x4 &xform, float &time) const =0
Get a single transform motion sample.
~Procedural() override=default
virtual Error SetProperties(RtParamList const &prop)=0
Set camera properties.
pxrcore::Matrix4x4 RtMatrix4x4
Definition: RiTypesHelper.h:74
RtParamList params
Display channel parameters.
Definition: RixSceneGraph.h:157
virtual RtParamList const & GetProperties() const =0
Get light properties.
Blobby Implicit Surfaces.
Definition: RixSceneGraph.h:1079
virtual Error Define(int32_t nu, int32_t uorder, int32_t nv, int32_t vorder)=0
Define NURBS geometry.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::UpdateIdCallback RixSGUpdateIdCallback
Definition: RixSceneGraph.h:1616
Grouping and transformations.
virtual Error SetActive(bool active)=0
Enable clipping plane.
virtual Mesh * CreateMesh(RtUString identifier)=0
Create a geometric DAG mesh.
virtual Error Render(char const *cmd)=0
Start a live render, batch render, or scene export.
pxrcore::UString RtUString
Definition: RiTypesHelper.h:682
NuPatch.
Definition: RixSceneGraph.h:1172
~Points() override=default
virtual Error SetIdentifier(RtUString identifier)=0
Set material identifier.
virtual Error SetLight(unsigned num, Shader const *nodes)=0
Set geometry light shading graph.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Mesh RixSGMesh
Definition: RixSceneGraph.h:1608
Quadric geometry DAG node.
Definition: RixSceneGraph.h:956
RtDataType type
Display channel type, e.g. color.
Definition: RixSceneGraph.h:151
Camera DAG node used for rendering and texture projections.
Definition: RixSceneGraph.h:740
virtual void EditEnd()=0
Finish an edit block.
Error SetIdentity()
Set the identity transform.
Definition: RixSceneGraph.h:1577
DagType
Scene graph DAG node types.
Definition: RixSceneGraph.h:98
virtual Error AddChild(Group *child)=0
Add a child DAG node.
RtParamList params
Shading node parameters.
Definition: RixSceneGraph.h:187
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Geometry RixSGGeometry
Definition: RixSceneGraph.h:1605
virtual Error SetOrientTransform(RtMatrix4x4 const &localxform)=0
Set orientation transform.
Surface, subsurface, volumetric scattering.
Entry point for constructing and manipulating scene graphs.
Definition: RixSceneGraph.h:1620
virtual Error SetHidden(int state)=0
Set hidden state.
virtual Error Define(RtUString subdivfunction, RtUString boundfunction)=0
Define procedural.
virtual RtParamList const & GetAttributes() const =0
Get attribute list.
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::ClippingPlane RixSGClippingPlane
Definition: RixSceneGraph.h:1600
virtual Error SetSampleFilter(unsigned num, Shader const *nodes)=0
Set sample filter shading graph.
Base class for scene graph DAG nodes.
Definition: RixSceneGraph.h:271
ScopedEdit(Scene *scene)
Definition: RixSceneGraph.h:1582
RMAN_NAMESPACE::RMAN_SCENEGRAPH_NAMESPACE::Points RixSGPoints
Definition: RixSceneGraph.h:1610
Analytic and geometric light emission.
~ScopedEdit()
Definition: RixSceneGraph.h:1587
virtual Error SetNested(bool state)=0
Set nesting state.
~Curves() override=default
virtual Error OverrideMaterial(Material *material, unsigned depth, Group **path)=0
Override material binding.