All pastes #164607 Raw Edit

Mine

public text v1 · immutable
·published 2006-09-08 20:05 UTC
rendered paste body
void WorldPolygon::draw (  bool drawWires )
{
	TextureSystem &ts = TextureSystem::Instance() ;

	if (textureID >= 0 || texture.size() )
	{
		if ( textureID < 0 )
			textureID = ts.getID(texture);

		ts.bind(textureID);
	}
	else
		glDisable(GL_TEXTURE_2D);

	if (!selected)
		glColor4f(color.r,color.g,color.b,color.a);
	else
		glColor4f(0.5f,0,0,1);

	glBegin(GL_POLYGON);
	for ( unsigned int i = 0; i < verts.size(); i++)
	{
		glNormal3f(norms[i].X(),norms[i].Y(),norms[i].Z());
		glTexCoord2f(uvs[i].s,uvs[i].t);
		glVertex3f(verts[i].X(),verts[i].Y(),verts[i].Z());
	}
	glEnd();

	if (drawWires)
	{
		glDisable(GL_TEXTURE_2D);
		glDisable(GL_LIGHTING);

		glDepthFunc(GL_LEQUAL);
		glLineWidth(3.0f);
		if (!selected)
			glColor4f(0.5f,0.5f,0.5f,0.5f);
		else
			glColor4f(1,0,0,0.75f);

		glPolygonOffset(-1,-1);

		glEnable(GL_POLYGON_OFFSET_LINE);
		glBegin(GL_LINE_LOOP);
		for ( unsigned int i = 0; i < verts.size(); i++)
		{
			glNormal3f(norms[i].X(),norms[i].Y(),norms[i].Z());
			glTexCoord2f(uvs[i].s,uvs[i].t);
			glVertex3f(verts[i].X(),verts[i].Y(),verts[i].Z());
		}
		glEnd();
		glDepthFunc(GL_LESS);
		glDisable(GL_POLYGON_OFFSET_LINE);
		glLineWidth(1.0f);

		glEnable(GL_LIGHTING);
	}
	glEnable(GL_TEXTURE_2D);
}