UsdSchemaBase Class Reference

The base class for all schema types in Usd. More...

+ Inheritance diagram for UsdSchemaBase:

Public Member Functions

bool IsConcrete () const
 Returns whether or not this class corresponds to a concrete instantiable prim type in scene description. More...
 
bool IsTyped () const
 Returns whether or not this class inherits from UsdTyped. More...
 
bool IsAPISchema () const
 Returns whether this is an API schema or not. More...
 
bool IsAppliedAPISchema () const
 Returns whether this is an applied API schema or not. More...
 
bool IsMultipleApplyAPISchema () const
 Returns whether this is an applied API schema or not. More...
 
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
 
Held prim access.
UsdPrim GetPrim () const
 Return this schema object's held prim. More...
 
SdfPath GetPath () const
 Shorthand for GetPrim()->GetPath(). More...
 
PrimDefinition access.
USD_API const UsdPrimDefinitionGetSchemaClassPrimDefinition () const
 Return the prim definition associated with this schema instance if one exists, otherwise return null. More...
 

Static Public Member Functions

static const TfTokenVectorGetSchemaAttributeNames (bool includeInherited=true)
 

Static Public Attributes

static const UsdSchemaKind schemaKind = UsdSchemaKind::AbstractBase
 Compile time constant representing what kind of schema this class is. More...
 

Protected Member Functions

virtual UsdSchemaKind _GetSchemaKind () const
 Returns the kind of schema this class is. More...
 
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
 
virtual USD_API bool _IsCompatible () const
 Subclasses may override _IsCompatible to do specific compatibility checking with the given prim, such as type compatibility or value compatibility. More...
 

Detailed Description

The base class for all schema types in Usd.

Schema objects hold a UsdPrim internally and provide a layer of specific named API atop the underlying scene graph.

Schema objects are polymorphic but they are intended to be created as automatic local variables, so they may be passed and returned by-value. This leaves them subject to slicing. This means that if one passes a SpecificSchema instance to a function that takes a UsdSchemaBase by-value, all the polymorphic behavior specific to SpecificSchema is lost.

To avoid slicing, it is encouraged that functions taking schema object arguments take them by const & if const access is sufficient, otherwise by non-const pointer.

Definition at line 56 of file schemaBase.h.

Constructor & Destructor Documentation

◆ UsdSchemaBase() [1/2]

USD_API UsdSchemaBase ( const UsdPrim prim = UsdPrim())
explicit

Construct and store prim as the held prim.

◆ UsdSchemaBase() [2/2]

USD_API UsdSchemaBase ( const UsdSchemaBase otherSchema)
explicit

Construct and store for the same prim held by otherSchema.

◆ ~UsdSchemaBase()

virtual USD_API ~UsdSchemaBase ( )
virtual

Destructor.

Member Function Documentation

◆ _GetSchemaKind()

virtual UsdSchemaKind _GetSchemaKind ( ) const
inlineprotectedvirtual

Returns the kind of schema this class is.

See also
UsdSchemaBase::schemaKind

Reimplemented in UsdGeomPointInstancer, UsdGeomBasisCurves, UsdGeomXformable, UsdCollectionAPI, UsdLuxListAPI, UsdShadeMaterialBindingAPI, UsdGeomModelAPI, UsdGeomMesh, UsdPhysicsDriveAPI, UsdPhysicsLimitAPI, UsdShadeMaterial, UsdGeomNurbsPatch, UsdMediaSpatialAudio, UsdGeomVisibilityAPI, UsdLuxLightAPI, UsdShadeNodeDefAPI, UsdGeomCamera, UsdRiSplineAPI, UsdGeomHermiteCurves, UsdRiMaterialAPI, UsdGeomSubset, UsdLuxDomeLight, UsdLuxMeshLightAPI, UsdLuxVolumeLightAPI, UsdShadeShader, UsdRiStatementsAPI, UsdSkelBindingAPI, UsdUIBackdrop, UsdClipsAPI, UsdShadeNodeGraph, UsdAPISchemaBase, UsdGeomMotionAPI, UsdLuxLightFilter, UsdPhysicsMeshCollisionAPI, UsdUINodeGraphNodeAPI, UsdUISceneGraphPrimAPI, UsdGeomNurbsCurves, UsdPhysicsArticulationRootAPI, UsdPhysicsFilteredPairsAPI, UsdLuxShadowAPI, UsdPhysicsCollisionAPI, UsdRiTextureAPI, UsdLuxShapingAPI, UsdPhysicsRigidBodyAPI, UsdPhysicsMassAPI, UsdPhysicsMaterialAPI, UsdRenderProduct, UsdVolVolume, UsdRenderVar, UsdRenderSettingsAPI, UsdGeomCone, UsdGeomCylinder, UsdGeomPoints, UsdLuxRectLight, UsdPhysicsCollisionGroup, UsdLuxCylinderLight, UsdPhysicsSphericalJoint, UsdSkelBlendShape, UsdGeomCapsule, UsdGeomXformCommonAPI, UsdLuxGeometryLight, UsdLuxPluginLight, UsdLuxPluginLightFilter, UsdLuxPortalLight, UsdLuxDiskLight, UsdLuxDistantLight, UsdPhysicsPrismaticJoint, UsdPhysicsRevoluteJoint, UsdRenderSettings, UsdSkelRoot, UsdSkelSkeleton, UsdVolField3DAsset, UsdVolOpenVDBAsset, UsdLuxSphereLight, UsdPhysicsJoint, UsdSkelAnimation, UsdGeomCube, UsdGeomSphere, UsdGeomScope, UsdPhysicsDistanceJoint, UsdGeomBoundable, UsdGeomPrimvarsAPI, UsdPhysicsFixedJoint, UsdPhysicsScene, UsdGeomXform, UsdShadeConnectableAPI, UsdSkelPackedJointAnimation, UsdShadeCoordSysAPI, UsdGeomCurves, UsdGeomImageable, UsdModelAPI, UsdGeomGprim, UsdRenderSettingsBase, UsdVolFieldAsset, UsdLuxBoundableLightBase, UsdLuxNonboundableLightBase, UsdGeomPointBased, and UsdVolFieldBase.

