Open3D (C++ API)
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
GeometryRenderer.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // The MIT License (MIT)
5 //
6 // Copyright (c) 2018 www.open3d.org
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to deal
10 // in the Software without restriction, including without limitation the rights
11 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 // copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
14 //
15 // The above copyright notice and this permission notice shall be included in
16 // all copies or substantial portions of the Software.
17 //
18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24 // IN THE SOFTWARE.
25 // ----------------------------------------------------------------------------
26 
27 #pragma once
28 
39 
40 namespace open3d {
41 namespace visualization {
42 
43 namespace glsl {
44 
46 public:
47  virtual ~GeometryRenderer() {}
48 
49 public:
50  virtual bool Render(const RenderOption &option,
51  const ViewControl &view) = 0;
52 
59  virtual bool AddGeometry(
60  std::shared_ptr<const geometry::Geometry> geometry_ptr) = 0;
61 
64  virtual bool UpdateGeometry() = 0;
65 
66  bool HasGeometry() const { return bool(geometry_ptr_); }
67  std::shared_ptr<const geometry::Geometry> GetGeometry() const {
68  return geometry_ptr_;
69  }
70 
71  bool IsVisible() const { return is_visible_; }
72  void SetVisible(bool visible) { is_visible_ = visible; };
73 
74 protected:
75  std::shared_ptr<const geometry::Geometry> geometry_ptr_;
76  bool is_visible_ = true;
77 };
78 
80 public:
81  ~PointCloudRenderer() override {}
82 
83 public:
84  bool Render(const RenderOption &option, const ViewControl &view) override;
85  bool AddGeometry(
86  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
87  bool UpdateGeometry() override;
88 
89 protected:
94 };
95 
97 public:
99 
100 public:
101  bool Render(const RenderOption &option, const ViewControl &view) override;
102  bool AddGeometry(
103  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
104  bool UpdateGeometry() override;
105 
106 protected:
108 };
109 
111 public:
112  ~LineSetRenderer() override {}
113 
114 public:
115  bool Render(const RenderOption &option, const ViewControl &view) override;
116  bool AddGeometry(
117  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
118  bool UpdateGeometry() override;
119 
120 protected:
122 };
123 
125 public:
126  ~TetraMeshRenderer() override {}
127 
128 public:
129  bool Render(const RenderOption &option, const ViewControl &view) override;
130  bool AddGeometry(
131  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
132  bool UpdateGeometry() override;
133 
134 protected:
136 };
137 
139 public:
141 
142 public:
143  bool Render(const RenderOption &option, const ViewControl &view) override;
144  bool AddGeometry(
145  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
146  bool UpdateGeometry() override;
147 
148 protected:
150 };
151 
153 public:
155 
156 public:
157  bool Render(const RenderOption &option, const ViewControl &view) override;
158  bool AddGeometry(
159  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
160  bool UpdateGeometry() override;
161 
162 protected:
165 };
166 
168 public:
169  ~TriangleMeshRenderer() override {}
170 
171 public:
172  bool Render(const RenderOption &option, const ViewControl &view) override;
173  bool AddGeometry(
174  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
175  bool UpdateGeometry() override;
176 
177 protected:
182 };
183 
185 public:
186  ~VoxelGridRenderer() override {}
187 
188 public:
189  bool Render(const RenderOption &option, const ViewControl &view) override;
190  bool AddGeometry(
191  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
192  bool UpdateGeometry() override;
193 
194 protected:
197 };
198 
200 public:
201  ~OctreeRenderer() override {}
202 
203 public:
204  bool Render(const RenderOption &option, const ViewControl &view) override;
205  bool AddGeometry(
206  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
207  bool UpdateGeometry() override;
208 
209 protected:
212 };
213 
215 public:
216  ~ImageRenderer() override {}
217 
218 public:
219  bool Render(const RenderOption &option, const ViewControl &view) override;
220  bool AddGeometry(
221  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
222  bool UpdateGeometry() override;
223 
224 protected:
226 };
227 
229 public:
230  ~RGBDImageRenderer() override {}
231 
232 public:
233  bool Render(const RenderOption &option, const ViewControl &view) override;
234  bool AddGeometry(
235  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
236  bool UpdateGeometry() override;
237 
238 protected:
240 };
241 
243 public:
245 
246 public:
247  bool Render(const RenderOption &option, const ViewControl &view) override;
248  bool AddGeometry(
249  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
250  bool UpdateGeometry() override;
251 
252 protected:
254 };
255 
257 public:
259 
260 public:
261  bool Render(const RenderOption &option, const ViewControl &view) override;
262  bool AddGeometry(
263  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
264  bool UpdateGeometry() override;
265 
266 protected:
269 };
270 
272 public:
274 
275 public:
276  bool Render(const RenderOption &option, const ViewControl &view) override;
277  bool AddGeometry(
278  std::shared_ptr<const geometry::Geometry> geometry_ptr) override;
279  bool UpdateGeometry() override;
280 
281 protected:
283 };
284 
285 } // namespace glsl
286 
287 } // namespace visualization
288 } // namespace open3d
~RGBDImageRenderer() override
Definition: GeometryRenderer.h:230
Definition: GeometryRenderer.h:124
PickingShaderForPointCloud picking_shader_
Definition: GeometryRenderer.h:107
Definition: GeometryRenderer.h:214
SimpleBlackShaderForPointCloudNormal simpleblack_normal_shader_
Definition: GeometryRenderer.h:93
SimpleShaderForOctreeLine simple_shader_for_octree_line_
Definition: GeometryRenderer.h:210
~CoordinateFrameRenderer() override
Definition: GeometryRenderer.h:244
~SelectionPolygonRenderer() override
Definition: GeometryRenderer.h:258
NormalShaderForTriangleMesh normal_mesh_shader_
Definition: GeometryRenderer.h:180
Definition: GeometryRenderer.h:45
SimpleShaderForOctreeFace simple_shader_for_octree_face_
Definition: GeometryRenderer.h:211
Definition: GeometryRenderer.h:228
PhongShaderForTriangleMesh phong_shader_
Definition: GeometryRenderer.h:253
virtual bool Render(const RenderOption &option, const ViewControl &view)=0
SimpleShaderForTetraMesh simple_tetramesh_shader_
Definition: GeometryRenderer.h:135
ImageMaskShaderForImage image_mask_shader_
Definition: GeometryRenderer.h:268
Definition: GeometryRenderer.h:79
RGBDImageShaderForImage rgbd_image_shader_
Definition: GeometryRenderer.h:239
SimpleShaderForLineSet simple_lineset_shader_
Definition: GeometryRenderer.h:121
std::shared_ptr< const geometry::Geometry > GetGeometry() const
Definition: GeometryRenderer.h:67
~PointCloudPickerRenderer() override
Definition: GeometryRenderer.h:273
Definition: ViewControl.h:38
SimpleShaderForVoxelGridFace simple_shader_for_voxel_grid_face_
Definition: GeometryRenderer.h:196
~PointCloudRenderer() override
Definition: GeometryRenderer.h:81
SimpleShaderForAxisAlignedBoundingBox simple_axis_aligned_bounding_box_shader_
Definition: GeometryRenderer.h:164
Definition: GeometryRenderer.h:167
Definition: GeometryRenderer.h:184
virtual bool AddGeometry(std::shared_ptr< const geometry::Geometry > geometry_ptr)=0
~TetraMeshRenderer() override
Definition: GeometryRenderer.h:126
PhongShaderForTriangleMesh phong_shader_
Definition: GeometryRenderer.h:282
~ImageRenderer() override
Definition: GeometryRenderer.h:216
Simple2DShaderForSelectionPolygon simple2d_shader_
Definition: GeometryRenderer.h:267
PhongShaderForPointCloud phong_point_shader_
Definition: GeometryRenderer.h:91
~LineSetRenderer() override
Definition: GeometryRenderer.h:112
Definition: RenderOption.h:36
PhongShaderForTriangleMesh phong_mesh_shader_
Definition: GeometryRenderer.h:179
NormalShaderForPointCloud normal_point_shader_
Definition: GeometryRenderer.h:92
bool HasGeometry() const
Definition: GeometryRenderer.h:66
~OrientedBoundingBoxRenderer() override
Definition: GeometryRenderer.h:140
~AxisAlignedBoundingBoxRenderer() override
Definition: GeometryRenderer.h:154
SimpleShaderForVoxelGridLine simple_shader_for_voxel_grid_line_
Definition: GeometryRenderer.h:195
bool IsVisible() const
Definition: GeometryRenderer.h:71
SimpleShaderForTriangleMesh simple_mesh_shader_
Definition: GeometryRenderer.h:178
Definition: PinholeCameraIntrinsic.cpp:34
Definition: GeometryRenderer.h:110
virtual ~GeometryRenderer()
Definition: GeometryRenderer.h:47
SimpleBlackShaderForTriangleMeshWireFrame simpleblack_wireframe_shader_
Definition: GeometryRenderer.h:181
SimpleShaderForOrientedBoundingBox simple_oriented_bounding_box_shader_
Definition: GeometryRenderer.h:149
std::shared_ptr< const geometry::Geometry > geometry_ptr_
Definition: GeometryRenderer.h:72
SimpleShaderForPointCloud simple_point_shader_
Definition: GeometryRenderer.h:90
void SetVisible(bool visible)
Definition: GeometryRenderer.h:72
~PointCloudPickingRenderer() override
Definition: GeometryRenderer.h:98
bool is_visible_
Definition: GeometryRenderer.h:76
~OctreeRenderer() override
Definition: GeometryRenderer.h:201
~TriangleMeshRenderer() override
Definition: GeometryRenderer.h:169
Definition: GeometryRenderer.h:199
ImageShaderForImage image_shader_
Definition: GeometryRenderer.h:225
~VoxelGridRenderer() override
Definition: GeometryRenderer.h:186