VisAD isosurfaces with mapped values

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