NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi Desiree, > I was thinking about using the Visad-Display classes for my application, > I think they run a lot smoother than mine. Glad to hear it. > I want to store 3D-Objects in different layers in one view, similar to > 2D-GeoInformationSystems. For example I do have one Layer for the > terrain-surface, one layer for a ground-water-surface and several layers > for hydrogeological-surfaces. I do want them to be independent from > another, so that I can display several, all or one from the layers at any > time. > I read in the Visadpage something about multiple views, and I was not sure > if this could be something similar to a layer or if these are just > different frames > with a new virtual world in each frame? To have independent layers, put each layer in a different Data object (not hard since a Data object may be any simple or complex set of data). Then link each Data object to a DisplayImpl like this: DisplayImpl display = new DisplayImplJ3D("display"); . . . // for each Data object data_1, data_2, ..., data_n DataReference ref_i = new DataReference("ref_i"); ref_i.setData(data_i); DataRenderer renderer_i = new DefaultRendererJ3D(); display.addReferences(renderer_i, ref_i); . . . Now you can toggle layer i on and off with: boolean on_i = ...; // true=on and false=off renderer_i.toggle(on_i); "Multiple views" just means that you can display the same Data object in multiple DisplayImpls, each with a different set of ScalarMaps. You can also display multiple Data objects in the same DisplayImpl, as you would here to get multiple layers. > Another question I have is about picking. Is VisAD just meant to visualize > objects, or is it possible to interact with them, like picking an object > and then perform a specific behavior? For picking, you can replace the DefaultRendererJ3D with PickManipulationRendererJ3D in the visad.bom package. See the main() method of PickManipulationRendererJ3D.java for an example of how to use it. There are other DataRenderers that you can use in place of DefaultRendererJ3D that allow you to change the values of Data objects by redrawing their depictions in Displays. Examples include visad.java3d.DirectManipulationRendererJ3D, visad.bom.CurveManipulationRendererJ3D, and a number of others in the visad.bom package. Note that the DataReferences used with these "direct manipulation DataRenderers" are usually linked to CellImpls, whose doAction() methods are triggered when the user changes Data values by redrawing. These CellImpls can then do all sorts of things in response to the changes. Look at the main() methods in the various DataREnderers to see examples of how they are used. Some of them are also used in the visad/examples/TestNN.java classes. > Do you think it is possible for me to mix a little bit and getting the > nice things out of both (your Display-classes and my Layers for example?) There is nothing you can't do with VisAD. The trick is to know how to get VisAD to do it. That's why we have Ugo's Tutorial, Dave's and Tom's Tutorials, the Developer's Guide, lots of examples, and of course this mailing list. Cheers, Bill ---------------------------------------------------------- Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706 hibbard@xxxxxxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738 http://www.ssec.wisc.edu/~billh/vis.html
visad
archives: