HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
points.h
Go to the documentation of this file.
1 //
2 // Copyright 2016 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_IMAGING_HD_ST_POINTS_H
8 #define PXR_IMAGING_HD_ST_POINTS_H
9 
10 #include "pxr/pxr.h"
11 #include "pxr/imaging/hdSt/api.h"
12 #include "pxr/imaging/hd/version.h"
14 #include "pxr/imaging/hd/enums.h"
15 #include "pxr/imaging/hd/perfLog.h"
16 #include "pxr/imaging/hd/points.h"
17 
18 #include "pxr/usd/sdf/path.h"
19 #include "pxr/base/vt/array.h"
20 
22 
23 /// \class HdStPoints
24 ///
25 /// Points.
26 ///
27 class HdStPoints final : public HdPoints
28 {
29 public:
30  HF_MALLOC_TAG_NEW("new HdStPoints");
31 
32  HDST_API
33  HdStPoints(SdfPath const& id);
34 
35  HDST_API
36  ~HdStPoints() override;
37 
38  HDST_API
39  void UpdateRenderTag(HdSceneDelegate *delegate,
40  HdRenderParam *renderParam) override;
41 
42  HDST_API
43  void Sync(HdSceneDelegate *delegate,
44  HdRenderParam *renderParam,
45  HdDirtyBits *dirtyBits,
46  TfToken const &reprToken) override;
47 
48  HDST_API
49  void Finalize(HdRenderParam *renderParam) override;
50 
51  HDST_API
52  HdDirtyBits GetInitialDirtyBitsMask() const override;
53 
54 protected:
55  HDST_API
56  void _InitRepr(TfToken const &reprToken, HdDirtyBits *dirtyBits) override;
57 
58  HDST_API
59  HdDirtyBits _PropagateDirtyBits(HdDirtyBits bits) const override;
60 
61  void _UpdateRepr(HdSceneDelegate *sceneDelegate,
62  HdRenderParam *renderParam,
63  TfToken const &reprToken,
64  HdDirtyBits *dirtyBitsState);
65 
66  void _PopulateVertexPrimvars(HdSceneDelegate *sceneDelegate,
67  HdRenderParam *renderParam,
68  HdStDrawItem *drawItem,
69  HdDirtyBits *dirtyBitsState);
70 
71 private:
72  HdReprSharedPtr _smoothHullRepr;
73 
74  bool _displayOpacity;
75  bool _displayInOverlay;
76 
77  enum DrawingCoord {
78  InstancePrimvar = HdDrawingCoord::CustomSlotsBegin
79  };
80 
81  void _UpdateDrawItem(HdSceneDelegate *sceneDelegate,
82  HdRenderParam *renderParam,
83  HdStDrawItem *drawItem,
84  HdDirtyBits *dirtyBits);
85 
86  void _UpdateMaterialTagsForAllReprs(HdSceneDelegate *sceneDelegate,
87  HdRenderParam *renderParam);
88 };
89 
90 
92 
93 #endif // PXR_IMAGING_HD_ST_POINTS_H
static const int CustomSlotsBegin
Definition: drawingCoord.h:68
void _UpdateRepr(HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, TfToken const &reprToken, HdDirtyBits *dirtyBitsState)
uint32_t HdDirtyBits
Definition: types.h:143
HDST_API void _InitRepr(TfToken const &reprToken, HdDirtyBits *dirtyBits) override
std::shared_ptr< HdRepr > HdReprSharedPtr
Definition: rprim.h:30
HDST_API HdDirtyBits _PropagateDirtyBits(HdDirtyBits bits) const override
void _PopulateVertexPrimvars(HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdStDrawItem *drawItem, HdDirtyBits *dirtyBitsState)
HDST_API ~HdStPoints() override
Definition: token.h:70
HDST_API void Finalize(HdRenderParam *renderParam) override
HDST_API HdStPoints(SdfPath const &id)
Definition: path.h:273
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Definition: path.h:1425
#define HDST_API
Definition: api.h:23
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74
HF_MALLOC_TAG_NEW("new HdStPoints")
HDST_API void Sync(HdSceneDelegate *delegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits, TfToken const &reprToken) override
HDST_API void UpdateRenderTag(HdSceneDelegate *delegate, HdRenderParam *renderParam) override
HDST_API HdDirtyBits GetInitialDirtyBitsMask() const override