ImageGear Professional DLL v17.1 for Windows Accusoft
AT_VECT_3DIV_OPTIONS
Send Feedback  
ImageGear Professional DLL v17.1 for Windows > API Reference Guide > Vector Component API Reference > Vector Component Structures Reference > AT_VECT_3DIV_OPTIONS

Glossary Item Box

This structure serves as a parameter for function IG_vect_3DIV_isosurface(), and contains the values for all the options for isosurface algorithm.

Declaration:

  Copy Code
typedef struct tagAT_VECT_3DIV_OPTIONS
{
        AT_DOUBLE dIsoValue;
        AT_INT iLowExcluRange;
        AT_INT iHighExcluRange;
        AT_BOOL bDoNorms;
        AT_BOOL bFlipNorms;
        AT_BOOL bAddCoverSlices;
        AT_BOOL bLimitDepth;
        AT_INT iSurfaceDepth;
        AT_BOOL bDecimateY;
        AT_INT iYDecimFactor;
        AT_BOOL bDecimateZ;
        AT_INT iZDecimFactor;
} AT_VECT_3DIV_OPTIONS;

Members:

dIsoValue Intensity value of pixels on the isosurface.
iLowExcluRange Lower limit of exclusion region.
iHighExcluRange Upper limit of exclusion region.
bDoNorms Flag to indicate whether to calculate the normals along with vertices.
bFlipNorms Flag to indicate whether to flip the normals after calculation.
bAddCoverSlices Flag to indicate whether to add cover-up slices at the ends.
bLimitDepth Flag to indicate whether to limit the surface depth.
iSurfaceDepth Depth of the surface. In effect only if bLimitDepth is TRUE.
bDecimateY Flag to indicate whether to decimate Y direction when considering surface depth. In effect only if bLimitDepth is TRUE.
iYDecimFactor Decimation factor in Y direction. In effect only if both bLimitDepth and bDecimateY are TRUE.
bDecimateZ Flag to indicate whether to decimate Z direction when considering the surface depth. In effect only if bLimitDepth is TRUE.
iZDecimFactor Decimation factor in Z direction, in effect only if both bLimitDepth and bDecimateZ are TRUE.

Remarks:

The parameter bAddCoverSlices indicates whether "cover-up" slices should be added at both ends. If TRUE, the first and last slices will be placed at both ends, with pixels outside of the 3D object set to transparent.

When the isosurface is generated, a lot of triangles are also generated inside the 3D object, although sometimes we are only interested in the outside surface. The flag bLimitDepth allows the surface to be limited to only a certain depth, thus any triangles further inside will be discarded. This greatly improves the rendering performance, for example, when rotating the 3D object. On the flip side, if surface depth limit is set too low, it is possible that "artificial holes" will be created on the surface because of excessive discarding of triangles.

Parameters bDecimateY, iYDecimFactor, bDecimateZ and iZDecimFactor further refine the process of limiting surface depth. The higher the decimation factors, the better the surface looks, but that also means the greater number of triangles. So a balance point is required. For a brain example we looked at, values [10, 5, 5] for [iSurfaceDepth, iYDecimFactor, iZDecimFactor] reduced the number of triangles by about a half while still producing a reasonable 3D surface.

Parameters iLowExcluRange and iHighExcluRange are designed to exclude certain pixels whose intensities fall within the specified range. If this feature is not desired, the user can simply set both of those two parameters to 0.

©2012. Accusoft Corporation. All Rights Reserved.