void CWorldGeometry::Compile() { glNewList(1000 + m_geometry_id, GL_COMPILE); //need to add this to make sure we're not touching shays unsigned int i, a; for(i = 0; i < m_surfaces.size(); i++) { //printf("\nCWordGeometry::Compile() Surface %d\n", i); glBindTexture(GL_TEXTURE_2D, m_surfaces[i].GetTexture()); //printf("CWorldGeometry::Compile() Texture: %d\n", m_surfaces[i].GetTexture()); glNormal3fv(m_surfaces[i].GetNormal().GetArrayPtr()); //printf("CWorldGeometry::Compile() Normal: %f, %f, %f\n", // m_surfaces[i].GetNormal().GetArrayPtr()[0], // m_surfaces[i].GetNormal().GetArrayPtr()[1], // m_surfaces[i].GetNormal().GetArrayPtr()[2]); glBegin(GL_POLYGON); for(a = 0; a < m_surfaces[i].GetNumVertices(); a++) { glTexCoord2f(m_surfaces[i].GetTexCoord(a).u, //u axis m_surfaces[i].GetTexCoord(a).v); //v axis //printf("CWorldGeometry::Compile() TexCoord: %f, %f\n", m_surfaces[i].GetTexCoord(a).u, // m_surfaces[i].GetTexCoord(a).u); glVertex3fv(m_surfaces[i].GetVertex(a).GetArrayPtr()); //printf("CWorldGeometry::Compile() Vert: %f, %f, %f\n", m_surfaces[i].GetVertex(a).GetArrayPtr()[0], // m_surfaces[i].GetVertex(a).GetArrayPtr()[1], // m_surfaces[i].GetVertex(a).GetArrayPtr()[2]); } glEnd(); } glEndList(); printf("Making bound box...\n"); BuildBoundBox(); printf("CWorldGeometry: Compiled geometry %d\n", 1000 + m_geometry_id); }
CWorldGeometry::CWorldGeometry(vector<CWorldGeometrySurface>& surfaces) { m_surfaces = surfaces; BuildBoundBox(); }
CWorldGeometry::CWorldGeometry(vector<CWorldGeometrySurface> *surfaces, unsigned int group) { m_surfaces = *surfaces; BuildBoundBox(); m_geometry_group = group; }