Open3D (C++ API)  0.19.0
Loading...
Searching...
No Matches
GuiVisualizer.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 <vector>
11
13
14namespace open3d {
15
16namespace geometry {
17class AxisAlignedBoundingBox;
18class Geometry;
19} // namespace geometry
20
21namespace t {
22namespace geometry {
23class Geometry;
24} // namespace geometry
25} // namespace t
26
27namespace visualization {
28
29namespace gui {
30struct Theme;
31}
32
33class GuiVisualizer : public gui::Window {
34 using Super = gui::Window;
35
36public:
37 GuiVisualizer(const std::string& title, int width, int height);
38 GuiVisualizer(const std::vector<std::shared_ptr<const geometry::Geometry>>&
39 geometries,
40 const std::string& title,
41 int width,
42 int height,
43 int left,
44 int top);
45 virtual ~GuiVisualizer();
46
47 void SetTitle(const std::string& title);
48 void SetGeometry(std::shared_ptr<const geometry::Geometry> geometry,
49 bool loaded_model);
50 void SetGeometry(std::shared_ptr<const t::geometry::Geometry> geometry,
51 bool loaded_model);
52
53 bool SetIBL(const char* path);
54
56 void LoadGeometry(const std::string& path);
57
58 void ExportCurrentImage(const std::string& path);
59
60 void Layout(const gui::LayoutContext& context) override;
61
63 void StartRPCInterface(const std::string& address, int timeout);
64
65 void StopRPCInterface();
66
67protected:
68 // Add custom items to the application menu (only relevant on macOS)
70 const std::vector<std::pair<std::string, gui::Menu::ItemId>>&
71 items);
72
73 void OnMenuItemSelected(gui::Menu::ItemId item_id) override;
74 void OnDragDropped(const char* path) override;
75
76private:
77 struct Impl;
78 std::unique_ptr<Impl> impl_;
79
80 void Init();
81};
82
83} // namespace visualization
84} // namespace open3d
double t
Definition SurfaceReconstructionPoisson.cpp:172
ImGuiContext * context
Definition Window.cpp:99
Definition GuiVisualizer.h:33
void LoadGeometry(const std::string &path)
Loads asynchronously, will return immediately.
Definition GuiVisualizer.cpp:1153
virtual ~GuiVisualizer()
Definition GuiVisualizer.cpp:924
void OnDragDropped(const char *path) override
Definition GuiVisualizer.cpp:1421
void Layout(const gui::LayoutContext &context) override
Definition GuiVisualizer.cpp:1104
void StopRPCInterface()
Definition GuiVisualizer.cpp:1145
void ExportCurrentImage(const std::string &path)
Definition GuiVisualizer.cpp:1286
void AddItemsToAppMenu(const std::vector< std::pair< std::string, gui::Menu::ItemId > > &items)
Definition GuiVisualizer.cpp:930
void StartRPCInterface(const std::string &address, int timeout)
Starts the RPC interface. See io/rpc/ZMQReceiver for the parameters.
Definition GuiVisualizer.cpp:1134
void SetTitle(const std::string &title)
Definition GuiVisualizer.cpp:926
void SetGeometry(std::shared_ptr< const geometry::Geometry > geometry, bool loaded_model)
Definition GuiVisualizer.cpp:946
bool SetIBL(const char *path)
Definition GuiVisualizer.cpp:1147
void OnMenuItemSelected(gui::Menu::ItemId item_id) override
Definition GuiVisualizer.cpp:1300
int ItemId
Definition MenuBase.h:28
int width
Definition FilePCD.cpp:53
int height
Definition FilePCD.cpp:54
Definition PinholeCameraIntrinsic.cpp:16
Definition GuiVisualizer.cpp:265