![]() |
GLam Collection version 0.4 - | ACCUEIL - CLASSES - HIERARCHIE - MEMBRES - EXEMPLES |
Chargement d'un Wavefront OBJ + MTL ( expérimental ). Plus de détails...
#include <glamobjfile.h>
Fonctions membres publiques | |
GLamObjFile (const char *filename) | |
~GLamObjFile () | |
void | create () |
void | resize (double size=1.0) |
double | scale () const |
double | x () const |
double | y () const |
double | z () const |
Chargement d'un Wavefront OBJ + MTL ( expérimental ).
La classe GLamObjFile permet le chargement d'un fichier modèle .obj et de son fichier associé .mtl (même radical).
La classe ne reconnait et ne prend en compte que les lignes commençant par v, vt, vn, g, f, mtllib et usemtl ( cf. spécifications format OBJ ). Pour le format MTL, les commandes reconnues sont : newmtl, Ns, Ka, Kd, Ks, Tr et d.
L'exemple ci-dessous suppose la présence des fichiers f-16.obj, f-16.mtl, matra-f1.obj et matra-f1.mtl dans un sous-répertoire data
du répertoire d'exécution...
// attributs GLamObjFile* objFile1 ; GLamObjFile* objFile2 ; // construction objFile1 = new GLamObjFile("data/f-16.obj"); objFile2 = new GLamObjFile("data/matra-f1.obj"); objFile1->resize(14) ; objFile2->resize(8) ; // projection sur la scène glPushMatrix() ; glRotated(90.0, 1, 0, 0 ) ; glPushMatrix() ; glTranslated( -4, 6, 4 ) ; glRotated(30.0, 0, 1, 1 ) ; objFile1->draw() ; glPopMatrix() ; glPushMatrix() ; glTranslated( -2, objFile2->y() / 2.0, 0 ) ; objFile2->draw() ; glPopMatrix() ; glPopMatrix() ; | ![]() |
GLamObjFile::GLamObjFile | ( | const char * | filename | ) |
Constructeur. L'argument filename spécifie le chemin vers le fichier .obj à charger.
GLamObjFile::~GLamObjFile | ( | ) |
Destructeur.
void GLamObjFile::create | ( | ) | [virtual] |
Méthode de dessin utilisée par la classe de base pour générer la display list de l'objet. Les programmes clients ne doivent normalement pas invoquer directement cette méthode, mais préférer la méthode draw() qui exploite la primitive OpenGL glCallList()
.
Implémente GLamObject.
void GLamObjFile::resize | ( | double | size = 1.0 |
) |
Fixe le volume max. size x size x size du modèle, et centre celui-ci sur l'origine du repère.
double GLamObjFile::scale | ( | ) | const [inline] |
Echelle courante du modèle, modifiable par resize().
double GLamObjFile::x | ( | ) | const [inline] |
Longueur du modèle.
double GLamObjFile::y | ( | ) | const [inline] |
Largeur du modèle.
double GLamObjFile::z | ( | ) | const [inline] |
Epaisseur du modèle.