Hello to the VisAD mailing list,
i have a (another beginner) question about constructing a Set and
corresponding Field. i'm trying to render isosurfaces of a medical data
set, a CAT scan of a cadaver hear. The data set is regularly spaced,
single variate (i.e. density i believe) samplings in 3 dimensions: X,Y,Z
and it is only sampled at 1 time (i.e. no additional time dimension in
this data set). Right now, i am not even trying to read in actual data
(see code), just throwing a few test numbers to see if i can get some
output. Here is what i have so far:
<PRE>
RealType[] types3D = { RealType.XAxis,
RealType.YAxis,
RealType.ZAxis };
RealTupleType headLocation3D = new RealTupleType(types3D);
RealType density = new RealType("density", null, null);
FunctionType grid_tuple = new FunctionType(headLocation3D, density);
float[][] data = new float[1][3 * 3 * 3];
for (int i = 0; i < 27; i++) {
data[0][i] = i/(float)10;
System.out.println("data[0][i]=" + data[0][i]);
}
Gridded3DSet griddedSet = null;
try {
griddedSet = new Gridded3DSet(density, data, 3, 3, 3);
} catch (VisADException visade) {
System.out.println("How do I handle this?");
}
/* Trying to set up a function like:
* Real: ((x,y,z) -> density)
*/
FunctionType grid_tuple = new FunctionType(headLocation3D, density);
display.addMap(new ScalarMap(RealType.YAxis, Display.YAxis));
display.addMap(new ScalarMap(RealType.XAxis, Display.XAxis));
display.addMap(new ScalarMap(RealType.ZAxis, Display.ZAxis));
display.addMap(new ConstantMap(0.5, Display.Green));
display.addMap(new ConstantMap(0.5, Display.Blue));
display.addMap(new ConstantMap(0.5, Display.Red));
ScalarMap map1contour = new ScalarMap(density,Display.IsoContour);
display.addMap(map1contour);
DataReferenceImpl ref_grid3D = new DataReferenceImpl("ref_grid3D");
ref_grid3D.setData(griddedSet);
display.addReference(ref_grid3D, null);
</PRE>
i'm having trouble setting up the Gridded3DSet. i can see that it is
throwing an exception, and on page 42 of the VisAD Developers Guide it
says, "If the manifold dimension is less that the domain dimension [which
mine is i believe] or any of the grid sizes is 1, then the valueToIndex
and valueToInterp methods will throw an Exception."
Now i don't know how to construct the Set or how i should handle the
exception. Any help would be greatly appreciated. My poor old Master's
thesis is on the line here. :) Thanks ahead of time.
-cheers, bob
PS Thanks to Bill Hibbard and Erik Paulson for answering my last question.
Robert S Laramee tel: (603) 868-1361 (new as of 19 Jan '00)
9 Woodman Ave, #316 office: (603) 862-0350
Durham, NH 03828 URL: http://www.cs.unh.edu/~rlaramee