Class ModelSurfaceExtractorCubes
- java.lang.Object
-
- WildMagic.LibImagics.Extraction.ExtractSurfaceCubes
-
- gov.nih.mipav.view.renderer.J3D.model.structures.ModelSurfaceExtractorCubes
-
- All Implemented Interfaces:
java.io.Serializable
public class ModelSurfaceExtractorCubes extends WildMagic.LibImagics.Extraction.ExtractSurfaceCubes
A level surface extractor that is based on decomposing voxels into cubes, assuming a linear interpolation on the cubes, and extracting triangular level sets for those cubes. The resulting level surface is a triangle mesh.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private TransMatrix
dicomMatrix
DOCUMENT ME!private float[]
m_afStartLocation
DOCUMENT ME!private int[]
m_aiDirection
DOCUMENT ME!private float
m_fXDelta
DOCUMENT ME!private float
m_fYDelta
DOCUMENT ME!private float
m_fZDelta
DOCUMENT ME!-
Fields inherited from class WildMagic.LibImagics.Extraction.ExtractSurfaceCubes
EB_XMAX_YMAX, EB_XMAX_YMIN, EB_XMAX_ZMAX, EB_XMAX_ZMIN, EB_XMIN_YMAX, EB_XMIN_YMIN, EB_XMIN_ZMAX, EB_XMIN_ZMIN, EB_YMAX_ZMAX, EB_YMAX_ZMIN, EB_YMIN_ZMAX, EB_YMIN_ZMIN, EI_XMAX_YMAX, EI_XMAX_YMIN, EI_XMAX_ZMAX, EI_XMAX_ZMIN, EI_XMIN_YMAX, EI_XMIN_YMIN, EI_XMIN_ZMAX, EI_XMIN_ZMIN, EI_YMAX_ZMAX, EI_YMAX_ZMIN, EI_YMIN_ZMAX, EI_YMIN_ZMIN, FI_XMAX, FI_XMIN, FI_YMAX, FI_YMIN, FI_ZMAX, FI_ZMIN, m_aiData, m_iXBound, m_iXYBound, m_iYBound, m_iZBound, m_kCentroid, m_kE0, m_kE1, m_kGradient, m_kN
-
-
Constructor Summary
Constructors Constructor Description ModelSurfaceExtractorCubes(int iXBound, int iYBound, int iZBound, int[] aiData, float fXDelta, float fYDelta, float fZDelta, int[] direction, float[] startLocation, TransMatrix dicomMatrix)
Create a level surface extractor for a 3D image.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ModelTriangleMesh
getLevelSurface(int iLevel, ViewJProgressBar progressBar)
Construct a level surface from the 3D image managed by the extractor.
-
-
-
Field Detail
-
dicomMatrix
private TransMatrix dicomMatrix
DOCUMENT ME!
-
m_afStartLocation
private float[] m_afStartLocation
DOCUMENT ME!
-
m_aiDirection
private int[] m_aiDirection
DOCUMENT ME!
-
m_fXDelta
private float m_fXDelta
DOCUMENT ME!
-
m_fYDelta
private float m_fYDelta
DOCUMENT ME!
-
m_fZDelta
private float m_fZDelta
DOCUMENT ME!
-
-
Constructor Detail
-
ModelSurfaceExtractorCubes
public ModelSurfaceExtractorCubes(int iXBound, int iYBound, int iZBound, int[] aiData, float fXDelta, float fYDelta, float fZDelta, int[] direction, float[] startLocation, TransMatrix dicomMatrix)
Create a level surface extractor for a 3D image. The delta input values are important when the voxels are not cubic. For example, a typical MRI might have z-slice spacing about 5 times that of the x and y spacing. In this case, dx = 1, dy = 1, and dz = 5. The idea is that 1 is a 'voxel unit' and the z-slices are spaced by 5 voxel units.- Parameters:
iXBound
- the number of columns in the 3D imageiYBound
- the number of rows in the 3D imageiZBound
- the number of slices in the 3D imageaiData
- The image data stored in order of slice indices, each slice stored in row-major order. That is, slice z=0 is stored first, slice z=1 is stored next, and so on. In slice z=0, the y=0 row is stored first, the y=1 row is stored next, and so on.fXDelta
- the relative voxel x-size (in voxel units)fYDelta
- the relative voxel y-size (in voxel units)fZDelta
- the relative voxel z-size (in voxel units)direction
- array of direction factors == 1 or -1.startLocation
- array of startLocationdicomMatrix
- DOCUMENT ME!
-
-
Method Detail
-
getLevelSurface
public ModelTriangleMesh getLevelSurface(int iLevel, ViewJProgressBar progressBar)
Construct a level surface from the 3D image managed by the extractor.- Parameters:
iLevel
- the desired level value, in [min(image),max(image)]progressBar
- update to display progress during extraction- Returns:
- a triangle mesh that represents the level surface
-
-