Module ij
Package ij.gui

# Class PointRoi

java.lang.Object
ij.gui.Roi
ij.gui.PolygonRoi
ij.gui.PointRoi

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Iterable<Point>`

public class PointRoi extends PolygonRoi
This class represents a collection of points that can be associated with counters. Use the getPolygon() or getFloatPolygon() methods to retrieve the coordinates of the points.

See Also:
  - PointProperties.js
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`CIRCLE`
`static final int`
`CROSS`
`static final int`
`CROSSHAIR`
`static final int`
`DOT`
`static final int`
`HYBRID`
`static final int`
`MAX_COUNTERS`
`static PointRoi`
`savedPoints`
`static final String[]`
`sizes`
`static final String[]`
`types`

### Fields inherited from class ij.gui.PolygonRoi

`maxPoints, nPoints, splinePoints, xp, xp2, xpf, xSpline, yp, yp2, ypf, ySpline`

### Fields inherited from class ij.gui.Roi

`ANGLE, asp_bk, aspect, cachedMask, center, clipboard, clipHeight, clipWidth, clipX, clipY, COMPOSITE, constrain, CONSTRUCTING, defaultColor, defaultFillColor, FERET_ARRAY_POINTOFFSET, FERET_ARRAYSIZE, fillColor, flattenScale, FREELINE, FREEROI, HANDLE_SIZE, handleColor, ic, ignoreClipRect, imp, instanceColor, LINE, lineWidth, mag, MOVING, MOVING_HANDLE, nonScalable, NORMAL, NOT_PASTING, oldHeight, oldWidth, oldX, oldY, onePixelWide, OVAL, overlay, pasteMode, POINT, POLYGON, POLYLINE, previousRoi, RECTANGLE, RESIZING, ROIColor, stroke, strokeColor, TRACED_ROI, updateFullWindow, wideLine, xMax, yMax`

## Constructor Summary

Constructors
Constructor
Description
`PointRoi()`
`PointRoi(double ox, double oy)`
Creates a new PointRoi using the specified offscreen double coordinates.
`PointRoi(double ox, double oy, String options)`
Creates a new PointRoi using the specified coordinates and options.
`PointRoi(float[] ox, float[] oy)`
Creates a new PointRoi using the specified float arrays of offscreen coordinates.
`PointRoi(float[] ox, float[] oy, int points)`
Creates a new PointRoi using the specified float arrays of offscreen coordinates.
`PointRoi(float[] ox, float[] oy, String options)`
Creates a new PointRoi using the specified coordinate arrays and options.
`PointRoi(int[] ox, int[] oy, int points)`
Creates a new PointRoi using the specified int arrays of offscreen coordinates.
`PointRoi(int ox, int oy)`
Creates a new PointRoi using the specified offscreen int coordinates.
`PointRoi(int sx, int sy, ImagePlus imp)`
Creates a new PointRoi using the specified screen coordinates.
`PointRoi(FloatPolygon poly)`
Creates a new PointRoi from a FloatPolygon.
`PointRoi(Polygon poly)`
Creates a new PointRoi from a Polygon.

## Method Summary

Modifier and Type
Method
Description
`PointRoi`
`addPoint(double x, double y)`
Adds a point to this PointRoi.
`void`
`addPoint(double x, double y, int position)`
Adds a point at the specified stack position.
`void`
`addPoint(ImagePlus imp, double ox, double oy)`
Adds a point to this PointRoi.
`boolean`
`addToOverlay()`
`void`
`addUserPoint(ImagePlus imp, double ox, double oy)`
`Object`
`clone()`
Returns a copy of this PointRoi.
`PointRoi`
`containedPoints(Roi roi)`
Returns the points of this Roi that are contained in the specified area ROI.
`boolean`
`contains(int x, int y)`
Returns true if (x,y) is one of the points in this collection.
`void`
`copyAttributes(Roi roi2)`
Copy the attributes (outline color, fill color, outline width) of 'roi2' to the this selection.
`PointRoi`
`crop(Roi roi)`
`protected void`
`deletePoint(int index)`
`void`
`displayCounts()`
`void`
`draw(Graphics g)`
Draws the points on the image.
`void`
`drawPixels(ImageProcessor ip)`
Draws the selection outline on the specified ImageProcessor.
`protected int`
`getClosestPoint(double x, double y, FloatPolygon points)`
`FloatPolygon`
`getContainedFloatPoints()`
Returns the points as a FloatPolygon.
`Point[]`
`getContainedPoints()`
Returns the points as an array of Points.
`int`
`getCount(int counter)`
Returns the count associated with the specified counter index.
`int`
`getCounter()`
Returns the index of the current counter.
`int`
`getCounter(int index)`
Returns the counter assocated with the specified point.
`static String[]`
`getCounterChoices()`
`int[]`
`getCounterInfo()`
`int[]`
`getCounters()`
Returns an array containing for each point: The counter number (0-100) in the lower 8 bits, and the slice number (or 0, if the point appears on all slices) in the higher 24 bits.
`static Color`
`getDefaultCrossColor()`
Deprecated
`static String`
`getDefaultMarkerSize()`
Deprecated.
`static int`
`getDefaultSize()`
Returns the default point size 0-6 (Tiny-XXXL).
`static int`
`getDefaultType()`
`int`
`getLastCounter()`
Returns the index of the last counter.
`ImageProcessor`
`getMask()`
Always returns null for rectangular Roi's
`int`
`getNCounters()`
Returns the number of counters.
`int`
`getPointPosition(int index)`
Returns the stack slice of the point with the given index, or 0 if no slice defined for this point
`int`
`getPointType()`
Returns the point type (0=hybrid, 1=cross, 2=dot, 3=circle).
`boolean`
`getShowLabels()`
`int`
`getSize()`
Returns the current point size 0-6 (Tiny-XXXL).
`protected void`
`handleMouseUp(int sx, int sy)`
With segmented selections, ignore first mouse up and finalize when user double-clicks, control-clicks or clicks in start box.
`int`
`isHandle(int sx, int sy)`
Returns a point index if it has been at least one second since the last point was added and the specified screen coordinates are inside or near a point, otherwise returns -1.
`Iterator<Point>`
`iterator()`
Custom iterator for points contained in a `PointRoi`.
`boolean`
`promptBeforeDeleting()`
`void`
`promptBeforeDeleting(Boolean prompt)`
`void`
`resetCounters()`
`void`
`setCounter(int counter)`
`void`
`setCounterInfo(int[] info)`
`void`
`setCounters(int[] counters)`
Sets the counter number and slice number for each point from an array, where the lower 8 bits are the counter number and the higher 24 bits contain the slice position of each point.
`static void`
`setDefaultCounter(int counter)`
`static void`
`setDefaultCrossColor(Color color)`
Deprecated
`static void`
`setDefaultMarkerSize(String size)`
Deprecated.
`static void`
`setDefaultSize(int size)`
Sets the default point size, where 'size' is 0-6 (Tiny-XXXL).
`static void`
`setDefaultType(int type)`
`void`
`setHideLabels(boolean hideLabels)`
Deprecated.
`void`
`setOptions(String options)`
`void`
`setPointType(int type)`
Sets the point type (0=hybrid, 1=cross, 2=dot, 3=circle).
`void`
`setShowLabels(boolean showLabels)`
`void`
`setSize(int size)`
Sets the point size, where 'size' is 0-6 (Tiny-XXXL).
`boolean`
`subPixelResolution()`
Always returns true.
`PointRoi`
`subtractPoints(Roi roi)`
Returns the points of this Roi that are not contained in the specified area ROI.
`String`
`toString()`
`void`
`updateCounts()`
Updates the counts for each category in 'counters'

### Methods inherited from class ij.gui.PolygonRoi

`addOffset, clipRectMargin, containsPoint, deleteHandle, enableSubPixelResolution, exitConstructingMode, fitSpline, fitSpline, fitSplineForStraightening, getAngle, getDebugInfo, getFloatPolygon, getInterpolatedPolygon, getLength, getNCoordinates, getNonSplineCoordinates, getNonSplineFloatPolygon, getPolygon, getUncalibratedLength, getXCoordinates, getYCoordinates, grow, isSplineFit, mouseDownInHandle, mouseMoved, moveHandle, removeSplineFit, resetBoundingRect, setLocation, size, updatePolygon, wipeBack`

### Methods inherited from class ij.gui.Roi

`abortModification, abortPaste, addRoiListener, convertLineToArea, convertToPolygon, create, create, drawOverlay, drawPixels, endPaste, equals, getAngle, getAntiAlias, getBoundingRect, getBounds, getColor, getContourCentroid, getConvexHull, getCornerDiameter, getCPosition, getCurrentPasteMode, getDefaultFillColor, getDefaultGroup, getDefaultHandleSize, getDefaultStrokeWidth, getDrawOffset, getFeretsDiameter, getFeretValues, getFillColor, getFloatAngle, getFloatBounds, getFloatConvexHull, getFloatHeight, getFloatPolygon, getFloatWidth, getGroup, getGroupName, getGroupNames, getHandleSize, getHashCode, getImage, getImageID, getInterpolatedPolygon, getInterpolatedPolygon, getInverse, getListeners, getMagnification, getName, getPasteMode, getPosition, getPreviousRoi, getProperties, getProperty, getPropertyCount, getPrototypeOverlay, getRotationCenter, getRoundRectArcSize, getScaledStroke, getScaleStrokeWidth, getState, getStatistics, getStroke, getStrokeColor, getStrokeWidth, getTPosition, getType, getTypeAsString, getXBase, getYBase, getZPosition, handleMouseDown, handleMouseDrag, hasHyperStackPosition, isActiveOverlayRoi, isArea, isCursor, isDrawingTool, isInteger, isLine, isLineOrPoint, isVisible, lineCircleIntersection, magnificationForSubPixel, magnificationForSubPixel, mouseDragged, mouseReleased, notifyListeners, nudge, nudgeCorner, offScreenX, offScreenXD, offScreenY, offScreenYD, removeRoiListener, resetDefaultHandleSize, saveGroupNames, screenX, screenXD, screenY, screenYD, setAntiAlias, setBounds, setColor, setCornerDiameter, setDefaultColor, setDefaultFillColor, setDefaultGroup, setDefaultStrokeWidth, setDrawOffset, setFillColor, setFlattenScale, setGroup, setGroupName, setGroupNames, setHandleSize, setIgnoreClipRect, setImage, setInstanceColor, setIsCursor, setLineWidth, setLocation, setName, setNonScalable, setPasteMode, setPosition, setPosition, setPosition, setPreviousRoi, setProperties, setProperty, setPrototypeOverlay, setRenderingHint, setRotationCenter, setRoundRectArcSize, setStroke, setStrokeColor, setStrokeWidth, setStrokeWidth, setUnscalableStrokeWidth, showStatus, startPaste, temporarilyHide, toFloat, toInt, toInt, toIntR, translate, update, updateClipRect, updateWideLine, useLineSubpixelConvention, xor`

### Methods inherited from class java.lang.Object

`finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

