vpClassifyScanline is used to incrementally compute a preclassified
volume by classifying one scanline of voxels and storing the result
in the current preclassified volume.
The voxels argument is a 1D array containing voxels in the
format previously specified with vpSetVoxelSize and
vpSetVoxelField. vpVolumeSize must be called to declare
the size of the volume before the first call to vpClassifyScanline,
and the length of the 1D voxel array must be equal to the length of
the X dimension of the volume. The 1D voxel array may be initialized
with vpScanlineNormals or a user-defined function.
The voxels in the array are classified using the current opacity
transfer function (see vpSetClassifierTable(3)) and appended to the
preclassified volume (see vpClassifyVolume(3)). Scanlines must be
processed in Z-major order: all of the scanlines in the Z=0 slice
are processed from Y=0 onward, then the Z=1 slice is processed, and so
on. When the last scanline in the volume has been processed the
preclassified data structure is ready to be used for rendering.
Rendering is not possible until all scanlines have been processed.
When the first scanline of a volume is passed to vpClassifyScanline,
any existing preclassified volume data is destroyed.
ERRORS
The normal return value is VP_OK. The following error return values
are possible:
VPERROR_BAD_VOXEL
The voxel size or the voxel fields have not been specified or have
been incorrectly specified.
VPERROR_BAD_CLASSIFIER
The opacity transfer function tables have invalid sizes or are
associated with invalid voxel fields or have been incorrectly
specified.