24 #ifndef PXR_IMAGING_HD_ST_BASIS_CURVES_H
25 #define PXR_IMAGING_HD_ST_BASIS_CURVES_H
28 #include "pxr/imaging/hdSt/api.h"
29 #include "pxr/imaging/hd/version.h"
30 #include "pxr/imaging/hd/basisCurves.h"
31 #include "pxr/imaging/hd/drawingCoord.h"
32 #include "pxr/imaging/hd/enums.h"
33 #include "pxr/imaging/hd/perfLog.h"
35 #include "pxr/usd/sdf/path.h"
40 PXR_NAMESPACE_OPEN_SCOPE
43 using HdSt_BasisCurvesTopologySharedPtr =
44 std::shared_ptr<class HdSt_BasisCurvesTopology>;
74 HF_MALLOC_TAG_NEW(
"new HdStBasisCurves");
80 ~HdStBasisCurves()
override;
85 HdDirtyBits *dirtyBits,
86 TfToken const &reprToken)
override;
104 HdDirtyBits *dirtyBitsState);
108 HdStDrawItem *drawItem,
109 HdDirtyBits *dirtyBits,
114 HdStDrawItem *drawItem,
115 HdDirtyBits *dirtyBits);
119 HdStDrawItem *drawItem,
120 HdDirtyBits *dirtyBits);
124 HdStDrawItem *drawItem,
125 HdDirtyBits *dirtyBits);
129 HullTopology = HdDrawingCoord::CustomSlotsBegin,
134 enum DirtyBits : HdDirtyBits {
135 DirtyIndices = HdChangeTracker::CustomBitsBegin,
136 DirtyHullIndices = (DirtyIndices << 1),
137 DirtyPointsIndices = (DirtyHullIndices << 1)
145 bool _basisWidthInterpolation =
false;
146 bool _basisNormalInterpolation =
false;
148 bool _SupportsRefinement(
int refineLevel);
149 bool _SupportsUserWidths(HdStDrawItem* drawItem);
150 bool _SupportsUserNormals(HdStDrawItem* drawItem);
154 HdStDrawItem *drawItem,
155 HdDirtyBits *dirtyBits,
160 HdStDrawItem *drawItem,
165 bool updateMaterialShader,
166 bool updateGeometricShader);
169 HdSt_BasisCurvesTopologySharedPtr _topology;
170 HdTopology::ID _topologyId;
171 HdDirtyBits _customDirtyBitsInUse;
173 bool _displayOpacity : 1;
174 bool _occludedSelectionShowsThrough : 1;
178 PXR_NAMESPACE_CLOSE_SCOPE
180 #endif // PXR_IMAGING_HD_ST_BASIS_CURVES_H
HDST_API HdDirtyBits GetInitialDirtyBitsMask() const override
Returns the set of dirty bits that should be added to the change tracker for this prim...
The HdRenderParam is an opaque (to core Hydra) handle, to an object that is obtained from the render ...
Token for efficient comparison, assignment, and hashing of known strings.
Adapter class providing data exchange with the client scene graph.
Descriptor to configure a drawItem for a repr.
A collection of curves using a particular basis.
A path value used to locate objects in layers or scenegraphs.
HDST_API void Finalize(HdRenderParam *renderParam) override
Finalizes object resources.
HDST_API void Sync(HdSceneDelegate *delegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits, TfToken const &reprToken) override
Pull invalidated scene data and prepare/update the renderable representation.
HDST_API HdDirtyBits _PropagateDirtyBits(HdDirtyBits bits) const override
This callback from Rprim gives the prim an opportunity to set additional dirty bits based on those al...
HDST_API void _InitRepr(TfToken const &reprToken, HdDirtyBits *dirtyBits) override
Initialize the given representation of this Rprim.
Hydra Schema for a collection of curves using a particular basis.