Hi Desiree,
> Ok, hi I managed to get the Geometry and put it into a new Shape3D and
> displayed it. I was very happy, when I could see your surface in mine
> "GIS3DView"!
> Unfortunately it is not in the right place.
> I am displaying my other objects directly at their world coordinates.
> For example the surface I developed with VisAD has the following vertices:
VisAD scales values from data coordinates to display
coordinates. The default scales x, y and z all to be
in the range between -1.0 and 1.0. But it is easy to
change the default as follows:
> display = new DisplayImplJ3D("display1");
> ScalarMap hoxmap = new ScalarMap(x, Display.XAxis);
> ScalarMap reymap = new ScalarMap(y, Display.YAxis);
> ScalarMap heightmap = new ScalarMap(height,
> Display.ZAxis);
> display.addMap(hoxmap);
> display.addMap(reymap);
> display.addMap(heightmap);
Just add the following statements:
hoxmap.setRange(-1.0, 1.0);
reymap.setRange(-1.0, 1.0);
heightmap.setRange(-1.0, 1.0);
This says scale -1.0 to -1.0 and 1.0 to 1.0, so the scaling
is the identity. That is, no scaling.
It has occurred to me that there is another way to do what
you want:
RealType x = RealType.getRealType("x");
RealType y = RealType.getRealType("y");
RealType height = RealType.getRealType("height");
try {
RealTupleType xy = new RealTupleType(x, y);
Irregular2DSet set = new Irregular2DSet(xy, new float[][] {hox, rey});
float[][] samples = {hox, rey, heights};
RealTupleType xyh = new RealTupleType(x, y, height);
Irregular3DSet new_set = (Irregular3DSet)
set.makeSpatial(xyh, samples);
VisADTriangleStripArray array = new_set.make2DGeometry(null, false);
}
This is essentially what happens inside the DisplayImplJ3D.
I haven't tried this so can't be sure it will work, but
thought I'd pass it on.
Cheers,
Bill
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706
hibbard@xxxxxxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html