private static List<VertexData> processTriangleFan(Mesh mesh,
            int[] index, Vector3f[] v, Vector2f[] t) {
        
        IndexBuffer indexBuffer = mesh.getIndexBuffer();
        FloatBuffer vertexBuffer = (FloatBuffer) mesh.getBuffer(Type.Position).getData();
        FloatBuffer textureBuffer = (FloatBuffer) mesh.getBuffer(Type.TexCoord).getData();

        List<VertexData> vertices = initVertexData(vertexBuffer.limit() / 3);

        index[0] = indexBuffer.get(0);
        index[1] = indexBuffer.get(1);

        populateFromBuffer(v[0], vertexBuffer, index[0]);
        populateFromBuffer(v[1], vertexBuffer, index[1]);

        populateFromBuffer(t[0], textureBuffer, index[0]);
        populateFromBuffer(t[1], textureBuffer, index[1]);

        for (int i = 2; i < vertexBuffer.limit() / 3; i++) {
            index[2] = indexBuffer.get(i);
            populateFromBuffer(v[2], vertexBuffer, index[2]);
            populateFromBuffer(t[2], textureBuffer, index[2]);

            TriangleData triData = processTriangle(index, v, t);
            vertices.get(index[0]).triangles.add(triData);
            vertices.get(index[1]).triangles.add(triData);
            vertices.get(index[2]).triangles.add(triData);

            Vector3f vTemp = v[1];
            v[1] = v[2];
            v[2] = vTemp;

            Vector2f tTemp = t[1];
            t[1] = t[2];
            t[2] = tTemp;

            index[1] = index[2];
        }

        return vertices;
    }
A private constructor to inhibit instantiation of this class.
jme3-core/src/main/java/com/jme3/util/TangentBinormalGenerator.java