X3DToolKit changeLog


version 1.0.1 released 08/27/04

  • Better normals computation in the MESH::NormalsUpdater processor.

version 1.0.0 released 08/01/04

  • Creation of nodes is made simpler. Check the node creation page to see how nodes are now defined.
  • X3D routes are implemented in the X3D scene graph, implying that the attributes of a node are now recorded and associated with a string name. X3DNode::load and X3DNode::write disappear. X3DAbstractNode::getChildList and X3DAbstractNode::clone are now automated and no longer virtual.
  • Protected members of X3DOnePassProcessor and X3DMultiPassProcessor are now private. the GraphTraversal variable is now accessed by getGraphTraversal() and defined by setGraphTraversal(GraphTraversal *).
  • Added getVertices method to SFTemplateFace.
  • Common processors interfaces disappear so that the interface of X3DTK::SimpleX3DGLScene is slightly different.

version 0.6.0 released 05/27/04

  • In order to ensure more portablility, the node definition and function definition can be made differently. Indeed defineNode<T>() is equivalent to define(Recorder<T>::getCreationFunction()). defineEnterFunction(&Com::fun) is equivalent to define(Recorder<T>::getEnterFunction(&Com::fun)). The singleton management is made by a template class and not template functions. X3DProcessor::getInstanceOf<T>(), X3DLoader::getInstanceOf<T>() and GraphTraversal::getInstanceOf<T>() have to be replaced by Singleton<T>::getInstance().
  • All the template classes of the Mesh scene graph are now templated by MData, VData, EData, FData and RW and recover Template in their names. The template entities SFVertex, SFEdge, SFFace become SFTemplateVertex, SFTemplateEdge, SFTemplateFace, Mesh and Vertex become TemplateMesh and TemplateVertex. The default instantiation of these classes are SFVertex, SFEdge, SFFace, Mesh and Vertex enabling for the user not to know that they are template classes.
  • the template entities MESH::SFVertex, MESH::SFEdge and MESH::SFFace derive now from the non template base classes MESH::BaseSFVertex, MESH::BaseSFEdge and MESH::BaseSFFace.
  • Creation functions are set when a new component creator is set to the Creator. That changes slightly the interface of the X3DActor, Creator and Visitor.
  • In the MESH scene graph, edges are now created and removed by the MESH::Vertex node and not by the MESH::Mesh node. The user interface doesn't change.

version 0.5.4 released 04/07/04

  • SFType::printDerivationTree() becomes SFType::printInheritanceTree().
  • X3DAbstractNode::getChildrenList() becomes X3DAbstractNode::getChildList().
  • The component walkers disappear, indeed the traversals can be deduced from X3DAbstractNode::getChildList(). To define a new walk algorithm, the Walker::walk() virtual method has to be redefined.
  • X3D::DFSGraphTraversal, GL::DFSGraphTraversal and MESH::DFSGraphTraversal disappear, only DFSGraphTraversal is needed.
  • Methods of component visitors have to be static. StateVariables members disappear from component visitors, and must be directly accessed in the methods.

version 0.5.2 released 03/10/04

  • VertexSet becomes Vertex.
  • The way of storing the template mesh data has changed to enable more flexibility. Now MESH::VertexData for example is the agregation of lighter structures by the use of type lists tlist and automatic class generation clist. See documentation for more details.
  • The include files change their names. Before a typical processor of the ns scene graph was included in the file X3DTK/ns_processor.h, now it is X3DTK/NS/processor.h
  • DEFDict disappears from X3DAbstractNode.
  • Larger use of templates in the MESH scene graph involving that the MESH::Mesh class disappears, whereas the MESH::TemplateMesh becomes Mesh. In the same way MESH::TemplateVertexSet, MESH::SFTemplateVertex, MESH::SFTemplateEdge, MESH::SFTemplateFace become MESH::VertexSet, MESH::SFVertex, MESH::SFEdge, MESH::SFFace. Same changes for the processors: MESH::TemplateMeshBuilder becomes MESH::MeshBuilder, etc.

version 0.5.1 released 12/5/03

  • You can access to the parents by getParentList and the children by getChildrenList.
  • Type becomes SFType, Component SFComponent, SceneGraph SFSceneGraph, MType becomes MFType, MComponent MFComponent, MSceneGraph MFSceneGraph, Vertex becomes SFVertex, Edge becomes SFEdge, Face SFFace, MVertex becomes MFVertex, MEdge becomes MFEdge, MFace MFFace.
  • TemplateMesh has now a child called TemplateVertexSet which stores SFTemplateVertex. That enables vertex sharing.
  • The names of the files follow the rule: if the class belongs to the ns namespace, then the file name is ns_class. The include files of the processors have changed and follow this rule.
  • GVManager disappears and its content is moved to the GraphTraversal. GlobalVariables become StateVariables to avoid ambiguity with variables global to the application.
  • defineNew*Function becomes define*Function.
  • GL::X3DNode::render() becomes GL::X3DGeometryNode::draw().
  • SFMatrix34f::IDENTITY becomes SFMatrix34f::identity. SFVec3f::NULLVECTOR becomes SFVec3f::null. SFPoint3f::NULLVECTOR becomes SFPoint3f::null. SFVec2f::NULLVECTOR becomes SFVec2f::null. SFColor::NULLCOLOR becomes SFColor::null.
  • Template singleton manager used for instantiating X3DProcessor and X3DLoader. For example, for getting an X3D::BBoxUpdater, you type X3DProcessor::getInstanceOf<X3D::BBoxUpdater>();

version 0.5.0 released 10/27/03

  • DefineNewTypeName extended to the scene graph meaning that a type belongs to a component that belongs to a scene graph.
  • Bbox becomes BBox.
  • Simpler syntax to define a new node. Before you had to record the CreationFunction, now only defineNewNode<T>() is needed in the constructor.
  • Thanks to the implicit template parameters you can type defineNewEnterFunction(&component::function);
  • X3DTTAlgorithm becomes GraphTraversal.
  • Default* classes disappear.
  • New arborescence. New include files :kernel.h, x3dscenegraph.h, glscenegraph.h...
  • SFVec3f VertexData::_point becomes SFPoint3f VertexData::_point
  • Mesh namespace becomes MESH to avoid ambiguity with Mesh class.
  • SFMatrix34f::toFloat syntax changes.
  • In the X3DAbstractNode class, addParent and removeParent become private, addLink and removeLink become addParentToChild and removeParentFromChild.
  • The VertexData class doesn't have a list of VertexFData any more, it stores directly the informations per face.
  • The functions scale(...), translation(...), rotationX()... returning an SFMatrix34f are incorpored into SFMatrix34f as static methods. identity34() becomes the public static member IDENTITY.