Native 3D Widgets in PVSS 3.6 - Technology Overview

Native 3D Widgets in PVSS 3.6 - Technology Overview

Native 3D widgets in PVSS 3.6 - technology overview Piotr Golonka CERN IT/CO-BE FWWG meeting 07 Decem ber 2006 “Native” widgets: EWO ● PVSS EWO – “Extended Widget Object”, in PVSS 3.5 – A dynamic library, loaded by PVSS0ui ● Compiler compatibility! – Uses Qt/3 framework ● Qt 3.3.6 – Requires commercial license for development on Windows ● qmake-based, portability-assuring build system ● QWidget base class ● Slots, signals, properties – out of the box ● The variety of Qt features available out of the box – Database access, XML, networking/web, OpenGL, – Needs to follow some conven tions ● Example of an “EWO” code available in the api/ folder In quest of 3D... ● Silicon Graphics: two standards for 3D graphics API – OpenGL ● Open, “industry standard” ● Hardware-accelerated on all graphic cards nowadays ● Low-level functions – Shaders, nodes, planes – OpenInventor ● Higher-level, object-oriented, extendable framework API (C/C++) – Scenes, spheres, cubes, cameras, animators – User-interaction and event handling ● Viewers and manipulators ● Object picking, selecting, highlighting ● Uses OpenGL for low level ● Bindings to windowing system : Xt, Windows, Java, ... OpenGL and OpenInventor ● OpenGL: a part of your operating system! ● OpenInventor... – Open specification – many implementations possible – COIN3D (www.coin3d.org) ● Portable: Windows, Unix, Linux, Mac, *BSD ● Open Source (GPL) or “Professional Edition” – Open Source available on ALL platforms! ● May use a variety of windowing system bindings - “extensions” – native Windows - SoWin – Cocoa on MacOS - Sc21 – X11/Xt on UNIX - SoXt – Qt (any supported) – SoQt ● We tried COIN+SoQt on Win dows and Linux – Compiled from sources, not a big effort: two DLLs COIN3D: OpenInventor API implementation COIN3D/SoQt application SoQt: rapid development... #include <Inventor/Qt/SoQt.h> #include <Inventor/Qt/viewers/SoQtExaminerViewer.h> #include <Inventor/nodes/SoBaseColor.h> #include <Inventor/nodes/SoCone.h> #include <Inventor/nodes/SoSeparator.h> int main(int argc, char ** argv) { QWidget * mainwin = SoQt::init(argc, argv, argv[0]); SoSeparator * root = new SoSeparator; root->ref(); root->addChild(new SoCone); SoQtExaminerViewer * eviewer = new SoQtExaminerViewer(mainwin); eviewer->setSceneGraph(root); eviewer->show(); SoQt::show(mainwin); SoQt::mainLoop(); return 0; } Missing pieces ● 3D Geometry Shapes (a`la GEANT) – Already provided by the IGUANA project (CMS Visualization) ● They use Coin3D/SoQt as well; support ? ● Some problems with compilation on Windows need to be resolved ● Data source – May use Qt's SQL module to query them from a database – Load VRML or OpenInventor files (“Caching”? Simpler code) ● Dynamic loading of the OI shape extensions possible “on the flight” ● Parse the data and create the scene ● Add PVSS infrastructure for widget control – Properties, signals, etc – Picking and selecting objects, interface to PVSS Technologies to pick up... ● EWOs – Build system (qmake-based) ● Already set up! – Architecture for EWOs: relatively easy ● Passing data/events between PVSS and C++ code of the EWO – Qt: some basic concepts ● Open Inventor – “The Inventor Mentor” - available in the CERN library – Most bulky part; need to pick up some concepts – Plenty of examples on the web ● DB Connectivity – Qt: relatively intuitive PVSS GEANT Geometry Shapes for Open Inventor EWO SoQt Coin3D Qt Open Inventor ● We've gone already quite far – Integration of technologies ● Build system, development environment ● Compiled COIN3D, SoQt into DLLs, ported IGUANA parts – Evaluation of technologies ● Portability ● Availability on both platforms – Simple “proof of concept”: ● embed a viewer into an EWO ● The development may be done as a “standalone program” at first, then “wrapped” into an EWO ● How much to do remains? It depends....

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us