Definition at line 173 of file schemaBase.h.

◆ _GetSchemaType()

virtual UsdSchemaKind _GetSchemaType ( ) const
inlineprotectedvirtual
Deprecated:
This has been replace with _GetSchemaKind but is around for now for backwards compatibility while schemas are being updated.

Leaving this around for one more release as schema classes up until now have been generated with an override of this function. We don't want those classes to immediately not compile before a chance is given to regenerate the schemas.

Definition at line 185 of file schemaBase.h.

◆ _IsCompatible()

virtual USD_API bool _IsCompatible ( ) const
protectedvirtual

Subclasses may override _IsCompatible to do specific compatibility checking with the given prim, such as type compatibility or value compatibility.

This check is performed when clients invoke the explicit bool operator.

Reimplemented in UsdGeomXformCommonAPI, UsdAPISchemaBase, UsdShadeConnectableAPI, and UsdTyped.

◆ GetPath()

SdfPath GetPath ( ) const
inline

Shorthand for GetPrim()->GetPath().

Definition at line 123 of file schemaBase.h.

◆ GetPrim()

UsdPrim GetPrim ( ) const
inline

Return this schema object's held prim.

Definition at line 120 of file schemaBase.h.

◆ GetSchemaClassPrimDefinition()

USD_API const UsdPrimDefinition* GetSchemaClassPrimDefinition ( ) const

Return the prim definition associated with this schema instance if one exists, otherwise return null.

This does not use the held prim's type. To get the held prim instance's definition, use UsdPrim::GetPrimDefinition().

See also
UsdPrim::GetPrimDefinition()

◆ GetSchemaKind()

UsdSchemaKind GetSchemaKind ( ) const
inline

Returns the kind of schema this class is.

Definition at line 100 of file schemaBase.h.

◆ IsAPISchema()

bool IsAPISchema ( ) const
inline

Returns whether this is an API schema or not.

Definition at line 79 of file schemaBase.h.

◆ IsAppliedAPISchema()

bool IsAppliedAPISchema ( ) const
inline

Returns whether this is an applied API schema or not.

If this returns true this class will have an Apply() method

Definition at line 87 of file schemaBase.h.

◆ IsConcrete()

bool IsConcrete ( ) const
inline

Returns whether or not this class corresponds to a concrete instantiable prim type in scene description.

If this is true, GetStaticPrimDefinition() will return a valid prim definition with a non-empty typeName.

Definition at line 67 of file schemaBase.h.

◆ IsMultipleApplyAPISchema()

bool IsMultipleApplyAPISchema ( ) const
inline

Returns whether this is an applied API schema or not.

If this returns true the constructor, Get and Apply methods of this class will take in the name of the API schema instance.

Definition at line 95 of file schemaBase.h.

◆ IsTyped()

bool IsTyped ( ) const
inline

Returns whether or not this class inherits from UsdTyped.

Types which inherit from UsdTyped can impart a typename on a UsdPrim.

Definition at line 73 of file schemaBase.h.

◆ operator bool()

USD_API operator bool ( ) const
inlineexplicit

Return true if this schema object is compatible with its held prim, false otherwise. For untyped schemas return true if the held prim is not expired, otherwise return false. For typed schemas return true if the held prim is not expired and its type is the schema's type or a subtype of the schema's type. Otherwise return false. This method invokes polymorphic behavior.

See also
UsdSchemaBase::_IsCompatible()

Definition at line 165 of file schemaBase.h.

Member Data Documentation

◆ schemaKind

const UsdSchemaKind schemaKind = UsdSchemaKind::AbstractBase
static

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

See also
UsdSchemaKind in usd/common.h

Definition at line 61 of file schemaBase.h.


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