Im not sure about how the update should/could be made but have you tried the
GeomDataInterface for setting the floats in the geometry.
If you check this
http://xith.org/tutes/GettingStarted/html/more_fun_with_textures.html tutorial you see how its done in that way.
Its updating textureCoordinates, but im sure it works for all geometry data, at least all that i have tried ( coordinates, colors ).
So i geuss that instead of doing this
//point
geom[TMPsurff].setCoordinate((ff*3)+2,
new Point3f(
((float[])(((ArrayList)listOfSurff.get(TMPsurff)).get(TMPfaces[TMPsurff][ff][0])))[0],
((float[])(((ArrayList)listOfSurff.get(TMPsurff)).get(TMPfaces[TMPsurff][ff][0])))[1],
((float[])(((ArrayList)listOfSurff.get(TMPsurff)).get(TMPfaces[TMPsurff][ff][0])))[2]));
geom[TMPsurff].setCoordinate((ff*3)+1,...
geom[TMPsurff].setCoordinate((ff*3)+0,...
...
you could try doing this
//point
GeomDataInterface coords = ((GeometryArray)geom[TMPsurff]).getCoordinateData(0);
coords.setFloats((ff*3)+6,
((float[])(((ArrayList)listOfSurff.get(TMPsurff)).get(TMPfaces[TMPsurff][ff][0])))[0],
((float[])(((ArrayList)listOfSurff.get(TMPsurff)).get(TMPfaces[TMPsurff][ff][0])))[1],
((float[])(((ArrayList)listOfSurff.get(TMPsurff)).get(TMPfaces[TMPsurff][ff][0])))[2]);
coords.setFloats((ff*3)+3,...
coords.setFloats((ff*3)+0,...
...
Hope it works
