LiangliangNan / Easy3D

A lightweight, easy-to-use, and efficient C++ library for processing and rendering 3D data
GNU General Public License v3.0
1.37k stars 245 forks source link

[Question] - Multi Window And Embedded Window #189

Closed vinsonws closed 3 months ago

vinsonws commented 3 months ago

motivation

I am currently planning to implement a raster data viewer using Easy3D and IMGUI. I hope its user interface is similar to QGIS. I am currently facing some problems:

1.How to embed the floating IMGUI window into the underlying Easy3D window?

Embed the sidebar in the bottom window, similar to the file explorer in many IDEs. image

2.How to make a floating IMGUI window a real window (or make the application a multi-window application)?

Currently there is only one Window, and it is easy to notice when the sidebar moves to the edge. image

After looking up the information, I found that the docking branch of IMGUI can realize the functions of multiple windows and embedded windows, but Easy3D should not be integrated with the docking branch of IMGUI. Can I only upgrade IMGUI to the docking branch?

Please give me some ideas for implementation, thank you!

LiangliangNan commented 3 months ago

Hi, I know very little about IMGUI, and I think your question can be better answered by an IMGUI expert.

I saw a project that has similar functionalities you need: https://github.com/xelatihy/yocto-gl/tree/main/libs/yocto I quickly went through its code, and I found that one has to precisely calculate the viewport for the viewer (based on panel and window sizes).

I am going to close this issue since is more about the use of IMGUI, but feel free to reopen it if you still have questions directly related to Easy3D.