In GSoC 2018, I joined at 3DTK, and my project was "Replacing the glui GUI with a Qt5 GUI". This project detail can be confirmed here.
-
Implement new features
- Add and delete cameras
I added a widget to add and delete cameras. (r1768, r1856, r1857) - View mode widget and rotation mode
A widget for view mode is added. In show and qtshow, I also implemented a new view mode (rotation mode) that allows one to turn/rotate the model instead of flying through the scene. (r1791, r1794, r1796, r1809, r1845) - Signal handling
I replacedsignal
withsigaction
in show, and I added a signal handling in qtshow. (r1815, r1816, r1835) - Fullscreen feature like show
I implemented the same feature of fullscreen as show. If you add new widgets, you should implement to hide/show the widget inMainWindow::hideDockWidgets
andMainWindow::showDockWidgets
. (r1819) - Navigation mode
I implemented the new buttons which can control camera viewpoint on one direction by dragging and dropping like Move X, Y, Z in show. In addition, I added the widget for this buttons. (r1826) - Save/Load state
I implemented features to save/load state. I fixed program_options.cc in order to restore correctly rotation value. (r1830, r1834, r1836, r1838, r1843, r1854, r1876, r1888) - Draw poses
I implemented a checkbox of 'Draw poses' in qtshow. In addition, I added 'no-poses' to configuration option and load/store this value from qtshow. (r1852, r1887) - Selection mode
I added a feature of selection. In qtshow, points can be selected/unselected using shift + mouse click. (r1864, r1871) - Advanced mode
I added advanced mode. (r1872, 1873) - Shortcuts dialog
I made a dialog which can confirm shortcuts in qtshow (menubar -> Help -> Show Shortcuts). (r1870) - Write qtshow settings to show.ini
When OK button in settings dialog is pressed, qtshow settings is wrote in show.ini. (1881) - 'scanscolored' options
'scanscolored' is added in configuration options and this value can be loaded/stored from qtshow. (1882)
- Add and delete cameras
-
Fix bugs
-
Colormap dropdown
I fixed colormap dropdown in order to work properly. The reason which colormap dropdown was not working well in qtshow was that zero texture was assigned to default texture of system in glut but not assigned in QGLWidget. (r1812) -
View mode and save images
I solved problems which only happen in qtshow as follows:- When view mode changes to rotation mode, screen becomes to black out.
- A function to save images doesn't work well.
In QOpenGLWidget, the standard OpenGL API should be called in initializeGL, paintGL, and resizeGL, basically. In qtshow, OpenGL APIs are also called from other places. Therefore, I added
makeCurrent()
before calling the APIs. QOpenGLWidget source code refers to why makeCurrent needs to be added in this case. (r1848) -
Change CMakeLists.txt
In Qt5.11, qt5_use_mudles is obsolete, so I changed qt5_use_modules to target_link_libraries. (1849) -
Initial value of doubleSpinBoxFogDensity
I set a correct initial value of doubleSpinBoxFogDensity. (r1853)
-
The diff file of my all changes can be downloaded from here.