Volumes in IDL, whether rendered with IDLgrVolume or with iVolume take 'volume' data arguments, where the 'volume' is defined as an array of points with 3D coordinates. Thus, the main example IDL documentation gives is:
file = FILEPATH('head.dat', SUBDIRECTORY = ['examples', 'data'])
data = READ_BINARY(file, DATA_DIMS = [80, 100, 57])
iVolume, data ; or "oVolume = obj_new('IDLgrVolume', data)"
The 'data' in this case is a collection of 80 x 100 x 57 light intensity values contained in a box whose dataspace coordinates range from [0,0,0] to [79, 99, 56].
This would certainly be a much different imaging task than the kind of task that SURFACE has when receiving X, Y and Z array args. X and Y are the only "coordinates" provided; Z provides data, not additional positioning information. This is why X and Y are vectors, Z is a 2D array, and none of these provide the 3D array variable that iVolume and IDLgrVolume require.
Perhaps I have a misunderstanding of what you mean by "giving xyz coordinate" to a "surface object"?
James Jones
|