Good question. The answer depends on how the data are streaming.
If you want to show an isosurface you must have a 3-D grid of
data (which would be implemented by a FlatField in VisAD). As
the server process runs is it:
1. Updating the entire grid of values over and over?
2. Filling in successively more and more of the grid?
3. Filling in successive grids in a time sequence of grids?
4. Something else?
Options 1 and 2 would be handled similarly. Your grid would
be stored in a FlatField and your program structure could be
process -> DataReference -> display
Sections 3.1.14 and 3.2.13 provide application examples
similar to how you would synthesize your MathType (grid_type
in these examples) and FlatField (grid in Section 3.2.13).
You'd then construct a DisplayImplJ3D with ScalarMaps taking
row, column and level to Display.XAxis, Display.YAxis and
Display.ZAxis, and taking your grid value to Display.IsoContour.
You'd construct a DataReference for your FlatField and pass
it to the addReference method of your DisplayImplJ3D. See
examples/DisplayTest.java case number 1 for an example.
In option 1 you'd set all values in the FlatField at once
using FlatField.setSamples (for efficiency, use the signature
with the float argument rather than the signature with
the Data argument), whereas in option 2 you might set the
values one by one using FlatField.setSample.
Option 3, with a time sequence, is a little more complex but
is also convered by Sections 3.1.14 and 3.2.13. See also the
main method of visad/data/vis5d/Vis5DForm.java for animating
The main thing is that once your FlatField is connected to
your DisplayImplJ3D by the addReference call, the display
will update every time values in the FlatField update.
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706
whibbard@xxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738
"kill cross-platform Java by growing the polluted Java market"
- from an internal Microsoft planning document