We all admit that BRL-CAD is wonderful software, but still new users faces a lot of problem due to its GUI (mged and Archer). I am trying remove this issue to make it browser based GUI. That demand for knowing more about current implementation, options available and what suits to road-map of BRL-CAD.
I summarized my findings and struggle on my blog. Please take a look: http://singhharman.wordpress.com/ under topic "'Rise of OpenGL' and Qt". Today we have OpenGL, an industry standard cross-language, multi-platform API for rendering 2D and 3D computer graphics, widely used in CAD, flight simulation, and video games; and Qt, a cross-platform complete development framework with tools designed to streamline the creation of stunning native applications and amazing user interfaces for desktop, embedded and mobile platforms. OpenGL is fully capable of visualizing geometry. Qt provides support for integration with OpenGL implementations on all platforms, giving developers the opportunity to display hardware accelerated 3D graphics alongside a more conventional user interface. Just imagine, if we successfully exploit this opportunity of combining both, then we can take out a new outstanding GUI for BRL-CAD. As long as BRL-CAD's analysis and other mathematical computations are concerned, we can easily use existing code of BRL-CAD and merge with new code, giving to our new proposed GUI, the capability of performing same analysis work as currently performed by BRL-CAD. For example, OpenGL can gracefully visualize a sphere. But it may not be capable to show the cross section. For such cases, we can use BRL-CAD's existing functions that compute cross-section, and pass their result to OpenGL functions to render the cross section. Once we succeed to achieve above mentioned target, it is possible to shift BRL-CAD's all(or most of) functionality to this new GUI making itself a new BRL-CAD. In this way, we will keep on depreciating obsolete code that demand much maintenance efforts and moving useful code to this new system. For example, Canonical has recently publicly confirmed that they are working on a new cross-platform displayer server for Ubuntu. They said, Currently Ubuntu uses X. X is efficient at doing what it does but it has a problem: it is built upon code that’s almost 30 years old. A mature code-base brings with it legacy support for features and functions that are no longer needed on modern desktops, much less phones and tablets. Following are some of the prominent features that this proposed system is promised to deliver: 1. Since we will be using openGL and Qt, both are cross platform tools, so this will solve the problem of being platform independent. This will also reduce the maintenance efforts to keep alive BRL-CAD on different platforms. 2. Although I am not sure how much time and effort is required to add a primitive in BRL-CAD, but I can take an idea from previous and current GSoC projects whose purpose was to add an entity or primitive, that this task need significant efforts and time. In the new proposed GUI it is easy to add primitive atleast upto the visualization aspect. 3. Currently we have MGED a GUI of BRL-CAD. But we all know that it lacks attractiveness and user friendliness that every graphical software must possess. Also we are now putting our efforts on Archer, the new GUI of BRL-CAD, but still it lagging far behind from the day when it will be fully available for production use. Both these GUIs are Tcl/Tk based. Why not using Qt, a framework to make amazing user interfaces. Moreover, we can think to acquire already made GUI from similar software, for example, FreeCAD has its GUI in Qt, and FreeCAD is itself a 3D modeling software, so we can also work in this direction in order to reduce our efforts. 4. Finally we will get rid of wireframes. However, we will be able to easily enable or disable shaded geometry or vice versa. 5. Code of this system will be object oriented, so we will have optimized and easy maintainable and future compatible code. Besides, using pure OpenGL, there are number of APIs and glue libraries available for easy and graceful implementation of OpenGL such as following: http://en.wikipedia.org/wiki/Coin3D https://bitbucket.org/Coin3D/coin/wiki/MainFeatures http://doc.coin3d.org/SoQt/ The senior developers must take their precious time and put attention and effort to read and discuss on above mentioned findings and proposed system. Please guide me, I wish to move in this direction, so that it could be useful to BRL-CAD users as well to developers. Reviews, suggestions and comments are appreciated. -- Harmanpreet Singh Blog: http://singhharman.wordpress.com/ ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ BRL-CAD Developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/brlcad-devel
