[Bill]
> did you also copy the colors (if they are non-null)
> and especially the stripVertexCounts?
That did it Bill, I hadn't been setting the individual strip vertex counts.
So for reference, here's how to create Spheres as VisAD shapes from Sun's built
in ones (other shapes should be similar):
/*
import com.sun.j3d.utils.geometry.Sphere;
import javax.media.j3d.Appearance;
import javax.media.j3d.TriangleStripArray;
*/
VisADTriangleStripArray sphere_visad = new
VisADTriangleStripArray();
Sphere sphere_j3d = new Sphere(0.1f, new Appearance());
TriangleStripArray geom_j3d =
(TriangleStripArray)sphere_j3d.getShape().getGeometry();
sphere_visad.vertexCount = geom_j3d.getVertexCount();
sphere_visad.coordinates = new float[3 * geom_j3d.getVertexCount()];
geom_j3d.getCoordinates(0, sphere_visad.coordinates);
sphere_visad.normals = new float[3 * geom_j3d.getVertexCount()];
geom_j3d.getNormals(0, sphere_visad.normals);
sphere_visad.vertexFormat = geom_j3d.getVertexFormat();
sphere_visad.stripVertexCounts = new int[geom_j3d.getNumStrips()];
geom_j3d.getStripVertexCounts(sphere_visad.stripVertexCounts);
// Now use sphere_visad like any other VisAD shape, e.g. in
ShapeControl.setShape()
Thanks for the help
Steve Harris
Programmer
National Center for Toxicological Research, FDA