/* * $Id: appearance.cpp,v 1.9 2002/07/15 22:03:23 msell Exp $ * * * $Log: appearance.cpp,v $ * Revision 1.9 2002/07/15 22:03:23 msell * MultiAppearance * * Revision 1.8 2002/06/24 14:12:15 msell * Nyt toimii sphere -> mesh -törmäykset, ihan tosi * * Revision 1.7 2002/06/20 00:21:01 jkaarlas * materiaali- ja tekstuurihommia edistetty * * Revision 1.6 2002/06/17 20:49:04 msell * free -> SDL_FreeSurface * * Revision 1.5 2002/06/16 01:04:58 jkaarlas * tulipa säädettyä includejen kanssa. oon tod.näk. eri mieltä aamulla * * Revision 1.4 2002/06/05 23:55:46 msell * Pallo * * Revision 1.3 2002/06/03 23:20:43 msell * no message * * Revision 1.2 2002/06/03 23:06:38 msell * no message * * Revision 1.1 2002/06/02 16:57:37 msell * Objektirakenteen pohja * * * * $Date: 2002/07/15 22:03:23 $ * */ #include "main.h" #include "appearance.h" #include "utils.h" #include "3dutils.h" #include "glapi.h" Appearance::Appearance(void){ } void Appearance::prepare(void){ } /*BoxAppearance::BoxAppearance(void){ setDimension(-1, 1, -1, 1, -1, 1); } BoxAppearance::setDimension(float x1, float x2, float y1, float y2, float z1, float z2){ if (x1 > x2) swapFloat(&x1, &x2); if (y1 > y2) swapFloat(&y1, &y2); if (z1 > z2) swapFloat(&z1, &z2); this->x1 = x1; this->x2 = x2; this->y1 = y1; this->y2 = y2; this->z1 = z1; this->z2 = z2; } void BoxAppearance::draw(void){ this->material.enable(); glBegin(GL_QUADS); //Front Face glNormal3f(0, 0, 1); glVertex3f(x1, y1, z2); glVertex3f(x2, y1, z2); glVertex3f(x2, y2, z2); glVertex3f(x1, y2, z2); // Back Face glNormal3f(0, 0, -1); glVertex3f(x1, y1, z1); glVertex3f(x1, y2, z1); glVertex3f(x2, y2, z1); glVertex3f(x2, y1, z1); // Top Face glNormal3f(0, 1, 0); glVertex3f(x1, y2, z1); glVertex3f(x1, y2, z2); glVertex3f(x2, y2, z2); glVertex3f(x2, y2, z1); // Bottom Face glNormal3f(0, -1, 0); glVertex3f(x1, y1, z1); glVertex3f(x2, y1, z1); glVertex3f(x2, y1, z2); glVertex3f(x1, y1, z2); // Right face glNormal3f(x2, 0, 0); glVertex3f(x2, y1, z1); glVertex3f(x2, y2, z1); glVertex3f(x2, y2, z2); glVertex3f(x2, y1, z2); // Left Face glNormal3f(x1, 0, 0); glVertex3f(x1, y1, z1); glVertex3f(x1, y1, z2); glVertex3f(x1, y2, z2); glVertex3f(x1, y2, z1); glEnd(); this->material.disable(); }*/ Material* Appearance::getMaterial(void){ return &this->material; } void Appearance::setMaterial(Material matsku){ material = matsku; } MultiAppearance::MultiAppearance(void){ appearances = NULL; } void MultiAppearance::addAppearance(Appearance *appearance){ appearancelist *node = new appearancelist; node->data = appearance; node->next = appearances; appearances = node; } void MultiAppearance::prepare(void){ appearancelist *node = appearances; while (node != NULL){ node->data->prepare(); node = node->next; } } void MultiAppearance::draw(void){ appearancelist *node = appearances; while (node != NULL){ node->data->draw(); node = node->next; } }