7#ifndef PXR_IMAGING_HD_ST_BASIS_CURVES_H
8#define PXR_IMAGING_HD_ST_BASIS_CURVES_H
11#include "pxr/imaging/hdSt/api.h"
12#include "pxr/imaging/hd/version.h"
13#include "pxr/imaging/hd/basisCurves.h"
14#include "pxr/imaging/hd/drawingCoord.h"
15#include "pxr/imaging/hd/enums.h"
16#include "pxr/imaging/hd/perfLog.h"
18#include "pxr/usd/sdf/path.h"
23PXR_NAMESPACE_OPEN_SCOPE
26using HdSt_BasisCurvesTopologySharedPtr =
27 std::shared_ptr<class HdSt_BasisCurvesTopology>;
57 HF_MALLOC_TAG_NEW(
"new HdStBasisCurves");
72 HdDirtyBits *dirtyBits,
73 TfToken const &reprToken)
override;
94 HdDirtyBits *dirtyBitsState);
98 HdStDrawItem *drawItem,
99 HdDirtyBits *dirtyBits,
104 HdStDrawItem *drawItem,
105 HdDirtyBits *dirtyBits);
109 HdStDrawItem *drawItem,
110 HdDirtyBits *dirtyBits);
114 HdStDrawItem *drawItem,
115 HdDirtyBits *dirtyBits);
119 HullTopology = HdDrawingCoord::CustomSlotsBegin,
124 enum DirtyBits : HdDirtyBits {
125 DirtyIndices = HdChangeTracker::CustomBitsBegin,
126 DirtyHullIndices = (DirtyIndices << 1),
127 DirtyPointsIndices = (DirtyHullIndices << 1)
135 bool _basisWidthInterpolation =
false;
136 bool _basisNormalInterpolation =
false;
138 bool _SupportsRefinement(
int refineLevel);
139 bool _SupportsUserWidths(HdStDrawItem* drawItem);
140 bool _SupportsUserNormals(HdStDrawItem* drawItem);
144 HdStDrawItem *drawItem,
145 HdDirtyBits *dirtyBits,
150 HdStDrawItem *drawItem,
155 bool updateMaterialNetworkShader,
156 bool updateGeometricShader);
161 HdSt_BasisCurvesTopologySharedPtr _topology;
162 HdTopology::ID _topologyId;
163 HdDirtyBits _customDirtyBitsInUse;
165 bool _displayOpacity : 1;
166 bool _displayInOverlay : 1;
167 bool _occludedSelectionShowsThrough : 1;
168 bool _pointsShadingEnabled : 1;
172PXR_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.