24 #ifndef PXR_USD_USD_PRIM_TYPE_INFO_H
25 #define PXR_USD_USD_PRIM_TYPE_INFO_H
58 return _typeId.appliedAPISchemas;
88 _primDefinition.load(std::memory_order_acquire)) {
91 return *_FindOrCreatePrimDefinition();
97 return _typeId == other._typeId;
101 return !(*
this == other);
135 _TypeId(
const _TypeId &typeId) =
default;
136 _TypeId(_TypeId &&typeId) =
default;
139 explicit _TypeId(
const TfToken &primTypeName_)
140 : primTypeName(primTypeName_) {}
143 bool IsEmpty()
const {
144 return primTypeName.IsEmpty() &&
145 mappedTypeName.IsEmpty() &&
146 appliedAPISchemas.empty();
150 template <
class HashState>
153 h.Append(
id.primTypeName,
id.mappedTypeName,
id.appliedAPISchemas);
156 size_t Hash()
const {
161 return primTypeName == other.primTypeName &&
162 mappedTypeName == other.mappedTypeName &&
163 appliedAPISchemas == other.appliedAPISchemas;
167 return !(*
this == other);
178 const _TypeId &_GetTypeId()
const {
return _typeId; }
190 mutable std::atomic<const UsdPrimDefinition *> _primDefinition;
199 mutable std::unique_ptr<UsdPrimDefinition> _ownedPrimDefinition;
204 #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