Gretings VisAD users,
I have some values stored in a FlatField and I use FlatField.evaluate() to
retrive the values it contains, like this:
------------------------
//Inside the displayChanged() method of a DisplayListener
VisADRay ray
display.getDisplayRenderer().getMouseBehavior().findRay(displayEvent.getX(),
displayEvent.getY());
float[] lon = lonMap.inverseScaleValues(new float[] {(float)
ray.position[0]});
float[] lat = latMap.inverseScaleValues(new float[] {(float)
ray.position[1]});
RealTuple tuple = new RealTuple(new Real[] {
new Real(RealType.Longitude, lon[0]),
new Real(RealType.Latitude, lat[0])
});
double value = ((Real) vals_ff.evaluate(tuple)).getValue();
------------------------
And this works fine for the first Field, but when I change the domain I have
to create another field, and then the evaluate() method starts to return
"missing" all the time. Here is the FlatField creation code:
---------------------------
//This if only is true in the first time a new domain is neded
if (domain_set==null || oldRange!=newRange){
domain_set = new Gridded2DSet(domain_tuple,
createDomain(newRange), DIM, DIM);
vals_ff = new FlatField( func_dom_pix, domain_set);
if (radar_ref == null) {
radar_ref = new DataReferenceImpl("radar_ref");
display.addReference(radar_ref);
}
radar_ref.setData( vals_ff );
}
vals_ff.setSamples(flatSamples);
-----------------------
I dont think the createDomain() method is really important, but I can send it
if you need. The worst thing is that the problem happens most of the time,
not everytime. I will try to make a sample to demonstrate in the meantime.
--
____________________
Cicero A. W. Zandoná
-------------------------------------------------------