asc importer
Okay, here''s the part of the source code that concert my asc importer . But it doesn''t work :o(. Anyone can help ? Ne compilation error, but nothing show up at screen (if I just do a DrawFace(test->pFace[0]) I got a triangle showing up (as that''s what DrawFace is supposed to do)
typedef struct tagVERTEX
{
double x,y,z;
double u,v;
} VERTEX;
typedef struct tagFACE // face
{
VERTEX vertex[3];
} FACE;
typedef struct tagSECTOR
{
int numface;
int numvertex;
VERTEX *pVertex;
FACE *pFace;
} SECTOR;
double RANDOM_DOUBLE(double min, double max)
{
double x;
double r=max-min;
x=rand();
if (x>max)
{
while(x>max)
{
x=x-(r+1);
}
} else if (xx,pVertex1->y,pVertex1->z);
glColor3d(((RANDOM_DOUBLE(0,100))/100),((RANDOM_DOUBLE(0,100))/100),((RANDOM_DOUBLE(0,100))/100)); // TEMPORARY RANDOM COLOR CODE
glVertex3d(pVertex2->x,pVertex2->y,pVertex2->z);
glColor3d(((RANDOM_DOUBLE(0,100))/100),((RANDOM_DOUBLE(0,100))/100),((RANDOM_DOUBLE(0,100))/100)); // TEMPORARY RANDOM COLOR CODE
glVertex3d(pVertex3->x,pVertex3->y,pVertex3->z);
glEnd();
}
void DrawSector(SECTOR *pSector)
{
for (int drse=0; drse<=((pSector->numface)-1);drse++)
{
DrawFace(pSector->pFace[drse]);
}
}
void VertexBind(FACE *pFace, VERTEX *pVertex1, VERTEX *pVertex2, VERTEX *pVertex3)
{
pFace->vertex[0].x=pVertex1->x;
pFace->vertex[0].y=pVertex1->y;
pFace->vertex[0].z=pVertex1->z;
pFace->vertex[1].x=pVertex2->x;
pFace->vertex[1].y=pVertex2->y;
pFace->vertex[1].z=pVertex2->z;
pFace->vertex[2].x=pVertex3->x;
pFace->vertex[2].y=pVertex3->y;
pFace->vertex[2].z=pVertex3->z;
}
void VertexBindn(FACE pFace, VERTEX pVertex1, VERTEX pVertex2, VERTEX pVertex3)
{
pFace.vertex[0].x=pVertex1.x;
pFace.vertex[0].y=pVertex1.y;
pFace.vertex[0].z=pVertex1.z;
pFace.vertex[1].x=pVertex2.x;
pFace.vertex[1].y=pVertex2.y;
pFace.vertex[1].z=pVertex2.z;
pFace.vertex[2].x=pVertex3.x;
pFace.vertex[2].y=pVertex3.y;
pFace.vertex[2].z=pVertex3.z;
}
void readstr(FILE *f,char *string)
{
do
{
fgets(string, 255, f);
} while ((string[0] == ''/'') // (string[0] == ''\n''));
return;
}
void Create(SECTOR *pSector, char path[255])
{
double fx, fy, fz, u, v;
int fnumvertex;
int fnumface;
int fvertactu;
int ffaceactu;
FILE *filein;
char oneline[255];
filein = fopen(path, "rt"); // File To Load World Data From
readstr(filein,oneline);
// sscanf(oneline, "i-mesh, Vertices: %o Faces: %o\n", &fnumvertex, &fnumface);
sscanf(oneline, "Tri-mesh, Vertices: %d Faces: %d\n", &fnumvertex, &fnumface);
//MessageBox(NULL,oneline,oneline,MB_OK);
pSector->numvertex=fnumvertex;
pSector->numface=fnumface;
pSector->pVertex = new VERTEX[((pSector->numvertex)+1)];
pSector->pFace = new FACE[((pSector->numface)+1)];
//pSector->pVertex = new VERTEX[((pSector->numvertex))];
//pSector->pFace = new FACE[((pSector->numface))];
for(int loop=0; loop < pSector->numvertex;loop++) // Get Vertex into Sector
{
readstr(filein,oneline);
sscanf(oneline, "Vertex %d: X: %f Y: %f Z: %f", &fvertactu, &fx, &fy, &fz);
pSector->pVertex[fvertactu].x=fx;
pSector->pVertex[fvertactu].y=fy;
pSector->pVertex[fvertactu].z=fz;
}
int fver1,fver2,fver3,fake;
for(int loop2=0; loop2 < pSector->numface;loop2++) // Get Faces into Sector
{
readstr(filein,oneline);
sscanf(oneline, "Face %d: A:%d B:%d C:%d AB:%d BC:%d CA:%d", &ffaceactu, &fver1, &fver2, &fver3, &fake, &fake, &fake);
VertexBindn(pSector->pFace[ffaceactu], pSector->pVertex[fver1], pSector->pVertex[fver2], pSector->pVertex[fver3]);
}
fclose(filein);
return;
}
void DrawingStuff()
{
SECTOR *test=new SECTOR;
Create(test,"data/model/bio.vfm");
glTranslatef(0.0f,0.0f,-50.0f);
DrawSector(test);
delete test;
test=0;
// .vfm is a renamed .asc
}
(you can find me on IRC : #opengl on undernet)
where did u get the information for the asc file type?
~prevail by daring to fail~
~prevail by daring to fail~
Just export a model from 3D studio max to the ASC file format....then open the file with a word editor
This way you can see the values of each vertex, face, material, texture(U/V) etc etc etc.....
You don''t really need a file explaining the ASC format...you can just reed it yourself
Phantom
This way you can see the values of each vertex, face, material, texture(U/V) etc etc etc.....
You don''t really need a file explaining the ASC format...you can just reed it yourself
Phantom
Yeah, that''s why it''s called asc :o) (ascii)
So, where''s the error ?
So, where''s the error ?
(you can find me on IRC : #opengl on undernet)
i did notice oone thing while working on the asc importer you have 2 drawface(); functions!
~prevail by daring to fail~
~prevail by daring to fail~
Yeah, I do, one to draw a face with 3 vertex and one with the face, is there a problem about it ?
Edited by - SKSlayer on June 1, 2000 6:49:22 AM
Edited by - SKSlayer on June 1, 2000 6:49:22 AM
(you can find me on IRC : #opengl on undernet)
being as computers are a bit thick how do they know whichone to choose?
~prevail by daring to fail~
~prevail by daring to fail~
It''s called function overloading. There are no problems as long as the inputs and returns to the function don''t match exactly (in other words the prototypes don''t match).
Morgan
Morgan
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement