7 #ifndef PXR_USD_USD_PRIM_TYPE_INFO_H
8 #define PXR_USD_USD_PRIM_TYPE_INFO_H
41 return _typeId.appliedAPISchemas;
71 _primDefinition.load(std::memory_order_acquire)) {
74 return *_FindOrCreatePrimDefinition();
80 return _typeId == other._typeId;
84 return !(*
this == other);
118 _TypeId(
const _TypeId &typeId) =
default;
119 _TypeId(_TypeId &&typeId) =
default;
122 explicit _TypeId(
const TfToken &primTypeName_)
123 : primTypeName(primTypeName_) {}
126 bool IsEmpty()
const {
127 return primTypeName.IsEmpty() &&
128 mappedTypeName.IsEmpty() &&
129 appliedAPISchemas.empty();
133 template <
class HashState>
136 h.Append(
id.primTypeName,
id.mappedTypeName,
id.appliedAPISchemas);
139 size_t Hash()
const {
144 return primTypeName == other.primTypeName &&
145 mappedTypeName == other.mappedTypeName &&
146 appliedAPISchemas == other.appliedAPISchemas;
150 return !(*
this == other);
161 const _TypeId &_GetTypeId()
const {
return _typeId; }
173 mutable std::atomic<const UsdPrimDefinition *> _primDefinition;
182 mutable std::unique_ptr<UsdPrimDefinition> _ownedPrimDefinition;
187 #endif //PXR_USD_USD_PRIM_TYPE_INFO_H
void TfHashAppend(HashState &h, const T &ptr)
bool operator!=(const UsdPrimTypeInfo &other) const
const TfToken & GetSchemaTypeName() const
STATIC_INLINE size_t Hash(const char *s, size_t len)
const UsdPrimDefinition & GetPrimDefinition() const
friend class Usd_PrimTypeInfoCache
std::vector< TfToken > TfTokenVector
Convenience types.
const TfTokenVector & GetAppliedAPISchemas() const
bool operator==(const UsdPrimTypeInfo &other) const
const TfToken & GetTypeName() const
Returns the concrete prim type name.
GLfloat GLfloat GLfloat GLfloat h
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
static USD_API const UsdPrimTypeInfo & GetEmptyPrimType()
Returns the empty prim type info.
const TfType & GetSchemaType() const