All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UsdImagingPrimAdapter Class Referenceabstract

Base class for all PrimAdapters. More...

+ Inheritance diagram for UsdImagingPrimAdapter:

Public Member Functions

Parallel Setup and Resolve
virtual void TrackVariability (UsdPrim const &prim, SdfPath const &cachePath, HdDirtyBits *timeVaryingBits, UsdImagingInstancerContext const *instancerContext=NULL) const =0
 For the given prim, variability is detected and stored in timeVaryingBits. More...
 
virtual void UpdateForTime (UsdPrim const &prim, SdfPath const &cachePath, UsdTimeCode time, HdDirtyBits requestedBits, UsdImagingInstancerContext const *instancerContext=NULL) const =0
 Populates the cache for the given prim, time and requestedBits. More...
 
Change Processing
virtual USDIMAGING_API HdDirtyBits ProcessPrimChange (UsdPrim const &prim, SdfPath const &cachePath, TfTokenVector const &changedFields)
 Returns a bit mask of attributes to be updated, or HdChangeTracker::AllDirty if the entire prim must be resynchronized. More...
 
virtual HdDirtyBits ProcessPropertyChange (UsdPrim const &prim, SdfPath const &cachePath, TfToken const &propertyName)=0
 Returns a bit mask of attributes to be updated, or HdChangeTracker::AllDirty if the entire prim must be resynchronized. More...
 
virtual USDIMAGING_API void ProcessPrimResync (SdfPath const &cachePath, UsdImagingIndexProxy *index)
 When a PrimResync event occurs, the prim may have been deleted entirely, adapter plug-ins should override this method to free any per-prim state that was accumulated in the adapter. More...
 
virtual USDIMAGING_API void ProcessPrimRemoval (SdfPath const &cachePath, UsdImagingIndexProxy *index)
 Removes all associated Rprims and dependencies from the render index without scheduling them for repopulation. More...
 
virtual void MarkDirty (UsdPrim const &prim, SdfPath const &cachePath, HdDirtyBits dirty, UsdImagingIndexProxy *index)=0
 
virtual USDIMAGING_API void MarkRefineLevelDirty (UsdPrim const &prim, SdfPath const &cachePath, UsdImagingIndexProxy *index)
 
virtual USDIMAGING_API void MarkReprDirty (UsdPrim const &prim, SdfPath const &cachePath, UsdImagingIndexProxy *index)
 
virtual USDIMAGING_API void MarkCullStyleDirty (UsdPrim const &prim, SdfPath const &cachePath, UsdImagingIndexProxy *index)
 
virtual USDIMAGING_API void MarkRenderTagDirty (UsdPrim const &prim, SdfPath const &cachePath, UsdImagingIndexProxy *index)
 
virtual USDIMAGING_API void MarkTransformDirty (UsdPrim const &prim, SdfPath const &cachePath, UsdImagingIndexProxy *index)
 
virtual USDIMAGING_API void MarkVisibilityDirty (UsdPrim const &prim, SdfPath const &cachePath, UsdImagingIndexProxy *index)
 
virtual USDIMAGING_API void MarkMaterialDirty (UsdPrim const &prim, SdfPath const &cachePath, UsdImagingIndexProxy *index)
 
virtual USDIMAGING_API void MarkWindowPolicyDirty (UsdPrim const &prim, SdfPath const &cachePath, UsdImagingIndexProxy *index)
 
Computations
virtual USDIMAGING_API void InvokeComputation (SdfPath const &computationPath, HdExtComputationContext *context)
 
Instancing
virtual USDIMAGING_API SdfPath GetPathForInstanceIndex (SdfPath const &protoCachePath, int protoIndex, int *instanceCountForThisLevel, int *instancerIndex, SdfPath *masterCachePath=NULL, SdfPathVector *instanceContext=NULL)
 Returns the usd path of the original instancer prim corresponding to the given instanced protoCachePath and protoIndex. More...
 
virtual USDIMAGING_API SdfPath GetInstancer (SdfPath const &instancePath)
 Returns the instancer path for given instancePath. More...
 
virtual USDIMAGING_API
std::vector< VtArray< TfToken > > 
GetInstanceCategories (UsdPrim const &prim)
 Return an array of the categories used by each instance. More...
 
virtual USDIMAGING_API size_t SampleInstancerTransform (UsdPrim const &instancerPrim, SdfPath const &instancerPath, UsdTimeCode time, size_t maxNumSamples, float *sampleTimes, GfMatrix4d *sampleValues)
 Sample the instancer transform for the given prim. More...
 
