Open3D (C++ API)  0.17.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-2023 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 visualization {
22
23namespace gui {
24struct Theme;
25}
26
27class GuiVisualizer : public gui::Window {
28 using Super = gui::Window;
29
30public:
31 GuiVisualizer(const std::string& title, int width, int height);
32 GuiVisualizer(const std::vector<std::shared_ptr<const geometry::Geometry>>&
33 geometries,
34 const std::string& title,
35 int width,
36 int height,
37 int left,
38 int top);
39 virtual ~GuiVisualizer();
40
41 void SetTitle(const std::string& title);
42 void SetGeometry(std::shared_ptr<const geometry::Geometry> geometry,
43 bool loaded_model);
44
45 bool SetIBL(const char* path);
46
48 void LoadGeometry(const std::string& path);
49
50 void ExportCurrentImage(const std::string& path);
51
52 void Layout(const gui::LayoutContext& context) override;
53
55 void StartRPCInterface(const std::string& address, int timeout);
56
57 void StopRPCInterface();
58
59protected:
60 // Add custom items to the application menu (only relevant on macOS)
62 const std::vector<std::pair<std::string, gui::Menu::ItemId>>&
63 items);
64
65 void OnMenuItemSelected(gui::Menu::ItemId item_id) override;
66 void OnDragDropped(const char* path) override;
67
68private:
69 struct Impl;
70 std::unique_ptr<Impl> impl_;
71
72 void Init();
73};
74
75} // namespace visualization
76} // namespace open3d
ImGuiContext * context
Definition Window.cpp:76
Definition GuiVisualizer.h:27
void LoadGeometry(const std::string &path)
Loads asynchronously, will return immediately.
Definition GuiVisualizer.cpp:1120
virtual ~GuiVisualizer()
Definition GuiVisualizer.cpp:966
void OnDragDropped(const char *path) override
Definition GuiVisualizer.cpp:1351
void Layout(const gui::LayoutContext &context) override
Definition GuiVisualizer.cpp:1071
void StopRPCInterface()
Definition GuiVisualizer.cpp:1112
void ExportCurrentImage(const std::string &path)
Definition GuiVisualizer.cpp:1223
void AddItemsToAppMenu(const std::vector< std::pair< std::string, gui::Menu::ItemId > > &items)
Definition GuiVisualizer.cpp:972
void StartRPCInterface(const std::string &address, int timeout)
Starts the RPC interface. See io/rpc/ZMQReceiver for the parameters.
Definition GuiVisualizer.cpp:1101
void SetTitle(const std::string &title)
Definition GuiVisualizer.cpp:968
void SetGeometry(std::shared_ptr< const geometry::Geometry > geometry, bool loaded_model)
Definition GuiVisualizer.cpp:988
bool SetIBL(const char *path)
Definition GuiVisualizer.cpp:1114
void OnMenuItemSelected(gui::Menu::ItemId item_id) override
Definition GuiVisualizer.cpp:1237
int ItemId
Definition MenuBase.h:28
int width
Definition FilePCD.cpp:52
int height
Definition FilePCD.cpp:53
Definition PinholeCameraIntrinsic.cpp:16
Definition GuiVisualizer.cpp:312