ij.gui
Class PolygonRoi

java.lang.Object
  extended by ij.gui.AbstractRoi
      extended by ij.gui.AttributeRoi
          extended by ij.gui.Roi
              extended by ij.gui.PolygonRoi
All Implemented Interfaces:
RoiBeans, RoiConstance, java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
EllipseRoi, 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[] xpf
           
protected  float[] xSpline
           
protected  int[] yp
           
protected  int[] yp2
           
protected  float[] ypf
           
protected  float[] ySpline
           
 
Fields inherited from class ij.gui.Roi
asp_bk, aspect, cachedMask, center, clipboard, clipHeight, clipWidth, clipX, clipY, constrain, defaultFillColor, handleColor, ic, imageID, instanceColor, lineWidth, mag, nonScalable, oldHeight, oldWidth, oldX, oldY, onePixelWide, overlay, pasteMode, previousRoi, updateFullWindow
 
Fields inherited from class ij.gui.AttributeRoi
fillColor, imp, ROIColor, stroke, strokeColor, type, wideLine, xMax, yMax
 
Fields inherited from interface ij.gui.RoiConstance
ADD_TO_ROI, ANGLE, COMPOSITE, CONSTRUCTING, FREELINE, FREEROI, HANDLE_SIZE, LINE, MOVING, MOVING_HANDLE, NO_MODS, NORMAL, NOT_PASTING, OVAL, POINT, POLYGON, POLYLINE, RECTANGLE, RESIZING, SUBTRACT_FROM_ROI, TRACED_ROI
 
Constructor Summary
PolygonRoi(float[] xPoints, float[] yPoints, int nPoints, int type)
          Creates a new polygon or polyline ROI from x and y float arrays.
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 deleteHandle(int ox, int oy)
           
 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, drawHandle, drawOverlay, drawPixels, drawPixels, endPaste, equals, getBoundingRect, getBounds, getCornerDiameter, getCurrentPasteMode, getDrawOffset, getFloatBounds, getHandleSize, getMagnification, getPasteMode, getPrototypeOverlay, getRoundRectArcSize, getScaledStroke, getState, getTypeAsString, handleMouseDown, handleMouseDrag, isArea, isDrawingTool, isLine, isVisible, nudge, nudgeCorner, screenX, screenXD, screenY, screenYD, setCornerDiameter, setDrawOffset, setImage, setInstanceColor, setLineWidth, setLocation, setNonScalable, setPasteMode, setPrototypeOverlay, setRoundRectArcSize, showStatus, startPaste, subPixelResolution, temporarilyHide, toFloat, toInt, toInt, toIntR, toString, update, updateClipRect, updateWideLine
 
Methods inherited from class ij.gui.AttributeRoi
copyAttributes, getAngle, getColor, getCPosition, getDefaultFillColor, getFeretsDiameter, getFeretValues, getFillColor, getImage, getImageID, getName, getPosition, getStroke, getStrokeColor, getStrokeWidth, getTPosition, getType, getZPosition, setColor, setDefaultFillColor, setFillColor, setName, setPosition, setPosition, setStroke, setStrokeColor, setStrokeWidth, setStrokeWidth
 
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

xpf

protected float[] xpf

ypf

protected float[] ypf

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(float[] xPoints,
                  float[] yPoints,
                  int nPoints,
                  int type)
Creates a new polygon or polyline ROI from x and y float arrays. Type must be Roi.POLYGON, Roi.FREEROI, 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)
Specified by:
draw in interface RoiBeans
Overrides:
draw in class Roi

drawPixels

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

Specified by:
drawPixels in interface RoiBeans
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

deleteHandle

public void deleteHandle(int ox,
                         int oy)

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)
Specified by:
contains in interface RoiBeans
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.

Specified by:
isHandle in interface RoiBeans
Overrides:
isHandle in class Roi

getMask

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

Specified by:
getMask in interface RoiBeans
Overrides:
getMask in class Roi

getLength

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

Specified by:
getLength in interface RoiBeans
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.

Specified by:
getPolygon in interface RoiBeans
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.

Specified by:
getFloatPolygon in interface RoiBeans
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.

Specified by:
getConvexHull in interface RoiBeans
Overrides:
getConvexHull in class AttributeRoi

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