Class VolumeSculptor

java.lang.Object
gov.nih.mipav.view.renderer.J3D.volumeview.Sculptor
gov.nih.mipav.view.renderer.J3D.volumeview.VolumeSculptor
All Implemented Interfaces:
MouseListener, MouseMotionListener, EventListener

public class VolumeSculptor extends Sculptor
Implementation of Volume Sculpting for the RayCast and ShearWarp Volume Renderers. See Sculptor.java.
Author:
Alexandra Bokinsky, Ph.D. Under contract from Magic Software.
See Also:
  • invalid reference
    ViewJFrameVolumeView
  • invalid reference
    RayCastVolumeRenderer
  • invalid reference
    ShearWarpVolumeRenderer
  • Field Details

    • m_bShear

      protected boolean m_bShear
      DOCUMENT ME!
    • m_kVolumeRenderer

      protected VolumeRenderer m_kVolumeRenderer
      The volume renderer that is currently rendering the volume data:.
    • kImageAref

      private ModelImage kImageAref
      References to the sculpt image.
    • kImageBref

      private ModelImage kImageBref
      DOCUMENT ME!
  • Constructor Details

    • VolumeSculptor

      public VolumeSculptor(VolumeRenderer kVolumeRenderer, int iSculptWidth, int iSculptHeight)
      Constructor:
      Parameters:
      kVolumeRenderer - reference to current renderer
      iSculptWidth - Canvas Width
      iSculptHeight - Canvas Height
  • Method Details

    • applySculpt

      public boolean applySculpt()
      applySculpt: called by ViewJFrameVolumeView when the user presses the "Apply Sculpt" button. This function has several steps: 1. Getting the ModelImage volume data and correctly calculating the center of the volume and the spacing of the volume. 2. Calculating the viewing Transformations. 3. Determining which voxels in the volume fall within the sculpt region drawn on the screen, and setting those values to the minimum voxel value.
      Specified by:
      applySculpt in class Sculptor
      Returns:
      DOCUMENT ME!
    • clearSculpt

      public void clearSculpt()
      clearSculpt: called by ViewJFrameVolumeView when the user presses the "Clear Ouline" button, clearing the sculpt outline from the canvas image. The function disables sculpting and reactivates the mouse events for the m_kVolumeRenderer.
      Overrides:
      clearSculpt in class Sculptor
    • disposeLocal

      public void disposeLocal(boolean flag)
      Sets all variables to null, disposes, and garbage collects.
      Overrides:
      disposeLocal in class Sculptor
      Parameters:
      flag - DOCUMENT ME!
    • enableSculpt

      public void enableSculpt(boolean bEnabled)
      enableSculpt: called by the ViewJFrameVolumeView object when the Draw Sculpt button is pressed. This function deactivates the m_kVolumeRenderer's mouse response, so the mouse can be used to draw the sculpt outline.
      Overrides:
      enableSculpt in class Sculptor
      Parameters:
      bEnabled - DOCUMENT ME!
    • finalize

      public void finalize() throws Throwable
      Calls disposeLocal.
      Overrides:
      finalize in class Sculptor
      Throws:
      Throwable - DOCUMENT ME!
    • save

      public void save(FileWriteOptions options, int filterType)
      Creates save dialog so that the image can be saved // This should be moved to imageModel.save();
      Parameters:
      options - File-write options.
      filterType - only used if >= 0
    • undoSculpt

      public void undoSculpt()
      undoSculpt: called by the ViewJFrameVolumeView object when the user presses the "Undo Sculpt" button. It resets the volume data back to the original values, using the data stored in the m_aiImage_backup data members.
      Specified by:
      undoSculpt in class Sculptor
    • update

      public void update()
      Update the underlying volume and rerender. This function is called when the volume has changed.
      Specified by:
      update in class Sculptor
    • updateRenderedVolume

      private void updateRenderedVolume(ViewJComponentRenderImage kRenderImageXY)
      This sequence causes the m_kVolumeRenderer to rerender the volume data, from the current ModelImage, not the data that is stored in the Renderer.
      Parameters:
      kRenderImageXY - DOCUMENT ME!