NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi Bill, Thanks a lot Bill for your kind suggestions. According to your mail yesterday we tried to work on labelling the real tuples with the vertex numbers(1, 2,... etc). We tried to do for one tuple according to the "Delaunay.java" and we found that only the label is visible and no real tuple. We want both of them to be visible and the vertex labelling to be displayed bit far away from the tuple. we worked on it and it is shown in our code commented. un-commenting the setdata() method, we cannot see even the tuples also and it gives exception. Please help us in this matter. Thanks a lot again, karan. Here is the code: ====================================================== /* * MouseCreateGeometry4.java * * Created on July 16, 2001, 2:53 PM */ import visad.*; import visad.java2d.DisplayImplJ2D; import visad.java3d.*; import java.rmi.RemoteException; import javax.swing.*; import java.io.*; import visad.java2d.*; import javax.media.j3d.*; public class MouseCreateGeometry4 extends Object { RealType row, column; RealTupleType domain_tuple; DisplayImplJ2D display; ScalarMap rowMap, colMap, indexMap; DisplayRenderer dRenderer; DataReference data_ref1; FieldImpl field; float dx1, dx2, dy1, dy2; float samp[][]; int nverts; int size = 64; Gridded2DSet[] g = new Gridded2DSet[4]; DataReferenceImpl dr[] = new DataReferenceImpl[4]; RealTuple rt1[] = new RealTuple[4]; float flat_samples[][] = new float[][] {{0, 1, 1, 0, 0 }, {0, 0, 1, 1, 0 }}; float f1[][] = new float[2][2]; /** Creates new MouseCreateGeometry4 */ public MouseCreateGeometry4() { } public void displayGrid() throws RemoteException, VisADException { row = new RealType("X", null, null); column = new RealType("Y", null, null); FunctionType ftype = new FunctionType(row, column); domain_tuple = new RealTupleType(row, column); FlatField flatfield FlatField.makeField(ftype, size, false); display = new DisplayImplJ2D("display1"); //setBackground and cursor colors. dRenderer = display.getDisplayRenderer(); dRenderer.setBoxOn(false); dRenderer.setBackgroundColor(1.0f, 1.0f, 1.0f); dRenderer.setCursorColor( 0.0f, 0.0f, 1.0f ); //add maps to display. display.addMap(new ScalarMap(row, Display.XAxis)); display.addMap(new ScalarMap(column, Display.YAxis)); ConstantMap[] pointsCol = { new ConstantMap( 1.0f, Display.Red), new ConstantMap( 0.0f, Display.Green), new ConstantMap( 0.0f, Display.Blue), new ConstantMap( 5.0f, Display.PointSize)}; ConstantMap[] linesCol = { new ConstantMap( 0.0f, Display.Red), new ConstantMap( 0.0f, Display.Green), new ConstantMap( 1.0f, Display.Blue)}; //data reference for adding union sets. data_ref1 = new DataReferenceImpl("data"); //for labelling the vertices TextType text = new TextType("text"); RealType t = new RealType("t"); RealTupleType rtt = new RealTupleType(new RealType[] {t}); Linear1DSet time_set = new Linear1DSet(rtt, 0, 10, 10); TupleType text_tuple = new TupleType(new MathType[] {row, column, text}); FunctionType text_function = new FunctionType(t, text_tuple); FieldImpl text_field = new FieldImpl(text_function, time_set); display.addMap(new ScalarMap(text, Display.Text)); nverts = 4; //loop which goes to nverts and caluculates the gidded sets and forms the real tuples. for(int i = 0; i < nverts; i++) { //constructing gridded sets. f1[0][0] = flat_samples[0][i]; f1[1][0] = flat_samples[1][i]; f1[0][1] = flat_samples[0][i+1]; f1[1][1] = flat_samples[1][i+1]; g[i] = new Gridded2DSet(domain_tuple, f1, 2); //constructing real tuples. Real r1[] = new Real[] { new Real(row, flat_samples[0][i]), new Real(column, flat_samples[1][i]) }; rt1[i] = new RealTuple(r1); dr[i] = new DataReferenceImpl("ref_direct"); dr[i].setData(rt1[i]); //naming the verices. Data[] td = { new Real(row, flat_samples[0][i]), new Real(column, flat_samples[1][i]), new Text(text, "" + i)}; TupleIface tt = new Tuple(text_tuple, td); text_field.setSample(i, tt); // dr[i].setData(text_field); display.addReferences( new DirectManipulationRendererJ2D(), dr[i], pointsCol); CellImpl cell = new CellImpl() { private boolean first = true; public void doAction() throws VisADException, RemoteException { if (first) first = false; else { //reconstructing the gridded sets. for(int i = 0; i < nverts; i++) { if(i == (nverts-1)) { dx1 (float)((Real)((RealTuple) dr[(nverts-1)].getData()).getComponent(0)).getValue(); dy1 (float)((Real)((RealTuple) dr[(nverts-1)].getData()).getComponent(1)).getValue(); dx2 (float)((Real)((RealTuple) dr[0].getData()).getComponent(0)).getValue(); dy2 (float)((Real)((RealTuple) dr[0].getData()).getComponent(1)).getValue(); samp = new float[][] {{dx1, dx2}, {dy1, dy2}}; g[(nverts-1)] = new Gridded2DSet(domain_tuple, samp, 2); } else { dx1 (float)((Real)((RealTuple) dr[i].getData()).getComponent(0)).getValue(); dy1 (float)((Real)((RealTuple) dr[i].getData()).getComponent(1)).getValue(); dx2 (float)((Real)((RealTuple) dr[i+1].getData()).getComponent(0)).getValue(); dy2 (float)((Real)((RealTuple) dr[i+1].getData()).getComponent(1)).getValue(); samp = new float[][] {{dx1, dx2}, {dy1, dy2}}; g[i] = new Gridded2DSet(domain_tuple, samp, 2); } } UnionSet u_set = new UnionSet(g); data_ref1.setData(u_set); } } }; cell.addReference(dr[i]); } UnionSet u_set = new UnionSet(g); data_ref1.setData(u_set); display.addReference(data_ref1,linesCol); JFrame jframe = new JFrame("Draggable Vertices Made Easy"); jframe.getContentPane().add(display.getComponent()); jframe.setSize(300, 300); jframe.setVisible(true); jframe.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { System.exit(0); } } ); } public static void main(String[] args) { MouseCreateGeometry4 g = new MouseCreateGeometry4(); try { g.displayGrid(); } catch (Exception e) { e.printStackTrace(); } } } __________________________________________________ Do You Yahoo!? Get personalized email addresses from Yahoo! Mail http://personal.mail.yahoo.com/
visad
archives: