rendered paste bodyvoid 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);
}