1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| Ma class CObject :
#pragma once
#include "Object.h"
CObject G_Object[200];
float V[10000][5]; int nV;
float Vt[1000][5]; int nVt;
float Vn[10000][5]; int nVn;
float F[10000][5]; int nF;
void CObject::Init()
{
G_Object[0].Load("box.obj");
G_Object[1].Load("Sphere.obj");
}
void CObject::Load(char *FileObj)
{
Destroy();
....
if(strcmp(lineHeader,"v")==0) {fscanf(objfile,"%f %f %f\n",&V[nV][0],&V[nV][1],&V[nV][2]); nV++;}
else if(strcmp(lineHeader,"vt")==0){fscanf(objfile,"%f %f %f\n",&Vt[nVt][0],&Vt[nVt][1],&Vt[nVt][2]); nVt++;}
else if(strcmp(lineHeader,"vn")==0){fscanf(objfile,"%f %f %f\n",&Vn[nVn][0],&Vn[nVn][1],&Vn[nVn][2]); nVn++;}
else if(strcmp(lineHeader,"f")==0) {fscanf(objfile,"%f/%f/%d %f/%f/%f %f/%f/%f\t",&F[nF+1][0],&F[nF+1][1],&F[nF+1][2],&F[nF+2][0],&F[nF+2][1],&F[nF+2][2],&F[nF+3][0],&F[nF+3][1],&F[nF+3][2]);nF+=3;}
...
}
void CObject::Position(float X0, float Y0, float Z0)
{
ObjectPositon.X=X0;
ObjectPositon.Y=Y0;
ObjectPositon.Z=Z0;
}
void CObject::Draw()
{
....
glPushMatrix();
glTranslatef(ObjectPositon.X,ObjectPositon.Y,ObjectPositon.Z);
glEnable(GL_BLEND);
glBegin(GL_TRIANGLES);
...
glEnd();
glDisable(GL_BLEND);
glPopMatrix();
}
void CObject::Destroy()
{
delete [] V;
delete [] Vn;
delete [] Vt;
nV=0;
nVt=0;
nVn=0;
nF=0;
} |
Partager