Qt coin3d soqt


Published on

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Qt coin3d soqt

  2. 2. What is Qt? ❏ Cross-platform application development framework. ❏ Used to create graphical user interfaces. ❏ It can be used with several different programming languages. ❏ “t” in Qt refers to toolkit which defines Qt much better. Therefore, it can effectively be defined as a set of tools.
  3. 3. Qt TOOLS ❏ The main component is a set of libraries, written natively in C++. These libraries include: the core library providing the most important stuff, the GUI library providing the GUI components, the XML library. ❏ Meta Object Compiler(moc) used to handle Qt’s C++ extensions.This extends C++ a little bit, adding nice features like the signals/slots mechanism ❏ The GUI designer tool and the UIC. Qt Designer is a graphical tool to create GUIs visually and save them to XML files, and the UIC is a command-line tool to translate those XML files to C++ code.
  4. 4. ❏ Qt Linguist, tool to internationalize applications.Qt Linguist is a graphical tool for translator to edit those XML files and provide translations. ❏ The qmake tool, used to automate build process, so you don't have to run MOC, C++ compiler, UIC and other things manually. ❏ The Qt Creator, a graphical IDE to integrate all the stuff described above into a single environment.
  5. 5. qmake helps to create .pro file
  6. 6. Creating a Qt project
  7. 7. File and t New
  8. 8. Select
  9. 9. Files generated
  10. 10. Examples
  11. 11. Similarly a 2D graphic such as a circle,ellipse can be built
  12. 12. The code uses QPainter on QMainWindow. Circle drawing is done during gui decoration process , it is not drawn as an animation.Drawing empty circle on QMainWindow involves subclassing of QMainWindow and overriding paintEvent(QPaintEvent*) method.
  13. 13. using Coin3D and SoQt 3-D Graphics in Qt
  14. 14. ❏ Coin3D is a high level 3D graphics toolkit for developing cross-platform 3D visualizations. ❏ It uses scene graph data structures to render 3D graphics. ❏ Based on the de facto standard Open Inventor, Coin3D is a set of libraries for creating 3D graphics applications.
  15. 15. Coin3D Few Steps to install
  16. 16. 1. Download Coin-3.1.3.tar.gz fom https://bitbucket.org/Coin3D/coin/downloads. 2. Next unzip the file using the following commands: o cd /tmp o gzip -cd Coin-3.1.3.tar.gz | tar xvf - o mkdir coin-build 3. Run configure from the build directory:cd coin-build 4. ../Coin-3.1.3/configure 5. Build the Coin library: 6. make 7. Install the Coin library: 8. make install
  17. 17. Just install:libsoqt40-dev SoQt is a library which provides bridge between Coin3D visualistion and Qt 2D Graphical Interface.
  18. 18. Linking Add in the pro file: LIBS += -lCoin3D -lSoQt
  19. 19. Open Inventor Open Inventor is a “scenegraph“ graphics API: All visible objects are stored in a scenegraph
  20. 20. Capabilities of Open Inventor ❏ Easy construction of 3D scenes ❏ User interaction ❏ Animation
  21. 21. Scenegraph Anatomy There are three kinds of nodes: Group nodes: allow construction of trees Property nodes: change the color / location / ... of the next object Shapes: visible objects.
  22. 22. Common node types ❏ Group nodes SoGroup: SoSeparator.. ❏ Property nodes Transform: SoTransform, SoRotation, ... Appearance: SoMaterial…. ❏ Shape nodes SoShape SoCone, SoCube,
  23. 23. Scene objects class name prefix: So (scene object) ❏ derived from SoNode ❏ can be inserted directly into the scenegraph Example: root->addChild(new SoSphere)
  24. 24. # <Inventor/Qt/viewers/SoQtExaminerViewer.h> #include <Inventor/nodes/SoSeparator.h> #include <Inventor/nodes/SoCube.h> int main(int argc, char ** argv) { QWidget * mainwin = SoQt::init(argc, argv, argv[0]); SoSeparator * root = new SoSeparator; root->ref();
  25. 25. root->addChild(cube); SoQtExaminerViewer * eviewer = new SoQtExaminerViewer(mainwin); eviewer->setSceneGraph(root); eviewer->show(); SoQt::show(mainwin); SoQt::mainLoop(); root->unref(); delete eviewer; return 0;}
  26. 26. #include <Inventor/Qt/SoQt.h>: The SoQt class takes care of Qt initialisation. # include<Inventor/Qt/viewers/SoQtExaminerViewer.h> It is the general purpose viewer to view the 3D object generated. #include <Inventor/nodes/SoSeparator.h> It is subclass of SoGroup class. #include <Inventor/nodes/SoCube.h> This is the node for cube shape. It comes under the category of shape nodes.
  27. 27. ❏ QWidget * mainwin = SoQt::init(argc, argv, argv[0]); SoQt ::init with a string creates a QApplication and its main window, and returns its window handle. ❏ SoSeparator * root = new SoSeparator; root->ref(); The root node of the scene graph is created here. ❏ SoCube *cube = new SoCube; root->addChild(cube); A cube is added to the scene as a child to the root node.
  28. 28. ❏ SoQtExaminerViewer(mainwin); eviewer->setSceneGraph(root); eviewer->show(); The ExaminerViewer class of the viewer is used for display of objects. ❏ SoQt::show(mainwin); This pops up the main window. ❏ SoQt::mainLoop(); Cleans up all static data allocated by the SoQt library on initialization.
  29. 29. Thank You