> I used visad source updated from cvs.VisAD.sourceforge.net today, and
> modified ShadowType.java and ContourControl.java.
> bvalues always seems to be true, spatialManifoldDimension is always
> 2, and fvalues is always NaN.
> Here is a series of stack traces, using DisplayImpl.printStack(), from
> when the behaviour is seen.
Thank you. In tracking down why ContourControl.surfaceValue (i.e.,
fvalues) is NaN, there are three relevant spots to look:
1. One place where surfaceValue might get set implicitly would
be during auto-scaling, but the auto-scaling code in ScalarMap
includes a comment "don't set surface value for auto-scale".
2. If the application constructs a visad.util.ContourWidget for
the ScalarMap to IsoContour, and defines a surface value in the
ContourWidget constructor, this will set ContourControl.surfaceValue.
It looks like ContourWidget methods can implicitly set a non-NaN
value for surfaceValue, but then the value is the minimum of the
data range so no iso-surface would appear. Does your application
construct a ContourWidget?
3. The application explicitly calls ContourControl.setMainContours()
or ContourControl.setSurfaceValue() with a non-NaN surfaceValue.
Does your application make these calls?
The interesting question is why an iso-surface does appear when you
add a ScalarMap to RGB, etc, but does not appear if you don't.
You may be able to answer these questions by inserting calls to
DisplayImpl.printStack(String) in ContourControl.setMainContours()
and ContourControl.setSurfaceValue(), and include the value being
set in surfaceValue in the String argument to printStack(String).
Please let us know what you find.