00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "Cell.h"
00026
00027 #include "Constants.h"
00028 #include "Image.h"
00029
00030
00031 GLuint Cell::_tex_name = 0;
00032
00033 GLuint Cell::getTexName() {
00034 if(_tex_name == 0) {
00035
00036 Image texture("./textures/Cell.bmp");
00037 _tex_name = texture.genTexture2D();
00038 }
00039
00040 return _tex_name;
00041 }
00042
00043 void Cell::getColors(GLubyte &red, GLubyte &green, GLubyte &blue) {
00044 red = COLOR_MAX;
00045 green = COLOR_MAX;
00046 blue = COLOR_MAX;
00047 }
00048
00049 Cell::Cell() {
00050
00051 }
00052
00053 Cell::~Cell() {
00054
00055 }
00056
00057 void Cell::draw() {
00058 GLubyte red, green, blue;
00059
00060
00061 glDisable(GL_LIGHTING);
00062
00063 glEnable(GL_TEXTURE_2D);
00064
00065
00066 glBindTexture(GL_TEXTURE_2D, getTexName());
00067
00068
00069 glMatrixMode(GL_MODELVIEW);
00070 getColors(red, green, blue);
00071 glColor3ub(red, green, blue);
00072
00073
00074
00075 glBegin(GL_TRIANGLE_STRIP);
00076 glNormal3f(0.0, 1.0, 0.0);
00077 glTexCoord2f(0.0, 1.0); glVertex3f(-0.5 * CELL_SIZE, 0.0, -0.5 * CELL_SIZE);
00078 glTexCoord2f(0.0, 0.0); glVertex3f(-0.5 * CELL_SIZE, 0.0, 0.5 * CELL_SIZE);
00079 glTexCoord2f(1.0, 1.0); glVertex3f( 0.5 * CELL_SIZE, 0.0, -0.5 * CELL_SIZE);
00080 glTexCoord2f(1.0, 0.0); glVertex3f( 0.5 * CELL_SIZE, 0.0, 0.5 * CELL_SIZE);
00081 glEnd();
00082
00083
00084 glDisable(GL_TEXTURE_2D);
00085
00086 glEnable(GL_LIGHTING);
00087 }
00088
00089 unsigned int Cell::getFood() {
00090 return 0;
00091 }
00092
00093 unsigned int Cell::addFood(unsigned int inc) {
00094 return 0;
00095 }
00096
00097 unsigned int Cell::subFood(unsigned int inc) {
00098 return 0;
00099 }
00100
00101 bool Cell::reachable(Worshiper *w) {
00102 return false;
00103 }
00104
00105 std::list<Worshiper*>* Cell::getPeople() {
00106 return NULL;
00107 }
00108
00109 std::map<Pheromone*, unsigned int>* Cell::getPheromones() {
00110 return NULL;
00111 }
00112
00113 bool Cell::addWorshiper(Worshiper *w) {
00114 return false;
00115 }
00116
00117 bool Cell::removeWorshiper(const Worshiper *w) {
00118 return false;
00119 }
00120
00121 void Cell::addPheromone(Pheromone *p) {
00122
00123 }
00124
00125 Cell* Cell::makeActions() {
00126 return this;
00127 }