com.xinapse.multisliceimage.roi
Class RectangularROI

java.lang.Object
  extended by com.xinapse.multisliceimage.roi.ROI
      extended by com.xinapse.multisliceimage.roi.RectangularROI
All Implemented Interfaces:
RegularROI, StretchableROI, java.lang.Cloneable

public class RectangularROI
extends ROI
implements java.lang.Cloneable, StretchableROI, RegularROI

An Class representing a rectangular region of an image.


Field Summary
static java.lang.String HEIGHTTOKEN
          The token written to ROI output files to represent the height of a rectangular ROI.
static java.lang.String WIDTHTOKEN
          The token written to ROI output files to represent the width of a rectangular ROI.
 
Fields inherited from class com.xinapse.multisliceimage.roi.ROI
handles, PREFERENCES_NODE_NAME, XTOKEN, YTOKEN
 
Constructor Summary
RectangularROI(double x, double y, double width, double height)
          Creates a new RectangularROI with the supplied dimensions in mm coordinates.
RectangularROI(double x, double y, double width, double height, ROIState state)
          Creates a new RectangularROI with the supplied dimensions in mm.
RectangularROI(java.awt.geom.Rectangle2D.Double rect, ROIState state)
          Creates a new RectangularROI with the dimension given by the supplied Rectangle2D in mm coordinates.
 
Method Summary
 RectangularROI clone()
          Returns a clone of this ROI.
 boolean contains(ROI roi)
          Indicates whether this RectangularROI contains another ROI entirely within its borders.
 java.util.List<ROI> dilate(double radius, java.util.concurrent.atomic.AtomicInteger opCounter, CancellableThread.Flag cancelFlag)
          Dilates this ROI by the specified distance.
 boolean draw(java.awt.Graphics g, java.awt.Rectangle visibleRectangle, int imageDrawCols, int imageDrawRows, int xOffset, int yOffset, int nCols, int nRows, float pixelXSize, float pixelYSize, boolean drawAnnotation)
          Draws this ROI if it needs to be be drawn on screen.
 void drawInOrthoView(java.awt.Image orthoView, javax.vecmath.Point3f orthoViewPosition, javax.media.j3d.Transform3D imageToViewTx, int nCols, int nRows, int nSlices, float pixelXSize, float pixelYSize, boolean filled)
          Draws this ROI on top of an orthogonal view of an image.
 boolean equals(java.lang.Object o)
          Indicates whether some Object is equal to this ROI.
 void flipHorizontal(java.awt.geom.Point2D flipPoint)
          Flip this ROI horizontally about a given location.
 void flipVertical(java.awt.geom.Point2D flipPoint)
          Flip this ROI vertically about a given location.
static javax.swing.Icon getButtonIcon()
          Returns an Icon that can be used for a button to create this type of ROI.
 ROI getCopy()
          Returns a copy of this ROI.
static ROICreateDialog getCreateDialog(CanAddROIToFrame listener)
          Returns a JDialog that can be used to create Rectangular ROIs.
static InteractionType getCreateInteractionType()
          Returns the type of interaction needed to create a RectangularROI.
 java.lang.String getDescription()
          Return a description of this type of ROI.
 Feret getFeret()
          Returns the minimum and maximum Feret's diameter for this ROI, in mm.
 double getHeight()
          Returns the height of this RectangularROI in mm.
static ROI getInstance(java.awt.Rectangle boundingRectangle, int nCols, int nRows, float pixelXSize, float pixelYSize, byte userColour, ROIState state)
          Creates an instance of a RectangularROI suitable for drawing on a window.
static java.lang.String getName()
          Returns a descriptive name for this type of ROI.
 double getPerimeter()
          Returns the perimeter length of this ROI.
 double getSquareArea()
          Returns the area of this regular ROI in square mm.
 double getWidth()
          Returns the width of this RectangularROI in mm.
 double getX()
          Returns the x-coordinate of the top left corner of this RectangularROI in mm.
 double getY()
          Returns the y-coordinate of the top left corner of this RectangularROI in mm.
 int hashCode()
          Returns a hash code value for this RectangularROI.
 boolean intersects(ROI roi)
          Tests whether this ROI intersects another ROI.
 void move(double dx, double dy)
          Move this ROI by specified distances (in mm) in the x and y directions.
 void move(double dx, double dy, double stretchX, double stretchY)
          Moves and stretches an ROI.
 void set(ROI roi)
          Sets the shape of this ROI to the shape of the supplied argument ROI.
 java.lang.String toString()
          Returns a String describing this ROI.
 
Methods inherited from class com.xinapse.multisliceimage.roi.ROI
add, add, addMorphological, clearDeletionHistory, clearStats, dilate, exclusiveOr, getAnnotation, getBoundingRectangle, getBoundingRectangle, getCachedStatistics, getClasses, getColor, getDisplayedBounds2D, getDisplayedBounds2D, getDisplayedRoiArea, getFeret, getHandles, getHandleUnderPoint, getImageSource, getPixelValue, getROIs, getROIs, getROIs, getSlice, getState, getStats, getStats, getStats, getTextColor, getTextFontSize, getUserColour, intersect, isDeleted, isEditable, isReloaded, isSelected, join, main, markDeleted, mmPosToPix, moveROIs, pixPosToMm, printStats, selectDeselect, setAnnotation, setCreationHistory, setSlice, setState, setTextColor, setTextSize, setUserColour, subtract, subtract, write, write
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.xinapse.multisliceimage.roi.StretchableROI
getDisplayedBounds2D
 

Field Detail

WIDTHTOKEN

public static final java.lang.String WIDTHTOKEN
The token written to ROI output files to represent the width of a rectangular ROI.

See Also:
Constant Field Values

HEIGHTTOKEN

public static final java.lang.String HEIGHTTOKEN
The token written to ROI output files to represent the height of a rectangular ROI.

See Also:
Constant Field Values
Constructor Detail

RectangularROI

public RectangularROI(java.awt.geom.Rectangle2D.Double rect,
                      ROIState state)
               throws ROIException
Creates a new RectangularROI with the dimension given by the supplied Rectangle2D in mm coordinates.

Parameters:
rect - the Rectangle2D.Double that gives the size and location of the ROI in mm.
state - the ROIState for the ROI at creation.
Throws:
ROIException - if the ROI cannot be created.

RectangularROI

public RectangularROI(double x,
                      double y,
                      double width,
                      double height)
               throws ROIException
Creates a new RectangularROI with the supplied dimensions in mm coordinates. The new RectangularROI will be in a state ROIState.NORMAL.

Parameters:
x - the x-coordinate of the top left corner of the rectangle in mm.
y - the y-coordinate of the top left corner of the rectangle in mm.
width - the width of the rectangle.
height - the height of the rectangle.
Throws:
ROIException - if the ROI cannot be created.

RectangularROI

public RectangularROI(double x,
                      double y,
                      double width,
                      double height,
                      ROIState state)
               throws ROIException
Creates a new RectangularROI with the supplied dimensions in mm.

Parameters:
x - the x-coordinate of the top left corner of the rectangle in mm.
y - the y-coordinate of the top left corner of the rectangle in mm.
width - the width of the rectangle in mm.
height - the height of the rectangle in mm.
state - the ROIState for the ROI at creation.
Throws:
ROIException - if the ROI cannot be created.
Method Detail

getX

public double getX()
Returns the x-coordinate of the top left corner of this RectangularROI in mm.

Returns:
the x-coordinate of the top left corner of this RectangularROI in mm.

getY

public double getY()
Returns the y-coordinate of the top left corner of this RectangularROI in mm.

Returns:
the y-coordinate of the top left corner of this RectangularROI in mm.

getWidth

public double getWidth()
Returns the width of this RectangularROI in mm.

Returns:
the width of this RectangularROI in mm.

getHeight

public double getHeight()
Returns the height of this RectangularROI in mm.

Returns:
the height of this RectangularROI in mm.

getCreateInteractionType

public static InteractionType getCreateInteractionType()
Returns the type of interaction needed to create a RectangularROI.

Returns:
type of interaction needed to create a RectangularROI - InteractionType.NONE.

getSquareArea

public double getSquareArea()
Description copied from interface: RegularROI
Returns the area of this regular ROI in square mm.

Specified by:
getSquareArea in interface RegularROI
Returns:
the area of this ROI in square mm.

move

public void move(double dx,
                 double dy)
