RenderMan API  23.0
RixSGNuPatch Class Referenceabstract

NuPatch. More...

#include <RixSceneGraph.h>

Inheritance diagram for RixSGNuPatch:
RixSGGeometry RixSGGroup

Public Member Functions

virtual RixSGError Define (int32_t nu, int32_t uorder, int32_t nv, int32_t vorder)=0
 
- Public Member Functions inherited from RixSGGeometry
virtual RtUString Geometry () const =0
 Return geometry type. More...
 
virtual RixSGError SetGeometry (RtUString type)=0
 
virtual RtParamList const & GetPrimVars () const =0
 
virtual RixSGError SetPrimVars (RtParamList const &primvars)=0
 
- Public Member Functions inherited from RixSGGroup
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 RixSGGroupGetCoordinateSystem (unsigned idx) const =0
 
virtual RixSGError AddChild (RixSGGroup *child)=0
 
virtual RixSGError RemoveChild (RixSGGroup *child)=0
 
virtual unsigned GetNumChildren () const =0
 
virtual RixSGGroupGetChild (unsigned idx) const =0
 
virtual unsigned GetNumParents () const =0
 
virtual RixSGGroupGetParent (unsigned idx) const =0
 
virtual RixSGGroupFindDagNode (char const *path) const =0
 
virtual RixSGMaterialGetMaterial () 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
 

Protected Member Functions

 RixSGNuPatch ()=default
 
virtual ~RixSGNuPatch ()=default
 
- Protected Member Functions inherited from RixSGGeometry
 RixSGGeometry ()=default
 
virtual ~RixSGGeometry ()=default
 

Detailed Description

NuPatch.

Definition at line 1078 of file RixSceneGraph.h.

Constructor & Destructor Documentation

◆ RixSGNuPatch()

RixSGNuPatch::RixSGNuPatch ( )
inlineprotecteddefault

◆ ~RixSGNuPatch()

virtual RixSGNuPatch::~RixSGNuPatch ( )
protectedvirtualdefault

Member Function Documentation

◆ Define()

virtual RixSGError RixSGNuPatch::Define ( int32_t  nu,
int32_t  uorder,
int32_t  nv,
int32_t  vorder 
)
pure virtual

Define NURBS geometry

Non-uniform B-spline patches are also supported by RenderMan. Rational quadric B-slpines 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 non-uniform B-spline surface patch mesh. The surface specified is ratyional if the position of the vertices are 4-vectors (x,y,z,w) and polynomial if the positions are 3-vectors (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 B-spline 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)
Parameters
[in]nuThe number of control points in the u direction
[in]uorderThe uorder
[in]nvThe number of control points in the v direction
[in]vorderThe vorder
Returns
Error code

The documentation for this class was generated from the following file: