cc [ flag... ] file... lmlib [ library... ] #include <mlib.h> mlib_status mlib_VolumeRayCast_General_Parallel_Nearest_U8_Bit( mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
mlib_status mlib_VolumeRayCast_General_Parallel_Nearest_U8_U8( mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
mlib_status mlib_VolumeRayCast_General_Parallel_Nearest_S16_S16( mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
mlib_status mlib_VolumeRayCast_General_Parallel_Trilinear_U8_U8( mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
mlib_status mlib_VolumeRayCast_General_Parallel_Trilinear_S16_S16( mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
mlib_status mlib_VolumeRayCast_General_Divergent_Nearest_U8_Bit( mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
mlib_status mlib_VolumeRayCast_General_Divergent_Nearest_U8_U8( mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
mlib_status mlib_VolumeRayCast_General_Divergent_Nearest_S16_S16( mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
mlib_status mlib_VolumeRayCast_General_Divergent_Trilinear_U8_U8( mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
mlib_status mlib_VolumeRayCast_General_Divergent_Trilinear_S16_S16( mlib_rays *rays, const mlib_genvolume *vol, void *buffer);
Each of these functions casts a ray (or rays) through a threedimensional (3D) data set, then computes and returns the interpolated samples at each step along the way.
In trilinear interpolation, the value at point P is computed from its eight surrounding neighbors based on the equation below.
P = (1a)*(1b)*(1c)*P0 + a*(1b)*(1c)*Px + (1a)*b*(1c)*Py + (1a)*(1b)*c*Pz + a*b*(1c)*Pxy + a*(1b)*c*Pxz + (1a)*b*c*Pyz + a*b*c*Pxyz
where a, b, and c are the fractional parts of the coordinates of point P.
The trilinear interpolation is represented by the following figure:
Printed copy or docs.sun.com displays a figure that represents the trilinear interpolation.
In nearest neighbor operation, the sample value at point P is replaced by the value of the nearest neighbor voxel.
Each of the functions takes the following arguments:
rays
vol
buffer
Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:

mlib_VolumeRayCast_Blocked(3MLIB), attributes(5)