I have two linear (gridded) 3D data sets, which I am trying to visualize
with VisAD. I have succeeded in using VisAD to create an isosurface of the
first data set, onto which I mapped values of the second data set using a
ScalarMap with Display.RGB.
Unfortunately, the ScalarMap is setting up the color map such that the
minimum and maximum range values are given by the minimum and maximum values
of the entire second data set, rather than then minimum and maximum values
of the data set along the isosurface. Since the variations of the property
along the isosurface are small compared with the variations in the entire
data set, the result is an isosurface that is all one color!
Of course, I can alter this range with ScalarMap.setRange, but I need a way
(programmatically) to determine the minimum and maximum values of the mapped
property that lie ON THE ISOSURFACE.
Does anyone know a simple way to accomplish this? Alternatively, if I could
access the VisAD generated isosurface somehow, I could simply determine the
minimum and maximum values on the fly. However, I do need a general
solution (not just hard coding a maximum and minimum value), because this
application will be used on many different data sets, with varying,
user-selectable isosurface values.
Thanks in advance for your help.
J.R. Schmidt
UW-Madison