24 #ifndef PXR_USD_PCP_TYPES_H 25 #define PXR_USD_PCP_TYPES_H 28 #include "pxr/usd/pcp/api.h" 29 #include "pxr/usd/pcp/site.h" 31 #include "pxr/base/tf/pxrTslRobinMap/robin_set.h" 36 #include <boost/operators.hpp> 40 PXR_NAMESPACE_OPEN_SCOPE
71 PcpRangeTypeReference,
73 PcpRangeTypeSpecialize,
79 PcpRangeTypeWeakerThanRoot,
83 PcpRangeTypeStrongerThanPayload,
93 return (arcType == PcpArcTypeInherit);
101 return (arcType == PcpArcTypeSpecialize);
133 struct Pcp_SdSiteRef : boost::totally_ordered<Pcp_SdSiteRef> {
135 layer(layer_), path(path_)
140 bool operator==(
const Pcp_SdSiteRef& other)
const 142 return layer == other.layer && path == other.path;
145 bool operator<(
const Pcp_SdSiteRef& other)
const 147 return layer < other.layer ||
148 (!(other.layer < layer) && path < other.path);
158 struct Pcp_CompressedSdSite {
159 Pcp_CompressedSdSite(
size_t nodeIndex_,
size_t layerIndex_) :
160 nodeIndex(static_cast<uint16_t>(nodeIndex_)),
161 layerIndex(static_cast<uint16_t>(layerIndex_))
163 TF_VERIFY(nodeIndex_ < (
size_t(1) << 16));
164 TF_VERIFY(layerIndex_ < (
size_t(1) << 16));
171 typedef std::vector<Pcp_CompressedSdSite> Pcp_CompressedSdSiteVector;
202 PXR_NAMESPACE_CLOSE_SCOPE
204 #endif // PXR_USD_PCP_TYPES_H Used to keep track of which sites have been visited and through what type of arcs.
bool PcpIsInheritArc(PcpArcType arcType)
Returns true if arcType represents an inherit arc, false otherwise.
bool PcpIsSpecializeArc(PcpArcType arcType)
Returns true if arcType represents a specialize arc, false otherwise.
bool PcpIsClassBasedArc(PcpArcType arcType)
Returns true if arcType represents a class-based composition arc, false otherwise.
A "string-based" version of PcpSite.
#define TF_VERIFY(cond, format,...)
Checks a condition and reports an error if it evaluates false.
A path value used to locate objects in layers or scenegraphs.
constexpr size_t PCP_INVALID_INDEX
A value which indicates an invalid index.
std::vector< PcpSiteTrackerSegment > PcpSiteTracker
Represents a single path through the composition tree.
Implementation of a hash set using open-addressing and the robin hood hashing algorithm with backward...
VT_API bool operator==(VtDictionary const &, VtDictionary const &)
Equality comparison.
std::map< std::string, std::vector< std::string > > PcpVariantFallbackMap
typedef std::map<std::string, std::vector<std::string>> PcpVariantFallbackMap
PcpArcType
Describes the type of arc connecting two nodes in the prim index.