7#ifndef PXR_USD_PCP_INSTANCE_KEY_H
8#define PXR_USD_PCP_INSTANCE_KEY_H
11#include "pxr/usd/pcp/api.h"
12#include "pxr/usd/pcp/mapExpression.h"
13#include "pxr/usd/pcp/node.h"
14#include "pxr/usd/pcp/site.h"
24PXR_NAMESPACE_OPEN_SCOPE
53 template <
typename HashState>
86 : _arcType(node.GetArcType())
87 , _sourceSite(node.GetSite())
88 , _timeOffset(node.GetMapToRoot().GetTimeOffset())
92 bool operator==(
const _Arc& rhs)
const
94 return _arcType == rhs._arcType &&
95 _sourceSite == rhs._sourceSite &&
96 _timeOffset == rhs._timeOffset;
99 template <
typename HashState>
100 friend void TfHashAppend(HashState &h,
const _Arc& arc) {
101 h.Append(arc._arcType);
102 h.Append(arc._sourceSite);
103 h.Append(arc._timeOffset);
110 std::vector<_Arc> _arcs;
112 typedef std::pair<std::string, std::string> _VariantSelection;
113 std::vector<_VariantSelection> _variantSelection;
118PXR_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.