Para possiblitar a carga de objetos gerados
neste tipo de modelador a SmallVR possui a classe SmVR_CObjFromFile.
Esta classe, apresentada a seguir, possui apenas 3 métodos virtuais
que permitem ler um objeto de disco, exibí-lo e destrui-lo.
class SmVR_CObjFromFile {Por ser uma classe virtual, esta classe, em si, não lê um objeto. Esta classe serve apenas de "molde" para a construção de uma classe derivada que, esta sim, irá ler e exibir o objeto.public:
virtual ~SmVR_CObjFromFile(void); // destroy the object
virtual int Load(char *); // load the object from disk
virtual void Render(void); // render the object using OpenGL
};
Esta classe tem sua estrutura declarada
no arquivo SmVR_CObjFromFile.h, que deve ser incluído no
programa.
Veja a seguir a descrição
desta classe:
// SmVR_COBJLoader.hPara utilizar um objeto lido de um arquivo OBJ, o programador deve tomar os seguintes passos:
#ifndef _SmVR_COBJLoader_
#define _SmVR_COBJLoader_
#define USE_RAPID 1
#include "OBJ_Texture_Lib.h"
#include "RAPID.H"
#include "RAPID_model_Reader.h"
class SmVR_COBJLoader:public SmVR_CObjFromFile
{
public:
SmVR_COBJLoader (void);
SmVR_COBJLoader (int rapid);
virtual ~SmVR_COBJLoader();
int Load(char *filename);
void Render();
void Remove();
void GetBoundaries(SmVR_CPoint *min, SmVR_CPoint *max);
void PrintEnvelope();
void InvertNormalOrientation(void);
//RAPID
int Collided(SmVR_CObjFromFile *obj,SmVR_Matrix mtx1,SmVR_Matrix mtx2,int mode);
RAPID_model* GetCollisionModel() {return &collisionModel;};
TVertices *GetVertices() { return obj.Vertices; };
void GetFace(int n, int v[3]);
int GetNFaces() { return obj.nFaces;};
char *GetFileName();
private:
TObject obj;
RAPID_model collisionModel;
int useRAPID;
};