Fixed code related to creation o fthe XML file

This commit is contained in:
Paolo Cignoni 2005-09-29 14:48:15 +00:00
parent 83eb240e34
commit 3f0170846e
1 changed files with 386 additions and 315 deletions

View File

@ -24,6 +24,9 @@
History
$Log: not supported by cvs2svn $
Revision 1.3 2005/09/28 13:57:09 rita_borgo
Fixed some printout not alligned
Revision 1.2 2005/09/28 10:46:04 rita_borgo
Added possibility of saving File in OFF format
@ -239,7 +242,7 @@ void main(int argc,char ** argv){
/*------------XML file part ------------------*/
doc.initializeMain(XML_SCHEMA_NAME);
char* s1 = "http://www.w3.org/2001/XMLSchema-instance";
char* s2 = new(char[50]);
@ -249,6 +252,7 @@ void main(int argc,char ** argv){
s2 = new(char[100]);
sprintf(s2,"\"%s\"",s1);
doc.addHeaders(" xsi:noNamespaceSchemaLocation=", s2);
/*--------------------------------------------*/
FILE * index;
index = fopen((string(argv[1])+string("2.html")).c_str(),"w");
@ -261,8 +265,9 @@ void main(int argc,char ** argv){
printf(" M: '%s'\n\t Number of vertices: %d \n", argv[1], m.vn);
printf("\t Number of faces: %d \n", m.fn);
//XML
/*------------XML file part ------------------*/
NodeGroup* ng = new NodeGroup;
char* s =new(char[25]);
@ -292,6 +297,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
@ -301,6 +307,7 @@ void main(int argc,char ** argv){
fprintf(index, "<p>Object color(4b): %f %f %f </p>\n\n", Color[0], Color[1], Color[2]);
printf( "\t Object color(4b): %f %f %f \n", Color[0], Color[1], Color[2]);
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -314,6 +321,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
@ -352,6 +360,8 @@ void main(int argc,char ** argv){
{
fprintf(index, "<p> Manifold: NO </p>");
printf( "\t Manifold: NO\n");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -365,11 +375,14 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
else
{
fprintf(index, "<p> Manifold: YES </p>");
printf( "\t Manifold: YES\n ");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -383,6 +396,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
@ -435,6 +449,7 @@ void main(int argc,char ** argv){
printf("\t Number of internal edges: %d \n", count_e-boundary_e);
printf("\t Number of boundary edges: %i \n", boundary_e);
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -448,6 +463,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
@ -459,6 +475,8 @@ void main(int argc,char ** argv){
count_fd++;
fprintf(index, "<p>Number of degenerated faces: %d </p>\n", count_fd);
printf("\t Number of degenerated faces: %d \n", count_fd);
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -472,6 +490,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
// UNREFERENCED VERTEX
@ -492,6 +511,8 @@ void main(int argc,char ** argv){
++count_uv;
fprintf(index,"<p>Number of unreferenced vertices: %d</p>\n",count_uv);
printf("\t Number of unreferenced vertices: %d\n",count_uv);
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -505,6 +526,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
// HOLES COUNT
@ -564,6 +586,8 @@ void main(int argc,char ** argv){
numholes = holes.size();
fprintf(index,"<p>Number of holes/boundaries: %d </p>\n", numholes);
printf("\t Number of holes/boundaries: %d \n", numholes);
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -577,6 +601,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
@ -589,6 +614,8 @@ void main(int argc,char ** argv){
if(i==numholes-1){ printf("%i)\n",holes[i].size()); BEdges++;}
else{ printf("%i, ",holes[i].size()); BEdges++;}
}
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -601,6 +628,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
}
else
@ -614,6 +642,8 @@ void main(int argc,char ** argv){
{
fprintf(index,"<p>Volume: %d </p>\n", m.Volume());
printf("\t Volume: %f \n", m.Volume());
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -627,6 +657,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
else
{
@ -676,6 +707,8 @@ void main(int argc,char ** argv){
int numcomponents = nrfaces.size();
fprintf(index, "<p> Number of connected components: %d </p>", numcomponents);
printf("\t Number of connected components: %d\n", numcomponents);
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -689,6 +722,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
//GENUS --> 2( #components - genus ) = #vertices + #faces - #edge - #boundary_loops = eulernumber - #holes
//eulero = (mesh.vn-count_uv) - (count_e)+mesh.fn;
@ -699,6 +733,8 @@ void main(int argc,char ** argv){
int genus = -( 0.5 * (eulernumber - numholes) - numcomponents );
fprintf(index, "<p> Genus: %d </p> \n ", genus);
printf( "\t Genus: %d \n", genus);
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -712,6 +748,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
else //(!Manifold)
{
@ -766,6 +803,8 @@ void main(int argc,char ** argv){
{
fprintf(index, "<p> Type of Mesh: REGULAR</p>");
printf("\t Type of Mesh: REGULAR\n");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -779,6 +818,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
else if (Semiregular)
{
@ -802,6 +842,8 @@ void main(int argc,char ** argv){
{
fprintf(index, "<p> Type of Mesh: IRREGULAR</p>");
printf("\t Type of Mesh: IRREGULAR\n");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -815,6 +857,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
// ORIENTABLE E ORIENTED MESH
@ -824,6 +867,8 @@ void main(int argc,char ** argv){
{
fprintf(index, "<p> Orientable Mesh: NO</p>");
printf( "\t Orientable Mesh: NO\n");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -837,6 +882,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
else
{
@ -929,6 +975,8 @@ void main(int argc,char ** argv){
{
fprintf(index, "<p> Orientable Mesh: YES</p>");
printf( "\t Orientable Mesh: YES\n");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -942,11 +990,14 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
else
{
fprintf(index, "<p> Orientable Mesh: NO</p>");
printf( "\t Orientable Mesh: NO\n");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -960,12 +1011,15 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
}
if (Oriented && Manifold)
{
fprintf(index, "<p> Oriented Mesh: YES</p>");
printf( "\t Oriented Mesh: YES\n");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -979,11 +1033,14 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
else
{
fprintf(index, "<p> Oriented Mesh: NO</p>");
printf( "\t Oriented Mesh: NO\n");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -997,12 +1054,15 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
int dv = DuplicateVertex(m);
if(dv>0)
{
fprintf(index, "<p> Duplicated vertices: %d</p>", dv);
printf( "\t Number of duplicated vertices found: %d\n",dv);
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -1016,12 +1076,14 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
else
{
fprintf(index, "<p> Duplicated vertices: NO</p>");
printf( "\t Duplicated vertices: NO\n");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -1035,6 +1097,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
// SELF INTERSECTION
if (m.fn<300000)
@ -1060,6 +1123,8 @@ void main(int argc,char ** argv){
{
fprintf(index, "<p> Self Intersection: YES</p>");
printf( "\t Self Intersection: YES\n");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -1073,11 +1138,14 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
else
{
fprintf(index, "<p> Self Intersection: NO</p>");
printf( "\t Self Intersection: NO\n");
/*------------XML file part ------------------*/
s = new(char[25]);
vn = new ValueNode;
en = new EntryNode;
@ -1091,6 +1159,7 @@ void main(int argc,char ** argv){
osn->addEntry(*en);
sn->addOwnSlot(osn);
ng->addNode(osn);
/*--------------------------------------------*/
}
}
@ -1121,6 +1190,7 @@ void main(int argc,char ** argv){
tri::io::ExporterOFF<MyMesh>::Save(m,filesave);
}
/*------------XML file part ------------------*/
doc.addSlots(sn);
OwnSlotsNode* ossn = new OwnSlotsNode;
ossn->addOwnSlot(ng);
@ -1134,5 +1204,6 @@ void main(int argc,char ** argv){
doc.finalizeMain("/",XML_SCHEMA_NAME);
doc.printXMLTree();
fclose(index);
/*--------------------------------------------*/
}