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

# Store(3)

store volume data structures to a file

## NAME

vpStoreRawVolume, vpStoreMinMaxOctree, vpStoreClassifiedVolume, vpStoreContext - store volume data structures to a file

## SYNOPSIS

\#include \<volpack.h\>

vpResult

**vpStoreRawVolume(***vpc, fd***)**

-

  vpContext \**vpc;*

-

  int *fd;*

vpResult

**vpStoreMinMaxOctree(***vpc, fd***)**

-

  vpContext \**vpc;*

-

  int *fd;*

vpResult

**vpStoreClassifiedVolume(***vpc, fd***)**

-

  vpContext \**vpc;*

-

  int *fd;*

vpResult

**vpStoreContext(***vpc, fd***)**

-

  vpContext \**vpc;*

-

  int *fd;*

## ARGUMENTS

- *vpc*

  VolPack context from **vpCreateContext.**

- *fd*

  File descriptor from [**open**(2)](/open/2.md), open for writing.

## DESCRIPTION

These functions are used to store volume data structures from a rendering context into files in the format read by the VolPack file reading routines (see vpLoadRawVolume(3)).

**vpStoreRawVolume** creates a 3D voxel array file.  The file includes information about the size of the volume and the layout of the voxels as well as the volume data itself.

**vpStoreMinMaxOctree** creates a min-max octree file.  The file includes information about the size of the volume and the layout of the voxels as well as the octree itself.

**vpStoreClassifiedVolume** creates a preclassified volume data file.  The file includes information about the size of the volume and the layout of the voxels as well as the volume data itself.

**vpStoreContext** creates a rendering context file.  The file includes all rendering parameters except volume data and callback functions.  The contents of any lookup tables for shading and classification are also stored.

The function used to write data to the files can be set by calling **vpSetCallback** with the VP\_WRITE\_FUNC option.  This could be used to implement a file-compression system, for example.

## STATE VARIABLES

The current file I/O parameters can be retrieved with the following state variable codes (see vpGeti(3)): VP\_WRITE\_FUNC.

## ERRORS

The normal return value is VP\_OK.  The following error return values are possible:

- VPERROR\_IO

  The file writing function returned an error value (in which case the external variable **errno** should contain an operating-system specific error code), or the file system is full.

- VPERROR\_BAD\_VOLUME

  The volume dimensions are invalid, or there is no voxel data in the context.

- VPERROR\_BAD\_SIZE

  There is no min-max octree in the volume (**vpStoreMinMaxOctree** only).

- VPERROR\_BAD\_VOXEL

  The voxel fields in the rendering context have not been properly defined.

## SEE ALSO

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