## Field Details

### sizes

public static final String[] sizes

### types

public static final String[] types

### HYBRID

public static final int HYBRID

See Also:
  - Constant Field Values

### CROSS

public static final int CROSS

See Also:
  - Constant Field Values

### CROSSHAIR

public static final int CROSSHAIR

See Also:
  - Constant Field Values

### DOT

public static final int DOT

See Also:
  - Constant Field Values

### CIRCLE

public static final int CIRCLE

See Also:
  - Constant Field Values

### MAX_COUNTERS

public static final int MAX_COUNTERS

See Also:
  - Constant Field Values

### savedPoints

public static PointRoi savedPoints

## Constructor Details

### PointRoi

public PointRoi()

### PointRoi

public PointRoi(int[] ox, int[] oy, int points)
Creates a new PointRoi using the specified int arrays of offscreen coordinates.

### PointRoi

public PointRoi(float[] ox, float[] oy, int points)
Creates a new PointRoi using the specified float arrays of offscreen coordinates.

### PointRoi

public PointRoi(float[] ox, float[] oy)
Creates a new PointRoi using the specified float arrays of offscreen coordinates.

### PointRoi

public PointRoi(float[] ox, float[] oy, String options)
Creates a new PointRoi using the specified coordinate arrays and options.

### PointRoi

