7#ifndef PXR_USD_PCP_COMPOSE_SITE_H
8#define PXR_USD_PCP_COMPOSE_SITE_H
37#include "pxr/usd/pcp/api.h"
38#include "pxr/usd/pcp/errors.h"
39#include "pxr/usd/pcp/node.h"
41#include "pxr/usd/sdf/path.h"
45#include "pxr/usd/sdf/site.h"
49#include <unordered_set>
52PXR_NAMESPACE_OPEN_SCOPE
65 SdfLayerHandle sourceLayer;
67 std::string authoredAssetPath;
78 PcpLayerStackRefPtr
const &layerStack,
80 SdfReferenceVector *result,
82 std::unordered_set<std::string> *exprVarDependencies,
83 PcpErrorVector *errors);
87 PcpLayerStackRefPtr
const &layerStack,
89 SdfReferenceVector *result,
93 layerStack, path, result, info,
nullptr ,
nullptr);
99 SdfReferenceVector *result,
101 std::unordered_set<std::string> *exprVarDependencies,
102 PcpErrorVector *errors)
106 result, info, exprVarDependencies, errors);
112 SdfReferenceVector *result,
123 PcpLayerStackRefPtr
const &layerStack,
125 SdfPayloadVector *result,
127 std::unordered_set<std::string> *exprVarDependencies,
128 PcpErrorVector *errors);
132 PcpLayerStackRefPtr
const &layerStack,
134 SdfPayloadVector *result,
138 layerStack, path, result, info,
nullptr,
nullptr);
144 SdfPayloadVector *result,
146 std::unordered_set<std::string> *exprVarDependencies,
147 PcpErrorVector *errors)
151 result, info, exprVarDependencies, errors);
157 SdfPayloadVector *result,
181 SdfSiteVector *result);
194 PcpLayerStackRefPtr
const &layerStack,
196 const std::unordered_set<SdfLayerHandle, TfHash>& layersToIgnore);
212 PcpLayerStackRefPtr
const &layerStack,
214 const std::unordered_set<SdfLayerHandle, TfHash>& layersToIgnore)
261 SdfPath const &path, SdfPathVector *result,
267 SdfPath const &path, SdfPathVector *result);
279 SdfPath const &path, SdfPathVector *result,
285 SdfPath const &path, SdfPathVector *result);
299 std::vector<std::string> *result,
306 std::vector<std::string> *result);
309 std::vector<std::string> *result) {
319 std::string
const &vsetName,
320 std::set<std::string> *result);
323 std::string
const &vsetName,
324 std::set<std::string> *result)
334 PcpLayerStackRefPtr
const &layerStack,
336 std::string
const &vsetName,
338 std::unordered_set<std::string> *exprVarDependencies,
339 PcpErrorVector *errors);
343 PcpLayerStackRefPtr
const &layerStack,
345 std::string
const &vsetName,
349 layerStack, path, vsetName, result,
nullptr,
nullptr);
354 std::string
const &vsetName,
365 PcpLayerStackRefPtr
const &layerStack,
368 std::unordered_set<std::string> *exprVarDependencies,
369 PcpErrorVector *errors);
373 PcpLayerStackRefPtr
const &layerStack,
378 layerStack, path, result,
nullptr,
nullptr);
391PcpComposeSiteHasVariantSelections(
392 PcpLayerStackRefPtr
const &layerStack,
404 const TfToken *orderField =
nullptr);
406PXR_NAMESPACE_CLOSE_SCOPE
Represents a stack of layers that contribute opinions to composition.
A site specifies a path in a layer stack of scene description.
PcpNode represents a node in an expression tree for compositing scene description.
PCP_API const SdfPath & GetPath() const
Returns the path for the site this node represents.
PCP_API const PcpLayerStackRefPtr & GetLayerStack() const
Returns the layer stack for the site this node represents.
Represents a time offset and scale between layers.
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.
Implementation of a hash set using open-addressing and the robin hood hashing algorithm with backward...
PCP_API void PcpComposeSitePrimSites(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfSiteVector *result)
Prim sites.
PCP_API bool PcpComposeSiteHasValueClips(PcpLayerStackRefPtr const &layerStack, SdfPath const &path)
Value clips.
PCP_API void PcpComposeSiteVariantSetOptions(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, std::string const &vsetName, std::set< std::string > *result)
VariantSetOptions.
std::vector< PcpArcInfo > PcpArcInfoVector
A vector of reference or payload arc information.
PCP_API void PcpComposeSiteVariantSelections(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfVariantSelectionMap *result, std::unordered_set< std::string > *exprVarDependencies, PcpErrorVector *errors)
VariantSelections.
PCP_API void PcpComposeSiteReferences(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfReferenceVector *result, PcpArcInfoVector *info, std::unordered_set< std::string > *exprVarDependencies, PcpErrorVector *errors)
References.
PCP_API void PcpComposeSiteChildNames(SdfLayerRefPtrVector const &layers, SdfPath const &path, const TfToken &namesField, TfTokenVector *nameOrder, PcpTokenSet *nameSet, const TfToken *orderField=nullptr)
Compose child names.
bool PcpComposeSiteHasPrimSpecs(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, const std::unordered_set< SdfLayerHandle, TfHash > &layersToIgnore)
PCP_API bool PcpComposeSiteVariantSelection(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, std::string const &vsetName, std::string *result, std::unordered_set< std::string > *exprVarDependencies, PcpErrorVector *errors)
VariantSelection.
PCP_API void PcpComposeSitePayloads(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfPayloadVector *result, PcpArcInfoVector *info, std::unordered_set< std::string > *exprVarDependencies, PcpErrorVector *errors)
Payloads.
PCP_API void PcpComposeSiteVariantSets(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, std::vector< std::string > *result, PcpArcInfoVector *info)
VariantSets.
PCP_API SdfPermission PcpComposeSitePermission(PcpLayerStackRefPtr const &layerStack, SdfPath const &path)
Permission.
PCP_API void PcpComposeSiteInherits(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfPathVector *result, PcpArcInfoVector *info)
Inherits.
PCP_API void PcpComposeSiteSpecializes(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfPathVector *result, PcpArcInfoVector *info)
Specializes.
PCP_API bool PcpComposeSiteHasSymmetry(PcpLayerStackRefPtr const &layerStack, SdfPath const &path)
Symmetry.
PCP_API bool PcpComposeSiteHasSpecs(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, const std::unordered_set< SdfLayerHandle, TfHash > &layersToIgnore)
Has prim or property specs.
Helper information about an arc.
#define TF_DECLARE_WEAK_AND_REF_PTRS(type)
Define standard weak, ref, and vector pointer types.
std::vector< TfToken > TfTokenVector
Convenience types.
std::map< std::string, std::string > SdfVariantSelectionMap
A map of reference variant set names to variants in those sets.
SdfPermission
An enum that defines permission levels.