Open3D (C++ API)  0.19.0
Loading...
Searching...
No Matches
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
16namespace open3d {
17namespace visualization {
18
19struct 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;
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
41struct DrawAction {
42 std::string name;
43 std::function<void(visualizer::O3DVisualizer &)> callback;
44};
45
62struct 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
119 std::optional<double> animation_duration;
120
124 std::string rpc_interface;
125
129 std::function<void(visualizer::O3DVisualizer &)> on_init;
132 std::function<void(visualizer::O3DVisualizer &, double)> on_animation_frame;
138 visualizer::O3DVisualizer &, double, double)>
140
145};
146
179std::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
194void 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
208void 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
223void 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:203
int width
Definition FilePCD.cpp:53
int height
Definition FilePCD.cpp:54
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
std::shared_ptr< rendering::TriangleMeshModel > model
Definition Draw.h:23