Open3D (C++ API)  0.19.0
Draw.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.open3d.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <optional>
11 #include <vector>
12 
15 
16 namespace open3d {
17 namespace visualization {
18 
19 struct DrawObject {
20  std::string name;
21  std::shared_ptr<geometry::Geometry3D> geometry;
22  std::shared_ptr<t::geometry::Geometry> tgeometry;
23  std::shared_ptr<rendering::TriangleMeshModel> model;
25  std::string group;
26  double time = 0.0;
27  bool has_material = false;
28  bool is_visible;
29 
30  DrawObject(const std::string &n,
31  std::shared_ptr<geometry::Geometry3D> g,
32  bool vis = true);
33  DrawObject(const std::string &n,
34  std::shared_ptr<t::geometry::Geometry> tg,
35  bool vis = true);
36  DrawObject(const std::string &n,
37  std::shared_ptr<rendering::TriangleMeshModel> m,
38  bool vis = true);
39 };
40 
41 struct DrawAction {
42  std::string name;
44 };
45 
62 struct DrawConfig {
65  std::optional<Eigen::Vector3f> lookat;
67  std::optional<Eigen::Vector3f> eye;
69  std::optional<Eigen::Vector3f> up;
71  float field_of_view = 60.0f;
74  std::optional<Eigen::Matrix3d> intrinsic_matrix;
77  std::optional<Eigen::Matrix4d> extrinsic_matrix;
78 
81  std::optional<Eigen::Vector4f> bg_color;
83  std::shared_ptr<geometry::Image> bg_image;
84 
87  std::optional<std::string> ibl;
89  std::optional<float> ibl_intensity;
91  std::optional<bool> show_skybox;
92 
96  std::optional<bool> show_ui;
98  std::optional<bool> show_axes;
100  std::optional<bool> raw_mode;
101 
105  std::optional<float> near_plane;
108  std::optional<float> far_plane;
110  std::optional<int> point_size;
112  std::optional<int> line_width;
113 
116  double animation_time_step = 1.0;
119  std::optional<double> animation_duration;
120 
124  std::string rpc_interface;
125 
138  visualizer::O3DVisualizer &, double, double)>
140 
145 };
146 
179 std::string Draw(const std::vector<DrawObject> &objects,
180  const std::string &window_name = "Open3D",
181  int width = 1024,
182  int height = 768,
183  const std::vector<DrawAction> &actions = {},
184  const DrawConfig &config = DrawConfig());
185 
194 void Draw(const std::vector<std::shared_ptr<geometry::Geometry3D>> &geometries,
195  const std::string &window_name = "Open3D",
196  int width = 1024,
197  int height = 768,
198  const std::vector<DrawAction> &actions = {});
199 
208 void Draw(
209  const std::vector<std::shared_ptr<t::geometry::Geometry>> &tgeometries,
210  const std::string &window_name = "Open3D",
211  int width = 1024,
212  int height = 768,
213  const std::vector<DrawAction> &actions = {});
214 
223 void Draw(const std::vector<std::shared_ptr<rendering::TriangleMeshModel>>
224  &models,
225  const std::string &window_name = "Open3D",
226  int width = 1024,
227  int height = 768,
228  const std::vector<DrawAction> &actions = {});
229 
230 } // namespace visualization
231 } // namespace open3d
TickResult
Definition: O3DVisualizer.h:199
int width
Definition: FilePCD.cpp:52
int height
Definition: FilePCD.cpp:53
const char const char value recording_handle imu_sample void
Definition: K4aPlugin.cpp:250
void Draw(const std::vector< std::shared_ptr< geometry::Geometry3D >> &geometries, const std::string &window_name, int width, int height, const std::vector< DrawAction > &actions)
Definition: Draw.cpp:46
Definition: PinholeCameraIntrinsic.cpp:16
std::string name
Definition: Draw.h:42
std::function< void(visualizer::O3DVisualizer &)> callback
Definition: Draw.h:43
std::optional< int > line_width
3D line width (pixel count). Default: 2.
Definition: Draw.h:112
std::optional< Eigen::Vector3f > up
Camera up direction. Use with lookat and eye.
Definition: Draw.h:69
std::optional< std::string > ibl
Definition: Draw.h:87
std::optional< Eigen::Vector3f > lookat
Definition: Draw.h:65
std::function< visualizer::O3DVisualizer::TickResult(visualizer::O3DVisualizer &, double, double)> on_animation_tick
Definition: Draw.h:139
bool non_blocking_and_return_uid
Definition: Draw.h:144
std::optional< Eigen::Vector4f > bg_color
Definition: Draw.h:81
std::optional< bool > raw_mode
Use raw mode for simpler rendering of basic geometry. Default: false.
Definition: Draw.h:100
std::optional< bool > show_axes
Show world-space axes at the scene origin. Default: false.
Definition: Draw.h:98
std::optional< float > ibl_intensity
IBL intensity multiplier. Default: 1.0.
Definition: Draw.h:89
std::optional< Eigen::Matrix4d > extrinsic_matrix
Definition: Draw.h:77
std::optional< bool > show_skybox
Show skybox as scene background. Default: false.
Definition: Draw.h:91
double animation_time_step
Definition: Draw.h:116
std::optional< Eigen::Vector3f > eye
Camera location. Use with lookat and up.
Definition: Draw.h:67
float field_of_view
Camera horizontal field of view in degrees. Default: 60.0.
Definition: Draw.h:71
std::optional< bool > show_ui
Definition: Draw.h:96
std::string rpc_interface
Definition: Draw.h:124
std::shared_ptr< geometry::Image > bg_image
Background image. If specified, overrides bg_color.
Definition: Draw.h:83
std::function< void(visualizer::O3DVisualizer &)> on_init
Definition: Draw.h:129
std::optional< float > far_plane
Definition: Draw.h:108
std::function< void(visualizer::O3DVisualizer &, double)> on_animation_frame
Definition: Draw.h:132
std::optional< Eigen::Matrix3d > intrinsic_matrix
Definition: Draw.h:74
std::optional< float > near_plane
Definition: Draw.h:105
std::optional< int > point_size
3D point size (pixel count). Default: 3.
Definition: Draw.h:110
std::optional< double > animation_duration
Definition: Draw.h:119
bool is_visible
Definition: Draw.h:28
bool has_material
Definition: Draw.h:27
double time
Definition: Draw.h:26
rendering::MaterialRecord material
Definition: Draw.h:24
std::shared_ptr< t::geometry::Geometry > tgeometry
Definition: Draw.h:22
std::string group
Definition: Draw.h:25
std::shared_ptr< geometry::Geometry3D > geometry
Definition: Draw.h:21
std::string name
Definition: Draw.h:20
DrawObject(const std::string &n, std::shared_ptr< geometry::Geometry3D > g, bool vis=true)
Definition: Draw.cpp:21
std::shared_ptr< rendering::TriangleMeshModel > model
Definition: Draw.h:23