Content-type: text/html Man page of mlib_VolumeRayCast_General

mlib_VolumeRayCast_General

Section: mediaLib Library Functions (3MLIB)
Updated: 2 Mar 2007
Index Return to Main Contents
 

NAME

mlib_VolumeRayCast_General, mlib_VolumeRayCast_General_Parallel_Nearest_U8_Bit, mlib_VolumeRayCast_General_Parallel_Nearest_U8_U8, mlib_VolumeRayCast_General_Parallel_Nearest_S16_S16, mlib_VolumeRayCast_General_Parallel_Trilinear_U8_U8, mlib_VolumeRayCast_General_Parallel_Trilinear_S16_S16, mlib_VolumeRayCast_General_Divergent_Nearest_U8_Bit, mlib_VolumeRayCast_General_Divergent_Nearest_U8_U8, mlib_VolumeRayCast_General_Divergent_Nearest_S16_S16, mlib_VolumeRayCast_General_Divergent_Trilinear_U8_U8, mlib_VolumeRayCast_General_Divergent_Trilinear_S16_S16 - cast a ray (or rays) through a 3D data set  

SYNOPSIS

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);

 

DESCRIPTION

Each of these functions casts a ray (or rays) through a three-dimensional (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 = (1-a)*(1-b)*(1-c)*P0 +
   a*(1-b)*(1-c)*Px + (1-a)*b*(1-c)*Py + (1-a)*(1-b)*c*Pz +
   a*b*(1-c)*Pxy + a*(1-b)*c*Pxz + (1-a)*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.  

PARAMETERS

Each of the functions takes the following arguments:

rays

Casting rays.

vol

Volume data that consists of slices.

buffer

Working buffer.

 

RETURN VALUES

Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.  

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE

Interface StabilityCommitted

MT-Level

 

SEE ALSO

mlib_VolumeRayCast_Blocked(3MLIB), attributes(5)


 

Index

NAME
SYNOPSIS
DESCRIPTION
PARAMETERS
RETURN VALUES
ATTRIBUTES
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 02:38:03 GMT, October 02, 2010