|
Different uses of the toolkit are possible (see examples for a more exhaustive list) :
- simply use the provided applications to visualize or process X3D models
- load and render static X3D models in OpenGL
- load and traverse the scene graph in order to edit it or simply extract informations
- easily extend the X3D language and use the new nodes in the two first use cases
The library is made up of three views of the X3D model:
- the X3D scene graph providing a simple translation of the file into a more usable data structure
- the GL scene graph based upon nodes specialized in rendering
- the MESH scene graph providing fully customizable template winged-edge structures
To traverse the scene graphs while taking into account the class hierarchy, the "double
dispatching" technique is implemented, providing a way of factorizing code. For more details about
this technique, go to the concepts page.
The library also provides a set of functionalities, implemented using processors that traverse
the scene graph and process each node. Moreover new processors are easy to create.
The provided applications are:
- X3DViewer: fast viewer of static X3D models
- X3DMeshEditor: editor of X3D models, specialized in model cleaning
- X3DStats: application printing statistics of the models (number of faces, vertices, edges...)
- X3DWorldCoordTranslator: translates the coordinates in world coordinates
The library doesn't implement all the X3D nodes (see X3D conformance) and does not contain a
complete X3D browser however the library provides an almost fully implementation and a fast rendering of static scenes.
The toolkit is entirely programmed in standard C++, a subtle use of templates avoids the use of macros.
|