virtual USDIMAGING_API size_t SamplePrimvar (UsdPrim const &usdPrim, SdfPath const &cachePath, TfToken const &key, UsdTimeCode time, size_t maxNumSamples, float *sampleTimes, VtValue *sampleValues)
 Sample the primvar for the given prim. More...
 
virtual USDIMAGING_API
PxOsdSubdivTags 
GetSubdivTags (UsdPrim const &usdPrim, SdfPath const &cachePath, UsdTimeCode time) const
 Get the subdiv tags for this prim. More...
 
Nested instancing support
virtual USDIMAGING_API SdfPath GetPathForInstanceIndex (SdfPath const &instancerCachePath, SdfPath const &protoCachePath, int protoIndex, int *instanceCountForThisLevel, int *instancerIndex, SdfPath *masterCachePath, SdfPathVector *instanceContext)
 Returns the path of the instancer prim corresponding to the protoIndex generated by the given instanced protoCachePath on the instancerCachePath. More...
 
virtual USDIMAGING_API VtIntArray GetInstanceIndices (SdfPath const &instancerPath, SdfPath const &protoRprimPath, UsdTimeCode time)
 Returns the instance index array for protoRprimPath, instanced by instancerPath. More...
 
virtual USDIMAGING_API GfMatrix4d GetRelativeInstancerTransform (SdfPath const &instancerPath, SdfPath const &protoInstancerPath, UsdTimeCode time) const
 Returns the transform of protoInstancerPath relative to instancerPath. More...
 
Selection
virtual USDIMAGING_API bool PopulateSelection (HdSelection::HighlightMode const &highlightMode, SdfPath const &usdPath, VtIntArray const &instanceIndices, HdSelectionSharedPtr const &result)
 
Texture resources
virtual USDIMAGING_API
HdTextureResource::ID 
GetTextureResourceID (UsdPrim const &usdPrim, SdfPath const &id, UsdTimeCode time, size_t salt) const
 
virtual USDIMAGING_API
HdTextureResourceSharedPtr 
GetTextureResource (UsdPrim const &usdPrim, SdfPath const &id, UsdTimeCode time) const
 
Volume field information
virtual USDIMAGING_API
HdVolumeFieldDescriptorVector 
GetVolumeFieldDescriptors (UsdPrim const &usdPrim, SdfPath const &id, UsdTimeCode time) const
 
Utilities
USDIMAGING_API GfMatrix4d GetRootTransform () const
 The root transform provided by the delegate. More...
 
USDIMAGING_API void SetDelegate (UsdImagingDelegate *delegate)
 A thread-local XformCache provided by the delegate. More...
 
USDIMAGING_API bool IsChildPath (SdfPath const &path) const
 
USDIMAGING_API bool GetVisible (UsdPrim const &prim, UsdTimeCode time) const
 Returns true if the given prim is visible, taking into account inherited visibility values. More...
 
USDIMAGING_API TfToken GetPurpose (UsdPrim const &prim) const
 Returns the purpose token for prim. More...
 
USDIMAGING_API GfMatrix4d GetTransform (UsdPrim const &prim, UsdTimeCode time, bool ignoreRootTransform=false) const
 Fetches the transform for the given prim at the given time from a pre-computed cache of prim transforms. More...
 
virtual USDIMAGING_API size_t SampleTransform (UsdPrim const &prim, SdfPath const &cachePath, UsdTimeCode time, size_t maxNumSamples, float *sampleTimes, GfMatrix4d *sampleValues)
 Samples the transform for the given prim. More...
 
USDIMAGING_API SdfPath GetMaterialUsdPath (UsdPrim const &prim) const
 Gets the material path for the given prim, walking up namespace if necessary. More...
 
USDIMAGING_API SdfPath GetInstancerCachePath (UsdPrim const &prim, UsdImagingInstancerContext const *instancerContext)
 Gets the instancer cachePath for the given prim and instancerContext. More...
 
virtual USDIMAGING_API
SdfPathVector 
GetDependPaths (SdfPath const &path) const
 Returns the depending rprim paths which don't exist in descendants. More...
 
USDIMAGING_API TfToken GetModelDrawMode (UsdPrim const &prim)
 Gets the model:drawMode attribute for the given prim, walking up the namespace if necessary. More...
 

