Blame model.cpp

8ee194
8ee194
#include <gl gl.h=""></gl>
8ee194
8ee194
#include "model.h"
8ee194
8ee194
e31ea0
void Model::normalize() {
e31ea0
    for(TriangleList::iterator i = triangles.begin(); i != triangles.end(); ++i)
e31ea0
        i->normalize();
8ee194
}
8ee194
e31ea0
void Model::transform(const Matrix4 &matrix) {
e31ea0
    for(TriangleList::iterator i = triangles.begin(); i != triangles.end(); ++i)
e31ea0
        for(int j = 0; j < 3; ++j)
e31ea0
            i->vertices[j] = matrix.transform( i->vertices[j] );
e31ea0
    normalize();
e31ea0
}
8ee194
8ee194
void Model::draw() const {
8ee194
    glEnable(GL_LIGHTING);
8ee194
    
8ee194
    glColor4dv(color.c);
8ee194
    glBegin(GL_TRIANGLES);
8ee194
    for(TriangleList::const_iterator i = triangles.begin(); i != triangles.end(); ++i) {
8ee194
        glNormal3dv(i->normal.c);
8ee194
        glVertex3dv(i->vertices[0].c);
8ee194
        glVertex3dv(i->vertices[1].c);
8ee194
        glVertex3dv(i->vertices[2].c);
8ee194
    }
8ee194
    glEnd();
8ee194
8ee194
    glDisable(GL_LIGHTING);
8ee194
}
8ee194