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

Reply via email to