#include <Exporter.h>
Public Member Functions | |
| Exporter () | |
| ~Exporter () | |
| void | exportModel (ExampleModel *model, const char *filename) |
| void | exportModel (ReferenceModel *model, const char *filename) |
Write detailed description for Exporter here.
Definition at line 48 of file Exporter.h.
|
|
Definition at line 9 of file Exporter.cpp. 00009 {
00010
00011 }
|
|
|
Write brief comment for ~Exporter here.
Definition at line 65 of file Exporter.h. 00065 {};
|
|
||||||||||||
|
Write brief comment for exportModel here.
Definition at line 33 of file Exporter.cpp. References exportModel(), and log::write(). 00033 {
00034 log::write("Exporter::exportModel");
00035 log::write("exportModel-ref",*model);
00036 exportModel((ExampleModel*) model, filename);
00037 }
|
Here is the call graph for this function:

|
||||||||||||
|
Write brief comment for exportModel here.
Definition at line 59 of file Exporter.cpp. References model::Model::getFaces(), model::Model::getVertexs(), and log::write(). Referenced by pcggui::ExportAll(), exportModel(), and Batch::ExportModels(). 00059 {
00060 log::write("exportModel-Ex",*model);
00061 //Make data
00062 string coordIndex = "";
00063 string normalIndex = "";
00064 string points = "";
00065 string vectors = "";
00066 char tmp[100];
00067 log::write("Exporter get faces");
00068 vector<Face*> faces = model->getFaces();
00069 for(int i=0; i<(int)faces.size(); i++) {
00070 #ifndef __WINDOWS__
00071 sprintf(tmp,"%d, %d, %d,-1,",faces[i]->getVertex(0)->getIndex(),faces[i]->getVertex(1)->getIndex(),faces[i]->getVertex(2)->getIndex());
00072 #else
00073 sprintf_s(tmp,"%d, %d, %d,-1,",faces[i]->getVertex(0)->getIndex(),faces[i]->getVertex(1)->getIndex(),faces[i]->getVertex(2)->getIndex());
00074 #endif
00075 coordIndex.append(tmp);
00076 normalIndex.append(tmp);
00077 /*cout << "Value:" << vertexs[i]->getCoordinates()->x << "," << vertexs[i]->getCoordinates()->y << "," << vertexs[i]->getCoordinates()->z << "\n";
00078 cout << "Tmp: " << tmp << "\n";
00079 cout << "Point: " << points << "\n";
00080 system("PAUSE");*/
00081 }
00082 log::write("Exporter get vertex");
00083 vector<Vertex*> vertexs = model->getVertexs();
00084 for(int i=0; i<(int)vertexs.size(); i++) {
00085 #ifndef __WINDOWS__
00086 sprintf(tmp,"%.4f %.4f %.4f,",vertexs[i]->getCoordinates()->x,vertexs[i]->getCoordinates()->y,vertexs[i]->getCoordinates()->z);
00087 #else
00088 sprintf_s(tmp,"%.4f %.4f %.4f,",vertexs[i]->getCoordinates()->x,vertexs[i]->getCoordinates()->y,vertexs[i]->getCoordinates()->z);
00089 #endif
00090 points.append(tmp);
00091 #ifndef __WINDOWS__
00092 sprintf(tmp,"%.4f %.4f %.4f,",vertexs[i]->getNormal()->x,vertexs[i]->getNormal()->y,vertexs[i]->getNormal()->z);
00093 #else
00094 sprintf_s(tmp,"%.4f %.4f %.4f,",vertexs[i]->getNormal()->x,vertexs[i]->getNormal()->y,vertexs[i]->getNormal()->z);
00095 #endif
00096 vectors.append(tmp);
00097 /*cout << "Value:" << vertexs[i]->getCoordinates()->x << "," << vertexs[i]->getCoordinates()->y << "," << vertexs[i]->getCoordinates()->z << "\n";
00098 cout << "Tmp: " << tmp << "\n";
00099 cout << "Point: " << points << "\n";
00100 system("PAUSE");*/
00101 }
00102 log::write("Exporter make xml");
00103 //Make XML doc
00104 TiXmlDocument doc;
00105 TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "UTF-8", "" );
00106 doc.LinkEndChild( decl );
00107
00108 TiXmlElement * X3D = new TiXmlElement( "X3D" );
00109 X3D->SetAttribute("profile","Immersive");
00110 doc.LinkEndChild( X3D );
00111
00112 TiXmlElement * scene = new TiXmlElement( "Scene" );
00113 X3D->LinkEndChild( scene );
00114
00115 TiXmlElement * transform = new TiXmlElement( "Transform" );
00116 scene->LinkEndChild( transform );
00117
00118 TiXmlElement * shape = new TiXmlElement( "Shape" );
00119 transform->LinkEndChild( shape );
00120
00121 TiXmlElement * indexedFaceSet = new TiXmlElement( "IndexedFaceSet" );
00122 indexedFaceSet->SetAttribute("normalPerVertex","true");
00123 indexedFaceSet->SetAttribute("coordIndex",coordIndex.c_str());
00124 indexedFaceSet->SetAttribute("normalIndex",normalIndex.c_str());
00125 shape->LinkEndChild( indexedFaceSet );
00126
00127 TiXmlElement * coordinate = new TiXmlElement( "Coordinate" );
00128 coordinate->SetAttribute("point",points.c_str());
00129 indexedFaceSet->LinkEndChild( coordinate );
00130
00131 TiXmlElement * normal = new TiXmlElement( "Normal" );
00132 normal->SetAttribute("vector",vectors.c_str());
00133 indexedFaceSet->LinkEndChild( normal );
00134
00135 doc.SaveFile( filename );
00136 }
|
Here is the call graph for this function:

1.3.9.1