8#ifndef PXR_USD_IMAGING_USD_SKEL_IMAGING_DATA_SOURCE_RESOLVED_SKELETON_PRIM_H
9#define PXR_USD_IMAGING_USD_SKEL_IMAGING_DATA_SOURCE_RESOLVED_SKELETON_PRIM_H
11#include "pxr/imaging/hd/sceneIndex.h"
14#include "pxr/usdImaging/usdSkelImaging/dataSourceUtils.h"
17PXR_NAMESPACE_OPEN_SCOPE
31 ,
public std::enable_shared_from_this<
32 UsdSkelImagingDataSourceResolvedSkeletonPrim>
44 HdDataSourceBaseHandle
Get(
const TfToken &name)
override;
49 return _animationSource;
54 return _animationSchema;
66 return _skelDataCache.Get();
72 return _skelGuideDataCache.Get();
102 HdSceneIndexBaseRefPtr
const &sceneIndex,
104 HdContainerDataSourceHandle
const &primSource);
106 bool _ProcessSkeletonDirtyLocators(
110 bool _ProcessSkelAnimationDirtyLocators(
117 HdContainerDataSourceHandle
const _primSource;
119 const SdfPath _animationSource;
121 const UsdSkelImagingAnimationSchema _animationSchema;
127 _SkelDataCache(HdSceneIndexBaseRefPtr
const &sceneIndex,
130 Handle _Compute()
override;
132 HdSceneIndexBaseRefPtr
const _sceneIndex;
135 _SkelDataCache _skelDataCache;
137 class _SkelGuideDataCache
144 Handle _Compute()
override;
148 _SkelGuideDataCache _skelGuideDataCache;
156 class _RestTransformsDataSource;
157 std::shared_ptr<_RestTransformsDataSource>
const _restTransformsDataSource;
162PXR_NAMESPACE_CLOSE_SCOPE
A datasource representing structured (named, hierarchical) data, for example a geometric primitive or...
Represents a set of data source locators closed under descendancy.
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.
A data source providing data for the UsdSkelImagingResolvedSkeletonSchema and for drawing the guide a...
USDSKELIMAGING_API HdDataSourceBaseHandle Get(const TfToken &name) override
Returns the child datasource of the given name.
const SdfPath & GetAnimationSource() const
skelAnimation targeted by the skeleton.
USDSKELIMAGING_API bool ProcessDirtyLocators(const TfToken &dirtiedPrimType, const HdDataSourceLocatorSet &dirtyLocators, HdSceneIndexObserver::DirtiedPrimEntries *entries)
Dirty internal structures in response to dirty locators for skeleton prim (dirtiedPrimType = "skeleto...
HdMatrix4fArrayDataSourceHandle GetSkinningTransforms()
Skinning transforms.
static const HdDataSourceLocatorSet & GetDependendendOnDataSourceLocators()
Data source locators (on this prim) that this prim depends on.
HdMatrixDataSourceHandle GetSkelLocalToWorld() const
Inverse transform matrix of this skeleton prim.
const UsdSkelImagingAnimationSchema & GetAnimationSchema() const
Schema from skelAnimation at GetAnimationSource().
USDSKELIMAGING_API TfTokenVector GetNames() override
Returns the list of names for which Get(...) is expected to return a non-null value.
std::shared_ptr< UsdSkelImagingSkelData > GetSkelData()
(Non-animated) skel data computed from this skeleton and the parts of skelAnimation relating to the t...
std::shared_ptr< UsdSkelImagingSkelGuideData > GetSkelGuideData()
Some of the (non-animated) data to compute the points and topology for the mesh guide.
A thunk for shared pointers computing the result only once and using atomic operations to store the c...
Some of the data necessary to compute the skinning transforms of a skeleton.
Data to compute the skeleton guide as mesh.
std::vector< TfToken > TfTokenVector
Convenience types.