Loading...
Searching...
No Matches
points.h
1//
2// Copyright 2016 Pixar
3//
4// Licensed under the Apache License, Version 2.0 (the "Apache License")
5// with the following modification; you may not use this file except in
6// compliance with the Apache License and the following modification to it:
7// Section 6. Trademarks. is deleted and replaced with:
8//
9// 6. Trademarks. This License does not grant permission to use the trade
10// names, trademarks, service marks, or product names of the Licensor
11// and its affiliates, except as required to comply with Section 4(c) of
12// the License and to reproduce the content of the NOTICE file.
13//
14// You may obtain a copy of the Apache License at
15//
16// http://www.apache.org/licenses/LICENSE-2.0
17//
18// Unless required by applicable law or agreed to in writing, software
19// distributed under the Apache License with the above modification is
20// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21// KIND, either express or implied. See the Apache License for the specific
22// language governing permissions and limitations under the Apache License.
23//
24#ifndef PXR_IMAGING_HD_ST_POINTS_H
25#define PXR_IMAGING_HD_ST_POINTS_H
26
27#include "pxr/pxr.h"
28#include "pxr/imaging/hdSt/api.h"
29#include "pxr/imaging/hd/version.h"
30#include "pxr/imaging/hd/drawingCoord.h"
31#include "pxr/imaging/hd/enums.h"
32#include "pxr/imaging/hd/perfLog.h"
33#include "pxr/imaging/hd/points.h"
34
35#include "pxr/usd/sdf/path.h"
36#include "pxr/base/vt/array.h"
37
38PXR_NAMESPACE_OPEN_SCOPE
39
44class HdStPoints final : public HdPoints
45{
46public:
47 HF_MALLOC_TAG_NEW("new HdStPoints");
48
49 HDST_API
50 HdStPoints(SdfPath const& id);
51
52 HDST_API
53 ~HdStPoints() override;
54
55 HDST_API
56 void UpdateRenderTag(HdSceneDelegate *delegate,
57 HdRenderParam *renderParam) override;
58
59 HDST_API
60 void Sync(HdSceneDelegate *delegate,
61 HdRenderParam *renderParam,
62 HdDirtyBits *dirtyBits,
63 TfToken const &reprToken) override;
64
65 HDST_API
66 void Finalize(HdRenderParam *renderParam) override;
67
68 HDST_API
69 HdDirtyBits GetInitialDirtyBitsMask() const override;
70
71protected:
72 HDST_API
73 void _InitRepr(TfToken const &reprToken, HdDirtyBits *dirtyBits) override;
74
75 HDST_API
76 HdDirtyBits _PropagateDirtyBits(HdDirtyBits bits) const override;
77
78 void _UpdateRepr(HdSceneDelegate *sceneDelegate,
79 HdRenderParam *renderParam,
80 TfToken const &reprToken,
81 HdDirtyBits *dirtyBitsState);
82
83 void _PopulateVertexPrimvars(HdSceneDelegate *sceneDelegate,
84 HdRenderParam *renderParam,
85 HdStDrawItem *drawItem,
86 HdDirtyBits *dirtyBitsState);
87
88private:
89 HdReprSharedPtr _smoothHullRepr;
90
91 bool _displayOpacity;
92
93 enum DrawingCoord {
94 InstancePrimvar = HdDrawingCoord::CustomSlotsBegin
95 };
96
97 void _UpdateDrawItem(HdSceneDelegate *sceneDelegate,
98 HdRenderParam *renderParam,
99 HdStDrawItem *drawItem,
100 HdDirtyBits *dirtyBits);
101
102 void _UpdateMaterialTagsForAllReprs(HdSceneDelegate *sceneDelegate,
103 HdRenderParam *renderParam);
104};
105
106
107PXR_NAMESPACE_CLOSE_SCOPE
108
109#endif // PXR_IMAGING_HD_ST_POINTS_H
Hydra Schema for a point cloud.
Definition: points.h:55
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.
Points.
Definition: points.h:45
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 void Finalize(HdRenderParam *renderParam) override
Finalizes object resources.
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:290
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:88