Initialization

 UsdImagingPrimAdapter ()
 
virtual USDIMAGING_API ~UsdImagingPrimAdapter ()
 
virtual SdfPath Populate (UsdPrim const &prim, UsdImagingIndexProxy *index, UsdImagingInstancerContext const *instancerContext=NULL)=0
 Called to populate the RenderIndex for this UsdPrim. More...
 
virtual USDIMAGING_API bool ShouldCullChildren () const
 
virtual USDIMAGING_API bool IsInstancerAdapter () const
 
virtual USDIMAGING_API bool CanPopulateMaster () const
 
static USDIMAGING_API bool ShouldCullSubtree (UsdPrim const &prim)
 

Render Index Compatibility

typedef UsdImagingValueCache::Key Keys
 
virtual bool IsSupported (UsdImagingIndexProxy const *index) const
 Returns true if the adapter can be populated into the target index. More...
 
template<typename T >
_Get (UsdPrim const &prim, TfToken const &attrToken, UsdTimeCode time) const
 
template<typename T >
void _GetPtr (UsdPrim const &prim, TfToken const &key, UsdTimeCode time, T *out) const
 
USDIMAGING_API
UsdImagingValueCache
_GetValueCache () const
 
USDIMAGING_API UsdPrim _GetPrim (SdfPath const &usdPath) const
 
USDIMAGING_API const
UsdImagingPrimAdapterSharedPtr & 
_GetPrimAdapter (UsdPrim const &prim, bool ignoreInstancing=false) const
 
USDIMAGING_API const
UsdImagingPrimAdapterSharedPtr & 
_GetAdapter (TfToken const &adapterKey) const
 
USDIMAGING_API SdfPath _GetPrimPathFromInstancerChain (SdfPathVector const &instancerChain) const
 
USDIMAGING_API UsdTimeCode _GetTimeWithOffset (float offset) const
 
USDIMAGING_API SdfPath _ConvertCachePathToIndexPath (SdfPath const &cachePath) const
 
USDIMAGING_API SdfPath _ConvertIndexPathToCachePath (SdfPath const &indexPath) const
 
USDIMAGING_API SdfPathVector _GetRprimSubtree (SdfPath const &indexPath) const
 
USDIMAGING_API TfToken _GetMaterialBindingPurpose () const
 
USDIMAGING_API TfToken _GetMaterialNetworkSelector () const
 
USDIMAGING_API bool _IsPrimvarFilteringNeeded () const
 
USDIMAGING_API TfTokenVector _GetShaderSourceTypes () const
 
USDIMAGING_API bool _IsInInvisedPaths (SdfPath const &usdPath) const
 
USDIMAGING_API bool _IsVarying (UsdPrim prim, TfToken const &attrName, HdDirtyBits dirtyFlag, TfToken const &perfToken, HdDirtyBits *dirtyFlags, bool isInherited, bool *exists=nullptr) const
 
USDIMAGING_API bool _IsTransformVarying (UsdPrim prim, HdDirtyBits dirtyFlag, TfToken const &perfToken, HdDirtyBits *dirtyFlags) const
 
USDIMAGING_API void _MergePrimvar (HdPrimvarDescriptorVector *vec, TfToken const &name, HdInterpolation interp, TfToken const &role=TfToken()) const
 
USDIMAGING_API void _ComputeAndMergePrimvar (UsdPrim const &prim, SdfPath const &cachePath, UsdGeomPrimvar const &primvar, UsdTimeCode time, UsdImagingValueCache *valueCache, HdInterpolation *interpOverride=nullptr) const
 
USDIMAGING_API bool _PrimvarChangeRequiresResync (UsdPrim const &prim, SdfPath const &cachePath, TfToken const &propertyName, TfToken const &primvarName) const
 
virtual void _RemovePrim (SdfPath const &cachePath, UsdImagingIndexProxy *index)=0
 
USDIMAGING_API
UsdImaging_CollectionCache & 
_GetCollectionCache () const
 
USDIMAGING_API
UsdImaging_CoordSysBindingStrategy::value_type 
_GetCoordSysBindings (UsdPrim const &prim) const
 
USDIMAGING_API
UsdImaging_InheritedPrimvarStrategy::value_type 
_GetInheritedPrimvars (UsdPrim const &prim) const
 
USDIMAGING_API GfInterval _GetCurrentTimeSamplingInterval ()
 
