User:H1manshu/GSoC2022/Project Report


Project Report[edit]

  • Student: Himanshu Sekhar Nayak
  • Mentor: Dr.Daniel Roßberg
  • GSoC 2022 Project: New BRL-CAD GUI


  • In this project, we have created a new mouse action known as select mouse action in which we are able to select the object in a .g file and it will return region name with the properties which will be displayed in the properties dock and the object name will be shown selected in the objects dock of arbalest.
  • Also we have added a feature where the app will be able to show a dialog box if there are unsaved changes in the .g file before closing the tab or closing the app.
  • Created a new interface for mouse action so in the future if any new mouse action is to be added then it can take benefit from the interface.
  • Fixed some UI changes and added new icons.

What code got merged?[edit]

My major role was to fix issues in the project and add some new features and they are listed below with the link to PR:

  • Fixed properties docks, objects docks, and status bar. | PR #13
  • Fixed QApplication header and exec(). | PR #16
  • Added QToolButton and removed QPushButton. | PR #19
  • Revert back to use object name toolbarButton instead of new object names. | PR #20
  • Added icons for menu items and icon color for both light & dark themes. | PR #21
  • Added unsaved changes feature. | PR #23
  • Free memory after the tab gets closed. | PR #24
  • Switching tabs doesn't show values in properties dock. | PR #25
  • Added Apache license 2.0 to AboutWindow.cpp. | PR #28
  • Check if an object name is valid. | PR #36
  • Added MouseActions feature. | PR #38
  • Added select object feature using mouse action. | PR #40
  • Add expand item feature in object dock when region is clicked. | PR #45

What's left to do?[edit]

  • I am not able to start resizing primitive after an object is selected. The idea is to first the primitive will be selected through the select mouse feature then inside the Edit option click on the Scale option. Then click on any corner of the primitive and drag mouse to enlarge or shrink the primitive.
  • Also I am not able to give a start to extend the object-oriented C++ Geometry API which includes the C++ coreInterface & LIBGED.

What's next?[edit]

  • I am planning to port Arbalest to MOOSE where Moose will become the new API of the BRL-CAD core in the future. Moose is based on the C++ coreInterface work in rt^3.
  • Also I will start working on adding new features to Arbalest that I have discussed in my proposal which is left behind during GSoC. I will stick to the reported issues and try to fix those.
  • I will maintain the Arbalest repository and after that will work on Moose too.

Final Note[edit]

I'll wrap up by saying GSoC was a great experience where I learned and got so much exposure from BRL-CAD which I am forever grateful to my mentor and the developers of BRL-CAD. When I started GSoC, I was afraid of how to start with selecting an object and showing it in the objects and properties dock but my mentor is always there and always helped me whenever I am stuck or how to start. I salute my mentor from GCI 2019 till now, he is always there and I learned so many things from him starting from debugging and code evaluations. I always enjoyed my mentor's feedback and the discussions in the virtual meeting. Thanks to my mentor for giving me a chance and also to this organization which helped to build so many things.