vpSetRawVoxels(3) specify an array of volume data

SYNOPSIS

#include <volpack.h>

vpResult

vpSetRawVoxels(vpc, voxels, size, xstride, ystride, zstride)
vpContext *vpc;
void *voxels;
int size;
int xstride, ystride, zstride;

ARGUMENTS

vpc
VolPack context from vpCreateContext.
voxels
3D array of voxels.
size
Size of the voxel array in bytes.
xstride
Number of bytes from the beginning of one voxel to the beginning of the next voxel in the first array dimension.
ystride
Number of bytes from the beginning of one voxel to the beginning of the next voxel in the second array dimension.
zstride
Number of bytes from the beginning of one voxel to the beginning of the next voxel in the third array dimension.

DESCRIPTION

vpSetRawVoxels is used to specify a 3D array that contains the volume data. The array must be large enough for the volume dimensions specified with vpSetVolumeSize and the voxel size specified with vpSetVoxelSize. The data in the array may be initialized before or after calling vpSetRawVoxels.

Some of the VolPack routines operate faster if the volume is stored in z-major order (xstride < ystride < zstride) but it is not strictly necessary.

The voxel array is not automatically deallocated when the context is destroyed with vpDestroyContext. The application is responsible for managing the memory associated with the volume array.

The voxel array can be a very large data structure, possibly larger than available main memory. It is sometimes possible to precompute the optimized data structures required for the fast rendering algorithm without explicitly allocating a voxel array. See vpClassifyScalars(3).

During the call to vpSetRawVoxels, any existing precomputed volume data structures in the context are destroyed.

STATE VARIABLES

The current voxel array parameters can be retrieved with the following state variable codes (see vpGeti(3)): VP_VOXEL_DATA, VP_VOXEL_DATA_SIZE, VP_VOXEL_XSTRIDE, VP_VOXEL_YSTRIDE, VP_VOXEL_ZSTRIDE.

ERRORS

The routine always returns VP_OK.