#include "model.h" Model::Model(Array* _faces) { faces = new Array(*_faces); Vec c = calcCenter(); setCenter(c); rotation = new Vec(0,0,0); } Model::~Model() { delete position; delete rotation; delete faces; } void Model::setCenter(Vec& c) { delete position; position = c.clone(); } Vec Model::calcCenter() { Vec s(0,0,0); Poly* t; faces->reset(); while ( t = (Poly*)faces->next() ) { s = s + t->calcCenter(); } return s/((float)faces->length()); } void Model::rotate(Vec rot) { rotation->add(rot); faces->reset(); Poly* t; while ( t = (Poly*)faces->next() ) { t->rotate(rot); } } void Model::draw() { faces->reset(); Poly* t; while ( t = (Poly*)faces->next() ) { t->draw(); } } void Model::addFace(Poly* face) { faces->push(face); } int Model::numberOfFaces() { return faces->length(); }