Re: 3D Vector plot

Hi John,

> Well the good news is that my code is correct. The bad news is that I failed 
> to
> look at the exponent values of my w component values. When I looked more
> closely,  I found the w values were 2-3 orders of magnitude less than the u,v
> components so were essentially zero. This brings up another question. Is there
> a way to set the "z" axis scaling so that it is scaled to the range of the w
> component values?

As Tom said, you can call the setRange() method of your ScalarMap
to Flow1Z.

However, there is a static method of ScalarMap named
equalizeFlow() that ensures that all ScalarMaps to
Flow1X,Y,Z have the same range. I don't think you can
override a static method, but you can define an
extension of visad.java3d.DefaultDisplayRendererJ3D
that overrides the definition of:

  public void prepareAction(Vector temp, Vector tmap, boolean go,
                            boolean initialize)

in visad.DisplayRenderer, to eliminate the two calls
to ScalarMap.equalizeFlow(). Then pass an instance of your
extension of visad.java3d.DefaultDisplayRendererJ3D
to the constructor:

  public DisplayImplJ3D(String name, DisplayRendererJ3D renderer)

At least, I think this should work. Ain't object-oriented
programming great?

Good luck,
Bill