24 #ifndef PXR_USD_SDF_SPEC_TYPE_H 25 #define PXR_USD_SDF_SPEC_TYPE_H 35 PXR_NAMESPACE_OPEN_SCOPE
60 template <
class SchemaType,
class SpecType>
63 typeid(SpecType), specTypeEnum,
typeid(SchemaType));
67 template <
class SchemaType,
class SpecType>
70 typeid(SpecType), SdfSpecTypeUnknown,
typeid(SchemaType));
75 static void _RegisterSpecType(
76 const std::type_info& specCPPType,
78 const std::type_info& schemaType);
88 static TfType Cast(
const SdfSpec& spec,
const std::type_info& to);
93 static bool CanCast(
const SdfSpec& spec,
const std::type_info& to);
97 static bool CanCast(
SdfSpecType from,
const std::type_info& to);
100 PXR_NAMESPACE_CLOSE_SCOPE
102 #endif // PXR_USD_SDF_SPEC_TYPE_H Base class for all Sdf spec classes.
static void RegisterAbstractSpecType()
Registers the C++ type T as an abstract spec class.
Provides functions to register spec types with the runtime typing system used to cast between C++ spe...
static void RegisterSpecType(SdfSpecType specTypeEnum)
Registers the C++ type T as a concrete spec class.
SdfSpecType
An enum that specifies the type of an object.
TfType represents a dynamic runtime type.