#include "MESH_MyMeshData.h" #include "X3D_MyRenderingCreator.h" #include "X3D_MyMeshBuilderRenderingVisitor.h" #include "MESH_MyX3DBuilderCoreVisitor.h" #include #include #include #include #include #include using namespace X3DTK; using namespace std; int main(int argc, char *argv[]) { if (argc <= 1) { cerr << "usage: extendedmeshsaver input" << endl; exit(0); } // DefaultLoader to load the default X3D Nodes. X3D::Loader *loader = Singleton::getInstance(); loader->setComponentCreator(new X3D::MyRenderingCreator()); // Instanciation of the new MeshBuilder. X3D::TemplateMeshBuilder *meshbuilder = Singleton >::getInstance(); meshbuilder->setComponentVisitor(new X3D::MyMeshBuilderRenderingVisitor()); // Instanciation of the new MeshX3DBuilder. MESH::TemplateX3DBuilder *meshx3dbuilder = Singleton >::getInstance(); meshx3dbuilder->setComponentVisitor(new MESH::MyX3DBuilderCoreVisitor()); // Instanciation of the SceneSaver. X3D::SceneSaver *saver = Singleton::getInstance(); // Loads the scene. X3D::Scene *s = loader->load(argv[1], false); cout << "s = " << s << endl; GraphTester *gt = Singleton::getInstance(); gt->test(s); cout << "end test" << endl; MESH::Scene *ms = meshbuilder->build(s); X3D::Scene *ss = meshx3dbuilder->build(ms); saver->saveAs(ss, "myfile.x3d"); // removes all instances. Singleton >::removeInstance(); Singleton >::removeInstance(); Singleton::removeInstance(); return 1; }