24#ifndef PXR_USD_PCP_COMPOSE_SITE_H
25#define PXR_USD_PCP_COMPOSE_SITE_H
54#include "pxr/usd/pcp/api.h"
55#include "pxr/usd/pcp/errors.h"
56#include "pxr/usd/pcp/node.h"
58#include "pxr/usd/sdf/path.h"
62#include "pxr/usd/sdf/site.h"
66#include <unordered_set>
69PXR_NAMESPACE_OPEN_SCOPE
84 std::string authoredAssetPath;
94 PcpLayerStackRefPtr
const &layerStack,
96 SdfReferenceVector *result,
98 std::unordered_set<std::string> *exprVarDependencies,
99 PcpErrorVector *errors);
103 PcpLayerStackRefPtr
const &layerStack,
105 SdfReferenceVector *result,
109 layerStack, path, result, info,
nullptr ,
nullptr);
115 SdfReferenceVector *result,
117 std::unordered_set<std::string> *exprVarDependencies,
118 PcpErrorVector *errors)
122 result, info, exprVarDependencies, errors);
128 SdfReferenceVector *result,
139 PcpLayerStackRefPtr
const &layerStack,
141 SdfPayloadVector *result,
143 std::unordered_set<std::string> *exprVarDependencies,
144 PcpErrorVector *errors);
148 PcpLayerStackRefPtr
const &layerStack,
150 SdfPayloadVector *result,
154 layerStack, path, result, info,
nullptr,
nullptr);
160 SdfPayloadVector *result,
162 std::unordered_set<std::string> *exprVarDependencies,
163 PcpErrorVector *errors)
167 result, info, exprVarDependencies, errors);
173 SdfPayloadVector *result,
197 SdfSiteVector *result);
246 SdfPath const &path, SdfPathVector *result,
252 SdfPath const &path, SdfPathVector *result);
264 SdfPath const &path, SdfPathVector *result,
270 SdfPath const &path, SdfPathVector *result);
284 std::vector<std::string> *result,
291 std::vector<std::string> *result);
294 std::vector<std::string> *result) {
304 std::string
const &vsetName,
305 std::set<std::string> *result);
308 std::string
const &vsetName,
309 std::set<std::string> *result)
319 PcpLayerStackRefPtr
const &layerStack,
321 std::string
const &vsetName,
323 std::unordered_set<std::string> *exprVarDependencies,
324 PcpErrorVector *errors);
328 PcpLayerStackRefPtr
const &layerStack,
330 std::string
const &vsetName,
334 layerStack, path, vsetName, result,
nullptr,
nullptr);
339 std::string
const &vsetName,
350 PcpLayerStackRefPtr
const &layerStack,
353 std::unordered_set<std::string> *exprVarDependencies,
354 PcpErrorVector *errors);
358 PcpLayerStackRefPtr
const &layerStack,
363 layerStack, path, result,
nullptr,
nullptr);
376PcpComposeSiteHasVariantSelections(
377 PcpLayerStackRefPtr
const &layerStack,
389 const TfToken *orderField =
nullptr);
391PXR_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 PcpComposeSiteReferences(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfReferenceVector *result, PcpSourceArcInfoVector *info, std::unordered_set< std::string > *exprVarDependencies, PcpErrorVector *errors)
References.
PCP_API void PcpComposeSitePrimSites(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfSiteVector *result)
Prim sites.
PCP_API bool PcpComposeSiteHasPrimSpecs(PcpLayerStackRefPtr const &layerStack, SdfPath const &path)
Has prim specs.
PCP_API void PcpComposeSiteVariantSetOptions(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, std::string const &vsetName, std::set< std::string > *result)
VariantSetOptions.
PCP_API void PcpComposeSiteSpecializes(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfPathVector *result, PcpSourceArcInfoVector *info)
Specializes.
PCP_API void PcpComposeSiteVariantSelections(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfVariantSelectionMap *result, std::unordered_set< std::string > *exprVarDependencies, PcpErrorVector *errors)
VariantSelections.
PCP_API void PcpComposeSitePayloads(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfPayloadVector *result, PcpSourceArcInfoVector *info, std::unordered_set< std::string > *exprVarDependencies, PcpErrorVector *errors)
Payloads.
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 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 SdfPermission PcpComposeSitePermission(PcpLayerStackRefPtr const &layerStack, SdfPath const &path)
Permission.
PCP_API void PcpComposeSiteInherits(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfPathVector *result, PcpSourceArcInfoVector *info)
Inherits.
std::vector< PcpSourceArcInfo > PcpSourceArcInfoVector
A vector of reference or payload arc information.
PCP_API void PcpComposeSiteRelocates(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, SdfRelocatesMap *result)
Relocates.
PCP_API bool PcpComposeSiteHasSymmetry(PcpLayerStackRefPtr const &layerStack, SdfPath const &path)
Symmetry.
PCP_API void PcpComposeSiteVariantSets(PcpLayerStackRefPtr const &layerStack, SdfPath const &path, std::vector< std::string > *result, PcpSourceArcInfoVector *info)
VariantSets.
Information about the source of the target of 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.