void Import_Obj()
{
fseek(infile, 0L, SEEK_SET);
outfile << "Import_Obj()" << endl;
while(!feof(infile))
{
fscanf(infile, "%s", &stream);
S_stream = stream;
outfile << stream << endl;
if(S_stream == "*GEOMOBJECT")
{
num_obj++;
Mesh_array.reserve(256);
Mesh_array.resize(num_obj);
//outfile << "*GEOMOBJECT" << endl;
}
if(S_stream == "*MESH_NUMTVERTEX")
{
fscanf(infile, "%i", &Mesh_array[num_obj-1].num_t_vertex);
//outfile << "NUM tVERTEX" << endl;
}
if(S_stream == "*MESH_NUMVERTEX")
{
fscanf(infile, "%i", &Mesh_array[num_obj-1].num_vertex);
Mesh_array[num_obj-1].vertex.resize(Mesh_array[num_obj-1].num_vertex);
Mesh_array[num_obj-1].vnormal.resize(Mesh_array[num_obj-1].num_vertex);
//outfile << "NUM mVERTEX" << endl;
}
if(S_stream == "*MESH_NUMFACES")
{
fscanf(infile, "%i", &Mesh_array[num_obj-1].num_faces);
Mesh_array[num_obj-1].face.resize(Mesh_array[num_obj-1].num_faces);
Mesh_array[num_obj-1].fnormal.resize(Mesh_array[num_obj-1].num_faces);
//outfile << "NUM FACES" << endl;
}
if(S_stream == "*MESH_VERTEX_LIST")
{
fscanf(infile, "%s", &stream); //inputs bracket
//outfile << "VERTEX LIST:" << endl;
for(int i=0; i<Mesh_array[num_obj-1].num_vertex; i++)
{
fscanf(infile, "%s", &stream); //inputs "*MESH_VERTEX"
fscanf(infile, "%s", &stream); //inputs vertex index
//Y and Z values are swapped for 3D Studio files
fscanf(infile, "%f", &Mesh_array[num_obj-1].vertex[i].x); //converts x value & stores it
fscanf(infile, "%f", &Mesh_array[num_obj-1].vertex[i].z); //converts z value & stores it
fscanf(infile, "%f", &Mesh_array[num_obj-1].vertex[i].y); //converts y value & stores it
//outfile << Mesh_array[num_obj-1].vertex.x << " ";
</font>
<font color=gray>//outfile << Mesh_array[num_obj-1].vertex.y << " ";
</font>
<font color=gray>//outfile << Mesh_array[num_obj-1].vertex.z << endl;
</font>
}
<font color=gray>//outfile << endl;
</font>
}
<font color=blue>if</font>(S_stream == <font color=darkred>"*MESH_FACE_LIST"</font>)
{
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
<font color=gray>//outfile << "FACE LIST:" << endl;
</font>
<font color=blue>for</font>(<font color=blue>int</font> i=0; i<Mesh_array[<font color=purple>num_obj-1</font>].num_faces; i++)
{
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%i"</font></font></font></font></font></font>, &Mesh_array[<font color=purple>num_obj-1</font>].face[<font color=purple>i</font>].x);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%i"</font></font></font></font></font></font>, &Mesh_array[<font color=purple>num_obj-1</font>].face[<font color=purple>i</font>].y);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%i"</font></font></font></font></font></font>, &Mesh_array[<font color=purple>num_obj-1</font>].face[<font color=purple>i</font>].z);
<font color=blue>for</font>(<font color=blue>int</font> loop=0; loop<10; loop++)
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
}
}
<font color=blue>if</font>(S_stream == <font color=darkred>"*MESH_NORMALS"</font>)
{
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
<font color=gray>//outfile << "MESH NORMALS" << endl;
</font>
<font color=blue>for</font>(<font color=blue>int</font> i=0; i<Mesh_array[<font color=purple>num_obj-1</font>].num_vertex; i++)
{
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%f"</font></font></font></font></font></font></font></font></font>, &Mesh_array[<font color=purple>num_obj-1</font>].fnormal[<font color=purple>i</font>].x);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%f"</font></font></font></font></font></font></font></font></font>, &Mesh_array[<font color=purple>num_obj-1</font>].fnormal[<font color=purple>i</font>].z);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%f"</font></font></font></font></font></font></font></font></font>, &Mesh_array[<font color=purple>num_obj-1</font>].fnormal[<font color=purple>i</font>].y);
<font color=blue>for</font>(<font color=blue>int</font> loop=0; loop<3; loop++)
{
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%s"</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font>, &stream);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%f"</font></font></font></font></font></font></font></font></font>, &Mesh_array[<font color=purple>num_obj-1</font>].vnormal[<font color=purple>loop</font>].x);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%f"</font></font></font></font></font></font></font></font></font>, &Mesh_array[<font color=purple>num_obj-1</font>].vnormal[<font color=purple>loop</font>].z);
fscanf(infile, <font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred><font color=darkred>"%f"</font></font></font></font></font></font></font></font></font>, &Mesh_array[<font color=purple>num_obj-1</font>].vnormal[<font color=purple>loop</font>].y);
}
}
}
}
}
</pre><!–ENDSCRIPT–>
…and here is my output:
<!–STARTSCRIPT–><pre class="source">
File exists
Import_Obj()
*3DSMAX_ASCIIEXPORT
200
*COMMENT
<font color=darkred>"AsciiExport
Version
2.00
-
Thu
Dec
11
17:41:39
2003"</font>
*SCENE
{
*SCENE_FILENAME
""
*SCENE_FIRSTFRAME
0
*SCENE_LASTFRAME
100
*SCENE_FRAMESPEED
30
*SCENE_TICKSPERFRAME
160
</pre><!–ENDSCRIPT–>
this is not the only ASE file it does this on. the parser always stops at the same spot. any ideas what could be going wrong?
thanks ahead of time
-adam
good ol ASE file parser...
all of a sudden my file importer stopped working on me and started giving an access violation. i didn''t change a thing. here is my import function (i know its messy):
ive just wrote one today! 
i can send it to you if you want. it loads vertex, normal, texture coord arrays and indicies (the texcoord loads incorrectly i think)
"Knowledge is no more expensive than ignorance, and at least as satisfying." -Barrin

i can send it to you if you want. it loads vertex, normal, texture coord arrays and indicies (the texcoord loads incorrectly i think)
"Knowledge is no more expensive than ignorance, and at least as satisfying." -Barrin
"Knowledge is no more expensive than ignorance, and at least as satisfying." -Barrin
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement