Hi,
The small program is attached. The labels are displayed but their position
does not change based on the x,y,z values that are provided to them. I could
not see the labels earlier as they were being displayed outside the visible
range of my program. But now the problem is that their position does not
change. I have attached the small program. Thanks once again for all your
help.
> I can't think of anything. If you send me a *small* program
> that illustrates the problem, I'll run it and see if I can
> figure anything out.
With best regards,
Jay
import java.io.*;
import java.util.*;
import java.lang.Math;
// packages for main method
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.rmi.RemoteException;
import visad.*;
import visad.Set;
import visad.VisADException;
import visad.util.*;
import visad.java3d.*;
import visad.ss.*;
import visad.ss.FancySSCell;
import visad.data.Form;
import visad.data.netcdf.Plain;
import visad.data.tiff.TiffForm;
import visad.data.visad.VisADForm;
import visad.formula.*;
import VisPackage.*;
/**
Delaunay represents an abstract class for calculating an
N-dimensional Delaunay triangulation, that can be extended
to allow for various triangulation methods.<P>
*/
public class ShortTest {
/** A graphical demonstration of implemented Delaunay triangulation
algorithms, in 2-D or 3-D */
public static void main(String[] argv) throws VisADException,
RemoteException
{
// set up frame
JFrame frame = new JFrame();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// set up frame's panel
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.add(makeStickFigure().getComponent());
frame.getContentPane().add(panel);
frame.setSize(new Dimension(510, 530));
frame.setTitle("Triangulation results");
frame.setVisible(true);
}
private static DisplayImpl makeStickFigure()throws
VisADException,RemoteException
{
int max_points = 3;
//data types created for the right and left leg
RealType x = RealType.getRealType("x");
RealType y = RealType.getRealType("y");
RealType z = RealType.getRealType("z");
RealTupleType xyz_right = new RealTupleType(x,y,z);
//the time for the animation
RealType[] time = {RealType.Time};
RealTupleType time_type = new RealTupleType(time);
Gridded3DSet[] gsp_right = new Gridded3DSet[max_points];
FunctionType time_samples_right = new FunctionType(time_type,new
SetType(xyz_right));
DateTime base = new DateTime(1999, 122, 57060);
double start = base.getValue();
Set time_set = new Linear1DSet(time_type, start, start +
5.0,max_points);
FieldImpl image_sequence_right = new FieldImpl(time_samples_right,
time_set);
TextType text = new TextType("text");
TupleType text_tuple = new TupleType(new MathType[] {x, y, z, text});
FunctionType text_function = new
FunctionType(time_type,text_tuple);
FieldImpl text_field = new FieldImpl(text_function, time_set);
//TupleIface tt=null;
float[][] samples1 = new float[3][6];
for(int i=0;i<max_points;i++)
{
samples1[0][0] = 291 + i*1000;
samples1[1][0] = 24 +i;
samples1[2][0] = 255 + i*10;
Data[] td1 = {new Real(x,291 +i*1000),
new Real(y,24 + i),
new Real(z,255+i*10),
new Text(text, "Sensor " + i)};
/*
Data[] td1 = {new Real(x,samples1[0][0]),
new Real(y,samples1[1][0]),
new Real(z,samples1[2][0]),
new Text(text, "Sensor " + i)};
*/
TupleIface tt = new Tuple(text_tuple, td1);
text_field.setSample(i, tt);
samples1[0][1] = 190+i*1000;
samples1[1][1] = 92+i;
samples1[2][1] = 217+i*10;
samples1[0][2] = 261+i;
samples1[1][2] = 521+i*100;
samples1[2][2] = 232+i*10;
samples1[0][3] = 275+i;
samples1[1][3] = 943+i*100;
samples1[2][3] = 282+i*10;
samples1[0][4] = 276+i;
samples1[1][4] = 1051+i*100;
samples1[2][4] = 252+i*10;
samples1[0][5] = 273+i;
samples1[1][5] = 1460+i*100;
samples1[2][5] = 283+i*10;
gsp_right[i] = new Gridded3DSet(xyz_right, samples1,6);
image_sequence_right.setSample(i,gsp_right[i]);
}
FieldImpl[] figure = {image_sequence_right,text_field};
Tuple big_tuple = new Tuple(figure);
// set up Java3D Display
DisplayImpl display = new DisplayImplJ3D("image display");
ScalarMap xmap=new ScalarMap(x, Display.XAxis);
ScalarMap ymap=new ScalarMap(y, Display.YAxis);
ScalarMap zmap=new ScalarMap(z, Display.ZAxis);
ScalarMap textmap = new ScalarMap(text,Display.Text);
ScalarMap map1animation = new ScalarMap(RealType.Time,
Display.Animation);
xmap.setRange(-2500,2500);
ymap.setRange(-2500,2500);
zmap.setRange(-2500,2500);
display.addMap(xmap);
display.addMap(ymap);
display.addMap(zmap);
//text reference
display.addMap(textmap);
display.addMap(new ConstantMap(1, Display.Red));
display.addMap(new ConstantMap(1, Display.Green));
display.addMap(new ConstantMap(0, Display.Blue));
display.addMap(map1animation);
//DataReferenceImpl rtf = new DataReferenceImpl("rtf");
//rtf.setData(text_field);
//display.addReference(rtf, null);
final DataReference tetref = new DataReferenceImpl("tet");
tetref.setData(big_tuple);
display.addReference(tetref,null);
// finish setting up Java3D Display
GraphicsModeControlJ3D dispGMC;
dispGMC = (GraphicsModeControlJ3D) display.getGraphicsModeControl();
dispGMC.setScaleEnable(true);
AnimationControl animation1control = (AnimationControl)
map1animation.getControl();
animation1control.setOn(true);
AnimationWidget animWidget = new AnimationWidget(map1animation);
JFrame generalframe = new JFrame("Animation Control");
generalframe.getContentPane().setLayout( new BorderLayout());
generalframe.getContentPane().add(animWidget, BorderLayout.CENTER);
generalframe.setSize(400, 200);
generalframe.setVisible(true);
return display;
}
}