ij.gui
Class PolygonRoi

java.lang.Object
  extended by ij.gui.Roi
      extended by ij.gui.PolygonRoi
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
FreehandRoi, PointRoi

public class PolygonRoi
extends Roi

This class represents a polygon region of interest or polyline of interest.

See Also:
Serialized Form

Field Summary
protected  int maxPoints
           
protected  int nPoints
           
protected  int splinePoints
           
protected  int[] xp
           
protected  int[] xp2
           
protected  float[] xSpline
           
protected  int[] yp
           
protected  int[] yp2
           
protected  float[] ySpline
           
 
Fields inherited from class ij.gui.Roi
ANGLE, asp_bk, aspect, cachedMask, center, clipboard, clipHeight, clipWidth, clipX, clipY, COMPOSITE, constrain, CONSTRUCTING, defaultFillColor, fillColor, FREELINE, FREEROI, HANDLE_SIZE, handleColor, ic, imp, instanceColor, LINE, lineWidth, mag, MOVING, MOVING_HANDLE, name, nonScalable, NORMAL, NOT_PASTING, oldHeight, oldWidth, oldX, oldY, onePixelWide, OVAL, overlay, pasteMode, POINT, POLYGON, POLYLINE, previousRoi, RECTANGLE, RESIZING, ROIColor, stroke, strokeColor, TRACED_ROI, type, updateFullWindow, wideLine, xMax, yMax
 
Constructor Summary
PolygonRoi(int[] xPoints, int[] yPoints, int nPoints, ImagePlus imp, int type)
          Deprecated.  
PolygonRoi(int[] xPoints, int[] yPoints, int nPoints, int type)
          Creates a new polygon or polyline ROI from x and y coordinate arrays.
PolygonRoi(int sx, int sy, ImagePlus imp)
          Starts the process of creating a new user-generated polygon or polyline ROI.
PolygonRoi(java.awt.Polygon p, int type)
          Creates a new polygon or polyline ROI from a Polygon.
 
Method Summary
protected  void addOffset()
           
protected  int clipRectMargin()
           
 java.lang.Object clone()
          Returns a copy of this PolygonRoi.
 boolean contains(int x, int y)
           
 void draw(java.awt.Graphics g)
           
 void drawPixels(ImageProcessor ip)
          Draws the selection outline on the specified ImageProcessor.
 void exitConstructingMode()
           
 void fitSpline()
           
 void fitSpline(int evaluationPoints)
           
 void fitSplineForStraightening()
           
 double getAngle()
          Returns the angle in degrees between the first two segments of this polyline.
 java.awt.Polygon getConvexHull()
          Uses the gift wrap algorithm to find the convex hull and returns it as a Polygon.
 FloatPolygon getFloatPolygon()
          Returns this polygon or polyline as float arrays.
 double getLength()
          Returns the perimeter (for ROIs) or length (for lines).
 ImageProcessor getMask()
          Override Roi.nudge() to support splines.
 int getNCoordinates()
          Returns the number of XY coordinates.
 java.awt.Polygon getNonSplineCoordinates()
           
 java.awt.Polygon getPolygon()
          Returns this PolygonRoi as a Polygon.
 double getUncalibratedLength()
           
 int[] getXCoordinates()
          Returns this ROI's X-coordinates, which are relative to origin of the bounding box.
 int[] getYCoordinates()
          Returns this ROI's Y-coordinates, which are relative to origin of the bounding box.
protected  void grow(int sx, int sy)
           
protected  void handleMouseUp(int sx, int sy)
           
 int isHandle(int sx, int sy)
          Returns a handle number if the specified screen coordinates are inside or near a handle, otherwise returns -1.
 boolean isSplineFit()
          Returns 'true' if this selection has been fitted with a spline.
protected  void mouseDownInHandle(int handle, int sx, int sy)
           
protected  void moveHandle(int sx, int sy)
           
 void removeSplineFit()
           
protected  void updatePolygon()
           
 
Methods inherited from class ij.gui.Roi
abortPaste, copyAttributes, drawOverlay, drawPixels, endPaste, equals, getAngle, getBoundingRect, getBounds, getColor, getCurrentPasteMode, getDefaultFillColor, getFeretsDiameter, getFeretValues, getFillColor, getImageID, getName, getPasteMode, getRoundRectArcSize, getScaledStroke, getState, getStroke, getStrokeColor, getStrokeWidth, getType, getTypeAsString, handleMouseDown, handleMouseDrag, isArea, isDrawingTool, isLine, isVisible, nudge, nudgeCorner, setColor, setDefaultFillColor, setFillColor, setImage, setInstanceColor, setLineWidth, setLocation, setName, setNonScalable, setPasteMode, setRoundRectArcSize, setStroke, setStrokeColor, setStrokeWidth, showStatus, startPaste, toString, update, updateClipRect, updateWideLine
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

