![]() |
RenderMan API
23.0
|
NuPatch. More...
#include <RixSceneGraph.h>
Public Member Functions | |
virtual RixSGError | Define (int32_t nu, int32_t uorder, int32_t nv, int32_t vorder)=0 |
![]() | |
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 |
![]() | |
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 |
Protected Member Functions | |
RixSGNuPatch ()=default | |
virtual | ~RixSGNuPatch ()=default |
![]() | |
RixSGGeometry ()=default | |
virtual | ~RixSGGeometry ()=default |
NuPatch.
Definition at line 1078 of file RixSceneGraph.h.
|
inlineprotecteddefault |
|
protectedvirtualdefault |
|
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) |
[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 |