Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
vpExtract(3)		   Library Functions Manual		  vpExtract(3)

NAME
       vpExtract - extract one field from a rectangular	region of a volume

SYNOPSIS
       #include	<volpack.h>

       vpResult
       vpExtract(vpc,  volume_type,  x0,  y0,  z0,  x1,	 y1,  z1,  field, dst,
	       dst_size, dst_xstride, dst_ystride, dst_zstride)
	   vpContext *vpc;
	   int volume_type;
	   int x0, y0, z0;
	   int x1, y1, z1;
	   int field;
	   void	*dst;
	   int dst_size;
	   int dst_xstride, dst_ystride, dst_zstride;

ARGUMENTS
       vpc    VolPack context from vpCreateContext.

       volume_type
	      A	code indicating	which volume data structure to extract the re-
	      gion from	(VP_RAW_VOLUME,	 VP_CLASSIFIED_VOLUME,	VP_CLX_VOLUME,
	      VP_CLY_VOLUME or VP_CLZ_VOLUME)

       x0, y0, z0
	      Origin of	the extracted region in	the voxel array.

       x1, y1, z1
	      Opposite corner of the extracted region in the voxel array.

       field  A	voxel field number identifying the field to extract, or	one of
	      these  special codes: VP_OPACITY_FIELD, VP_CORRECTED_OPAC_FIELD,
	      VP_COLOR_FIELD.

       dst    Destination array.

       dst_size
	      Size of destination array	in bytes.

       dst_xstride, dst_ystride, dst_zstride
	      Strides (in bytes) for the X, Y and Z dimensions of the destina-
	      tion array.

DESCRIPTION
       vpExtract is used to extract one	field from a rectangular region	of the
       3D voxel	array or the preclassified volume and store the	 result	 in  a
       separate	 array.	 It is also possible to	retrieve computed voxel	opaci-
       ties or colors.

       The volume_type argument	is used	to choose which	data structure the re-
       gion should be extracted	from.  The choices are:

       VP_RAW_VOLUME
	      Extract from the 3D voxel	array (see vpSetRawVoxels(3)).

       VP_CLASSIFIED_VOLUME
	      Extract from the preclassified volume (see vpClassifyVolume(3)).
	      The are three copies of the voxel	data in	the preclassified vol-
	      ume, one for each	principal viewing axis.	 The copy  which  will
	      result in	the fastest access (best memory	stride)	is selected.

       VP_CLX_VOLUME
	      Extract from the preclassified volume used for X-axis viewing.

       VP_CLY_VOLUME
	      Extract from the preclassified volume used for Y-axis viewing.

       VP_CLZ_VOLUME
	      Extract from the preclassified volume used for Z-axis viewing.

       The  last  three	 choices for the volume_type argument are usually used
       only for	debugging.

       The next	six arguments give the coordinates of the corners of  the  ex-
       tracted region in the volume.  The coordinates are indexes into the ar-
       ray.

       The field argument is used to select which voxel	field to extract.  Any
       of  the	voxel field numbers previously specified with vpVoxelField may
       be specified.  The output array must be sized appropriately for the di-
       mensions	of the region and the size of the extracted field.   The  fol-
       lowing special constants	may also be used instead of a voxel field num-
       ber:

       VP_OPACITY_FIELD
	      Return  voxel  opacities for voxels in the indicated region.  If
	      the 3D voxel array is selected then the opacities	 are  computed
	      on-the-fly  using	 the  current  opacity transfer	function.  The
	      minimum opacity threshold	is ignored.  If	the preclassified vol-
	      ume is selected then the precomputed  opacities  are  extracted.
	      Opacities	 below	the  minimum opacity threshold at the time the
	      volume was classified are	set to 0.   The	 output	 array	should
	      have  type unsigned char,	and the	opacities are stored as	number
	      between 0	(transparent) and 255 (opaque).

       VP_CORRECTED_OPAC_FIELD
	      This option is the same as the VP_OPACITY_FIELD  option,	except
	      that  voxel  opacities are corrected for the current view	trans-
	      formation.  The opacity transfer function	is assumed to  produce
	      the  opacity  of a voxel viewed perpendicular to one face	of the
	      volume with no scale factor.  If the voxel has  been  scaled  or
	      rotated  with  respect  to  the viewer then the apparent opacity
	      must be corrected.

       VP_COLOR_FIELD
	      Return voxel colors for voxels in	 the  indicated	 region.   The
	      colors are computed on-the-fly using the current shading,	light-
	      ing  and material	parameters.  The output	array should have type
	      unsigned char, and each color channel is stored  as  number  be-
	      tween  0	(off)  and  255	(full intensity).  The number of color
	      channels per pixels is determined	by the current shading parame-
	      ters.  (Not currently supported for preclassified	volumes.)

       The remaining arguments specify the output array, its size  (for	 error
       checking),  and the stride for each dimension (to allow padding the end
       of scanlines or storing the result in a higher-dimension	array).

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

       VPERROR_BAD_VALUE
	      The  volume  coordinates	are out	of bounds or invalid (x0 > x1,
	      etc.), or	the field number is invalid.

       VPERROR_BAD_SIZE
	      The destination array size is incorrect.

       VPERROR_BAD_VOLUME
	      The volume data does not exist.

       VPERROR_BAD_OPTION
	      The volume_type argument is invalid.

       VPERROR_BAD_VOLUME
	      The volume size or data is missing or invalid.

       VPERROR_BAD_VOXEL
	      The voxel	fields are incorrectly defined.

       VPERROR_BAD_CLASSIFIER
	      The opacity transfer function is incorrectly specified.

       VPERROR_BAD_SHADER
	      The shading parameters have been incorrectly specified.

       VPERROR_SINGULAR
	      One or more of the view transformation matrices is singular.

SEE ALSO
       VolPack(3), vpCreateContext(3)

VolPack								  vpExtract(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=volpack-Extract&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help