24#ifndef PXR_USD_PCP_INSTANCE_KEY_H
25#define PXR_USD_PCP_INSTANCE_KEY_H
28#include "pxr/usd/pcp/api.h"
29#include "pxr/usd/pcp/mapExpression.h"
30#include "pxr/usd/pcp/node.h"
31#include "pxr/usd/pcp/site.h"
41PXR_NAMESPACE_OPEN_SCOPE
70 template <
typename HashState>
103 : _arcType(node.GetArcType())
104 , _sourceSite(node.GetSite())
105 , _timeOffset(node.GetMapToRoot().GetTimeOffset())
109 bool operator==(
const _Arc& rhs)
const
111 return _arcType == rhs._arcType &&
112 _sourceSite == rhs._sourceSite &&
113 _timeOffset == rhs._timeOffset;
116 template <
typename HashState>
117 friend void TfHashAppend(HashState &h,
const _Arc& arc) {
118 h.Append(arc._arcType);
119 h.Append(arc._sourceSite);
120 h.Append(arc._timeOffset);
127 std::vector<_Arc> _arcs;
129 typedef std::pair<std::string, std::string> _VariantSelection;
130 std::vector<_VariantSelection> _variantSelection;
135PXR_NAMESPACE_CLOSE_SCOPE
A PcpInstanceKey identifies instanceable prim indexes that share the same set of opinions.
PCP_API bool operator==(const PcpInstanceKey &rhs) const
Comparison operators.
PCP_API PcpInstanceKey(const PcpPrimIndex &primIndex)
Create an instance key for the given prim index.
PCP_API std::string GetString() const
Returns string representation of this instance key for debugging purposes.
friend void TfHashAppend(HashState &h, const PcpInstanceKey &key)
Appends hash value for this instance key.
friend size_t hash_value(const PcpInstanceKey &key)
Returns hash value for this instance key.
PcpNode represents a node in an expression tree for compositing scene description.
PcpPrimIndex is an index of the all sites of scene description that contribute opinions to a specific...
A site specifies a path in a layer stack of scene description.
Represents a time offset and scale between layers.
PcpArcType
Describes the type of arc connecting two nodes in the prim index.