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");
89 HdDirtyBits *dirtyBits,
90 TfToken const &reprToken)
override;
111 HdDirtyBits *dirtyBitsState);
115 HdStDrawItem *drawItem,
116 HdDirtyBits *dirtyBits,
121 HdStDrawItem *drawItem,
122 HdDirtyBits *dirtyBits);
126 HdStDrawItem *drawItem,
127 HdDirtyBits *dirtyBits);
131 HdStDrawItem *drawItem,
132 HdDirtyBits *dirtyBits);
136 HullTopology = HdDrawingCoord::CustomSlotsBegin,
141 enum DirtyBits : HdDirtyBits {
142 DirtyIndices = HdChangeTracker::CustomBitsBegin,
143 DirtyHullIndices = (DirtyIndices << 1),
144 DirtyPointsIndices = (DirtyHullIndices << 1)
152 bool _basisWidthInterpolation =
false;
153 bool _basisNormalInterpolation =
false;
155 bool _SupportsRefinement(
int refineLevel);
156 bool _SupportsUserWidths(HdStDrawItem* drawItem);
157 bool _SupportsUserNormals(HdStDrawItem* drawItem);
161 HdStDrawItem *drawItem,
162 HdDirtyBits *dirtyBits,
167 HdStDrawItem *drawItem,
172 bool updateMaterialNetworkShader,
173 bool updateGeometricShader);
178 HdSt_BasisCurvesTopologySharedPtr _topology;
179 HdTopology::ID _topologyId;
180 HdDirtyBits _customDirtyBitsInUse;
182 bool _displayOpacity : 1;
183 bool _occludedSelectionShowsThrough : 1;
184 bool _pointsShadingEnabled : 1;
188 PXR_NAMESPACE_CLOSE_SCOPE
190 #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 ...
HDST_API TfTokenVector const & GetBuiltinPrimvarNames() const override
Returns the names of built-in primvars, i.e.
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.
std::vector< TfToken > TfTokenVector
Convenience types.
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.