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);
208 PcpLayerStackRefPtr
const &layerStack,
210 const std::unordered_set<SdfLayerHandle, TfHash>& layersToIgnore);
226 PcpLayerStackRefPtr
const &layerStack,
228 const std::unordered_set<SdfLayerHandle, TfHash>& layersToIgnore)
275 SdfPath const &path, SdfPathVector *result,
281 SdfPath const &path, SdfPathVector *result);
293 SdfPath const &path, SdfPathVector *result,
299 SdfPath const &path, SdfPathVector *result);
313 std::vector<std::string> *result,
320 std::vector<std::string> *result);
323 std::vector<std::string> *result) {
333 std::string
const &vsetName,
334 std::set<std::string> *result);
337 std::string
const &vsetName,
338 std::set<std::string> *result)
348 PcpLayerStackRefPtr
const &layerStack,
350 std::string
const &vsetName,
352 std::unordered_set<std::string> *exprVarDependencies,
353 PcpErrorVector *errors);
357 PcpLayerStackRefPtr
const &layerStack,
359 std::string
const &vsetName,
363 layerStack, path, vsetName, result,
nullptr,
nullptr);
368 std::string
const &vsetName,
379 PcpLayerStackRefPtr
const &layerStack,
382 std::unordered_set<std::string> *exprVarDependencies,
383 PcpErrorVector *errors);
387 PcpLayerStackRefPtr
const &layerStack,
392 layerStack, path, result,
nullptr,
nullptr);
405PcpComposeSiteHasVariantSelections(
406 PcpLayerStackRefPtr
const &layerStack,
418 const TfToken *orderField =
nullptr);
420PXR_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 PcpComposeSiteRelocates(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfRelocatesMap *result)
Relocates.
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.
std::map< SdfPath, SdfPath > SdfRelocatesMap
A map of source SdfPaths to target SdfPaths for relocation.