Class JDialogACPC

All Implemented Interfaces:
DialogDefaultsInterface, ActionListener, FocusListener, ItemListener, WindowListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants

public class JDialogACPC extends JDialogBase
Dialog to enter points for creating an ACPC image.
Author:
William Gandler, Pierre-Louis Bazin
See Also:
  • Field Details

    • comboBoxOrientX

      private JComboBox comboBoxOrientX
    • comboBoxOrientY

      private JComboBox comboBoxOrientY
    • comboBoxOrientZ

      private JComboBox comboBoxOrientZ
    • ACPCGroup

      private ButtonGroup ACPCGroup
    • applyACPCButton

      private JButton applyACPCButton
    • cancelACPCButton

      private JButton cancelACPCButton
    • setACPCButton

      private JButton setACPCButton
    • clearACPCButton

      private JButton clearACPCButton
    • setOrientationButton

      private JButton setOrientationButton
    • superiorEdge

      private JRadioButton superiorEdge
    • posteriorMargin

      private JRadioButton posteriorMargin
    • inferiorEdge

      private JRadioButton inferiorEdge
    • firstPt

      private JRadioButton firstPt
    • anotherPt

      private JRadioButton anotherPt
    • frame

      private final ViewJFrameTriImage frame
    • image

      private final ModelImage image
    • transform

      private final TalairachTransformInfo transform
    • textVoxelLength

      private JTextField textVoxelLength
    • haveSuperiorEdge

      private boolean haveSuperiorEdge
    • havePosteriorMargin

      private boolean havePosteriorMargin
    • haveInferiorEdge

      private boolean haveInferiorEdge
    • haveFirstPt

      private boolean haveFirstPt
    • haveAnotherPt

      private boolean haveAnotherPt
    • orient

      private int[] orient
    • superiorEdgePt

      private WildMagic.LibFoundation.Mathematics.Vector3f superiorEdgePt
    • posteriorMarginPt

      private WildMagic.LibFoundation.Mathematics.Vector3f posteriorMarginPt
    • inferiorEdgePt

      private WildMagic.LibFoundation.Mathematics.Vector3f inferiorEdgePt
    • firstMidSagPt

      private WildMagic.LibFoundation.Mathematics.Vector3f firstMidSagPt
    • anotherMidSagPt

      private WildMagic.LibFoundation.Mathematics.Vector3f anotherMidSagPt
    • interpolation

      private final int interpolation
    • voxelLength

      private float voxelLength
    • ACPCImage

      public ModelImage ACPCImage
    • useIncorrectAcpcXDim

      private boolean useIncorrectAcpcXDim
      Flag used to force acpc x dim to old (incorrect) value of 192 instead of fixed value calculation (which results in x dim of 191).
  • Constructor Details

    • JDialogACPC

      public JDialogACPC(ViewJFrameTriImage theParentFrame, ModelImage im, ModelImage acpc, TalairachTransformInfo trans, int interp)
      This method creates a dialog for selecting markers used for generating an AC-PC aligned view image from an original image
      Parameters:
      theParentFrame - Pointer to the frame that created this dialog.
      im - Pointer to image represented in frame.
  • Method Details

    • init

      private void init()
      Initializes GUI components and displays dialog.
    • getMainPanel

      public JPanel getMainPanel()
      Get the dialog main panel.
      Returns:
      the main panel of the dialog
    • actionPerformed

      public void actionPerformed(ActionEvent event)
      If user clicks "Set", sets point here and in component image. If user clicks "Clear", clears point here and in component image. If user clicks "Apply", creates new Talairach image based on points. If user clicks "Cancel", disposes this dialog.
      Specified by:
      actionPerformed in interface ActionListener
      Overrides:
      actionPerformed in class JDialogBase
      Parameters:
      event - Event that triggered this method.
    • getOrient

      private boolean getOrient()
    • setOrient

      private boolean setOrient()
      Gets the orientation from the combo boxes and checks if it's consistent.
      Returns:
      true if orientation is consistent.
    • setSuperiorEdge

      private void setSuperiorEdge(WildMagic.LibFoundation.Mathematics.Vector3f pt)
      Sets superior label based on the point. Enables "Apply" if all points have been set.
      Parameters:
      pt - Point that was set.
    • setPosteriorMargin

      private void setPosteriorMargin(WildMagic.LibFoundation.Mathematics.Vector3f pt)
      Sets posterior label based on the point. Enables "Apply" if all points have been set.
      Parameters:
      pt - Point that was set.
    • setInferiorEdge

      private void setInferiorEdge(WildMagic.LibFoundation.Mathematics.Vector3f pt)
      Sets inferior label based on the point. Enables "Apply" if all points have been set.
      Parameters:
      pt - Point that was set.
    • setFirstPt

      private void setFirstPt(WildMagic.LibFoundation.Mathematics.Vector3f pt)
      Sets first label based on the point. Enables "Apply" if all points have been set.
      Parameters:
      pt - Point that was set.
    • setAnotherPt

      private void setAnotherPt(WildMagic.LibFoundation.Mathematics.Vector3f pt)
      Sets another label based on the point. Enables "Apply" if all points have been set.
      Parameters:
      pt - Point that was set.
    • convertToACPC

      protected boolean convertToACPC()
      Converts image to AC-PC image. Returns flag indicating success.
      Returns:
      true if successful conversion.
    • setTalairachHeader

      public void setTalairachHeader(ModelImage img)
      add the Talairach Transform to the image header
    • toOriginal

      private WildMagic.LibFoundation.Mathematics.Vector3f toOriginal(WildMagic.LibFoundation.Mathematics.Vector3f in)
      to convert frame coordinates into the original image ones
    • dist

      private float dist(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2, float[] resol)
      Finds the distance between two points based on resolution.
      Parameters:
      pt1 - First point.
      pt2 - Second point.
      resol - Resolutions of each dimension.
    • sub

      private WildMagic.LibFoundation.Mathematics.Vector3f sub(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2)
      Subtracts one vector from another and returns result. result = pt1 - pt2.
      Parameters:
      pt1 - Vector to subtract from.
      pt2 - Vector to be subtracted.
      Returns:
      pt1 - pt2
    • norm

      private WildMagic.LibFoundation.Mathematics.Vector3f norm(WildMagic.LibFoundation.Mathematics.Vector3f pt)
      Finds the normal to the vector.
      Parameters:
      pt - Vector to find normal to.
      Returns:
      Normal of pt.
    • crossProduct

      private WildMagic.LibFoundation.Mathematics.Vector3f crossProduct(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2)
      Finds crossproduct of two vectors.
      Parameters:
      pt1 - First vector.
      pt2 - Second vector
      Returns:
      Cross product of pt1 and pt2.
    • dotProduct

      private float dotProduct(WildMagic.LibFoundation.Mathematics.Vector3f pt1, WildMagic.LibFoundation.Mathematics.Vector3f pt2)
      Finds dotproduct of two vectors.
      Parameters:
      pt1 - First vector.
      pt2 - Second vector
      Returns:
      Dot product of pt1 and pt2.
    • sclAdd

      private WildMagic.LibFoundation.Mathematics.Vector3f sclAdd(float fa, WildMagic.LibFoundation.Mathematics.Vector3f a, float fb, WildMagic.LibFoundation.Mathematics.Vector3f b)
      Scale and add two vectors.
      Parameters:
      fa - Scale for vector a.
      a - Vector a.
      fb - Scale for vector b.
      b - Vector b.
    • makemmVector3f

      private WildMagic.LibFoundation.Mathematics.Vector3f makemmVector3f(WildMagic.LibFoundation.Mathematics.Vector3f pt, float[] resol)
      Makes a mm (physical space) point from a pixel space point.
      Parameters:
      pt - Point to convert.
      resol - Resolutions to use when converting.
      Returns:
      Same point in mm.
    • makeVoxelCoord3Df

      private WildMagic.LibFoundation.Mathematics.Vector3f makeVoxelCoord3Df(WildMagic.LibFoundation.Mathematics.Vector3f pt, float[] resol)
      Makes a pixel space point from a physical space point.
      Parameters:
      pt - Point to convert.
      resol - Resolutions to use when converting.
      Returns:
      Same point in pixel space.
    • transformACPCTrilinear

      private void transformACPCTrilinear(ModelImage image, float[] imgBuffer, double[][] xfrm, float iXres, float iYres, float iZres, int iXdim, int iYdim, int iZdim, float oXres, float oYres, float oZres, int oXdim, int oYdim, int oZdim, ViewJProgressBar progressBar)
      Transforms and resamples volume using trilinear interpolation
      Parameters:
      image - Image.
      imgBuffer - Image array.
      xfrm - Transformation matrix to be applied.
      iXres - In X resolution.
      iYres - In Y resolution.
      iZres - In Z resolution.
      iXdim - In X dimension.
      iYdim - In Y dimension.
      iZdim - In Z dimension.
      oXres - Out X resolution.
      oYres - Out Y resolution.
      oZres - Out Z resolution.
      oXdim - Out X dimension.
      oYdim - Out Y dimension.
      oZdim - Out Z dimension.
      progressBar - Progress bar.
      oXlow - Out X low.
      oYlow - Out Y low.
      oZlow - Out Z low.
      oXhigh - Out X high.
      oYhigh - Out Y high.
      oZhigh - Out Z high.
    • getACPCImage

      public ModelImage getACPCImage()