HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UsdGeomNurbsPatch Class Reference

#include <nurbsPatch.h>

+ Inheritance diagram for UsdGeomNurbsPatch:

Public Member Functions

 UsdGeomNurbsPatch (const UsdPrim &prim=UsdPrim())
 
 UsdGeomNurbsPatch (const UsdSchemaBase &schemaObj)
 
virtual USDGEOM_API ~UsdGeomNurbsPatch ()
 Destructor. More...
 
USDGEOM_API UsdAttribute GetUVertexCountAttr () const
 
USDGEOM_API UsdAttribute CreateUVertexCountAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetVVertexCountAttr () const
 
USDGEOM_API UsdAttribute CreateVVertexCountAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetUOrderAttr () const
 
USDGEOM_API UsdAttribute CreateUOrderAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetVOrderAttr () const
 
USDGEOM_API UsdAttribute CreateVOrderAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetUKnotsAttr () const
 
USDGEOM_API UsdAttribute CreateUKnotsAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetVKnotsAttr () const
 
USDGEOM_API UsdAttribute CreateVKnotsAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetUFormAttr () const
 
USDGEOM_API UsdAttribute CreateUFormAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetVFormAttr () const
 
USDGEOM_API UsdAttribute CreateVFormAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetURangeAttr () const
 
USDGEOM_API UsdAttribute CreateURangeAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetVRangeAttr () const
 
USDGEOM_API UsdAttribute CreateVRangeAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetPointWeightsAttr () const
 
USDGEOM_API UsdAttribute CreatePointWeightsAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetTrimCurveCountsAttr () const
 
USDGEOM_API UsdAttribute CreateTrimCurveCountsAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetTrimCurveOrdersAttr () const
 
USDGEOM_API UsdAttribute CreateTrimCurveOrdersAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetTrimCurveVertexCountsAttr () const
 
USDGEOM_API UsdAttribute CreateTrimCurveVertexCountsAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetTrimCurveKnotsAttr () const
 
USDGEOM_API UsdAttribute CreateTrimCurveKnotsAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetTrimCurveRangesAttr () const
 
USDGEOM_API UsdAttribute CreateTrimCurveRangesAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetTrimCurvePointsAttr () const
 
USDGEOM_API UsdAttribute CreateTrimCurvePointsAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
- Public Member Functions inherited from UsdGeomPointBased
 UsdGeomPointBased (const UsdPrim &prim=UsdPrim())
 
 UsdGeomPointBased (const UsdSchemaBase &schemaObj)
 
virtual USDGEOM_API ~UsdGeomPointBased ()
 Destructor. More...
 
USDGEOM_API UsdAttribute GetPointsAttr () const
 
USDGEOM_API UsdAttribute CreatePointsAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetVelocitiesAttr () const
 
USDGEOM_API UsdAttribute CreateVelocitiesAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetAccelerationsAttr () const
 
USDGEOM_API UsdAttribute CreateAccelerationsAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetNormalsAttr () const
 
USDGEOM_API UsdAttribute CreateNormalsAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API TfToken GetNormalsInterpolation () const
 
USDGEOM_API bool SetNormalsInterpolation (TfToken const &interpolation)
 
USDGEOM_API bool ComputePointsAtTime (VtArray< GfVec3f > *points, const UsdTimeCode time, const UsdTimeCode baseTime) const
 
USDGEOM_API bool ComputePointsAtTimes (std::vector< VtArray< GfVec3f >> *pointsArray, const std::vector< UsdTimeCode > &times, const UsdTimeCode baseTime) const
 
- Public Member Functions inherited from UsdGeomGprim
 UsdGeomGprim (const UsdPrim &prim=UsdPrim())
 
 UsdGeomGprim (const UsdSchemaBase &schemaObj)
 
virtual USDGEOM_API ~UsdGeomGprim ()
 Destructor. More...
 
USDGEOM_API UsdAttribute GetDisplayColorAttr () const
 
USDGEOM_API UsdAttribute CreateDisplayColorAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetDisplayOpacityAttr () const
 
USDGEOM_API UsdAttribute CreateDisplayOpacityAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetDoubleSidedAttr () const
 
USDGEOM_API UsdAttribute CreateDoubleSidedAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetOrientationAttr () const
 
USDGEOM_API UsdAttribute CreateOrientationAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdGeomPrimvar GetDisplayColorPrimvar () const
 
