Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.

Re: Java3D shapes to visad shapes? - solved

[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


  • 2005 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the visad archives: