Class SurfaceExtractor

java.lang.Object
WildMagic.LibImagics.Extraction.ExtractSurfaceTetra
gov.nih.mipav.view.renderer.WildMagic.Interface.SurfaceExtractor
All Implemented Interfaces:
Serializable

public class SurfaceExtractor extends WildMagic.LibImagics.Extraction.ExtractSurfaceTetra
A level surface extractor that is based on decomposing voxels into tetrahedra, assuming a linear interpolation on the tetrahedra, and extracting triangular level sets for those tetrahedra. The resulting level surface is a triangle mesh. A detailed discussion of the algorithm is found in Level Set Extraction
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class WildMagic.LibImagics.Extraction.ExtractSurfaceTetra

    WildMagic.LibImagics.Extraction.ExtractSurfaceTetra.Triangle, WildMagic.LibImagics.Extraction.ExtractSurfaceTetra.Vertex
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private TransMatrix
    Dicom Matrix
    private int[]
    Surface direction
    private float
    Relative voxel size.
    private float
    Relative voxel size.
    private float
    Relative voxel size.
    private float[]
    Surface 3D location

    Fields inherited from class WildMagic.LibImagics.Extraction.ExtractSurfaceTetra

    m_aiData, m_iNextIndex, m_iXBound, m_iXYProduct, m_iXYZProduct, m_iYBound, m_iZBound, m_kCentroid, m_kE0, m_kE1, m_kGradient, m_kN, m_kTSet, m_kV0, m_kV1, m_kV2, m_kVMap
  • Constructor Summary

    Constructors
    Constructor
    Description
    SurfaceExtractor(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

    Modifier and Type
    Method
    Description
    WildMagic.LibGraphics.SceneGraph.TriMesh
    get(float iLevel)
    Construct a level surface from the 3D image managed by the extractor.
    WildMagic.LibGraphics.SceneGraph.TriMesh
    getLevelSurface(int iLevel, Vector<int[]> kTriTable)
     

    Methods inherited from class WildMagic.LibImagics.Extraction.ExtractSurfaceTetra

    addTriangle, addVertex, ExtractContour, ExtractContour, getFunction, getGradient, processTetrahedron

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • dicomMatrix

      private TransMatrix dicomMatrix
      Dicom Matrix
    • direction

      private int[] direction
      Surface direction
    • m_fXDelta

      private float m_fXDelta
      Relative voxel size.
    • m_fYDelta

      private float m_fYDelta
      Relative voxel size.
    • m_fZDelta

      private float m_fZDelta
      Relative voxel size.
    • startLocation

      private float[] startLocation
      Surface 3D location
  • Constructor Details

    • SurfaceExtractor

      public SurfaceExtractor(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 image
      iYBound - the number of rows in the 3D image
      iZBound - the number of slices in the 3D image
      aiData - 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 startLocation
      dicomMatrix - DOCUMENT ME!
  • Method Details

    • get

      public WildMagic.LibGraphics.SceneGraph.TriMesh get(float iLevel)
      Construct a level surface from the 3D image managed by the extractor.
      Parameters:
      iLevel - the desired level value, in [min(image),max(image)]
      Returns:
      a triangle mesh that represents the level surface
    • getLevelSurface

      public WildMagic.LibGraphics.SceneGraph.TriMesh getLevelSurface(int iLevel, Vector<int[]> kTriTable)