Hi Desiree,
> I did manage to include the with VisAD created Delaunay Shape3D Object in
> my application.
Great.
> /**
> * Triangulation of given set of points with delaunay. This method
> * throws an event, when 3D-Objects are ready. See displayChanged.
> */
> public void makeSurface() {
> //System.out.println("Hallo Delaunay!");
> RealType x = RealType.getRealType("x");
> RealType y = RealType.getRealType("y");
> RealType height = RealType.getRealType("height");
> try {
> RealTupleType xy = new RealTupleType(x, y);
> FunctionType terrain_type = new FunctionType(xy, height);
> Irregular2DSet set = new Irregular2DSet(xy,new float[][]
> {eastValues,northValues});
> FlatField terrain = new FlatField(terrain_type, set);
> terrain.setSamples(new float[][] {heightValues});
>
> 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);
>
> hoxmap.setRange(-1.0, 1.0);
> reymap.setRange(-1.0, 1.0);
> heightmap.setRange(-1.0, 1.0);
>
> DataReferenceImpl data_ref = new
> DataReferenceImpl("data_ref");
> data_ref.setData( terrain );
> renderer = new DefaultRendererJ3D();
> display.addReferences(renderer,data_ref);
> display.addDisplayListener(listener);
> }
> catch (VisADException ve) {
> System.out.println("VisAd TupleType Exception");
> }
> catch (RemoteException re) {
> System.out.println("RemoteExcpetion");
> }
> //System.out.println("Delaunay ende!");
> }
>
> Is it possible with visad to get a shap3d of a part of this triangulation?
> Say, I do have coordinates of a point and want to clip the parts of the
> object, which are more far away, than 10m, or something similar?
Yes, if you want to clip in x, y and/or height. Just add
ScalarMaps from any of them to Display.SelectRange, then
do something like:
RangeControl control = (RangeControl) range_map.getControl();
control.setRange(low, hi); // set low and hi clip values
Note this is different from ScalarMap.setRange(). It should
give you the part of the irregular syrface within the clip range(s).
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