Description copied from class: ROI
Move this ROI by specified distances (in mm) in the x and y directions.

Specified by:
move in class ROI
Parameters:
dx - the distance to move in the x-direction.
dy - the distance to move in the y-direction.

move

public void move(double dx,
                 double dy,
                 double stretchX,
                 double stretchY)
Description copied from interface: StretchableROI
Moves and stretches an ROI. A stretch value is a scaling factor for dimensions in either the horizontal or vertical directions. A stretch of 1.0 means no stretch.

Specified by:
move in interface StretchableROI
Parameters:
dx - the distance (in mm) to move the centre of the StretchableROI in the horizontal direction.
dy - the distance (in mm) to move the centre of the StretchableROI in the vertical direction.
stretchX - the stretch in the horizontal direction.
stretchY - the stretch in the vertical direction.

flipVertical

public void flipVertical(java.awt.geom.Point2D flipPoint)
Description copied from class: ROI
Flip this ROI vertically about a given location.

Specified by:
flipVertical in class ROI
Parameters:
flipPoint - the point about which the ROI will be flipped.

flipHorizontal

public void flipHorizontal(java.awt.geom.Point2D flipPoint)
Description copied from class: ROI
Flip this ROI horizontally about a given location.

Specified by:
flipHorizontal in class ROI
Parameters:
flipPoint - the point about which the ROI will be flipped.

getInstance

public static ROI getInstance(java.awt.Rectangle boundingRectangle,
                              int nCols,
                              int nRows,
                              float pixelXSize,
                              float pixelYSize,
                              byte userColour,
                              ROIState state)
                       throws ROIException
Creates an instance of a RectangularROI suitable for drawing on a window. Bounding rectangle determines the maximum size of the ROI (in image pixels).

Parameters:
boundingRectangle - the area of screen into which the ROI must fit.
nCols - the number of image columns.
nRows - the number of image rows.
pixelXSize - the size of image pixels in the horizontal direction.
pixelYSize - the size of image pixels in the vertical direction.
state - the initial state of this newly-created ROI.
Returns:
a new RectangularROI that can be displayed inside the specified region of image pixels.
Throws:
ROIException

dilate

public java.util.List<ROI> dilate(double radius,
                                  java.util.concurrent.atomic.AtomicInteger opCounter,
                                  CancellableThread.Flag cancelFlag)
Description copied from class: ROI
Dilates this ROI by the specified distance.

Parameters:
radius - the radius of dilation.
opCounter - a counter for the number of sub-operations that was performed to execute the dilation operations.
cancelFlag - a flag that, if set externally, cancels the operation.
Returns:
a List of ROIs that result from the operation.

draw

public boolean draw(java.awt.Graphics g,
                    java.awt.Rectangle visibleRectangle,
                    int imageDrawCols,
                    int imageDrawRows,
                    int xOffset,
                    int yOffset,
                    int nCols,
                    int nRows,
                    float pixelXSize,
                    float pixelYSize,
                    boolean drawAnnotation)
Description copied from class: ROI
Draws this ROI if it needs to be be drawn on screen.

Overrides:
draw in class ROI
Parameters:
g - the graphics context for the drawing operation.
visibleRectangle - the part of the image that can be seen on-screen.
imageDrawCols - width of the area in which this portion of the image is to be drawn.
imageDrawRows - height of the area in which this portion of the image is to be drawn.
xOffset - a horizontal offset for drawing operations.
yOffset - a vertical offset for drawing operations.
nCols - the number of columns in the image on which this ROI is defined.
nRows - the number of rows in the image on which this ROI is defined.
pixelXSize - pixel width for the image on which this ROI is defined.
pixelYSize - pixel height for the image on which this ROI is defined.
drawAnnotation - a flag to indicate whether annotation should be drawn.
Returns:
true if the ROI is visible and been drawn on screen; false otherwise.

drawInOrthoView

public void drawInOrthoView(java.awt.Image orthoView,
                            javax.vecmath.Point3f orthoViewPosition,
                            javax.media.j3d.Transform3D imageToViewTx,
                            int nCols,
                            int nRows,
                            int nSlices,
                            float pixelXSize,
                            float pixelYSize,
                            boolean filled)
Description copied from class: ROI
Draws this ROI on top of an orthogonal view of an image.

