Class ShearWarpIntensity

All Implemented Interfaces:
RendererInterfaceIntensity
Direct Known Subclasses:
ShearWarpIntensityDRR, ShearWarpIntensityMIP

public abstract class ShearWarpIntensity extends ShearWarpRenderer implements RendererInterfaceIntensity
The base class renderer to support shear-warp rendering of intensity images (gray scale). The intensity is stored in the blue channel of the base class renderer. See the document ShearWarpRendering.pdf for a detailed description of the renderer architecture.
  • Field Details

    • m_acImageA

      protected byte[] m_acImageA
      DOCUMENT ME!
    • m_acImageB

      protected byte[] m_acImageB
      byte and alpha channels for the image.
    • m_afInterB

      protected float[] m_afInterB
      intermediate 2D image.
    • m_fNormalize

      protected float m_fNormalize
      Factor used to scale the intermediate values during the mapping to the final image.
    • m_kMap

      protected RendererMapIntensity m_kMap
      Map to convert intensity values to colors.
  • Constructor Details

    • ShearWarpIntensity

      public ShearWarpIntensity(ModelImage kImage, int iFinalBound, int[] aiFinal)
      Create an intensity renderer.
      Parameters:
      kImage - the 3D image
      iFinalBound - the dimension of the square 2D renderer image
      aiFinal - The 2D rendered image. The image is 24-bit RGB color, each pixel stored as a 32-bit integer. The 8 most significant bits are ignored. The blue channel is stored in the 8 least significant bits. The green channel is in the next 8 bits adjacent to the blue bits. The red channel is in the next 8 bits adjacent to the green channel.
  • Method Details

    • disposeLocal

      public void disposeLocal()
      Clean memory.
      Overrides:
      disposeLocal in class ShearWarpRenderer
    • hasInputData

      public boolean hasInputData()
      Return indication as to whether or not the input image data has been specified yet.
      Specified by:
      hasInputData in interface RendererInterfaceIntensity
      Specified by:
      hasInputData in class Renderer
      Returns:
      boolean True if the input image data has been specified.
    • hasInputMap

      public boolean hasInputMap()
      Return indication as to whether or not a LUT to use for mapping input intensity values to colors has been specified.
      Specified by:
      hasInputMap in interface RendererInterfaceIntensity
      Returns:
      boolean True if such a LUT has been defined.
    • setInput

      public void setInput(byte[] acImageB, byte[] acImageA)
      Specify the input volume to use for rendering. 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.
      Specified by:
      setInput in interface RendererInterfaceIntensity
      Parameters:
      acImageB - byte[] Array of byte intensity values for volume.
      acImageA - byte[] Array of byte alpha values for volume.
    • setInputMap

      public void setInputMap(RendererMapIntensity kMap)
      Specify the lookup table to use for mapping input intensity values to colors.
      Specified by:
      setInputMap in interface RendererInterfaceIntensity
      Parameters:
      kMap - Look up table for mapping the intensity values to colors.
    • finalize

      protected void finalize() throws Throwable
      Calls disposeLocal to clean up memory, and then call super.finalize();
      Overrides:
      finalize in class ShearWarpRenderer
      Throws:
      Throwable - DOCUMENT ME!
    • mapIntermediateToFinal

      protected void mapIntermediateToFinal()
      Map the intermediate images to the final color image.
      Specified by:
      mapIntermediateToFinal in class ShearWarpRenderer
    • resampleAll

      protected void resampleAll(int iDS)
      Resample all the slices for the current permuted volume data.
      Overrides:
      resampleAll in class ShearWarpRenderer
      Parameters:
      iDS - The number of slices to increment during the resampling phase. The value should be one or larger. If one, all slices of the volume data are resampled. If two, only every other slice is resampled. An input larger than one is used to allow fast rendering during rotation of the volume data. Once the rotation terminates, a composite with input of one should be called.