Notes
Slide Show
Outline
1
The STAR “Integrated" Geometry Browser
  • V.Fine
2
 How to start the Browser
  • To start the STAR Geometry browser use 3 shell commands:
  • > stardev
  • > source $STAR/QtRoot/qtgl/qtcoin/setup.csh
  • > root4star GeomBrowse.C
3
Input 3D geometry formats
  • Zebra                 - *.fz
  • ROOT Macro     - *.C
  • ROOT file          - *.root
  • "Open Inventor" - *.iv, can be used  to combine
  •         the ROOT/ GEANT objects with non-ROOT 3D shapes
  • VRML                - *.wrl, can be used  to combine the ROOT/ GEANT objects with non-ROOT 3D shapes


  • In the other words, all versions of the STAR detector geometry description for "GEANT Simulation" and "Reconstruction" can be visualized.


4
The output formats:
  • All common pixmap formats: gif, png, jpg, tiff etc (can be used to create still and animated files)
  • Postscript and Encapsulated PostScript
  • VRML - Can be use to upload the 3D detector views
  •         see: http://root.bnl.gov/QtRoot/svt.html. This format is useful for the Web-based application since it doesn’t require any access to local GPU
  • "iv" - "Open Inventor2" - can be used to browse the STAR geometry and to create the high quality  pictures and animations with third party tools   like "Maya" http://usa.autodesk.com/adsk/servlet/item?id=7635770&siteID=123112#Connectivity
  •        In the other words the STAR GEANT geometry can be exported to be seen with no GEANT / ROOT involved.
  • mpeg (movie) to create the primitive movie.



5
GUI
  • It provides the 3 different views of the STAR geometry:
  • Tree-like (a'la "Internet Browser" )
  •        For example:  http://www.star.bnl.gov/STAR/comp/vis/GeomBrowser/TreeView.png
  • QGLviewer OpenGL view
  •        For example:  http://www.star.bnl.gov/STAR/comp/vis/GeomBrowser/Activate3DViewers.png
  • Coin3D "Open Inventor" view.
  •       For example: http://www.star.bnl.gov/STAR/comp/vis/GeomBrowser/Navigate3DViewers.png
  •     See: http://doc.coin3d.org/SoQt
  •           http://doc.coin3d.org/SoQt/classSoQtExaminerViewer.html
6
GUI
7
API
  • 1. ROOT API.
  •      The browser uses the standard ROOT plug-in mechanism.   This means to use it from within ROOT env to render   the ROOT 3D class objects no special API is required.  The TObject::Draw method will be served with the proper  plug-in  selected via ROOT resource file.
  • 2. Open Inventor API:
  •      To control things programmatically and to render the non-ROOT class objects one can use “Open Inventor” API  See: "
  •        http://doc.coin3d.org/Coin/classes.html  for details
  •      The ROOT and non-ROOT objects (including Coin3D animated objects) can be mixed within one 3D scene.
  • 3. Qt API.
  •      The widget classes do provide the Qt signal / slot API. This allows using the GeomBrowser to create the custom Qt-based GUI, for example for the "Control Room" and to create the animated interactive computer models of the STAR detector useful for students, teaching and public presentations.
  •      The widget emits the Qt signal as soon as the user "picks" some object. The signal provides a C++ pointer to the original ROOT object.



8
STAR detector geometry “providers”
  • St_geom_Maker – featured interactive “stand-alone” “GeomBrowse.C” ROOT macro to browse many types of the STAR detector  geometry definitions from Zebra files, ROOT files , ROOT macros, “Open Inventor” iv files, VRML files.
  • St_geant_Maker – TGeo, TVolume - “on fly”
  • StiMaker – Sti geometry “on fly”
9
Interactive 3D Object Selection
  • Coin3D plug-in  is built around of the TQtCoinWidget class which is the Qt QWidget. (TQtCoinWidget is an equivalent of the TQtWidget class for the embedded TCanvas)
  • The widget emits the Qt signal as soon as the user "picks" some object. The signal provides a C++ pointer to the original ROOT object that can be received by the user defined Qt slot to create the customized selected object manipulation.
  • The viewer is equipped with two built-in slots to handle the selected object as well.


10
The Default Selection Slot
11
The “Menu” Selection Slot
12
The “GeomBrowse” Custom Selection
13
Animation
  • The example of the using the “Open Inventor” ROOT Plug-in and the external files to animate the 3D rendering  can be found on the separate Web page
14
Multiply 3D widgets / attributes
  • The Qt-based ROOT 3D plug-ins do allow creating as many OpenGL widgets as your local video hardware can sustain and set the video attributes for each widget separately as the short animation on the right demonstrates:


15
Mixed ROOT / Coin3D 3D scene
  • It is simple to create the ROOT objects with the  mixing ROOT 3D and Coin3D objects. For example the ROOT objects define the geometry (shapes, color and positions) and Coin3D define the animations, lighting, clipping, 3D labels etc. The mixed objects can be saved/ restored using the regular either ROOT (root file) or Coin3D (see slide 4) I/O