Module ij
Package ij.gui

Class Line

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<java.awt.Point>
    Direct Known Subclasses:
    Arrow

    public class Line
    extends Roi
    This class represents a straight line selection.
    See Also:
    Serialized Form
    • Field Detail

      • x1

        public int x1
      • y1

        public int y1
      • x2

        public int x2
      • y2

        public int y2
      • x1d

        public double x1d
      • y1d

        public double y1d
      • x2d

        public double x2d
      • y2d

        public double y2d
      • x1R

        protected double x1R
      • y1R

        protected double y1R
      • x2R

        protected double x2R
      • y2R

        protected double y2R
      • startxd

        protected double startxd
      • startyd

        protected double startyd
    • Constructor Detail

      • Line

        public Line​(int ox1,
                    int oy1,
                    int ox2,
                    int oy2)
        Creates a new straight line selection using the specified starting and ending offscreen integer coordinates.
      • Line

        public Line​(double ox1,
                    double oy1,
                    double ox2,
                    double oy2)
        Creates a new straight line selection using the specified starting and ending offscreen double coordinates.
      • Line

        public Line​(int sx,
                    int sy,
                    ImagePlus imp)
        Starts the process of creating a new user-generated straight line selection. 'sx' and 'sy' are screen coordinates that specify the start of the line. The user will determine the end of the line interactively using rubber banding.
      • Line

        public Line​(int ox1,
                    int oy1,
                    int ox2,
                    int oy2,
                    ImagePlus imp)
        Deprecated.
        replaced by Line(int, int, int, int)
    • Method Detail

      • create

        public static Line create​(double x1,
                                  double y1,
                                  double x2,
                                  double y2)
        Creates a new straight line selection using the specified starting and ending offscreen coordinates.
      • grow

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

        public void mouseMoved​(java.awt.event.MouseEvent e)
        Overrides:
        mouseMoved in class Roi
      • handleMouseUp

        protected void handleMouseUp​(int screenX,
                                     int screenY)
        Overrides:
        handleMouseUp in class Roi
      • drawLine

        protected void drawLine​(int sx,
                                int sy)
      • 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
      • draw

        public void draw​(java.awt.Graphics g)
        Draws this line on the image.
        Overrides:
        draw in class Roi
      • showStatus

        public void showStatus()
        Overrides:
        showStatus in class Roi
      • getAngle

        public double getAngle()
        Description copied from class: Roi
        Overridden by PolygonRoi (angle between first two points), TextRoi (text angle) and Line (line angle).
        Overrides:
        getAngle in class Roi
      • getLength

        public double getLength()
        Returns the length of this line.
        Overrides:
        getLength in class Roi
      • getRawLength

        public double getRawLength()
        Returns the length of this line in pixels.
      • getPixels

        public double[] getPixels()
        Returns the pixel values along this line. The line roi must have an associated ImagePlus
      • getPoints

        public java.awt.Polygon getPoints()
        Returns, as a Polygon, the two points that define this line.
      • getFloatPoints

        public FloatPolygon getFloatPoints()
        Returns, as a FloatPolygon, the two points that define this line.
      • getPolygon

        public java.awt.Polygon getPolygon()
        If the width of this line is less than or equal to one, returns the starting and ending coordinates as a 2-point Polygon, or, if the width is greater than one, returns an outline of the line as a 4-point Polygon.
        Overrides:
        getPolygon in class Roi
        See Also:
        getFloatPolygon(), getPoints()
      • getFloatPolygon

        public FloatPolygon getFloatPolygon()
        If the width of this line is less than or equal to one, returns the starting and ending coordinates as a 2-point FloatPolygon, or, if the width is greater than one, returns an outline of the line as a 4-point FloatPolygon.
        Overrides:
        getFloatPolygon in class Roi
        See Also:
        getFloatPoints()
      • getFloatPolygon

        public FloatPolygon getFloatPolygon​(double strokeWidth)
        Obsolete
      • size

        public int size()
        Returns the number of points in this selection; equivalent to getPolygon().npoints.
        Overrides:
        size in class Roi
      • contains

        public boolean contains​(int x,
                                int y)
        Description copied from class: Roi
        Returns whether the center of pixel (x,y) is contained in the Roi. The position of a pixel center determines whether a pixel is selected. Points exactly at the left (right) border are considered outside (inside); points exactly on horizontal borders are considered outside (inside) at the border with the lower (higher) y. This convention is opposite to that of the java.awt.Shape class.
        Overrides:
        contains in class Roi
      • handleMouseDown

        protected void handleMouseDown​(int sx,
                                       int sy)
        Overrides:
        handleMouseDown 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
      • getWidth

        public static int getWidth()
        Returns the default line width. Use getStrokeWidth()to get the width of a Line instance.
        See Also:
        Roi.getStrokeWidth()
      • setWidth

        public static void setWidth​(int w)
        Sets the default line width. Use setStrokeWidth() to set the width of a Line instance.
        See Also:
        setStrokeWidth(float)
      • clipRectMargin

        protected int clipRectMargin()
        Overrides:
        clipRectMargin in class Roi
      • nudgeCorner

        public void nudgeCorner​(int key)
        Nudge end point of line by one pixel.
        Overrides:
        nudgeCorner in class Roi
      • subPixelResolution

        public boolean subPixelResolution()
        Always returns true.
        Overrides:
        subPixelResolution in class Roi
      • setLocation

        public void setLocation​(int x,
                                int y)
        Description copied from class: Roi
        Set the location of the ROI in image coordinates.
        Overrides:
        setLocation in class Roi
      • setLocation

        public void setLocation​(double x,
                                double y)
        Sets the x coordinate of the leftmost and y coordinate of the topmost end point
        Overrides:
        setLocation in class Roi
      • iterator

        public java.util.Iterator<java.awt.Point> iterator()
        Description copied from class: Roi
        Required by the Iterable interface. Use to iterate over the contained coordinates. Usage example:
         for (Point p : roi) {
           // process p
         }
         
        Author: Wilhelm Burger
        Specified by:
        iterator in interface java.lang.Iterable<java.awt.Point>
        Overrides:
        iterator in class Roi
        See Also:
        Roi.getContainedPoints(), Roi.getContainedFloatPoints()