#ifndef __X3DPARSER_H #define __X3DPARSER_H #include "parser.h" #include "mesh.h" #include #include #include class X3dParser : public Parser { public: X3dParser():Parser() {} bool ParseFile(const string filename, SceneGraphNode **root); }; }; namespace X3DTK { namespace MESH { class MyStructureComputerStateVariables : public StateVariables { public: MyStructureComputerStateVariables(); void init(); void finish(); void beginNewMesh(); inline void addVertex(float x, float y, float z) { //_mesh->addVertex(x, y, z); }; void addFace(const Face &face); void pushMatrix(const SFMatrix34f &transformation); void popMatrix(); inline Mesh *getMesh() const {return _mesh;}; SFMatrix34f getMatrix() const {return _matrixStack.front();}; private: Mesh *_mesh; unsigned int _decal; std::list _matrixStack; }; // MyStructureComputer processor. class MyStructureComputer : public X3DOnePassProcessor { public: MyStructureComputer(); virtual ~MyStructureComputer(); virtual Mesh *compute(SFNode N); }; class X3DGroupingNode; class Transform; /// Visitor for the Core component of the MyStructureComputer module. class MyStructureComputerCoreVisitor : public CoreVisitor { public: MyStructureComputerCoreVisitor(); static void enterMesh(Mesh *M); static void enterTransform(Transform *T); static void leaveX3DGroupingNode(X3DGroupingNode *N); }; } #endif