USDGEOM_API UsdGeomPrimvar CreateDisplayColorPrimvar (const TfToken &interpolation=TfToken(), int elementSize=-1) const
 
USDGEOM_API UsdGeomPrimvar GetDisplayOpacityPrimvar () const
 
USDGEOM_API UsdGeomPrimvar CreateDisplayOpacityPrimvar (const TfToken &interpolation=TfToken(), int elementSize=-1) const
 
- Public Member Functions inherited from UsdGeomBoundable
 UsdGeomBoundable (const UsdPrim &prim=UsdPrim())
 
 UsdGeomBoundable (const UsdSchemaBase &schemaObj)
 
virtual USDGEOM_API ~UsdGeomBoundable ()
 Destructor. More...
 
USDGEOM_API UsdAttribute GetExtentAttr () const
 
USDGEOM_API UsdAttribute CreateExtentAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API bool ComputeExtent (const UsdTimeCode &time, VtVec3fArray *extent)
 
- Public Member Functions inherited from UsdGeomXformable
 UsdGeomXformable (const UsdPrim &prim=UsdPrim())
 
 UsdGeomXformable (const UsdSchemaBase &schemaObj)
 
virtual USDGEOM_API ~UsdGeomXformable ()
 Destructor. More...
 
USDGEOM_API UsdAttribute GetXformOpOrderAttr () const
 
