Man Linux: Main Page and Category List

NAME

       vpTranspose - transpose a volume

SYNOPSIS

       #include <volpack.h>

       vpResult
       vpTranspose(vpc, axis)
           vpContext *vpc;
           int axis;

ARGUMENTS

       vpc    VolPack context from vpCreateContext.

       axis   Axis  which  should  have  the smallest stride after transposing
              (VP_X_AXIS, VP_Y_AXIS or VP_Z_AXIS).

DESCRIPTION

       vpTranspose is used to transpose the 3D voxel  array  to  optimize  the
       memory  stride  for  a particular principal viewing axis.  The intended
       way to use this function is to set  the  viewing  transformation,  call
       vpGeti with the VP_VIEW_AXIS argument to find the corresponding viewing
       axis, and then call vpTranspose with that axis.  Transposing  the  data
       changes  the arrangement of the data stored in the 3D voxel array.  The
       voxel stride state variables are updated to reflect this change, so the
       viewing  transformation  does not need to be changed after transposing.
       If the volume is already transposed for  the  requested  axis  then  it
       returns immediately without modifying the voxel array.

       This function is useful only for rendering large 3D voxel arrays.  This
       function has no affect on the preclassified volume data.

STATE VARIABLES

       Relevant variables may be retrieved with the following  state  variable
       codes      (see     vpGeti(3)):     VP_VIEW_AXIS,     VP_VOXEL_XSTRIDE,
       VP_VOXEL_YSTRIDE, VP_VOXEL_ZSTRIDE.

ERRORS

       The normal return value is VP_OK.  The following  error  return  values
       are possible:

       VPERROR_BAD_OPTION
              The axis argument is invalid.

       VPERROR_BAD_VOLUME
              The 3D voxel array is missing or invalid.

       VPERROR_BAD_VOXEL
              The voxel fields are incorrectly specified.

SEE ALSO

       VolPack(3), vpCreateContext(3)