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);
209 const std::unordered_set<SdfLayerHandle, TfHash>&
238 SdfPath const &path, SdfPathVector *result,
244 SdfPath const &path, SdfPathVector *result);
256 SdfPath const &path, SdfPathVector *result,
262 SdfPath const &path, SdfPathVector *result);
276 std::vector<std::string> *result,
283 std::vector<std::string> *result);
286 std::vector<std::string> *result) {
296 std::string
const &vsetName,
297 std::set<std::string> *result);
300 std::string
const &vsetName,
301 std::set<std::string> *result)
311 PcpLayerStackRefPtr
const &layerStack,
313 std::string
const &vsetName,
315 std::unordered_set<std::string> *exprVarDependencies,
316 PcpErrorVector *errors);
320 PcpLayerStackRefPtr
const &layerStack,
322 std::string
const &vsetName,
326 layerStack, path, vsetName, result,
nullptr,
nullptr);
331 std::string
const &vsetName,
342 PcpLayerStackRefPtr
const &layerStack,
345 std::unordered_set<std::string> *exprVarDependencies,
346 PcpErrorVector *errors);
350 PcpLayerStackRefPtr
const &layerStack,
355 layerStack, path, result,
nullptr,
nullptr);
368PcpComposeSiteHasVariantSelections(
369 PcpLayerStackRefPtr
const &layerStack,
381 const TfToken *orderField =
nullptr);
383PXR_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 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.
PCP_API bool PcpComposeSiteHasPrimSpecs(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, const std::unordered_set< SdfLayerHandle, TfHash > &layersToIgnore)
Has prim specs.
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.
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.