maxPoints

protected int maxPoints

xp

protected int[] xp

yp

protected int[] yp

xp2

protected int[] xp2

yp2

protected int[] yp2

nPoints

protected int nPoints

xSpline

protected float[] xSpline

ySpline

protected float[] ySpline

splinePoints

protected int splinePoints
Constructor Detail

PolygonRoi

public PolygonRoi(int[] xPoints,
                  int[] yPoints,
                  int nPoints,
                  int type)
Creates a new polygon or polyline ROI from x and y coordinate arrays. Type must be Roi.POLYGON, Roi.FREEROI, Roi.TRACED_ROI, Roi.POLYLINE, Roi.FREELINE or Roi.ANGLE.


PolygonRoi

public PolygonRoi(java.awt.Polygon p,
                  int type)
Creates a new polygon or polyline ROI from a Polygon. Type must be Roi.POLYGON, Roi.FREEROI, Roi.TRACED_ROI, Roi.POLYLINE, Roi.FREELINE or Roi.ANGLE.


PolygonRoi

public PolygonRoi(int[] xPoints,
                  int[] yPoints,
                  int nPoints,
                  ImagePlus imp,
                  int type)
Deprecated. 


PolygonRoi

public PolygonRoi(int sx,
                  int sy,
                  ImagePlus imp)
Starts the process of creating a new user-generated polygon or polyline ROI.

Method Detail

draw

public void draw(java.awt.Graphics g)
Overrides:
draw in class Roi

drawPixels

public void drawPixels(ImageProcessor ip)
Description copied from class: Roi
Draws the selection outline on the specified ImageProcessor.

Overrides:
drawPixels in class Roi
See Also:
ImageProcessor.setColor(java.awt.Color), ImageProcessor.setLineWidth(int)

grow

protected void grow(int sx,
                    int sy)
Overrides:
grow in class Roi

updatePolygon

protected void updatePolygon()

exitConstructingMode

public void exitConstructingMode()

moveHandle

protected void moveHandle(int sx,
                          int sy)
Overrides:
moveHandle in class Roi

mouseDownInHandle

protected void mouseDownInHandle(int handle,
                                 int sx,
                                 int sy)
Overrides:
mouseDownInHandle in class Roi

fitSpline

public void fitSpline(int evaluationPoints)

fitSpline

public void fitSpline()

removeSplineFit

public void removeSplineFit()

isSplineFit

public boolean isSplineFit()
Returns 'true' if this selection has been fitted with a spline.


fitSplineForStraightening

public void fitSplineForStraightening()

getUncalibratedLength

public double getUncalibratedLength()

handleMouseUp

protected void handleMouseUp(int sx,
                             int sy)
Overrides:
handleMouseUp in class Roi

addOffset

protected void addOffset()

contains

public boolean contains(int x,
                        int y)
Overrides:
contains in class Roi

isHandle

public int isHandle(int sx,
                    int sy)
Returns a handle number if the specified screen coordinates are inside or near a handle, otherwise returns -1.

Overrides:
isHandle in class Roi

getMask

public ImageProcessor getMask()
Override Roi.nudge() to support splines.

Overrides:
getMask in class Roi

getLength

public double getLength()
Returns the perimeter (for ROIs) or length (for lines).

Overrides:
getLength in class Roi

getAngle

public double getAngle()
Returns the angle in degrees between the first two segments of this polyline.


getNCoordinates

public int getNCoordinates()
Returns the number of XY coordinates.


getXCoordinates

public int[] getXCoordinates()
Returns this ROI's X-coordinates, which are relative to origin of the bounding box.


getYCoordinates

public int[] getYCoordinates()
Returns this ROI's Y-coordinates, which are relative to origin of the bounding box.


getNonSplineCoordinates

public java.awt.Polygon getNonSplineCoordinates()

getPolygon

public java.awt.Polygon getPolygon()
Returns this PolygonRoi as a Polygon.

Overrides:
getPolygon in class Roi
See Also:
ImageProcessor.setRoi(java.awt.Rectangle), ImageProcessor.drawPolygon(java.awt.Polygon), ImageProcessor.fillPolygon(java.awt.Polygon)

getFloatPolygon

public FloatPolygon getFloatPolygon()
Returns this polygon or polyline as float arrays.

Overrides:
getFloatPolygon in class Roi

getConvexHull

public java.awt.Polygon getConvexHull()
Uses the gift wrap algorithm to find the convex hull and returns it as a Polygon.

Overrides:
getConvexHull in class Roi

clipRectMargin

protected int clipRectMargin()
Overrides:
clipRectMargin in class Roi

clone

public java.lang.Object clone()
Returns a copy of this PolygonRoi.

Overrides:
clone in class Roi