NAME
vpGeti, vpGetd, vpGetp - get the value of an option
SYNOPSIS
#include <volpack.h>
vpResult
vpGeti(vpc, option, iptr)
vpContext *vpc;
int option;
int *iptr;
vpResult
vpGetd(vpc, option, dptr)
vpContext *vpc;
int option;
double *dptr;
vpResult
vpGetp(vpc, option, pptr)
vpContext *vpc;
int option;
void *pptr;
ARGUMENTS
vpc VolPack context from vpCreateContext.
option Constant that specifies the option to be retrieved.
iptr Location to store an integer result.
dptr Location to store a double result.
pptr Location to store a pointer result.
DESCRIPTION
These functions are used the get the values of integer-, double- or
pointer-valued state variables in a rendering context. The following
list summarizes the integer-valued options that can be retrieved with
vpGeti. The value of the option is stored in the location given by
iptr; the return value of vpGeti is not the value of the option.
Unless otherwise noted, the result is a single integer and iptr should
point to a single integer location.
VP_XLEN
Get the length of the X dimension of the volume in voxels.
VP_YLEN
Get the length of the Y dimension of the volume in voxels.
VP_ZLEN
Get the length of the Y dimension of the volume in voxels.
VP_BYTES_PER_VOXEL
Get the size of a voxel in bytes.
VP_VOXEL_FIELD_COUNT
Get the number of fields in a voxel.
VP_SHADE_FIELD_COUNT
Get the number of fields in a voxel used as parameters for
shading the voxel.
VP_FIELD_SIZES
Get the size of each voxel field in bytes. iptr must point to
an array of integers containing one entry for each voxel field
(use VP_VOXEL_FIELD_COUNT to determine the number of fields).
VP_FIELD_OFFSETS
Get the byte offset from the beginning of a voxel for each voxel
field. iptr must point to an array of integers containing one
entry for each voxel field (use VP_VOXEL_FIELD_COUNT to
determine the number of fields).
VP_FIELD_MAXES
Get the maximum value of the quantity stored in each voxel
field. iptr must point to an array of integers containing one
entry for each voxel field (use VP_VOXEL_FIELD_COUNT to
determine the number of fields).
VP_VOXEL_DATA_SIZE
Get the size (in bytes) of the 3D voxel array.
VP_VOXEL_XSTRIDE
Get the stride (in bytes) for the X dimension of the 3D voxel
array.
VP_VOXEL_YSTRIDE
Get the stride (in bytes) for the Y dimension of the 3D voxel
array.
VP_VOXEL_ZSTRIDE
Get the stride (in bytes) for the Z dimension of the 3D voxel
array.
VP_CLASSIFY_FIELD_COUNT
Get the number of fields in a voxel used as parameters for
classifying the voxel (the number of arguments to the opacity
transfer function).
VP_CLASSIFY_FIELDS
Get the field numbers for the arguments to the opacity transfer
function. iptr must point to an array of integers containing
one entry for each argument (use VP_CLASSIFY_FIELD_COUNT to
determine the number of arguments).
VP_CLASSIFY_TABLE_SIZES
Get the size (in bytes) of each lookup table used for the
opacity transfer function. iptr must point to an array of
integers containing one entry for each lookup table (use
VP_CLASSIFY_FIELD_COUNT to determine the number of lookup
tables, which equals the number of arguments to the opacity
transfer function).
VP_COLOR_CHANNELS
Get the number of color channels that the current shading lookup
tables or shading callback function will produce.
VP_SHADE_COLOR_SIZE
Get the size of the shading lookup table for color values (see
vpSetLookupShader(3)).
VP_SHADE_WEIGHT_SIZE
Get the size of the shading lookup table for weight values (see
vpSetLookupShader(3)).
VP_MATERIAL_COUNT
Get the number of material types used by the current lookup
shader (see vpSetLookupShader(3)).
VP_SHADE_COLOR_FIELD
Get the field number used for indexing the shading lookup table
for color values (see vpSetLookupShader(3)).
VP_SHADE_WEIGHT_FIELD
Get the field number used for indexing the shading lookup table
for weight values (see vpSetLookupShader(3)).
VP_LIGHT0
VP_LIGHT1
VP_LIGHT2
VP_LIGHT3
VP_LIGHT4
VP_LIGHT5
The retrieved value is nonzero if the corresponding light is
enabled, or 0 if it is disabled.
VP_LIGHT_BOTH_SIDES
The retrieved value is nonzero if two-sided lighting is enabled
(see vpSetLight(3)), or 0 if it is disabled.
VP_REVERSE_SURFACE_SIDES
The retrieved value is nonzero if the definitions of interior
and exterior surfaces have been reversed (see vpSetMaterial(3)),
or 0 if they have not.
VP_DEPTH_CUE
The retrieved value is nonzero if depth cueing is enabled, or 0
if it is disabled.
VP_DEPTH_CUE_TABLE_SIZE
Get the current number of entries in the depth cueing table (see
vpSetDepthCueing(3)).
VP_DEPTH_CUE_SIZE_HINT
Get the current hint for the number of entries in the depth
cueing table (see vpSetDepthCueing(3)).
VP_CURRENT_MATRIX
Get the identifier for the current transformation matrix
(VP_MODEL, VP_VIEW or VP_PROJECT).
VP_CONCAT_MODE
Get the identifier for the current matrix concatenation mode
(VP_CONCAT_LEFT or VP_CONCAT_RIGHT).
VP_IMAGE_WIDTH
Get the width (in pixels) of the output image array.
VP_IMAGE_HEIGHT
Get the height (in pixels) of the output image array.
VP_IMAGE_SCAN_SIZE
Get the number bytes per scanline in the output image array.
VP_VIEW_AXIS
Get the identifier for the current major viewing axis in the
object coordinate system (VP_X_AXIS, VP_Y_AXIS or VP_Z_AXIS).
The axis depends on the viewing transformation.
VP_INTERMEDIATE_WIDTH
Get the width (in pixels) of the intermediate image required to
render the current volume with the current viewing
transformation (see vpRenderRawVolume(3)).
VP_INTERMEDIATE_HEIGHT
Get the height (in pixels) of the intermediate image required to
render the current volume with the current viewing
transformation (see vpRenderRawVolume(3)).
VP_INTERMEDIATE_COLOR
Get the number of color channels in the intermediate image (see
vpRenderRawVolume(3)).
VP_INT_WIDTH_HINT
Get the current hint for the width (in pixels) of the
intermediate image (see vpRenderRawVolume(3)).
VP_INT_HEIGHT_HINT
Get the current hint for the height (in pixels) of the
intermediate image (see vpRenderRawVolume(3)).
VP_VIEW_X_AXIS
VP_VIEW_Y_AXIS
VP_VIEW_Z_AXIS
The retrieved value is non-zero if computing a preclassified
volume for the corresponding major viewing axis is enabled (see
vpClassifyVolume(3)).
VP_VIEW_X_SIZE
VP_VIEW_Y_SIZE
VP_VIEW_Z_SIZE
Get the size (in bytes) of the preclassified volume for the
corresponding major viewing axis.
VP_MMOCTREE_THRESHOLDS
Get the current min-max octree range thresholds. iptr must
point to an array of integers containing one entry for each
threshold (use VP_CLASSIFY_FIELD_COUNT to determine the number
of thresholds, which equals the number of arguments to the
opacity transfer function).
VP_MMOCTREE_SIZE
Get the size (in bytes) of the min-max octree.
VP_SHADOW
The retrieved value is nonzero if shadows are enabled (see
vpSetShadowLookupShader(3)).
VP_SHADOW_LIGHT
Get the constant (e.g. VP_LIGHT0) associated with the current
shadow light (see vpSetShadowLookupShader(3)).
VP_SHADOW_WIDTH_HINT
Get the current hint for the width (in pixels) of the shadow
buffer (see vpSetShadowLookupShader(3)).
VP_SHADOW_HEIGHT_HINT
Get the current hint for the height (in pixels) of the shadow
buffer (see vpSetShadowLookupShader(3)).
VP_SHADOW_COLOR_SIZE
Get the size of the shading lookup table for shadowed color
values (see vpSetShadowLookupShader(3)).
VP_SHADOW_BIAS
Get the current shadow bias value (see
vpSetShadowLookupShader(3)).
VP_PIXEL_TYPE
Get the current image pixel type (see vpSetImage(3)).
VP_CLAMP_SHADE_TABLE
The retrieved value is nonzero if clamping is enabled for shade
table entries, or 0 if it is disabled (see vpShadeTable(3)).
VP_COMPOSITE_ORDER
This value is used for debugging only. It returns 1 if the
current major viewing axis (VP_VIEW_AXIS) points in the same
direction as the viewing direction, or -1 if they point in
opposite directions.
The following list summarizes the double-valued options that can be
retrieved with vpGetd. The result is always a single double and dptr
should point to a single double location.
VP_MIN_VOXEL_OPACITY
Get the minimum opacity threshold (see vpSeti(3)).
VP_DEPTH_CUE_FRONT
Get the front depth cueing factor (see vpSetDepthCueing(3)).
VP_DEPTH_CUE_DENSITY
Get the depth cueing density (see vpSetDepthCueing(3)).
VP_DEPTH_CUE_QUANTIZATION
Get the depth cueing quantization (see vpSetDepthCueing(3)).
VP_MAX_RAY_OPACITY
Get the maximum opacity threshold (see vpSeti(3)).
The following list summarizes the pointer-valued options that can be
retrieved with vpGetp. Unless otherwise noted, the result is a single
pointer and pptr should point to a single pointer location.
VP_VOXEL_DATA
Get a pointer to the 3D voxel array.
VP_CLASSIFY_TABLES
Get pointers to each of the lookup tables for the opacity
transfer function. pptr must point to an array of pointers
containing one entry for each table (use VP_CLASSIFY_FIELD_COUNT
to determine the number of tables, which is equal to the number
of arguments to the opacity transfer function).
VP_SHADE_FUNC
Get the shading callback function (see vpSetLookupShader(3)).
VP_SHADE_COLOR_TABLE
Get a pointer to the shading lookup table for colors (see
vpSetLookupShader(3)).
VP_SHADE_WEIGHT_TABLE
Get a pointer to the shading lookup table for weights (see
vpSetLookupShader(3)).
VP_IMAGE
Get a pointer to the output image array (see vpSetImage(3)).
VP_LOG_ALLOC_FUNC
Get a pointer to the memory allocator logging function (see
vpSetCallback(3)).
VP_LOG_FREE_FUNC
Get a pointer to the memory deallocator logging function (see
vpSetCallback(3)).
VP_STATUS_FUNC
Get a pointer to the status reporting function (see
vpSetCallback(3)).
VP_READ_FUNC
Get a pointer to the file I/O read function (see
vpSetCallback(3)).
VP_WRITE_FUNC
Get a pointer to the file I/O write function (see
vpSetCallback(3)).
VP_MMAP_FUNC
Get a pointer to the file I/O memory mapping function (see
vpSetCallback(3)).
VP_CLIENT_DATA
Get a pointer to the client data (see vpSetClientData(3)).
VP_SHADOW_COLOR_TABLE
Get a pointer to the shading lookup table for shadowed color
values (see vpSetShadowLookupShader(3)).
ERRORS
The normal return value is VP_OK. The following error return values
are possible:
VPERROR_BAD_OPTION
The option argument is invalid.
VPERROR_SINGULAR
One of the current view transformation matrices is singular.
(Only possible for options that depend on the current view
transformation).
SEE ALSO
VolPack(3), vpCreateContext(3), vpSeti(3)