#include "object.h" #include #include Object::Object() { } Object::~Object() { } void Object::Load(ifstream *file) { fprintf(stderr, "Loading Object: \n"); char* tempchar=new char[500]; file->getline(tempchar,500,'\n'); sscanf(tempchar,"translate: %lf %lf %lf",&Translate.x,&Translate.y,&Translate.z); file->getline(tempchar,500,'\n'); sscanf(tempchar,"rotate: %lf %lf %lf",&Rotate.x,&Rotate.y,&Rotate.z); file->getline(tempchar,500,'\n'); sscanf(tempchar,"scale: %lf %lf %lf",&Scale.x,&Scale.y,&Scale.z); file->getline(tempchar,500,'\n'); sscanf(tempchar,"Vertexcount %ui",&vertexcount); Vertices=new float[vertexcount*3]; fprintf(stderr, "vertexcount: %i ",vertexcount); for(unsigned int i=0;igetline(tempchar,500,'\n'); //sscanf(tempchar,"vertex %ui %lf %lf %lf",&v); file->getline(tempchar,500,'\n'); sscanf(tempchar,"%f %f %f",&Vertices[3*i],&Vertices[3*i+1],&Vertices[3*i+2]); } file->getline(tempchar,500,'\n'); sscanf(tempchar,"Facecount %ui",&facecount); fprintf(stderr, "Facecount: %i\n",facecount); Normals=new float[9*facecount]; Indexes=new unsigned int[3*facecount]; TexCoords=new float[6*facecount]; AllVertices=new float[9*facecount]; unsigned int f; for(int i=0;igetline(tempchar,500,':'); //eatwhitespace?? bool more=true; while (more) { file->getline(tempchar,500,' '); if(tempchar[0]!=0) more=false; } sscanf(tempchar,"%ui",&Indexes[3*i]); more=true; while (more) { file->getline(tempchar,500,' '); if(tempchar[0]!=0) more=false; } sscanf(tempchar,"%ui",&Indexes[3*i+1]); more=true; while (more) { file->getline(tempchar,500,' '); if(tempchar[0]!=0) more=false; } sscanf(tempchar,"%ui",&Indexes[3*i+2]); file->getline(tempchar,500,'\n'); file->getline(tempchar,500,'\n');//uvs file->getline(tempchar,500,'\n');//normals file->getline(tempchar,500,'\n'); sscanf(tempchar,"%f %f",&TexCoords[6*i],&TexCoords[6*i+1]); file->getline(tempchar,500,'\n'); sscanf(tempchar,"%f %f",&TexCoords[6*i+2],&TexCoords[6*i+3]); file->getline(tempchar,500,'\n'); sscanf(tempchar,"%f %f",&TexCoords[6*i+4],&TexCoords[6*i+5]); file->getline(tempchar,500,'\n'); sscanf(tempchar,"%f %f %f",&Normals[9*i],&Normals[9*i+1],&Normals[9*i+2]); file->getline(tempchar,500,'\n'); sscanf(tempchar,"%f %f %f",&Normals[9*i+3],&Normals[9*i+4],&Normals[9*i+5]); file->getline(tempchar,500,'\n'); sscanf(tempchar,"%f %f %f",&Normals[9*i+6],&Normals[9*i+7],&Normals[9*i+8]); } fprintf(stderr, "Building vertex buffer...\n"); for(int i=0;i