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.
Hello, I am working on a project in which we are using VisAd to display a 3 dimensional image of data points. We essentially create a 3d surface out of these data points, which are made up of triangular facets, made out of the data points. My question is pretty simple, but I am having a really interesting time figuring out how exactly VisAd creates all of these triangular facets, and how to access those facets. Essentially, I want the user to be able to click on the screen somewhere and be able to report what facet the user clicked on, and report any data associated with that facet. What I can't figure out is how VisAd stores the data associated with the facets that it is drawing. I have looked into MouseHelperJ3D and I see how to get the location in world space of the observer (eye_position) and how to get the location in 3D space that the user clicked on (position). I can create a vector out of this and this is my ray in 3D space. I want to know if that ray, emminating from the observer, going out into space, intersects with any of the facets in the data set we are displaying. I have looked into the following classes and elucidated the following (tell me where I am incorrect): FlatField is a container for the entire "data model"? DataReferenceJ3D setData() is a gateway of some kind in setting the data for each of the facets in the 3D surface? The confusion I encounter is that when I try to go past the DataReferenceJ3D, it starts referencing an object called "Thing". I am having difficulty understanding exactly what a "Thing" is. Is it in any way related to how I access where the facets are in 3D space? Typically in 3D graphics one uses some kind of data structure to hold all of the facets in an object. I understand this could be different for Java3D, but essentially, the data for displaying the facets has to be stored somewhere, and there has to be a way to access it. Im just having difficulty finding it. If anyone has any suggestions where to look to find out about this, I would be very appreciative. Cheers, Greg
visad
archives: