24 #ifndef PXR_USD_USD_STAGE_H 25 #define PXR_USD_USD_STAGE_H 30 #include "pxr/usd/usd/api.h" 32 #include "pxr/usd/usd/editTarget.h" 34 #include "pxr/usd/usd/schemaRegistry.h" 36 #include "pxr/usd/usd/stagePopulationMask.h" 40 #include "pxr/base/tf/hashmap.h" 43 #include "pxr/usd/ar/ar.h" 44 #include "pxr/usd/ar/notice.h" 46 #include "pxr/usd/sdf/notice.h" 47 #include "pxr/usd/sdf/path.h" 49 #include "pxr/usd/pcp/cache.h" 50 #include "pxr/base/vt/value.h" 53 #include <boost/optional.hpp> 55 #include <tbb/concurrent_vector.h> 56 #include <tbb/concurrent_unordered_set.h> 57 #include <tbb/concurrent_hash_map.h> 58 #include <tbb/spin_rw_mutex.h> 63 #include <unordered_map> 66 PXR_NAMESPACE_OPEN_SCOPE
73 class Usd_InstanceCache;
74 class Usd_InstanceChanges;
75 class Usd_InterpolatorBase;
189 static UsdStageRefPtr
194 static UsdStageRefPtr
196 const SdfLayerHandle& sessionLayer,
200 static UsdStageRefPtr
202 const SdfLayerHandle& sessionLayer,
207 static UsdStageRefPtr
230 static UsdStageRefPtr
234 static UsdStageRefPtr
239 static UsdStageRefPtr
245 static UsdStageRefPtr
247 const SdfLayerHandle &sessionLayer,
251 static UsdStageRefPtr
253 const SdfLayerHandle &sessionLayer,
273 static UsdStageRefPtr
277 static UsdStageRefPtr
278 Open(
const std::string& filePath,
300 static UsdStageRefPtr
306 static UsdStageRefPtr
341 static UsdStageRefPtr
342 Open(
const SdfLayerHandle& rootLayer,
346 static UsdStageRefPtr
347 Open(
const SdfLayerHandle& rootLayer,
348 const SdfLayerHandle& sessionLayer,
352 static UsdStageRefPtr
353 Open(
const SdfLayerHandle& rootLayer,
358 static UsdStageRefPtr
359 Open(
const SdfLayerHandle& rootLayer,
360 const SdfLayerHandle& sessionLayer,
385 static UsdStageRefPtr
391 static UsdStageRefPtr
393 const SdfLayerHandle& sessionLayer,
398 static UsdStageRefPtr
405 static UsdStageRefPtr
407 const SdfLayerHandle& sessionLayer,
605 void LoadAndUnload(
const SdfPathSet &loadSet,
const SdfPathSet &unloadSet,
667 return _populationMask;
687 std::function<
bool (
UsdRelationship const &)>
const &relPred =
nullptr,
688 std::function<
bool (
UsdAttribute const &)>
const &attrPred =
nullptr);
827 Usd_PrimDataConstPtr _GetPrimDataAtPath(
const SdfPath &path)
const;
828 Usd_PrimDataPtr _GetPrimDataAtPath(
const SdfPath &path);
834 _GetPrimDataAtPathOrInPrototype(
const SdfPath &path)
const;
838 _GetInstancesForPrototype(
const UsdPrim& prototype)
const;
1005 SdfLayerHandleVector
GetLayerStack(
bool includeSessionLayers=
true)
const;
1019 SdfLayerHandleVector
GetUsedLayers(
bool includeClipLayers=
true)
const;
1078 void MuteLayer(
const std::string &layerIdentifier);
1083 void UnmuteLayer(
const std::string &layerIdentifier);
1094 const std::vector<std::string> &unmuteLayers);
1105 bool IsLayerMuted(
const std::string& layerIdentifier)
const;
1128 bool Export(
const std::string &filename,
1129 bool addSourceFileComment=
true,
1142 bool addSourceFileComment=
true)
const;
1230 template<
typename T>
1262 template<
typename T>
1307 template<
typename T>
1309 const T& value)
const;
1540 TfToken *colorManagementSystem);
1558 const TfToken &colorManagementSystem);
1599 struct _IncludePayloadsPredicate;
1612 template <
class... Args>
1613 static UsdStageRefPtr _OpenImpl(
InitialLoadSet load, Args
const &... args);
1623 static UsdStageRefPtr
1634 SdfPropertySpecHandleVector
1637 std::vector<std::pair<SdfPropertySpecHandle, SdfLayerOffset>>
1638 _GetPropertyStackWithLayerOffsets(
1641 static SdfPrimSpecHandleVector
1642 _GetPrimStack(
const UsdPrim &prim);
1644 static std::vector<std::pair<SdfPrimSpecHandle, SdfLayerOffset>>
1645 _GetPrimStackWithLayerOffsets(
const UsdPrim &prim);
1647 SdfPropertySpecHandle
1648 _GetSchemaPropertySpec(
const UsdPrim &prim,
const TfToken &propName)
const;
1650 SdfPropertySpecHandle
1651 _GetSchemaPropertySpec(
const UsdProperty &prop)
const;
1653 template <
class PropType>
1655 _GetSchemaPropertySpec(
const UsdProperty &prop)
const;
1657 SdfAttributeSpecHandle
1658 _GetSchemaAttributeSpec(
const UsdAttribute &attr)
const;
1660 SdfRelationshipSpecHandle
1664 _CreatePrimSpecForEditing(
const UsdPrim& prim);
1666 template <
class PropType>
1668 _CreatePropertySpecForEditing(
const UsdProperty &prop);
1670 SdfPropertySpecHandle
1671 _CreatePropertySpecForEditing(
const UsdProperty &prop);
1673 SdfAttributeSpecHandle
1674 _CreateAttributeSpecForEditing(
const UsdAttribute &attr);
1676 SdfRelationshipSpecHandle
1682 std::pair<bool, UsdPrim>
1683 _IsValidPathForCreatingPrim(
const SdfPath &path)
const;
1688 bool _ValidateEditPrim(
const UsdPrim &prim,
const char* operation)
const;
1689 bool _ValidateEditPrimAtPath(
const SdfPath &primPath,
1690 const char* operation)
const;
1694 bool _RemoveProperty(
const SdfPath& path);
1708 struct _IsEditTargetMappable {
1709 static const bool value =
1710 std::is_same<T, SdfTimeCode>::value ||
1711 std::is_same<T, VtArray<SdfTimeCode>>::value ||
1712 std::is_same<T, SdfTimeSampleMap>::value ||
1713 std::is_same<T, VtDictionary>::value;
1718 typename std::enable_if<!_IsEditTargetMappable<T>::value,
bool>::type
1724 typename std::enable_if<_IsEditTargetMappable<T>::value,
bool>::type
1734 bool _SetEditTargetMappedValue(
1745 typename std::enable_if<!_IsEditTargetMappable<T>::value,
bool>::type
1747 const TfToken &keyPath,
const T& value);
1751 typename std::enable_if<_IsEditTargetMappable<T>::value,
bool>::type
1753 const TfToken &keyPath,
const T& value);
1758 bool _SetMetadata(
const UsdObject &
object,
1764 bool _SetEditTargetMappedMetadata(
1766 const TfToken &keyPath,
const T &newValue);
1769 bool _SetMetadataImpl(
1771 const TfToken &keyPath,
const T &value);
1781 PcpCache const *_GetPcpCache()
const {
return _cache.get(); }
1782 PcpCache *_GetPcpCache() {
return _cache.get(); }
1790 void _ReportPcpErrors(
const PcpErrorVector &errors,
1791 const std::string &context)
const;
1792 void _ReportErrors(
const PcpErrorVector &errors,
1793 const std::vector<std::string>& otherErrors,
1794 const std::string &context)
const;
1804 void _ComposePrimIndexesInParallel(
1805 const std::vector<SdfPath>& primIndexPaths,
1806 const std::string& context,
1807 Usd_InstanceChanges* instanceChanges =
nullptr);
1811 void _ComposeSubtree(
1812 Usd_PrimDataPtr prim, Usd_PrimDataConstPtr parent,
1815 void _ComposeSubtreeImpl(
1816 Usd_PrimDataPtr prim, Usd_PrimDataConstPtr parent,
1819 void _ComposeSubtreesInParallel(
1820 const std::vector<Usd_PrimDataPtr> &prims,
1821 const std::vector<SdfPath> *primIndexPaths =
nullptr);
1825 void _ComposePrimTypeInfoImpl(Usd_PrimDataPtr prim);
1830 void _ComposeChildSubtree(Usd_PrimDataPtr prim,
1831 Usd_PrimDataConstPtr parent,
1844 void _ComposeChildren(Usd_PrimDataPtr prim,
1849 Usd_PrimDataPtr _InstantiatePrim(
const SdfPath &primPath);
1853 Usd_PrimDataPtr _InstantiatePrototypePrim(
const SdfPath &primPath);
1857 void _DestroyPrim(Usd_PrimDataPtr prim);
1861 void _DestroyPrimsInParallel(
const std::vector<SdfPath>& paths);
1864 void _DestroyDescendents(Usd_PrimDataPtr prim);
1869 bool _IsObjectDescendantOfInstance(
const SdfPath& path)
const;
1873 Usd_PrimDataConstPtr _GetPrototypeForInstance(Usd_PrimDataConstPtr p)
const;
1876 SdfPath _GetPrimPathUsingPrimIndexAtPath(
const SdfPath& primIndexPath)
const;
1886 void _ProcessPendingChanges();
1890 bool _RemovePrim(
const SdfPath& fullPath);
1892 SdfPrimSpecHandle _GetPrimSpec(
const SdfPath& fullPath);
1899 SdfSpecType _GetDefiningSpecType(Usd_PrimDataConstPtr primData,
1900 const TfToken &propName)
const;
1906 void _Recompose(
const PcpChanges &changes, T *pathsToRecompose);
1908 void _RecomposePrims(T *pathsToRecompose);
1914 template <
class Iter>
1915 void _ComputeSubtreesToRecompose(Iter start, Iter finish,
1916 std::vector<Usd_PrimDataPtr>* recompose);
1920 bool _IsValidForLoad(
const SdfPath& path)
const;
1921 bool _IsValidForUnload(
const SdfPath& path)
const;
1931 void _DiscoverPayloads(
const SdfPath& rootPath,
1933 SdfPathSet* primIndexPaths,
1934 bool unloadedOnly =
false,
1935 SdfPathSet* usdPrimPaths =
nullptr)
const;
1946 static SdfSpecifier _GetSpecifier(Usd_PrimDataConstPtr primData);
1947 static TfToken _GetKind(Usd_PrimDataConstPtr primData);
1948 static bool _IsActive(Usd_PrimDataConstPtr primData);
1959 size_t numAssetPaths,
1960 bool anchorAssetPathsOnly =
false)
const;
1964 bool anchorAssetPathsOnly =
false)
const;
1968 size_t numTimeCodes)
const;
1983 struct _HasTypeSpecificResolution {
1984 static const bool value =
1985 std::is_same<T, SdfAssetPath>::value ||
1986 std::is_same<T, VtArray<SdfAssetPath>>::value ||
1987 std::is_same<T, SdfTimeCode>::value ||
1988 std::is_same<T, VtArray<SdfTimeCode>>::value ||
1989 std::is_same<T, SdfTimeSampleMap>::value ||
1990 std::is_same<T, VtDictionary>::value;
1996 typename std::enable_if<!_HasTypeSpecificResolution<T>::value,
bool>::type
2005 typename std::enable_if<_HasTypeSpecificResolution<T>::value,
bool>::type
2024 bool _GetStrongestResolvedMetadata(
const UsdObject &obj,
2035 bool _GetTypeSpecificResolvedMetadata(
const UsdObject &obj,
2041 template <
class Composer>
2045 Composer *composer)
const;
2047 template <
class Composer>
2050 Composer *composer)
const;
2052 template <
class Composer>
2055 Composer *composer)
const;
2057 template <
class Composer>
2058 bool _GetSpecialPropMetadataImpl(
const UsdObject &obj,
2062 Composer *composer)
const;
2063 template <
class Composer>
2064 bool _GetMetadataImpl(
const UsdObject &obj,
2067 bool includeFallbacks,
2068 Composer *composer)
const;
2070 template <
class Composer>
2071 bool _GetGeneralMetadataImpl(
const UsdObject &obj,
2074 bool includeFallbacks,
2075 Composer *composer)
const;
2081 const TfToken &keyPath,
bool useFallbacks)
const;
2084 _ListMetadataFields(
const UsdObject &obj,
bool useFallbacks)
const;
2086 void _GetAllMetadata(
const UsdObject &obj,
2088 UsdMetadataValueMap* result,
2089 bool anchorAssetPathsOnly =
false)
const;
2099 void _GetResolveInfoWithResolveTarget(
2105 template <
class T>
struct _ExtraResolveInfo;
2116 _ExtraResolveInfo<T> *extraInfo =
nullptr)
const;
2125 void _GetResolveInfoWithResolveTarget(
2130 _ExtraResolveInfo<T> *extraInfo =
nullptr)
const;
2137 template <
class T,
class MakeUsdResolverFn>
2141 _ExtraResolveInfo<T> *extraInfo,
2142 const MakeUsdResolverFn &makeUsdResolveFn)
const;
2144 template <
class T>
struct _ResolveInfoResolver;
2145 struct _PropertyStackResolver;
2147 template <
class Resolver,
class MakeUsdResolverFn>
2148 void _GetResolvedValueAtDefaultImpl(
2151 const MakeUsdResolverFn &makeUsdResolverFn)
const;
2153 template <
class Resolver,
class MakeUsdResolverFn>
2154 void _GetResolvedValueAtTimeImpl(
2158 const MakeUsdResolverFn &makeUsdResolverFn)
const;
2169 Usd_InterpolatorBase* interpolator,
2173 _GetLayerWithStrongestValue(
2192 Usd_InterpolatorBase* interpolator,
2196 bool _GetDefaultValueFromResolveInfoImpl(
const UsdResolveInfo &info,
2210 bool _GetTimeSamplesInInterval(
const UsdAttribute &attr,
2212 std::vector<double>* times)
const;
2214 bool _GetTimeSamplesInIntervalFromResolveInfo(
2218 std::vector<double>* times)
const;
2220 size_t _GetNumTimeSamples(
const UsdAttribute &attr)
const;
2222 size_t _GetNumTimeSamplesFromResolveInfo(
const UsdResolveInfo &info,
2228 bool _GetBracketingTimeSamples(
const UsdAttribute &attr,
2233 bool* hasSamples)
const;
2235 bool _GetBracketingTimeSamplesFromResolveInfo(
const UsdResolveInfo &info,
2241 bool* hasSamples)
const;
2243 bool _ValueMightBeTimeVarying(
const UsdAttribute &attr)
const;
2245 bool _ValueMightBeTimeVaryingFromResolveInfo(
const UsdResolveInfo &info,
2248 void _RegisterPerLayerNotices();
2249 void _RegisterResolverChangeNotice();
2252 inline char const *_GetMallocTagId()
const;
2257 Usd_PrimDataPtr _pseudoRoot;
2268 bool _editTargetIsLocalLayer;
2270 std::unique_ptr<PcpCache> _cache;
2271 std::unique_ptr<Usd_ClipCache> _clipCache;
2272 std::unique_ptr<Usd_InstanceCache> _instanceCache;
2274 TfHashMap<TfToken, TfToken, TfHash> _invalidPrimTypeToFallbackMap;
2276 size_t _usedLayersRevision;
2283 inline size_t hash(
SdfPath const &path)
const {
2284 return path.GetHash();
2287 using PathToNodeMap = tbb::concurrent_hash_map<
2288 SdfPath, Usd_PrimDataIPtr, _TbbHashEq>;
2289 PathToNodeMap _primMap;
2294 typedef std::vector<
2295 std::pair<SdfLayerHandle, TfNotice::Key> > _LayerAndNoticeKeyVec;
2296 _LayerAndNoticeKeyVec _layersAndNoticeKeys;
2297 size_t _lastChangeSerialNumber;
2302 class _PendingChanges;
2303 _PendingChanges* _pendingChanges;
2305 boost::optional<WorkDispatcher> _dispatcher;
2309 std::unique_ptr<std::string> _mallocTagID;
2320 bool _isClosingStage;
2321 bool _isWritingFallbackPrimTypes;
2335 friend class Usd_FlattenAccess;
2336 friend class Usd_PcpCacheAccess;
2337 friend class Usd_PrimData;
2338 friend class Usd_StageOpenRequest;
2339 template <
class T>
friend struct Usd_AttrGetValueHelper;
2340 friend struct Usd_AttrGetUntypedValueHelper;
2341 template <
class RefsOrPayloadsEditorType,
class RefsOrPayloadsProxyType>
2342 friend struct Usd_ListEditImpl;
2351 UsdStage::_GetTypeSpecificResolvedMetadata(
const UsdObject &obj,
2357 template<
typename T>
2371 " match retrieved type %s",
2372 ArchGetDemangled<T>().c_str(),
2379 template<
typename T>
2387 template<
typename T>
2401 TF_CODING_ERROR(
"Requested type %s for stage metadatum %s[%s] does not" 2402 " match retrieved type %s",
2403 ArchGetDemangled<T>().c_str(),
2411 template<
typename T>
2414 const T& value)
const 2422 typename std::enable_if<
2423 !UsdStage::_HasTypeSpecificResolution<T>::value,
bool>::type
2424 UsdStage::_GetMetadata(
const UsdObject &obj,
2433 return _GetStrongestResolvedMetadata(
2434 obj, fieldName, keyPath, useFallbacks, &out);
2439 typename std::enable_if<
2440 UsdStage::_HasTypeSpecificResolution<T>::value,
bool>::type
2441 UsdStage::_GetMetadata(
const UsdObject &obj,
2449 return _GetTypeSpecificResolvedMetadata(
2450 obj, fieldName, keyPath, useFallbacks, result);
2456 typename std::enable_if<!UsdStage::_IsEditTargetMappable<T>::value,
bool>::type
2458 const TfToken &keyPath,
const T& value)
2463 return _SetMetadataImpl<SdfAbstractDataConstValue>(
2464 object, key, keyPath, in);
2469 typename std::enable_if<UsdStage::_IsEditTargetMappable<T>::value,
bool>::type
2471 const TfToken &keyPath,
const T& value)
2473 return _SetEditTargetMappedMetadata(
object, key, keyPath, value);
2477 PXR_NAMESPACE_CLOSE_SCOPE
2479 #endif //PXR_USD_USD_STAGE_H USD_API void ExpandPopulationMask(std::function< bool(UsdRelationship const &)> const &relPred=nullptr, std::function< bool(UsdAttribute const &)> const &attrPred=nullptr)
Expand this stage's population mask to include the targets of all relationships that pass relPred and...
static USD_API void SetGlobalVariantFallbacks(const PcpVariantFallbackMap &fallbacks)
Set the global variant fallback preferences used in new UsdStages.
A proxy class for applying listOp edits to the specializes list for a prim.
Handle-object returned by TfNotice::Register().
A scene description container that can combine with other such containers to form simple component as...
USD_API void SetStartTimeCode(double)
Sets the stage's start timeCode.
USD_API UsdPrimRange Traverse()
Traverse the active, loaded, defined, non-abstract prims on this stage depth-first.
USD_API UsdPrim GetPrimAtPath(const SdfPath &path) const
Return the UsdPrim at path, or an invalid UsdPrim if none exists.
USD_API ArResolverContext GetPathResolverContext() const
Return the path resolver context for all path resolution during composition of this stage.
static USD_API void GetColorConfigFallbacks(SdfAssetPath *colorConfiguration, TfToken *colorManagementSystem)
Returns the global fallback values of 'colorConfiguration' and 'colorManagementSystem'.
static USD_API UsdStageRefPtr OpenMasked(const std::string &filePath, UsdStagePopulationMask const &mask, InitialLoadSet load=LoadAll)
Create a new stage and recursively compose prims defined within and referenced by the layer at filePa...
USD_API SdfLayerRefPtr Flatten(bool addSourceFileComment=true) const
Returns a single, anonymous, merged layer for this composite scene.
USD_API UsdPrim GetDefaultPrim() const
Return the root UsdPrim on this stage whose name is the root layer's defaultPrim metadata's value.
PcpPrimIndex is an index of the all sites of scene description that contribute opinions to a specific...
USD_API void SetLoadRules(UsdStageLoadRules const &rules)
Set the UsdStageLoadRules to govern payload inclusion on this stage.
Standard pointer typedefs.
USD_API void SetDefaultPrim(const UsdPrim &prim)
Set the default prim layer metadata in this stage's root layer.
T const & UncheckedGet() const &
Returns a const reference to the held object if the held object is of type T.
USD_API void SetInterpolationType(UsdInterpolationType interpolationType)
Sets the interpolation type used during value resolution for all attributes on this stage.
bool SetMetadata(const TfToken &key, const T &value) const
Set the value of Stage metadatum key to value, if the stage's current UsdEditTarget is the root or se...
The fully-typed container for a field value in an SdfAbstractData.
USD_API UsdObject GetObjectAtPath(const SdfPath &path) const
Return the UsdObject at path, or an invalid UsdObject if none exists.
USD_API UsdPrim OverridePrim(const SdfPath &path)
Attempt to ensure a UsdPrim at path exists on this stage.
A type-erased container for a field value in an SdfAbstractData.
Object for efficiently making repeated queries for attribute values.
USD_API bool Export(const std::string &filename, bool addSourceFileComment=true, const SdfLayer::FileFormatArguments &args=SdfLayer::FileFormatArguments()) const
Writes out the composite scene as a single flattened layer into filename.
USD_API void LoadAndUnload(const SdfPathSet &loadSet, const SdfPathSet &unloadSet, UsdLoadPolicy policy=UsdLoadWithDescendants)
Unload and load the given path sets.
USD_API SdfLayerHandleVector GetLayerStack(bool includeSessionLayers=true) const
Return this stage's local layers in strong-to-weak order.
bool GetMetadata(const TfToken &key, T *value) const
Return in value an authored or fallback value (if one was defined for the given metadatum) for Stage ...
bool SetMetadataByDictKey(const TfToken &key, const TfToken &keyPath, const T &value) const
Author value to the field identified by key and keyPath at the current EditTarget.
USD_API UsdPrim CreateClassPrim(const SdfPath &rootPrimPath)
Author an SdfPrimSpec with specifier == SdfSpecifierClass for the class at root prim path path at the...
#define TF_CODING_ERROR(fmt, args)
Issue an internal programming error, but continue execution.
static USD_API UsdStageRefPtr CreateInMemory(InitialLoadSet load=LoadAll)
Creates a new stage only in memory, analogous to creating an anonymous SdfLayer.
USD_API std::vector< UsdPrim > GetPrototypes() const
Returns all native instancing prototype prims.
PcpCache is the context required to make requests of the Pcp composition algorithm and cache the resu...
USD_API void SetTimeCodesPerSecond(double timeCodesPerSecond) const
Sets the stage's timeCodesPerSecond value.
USD_API bool HasMetadata(const TfToken &key) const
Returns true if the key has a meaningful value, that is, if GetMetadata() will provide a value,...
static USD_API bool IsSupportedFile(const std::string &filePath)
Indicates whether the specified file is supported by UsdStage.
The outermost container for scene description, which owns and presents composed prims as a scenegraph...
USD_API bool HasAuthoredMetadataDictKey(const TfToken &key, const TfToken &keyPath) const
Return true if there exists any authored opinion (excluding fallbacks) for key and keyPath.
VT_API std::string GetTypeName() const
Return the type name of the held typeid.
Load a prim plus all its descendants.
A proxy class for applying listOp edits to the inherit paths list for a prim.
USD_API void Save()
Calls SdfLayer::Save on all dirty layers contributing to this stage except session layers and sublaye...
USD_API std::string ResolveIdentifierToEditTarget(std::string const &identifier) const
Resolve the given identifier using this stage's ArResolverContext and the layer of its GetEditTarget(...
The base class for all API schemas.
Container for information about the source of an attribute's value, i.e.
Scenegraph object for authoring and retrieving numeric, string, and array valued data,...
USD_API SdfAssetPath GetColorConfiguration() const
Returns the default color configuration used to interpret the per- attribute color-spaces in the comp...
SdfHandle is a smart ptr that calls IsDormant() on the pointed-to object as an extra expiration check...
UsdStagePopulationMask GetPopulationMask() const
Return this stage's population mask.
Enable a concrete base class for use with TfRefPtr.
Token for efficient comparison, assignment, and hashing of known strings.
USD_API bool IsLayerMuted(const std::string &layerIdentifier) const
Returns true if the layer specified by layerIdentifier is muted in this cache, false otherwise.
USD_API bool ClearMetadata(const TfToken &key) const
Clear the value of stage metadatum key, if the stage's current UsdEditTarget is the root or session l...
USD_API void UnmuteLayer(const std::string &layerIdentifier)
Unmute the layer identified by layerIdentifier if it had previously been muted.
USD_API double GetTimeCodesPerSecond() const
Returns the stage's timeCodesPerSecond value.
Value type that represents a time code.
USD_API const std::vector< std::string > & GetMutedLayers() const
Returns a vector of all layers that have been muted on this stage.
A UsdVariantSet represents a single VariantSet in USD (e.g.
USD_API bool HasAuthoredTimeCodeRange() const
Returns true if the stage has both start and end timeCodes authored in the session layer or the root ...
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
USD_API const UsdEditTarget & GetEditTarget() const
Return the stage's EditTarget.
USD_API bool RemovePrim(const SdfPath &path)
Remove all scene description for the given path and its subtree in the current UsdEditTarget.
USD_API UsdProperty GetPropertyAtPath(const SdfPath &path) const
Return the UsdProperty at path, or an invalid UsdProperty if none exists.
USD_API double GetStartTimeCode() const
Returns the stage's start timeCode.
Base class for Usd scenegraph objects, providing common API.
Defines a mapping from scene graph paths to Sdf spec paths in a SdfLayer where edits should be direct...
The fully-typed container for a field value in an SdfAbstractData.
USD_API void MuteAndUnmuteLayers(const std::vector< std::string > &muteLayers, const std::vector< std::string > &unmuteLayers)
Mute and unmute the layers identified in muteLayers and unmuteLayers.
This class represents rules that govern payload inclusion on UsdStages.
USD_API UsdPrim GetPseudoRoot() const
Return the stage's "pseudo-root" prim, whose name is defined by Usd.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
InitialLoadSet
Specifies the initial set of prims to load when opening a UsdStage.
SdfSpecifier
An enum that identifies the possible specifiers for an SdfPrimSpec.
std::map< std::string, std::string > FileFormatArguments
Type for specifying additional file format-specific arguments to layer API.
USD_API double GetFramesPerSecond() const
Returns the stage's framesPerSecond value.
USD_API SdfPathSet GetLoadSet()
Returns a set of all loaded paths.
std::vector< TfToken > TfTokenVector
Convenience types.
Notice sent when asset paths may resolve to a different path than before due to a change in the resol...
A basic mathematical interval class.
USD_API double GetEndTimeCode() const
Returns the stage's end timeCode.
USD_API SdfLayerHandle GetSessionLayer() const
Return this stage's root session layer.
A path value used to locate objects in layers or scenegraphs.
USD_API UsdPrim DefinePrim(const SdfPath &path, const TfToken &typeName=TfToken())
Attempt to ensure a UsdPrim at path is defined (according to UsdPrim::IsDefined()) on this stage.
USD_API bool HasDefaultPrim() const
Return true if this stage's root layer has an authored opinion for the default prim layer metadata.
A UsdRelationship creates dependencies between scenegraph objects by allowing a prim to target other ...
USD_API UsdPrimRange TraverseAll()
Traverse all the prims on this stage depth-first.
USD_API void SaveSessionLayers()
Calls SdfLayer::Save on all dirty session layers and sublayers of session layers contributing to this...
USD_API void SetPopulationMask(UsdStagePopulationMask const &mask)
Set this stage's population mask and recompose the stage.
SdfVariability
An enum that identifies variability types for attributes.
bool GetMetadataByDictKey(const TfToken &key, const TfToken &keyPath, T *value) const
Resolve the requested dictionary sub-element keyPath of dictionary-valued metadatum named key,...
USD_API bool HasMetadataDictKey(const TfToken &key, const TfToken &keyPath) const
Return true if there exists any authored or fallback opinion for key and keyPath.
static USD_API UsdStageRefPtr CreateNew(const std::string &identifier, InitialLoadSet load=LoadAll)
Create a new stage with root layer identifier, destroying potentially existing files with that identi...
USD_API bool HasLocalLayer(const SdfLayerHandle &layer) const
Return true if layer is one of the layers in this stage's local, root layerStack.
USD_API void SetEndTimeCode(double)
Sets the stage's end timeCode.
UsdLoadPolicy
Controls UsdStage::Load() and UsdPrim::Load() behavior regarding whether or not descendant prims are ...
Contains an asset path and an optional resolved path.
USD_API UsdPrim Load(const SdfPath &path=SdfPath::AbsoluteRootPath(), UsdLoadPolicy policy=UsdLoadWithDescendants)
Modify this stage's load rules to load the prim at path, its ancestors, and all of its descendants if...
USD_API SdfLayerHandleVector GetUsedLayers(bool includeClipLayers=true) const
Return a vector of all of the layers currently consumed by this stage, as determined by the compositi...
Notice sent per-layer indicating all layers whose contents have changed within a single round of chan...
Base class for UsdAttribute and UsdRelationship scenegraph objects.
An forward-iterable range that traverses a subtree of prims rooted at a given prim in depth-first ord...
USD_API UsdRelationship GetRelationshipAtPath(const SdfPath &path) const
Return the UsdAttribute at path, or an invalid UsdAttribute if none exists.
SdfSpecType
An enum that specifies the type of an object.
static SDF_API const SdfPath & AbsoluteRootPath()
The absolute path representing the top of the namespace hierarchy.
USD_API TfToken GetColorManagementSystem() const
Sets the name of the color management system to be used for loading and interpreting the color config...
USD_API bool ClearMetadataByDictKey(const TfToken &key, const TfToken &keyPath) const
Clear any authored value identified by key and keyPath at the current EditTarget.
USD_API bool HasAuthoredMetadata(const TfToken &key) const
Returns true if the key has an authored value, false if no value was authored or the only value avail...
USD_API void Reload()
Calls SdfLayer::Reload on all layers contributing to this stage, except session layers and sublayers ...
USD_API bool ExportToString(std::string *result, bool addSourceFileComment=true) const
Writes the composite scene as a flattened Usd text representation into the given string.
USD_API void Unload(const SdfPath &path=SdfPath::AbsoluteRootPath())
Modify this stage's load rules to unload the prim and its descendants specified by path.
USD_API void SetFramesPerSecond(double framesPerSecond) const
Sets the stage's framesPerSecond value.
USD_API SdfPathSet FindLoadable(const SdfPath &rootPath=SdfPath::AbsoluteRootPath())
Returns an SdfPathSet of all paths that can be loaded.
USD_API void SetEditTarget(const UsdEditTarget &editTarget)
Set the stage's EditTarget.
static USD_API UsdStageRefPtr Open(const std::string &filePath, InitialLoadSet load=LoadAll)
Attempt to find a matching existing stage in a cache if UsdStageCacheContext objects exist on the sta...
static USD_API void SetColorConfigFallbacks(const SdfAssetPath &colorConfiguration, const TfToken &colorManagementSystem)
Sets the global fallback values of color configuration metadata which includes the 'colorConfiguratio...
USD_API void WriteFallbackPrimTypes()
Writes the fallback prim types defined in the schema registry to the stage as dictionary valued fallb...
UsdInterpolationType
Attribute value interpolation options.
An asset resolver context allows clients to provide additional data to the resolver for use during re...
USD_API void MuteLayer(const std::string &layerIdentifier)
Mute the layer identified by layerIdentifier.
USD_API void SetColorManagementSystem(const TfToken &cms) const
Sets the name of the color management system used to interpret the color configuration file pointed a...
UsdVariantSets represents the collection of VariantSets that are present on a UsdPrim.
std::map< double, VtValue > SdfTimeSampleMap
A map from sample times to sample values.
USD_API SdfLayerHandle GetRootLayer() const
Return this stage's root layer.
bool IsHolding() const
Return true if this value is holding an object of type T, false otherwise.
UsdStageLoadRules const & GetLoadRules() const
Return the stage's current UsdStageLoadRules governing payload inclusion.
static USD_API PcpVariantFallbackMap GetGlobalVariantFallbacks()
Get the global variant fallback preferences used in new UsdStages.
USD_API UsdInterpolationType GetInterpolationType() const
Returns the interpolation type used during value resolution for all attributes on this stage.
Enable a concrete base class for use with TfWeakPtr.
USD_API void ClearDefaultPrim()
Clear the default prim layer metadata in this stage's root layer.
char const * GetText() const
Return the text that this token represents.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
USD_API UsdAttribute GetAttributeAtPath(const SdfPath &path) const
Return the UsdAttribute at path, or an invalid UsdAttribute if none exists.
This class represents a mask that may be applied to a UsdStage to limit the set of UsdPrim s it popul...
std::map< std::string, std::vector< std::string > > PcpVariantFallbackMap
typedef std::map<std::string, std::vector<std::string>> PcpVariantFallbackMap
USD_API void SetColorConfiguration(const SdfAssetPath &colorConfig) const
Sets the default color configuration to be used to interpret the per-attribute color-spaces in the co...
Defines a subrange of nodes and layers within a prim's prim index to consider when performing value r...
USD_API UsdEditTarget GetEditTargetForLocalLayer(size_t i)
Return a UsdEditTarget for editing the layer at index i in the layer stack.