HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
skelRootAdapter.h
Go to the documentation of this file.
1 //
2 // Copyright 2019 Pixar
3 //
4 // Licensed under the terms set forth in the LICENSE.txt file available at
5 // https://openusd.org/license.
6 //
7 #ifndef PXR_USD_IMAGING_USD_SKEL_IMAGING_SKEL_ROOT_ADAPTER_H
8 #define PXR_USD_IMAGING_USD_SKEL_IMAGING_SKEL_ROOT_ADAPTER_H
9 
10 #include "pxr/pxr.h"
13 
15 
16 /// \class UsdImagingSkelRootAdapter
17 ///
18 /// The SkelRoot adapter exists for two reasons:
19 /// (a) Registering the SkeletonAdapter to handle processing of any skinned
20 /// prim under a SkelRoot prim.
21 /// The UsdSkel schema requires that ANY skinned prim lives under a
22 /// SkelRoot.
23 /// (b) Getting the skeleton that deforms each skinned prim, which is stored
24 /// in the SkeletonAdapter (the latter is stateful).
25 /// Both of these happen during Populate(..)
26 ///
28 public:
30 
32  : BaseAdapter()
33  {}
34 
37 
38  // ---------------------------------------------------------------------- //
39  /// \name Initialization
40  // ---------------------------------------------------------------------- //
42  SdfPath
43  Populate(const UsdPrim& prim,
46  instancerContext=nullptr) override;
47 
49  bool CanPopulateUsdInstance() const override { return true; }
50 
51  bool ShouldIgnoreNativeInstanceSubtrees() const override;
52 
53  // ---------------------------------------------------------------------- //
54  /// \name Parallel Setup and Resolve
55  // ---------------------------------------------------------------------- //
56 
57  /// Thread Safe.
59  void TrackVariability(const UsdPrim& prim,
60  const SdfPath& cachePath,
61  HdDirtyBits* timeVaryingBits,
63  instancerContext = nullptr) const override;
64 
65  /// Thread Safe.
67  void UpdateForTime(const UsdPrim& prim,
68  const SdfPath& cachePath,
70  HdDirtyBits requestedBits,
72  instancerContext=nullptr) const override;
73 
74  // ---------------------------------------------------------------------- //
75  /// \name Change Processing
76  // ---------------------------------------------------------------------- //
77 
80  const SdfPath& cachePath,
81  const TfToken& propertyName) override;
82 
84  void MarkDirty(const UsdPrim& prim,
85  const SdfPath& cachePath,
86  HdDirtyBits dirty,
87  UsdImagingIndexProxy* index) override;
88 
89  // ---------------------------------------------------------------------- //
90  /// \name Scene Index Support
91  // ---------------------------------------------------------------------- //
92 
94  TfTokenVector GetImagingSubprims(UsdPrim const &prim) override;
95 
98  UsdPrim const &prim,
99  TfToken const &subprim) override;
100 
102  HdContainerDataSourceHandle GetImagingSubprimData(
103  UsdPrim const& prim,
104  TfToken const& subprim,
105  const UsdImagingDataSourceStageGlobals &stageGlobals) override;
106 
109  UsdPrim const& prim,
110  TfToken const& subprim,
111  TfTokenVector const& properties,
112  UsdImagingPropertyInvalidationType invalidationType) override;
113 
114 
115 protected:
117  void _RemovePrim(const SdfPath& cachePath,
118  UsdImagingIndexProxy* index) override;
119 };
120 
121 
123 
124 #endif // PXR_USD_IMAGING_USD_SKEL_IMAGING_SKEL_ROOT_ADAPTER_H
USDSKELIMAGING_API TfTokenVector GetImagingSubprims(UsdPrim const &prim) override
GT_API const UT_StringHolder time
uint32_t HdDirtyBits
Definition: types.h:143
USDSKELIMAGING_API void UpdateForTime(const UsdPrim &prim, const SdfPath &cachePath, UsdTimeCode time, HdDirtyBits requestedBits, const UsdImagingInstancerContext *instancerContext=nullptr) const override
Thread Safe.
USDSKELIMAGING_API void TrackVariability(const UsdPrim &prim, const SdfPath &cachePath, HdDirtyBits *timeVaryingBits, const UsdImagingInstancerContext *instancerContext=nullptr) const override
Thread Safe.
USDSKELIMAGING_API SdfPath Populate(const UsdPrim &prim, UsdImagingIndexProxy *index, const UsdImagingInstancerContext *instancerContext=nullptr) override
USDSKELIMAGING_API void _RemovePrim(const SdfPath &cachePath, UsdImagingIndexProxy *index) override
Returns whether custom shading of prims is enabled.
Definition: token.h:70
USDSKELIMAGING_API bool CanPopulateUsdInstance() const override
Definition: prim.h:116
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:440
USDSKELIMAGING_API void MarkDirty(const UsdPrim &prim, const SdfPath &cachePath, HdDirtyBits dirty, UsdImagingIndexProxy *index) override
Definition: path.h:273
virtual USDSKELIMAGING_API ~UsdSkelImagingSkelRootAdapter()
bool ShouldIgnoreNativeInstanceSubtrees() const override
USDSKELIMAGING_API HdDirtyBits ProcessPropertyChange(const UsdPrim &prim, const SdfPath &cachePath, const TfToken &propertyName) override
#define USDSKELIMAGING_API
Definition: api.h:23
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Definition: path.h:1425
USDSKELIMAGING_API HdDataSourceLocatorSet InvalidateImagingSubprim(UsdPrim const &prim, TfToken const &subprim, TfTokenVector const &properties, UsdImagingPropertyInvalidationType invalidationType) override
GLuint index
Definition: glcorearb.h:786
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74
USDSKELIMAGING_API HdContainerDataSourceHandle GetImagingSubprimData(UsdPrim const &prim, TfToken const &subprim, const UsdImagingDataSourceStageGlobals &stageGlobals) override
UsdImagingPropertyInvalidationType
Definition: types.h:17
USDSKELIMAGING_API TfToken GetImagingSubprimType(UsdPrim const &prim, TfToken const &subprim) override