/* render/face.cc This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #include "render/face.h" #include "render/gl.h" namespace render { Face::Face(math::Vector3f const & normal, math::Color const *color) : face_normal(normal) { face_normal.normalize(); if (color) face_color = new math::Color(*color); else face_color = 0; } Face::~Face() { for (std::vector::iterator it = face_vertex.begin(); it != face_vertex.end(); it++) { delete (*it); } face_vertex.clear(); if (face_color) delete face_color; } void Face::add_vertex(math::Vector3f const & vertex) { math::Vector3f *v = new math::Vector3f(vertex); face_vertex.push_back(v); } void Face::draw() { //gl::begin(gl::LineLoop); gl::begin(gl::Polygon); for (std::vector::iterator it = face_vertex.begin(); it != face_vertex.end(); it++) { gl::vertex(*(*it)); } gl::end(); } }