USDIMAGING_API bool _DoesDelegateSupportCoordSys () const
 
static USDIMAGING_API
HdInterpolation 
_UsdToHdInterpolation (TfToken const &usdInterp)
 
static USDIMAGING_API TfToken _UsdToHdRole (TfToken const &usdRole)
 

Detailed Description

Base class for all PrimAdapters.

Definition at line 67 of file primAdapter.h.

Member Function Documentation

virtual USDIMAGING_API SdfPathVector GetDependPaths ( SdfPath const &  path) const
virtual

Returns the depending rprim paths which don't exist in descendants.

Used for change tracking over subtree boundary (e.g. instancing)

Reimplemented in UsdImagingInstanceAdapter, and UsdImagingPointInstancerAdapter.

virtual USDIMAGING_API std::vector<VtArray<TfToken> > GetInstanceCategories ( UsdPrim const &  prim)
virtual

Return an array of the categories used by each instance.

Reimplemented in UsdImagingInstanceAdapter.

virtual USDIMAGING_API VtIntArray GetInstanceIndices ( SdfPath const &  instancerPath,
SdfPath const &  protoRprimPath,
UsdTimeCode  time 
)
virtual

Returns the instance index array for protoRprimPath, instanced by instancerPath.

instancerPath must be managed by this adapter.

Reimplemented in UsdImagingInstanceAdapter, and UsdImagingPointInstancerAdapter.

virtual USDIMAGING_API SdfPath GetInstancer ( SdfPath const &  instancePath)
virtual

Returns the instancer path for given instancePath.

If it's not instanced path, returns empty.

Reimplemented in UsdImagingInstanceAdapter.

USDIMAGING_API SdfPath GetInstancerCachePath ( UsdPrim const &  prim,
UsdImagingInstancerContext const *  instancerContext 
)

Gets the instancer cachePath for the given prim and instancerContext.

USDIMAGING_API SdfPath GetMaterialUsdPath ( UsdPrim const &  prim) const

Gets the material path for the given prim, walking up namespace if necessary.

USDIMAGING_API TfToken GetModelDrawMode ( UsdPrim const &  prim)

Gets the model:drawMode attribute for the given prim, walking up the namespace if necessary.

virtual USDIMAGING_API SdfPath GetPathForInstanceIndex ( SdfPath const &  protoCachePath,
int  protoIndex,
int *  instanceCountForThisLevel,
int *  instancerIndex,
SdfPath masterCachePath = NULL,
SdfPathVector *  instanceContext = NULL 
)
virtual

Returns the usd path of the original instancer prim corresponding to the given instanced protoCachePath and protoIndex.

The "original instancer" is defined as the rprim corresponding to the top-level instanceable reference prim or top-level PointInstancer prim. It will be an empty path if the given protoCachePath is not instanced. The first level of translation done by this method, to find the instancer for protoCachePath, is done by following the naming convention of each instance adapter (i.e. taking PrimPath of attribute path or variant selection path). Other levels of translation may be done by the other overload for this function, if necessary. If protoRprimId is an instancer and also instanced by another parent instancer, return the instanceCountForThisLevel as the number of instances. See HdSceneDelegate::GetPathForInstanceIndex for more background.

Reimplemented in UsdImagingInstanceAdapter, and UsdImagingPointInstancerAdapter.

virtual USDIMAGING_API SdfPath GetPathForInstanceIndex ( SdfPath const &  instancerCachePath,
SdfPath const &  protoCachePath,
int  protoIndex,
int *  instanceCountForThisLevel,
int *  instancerIndex,
SdfPath masterCachePath,
SdfPathVector *  instanceContext 
)
virtual

Returns the path of the instancer prim corresponding to the protoIndex generated by the given instanced protoCachePath on the instancerCachePath.

This method can be used if the instancerPath can't be inferred from protoPath, such as nested instancing. protoCachePath can be either a (leaf) rprim or child sub-instancer. See HdSceneDelegate::GetPathForInstanceIndex for more background.

Reimplemented in UsdImagingPointInstancerAdapter.

USDIMAGING_API TfToken GetPurpose ( UsdPrim const &  prim) const

Returns the purpose token for prim.

virtual USDIMAGING_API GfMatrix4d GetRelativeInstancerTransform ( SdfPath const &  instancerPath,
SdfPath const &  protoInstancerPath,
UsdTimeCode  time 
) const
virtual

Returns the transform of protoInstancerPath relative to instancerPath.

