24 #ifndef PXR_USD_USD_SCHEMA_REGISTRY_H
25 #define PXR_USD_USD_SCHEMA_REGISTRY_H
78 template <
class SchemaType>
269 std::map<TfToken, TfTokenVector> *autoApplyAPISchemas);
275 const TfToken &multiApplyAPISchemaName)
const;
281 const TfToken &typeName)
const {
282 auto it = _concreteTypedPrimDefinitions.find(typeName);
283 return it != _concreteTypedPrimDefinitions.
end() ? it->second :
nullptr;
290 const TfToken &typeName)
const {
291 auto it = _appliedAPIPrimDefinitions.find(typeName);
292 return it != _appliedAPIPrimDefinitions.
end() ? it->second :
nullptr;
297 return _emptyPrimDefinition;
305 std::unique_ptr<UsdPrimDefinition>
321 return _fallbackPrimTypes;
329 void _FindAndAddPluginSchema();
331 void _ApplyAPISchemasToPrimDefinition(
343 _multipleApplyAPISchemaNamespaces;
357 const TfType &apiSchemaType,
359 std::map<TfToken, TfTokenVector> *autoApplyAPISchemasMap,
365 #endif //PXR_USD_USD_SCHEMA_REGISTRY_H
const UsdPrimDefinition * FindAppliedAPIPrimDefinition(const TfToken &typeName) const
static USD_API TfType GetConcreteTypeFromSchemaTypeName(const TfToken &typeName)
const VtDictionary & GetFallbackPrimTypes() const
USD_API TfToken GetPropertyNamespacePrefix(const TfToken &multiApplyAPISchemaName) 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.
static USD_API bool IsConcrete(const TfType &primType)
static USD_API UsdSchemaKind GetSchemaKind(const TfType &schemaType)
static USD_API bool IsAllowedAPISchemaInstanceName(const TfToken &apiSchemaName, const TfToken &instanceName)
static TfToken GetSchemaTypeName()
static USD_API bool IsTyped(const TfType &primType)
Returns true if the prim type primType inherits from UsdTyped.
static USD_API void CollectAddtionalAutoApplyAPISchemasFromPlugins(std::map< TfToken, TfTokenVector > *autoApplyAPISchemas)
std::vector< TfToken > TfTokenVector
Convenience types.
static USD_API const TfTokenVector & GetAPISchemaCanOnlyApplyToTypeNames(const TfToken &apiSchemaName, const TfToken &instanceName=TfToken())
void Usd_GetAPISchemaPluginApplyToInfoForType(const TfType &apiSchemaType, const TfToken &apiSchemaName, std::map< TfToken, TfTokenVector > *autoApplyAPISchemasMap, TfHashMap< TfToken, TfTokenVector, TfHash > *canOnlyApplyAPISchemasMap, TfHashMap< TfToken, TfToken::Set, TfHash > *allowedInstanceNamesMap)
static USD_API TfToken GetConcreteSchemaTypeName(const TfType &schemaType)
static USD_API bool IsDisallowedField(const TfToken &fieldName)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
static USD_API UsdSchemaRegistry & GetInstance()
static USD_API TfToken GetAPISchemaTypeName(const TfType &schemaType)
static USD_API TfType GetAPITypeFromSchemaTypeName(const TfToken &typeName)
static USD_API bool IsMultipleApplyAPISchema(const TfType &apiSchemaType)
Returns true if apiSchemaType is a multiple-apply API schema type.
#define PXR_NAMESPACE_CLOSE_SCOPE
static USD_API std::pair< TfToken, TfToken > GetTypeNameAndInstance(const TfToken &apiSchemaName)
USD_API std::unique_ptr< UsdPrimDefinition > BuildComposedPrimDefinition(const TfToken &primType, const TfTokenVector &appliedAPISchemas) const
static USD_API bool IsAppliedAPISchema(const TfType &apiSchemaType)
Returns true if apiSchemaType is an applied API schema type.
static USD_API const std::map< TfToken, TfTokenVector > & GetAutoApplyAPISchemas()
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