24#ifndef PXR_USD_SDF_SPEC_TYPE_H
25#define PXR_USD_SDF_SPEC_TYPE_H
35PXR_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);
100PXR_NAMESPACE_CLOSE_SCOPE
Base class for all Sdf spec classes.
Provides functions to register spec types with the runtime typing system used to cast between C++ spe...
static void RegisterAbstractSpecType()
Registers the C++ type T as an abstract spec class.
static void RegisterSpecType(SdfSpecType specTypeEnum)
Registers the C++ type T as a concrete spec class.
TfType represents a dynamic runtime type.
SdfSpecType
An enum that specifies the type of an object.