instancerPath must be managed by this adapter.

Reimplemented in UsdImagingInstanceAdapter, and UsdImagingPointInstancerAdapter.

USDIMAGING_API GfMatrix4d GetRootTransform ( ) const

The root transform provided by the delegate.

virtual USDIMAGING_API PxOsdSubdivTags GetSubdivTags ( UsdPrim const &  usdPrim,
SdfPath const &  cachePath,
UsdTimeCode  time 
) const
virtual

Get the subdiv tags for this prim.

Reimplemented in UsdImagingInstanceAdapter, UsdImagingPointInstancerAdapter, and UsdImagingMeshAdapter.

USDIMAGING_API GfMatrix4d GetTransform ( UsdPrim const &  prim,
UsdTimeCode  time,
bool  ignoreRootTransform = false 
) const

Fetches the transform for the given prim at the given time from a pre-computed cache of prim transforms.

Requesting transforms at incoherent times is currently inefficient.

USDIMAGING_API bool GetVisible ( UsdPrim const &  prim,
UsdTimeCode  time 
) const

Returns true if the given prim is visible, taking into account inherited visibility values.

Inherited values are strongest, Usd has no notion of "super vis/invis".

virtual USDIMAGING_API HdDirtyBits ProcessPrimChange ( UsdPrim const &  prim,
SdfPath const &  cachePath,
TfTokenVector const &  changedFields 
)
virtual

Returns a bit mask of attributes to be updated, or HdChangeTracker::AllDirty if the entire prim must be resynchronized.

changedFields contains a list of changed scene description fields for this prim. This may be empty in certain cases, like the addition of an inert prim spec for the given prim.

The default implementation returns HdChangeTracker::AllDirty if any of the changed fields are plugin metadata fields, HdChangeTracker::Clean otherwise.

virtual USDIMAGING_API void ProcessPrimRemoval ( SdfPath const &  cachePath,
UsdImagingIndexProxy index 
)
virtual

Removes all associated Rprims and dependencies from the render index without scheduling them for repopulation.

Reimplemented in UsdImagingInstanceAdapter, and UsdImagingPointInstancerAdapter.

virtual USDIMAGING_API void ProcessPrimResync ( SdfPath const &  cachePath,
UsdImagingIndexProxy index 
)
virtual

When a PrimResync event occurs, the prim may have been deleted entirely, adapter plug-ins should override this method to free any per-prim state that was accumulated in the adapter.

Reimplemented in UsdImagingInstanceAdapter, and UsdImagingPointInstancerAdapter.

virtual HdDirtyBits ProcessPropertyChange ( UsdPrim const &  prim,
SdfPath const &  cachePath,
TfToken const &  propertyName 
)
pure virtual
virtual USDIMAGING_API size_t SampleInstancerTransform ( UsdPrim const &  instancerPrim,
SdfPath const &  instancerPath,
UsdTimeCode  time,
size_t  maxNumSamples,
float *  sampleTimes,
GfMatrix4d sampleValues 
)
virtual

Sample the instancer transform for the given prim.

See Also
HdSceneDelegate::SampleInstancerTransform()

Reimplemented in UsdImagingInstanceAdapter, and UsdImagingPointInstancerAdapter.

virtual USDIMAGING_API size_t SamplePrimvar ( UsdPrim const &  usdPrim,
SdfPath const &  cachePath,
TfToken const &  key,
UsdTimeCode  time,
size_t  maxNumSamples,
float *  sampleTimes,
VtValue sampleValues 
)
virtual

Sample the primvar for the given prim.

See Also
HdSceneDelegate::SamplePrimvar()

Reimplemented in UsdImagingInstanceAdapter, and UsdImagingPointInstancerAdapter.

virtual USDIMAGING_API size_t SampleTransform ( UsdPrim const &  prim,
SdfPath const &  cachePath,
UsdTimeCode  time,
size_t  maxNumSamples,
float *  sampleTimes,
GfMatrix4d sampleValues 
)
virtual
USDIMAGING_API void SetDelegate ( UsdImagingDelegate delegate)

A thread-local XformCache provided by the delegate.

virtual void TrackVariability ( UsdPrim const &  prim,
SdfPath const &  cachePath,
HdDirtyBits *  timeVaryingBits,
UsdImagingInstancerContext const *  instancerContext = NULL 
) const
pure virtual

The documentation for this class was generated from the following file: