36 #include <GLFW/glfw3.h>
41 #include <unordered_map>
42 #include <unordered_set>
57 namespace visualization {
95 const int width = 640,
99 const bool visible =
true);
112 std::function<
bool(
Visualizer *)> callback_func);
150 std::shared_ptr<const geometry::Geometry> geometry_ptr,
151 bool reset_bounding_box =
true);
163 std::shared_ptr<const geometry::Geometry> geometry_ptr,
164 bool reset_bounding_box =
true);
178 std::shared_ptr<const geometry::Geometry> geometry_ptr =
nullptr);
201 bool do_render =
true);
207 bool do_render =
true);
212 bool do_render =
true);
219 bool do_render =
true,
220 double depth_scale = 1000.0);
228 bool do_render =
true,
229 bool convert_to_world_coordinate =
false);
249 virtual void Render(
bool render_screen =
false);
265 GLFWwindow *window,
int key,
int scancode,
int action,
int mods);
302 std::unordered_set<std::shared_ptr<const geometry::Geometry>>
306 std::unordered_set<std::shared_ptr<glsl::GeometryRenderer>>
316 std::unordered_map<std::shared_ptr<glsl::GeometryRenderer>,
RenderOption>
321 std::shared_ptr<glsl::CoordinateFrameRenderer>
328 double pixel_to_screen_coordinate_ = 1.0;
Defines rendering options for visualizer.
Definition: RenderOption.h:39
View controller for visualizer.
Definition: ViewControl.h:41
The main Visualizer class.
Definition: Visualizer.h:62
void CaptureRenderOption(const std::string &filename="")
Definition: VisualizerRender.cpp:499
RenderOption & GetRenderOption()
Function to retrieve the associated RenderOption.
Definition: Visualizer.h:196
bool CreateVisualizerWindow(const std::string &window_name="Open3D", const int width=640, const int height=480, const int left=50, const int top=50, const bool visible=true)
Function to create a window and initialize GLFW.
Definition: Visualizer.cpp:90
virtual void BuildUtilities()
Definition: Visualizer.cpp:250
std::unique_ptr< RenderOption > render_option_ptr_
Definition: Visualizer.h:299
virtual void SetFullScreen(bool fullscreen)
Functions to change between fullscreen and windowed modes.
Definition: Visualizer.cpp:462
virtual bool ClearGeometries()
Definition: Visualizer.cpp:434
bool is_initialized_
Definition: Visualizer.h:286
std::unique_ptr< ViewControl > view_control_ptr_
Definition: Visualizer.h:296
GLuint vao_id_
Definition: Visualizer.h:287
GLuint render_fbo_
Definition: Visualizer.h:291
bool PollEvents()
Definition: Visualizer.cpp:302
void CaptureDepthImage(const std::string &filename="", bool do_render=true, double depth_scale=1000.0)
Definition: VisualizerRender.cpp:334
GLuint render_depth_stencil_rbo_
Definition: Visualizer.h:293
std::vector< std::shared_ptr< const geometry::Geometry > > utility_ptrs_
Definition: Visualizer.h:310
virtual void UpdateRender()
Function to inform render needed to be updated.
Definition: Visualizer.cpp:458
std::function< bool(Visualizer *)> animation_callback_func_in_loop_
Definition: Visualizer.h:280
Eigen::Vector2i saved_window_pos_
Definition: Visualizer.h:274
void CaptureDepthPointCloud(const std::string &filename="", bool do_render=true, bool convert_to_world_coordinate=false)
Function to capture and save local point cloud.
Definition: VisualizerRender.cpp:417
virtual bool InitOpenGL()
Function to initialize OpenGL.
Definition: VisualizerRender.cpp:42
virtual bool IsFullScreen()
Definition: Visualizer.cpp:490
Visualizer(const Visualizer &)=delete
void CaptureScreenImage(const std::string &filename="", bool do_render=true)
Function to capture and save a screen image.
Definition: VisualizerRender.cpp:216
void Run()
Function to activate the window.
Definition: Visualizer.cpp:268
virtual bool UpdateGeometry(std::shared_ptr< const geometry::Geometry > geometry_ptr=nullptr)
Function to update geometry.
Definition: Visualizer.cpp:444
std::shared_ptr< glsl::CoordinateFrameRenderer > coordinate_frame_mesh_renderer_ptr_
Definition: Visualizer.h:322
virtual bool AddGeometry(std::shared_ptr< const geometry::Geometry > geometry_ptr, bool reset_bounding_box=true)
Function to add geometry to the scene and create corresponding shaders.
Definition: Visualizer.cpp:315
Visualizer(Visualizer &&)=delete
virtual void MouseMoveCallback(GLFWwindow *window, double x, double y)
Definition: VisualizerCallback.cpp:44
virtual void Render(bool render_screen=false)
Definition: VisualizerRender.cpp:72
virtual void WindowResizeCallback(GLFWwindow *window, int w, int h)
Definition: VisualizerCallback.cpp:39
ViewControl & GetViewControl()
Function to retrieve the associated ViewControl.
Definition: Visualizer.h:194
std::unordered_map< std::shared_ptr< glsl::GeometryRenderer >, RenderOption > utility_renderer_opts_
Definition: Visualizer.h:317
virtual void WindowCloseCallback(GLFWwindow *window)
Function to notify the window to be closed.
Definition: VisualizerCallback.cpp:365
std::shared_ptr< geometry::Image > CaptureDepthFloatBuffer(bool do_render=true)
Definition: VisualizerRender.cpp:270
virtual bool InitViewControl()
Function to initialize ViewControl.
Definition: Visualizer.cpp:233
bool WaitEvents()
Function to process the event queue and return if the window is closed.
Definition: Visualizer.cpp:289
virtual bool InitRenderOption()
Function to initialize RenderOption.
Definition: Visualizer.cpp:239
std::unordered_set< std::shared_ptr< const geometry::Geometry > > geometry_ptrs_
Definition: Visualizer.h:303
std::string window_name_
Definition: Visualizer.h:272
virtual void MouseButtonCallback(GLFWwindow *window, int button, int action, int mods)
Definition: VisualizerCallback.cpp:87
const std::string & GetWindowName() const
Definition: Visualizer.h:234
void CopyViewStatusFromClipboard()
Definition: VisualizerRender.cpp:162
virtual ~Visualizer()
Definition: Visualizer.cpp:83
void DestroyVisualizerWindow()
Function to destroy a window.
Definition: Visualizer.cpp:222
std::vector< std::shared_ptr< glsl::GeometryRenderer > > utility_renderer_ptrs_
Definition: Visualizer.h:313
virtual bool RemoveGeometry(std::shared_ptr< const geometry::Geometry > geometry_ptr, bool reset_bounding_box=true)
Function to remove geometry from the scene.
Definition: Visualizer.cpp:410
virtual void MouseScrollCallback(GLFWwindow *window, double x, double y)
Definition: VisualizerCallback.cpp:82
GLuint render_rgb_tex_
Definition: Visualizer.h:292
virtual void UpdateWindowTitle()
Definition: Visualizer.cpp:244
void RegisterAnimationCallback(std::function< bool(Visualizer *)> callback_func)
Function to register a callback function for animation.
Definition: Visualizer.cpp:228
std::function< bool(Visualizer *)> animation_callback_func_
Definition: Visualizer.h:275
virtual void WindowRefreshCallback(GLFWwindow *window)
Definition: VisualizerCallback.cpp:32
Eigen::Vector2i saved_window_size_
Definition: Visualizer.h:273
virtual void ToggleFullScreen()
Definition: Visualizer.cpp:482
MouseControl mouse_control_
Definition: Visualizer.h:284
GLFWwindow * window_
Definition: Visualizer.h:271
virtual void PrintVisualizerHelp()
Definition: Visualizer.cpp:494
void Close()
Function to to notify the window to be closed.
Definition: Visualizer.cpp:284
std::shared_ptr< geometry::TriangleMesh > coordinate_frame_mesh_ptr_
Definition: Visualizer.h:320
std::shared_ptr< geometry::Image > CaptureScreenFloatBuffer(bool do_render=true)
Function to capture screen and store RGB in a float buffer.
Definition: VisualizerRender.cpp:179
virtual bool HasGeometry() const
Definition: Visualizer.cpp:460
bool is_redraw_required_
Definition: Visualizer.h:285
Visualizer()
Definition: Visualizer.cpp:81
virtual void KeyPressCallback(GLFWwindow *window, int key, int scancode, int action, int mods)
Definition: VisualizerCallback.cpp:121
std::unordered_set< std::shared_ptr< glsl::GeometryRenderer > > geometry_renderer_ptrs_
Definition: Visualizer.h:307
Visualizer & operator=(const Visualizer &)=delete
void CopyViewStatusToClipboard()
Definition: VisualizerRender.cpp:148
void ResetViewPoint(bool reset_bounding_box=false)
Function to reset view point.
Definition: VisualizerRender.cpp:129
Definition: PinholeCameraIntrinsic.cpp:35
Definition: Visualizer.h:64
double mouse_position_x
Definition: Visualizer.h:72
bool is_control_key_down
Definition: Visualizer.h:68
bool is_mouse_left_button_down
Definition: Visualizer.h:66
double mouse_position_y
Definition: Visualizer.h:73
bool is_mouse_middle_button_down
Definition: Visualizer.h:67
bool is_super_key_down
Definition: Visualizer.h:71
bool is_shift_key_down
Definition: Visualizer.h:69
bool is_alt_key_down
Definition: Visualizer.h:70