---
name: "RawVoxels"
section: "3"
platform: "linux"
package: "libvolpack1-dev"
version: "1.0b3-10"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/RawVoxels"
---

# RawVoxels(3)

specify an array of volume data

## NAME

vpSetRawVoxels - 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.

## SEE ALSO

[VolPack(3)](/VolPack/3.md), vpCreateContext(3)
