24 #ifndef PXR_USD_USD_SCHEMA_REGISTRY_H
25 #define PXR_USD_USD_SCHEMA_REGISTRY_H
77 template <
class SchemaType>
177 const TfToken &typeName)
const {
178 auto it = _concreteTypedPrimDefinitions.find(typeName);
179 return it != _concreteTypedPrimDefinitions.
end() ? it->second :
nullptr;
186 const TfToken &typeName)
const {
187 auto it = _appliedAPIPrimDefinitions.find(typeName);
188 return it != _appliedAPIPrimDefinitions.
end() ? it->second :
nullptr;
193 return _emptyPrimDefinition;
201 std::unique_ptr<UsdPrimDefinition>
217 return _fallbackPrimTypes;
225 void _FindAndAddPluginSchema();
227 void _ApplyAPISchemasToPrimDefinition(
239 _multipleApplyAPISchemaNamespaces;
250 #endif //PXR_USD_USD_SCHEMA_REGISTRY_H
const UsdPrimDefinition * FindAppliedAPIPrimDefinition(const TfToken &typeName) const
static USD_API TfType GetConcreteTypeFromSchemaTypeName(const TfToken &typeName)
USD_API bool IsAppliedAPISchema(const TfType &apiSchemaType) const
Returns true if apiSchemaType is an applied API schema type.
const VtDictionary & GetFallbackPrimTypes() const
const UsdPrimDefinition * GetEmptyPrimDefinition() const
Returns the empty prim definition.
static USD_API TfType GetTypeFromName(const TfToken &typeName)
Functor to use for hash maps from tokens to other things.
USD_API bool IsConcrete(const TfType &primType) const
static TfToken GetSchemaTypeName()
static USD_API bool IsTyped(const TfType &primType)
Returns true if the prim type primType inherits from UsdTyped.
std::vector< TfToken > TfTokenVector
Convenience types.
static USD_API TfToken GetConcreteSchemaTypeName(const TfType &schemaType)
static USD_API bool IsDisallowedField(const TfToken &fieldName)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
USD_API bool IsMultipleApplyAPISchema(const TfType &apiSchemaType) const
Returns true if apiSchemaType is a multiple-apply API schema type.
static USD_API UsdSchemaRegistry & GetInstance()
static USD_API TfToken GetAPISchemaTypeName(const TfType &schemaType)
static USD_API TfType GetAPITypeFromSchemaTypeName(const TfToken &typeName)
#define PXR_NAMESPACE_CLOSE_SCOPE
USD_API std::unique_ptr< UsdPrimDefinition > BuildComposedPrimDefinition(const TfToken &primType, const TfTokenVector &appliedAPISchemas) const
USD_API_TEMPLATE_CLASS(TfSingleton< UsdSchemaRegistry >)
static USD_API TfType GetTypeFromSchemaTypeName(const TfToken &typeName)
PXR_NAMESPACE_OPEN_SCOPE SDF_DECLARE_HANDLES(SdfAttributeSpec)
const UsdPrimDefinition * FindConcretePrimDefinition(const TfToken &typeName) const