Specified by:
drawInOrthoView in class ROI
Parameters:
orthoView - the java.awt.Image into which the ROI is to be drawn.
orthoViewPosition - the coordinates (col, row, slice position) of the orthogonal view in the original image.
imageToViewTx - the Transform3D that maps original image pixel coordinates to pixel coordinates in the orthogonal view.
nCols - the number of columns in the original image.
nRows - the number of rows in the original image.
nSlices - the number of slices in the original image.
pixelXSize - the pixel width in the original image.
pixelYSize - the pixel height in the original image.
filled - whether the ROI should be drawn filled (effective only for ROIs that enclose an area).

getFeret

public Feret getFeret()
Description copied from class: ROI
Returns the minimum and maximum Feret's diameter for this ROI, in mm.

Specified by:
getFeret in class ROI
Returns:
the minimum and maximum Feret's diameter (in mm) as a Feret object.

getPerimeter

public double getPerimeter()
Description copied from class: ROI
Returns the perimeter length of this ROI.

Specified by:
getPerimeter in class ROI
Returns:
the perimeter length of this ROI.

getCreateDialog

public static ROICreateDialog getCreateDialog(CanAddROIToFrame listener)
Returns a JDialog that can be used to create Rectangular ROIs.

Parameters:
listener - the CanAddROIToFrame to which the ROI will be added when the Add button of the Dialog is clicked.

contains

public boolean contains(ROI roi)
Indicates whether this RectangularROI contains another ROI entirely within its borders.

Specified by:
contains in class ROI
Parameters:
roi - the ROI to be tested for containment within this ROI.
Returns:
true if this RectangularROI contains the specified ROI; false otherwise.

intersects

public boolean intersects(ROI roi)
Description copied from class: ROI
Tests whether this ROI intersects another ROI.

Note that the area of intersection may be zero if one or other of the ROIs (or both) contains no area.

Specified by:
intersects in class ROI
Parameters:
roi - the ROI to be tested for intersection.
Returns:
true in the two ROIs intersect; false otherwise.

equals

public boolean equals(java.lang.Object o)
Description copied from class: ROI
Indicates whether some Object is equal to this ROI. To be equal, the Object must be an ROI of the same type, and of the same shape and location as this ROI.

Specified by:
equals in class ROI
Parameters:
o - the Object to be tested for equality to this ROI.
Returns:
true if the supplied Object is an ROI of the same type, shape and location as this ROI; false otherwise.

hashCode

public int hashCode()
Returns a hash code value for this RectangularROI.

Overrides:
hashCode in class ROI
Returns:
a hash code value for this RectangularROI.

set

public void set(ROI roi)
         throws java.lang.ClassCastException
Description copied from class: ROI
Sets the shape of this ROI to the shape of the supplied argument ROI.

Specified by:
set in class ROI
Throws:
java.lang.ClassCastException - of the sub class of the argument ROI is not the same as this ROI.

getCopy

public ROI getCopy()
Description copied from class: ROI
Returns a copy of this ROI. The copy will be identical in shape and annotation as the original ROI, but with a history of that of a newly-created ROI.

Specified by:
getCopy in class ROI
Returns:
a copy of this ROI, cast to an Object.

clone

public RectangularROI clone()
Description copied from class: ROI
Returns a clone of this ROI. The copy will be identical in shape and annotation as the original ROI, and with a history identical to the cloned ROI.

Overrides:
clone in class ROI
Returns:
a clone of this ROI, cast to an Object.

toString

public java.lang.String toString()
Description copied from class: ROI
Returns a String describing this ROI.

Specified by:
toString in class ROI
Returns:
a java.lang.String describing this ROI.

getDescription

public java.lang.String getDescription()
Description copied from class: ROI
Return a description of this type of ROI.

Specified by:
getDescription in class ROI
Returns:
a String describing the type of this ROI.

getName

public static java.lang.String getName()
Returns a descriptive name for this type of ROI.

Returns:
a String describing this type of ROI.

getButtonIcon

public static javax.swing.Icon getButtonIcon()
Returns an Icon that can be used for a button to create this type of ROI.

Returns:
an Icon that can be used to represent this type of ROI.


Copyright 2006-2011 Xinapse Systems Limited. All Rights Reserved.