public PointRoi(FloatPolygon poly)
Creates a new PointRoi from a FloatPolygon.

### PointRoi

public PointRoi(Polygon poly)
Creates a new PointRoi from a Polygon.

### PointRoi

public PointRoi(double ox, double oy, String options)
Creates a new PointRoi using the specified coordinates and options.

### PointRoi

public PointRoi(int ox, int oy)
Creates a new PointRoi using the specified offscreen int coordinates.

### PointRoi

public PointRoi(double ox, double oy)
Creates a new PointRoi using the specified offscreen double coordinates.

### PointRoi

public PointRoi(int sx, int sy, ImagePlus imp)
Creates a new PointRoi using the specified screen coordinates.

## Method Details

### setOptions

public void setOptions(String options)

### handleMouseUp

protected void handleMouseUp(int sx, int sy)
Description copied from class: `PolygonRoi`
With segmented selections, ignore first mouse up and finalize when user double-clicks, control-clicks or clicks in start box.

Overrides:
  `handleMouseUp` in class `PolygonRoi`

### draw

public void draw(Graphics g)
Draws the points on the image.

Overrides:
  `draw` in class `PolygonRoi`

### drawPixels

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

Overrides:
  `drawPixels` in class `PolygonRoi`
See Also:
  - `ImageProcessor.setColor(java.awt.Color)`
  - `ImageProcessor.setLineWidth(int)`

