Skip to content

Instantly share code, notes, and snippets.

@b1ackturtle
Last active December 15, 2018 14:19
Show Gist options
  • Save b1ackturtle/6507745a4015d3b602985031e6bab3eb to your computer and use it in GitHub Desktop.
Save b1ackturtle/6507745a4015d3b602985031e6bab3eb to your computer and use it in GitHub Desktop.
GSoC 2018 Final Report

GSoC2018 Final Report

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.

What was done

  • 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 replaced signal with sigaction 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 in MainWindow::hideDockWidgets and MainWindow::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)
  • 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)

Others

The diff file of my all changes can be downloaded from here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment