UsdSchemaRegistry#
Fully qualified name: usdrt::UsdSchemaRegistry
-
class UsdSchemaRegistry#
Singleton registry that provides access to schema type information and the prim definitions for registered Usd “IsA” and applied API schema types. It also contains the data from the generated schemas that is used by prim definitions to provide properties and fallbacks.
Public Functions
-
inline bool IsTyped(const TfToken &primType)#
Check if the given schema name inherits from UsdTyped.
Note
This differs from USD. In USD, the expected type for
primTypeis TfType. Here, we use TfToken instead as USDRT does not implement its own TfType.Note
This differs from USD. This function cannot be static with the USDRT
isAimplementation.
-
inline bool IsConcrete(const TfToken &primType) const#
Check if the given schema name is a concrete schema.
- Parameters:
primType – TfToken for the schema type name.
- Returns:
Returns true if the prim type
primTypeis instantiable in scene description.
-
inline bool IsAppliedAPISchema(const TfToken &apiSchemaType) const#
Check if the given schema type is an applied api schema type.
- Parameters:
apiSchemaType – TfToken for the schema type name.
- Returns:
Returns true if
apiSchemaTypeis an applied API schema type.
- inline bool IsMultipleApplyAPISchema(
- const TfToken &apiSchemaType,
Check if the given schema type is a multiple-apply API schema type.
- Parameters:
apiSchemaType – TfToken for the schema type name.
- Returns:
Returns true if
apiSchemaTypeis a multiple-apply API schema type.
-
inline bool IsUnknown(const TfToken &schemaType) const#
Check if
schemaTypeis a known schema within the registry.Note
this is an additional API function in place of querying the TfType system.
- Parameters:
schemaType – TfToken name for the schema to validate.
- Returns:
Returns true is
schemaTypeis an unknown schema.
- inline bool IsA( ) const#
Check if the given
sourceTypeNametype is or inherits fromqueryTypeName.Schema full name or alias can be given.
Usage example to check if UsdGeomCube is an instance of UsdTyped.
UsdSchemaRegistry::GetInstance().IsA("UsdGeomCube", "UsdTyped")()
Note
This is an additional API function to take the place of having to query the TfType system.
- Parameters:
sourceTypeName – The base schema type name for this query.
queryTypeName – The schema type name we are asking about.
- Returns:
Returns true if the sourceTypeName is an instance of the queryTypeName.
-
inline TfToken GetAliasFromName(const TfToken &name) const#
Get the schema type name alias from the given name by querying the underlying Usd TfType system.
This is used when applying or querying schema names as Fabric applies schemas with alias only. USDRT supports querying and applying using either name.
If
nameis already the alias, this function will still query the TfType system and return the alias.Note
This is an additional API not present in USD to take place of implementing a TfType system. Since this queries the underlying Usd TfType system, we assume that the USDRT schema is also a registered USD schema.
- Parameters:
name – the full schema type name or alias.
- Returns:
the TfToken for the schema alias.
-
template<typename SchemaType, typename QuerySchemaType>
inline bool IsA( Check if the given
SchemaTypetype is or inherits fromQuerySchemaType.Schema full name or alias can be given.
Usage example to check if UsdGeomCube is an instance of UsdTyped.
UsdSchemaRegistry::GetInstance().IsA<UsdGeomCube, UsdTyped>()
Note
This is an additional API function to take the place of having to query the TfType system.
- Template Parameters:
SchemaType – Base schema type for this query.
QuerySchemaType – Schema type we are asking about.
- Returns:
Returns true if the
SchemaTypeis an instance of theQuerySchemaType.
-
template<typename SchemaType>
inline bool IsA( - TfToken sourceTypeName,
Check if the given
sourceTypeNameis or inherits fromSchemaType.Schema full name or alias can be given.
Usage example to check if UsdGeomCube is an instance of UsdTyped.
UsdSchemaRegistry::GetInstance().IsA<UsdTyped>("Cube"))
Note
This is an additional API function to take the place of having to query the TfType system.
- Parameters:
sourceTypeName – Base schema type for this query.
- Template Parameters:
SchemaType – Schema type we are asking about.
- Returns:
Returns true if the
sourceTypeNameis an instance of theSchemaType.
-
inline explicit operator bool() const#
Boolean operator.
- Returns:
Return true if the schema registry is initialized.
Public Static Functions
-
static inline UsdSchemaRegistry GetInstance()#
Get the schema registry instance.
-
template<class SchemaType>
static inline TfToken GetSchemaTypeName()# Get the schema type name for given
schemaType.Note
This differs from USD. In USD, the expected return type is TfType. Here, we use TfToken instead as USDRT does not implement its own TfType.
- Returns:
Returns a TfToken for the type name of the USD schema.
-
inline bool IsTyped(const TfToken &primType)#