### addPoint

public void addPoint(ImagePlus imp, double ox, double oy)
Adds a point to this PointRoi.

### addUserPoint

public void addUserPoint(ImagePlus imp, double ox, double oy)

### addPoint

public PointRoi addPoint(double x, double y)
Adds a point to this PointRoi.

### addPoint

public void addPoint(double x, double y, int position)
Adds a point at the specified stack position.

### deletePoint

protected void deletePoint(int index)

Overrides:
  `deletePoint` in class `PolygonRoi`

### getCounter

public int getCounter()
Returns the index of the current counter.

### getCount

public int getCount(int counter)
Returns the count associated with the specified counter index.

See Also:
  - `getLastCounter()`
  - PointProperties.js

### getLastCounter

public int getLastCounter()
Returns the index of the last counter.

### getNCounters

public int getNCounters()
Returns the number of counters.

### getCounter

public int getCounter(int index)
Returns the counter assocated with the specified point.

### resetCounters

public void resetCounters()

### subtractPoints

public PointRoi subtractPoints(Roi roi)
Returns the points of this Roi that are not contained in the specified area ROI. Returns null if there are no resulting points or Roi is not an area roi.

### containedPoints

public PointRoi containedPoints(Roi roi)
Returns the points of this Roi that are contained in the specified area ROI. Returns null if there are no resulting points or Roi is not an area roi.

### getMask

public ImageProcessor getMask()
Description copied from class: `Roi`
Always returns null for rectangular Roi's

Overrides:
  `getMask` in class `PolygonRoi`

### contains

public boolean contains(int x, int y)
Returns true if (x,y) is one of the points in this collection.

Overrides:
  `contains` in class `PolygonRoi`

### setShowLabels

public void setShowLabels(boolean showLabels)

### getShowLabels

public boolean getShowLabels()

### setDefaultType

public static void setDefaultType(int type)

### getDefaultType

public static int getDefaultType()

### setPointType

public void setPointType(int type)
Sets the point type (0=hybrid, 1=cross, 2=dot, 3=circle).

### getPointType

public int getPointType()
Returns the point type (0=hybrid, 1=cross, 2=dot, 3=circle).

### setDefaultSize

