Open3D (C++ API)  0.19.0
Loading...
Searching...
No Matches
VisualizerWithKeyCallback.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 <map>
11
13
14namespace open3d {
15namespace visualization {
16
21public:
22 typedef std::pair<int, std::function<bool(Visualizer *)>> KeyCallbackPair;
23
24public:
30 delete;
31
32public:
33 void PrintVisualizerHelp() override;
34 void RegisterKeyCallback(int key,
35 std::function<bool(Visualizer *)> callback);
36
50 int key, std::function<bool(Visualizer *, int, int)> callback);
51
61 std::function<bool(Visualizer *, double, double)> callback);
62
72 std::function<bool(Visualizer *, double, double)> callback);
73
84 std::function<bool(Visualizer *, int, int, int)> callback);
85
86protected:
87 void KeyPressCallback(GLFWwindow *window,
88 int key,
89 int scancode,
90 int action,
91 int mods) override;
92 void MouseMoveCallback(GLFWwindow *window, double x, double y) override;
93 void MouseScrollCallback(GLFWwindow *window, double x, double y) override;
94 void MouseButtonCallback(GLFWwindow *window,
95 int button,
96 int action,
97 int mods) override;
98 std::string PrintKeyToString(int key);
99
100protected:
101 std::map<int, std::function<bool(Visualizer *)>> key_to_callback_;
102 std::map<int, std::function<bool(Visualizer *, int, int)>>
104 std::function<bool(Visualizer *, double, double)> mouse_move_callback_;
105 std::function<bool(Visualizer *, double, double)> mouse_scroll_callback_;
106 std::function<bool(Visualizer *, int, int, int)> mouse_button_callback_;
107};
108
109} // namespace visualization
110} // namespace open3d
std::function< void(std::shared_ptr< core::Tensor >)> callback
Definition FilamentRenderer.cpp:182
The main Visualizer class.
Definition Visualizer.h:45
Visualizer with custom key callback capabilities.
Definition VisualizerWithKeyCallback.h:20
void RegisterMouseMoveCallback(std::function< bool(Visualizer *, double, double)> callback)
Definition VisualizerWithKeyCallback.cpp:48
std::map< int, std::function< bool(Visualizer *)> > key_to_callback_
Definition VisualizerWithKeyCallback.h:101
void RegisterKeyActionCallback(int key, std::function< bool(Visualizer *, int, int)> callback)
Definition VisualizerWithKeyCallback.cpp:43
std::function< bool(Visualizer *, int, int, int)> mouse_button_callback_
Definition VisualizerWithKeyCallback.h:106
VisualizerWithKeyCallback & operator=(const VisualizerWithKeyCallback &)=delete
std::function< bool(Visualizer *, double, double)> mouse_scroll_callback_
Definition VisualizerWithKeyCallback.h:105
VisualizerWithKeyCallback(const VisualizerWithKeyCallback &)=delete
void KeyPressCallback(GLFWwindow *window, int key, int scancode, int action, int mods) override
Definition VisualizerWithKeyCallback.cpp:63
void MouseMoveCallback(GLFWwindow *window, double x, double y) override
Definition VisualizerWithKeyCallback.cpp:88
void MouseScrollCallback(GLFWwindow *window, double x, double y) override
Definition VisualizerWithKeyCallback.cpp:101
std::pair< int, std::function< bool(Visualizer *)> > KeyCallbackPair
Definition VisualizerWithKeyCallback.h:22
void RegisterMouseButtonCallback(std::function< bool(Visualizer *, int, int, int)> callback)
Definition VisualizerWithKeyCallback.cpp:58
std::string PrintKeyToString(int key)
Definition VisualizerWithKeyCallback.cpp:128
void RegisterKeyCallback(int key, std::function< bool(Visualizer *)> callback)
Definition VisualizerWithKeyCallback.cpp:38
~VisualizerWithKeyCallback() override
Definition VisualizerWithKeyCallback.cpp:16
void MouseButtonCallback(GLFWwindow *window, int button, int action, int mods) override
Definition VisualizerWithKeyCallback.cpp:114
void PrintVisualizerHelp() override
Definition VisualizerWithKeyCallback.cpp:18
std::map< int, std::function< bool(Visualizer *, int, int)> > key_action_to_callback_
Definition VisualizerWithKeyCallback.h:103
std::function< bool(Visualizer *, double, double)> mouse_move_callback_
Definition VisualizerWithKeyCallback.h:104
VisualizerWithKeyCallback()
Default Constructor.
Definition VisualizerWithKeyCallback.cpp:14
void RegisterMouseScrollCallback(std::function< bool(Visualizer *, double, double)> callback)
Definition VisualizerWithKeyCallback.cpp:53
Definition PinholeCameraIntrinsic.cpp:16