USDGEOM_API UsdAttribute CreateXformOpOrderAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdGeomXformOp AddXformOp (UsdGeomXformOp::Type const opType, UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionDouble, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddTranslateOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionDouble, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddScaleOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionFloat, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddRotateXOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionFloat, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddRotateYOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionFloat, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddRotateZOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionFloat, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddRotateXYZOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionFloat, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddRotateXZYOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionFloat, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddRotateYXZOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionFloat, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddRotateYZXOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionFloat, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddRotateZXYOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionFloat, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddRotateZYXOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionFloat, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddOrientOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionFloat, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API UsdGeomXformOp AddTransformOp (UsdGeomXformOp::Precision const precision=UsdGeomXformOp::PrecisionDouble, TfToken const &opSuffix=TfToken(), bool isInverseOp=false) const
 
USDGEOM_API bool SetResetXformStack (bool resetXform) const
 
USDGEOM_API bool GetResetXformStack () const
 
USDGEOM_API bool SetXformOpOrder (std::vector< UsdGeomXformOp > const &orderedXformOps, bool resetXformStack=false) const
 
USDGEOM_API std::vector
< UsdGeomXformOp
GetOrderedXformOps (bool *resetsXformStack) const
 
USDGEOM_API bool ClearXformOpOrder () const
 Clears the local transform stack. More...
 
USDGEOM_API UsdGeomXformOp MakeMatrixXform () const
 
USDGEOM_API bool TransformMightBeTimeVarying () const
 
USDGEOM_API bool TransformMightBeTimeVarying (const std::vector< UsdGeomXformOp > &ops) const
 
USDGEOM_API bool GetTimeSamples (std::vector< double > *times) const
 
USDGEOM_API bool GetTimeSamplesInInterval (const GfInterval &interval, std::vector< double > *times) const
 
USDGEOM_API bool GetLocalTransformation (GfMatrix4d *transform, bool *resetsXformStack, const UsdTimeCode time=UsdTimeCode::Default()) const
 
USDGEOM_API bool GetLocalTransformation (GfMatrix4d *transform, bool *resetsXformStack, const std::vector< UsdGeomXformOp > &ops, const UsdTimeCode time=UsdTimeCode::Default()) const
 
- Public Member Functions inherited from UsdGeomImageable
 UsdGeomImageable (const UsdPrim &prim=UsdPrim())
 
 UsdGeomImageable (const UsdSchemaBase &schemaObj)
 
virtual USDGEOM_API ~UsdGeomImageable ()
 Destructor. More...
 
USDGEOM_API UsdAttribute GetVisibilityAttr () const
 
USDGEOM_API UsdAttribute CreateVisibilityAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdAttribute GetPurposeAttr () const
 
USDGEOM_API UsdAttribute CreatePurposeAttr (VtValue const &defaultValue=VtValue(), bool writeSparsely=false) const
 
USDGEOM_API UsdRelationship GetProxyPrimRel () const
 
USDGEOM_API UsdRelationship CreateProxyPrimRel () const
 
USDGEOM_API void MakeVisible (const UsdTimeCode &time=UsdTimeCode::Default()) const
 
USDGEOM_API void MakeInvisible (const UsdTimeCode &time=UsdTimeCode::Default()) const
 
USDGEOM_API TfToken ComputeVisibility (UsdTimeCode const &time=UsdTimeCode::Default()) const
 
USDGEOM_API UsdAttribute GetPurposeVisibilityAttr (const TfToken &purpose=UsdGeomTokens->default_) const
 
USDGEOM_API TfToken ComputeEffectiveVisibility (const TfToken &purpose=UsdGeomTokens->default_, const UsdTimeCode &time=UsdTimeCode::Default()) const
 
USDGEOM_API PurposeInfo ComputePurposeInfo () const
 
USDGEOM_API PurposeInfo ComputePurposeInfo (const PurposeInfo &parentPurposeInfo) const
 
USDGEOM_API TfToken ComputePurpose () const
 
USDGEOM_API UsdPrim ComputeProxyPrim (UsdPrim *renderPrim=NULL) const
 
USDGEOM_API bool SetProxyPrim (const UsdPrim &proxy) const
 
USDGEOM_API bool SetProxyPrim (const UsdSchemaBase &proxy) const
 
USDGEOM_API GfBBox3d ComputeWorldBound (UsdTimeCode const &time, TfToken const &purpose1=TfToken(), TfToken const &purpose2=TfToken(), TfToken const &purpose3=TfToken(), TfToken const &purpose4=TfToken()) const
 
USDGEOM_API GfBBox3d ComputeLocalBound (UsdTimeCode const &time, TfToken const &purpose1=TfToken(), TfToken const &purpose2=TfToken(), TfToken const &purpose3=TfToken(), TfToken const &purpose4=TfToken()) const
 
USDGEOM_API GfBBox3d ComputeUntransformedBound (UsdTimeCode const &time, TfToken const &purpose1=TfToken(), TfToken const &purpose2=TfToken(), TfToken const &purpose3=TfToken(), TfToken const &purpose4=TfToken()) const
 
USDGEOM_API GfMatrix4d ComputeLocalToWorldTransform (UsdTimeCode const &time) const
 
USDGEOM_API GfMatrix4d ComputeParentToWorldTransform (UsdTimeCode const &time) const
 
- Public Member Functions inherited from UsdTyped
 UsdTyped (const UsdPrim &prim=UsdPrim())
 
 UsdTyped (const UsdSchemaBase &schemaObj)
 
virtual USD_API ~UsdTyped ()
 Destructor. More...
 
- Public Member Functions inherited from UsdSchemaBase
bool IsConcrete () const
 
bool IsTyped () const
 
bool IsAPISchema () const
 Returns whether this is an API schema or not. More...
 
bool IsAppliedAPISchema () const
 
bool IsMultipleApplyAPISchema () const
 
UsdSchemaKind GetSchemaKind () const
 Returns the kind of schema this class is. More...
 
USD_API UsdSchemaBase (const UsdPrim &prim=UsdPrim())
 Construct and store prim as the held prim. More...
 
USD_API UsdSchemaBase (const UsdSchemaBase &otherSchema)
 Construct and store for the same prim held by otherSchema. More...
 
virtual USD_API ~UsdSchemaBase ()
 Destructor. More...
 
USD_API operator bool () const
 
UsdPrim GetPrim () const
 Return this schema object's held prim. More...
 
SdfPath GetPath () const
 Shorthand for GetPrim()->GetPath(). More...
 
USD_API const UsdPrimDefinitionGetSchemaClassPrimDefinition () const
 

Static Public Member Functions

static USDGEOM_API const
TfTokenVector
GetSchemaAttributeNames (bool includeInherited=true)
 
static USDGEOM_API
UsdGeomNurbsPatch 
Get (const UsdStagePtr &stage, const SdfPath &path)
 
static USDGEOM_API
UsdGeomNurbsPatch 
Define (const UsdStagePtr &stage, const SdfPath &path)
 
- Static Public Member Functions inherited from UsdGeomPointBased
static USDGEOM_API const
TfTokenVector
GetSchemaAttributeNames (bool includeInherited=true)
 
static USDGEOM_API
UsdGeomPointBased 
Get (const UsdStagePtr &stage, const SdfPath &path)
 
static USDGEOM_API bool ComputeExtent (const VtVec3fArray &points, VtVec3fArray *extent)
 
static USDGEOM_API bool ComputeExtent (const VtVec3fArray &points, const GfMatrix4d &transform, VtVec3fArray *extent)
 
static USDGEOM_API bool ComputePointsAtTime (VtArray< GfVec3f > *points, UsdStageWeakPtr &stage, UsdTimeCode time, const VtVec3fArray &positions, const VtVec3fArray &velocities, UsdTimeCode velocitiesSampleTime, const VtVec3fArray &accelerations, float velocityScale=1.0)
 
- Static Public Member Functions inherited from UsdGeomGprim
static USDGEOM_API const
TfTokenVector
GetSchemaAttributeNames (bool includeInherited=true)
 
static USDGEOM_API UsdGeomGprim Get (const UsdStagePtr &stage, const SdfPath &path)
 
- Static Public Member Functions inherited from UsdGeomBoundable
static USDGEOM_API const
TfTokenVector
GetSchemaAttributeNames (bool includeInherited=true)
 
static USDGEOM_API UsdGeomBoundable Get (const UsdStagePtr &stage, const SdfPath &path)
 
static USDGEOM_API bool ComputeExtentFromPlugins (const UsdGeomBoundable &boundable, const UsdTimeCode &time, VtVec3fArray *extent)
 
static USDGEOM_API bool ComputeExtentFromPlugins (const UsdGeomBoundable &boundable, const UsdTimeCode &time, const GfMatrix4d &transform, VtVec3fArray *extent)
 
- Static Public Member Functions inherited from UsdGeomXformable
static USDGEOM_API const
TfTokenVector
GetSchemaAttributeNames (bool includeInherited=true)
 
static USDGEOM_API UsdGeomXformable Get (const UsdStagePtr &stage, const SdfPath &path)
 
static USDGEOM_API bool GetTimeSamples (std::vector< UsdGeomXformOp > const &orderedXformOps, std::vector< double > *times)
 
static USDGEOM_API bool GetTimeSamplesInInterval (std::vector< UsdGeomXformOp > const &orderedXformOps, const GfInterval &interval, std::vector< double > *times)
 
static USDGEOM_API bool GetLocalTransformation (GfMatrix4d *transform, std::vector< UsdGeomXformOp > const &ops, const UsdTimeCode time)
 
static USDGEOM_API bool IsTransformationAffectedByAttrNamed (const TfToken &attrName)
 
- Static Public Member Functions inherited from UsdGeomImageable
static USDGEOM_API const
TfTokenVector
GetSchemaAttributeNames (bool includeInherited=true)
 
static USDGEOM_API UsdGeomImageable Get (const UsdStagePtr &stage, const SdfPath &path)
 
static USDGEOM_API const
TfTokenVector
GetOrderedPurposeTokens ()
 
- Static Public Member Functions inherited from UsdTyped
static USD_API const
TfTokenVector
GetSchemaAttributeNames (bool includeInherited=true)
 
static USD_API UsdTyped Get (const UsdStagePtr &stage, const SdfPath &path)
 
- Static Public Member Functions inherited from UsdSchemaBase
static const TfTokenVectorGetSchemaAttributeNames (bool includeInherited=true)
 

Static Public Attributes

static const UsdSchemaKind schemaKind = UsdSchemaKind::ConcreteTyped
 
- Static Public Attributes inherited from UsdGeomPointBased
static const UsdSchemaKind schemaKind = UsdSchemaKind::AbstractTyped
 
- Static Public Attributes inherited from UsdGeomGprim
static const UsdSchemaKind schemaKind = UsdSchemaKind::AbstractTyped
 
- Static Public Attributes inherited from UsdGeomBoundable
static const UsdSchemaKind schemaKind = UsdSchemaKind::AbstractTyped
 
- Static Public Attributes inherited from UsdGeomXformable
static const UsdSchemaKind schemaKind = UsdSchemaKind::AbstractTyped
 
- Static Public Attributes inherited from UsdGeomImageable
static const UsdSchemaKind schemaKind = UsdSchemaKind::AbstractTyped
 
- Static Public Attributes inherited from UsdTyped
static const UsdSchemaKind schemaKind = UsdSchemaKind::AbstractBase
 
- Static Public Attributes inherited from UsdSchemaBase
static const UsdSchemaKind schemaKind = UsdSchemaKind::AbstractBase
 

Protected Member Functions

USDGEOM_API UsdSchemaKind _GetSchemaKind () const override
 
- Protected Member Functions inherited from UsdGeomPointBased
USDGEOM_API UsdSchemaKind _GetSchemaKind () const override
 
- Protected Member Functions inherited from UsdGeomXformable
USDGEOM_API UsdSchemaKind _GetSchemaKind () const override
 
- Protected Member Functions inherited from UsdTyped
USD_API bool _IsCompatible () const override
 
- Protected Member Functions inherited from UsdSchemaBase
virtual UsdSchemaKind _GetSchemaType () const
 
const TfType_GetType () const
 
USD_API UsdAttribute _CreateAttr (TfToken const &attrName, SdfValueTypeName const &typeName, bool custom, SdfVariability variability, VtValue const &defaultValue, bool writeSparsely) const
 

Friends

class UsdSchemaRegistry
 

Detailed Description

Encodes a rational or polynomial non-uniform B-spline surface, with optional trim curves.

The encoding mostly follows that of RiNuPatch and RiTrimCurve: https://renderman.pixar.com/resources/RenderMan_20/geometricPrimitives.html#rinupatch , with some minor renaming and coalescing for clarity.

The layout of control vertices in the points attribute inherited from UsdGeomPointBased is row-major with U considered rows, and V columns.

NurbsPatch Form

The authored points, orders, knots, weights, and ranges are all that is required to render the nurbs patch. However, the only way to model closed surfaces with nurbs is to ensure that the first and last control points along the given axis are coincident. Similarly, to ensure the surface is not only closed but also C2 continuous, the last order - 1 control points must be (correspondingly) coincident with the first order - 1 control points, and also the spacing of the last corresponding knots must be the same as the first corresponding knots.

Form is provided as an aid to interchange between modeling and animation applications so that they can robustly identify the intent with which the surface was modelled, and take measures (if they are able) to preserve the continuity/concidence constraints as the surface may be rigged or deformed.

  • An open-form NurbsPatch has no continuity constraints.
  • A closed-form NurbsPatch expects the first and last control points to overlap
  • A periodic-form NurbsPatch expects the first and last order - 1 control points to overlap.

Nurbs vs Subdivision Surfaces

Nurbs are an important modeling primitive in CAD/CAM tools and early computer graphics DCC's. Because they have a natural UV parameterization they easily support "trim curves", which allow smooth shapes to be carved out of the surface.

However, the topology of the patch is always rectangular, and joining two nurbs patches together (especially when they have differing numbers of spans) is difficult to do smoothly. Also, nurbs are not supported by the Ptex texturing technology (http://ptex.us).

Neither of these limitations are shared by subdivision surfaces; therefore, although they do not subscribe to trim-curve-based shaping, subdivs are often considered a more flexible modeling primitive.

For any described attribute Fallback Value or Allowed Values below that are text/tokens, the actual token is published and defined in UsdGeomTokens. So to set an attribute to the value "rightHanded", use UsdGeomTokens->rightHanded as the value.

Definition at line 109 of file nurbsPatch.h.

Constructor & Destructor Documentation

UsdGeomNurbsPatch::UsdGeomNurbsPatch ( const UsdPrim prim = UsdPrim())
inlineexplicit

Construct a UsdGeomNurbsPatch on UsdPrim prim . Equivalent to UsdGeomNurbsPatch::Get(prim.GetStage(), prim.GetPath()) for a valid prim, but will not immediately throw an error for an invalid prim

Definition at line 121 of file nurbsPatch.h.

UsdGeomNurbsPatch::UsdGeomNurbsPatch ( const UsdSchemaBase schemaObj)
inlineexplicit

Construct a UsdGeomNurbsPatch on the prim held by schemaObj . Should be preferred over UsdGeomNurbsPatch(schemaObj.GetPrim()), as it preserves SchemaBase state.

Definition at line 129 of file nurbsPatch.h.

virtual USDGEOM_API UsdGeomNurbsPatch::~UsdGeomNurbsPatch ( )
virtual

Destructor.

Member Function Documentation

USDGEOM_API UsdSchemaKind UsdGeomNurbsPatch::_GetSchemaKind ( ) const
overrideprotectedvirtual

Returns the kind of schema this class belongs to.

See Also
UsdSchemaKind

Reimplemented from UsdGeomGprim.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreatePointWeightsAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetPointWeightsAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateTrimCurveCountsAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetTrimCurveCountsAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateTrimCurveKnotsAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetTrimCurveKnotsAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateTrimCurveOrdersAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetTrimCurveOrdersAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateTrimCurvePointsAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetTrimCurvePointsAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateTrimCurveRangesAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetTrimCurveRangesAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateTrimCurveVertexCountsAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetTrimCurveVertexCountsAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateUFormAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetUFormAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateUKnotsAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetUKnotsAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateUOrderAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetUOrderAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateURangeAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetURangeAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateUVertexCountAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetUVertexCountAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateVFormAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetVFormAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateVKnotsAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetVKnotsAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateVOrderAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetVOrderAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateVRangeAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetVRangeAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::CreateVVertexCountAttr ( VtValue const defaultValue = VtValue(),
bool  writeSparsely = false 
) const

See GetVVertexCountAttr(), and also Usd_Create_Or_Get_Property for when to use Get vs Create. If specified, author defaultValue as the attribute's default, sparsely (when it makes sense to do so) if writeSparsely is true - the default for writeSparsely is false.

static USDGEOM_API UsdGeomNurbsPatch UsdGeomNurbsPatch::Define ( const UsdStagePtr &  stage,
const SdfPath path 
)
static

Attempt to ensure a UsdPrim adhering to this schema at path is defined (according to UsdPrim::IsDefined()) on this stage.

If a prim adhering to this schema at path is already defined on this stage, return that prim. Otherwise author an SdfPrimSpec with specifier == SdfSpecifierDef and this schema's prim type name for the prim at path at the current EditTarget. Author SdfPrimSpec s with specifier == SdfSpecifierDef and empty typeName at the current EditTarget for any nonexistent, or existing but not Defined ancestors.

The given path must be an absolute prim path that does not contain any variant selections.

If it is impossible to author any of the necessary PrimSpecs, (for example, in case path cannot map to the current UsdEditTarget's namespace) issue an error and return an invalid UsdPrim.

Note that this method may return a defined prim whose typeName does not specify this schema class, in case a stronger typeName opinion overrides the opinion at the current EditTarget.

static USDGEOM_API UsdGeomNurbsPatch UsdGeomNurbsPatch::Get ( const UsdStagePtr &  stage,
const SdfPath path 
)
static

Return a UsdGeomNurbsPatch holding the prim adhering to this schema at path on stage. If no prim exists at path on stage, or if the prim at that path does not adhere to this schema, return an invalid schema object. This is shorthand for the following:

UsdGeomNurbsPatch(stage->GetPrimAtPath(path));
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetPointWeightsAttr ( ) const

Optionally provides "w" components for each control point, thus must be the same length as the points attribute. If authored, the patch will be rational. If unauthored, the patch will be polynomial, i.e. weight for all points is 1.0.

Note
Some DCC's pre-weight the points, but in this schema, points are not pre-weighted.
Declaration double[] pointWeights
C++ Type VtArray<double>
Usd Type SdfValueTypeNames->DoubleArray
static USDGEOM_API const TfTokenVector& UsdGeomNurbsPatch::GetSchemaAttributeNames ( bool  includeInherited = true)
static

Return a vector of names of all pre-declared attributes for this schema class and all its ancestor classes. Does not include attributes that may be authored by custom/extended methods of the schemas involved.

USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetTrimCurveCountsAttr ( ) const

Each element specifies how many curves are present in each "loop" of the trimCurve, and the length of the array determines how many loops the trimCurve contains. The sum of all elements is the total nuber of curves in the trim, to which we will refer as nCurves in describing the other trim attributes.

Declaration int[] trimCurve:counts
C++ Type VtArray<int>
Usd Type SdfValueTypeNames->IntArray
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetTrimCurveKnotsAttr ( ) const

Flat list of parametric values for each of the nCurves curves. There will be as many knots as the sum over all elements of vertexCounts plus the sum over all elements of orders.

Declaration double[] trimCurve:knots
C++ Type VtArray<double>
Usd Type SdfValueTypeNames->DoubleArray
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetTrimCurveOrdersAttr ( ) const

Flat list of orders for each of the nCurves curves.

Declaration int[] trimCurve:orders
C++ Type VtArray<int>
Usd Type SdfValueTypeNames->IntArray
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetTrimCurvePointsAttr ( ) const

Flat list of homogeneous 2D points (u, v, w) that comprise the nCurves curves. The number of points should be equal to the um over all elements of vertexCounts.

Declaration double3[] trimCurve:points
C++ Type VtArray<GfVec3d>
Usd Type SdfValueTypeNames->Double3Array
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetTrimCurveRangesAttr ( ) const

Flat list of minimum and maximum parametric values (as defined by knots) for each of the nCurves curves.

Declaration double2[] trimCurve:ranges
C++ Type VtArray<GfVec2d>
Usd Type SdfValueTypeNames->Double2Array
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetTrimCurveVertexCountsAttr ( ) const

Flat list of number of vertices for each of the nCurves curves.

Declaration int[] trimCurve:vertexCounts
C++ Type VtArray<int>
Usd Type SdfValueTypeNames->IntArray
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetUFormAttr ( ) const

Interpret the control grid and knot vectors as representing an open, geometrically closed, or geometrically closed and C2 continuous surface along the U dimension.

See Also
NurbsPatch Form
Declaration uniform token uForm = "open"
C++ Type TfToken
Usd Type SdfValueTypeNames->Token
Variability SdfVariabilityUniform
Allowed Values open, closed, periodic
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetUKnotsAttr ( ) const

Knot vector for U direction providing U parameterization. The length of this array must be ( uVertexCount + uOrder ), and its entries must take on monotonically increasing values.

Declaration double[] uKnots
C++ Type VtArray<double>
Usd Type SdfValueTypeNames->DoubleArray
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetUOrderAttr ( ) const

Order in the U direction. Order must be positive and is equal to the degree of the polynomial basis to be evaluated, plus 1.

Declaration int uOrder
C++ Type int
Usd Type SdfValueTypeNames->Int
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetURangeAttr ( ) const

Provides the minimum and maximum parametric values (as defined by uKnots) over which the surface is actually defined. The minimum must be less than the maximum, and greater than or equal to the value of uKnots[uOrder-1]. The maxium must be less than or equal to the last element's value in uKnots.

Declaration double2 uRange
C++ Type GfVec2d
Usd Type SdfValueTypeNames->Double2
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetUVertexCountAttr ( ) const

Number of vertices in the U direction. Should be at least as large as uOrder.

Declaration int uVertexCount
C++ Type int
Usd Type SdfValueTypeNames->Int
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetVFormAttr ( ) const

Interpret the control grid and knot vectors as representing an open, geometrically closed, or geometrically closed and C2 continuous surface along the V dimension.

See Also
NurbsPatch Form
Declaration uniform token vForm = "open"
C++ Type TfToken
Usd Type SdfValueTypeNames->Token
Variability SdfVariabilityUniform
Allowed Values open, closed, periodic
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetVKnotsAttr ( ) const

Knot vector for V direction providing U parameterization. The length of this array must be ( vVertexCount + vOrder ), and its entries must take on monotonically increasing values.

Declaration double[] vKnots
C++ Type VtArray<double>
Usd Type SdfValueTypeNames->DoubleArray
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetVOrderAttr ( ) const

Order in the V direction. Order must be positive and is equal to the degree of the polynomial basis to be evaluated, plus 1.

Declaration int vOrder
C++ Type int
Usd Type SdfValueTypeNames->Int
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetVRangeAttr ( ) const

Provides the minimum and maximum parametric values (as defined by vKnots) over which the surface is actually defined. The minimum must be less than the maximum, and greater than or equal to the value of vKnots[vOrder-1]. The maxium must be less than or equal to the last element's value in vKnots.

Declaration double2 vRange
C++ Type GfVec2d
Usd Type SdfValueTypeNames->Double2
USDGEOM_API UsdAttribute UsdGeomNurbsPatch::GetVVertexCountAttr ( ) const

Number of vertices in the V direction. Should be at least as large as vOrder.

Declaration int vVertexCount
C++ Type int
Usd Type SdfValueTypeNames->Int

Friends And Related Function Documentation

friend class UsdSchemaRegistry
friend

Definition at line 193 of file nurbsPatch.h.

Member Data Documentation

const UsdSchemaKind UsdGeomNurbsPatch::schemaKind = UsdSchemaKind::ConcreteTyped
static

Compile time constant representing what kind of schema this class is.

See Also
UsdSchemaKind

Definition at line 115 of file nurbsPatch.h.


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