public static void setDefaultSize(int size)
Sets the default point size, where 'size' is 0-6 (Tiny-XXXL).

### getDefaultSize

public static int getDefaultSize()
Returns the default point size 0-6 (Tiny-XXXL).

### setSize

public void setSize(int size)
Sets the point size, where 'size' is 0-6 (Tiny-XXXL).

### getSize

public int getSize()
Returns the current point size 0-6 (Tiny-XXXL).

### subPixelResolution

public boolean subPixelResolution()
Always returns true.

Overrides:
  `subPixelResolution` in class `Roi`

### setCounter

public void setCounter(int counter)

### promptBeforeDeleting

public boolean promptBeforeDeleting()

### promptBeforeDeleting

public void promptBeforeDeleting(Boolean prompt)

### setDefaultCounter

public static void setDefaultCounter(int counter)

### getCounters

public int[] getCounters()
Returns an array containing for each point: The counter number (0-100) in the lower 8 bits, and the slice number (or 0, if the point appears on all slices) in the higher 24 bits. Used when writing a Roi to file (RoiEncoder)

### setCounters

public void setCounters(int[] counters)
Sets the counter number and slice number for each point from an array, where the lower 8 bits are the counter number and the higher 24 bits contain the slice position of each point. Used when reading a roi fromfile (RoiDecoder).

### updateCounts

public void updateCounts()
Updates the counts for each category in 'counters'

### getPointPosition

public int getPointPosition(int index)
Returns the stack slice of the point with the given index, or 0 if no slice defined for this point

### displayCounts

public void displayCounts()

### getCounterChoices

public static String[] getCounterChoices()

### isHandle

public int isHandle(int sx, int sy)
Returns a point index if it has been at least one second since the last point was added and the specified screen coordinates are inside or near a point, otherwise returns -1.

Overrides:
  `isHandle` in class `PolygonRoi`

### getContainedPoints

public Point[] getContainedPoints()
Returns the points as an array of Points. Wilhelm Burger: modified to use FloatPolygon for correct point positions.

Overrides:
  `getContainedPoints` in class `Roi`
See Also:
  - `Roi.getContainedFloatPoints()`
  - `Roi.iterator()`

### getContainedFloatPoints

public FloatPolygon getContainedFloatPoints()
Returns the points as a FloatPolygon.

Overrides:
  `getContainedFloatPoints` in class `Roi`
See Also:
  - `Roi.getContainedPoints()`
  - `Roi.iterator()`

### iterator

public Iterator<Point> iterator()
Custom iterator for points contained in a `PointRoi`. Author: W. Burger

Specified by:
  `iterator` in interface `Iterable<Point>`
Overrides:
  `iterator` in class `Roi`
See Also:
  - `Roi.getContainedPoints()`
  - `Roi.getContainedFloatPoints()`

### getClosestPoint

protected int getClosestPoint(double x, double y, FloatPolygon points)

Overrides:
  `getClosestPoint` in class `PolygonRoi`

### clone

public Object clone()
Returns a copy of this PointRoi.

Overrides:
  `clone` in class `PolygonRoi`

### crop

public PointRoi crop(Roi roi)

### copyAttributes

public void copyAttributes(Roi roi2)
Description copied from class: `Roi`
Copy the attributes (outline color, fill color, outline width) of 'roi2' to the this selection.

Overrides:
  `copyAttributes` in class `Roi`

### setCounterInfo

public void setCounterInfo(int[] info)

### getCounterInfo

public int[] getCounterInfo()

### addToOverlay

public boolean addToOverlay()

### toString

public String toString()

Overrides:
  `toString` in class `Roi`

### setHideLabels

public void setHideLabels(boolean hideLabels)
Deprecated.

### setDefaultMarkerSize

public static void setDefaultMarkerSize(String size)
Deprecated.

### getDefaultMarkerSize

public static String getDefaultMarkerSize()
Deprecated.

### setDefaultCrossColor

public static void setDefaultCrossColor(Color color)
Deprecated

### getDefaultCrossColor

public static Color getDefaultCrossColor()
Deprecated