PositionTransformVertex[] verts = new PositionTransformVertex[coords.size() * 2];
PositionTransformVertex[] vertsTop = new PositionTransformVertex[coords.size()];
PositionTransformVertex[] vertsBottom = new PositionTransformVertex[coords.size()];
TexturedPolygon[] poly = new TexturedPolygon[coords.size() + 2];
Vec3 extrudeVector = Vec3.createVectorHelper(0, 0, depth);
setVectorRotations(extrudeVector, rotX, rotY, rotZ);
if(faceLengths != null && faceLengths.length < coords.size())
faceLengths = null;
float totalLength = 0;
for(int idx = 0; idx < coords.size(); idx++)
{
Coord2D curCoord = coords.get(idx);
Coord2D nextCoord = coords.get((idx + 1) % coords.size());
float texU1 = ((curCoord.uCoord + u) / textureWidth);
float texU2 = ((shapeTextureWidth * 2 - curCoord.uCoord + u) / textureWidth);
float texV = ((curCoord.vCoord + v) / textureHeight);
Vec3 vecCoord = Vec3.createVectorHelper(curCoord.xCoord, curCoord.yCoord, 0);
setVectorRotations(vecCoord, rotX, rotY, rotZ);
verts[idx] = new PositionTransformVertex(
x + (float)vecCoord.xCoord,