for (int t = 0, fSize = facing.size(); t < fSize; t++) {
for (int t = 0; t < maxIndex; t++) {
    public void recreateFaces() {        // make a copy of the original indices        IntBuffer index = BufferUtils.clone(target.getIndexBuffer());        index.clear();// TODO: To be useful, still needs to actually strip out the vertices unused.//        // holds the vertices//        FloatBuffer vertex = target.getVertexBuffer();////        // holds the number of real vertices//        int validVertices = 1;////        // Optimise out shared vertices to reduce the complexity of the shadow//        // volumes//        Vector3f test = new Vector3f();//        for (int i = 1, iSize = index.capacity(); i < iSize; i++) {//            BufferUtils.populateFromBuffer(test, vertex, index.get(i));//            for (int j = 0; j < i; j++) {//                BufferUtils.populateFromBuffer(compVect, vertex, index.get(j));//                // See if the tested vector is the same//                if (compVect.equals(test)) {//                    // swap the vertex for the duplicate one//                    index.put(i, index.get(j));//                    validVertices--;//                    break;//                }//            }//            validVertices++;//        }//                // Create a ShadowTriangle object for each face        faces = new ArrayList();        // Create a bitset for holding direction flags        facing = new BitSet(index.capacity() / 3);        // Loop through all of the triangles        for (int t = 0, fSize = facing.size(); t < fSize; t++) {            ShadowTriangle tri = new ShadowTriangle();            faces.add(tri);            int offset = t * 3;            int t0 = index.get(offset), t1 = index.get(offset+1), t2 = index.get(offset+2);            edgeConnected(t, index, t0, t1, tri.edge1);            edgeConnected(t, index, t1, t2, tri.edge2);            edgeConnected(t, index, t2, t0, tri.edge3);        }    }