7#ifndef PXR_USD_SDF_SPEC_TYPE_H
8#define PXR_USD_SDF_SPEC_TYPE_H
18PXR_NAMESPACE_OPEN_SCOPE
43 template <
class SchemaType,
class SpecType>
46 typeid(SpecType), specTypeEnum,
typeid(SchemaType));
50 template <
class SchemaType,
class SpecType>
53 typeid(SpecType), SdfSpecTypeUnknown,
typeid(SchemaType));
58 static void _RegisterSpecType(
59 const std::type_info& specCPPType,
61 const std::type_info& schemaType);
71 static TfType Cast(
const SdfSpec& spec,
const std::type_info& to);
76 static bool CanCast(
const SdfSpec& spec,
const std::type_info& to);
80 static bool CanCast(
SdfSpecType from,
const std::type_info& to);
83PXR_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.