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"
40PXR_NAMESPACE_OPEN_SCOPE
43using 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;
188PXR_NAMESPACE_CLOSE_SCOPE
Hydra Schema for a collection of curves using a particular basis.
The HdRenderParam is an opaque (to core Hydra) handle, to an object that is obtained from the render ...
Adapter class providing data exchange with the client scene graph.
A collection of curves using a particular basis.
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.
HDST_API HdDirtyBits GetInitialDirtyBitsMask() const override
Returns the set of dirty bits that should be added to the change tracker for this prim,...
HDST_API TfTokenVector const & GetBuiltinPrimvarNames() const override
Returns the names of built-in primvars, i.e.
HDST_API void Finalize(HdRenderParam *renderParam) override
Finalizes object resources.
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.
Descriptor to configure a drawItem for a repr.
std::vector< TfToken > TfTokenVector
Convenience types.