#include "SceneGraph.h" #include "Polygon3.h" #include "Mesh.h" #include "ObjExporter.h" using namespace std; namespace GtpVisibilityPreprocessor { ObjExporter::ObjExporter(const string filename):Exporter(filename) { stream.open(mFilename.c_str()); stream<<"#File exported by GTP visibility preprocessor"<IsLeaf()) { SceneGraphInterior *interior = static_cast(node); SceneGraphNodeContainer::iterator ni = interior->mChildren.begin(); for (; ni != interior->mChildren.end(); ni++) ExportSceneNode(*ni); } else { SceneGraphLeaf *leaf = static_cast(node); ObjectContainer::const_iterator mi = leaf->mGeometry.begin(); for (; mi != leaf->mGeometry.end(); mi++) { // export the transform ... ExportIntersectable(*mi); } } } void ObjExporter::ExportMesh(Mesh *mesh) { int vertexOffset = vertexIndex; VertexContainer::const_iterator vi = mesh->mVertices.begin(); for (; vi != mesh->mVertices.end(); vi++) { stream<<"v "<<(*vi).x<<" "<<(*vi).y<<" "<<(*vi).z<mFaces.begin(); for (; fi != mesh->mFaces.end(); fi++) { Face *face = *fi; VertexIndexContainer::const_iterator vi = face->mVertexIndices.begin(); stream<<"f "; for (; vi != face->mVertexIndices.end(); vi++) stream<mVertices.begin(); for (; vi != poly->mVertices.end(); vi++) { stream<<"v "<<(*vi).x<<" "<<(*vi).y<<" "<<(*vi).z<mVertices.begin(); for (; vi != poly->mVertices.end(); vi++, i++) stream<