X3DToolKit features

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.