Class TriangleClassificationWidget

java.lang.Object
gov.nih.mipav.view.renderer.WildMagic.Render.MultiDimensionalTransfer.ClassificationWidget
gov.nih.mipav.view.renderer.WildMagic.Render.MultiDimensionalTransfer.TriangleClassificationWidget
All Implemented Interfaces:
Serializable

public class TriangleClassificationWidget extends ClassificationWidget
This class implements a 2D Triangle-shaped ClassficiationWidget. The code implements the rendering of the widget in the 2D Multi-histogram panel, as well as the user mouse-interaction with the widget. The parameters that define the widget are then passed to the Volume Renderer GLSL shader program and determine how the Volume is displayed. *
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • m_fCenterX

      private float m_fCenterX
      Current parameterized coordinates for the center control point in X (used to maintain relative position when resizing the widget).
    • m_fCenterY

      private float m_fCenterY
      Current parameterized coordinates for the center control point in Y (used to maintain relative position when resizing the widget).
    • m_kLeftSphere

      protected WildMagic.LibGraphics.SceneGraph.TriMesh m_kLeftSphere
  • Constructor Details

    • TriangleClassificationWidget

      public TriangleClassificationWidget(int iX, int iY, WildMagic.LibFoundation.Mathematics.Vector2f kTMin, WildMagic.LibFoundation.Mathematics.Vector2f kTMax, WildMagic.LibGraphics.Rendering.Texture kTexture, int iWidth, int iHeight)
      Parameters:
      iX - location in MouseEvent Coordinates.
      iY - location in MouseEvent Coordinates.
      kTMin - minimum texture coordinates for the 2D histogram, used for the image background. (Defaults 0-1)
      kTMax - maximum texture coordinates for the 2D histogram, used for the image background. (Defaults 0-1)
      iWidth - canvas width (default 256)
      iHeight - canvas height (default 256)
      kTexName - 2D Histogram texture name.
  • Method Details

    • Pick

      public boolean Pick(WildMagic.LibGraphics.Rendering.Renderer kRenderer, int iX, int iY)
      Description copied from class: ClassificationWidget
      Abstract picking. Returns true if this widget, or one of it's control points was picked.
      Specified by:
      Pick in class ClassificationWidget
      Parameters:
      iX - current mouse x position (MouseEvent coordinates).
      iY - current mouse y position (MouseEvent coordinates).
      Returns:
      true if this widget or one of it's control points was picked.
    • processMouseDrag

      public void processMouseDrag(int iX0ld, int iYOld, int iButton, int iX, int iY)
      Specified by:
      processMouseDrag in class ClassificationWidget
      Parameters:
      iX0ld - old mouse x-position in MouseEvent coordinates.
      iYOld - old mouse y-position in MouseEvent coordinates.
      iButton - old mouse button.
    • setPicked

      public void setPicked(boolean bPicked)
      Clears or sets the current picked object, sets the outline color to red when picked, blue when not selected.
      Overrides:
      setPicked in class ClassificationWidget
      Parameters:
      bPicked - when true the widget is selected.
    • setTexture

      public void setTexture(WildMagic.LibGraphics.Rendering.Texture kTexture)
      Description copied from class: ClassificationWidget
      Sets the histogram Texture map for the widget shader effect.
      Specified by:
      setTexture in class ClassificationWidget
      Parameters:
      kTexture -
    • ShiftMidTriangle

      public void ShiftMidTriangle(int iX, int iY)
      Move the middle-control point which controls the transfer function in the triangle:
      Parameters:
      e - MouseEvent
    • updateCenterXY

      private void updateCenterXY(float fX, float fY)
    • updateDisplay

      public void updateDisplay()
      Description copied from class: ClassificationWidget
      Updates the ShaderEffect parameters for this widget.
      Specified by:
      updateDisplay in class ClassificationWidget
    • areaTwice

      protected float areaTwice(float ptAx, float ptAy, float ptBx, float ptBy, float ptCx, float ptCy)
      Determines which side of the line a point lies on, used for determining if a point is inside or outside a closed loop.
      Parameters:
      ptAx -
      ptAy -
      ptBx -
      ptBy -
      ptCx -
      ptCy -
      Returns:
    • CreateTriangle

      protected void CreateTriangle(int iX, int iY, WildMagic.LibGraphics.Rendering.Texture kTexture)
      Creates the triangle widget and control points:
      Parameters:
      iX - mouse x-position in MouseEvent coordinates.
      iY - mouse y-position in MouseEvent coordinates.
      kTexName - 2D Histogram texture name.
    • ScaleTriangle

      protected void ScaleTriangle(int iX, int iY, int position, WildMagic.LibGraphics.SceneGraph.TriMesh sphere)
      Resizes the triangle using the lower-control point:
      Parameters:
      e - MouseEvent
    • ShiftTriangle

      protected void ShiftTriangle(int iX, int iY)
      Shifts the triangle along the bottom edge of the 2D Histogram, using the bottom control-point. Shift only moves the triangle to the left or right, not up or down.
      Parameters:
      e - MouseEvent
    • computeIntersect

      private WildMagic.LibFoundation.Mathematics.Vector3f computeIntersect(WildMagic.LibFoundation.Mathematics.Vector3f p0, WildMagic.LibFoundation.Mathematics.Vector3f v0, WildMagic.LibFoundation.Mathematics.Vector3f p1, WildMagic.LibFoundation.Mathematics.Vector3f v1, boolean onLine)
      Computes the intersection between two lines.
      Parameters:
      p0 - starting position of line 0.
      v0 - line 0 direction vector.
      p1 - starting position of line 1.
      v1 - line 1 direction vector.
      Returns:
      intersection point.
    • insideTri

      private boolean insideTri(float fX, float fY)
      Determines if the input position is inside the triangle widget.
      Parameters:
      fX - x-position.
      fY - y-position.
      Returns:
      true if inside the triangle, false otherwise.
    • readObject

      private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
      Read this object from disk.
      Parameters:
      in -
      Throws:
      IOException
      ClassNotFoundException
    • writeObject

      private void writeObject(ObjectOutputStream out) throws IOException
      Stream this object to disk.
      Parameters:
      out -
      Throws:
      IOException