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

#include <schemaBase.h>

+ Inheritance diagram for UsdSchemaBase:

Public Member Functions

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
 
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
 

Static Public Member Functions

static const TfTokenVectorGetSchemaAttributeNames (bool includeInherited=true)
 

Static Public Attributes

static const UsdSchemaKind schemaKind = UsdSchemaKind::AbstractBase
 

Protected Member Functions

virtual UsdSchemaKind _GetSchemaKind () const
 
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
 

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

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

Construct and store prim as the held prim.

USD_API UsdSchemaBase::UsdSchemaBase ( const UsdSchemaBase otherSchema)
explicit

Construct and store for the same prim held by otherSchema.

virtual USD_API UsdSchemaBase::~UsdSchemaBase ( )
virtual

Destructor.

Member Function Documentation

USD_API UsdAttribute UsdSchemaBase::_CreateAttr ( TfToken const attrName,
SdfValueTypeName const typeName,
bool  custom,
SdfVariability  variability,
VtValue const defaultValue,
bool  writeSparsely 
) const
protected
virtual UsdSchemaKind UsdSchemaBase::_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, UsdShadeNodeDefAPI, UsdGeomCamera, UsdRiSplineAPI, UsdGeomHermiteCurves, UsdRiMaterialAPI, UsdGeomSubset, UsdRiStatementsAPI, UsdShadeShader, UsdSkelBindingAPI, UsdUIBackdrop, UsdClipsAPI, UsdRiLightFilterAPI, UsdShadeNodeGraph, UsdAPISchemaBase, UsdGeomMotionAPI, UsdPhysicsMeshCollisionAPI, UsdUINodeGraphNodeAPI, UsdUISceneGraphPrimAPI, UsdGeomNurbsCurves, UsdPhysicsArticulationRootAPI, UsdPhysicsFilteredPairsAPI, UsdRiLightAPI, UsdLuxShadowAPI, UsdPhysicsCollisionAPI, UsdRiLightPortalAPI, UsdRiTextureAPI, UsdLuxShapingAPI, UsdPhysicsRigidBodyAPI, UsdLuxLightFilter, UsdPhysicsMassAPI, UsdPhysicsMaterialAPI, UsdRenderProduct, UsdVolVolume, UsdRenderVar, UsdRenderSettingsAPI, UsdRiPxrRampLightFilter, UsdRiPxrRodLightFilter, UsdGeomCone, UsdGeomCylinder, UsdGeomPoints, UsdPhysicsCollisionGroup, UsdPhysicsSphericalJoint, UsdRiPxrBarnLightFilter, UsdRiPxrCookieLightFilter, UsdSkelBlendShape, UsdGeomCapsule, UsdGeomXformCommonAPI, UsdLuxPluginLight, UsdLuxPluginLightFilter, UsdPhysicsPrismaticJoint, UsdPhysicsRevoluteJoint, UsdRenderSettings, UsdSkelRoot, UsdSkelSkeleton, UsdVolField3DAsset, UsdVolOpenVDBAsset, UsdLuxLightPortal, UsdPhysicsJoint, UsdRiRisBxdf, UsdRiRisObject, UsdRiRisOslPattern, UsdSkelAnimation, UsdLuxRectLight, UsdRiRisIntegrator, UsdRiRisPattern, UsdGeomCube, UsdGeomSphere, UsdLuxCylinderLight, UsdRiPxrIntMultLightFilter, UsdRiRslShader, UsdGeomScope, UsdHoudiniHoudiniFieldAsset, UsdHoudiniHoudiniLayerInfo, UsdLuxDiskLight, UsdLuxDistantLight, UsdLuxGeometryLight, UsdLuxPortalLight, UsdPhysicsDistanceJoint, UsdGeomBoundable, UsdGeomPrimvarsAPI, UsdLuxSphereLight, UsdPhysicsFixedJoint, UsdPhysicsScene, UsdRiPxrAovLight, UsdRiPxrEnvDayLight, UsdGeomXform, UsdShadeConnectableAPI, UsdSkelPackedJointAnimation, UsdHoudiniHoudiniCameraPlateAPI, UsdLuxLight, UsdShadeCoordSysAPI, UsdHoudiniHoudiniViewportGuideAPI, UsdHoudiniHoudiniEditableAPI, UsdGeomCurves, UsdGeomImageable, UsdModelAPI, UsdGeomGprim, UsdRenderSettingsBase, UsdVolFieldAsset, UsdGeomPointBased, and UsdVolFieldBase.

Definition at line 173 of file schemaBase.h.

virtual UsdSchemaKind UsdSchemaBase::_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.

Reimplemented in UsdHoudiniHoudiniFieldAsset, UsdHoudiniHoudiniLayerInfo, UsdHoudiniHoudiniCameraPlateAPI, UsdHoudiniHoudiniViewportGuideAPI, and UsdHoudiniHoudiniEditableAPI.

Definition at line 185 of file schemaBase.h.

const TfType& UsdSchemaBase::_GetType ( ) const
inlineprotected

Definition at line 191 of file schemaBase.h.

virtual USD_API bool UsdSchemaBase::_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.

SdfPath UsdSchemaBase::GetPath ( ) const
inline

Shorthand for GetPrim()->GetPath().

Definition at line 123 of file schemaBase.h.

UsdPrim UsdSchemaBase::GetPrim ( ) const
inline

Return this schema object's held prim.

Definition at line 120 of file schemaBase.h.

static const TfTokenVector& UsdSchemaBase::GetSchemaAttributeNames ( bool  includeInherited = true)
inlinestatic

Definition at line 148 of file schemaBase.h.

USD_API const UsdPrimDefinition* UsdSchemaBase::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()
UsdSchemaKind UsdSchemaBase::GetSchemaKind ( ) const
inline

Returns the kind of schema this class is.

Definition at line 100 of file schemaBase.h.

bool UsdSchemaBase::IsAPISchema ( ) const
inline

Returns whether this is an API schema or not.

Definition at line 79 of file schemaBase.h.

bool UsdSchemaBase::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.

bool UsdSchemaBase::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.

bool UsdSchemaBase::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.

bool UsdSchemaBase::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.

USD_API UsdSchemaBase::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

const UsdSchemaKind UsdSchemaBase::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: