void Base::draw() { glPushMatrix(); glTranslatef(x,0.0f,0.0f); // Draw a rectangle. glColor3f(0.58f,0.29f,0.0f); glBegin(GL_QUADS); glVertex2f(-1*(width/2),-15); glVertex2f(width/2,-15); glVertex2f(width/2,15); glVertex2f(-1*(width/2),15); glEnd(); // Draw wheels. glPushMatrix(); glTranslatef(-1.0f*(width/2.0f), 15.0f, 0.0f); wheels[0]->draw(); glPopMatrix(); glPushMatrix(); glTranslatef((width/2.0f), 15.0f, 0.0f); wheels[1]->draw(); glPopMatrix(); // Draw attachments. for(int i = 0; i < 3; i++) { if(attachments[i]) { glPushMatrix(); glTranslatef( (-1.0f*(width/2.0f)+(i*(width/3.0f))), -25.0f, 0.0f ); attachments[i]->draw(); glPopMatrix(); glPushMatrix(); glTranslatef( (-1.0f*(width/2.0f)+(i*(width/3.0f))), -15.0f, 0.0f ); Rotator *r = new Rotator(); r->draw(); glPopMatrix(); } } glPopMatrix(); }