public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if (cmd.equals("del")) { try { UnionSet set = (UnionSet) ref.getData(); SampledSet[] sets = set.getSets(); SampledSet[] new_sets = new SampledSet[sets.length - 1]; System.arraycopy(sets, 0, new_sets, 0, sets.length - 1); ref.setData(new UnionSet(set.getType(), new_sets)); } catch (VisADException ex) { } catch (RemoteException ex) { } } else if (cmd.equals("fill")) { UnionSet set = null; try { set = (UnionSet) ref.getData(); System.out.println("area = " + DelaunayCustom.computeArea(set)); } catch (VisADException ex) { System.out.println(ex.getMessage()); } try { // Irregular2DSet new_set = DelaunayCustom.fill(set); Irregular2DSet new_set = DelaunayCustom.fillCheck(set, false); if (new_ref == null) { new_ref = new DataReferenceImpl("fill"); ConstantMap[] cmaps = new ConstantMap[] { new ConstantMap(1.0, Display.Blue), new ConstantMap(1.0, Display.Red), new ConstantMap(0.0, Display.Green) }; DataRenderer renderer = (display instanceof DisplayImplJ3D) ? (DataRenderer) new DefaultRendererJ3D() : (DataRenderer) new DefaultRendererJ2D(); renderer.suppressExceptions(true); display.addReferences(renderer, new_ref, cmaps); } new_ref.setData(new_set); } catch (VisADException ex) { System.out.println(ex.getMessage()); } catch (RemoteException ex) { System.out.println(ex.getMessage()); } } else if (cmd.equals("lines")) { try { lines = !lines; GraphicsModeControl mode = display.getGraphicsModeControl(); if (lines) { mode.setPolygonMode(DisplayImplJ3D.POLYGON_LINE); } else { mode.setPolygonMode(DisplayImplJ3D.POLYGON_FILL); } } catch (VisADException ex) { System.out.println(ex.getMessage()); } catch (RemoteException ex) { System.out.println(ex.getMessage()); } } }
void setupServerData(LocalDisplay[] dpys) throws RemoteException, VisADException { RealType[] time = {RealType.Time}; RealType[] types = {RealType.Latitude, RealType.Longitude}; RealTupleType earth_location = new RealTupleType(types); RealType vis_radiance = RealType.getRealType("vis_radiance"); RealType ir_radiance = RealType.getRealType("ir_radiance"); RealType[] types2 = {vis_radiance, ir_radiance}; RealTupleType radiance = new RealTupleType(types2); FunctionType image_tuple = new FunctionType(earth_location, radiance); RealType[] types4 = {ir_radiance, vis_radiance}; RealTupleType ecnaidar = new RealTupleType(types4); FunctionType image_bumble = new FunctionType(earth_location, ecnaidar); RealTupleType time_type = new RealTupleType(time); FunctionType time_images = new FunctionType(time_type, image_tuple); int size = 64; FlatField imaget1 = FlatField.makeField(image_tuple, size, false); FlatField wasp = FlatField.makeField(image_bumble, size, false); int ntimes1 = 4; double start = new DateTime(1999, 122, 57060).getValue(); Set time_set = new Linear1DSet(time_type, start, start + 3600.0 * (ntimes1 - 1.0), ntimes1); FieldImpl image_sequence = new FieldImpl(time_images, time_set); FlatField temp = imaget1; Real[] reals30 = { new Real(vis_radiance, (float) size / 4.0f), new Real(ir_radiance, (float) size / 8.0f) }; RealTuple val = new RealTuple(reals30); for (int i = 0; i < ntimes1; i++) { image_sequence.setSample(i, temp); temp = (FlatField) temp.add(val); } dpys[0].addMap(new ScalarMap(RealType.Latitude, Display.YAxis)); dpys[0].addMap(new ScalarMap(RealType.Longitude, Display.XAxis)); dpys[0].addMap(new ScalarMap(vis_radiance, Display.Red)); dpys[0].addMap(new ScalarMap(ir_radiance, Display.Green)); dpys[0].addMap(new ConstantMap(0.5, Display.Blue)); dpys[0].addMap(new ScalarMap(RealType.Time, Display.ZAxis)); GraphicsModeControl mode = dpys[0].getGraphicsModeControl(); mode.setScaleEnable(true); DataReference ref_image_sequence = new DataReferenceImpl("ref_big_tuple"); ref_image_sequence.setData(image_sequence); dpys[0].addReference(ref_image_sequence, null); }
void setupServerData(LocalDisplay[] dpys) throws RemoteException, VisADException { RealType ir_radiance = RealType.getRealType("ir_radiance"); RealType count = RealType.getRealType("count"); FunctionType ir_histogram = new FunctionType(ir_radiance, count); RealType vis_radiance = RealType.getRealType("vis_radiance"); int size = 64; FlatField histogram1 = FlatField.makeField(ir_histogram, size, false); Real direct = new Real(ir_radiance, 2.0); Real[] reals3; reals3 = new Real[] {new Real(count, 1.0), new Real(ir_radiance, 2.0), new Real(vis_radiance, 1.0)}; RealTuple direct_tuple = new RealTuple(reals3); dpys[0].addMap(new ScalarMap(vis_radiance, Display.ZAxis)); dpys[0].addMap(new ScalarMap(ir_radiance, Display.XAxis)); dpys[0].addMap(new ScalarMap(count, Display.YAxis)); dpys[0].addMap(new ScalarMap(count, Display.Green)); GraphicsModeControl mode = dpys[0].getGraphicsModeControl(); mode.setPointSize(5.0f); mode.setPointMode(false); mode.setScaleEnable(true); DisplayRendererJ3D dr = (DisplayRendererJ3D) dpys[0].getDisplayRenderer(); dr.setClip(0, true, 1.0f, 0.0f, 0.0f, -1.0f); dr.setClip(1, true, -1.0f, 0.0f, 0.0f, -1.0f); dr.setClip(2, true, 0.0f, 1.0f, 0.0f, -1.0f); dr.setClip(3, true, 0.0f, -1.0f, 0.0f, -1.0f); dr.setClip(4, true, 0.0f, 0.0f, 1.0f, -1.0f); dr.setClip(5, true, 0.0f, 0.0f, -1.0f, -1.0f); DataReferenceImpl ref_direct = new DataReferenceImpl("ref_direct"); ref_direct.setData(direct); DataReference[] refs1 = new DataReferenceImpl[] {ref_direct}; dpys[0].addReferences(new DirectManipulationRendererJ3D(), refs1, null); DataReferenceImpl ref_direct_tuple; ref_direct_tuple = new DataReferenceImpl("ref_direct_tuple"); ref_direct_tuple.setData(direct_tuple); DataReference[] refs2 = new DataReference[] {ref_direct_tuple}; dpys[0].addReferences(new DirectManipulationRendererJ3D(), refs2, null); DataReferenceImpl ref_histogram1; ref_histogram1 = new DataReferenceImpl("ref_histogram1"); ref_histogram1.setData(histogram1); DataReference[] refs3 = new DataReference[] {ref_histogram1}; dpys[0].addReferences(new DirectManipulationRendererJ3D(), refs3, null); new Delay(500); dpys[1].addMap(new ScalarMap(ir_radiance, Display.XAxis)); dpys[1].addMap(new ScalarMap(count, Display.YAxis)); dpys[1].addMap(new ScalarMap(count, Display.Green)); GraphicsModeControl mode2 = dpys[1].getGraphicsModeControl(); mode2.setPointSize(5.0f); mode2.setPointMode(false); dpys[1].addReferences(new DirectManipulationRendererJ2D(), refs1, null); dpys[1].addReferences(new DirectManipulationRendererJ2D(), refs2, null); dpys[1].addReferences(new DirectManipulationRendererJ2D(), refs3, null); dpys[0].addDisplayListener(this); dpys[1].addDisplayListener(this); }
void setupServerData(LocalDisplay[] dpys) throws RemoteException, VisADException { RealType xr = RealType.getRealType("xr"); RealType yr = RealType.getRealType("yr"); RealType zr = RealType.getRealType("zr"); RealType wr = RealType.getRealType("wr"); RealType[] types3d = {xr, yr, zr}; RealTupleType earth_location3d = new RealTupleType(types3d); FunctionType grid_tuple = new FunctionType(earth_location3d, wr); // int NX = 32; // int NY = 32; // int NZ = 32; int NX = 35; int NY = 35; int NZ = 35; Integer3DSet set = new Integer3DSet(NX, NY, NZ); FlatField grid3d = new FlatField(grid_tuple, set); float[][] values = new float[1][NX * NY * NZ]; int k = 0; for (int iz = 0; iz < NZ; iz++) { // double z = Math.PI * (-1.0 + 2.0 * iz / (NZ - 1.0)); double z = Math.PI * (-1.0 + 2.0 * iz * iz / ((NZ - 1.0) * (NZ - 1.0))); for (int iy = 0; iy < NY; iy++) { double y = -1.0 + 2.0 * iy / (NY - 1.0); for (int ix = 0; ix < NX; ix++) { double x = -1.0 + 2.0 * ix / (NX - 1.0); double r = x - 0.5 * Math.cos(z); double s = y - 0.5 * Math.sin(z); double dist = Math.sqrt(r * r + s * s); values[0][k] = (float) ((dist < 0.1) ? 10.0 : 1.0 / dist); k++; } } } grid3d.setSamples(values); dpys[0].addMap(new ScalarMap(xr, Display.XAxis)); dpys[0].addMap(new ScalarMap(yr, Display.YAxis)); dpys[0].addMap(new ScalarMap(zr, Display.ZAxis)); ScalarMap xrange = new ScalarMap(xr, Display.SelectRange); ScalarMap yrange = new ScalarMap(yr, Display.SelectRange); ScalarMap zrange = new ScalarMap(zr, Display.SelectRange); dpys[0].addMap(xrange); dpys[0].addMap(yrange); dpys[0].addMap(zrange); GraphicsModeControl mode = dpys[0].getGraphicsModeControl(); mode.setScaleEnable(true); if (nice) mode.setTransparencyMode(DisplayImplJ3D.NICEST); mode.setTexture3DMode(texture3DMode); // new RealType duh = RealType.getRealType("duh"); int NT = 32; Linear2DSet set2 = new Linear2DSet(0.0, (double) NX, NT, 0.0, (double) NY, NT); RealType[] types2d = {xr, yr}; RealTupleType domain2 = new RealTupleType(types2d); FunctionType ftype2 = new FunctionType(domain2, duh); float[][] v2 = new float[1][NT * NT]; for (int i = 0; i < NT * NT; i++) { v2[0][i] = (i * i) % (NT / 2 + 3); } // float[][] v2 = {{1.0f,2.0f,3.0f,4.0f}}; FlatField field2 = new FlatField(ftype2, set2); field2.setSamples(v2); dpys[0].addMap(new ScalarMap(duh, Display.RGB)); ScalarMap map1color = new ScalarMap(wr, Display.RGBA); dpys[0].addMap(map1color); ColorAlphaControl control = (ColorAlphaControl) map1color.getControl(); control.setTable(buildTable(control.getTable())); DataReferenceImpl ref_grid3d = new DataReferenceImpl("ref_grid3d"); ref_grid3d.setData(grid3d); DataReferenceImpl ref2 = new DataReferenceImpl("ref2"); ref2.setData(field2); ConstantMap[] cmaps = {new ConstantMap(0.0, Display.TextureEnable)}; dpys[0].addReference(ref2, cmaps); dpys[0].addReference(ref_grid3d, null); }