RE: [ROOT] ROOT 4.01/04

From: Rene Brun (brun@pcbrun.cern.ch)
Date: Sun Nov 21 2004 - 09:30:55 MET


Valeri,

Once more you are spreading wrong information to this list.
We have an abstract interface TVirtualViewer3D (in libCore like
all other abstract interfaces) and we have TWO implementations
of concrete classes; TViewerX3D and TViewerOpenGL, each class
being in a separate directory and shared lib. You can specify which one 
to load by default via the plugin manager instructions in system.rootrc.

If we have been able to implement two concrete classes (one with GL,
one with X3D), I do not understand the complication to implement
the equivalent of TViewerOpenGL if you believe that you can do better.

The abstract interface is precisely designed to decouple the viewer
from the objects producing the 3-D data. The important intermediate
class is TBuffer3D that is filled by the various 3d classes.
This class contains only data and has no calls whatsoever to a concrete
3D viewer.

The abstract interface in TVirtualViewer3D is simple with 2 functions
CreateScene and UpdateScene. It gives you plenty of freedom
in your implementation and it makes sure that you do not mix apples with
oranges as it was the case in your previous design.

Frankly it was not our priority to document the abstract interface.
Our users are more concerned by having a functional and simple to use
viewer with a good GUI.
So far you are the only one who is attempting to implement an 
alternative to TViewerOpenGL (and there is nothing wrong with that).
I gave to you a working document written by Olivier explaining
this interface. This document will come into the standard documentation
in due time.

Rene Brun

On 
Sat, 20 Nov 
2004, Faine, Valeri wrote:

> Subject: RE: [ROOT] ROOT 4.01/04
> 
> > Hi,
> > When we talk about the Qt-ROOT ...
> > I think, the "old" solution contained (by default) the libQGLViewer ...
> > Would it be possible to include it again (be default)?
> > Just for the completeness of the solution (I know, it's not a problem
> > to compile it ...).
> 
> The problem is the QGLViewer (and Coin3D see: http://root.bnl.gov  ) was a
> part of the implementation of the ROOT 3D viewer base class. Since ROOT
> 4.01.00 this interface was REMOVED and the new one was introduced. The new
> one is NOT backward compatible.
> 
> As a side effect all custom classes those relied on that 3D interface, for
> example the custom 3D viewers and the custom 3D classes can not be used with
> the new ROOT version. One needs to do ANOTHER implementation based rather on
> the new ROOT one or stand-alone. I'll do that with QGLViewer but it takes
> some time. I hope this can be done by the time of the next production ROOT
> release.  
> 
> There are several "design" problems with the brand-new ROOT GL viewer. One
> of them: it is not possible (not simple :-) to separate the classes defining
> the OpenGL VIEW of the 3D ROOT objects and the new-born ROOT OpenGL
> stand-alone VIEWER. Both components are parts of one and the same shared
> library. One can not pick the 3D objects and use the custom 3D viewer as it
> was with the previous interface. To make the custom viewer (for example
> based on QGLViewer or Coin3D with SoQt) many components have to be re-used
> "by mouse".
> 
> 
>  But this is another story and it has nothing to do with the "Subj".
> 
>  Just my 2 cents.
> 
> 
> 



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET