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

FreeBSD Manual Pages

  
 
  

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

NAME
       vpSetClassifierTable - specify an opacity transfer function

SYNOPSIS
       #include	<volpack.h>

       vpResult
       vpSetClassifierTable(vpc, param_num, param_field, table,	table_size)
	   vpContext *vpc;
	   int param_num, param_field;
	   float *table;
	   int table_size;

ARGUMENTS
       vpc    VolPack context from vpCreateContext.

       param_num
	      Parameter	number identifying one parameter of the	opacity	trans-
	      fer function.

       param_field
	      Field number identifying a voxel field that contains the parame-
	      ter.

       table  Lookup table that	defines	the mapping from the voxel field value
	      to the opacity.

       table_size
	      Size of table in bytes.

DESCRIPTION
       vpSetClassifierTable is used to specify lookup tables  that  define  an
       opacity	transfer  function.   The opacity transfer function must be of
       the form: opacity = f0(param0) *	f1(param1) * ...  *  fN(paramN)	 where
       each of the factors is a	function of one	voxel field (see below for im-
       plementing more general classification  models).	  vpSetClassifierTable
       must  be	called once for	each factor to specify a lookup	table that de-
       fines the factor.  After	the function has been specified, opacities are
       computed	 by  calling  one  of  the classification functions: vpClassi-
       fyScalars, vpClassifyVolume,  or	 vpClassifyScanline.   To  classify  a
       voxel, these functions use the values in	the fields of the voxel	as in-
       dexes into the opacity transfer function	 tables,  retrieve  one	 value
       from  each table, and multiply the values together to compute the opac-
       ity for the voxel.  The	opacity	 should	 be  a	number	in  the	 range
       0.0-1.0,	 so normally each table	contains numbers that are also in this
       range.

       The parameters of the opacity transfer function are numbered from zero,
       and  the	total number of	parameters must	be specified using vpSetVoxel-
       Size before calling vpSetClassifierTable.  The number of	parameters  is
       independent  of the number of voxel fields: some	fields may not be used
       as parameters, and one field could be  used  multiple  times  (although
       this is inefficient since all of	the tables indexed by the same parame-
       ter could be merged into	one table).

       Each table should be a 1D array of numbers with one entry for each pos-
       sible  value  of	 the  corresponding voxel field.  The voxel field must
       contain an unsigned integer quantity.  Normally each table would	be de-
       clared:	float table[MAX_FIELD_VALUE + 1]; where	MAX_FIELD_VALUE	is the
       maximum possible	value in the voxel field as specified  with  vpSetVox-
       elField.	  The table may	also be	dynamically allocated.	Note that Vol-
       Pack will never free the	table, even if	the  VolPack  context  is  de-
       stroyed	with  vpDestroyContext,	 so the	application is responsible for
       freeing the memory when appropriate.  The values	in the	table  may  be
       initialized  or modified	at any time before or after calling vpSetClas-
       sifierTable, but	before calling one  of	the  classification  routines.
       See  the	function vpRamp	for a convenient way to	initialize tables with
       piece-wise linear ramps.

       Classification functions	that are not expressible in the	form above can
       be handled as follows.  First, write your own routine that computes the
       opacity for each	voxel.	Next, quantize the opacities  using  somewhere
       between	8 and 16 bits per voxel, and store the quantized values	in one
       field of	each voxel.  Finally, define an	opacity	transfer function  ta-
       ble  that  maps the quantized opacities into a floating point number in
       the range 0.0-1.0 and use the table to define a single-parameter	 opac-
       ity transfer function by	calling	vpSetClassifierTable.

       The  minimum  opacity  threshold	 should	be set at the same time	as the
       opacity transfer	function.  See the  VP_MIN_VOXEL_OPACITY  argument  to
       vpSetd.

STATE VARIABLES
       The  current  classification  function parameters can be	retrieved with
       the  following  state  variable	 codes	 (see	vpGeti(3)):   VP_CLAS-
       SIFY_FIELD_COUNT,   VP_CLASSIFY_FIELDS,	 VP_CLASSIFY_TABLES,  VP_CLAS-
       SIFY_TABLE_SIZES, VP_MIN_VOXEL_OPACITY

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

       VPERROR_BAD_VALUE
	      Either param_num or field_num is out of range.

SEE ALSO
       VolPack(3),    vpCreateContext(3),   vpClassifyScanline(3),   vpClassi-
       fyScalars(3), vpClassifyVolume(3), vpRamp(3)

VolPack						       vpSetClassifierTable(3)

NAME | SYNOPSIS | ARGUMENTS | DESCRIPTION | STATE VARIABLES | ERRORS | SEE ALSO

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

home | help