Пример #1
0
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);
}
Пример #2
0
CWorldGeometry::CWorldGeometry(vector<CWorldGeometrySurface>& surfaces)
{
	m_surfaces = surfaces;
	BuildBoundBox();
}
Пример #3
0
CWorldGeometry::CWorldGeometry(vector<CWorldGeometrySurface> *surfaces, unsigned int group)
{
	m_surfaces = *surfaces;
	BuildBoundBox();
	m_geometry_group = group;
}