36 #include <GLFW/glfw3.h> 39 #include <unordered_map> 40 #include <unordered_set> 55 namespace visualization {
60 bool is_mouse_left_button_down =
false;
61 bool is_mouse_middle_button_down =
false;
62 bool is_control_key_down =
false;
63 bool is_shift_key_down =
false;
64 bool is_alt_key_down =
false;
65 bool is_super_key_down =
false;
66 double mouse_position_x = 0.0;
67 double mouse_position_y = 0.0;
80 bool CreateVisualizerWindow(
const std::string &window_name =
"Open3D",
81 const int width = 640,
85 const bool visible =
true);
89 void DestroyVisualizerWindow();
93 void RegisterAnimationCallback(
94 std::function<
bool(
Visualizer *)> callback_func);
123 virtual bool AddGeometry(
124 std::shared_ptr<const geometry::Geometry> geometry_ptr,
125 bool reset_bounding_box =
true);
133 virtual bool RemoveGeometry(
134 std::shared_ptr<const geometry::Geometry> geometry_ptr,
135 bool reset_bounding_box =
true);
140 virtual bool ClearGeometries();
147 virtual bool UpdateGeometry(
148 std::shared_ptr<const geometry::Geometry> geometry_ptr =
nullptr);
149 virtual bool HasGeometry()
const;
152 virtual void UpdateRender();
154 virtual void PrintVisualizerHelp();
155 virtual void UpdateWindowTitle();
156 virtual void BuildUtilities();
160 std::shared_ptr<geometry::Image> CaptureScreenFloatBuffer(
161 bool do_render =
true);
162 void CaptureScreenImage(
const std::string &filename =
"",
163 bool do_render =
true);
164 std::shared_ptr<geometry::Image> CaptureDepthFloatBuffer(
165 bool do_render =
true);
166 void CaptureDepthImage(
const std::string &filename =
"",
167 bool do_render =
true,
168 double depth_scale = 1000.0);
169 void CaptureDepthPointCloud(
const std::string &filename =
"",
170 bool do_render =
true,
171 bool convert_to_world_coordinate =
false);
172 void CaptureRenderOption(
const std::string &filename =
"");
173 void ResetViewPoint(
bool reset_bounding_box =
false);
179 virtual bool InitOpenGL();
182 virtual bool InitViewControl();
185 virtual bool InitRenderOption();
190 virtual void Render();
192 void CopyViewStatusToClipboard();
194 void CopyViewStatusFromClipboard();
197 virtual void WindowRefreshCallback(GLFWwindow *window);
198 virtual void WindowResizeCallback(GLFWwindow *window,
int w,
int h);
199 virtual void MouseMoveCallback(GLFWwindow *window,
double x,
double y);
200 virtual void MouseScrollCallback(GLFWwindow *window,
double x,
double y);
201 virtual void MouseButtonCallback(GLFWwindow *window,
205 virtual void KeyPressCallback(
206 GLFWwindow *window,
int key,
int scancode,
int action,
int mods);
207 virtual void WindowCloseCallback(GLFWwindow *window);
211 GLFWwindow *window_ = NULL;
212 std::string window_name_ =
"Open3D";
213 std::function<bool(Visualizer *)> animation_callback_func_ =
nullptr;
218 std::function<bool(Visualizer *)> animation_callback_func_in_loop_ =
223 bool is_redraw_required_ =
true;
224 bool is_initialized_ =
false;
234 std::unordered_set<std::shared_ptr<const geometry::Geometry>>
238 std::unordered_set<std::shared_ptr<glsl::GeometryRenderer>>
248 std::unordered_map<std::shared_ptr<glsl::GeometryRenderer>,
RenderOption>
253 std::shared_ptr<glsl::CoordinateFrameRenderer>
260 double pixel_to_screen_coordinate_ = 1.0;
std::vector< std::shared_ptr< const geometry::Geometry > > utility_ptrs_
Definition: Visualizer.h:242
std::vector< std::shared_ptr< glsl::GeometryRenderer > > utility_renderer_ptrs_
Definition: Visualizer.h:245
std::unordered_set< std::shared_ptr< glsl::GeometryRenderer > > geometry_renderer_ptrs_
Definition: Visualizer.h:239
RenderOption & GetRenderOption()
Definition: Visualizer.h:159
Definition: ViewControl.h:38
std::shared_ptr< glsl::CoordinateFrameRenderer > coordinate_frame_mesh_renderer_ptr_
Definition: Visualizer.h:254
std::unique_ptr< RenderOption > render_option_ptr_
Definition: Visualizer.h:231
std::shared_ptr< geometry::TriangleMesh > coordinate_frame_mesh_ptr_
Definition: Visualizer.h:252
ViewControl & GetViewControl()
Definition: Visualizer.h:158
Definition: RenderOption.h:36
std::unique_ptr< ViewControl > view_control_ptr_
Definition: Visualizer.h:228
GLuint vao_id_
Definition: Visualizer.h:225
std::unordered_set< std::shared_ptr< const geometry::Geometry > > geometry_ptrs_
Definition: Visualizer.h:235
const std::string & GetWindowName() const
Definition: Visualizer.h:175
Definition: PinholeCameraIntrinsic.cpp:34
Definition: Visualizer.h:56
MouseControl mouse_control_
Definition: Visualizer.h:222
Definition: Visualizer.h:58
int height
Definition: FilePCD.cpp:69
std::unordered_map< std::shared_ptr< glsl::GeometryRenderer >, RenderOption > utility_renderer_opts_
Definition: Visualizer.h:249
int width
Definition: FilePCD.cpp:68