Class Rectangle

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, IGeometry, IRotatable<Polygon>, IScalable<Rectangle>, IShape, ITranslatable<Rectangle>

    public final class Rectangle
    extends java.lang.Object
    implements IShape
    Represents the geometric shape of a rectangle, where a rectangle is characterized by means of its upper left corner (x,y) and its size (width, height). Note that while all manipulations (e.g. within shrink, expand) within this class are based on double precision, all comparisons (e.g. within contains, intersects, equals, etc.) are based on a limited precision (with an accuracy defined within PrecisionUtils) to compensate for rounding effects.
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      Rectangle()
      Constructs a Rectangle with location (0,0) and a size of (0,0).
      Rectangle​(double x, double y, double width, double height)
      Constructs a Rectangle from the given values for its location (upper-left corner point) and its size.
      Rectangle​(Point location, Dimension size)
      Constructs a new Rectangle with the given location and size.
      Rectangle​(Point p1, Point p2)
      Constructs a new Rectangle, which is the smallest one containing both given Points.
      Rectangle​(Rectangle r)
      Constructs a new Rectangle with x, y, width, and height values of the given Rectangle.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object clone()
      Overridden with public visibility as recommended within Cloneable .
      boolean contains​(double x, double y)
      Returns whether the point given by x and y is within the boundaries of this Rectangle.
      boolean contains​(double x, double y, double width, double height)
      Returns true in case the rectangle specified by (x, y, width, height) is contained within this Rectangle.
      boolean contains​(IGeometry g)
      Tests whether the given IGeometry is fully contained by this IShape.
      boolean contains​(Point p)
      Returns whether the given point is within the boundaries of this Rectangle.
      boolean contains​(Rectangle r)
      Tests whether this Rectangle fully contains the given other Rectangle.
      boolean equals​(double x, double y, double width, double height)
      Returns true if this Rectangle's x, y, width, and height values are identical to the provided ones.
      boolean equals​(java.lang.Object o)
      Returns whether the input object is equal to this Rectangle or not.
      T expand​(double h, double v)
      Expands the horizontal and vertical sides of this AbstractRectangleBasedGeometry with the values provided as input, and returns this for convenience.
      T expand​(double left, double top, double right, double bottom)
      Expands this AbstractRectangleBasedGeometry by the given amounts, and returns this for convenience.
      double getArea()
      Returns the area of this Rectangle, i.e. the product of its width and height.
      Point getBottom()
      Returns a new Point representing the middle point of the bottom side of this Rectangle.
      Point getBottomLeft()
      Returns a new Point representing the bottom left point of this Rectangle.
      Point getBottomRight()
      Returns a new Point representing the bottom right point of this Rectangle.
      Rectangle getBounds()
      Returns the smallest Rectangle fully enclosing this IGeometry.
      Point getCenter()
      Returns the center Point of this AbstractRectangleBasedGeometry.
      Rectangle getCopy()
      Returns a new Rectangle which has the exact same parameters as this Rectangle.
      T getExpanded​(double h, double v)
      Returns a new expanded AbstractRectangleBasedGeometry, where the sides are incremented by the horizontal and vertical values provided.
      T getExpanded​(double left, double top, double right, double bottom)
      Creates and returns a new AbstractRectangleBasedGeometry with the bounds of this AbstractRectangleBasedGeometry expanded by the given insets.
      double getHeight()
      Returns the height of this AbstractRectangleBasedGeometry.
      Rectangle getIntersected​(Rectangle rect)
      Returns a new Rectangle which has the intersection of this Rectangle and the rectangle provided as input.
      Point getLeft()
      Returns a new Point representing the middle point of the left hand side of this Rectangle.
      Point getLocation()
      Returns a Point specifying the x and y coordinates of this AbstractRectangleBasedGeometry.
      Polyline getOutline()
      Returns an ICurve representing the outline of this IShape .
      Line[] getOutlineSegments()
      Returns an array of Lines representing the top, right, bottom, and left borders of this Rectangle.
      Point[] getPoints()
      Returns an array of Points representing the top-left, top-right, bottom-right, and bottom-left border points of this Rectangle.
      Point getRight()
      Returns a new Point which represents the middle point of the right hand side of this Rectangle.
      Polygon getRotatedCCW​(Angle alpha)
      Rotates this Rectangle counter-clock-wise by the given Angle around the center Point of this Rectangle (see AbstractRectangleBasedGeometry.getCenter()).
      Polygon getRotatedCCW​(Angle alpha, double cx, double cy)
      Rotates this Rectangle counter-clock-wise by the given Angle around the given Point.
      Polygon getRotatedCCW​(Angle alpha, Point center)
      Rotates this Rectangle counter-clock-wise by the given Angle around the given Point.
      Polygon getRotatedCW​(Angle alpha)
      Rotates this Rectangle clock-wise by the given Angle around the center (AbstractRectangleBasedGeometry.getCenter()) of this Rectangle.
      Polygon getRotatedCW​(Angle alpha, double cx, double cy)
      Rotates this Rectangle clock-wise by the given Angle alpha around the given Point (cx, cy).
      Polygon getRotatedCW​(Angle alpha, Point center)
      Rotates this Rectangle clock-wise by the given Angle alpha around the given Point.
      T getScaled​(double factor)
      Scales a copy of the calling object by the given factor relative to its center Point.
      T getScaled​(double factorX, double factorY)
      Scales a copy of the calling object by the given factors relative to its center Point.
      T getScaled​(double factor, double centerX, double centerY)
      Scales a copy of the calling object by the given factor relative to the given center Point (cx, cy).
      T getScaled​(double factorX, double factorY, double centerX, double centerY)
      Scales a copy of the calling object by the given factors relative to the given center Point (cx, cy).
      T getScaled​(double factorX, double factorY, Point center)
      Scales a copy of the calling object by the given factors relative to the given center Point.
      T getScaled​(double factor, Point center)
      Scales a copy of the calling object by the given factor relative to the given center Point.
      T getShrinked​(double h, double v)
      Returns a new AbstractRectangleBasedGeometry, where the sides are shrinked by the horizontal and vertical values supplied.
      T getShrinked​(double left, double top, double right, double bottom)
      Returns a new AbstractRectangleBasedGeometry shrinked by the specified insets.
      Dimension getSize()
      Returns a Dimension that records the width and height of this AbstractRectangleBasedGeometry.
      Point getTop()
      Returns a new Point which represents the middle point of the top side of this Rectangle.
      Point getTopLeft()
      Returns a new Point which represents the top left hand corner of this Rectangle.
      Point getTopRight()
      Returns a new Point which represents the top right hand corner of this Rectangle.
      Polygon getTransformed​(AffineTransform t)
      Returns a Polygon, which represents the transformed Rectangle.
      T getTranslated​(double dx, double dy)
      Translates a copy of this object by the given values in x and y direction.
      T getTranslated​(Point pt)
      Translates a copy of this object by the given Point.
      Rectangle getTransposed()
      Returns a new rectangle whose width and height have been interchanged, as well as its x and y values.
      Rectangle getUnioned​(Point p)
      Returns a new Rectangle which contains both this Rectangle and the Point supplied as input.
      Rectangle getUnioned​(Rectangle rect)
      Returns a new Rectangle which contains both this Rectangle and the Rectangle supplied as input.
      double getWidth()
      Returns the width of this AbstractRectangleBasedGeometry.
      double getX()
      Returns the x coordinate this AbstractRectangleBasedGeometry.
      double getY()
      Returns the y coordinate of this AbstractRectangleBasedGeometry.
      int hashCode()  
      Rectangle intersect​(Rectangle r)
      Sets the bounds of this Rectangle to the intersection of this Rectangle with the given one.
      boolean isEmpty()
      Returns true if this Rectangle's width or height is less than or equal to 0.
      T scale​(double factor)
      Scales the calling object by the given factor relative to its center Point.
      T scale​(double fx, double fy)
      Scales the calling object by the given factors relative to the given center Point.
      T scale​(double factor, double cx, double cy)
      Scales the calling object by the given factor relative to the given center Point (cx, cy).
      T scale​(double fx, double fy, double cx, double cy)
      Scales the calling object by the given factors relative to the given center Point (cx, cy).
      T scale​(double fx, double fy, Point center)
      Scales the calling object by the given factors relative to the given center Point.
      T scale​(double factor, Point center)
      Scales the calling object by the given factor relative to the given center Point.
      T setBounds​(double x, double y, double w, double h)
      Sets the x, y, width, and height values of this AbstractRectangleBasedGeometry to the given values.
      T setBounds​(Point loc, Dimension size)
      Sets the x, y, width, and height values of this AbstractRectangleBasedGeometry to the respective values specified by the passed-in Point and the passed-in Dimension.
      T setBounds​(Rectangle r)
      Sets the x and y coordinates and the width and height of this AbstractRectangleBasedGeometry to the respective values of the given Rectangle.
      T setHeight​(double height)
      Sets the height of this AbstractRectangleBasedGeometry to the given value.
      T setLocation​(double x, double y)
      Sets the x and y coordinates of this AbstractRectangleBasedGeometry to the specified values.
      T setLocation​(Point p)
      Sets the x and y coordinates of this AbstractRectangleBasedGeometry to the respective values of the given Point.
      T setSize​(double w, double h)
      Sets the width and height of this AbstractRectangleBasedGeometry to the given values.
      T setSize​(Dimension d)
      Sets the width and height of this AbstractRectangleBasedGeometry to the width and height of the given Dimension.
      T setWidth​(double width)
      Sets the width of this AbstractRectangleBasedGeometry to the passed-in value.
      T setX​(double x)
      Sets the x-coordinate of this AbstractRectangleBasedGeometry to the given value.
      T setY​(double y)
      Sets the y-coordinate of this AbstractRectangleBasedGeometry to the given value.
      T shrink​(double h, double v)
      Shrinks the sides of this AbstractRectangleBasedGeometry by the horizontal and vertical values provided as input, and returns this AbstractRectangleBasedGeometry for convenience.
      T shrink​(double left, double top, double right, double bottom)
      Shrinks this AbstractRectangleBasedGeometry by the specified amounts.
      Path toPath()
      Converts this IGeometry into a Path representation.
      Polygon toPolygon()
      Converts this Rectangle into a Polygon representation.
      java.lang.String toString()  
      boolean touches​(IGeometry g)
      Returns true if the input IGeometry touches this IGeometry, i.e. there is at least one common point.
      boolean touches​(Line l)
      Tests whether this Rectangle and the given Line touch, i.e. whether they have at least one point in common.
      boolean touches​(Rectangle r)
      Tests whether this Rectangle and the given other Rectangle touch, i.e. whether they have at least one point in common.
      T translate​(double dx, double dy)
      Translates the object by the given values in x and y direction.
      T translate​(Point p)
      Translates the object by the given Point.
      Rectangle transpose()
      Switches the x and y values, as well as the width and height of this Rectangle.
      Rectangle union​(double x, double y)
      Updates this Rectangle's bounds so that the Point given by (x,y) is contained.
      Rectangle union​(double x, double y, double w, double h)
      Updates this Rectangle's bounds to the union of this Rectangle and the Rectangle with location (x, y) and size(w, h).
      Rectangle union​(Point p)
      Updates this Rectangle's bounds so that the given Point is included within.
      Rectangle union​(Rectangle r)
      Updates this Rectangle's bounds to the union of this Rectangle and the Rectangle.
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Rectangle

        public Rectangle()
        Constructs a Rectangle with location (0,0) and a size of (0,0).
      • Rectangle

        public Rectangle​(double x,
                         double y,
                         double width,
                         double height)
        Constructs a Rectangle from the given values for its location (upper-left corner point) and its size. If a negative, width or height is passed in, 0 will be used instead.
        Parameters:
        x - the x location of the new Rectangle
        y - the y location of the new Rectangle
        width - the width of the new Rectangle
        height - the height of the new Rectangle
      • Rectangle

        public Rectangle​(Point location,
                         Dimension size)
        Constructs a new Rectangle with the given location and size.
        Parameters:
        location - the location of the new Rectangle
        size - the size of the new Rectangle
      • Rectangle

        public Rectangle​(Point p1,
                         Point p2)
        Constructs a new Rectangle, which is the smallest one containing both given Points.
        Parameters:
        p1 - the first point used to construct the new Rectangle
        p2 - the second point used to construct the new Rectangle
      • Rectangle

        public Rectangle​(Rectangle r)
        Constructs a new Rectangle with x, y, width, and height values of the given Rectangle.
        Parameters:
        r - the Rectangle, whose x, y, width, and height values should be used to initialize the new Rectangle
    • Method Detail

      • contains

        public boolean contains​(double x,
                                double y)
        Returns whether the point given by x and y is within the boundaries of this Rectangle.
        Parameters:
        x - the x-coordinate of the point to test
        y - the y-coordinate of the point to test
        Returns:
        true if the Point is (imprecisely) contained within this Rectangle
      • contains

        public boolean contains​(double x,
                                double y,
                                double width,
                                double height)
        Returns true in case the rectangle specified by (x, y, width, height) is contained within this Rectangle.
        Parameters:
        x - The x coordinate of the rectangle to be tested for containment
        y - The y coordinate of the rectangle to be tested for containment
        width - The width of the rectangle to be tested for containment
        height - The height of the rectangle to be tested for containment
        Returns:
        true if the rectangle characterized by (x,y, width, height) is (imprecisely) fully contained within this Rectangle, false otherwise
      • contains

        public boolean contains​(IGeometry g)
        Description copied from interface: IShape
        Tests whether the given IGeometry is fully contained by this IShape.
        Specified by:
        contains in interface IShape
        Parameters:
        g - The IGeometry to test for containment
        Returns:
        true if the given IGeometry is fully contained by this IShape, false otherwise.
      • contains

        public boolean contains​(Point p)
        Returns whether the given point is within the boundaries of this Rectangle. The boundaries are inclusive of the top and left edges, but exclusive of the bottom and right edges.
        Specified by:
        contains in interface IGeometry
        Parameters:
        p - Point being tested for containment
        Returns:
        true if the Point is within this Rectangle
      • equals

        public boolean equals​(double x,
                              double y,
                              double width,
                              double height)
        Returns true if this Rectangle's x, y, width, and height values are identical to the provided ones.
        Parameters:
        x - The x value to test
        y - The y value to test
        width - The width value to test
        height - The height value to test
        Returns:
        true if this Rectangle's x, y, width, and height values are (imprecisely) equal to the provided ones, false otherwise
      • equals

        public boolean equals​(java.lang.Object o)
        Returns whether the input object is equal to this Rectangle or not. Rectangles are equivalent if their x, y, height, and width values are the same.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        o - Object being tested for equality
        Returns:
        Returns the result of the equality test
      • getArea

        public double getArea()
        Returns the area of this Rectangle, i.e. the product of its width and height.
        Returns:
        the area of this Rectangle
      • getBottom

        public Point getBottom()
        Returns a new Point representing the middle point of the bottom side of this Rectangle.
        Returns:
        Point at the bottom of the Rectangle
      • getBottomLeft

        public Point getBottomLeft()
        Returns a new Point representing the bottom left point of this Rectangle.
        Returns:
        Point at the bottom left of the rectangle
      • getBottomRight

        public Point getBottomRight()
        Returns a new Point representing the bottom right point of this Rectangle.
        Returns:
        Point at the bottom right of the rectangle
      • getCopy

        public Rectangle getCopy()
        Returns a new Rectangle which has the exact same parameters as this Rectangle.
        Specified by:
        getCopy in interface IGeometry
        Returns:
        Copy of this Rectangle
      • getIntersected

        public Rectangle getIntersected​(Rectangle rect)
        Returns a new Rectangle which has the intersection of this Rectangle and the rectangle provided as input. Returns an empty Rectangle if there is no intersection.
        Parameters:
        rect - Rectangle provided to test for intersection
        Returns:
        A new Rectangle representing the intersection
      • getLeft

        public Point getLeft()
        Returns a new Point representing the middle point of the left hand side of this Rectangle.
        Returns:
        Point at the left of the Rectangle
      • getOutlineSegments

        public Line[] getOutlineSegments()
        Returns an array of Lines representing the top, right, bottom, and left borders of this Rectangle.
        Specified by:
        getOutlineSegments in interface IShape
        Returns:
        An array containing Line representations of this Rectangle's borders.
      • getPoints

        public Point[] getPoints()
        Returns an array of Points representing the top-left, top-right, bottom-right, and bottom-left border points of this Rectangle.
        Returns:
        An array containing the border points of this Rectangle
      • getRight

        public Point getRight()
        Returns a new Point which represents the middle point of the right hand side of this Rectangle.
        Returns:
        Point at the right of the Rectangle
      • getRotatedCCW

        public Polygon getRotatedCCW​(Angle alpha,
                                     double cx,
                                     double cy)
        Rotates this Rectangle counter-clock-wise by the given Angle around the given Point. If the rotation Angle is not an integer multiple of 90 degrees, the resulting figure cannot be expressed as a Rectangle object. That's why this method returns a Polygon instead.
        Specified by:
        getRotatedCCW in interface IRotatable<Polygon>
        Parameters:
        alpha - the rotation angle
        cx - x-component of the center point for the rotation
        cy - y-component of the center point for the rotation
        Returns:
        the resulting Polygon
      • getRotatedCCW

        public Polygon getRotatedCCW​(Angle alpha,
                                     Point center)
        Rotates this Rectangle counter-clock-wise by the given Angle around the given Point. If the rotation Angle is not an integer multiple of 90 degrees, the resulting figure cannot be expressed as a Rectangle object. That's why this method returns a Polygon instead.
        Specified by:
        getRotatedCCW in interface IRotatable<Polygon>
        Parameters:
        alpha - the rotation angle
        center - the center point for the rotation
        Returns:
        the resulting Polygon
      • getRotatedCW

        public Polygon getRotatedCW​(Angle alpha,
                                    double cx,
                                    double cy)
        Rotates this Rectangle clock-wise by the given Angle alpha around the given Point (cx, cy). If the rotation Angle is not an integer multiple of 90 degrees, the resulting figure cannot be expressed as a Rectangle object. That's why this method returns a Polygon instead.
        Specified by:
        getRotatedCW in interface IRotatable<Polygon>
        Parameters:
        alpha - the rotation angle
        cx - x-component of the center point for the rotation
        cy - y-component of the center point for the rotation
        Returns:
        the resulting Polygon
      • getRotatedCW

        public Polygon getRotatedCW​(Angle alpha,
                                    Point center)
        Rotates this Rectangle clock-wise by the given Angle alpha around the given Point. If the rotation Angle is not an integer multiple of 90 degrees, the resulting figure cannot be expressed as a Rectangle object. That's why this method returns a Polygon instead.
        Specified by:
        getRotatedCW in interface IRotatable<Polygon>
        Parameters:
        alpha - the rotation angle
        center - the center point for the rotation
        Returns:
        the resulting Polygon
      • getTop

        public Point getTop()
        Returns a new Point which represents the middle point of the top side of this Rectangle.
        Returns:
        Point at the top of the Rectangle
      • getTopLeft

        public Point getTopLeft()
        Returns a new Point which represents the top left hand corner of this Rectangle.
        Returns:
        Point at the top left of the rectangle
      • getTopRight

        public Point getTopRight()
        Returns a new Point which represents the top right hand corner of this Rectangle.
        Returns:
        Point at the top right of the rectangle
      • getTransposed

        public Rectangle getTransposed()
        Returns a new rectangle whose width and height have been interchanged, as well as its x and y values. This can be useful in orientation changes.
        Returns:
        The transposed rectangle
      • getUnioned

        public Rectangle getUnioned​(Point p)
        Returns a new Rectangle which contains both this Rectangle and the Point supplied as input.
        Parameters:
        p - Point for calculating union
        Returns:
        A new unioned Rectangle
      • getUnioned

        public Rectangle getUnioned​(Rectangle rect)
        Returns a new Rectangle which contains both this Rectangle and the Rectangle supplied as input.
        Parameters:
        rect - Rectangle for calculating union
        Returns:
        A new unioned Rectangle
      • isEmpty

        public boolean isEmpty()
        Returns true if this Rectangle's width or height is less than or equal to 0.
        Returns:
        true if this Rectangle is (imprecisely) considered to be empty
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • touches

        public boolean touches​(Line l)
        Tests whether this Rectangle and the given Line touch, i.e. whether they have at least one point in common.
        Parameters:
        l - The Line to test.
        Returns:
        true if this Rectangle and the given Line share at least one common point, false otherwise.
      • transpose

        public Rectangle transpose()
        Switches the x and y values, as well as the width and height of this Rectangle. Useful for orientation changes.
        Returns:
        this for convenience
      • union

        public Rectangle union​(double x,
                               double y)
        Updates this Rectangle's bounds so that the Point given by (x,y) is contained.
        Parameters:
        x - The x-coordinate of the Point to union with
        y - The y-coordinate of the Point to union with
        Returns:
        this for convenience
      • union

        public Rectangle union​(double x,
                               double y,
                               double w,
                               double h)
        Updates this Rectangle's bounds to the union of this Rectangle and the Rectangle with location (x, y) and size(w, h).
        Parameters:
        x - The x-coordinate of the Rectangle to union with.
        y - The y-coordinate of the Rectangle to union with
        w - The width of the Rectangle to union with
        h - The height of the Rectangle to union with
        Returns:
        this for convenience
      • union

        public Rectangle union​(Point p)
        Updates this Rectangle's bounds so that the given Point is included within.
        Parameters:
        p - The Point to union with
        Returns:
        this for convenience
      • expand

        public T expand​(double h,
                        double v)
        Expands the horizontal and vertical sides of this AbstractRectangleBasedGeometry with the values provided as input, and returns this for convenience. The location of its center is kept constant.
        Parameters:
        h - the horizontal increment
        v - the vertical increment
        Returns:
        this for convenience
      • expand

        public T expand​(double left,
                        double top,
                        double right,
                        double bottom)
        Expands this AbstractRectangleBasedGeometry by the given amounts, and returns this for convenience.
        Parameters:
        left - the amount to expand the left side
        top - the amount to expand the top side
        right - the amount to expand the right side
        bottom - the amount to expand the bottom side
        Returns:
        this for convenience
      • getCenter

        public Point getCenter()
        Returns the center Point of this AbstractRectangleBasedGeometry.
        Returns:
        the center Point of this AbstractRectangleBasedGeometry
      • getExpanded

        public T getExpanded​(double h,
                             double v)
        Returns a new expanded AbstractRectangleBasedGeometry, where the sides are incremented by the horizontal and vertical values provided. The center of the AbstractRectangleBasedGeometry is maintained constant.
        Parameters:
        h - The horizontal increment
        v - The vertical increment
        Returns:
        a new expanded AbstractRectangleBasedGeometry
      • getExpanded

        public T getExpanded​(double left,
                             double top,
                             double right,
                             double bottom)
        Creates and returns a new AbstractRectangleBasedGeometry with the bounds of this AbstractRectangleBasedGeometry expanded by the given insets.
        Parameters:
        left - the amount to expand the left side
        top - the amount to expand the top side
        right - the amount to expand the right side
        bottom - the amount to expand the bottom side
        Returns:
        a new expanded AbstractRectangleBasedGeometry
      • getHeight

        public final double getHeight()
        Returns the height of this AbstractRectangleBasedGeometry.
        Returns:
        the height of this AbstractRectangleBasedGeometry
      • getLocation

        public Point getLocation()
        Returns a Point specifying the x and y coordinates of this AbstractRectangleBasedGeometry.
        Returns:
        a Point representing the x and y coordinates of this AbstractRectangleBasedGeometry
      • getScaled

        public T getScaled​(double factor)
        Description copied from interface: IScalable
        Scales a copy of the calling object by the given factor relative to its center Point.
        Specified by:
        getScaled in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        factor - scale-factor
        Returns:
        the new, scaled object
      • getScaled

        public T getScaled​(double factorX,
                           double factorY)
        Description copied from interface: IScalable
        Scales a copy of the calling object by the given factors relative to its center Point.
        Specified by:
        getScaled in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        factorX - x-scale-factor
        factorY - y-scale-factor
        Returns:
        the new, scaled object
      • getScaled

        public T getScaled​(double factor,
                           double centerX,
                           double centerY)
        Description copied from interface: IScalable
        Scales a copy of the calling object by the given factor relative to the given center Point (cx, cy).
        Specified by:
        getScaled in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        factor - scale-factor
        centerX - x-coordinate of the relative Point for the scaling
        centerY - y-coordinate of the relative Point for the scaling
        Returns:
        the new, scaled object
      • getScaled

        public T getScaled​(double factorX,
                           double factorY,
                           double centerX,
                           double centerY)
        Description copied from interface: IScalable
        Scales a copy of the calling object by the given factors relative to the given center Point (cx, cy).
        Specified by:
        getScaled in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        factorX - x-scale-factor
        factorY - y-scale-factor
        centerX - x-coordinate of the relative Point for the scaling
        centerY - y-coordinate of the relative Point for the scaling
        Returns:
        the new, scaled object
      • getScaled

        public T getScaled​(double factorX,
                           double factorY,
                           Point center)
        Description copied from interface: IScalable
        Scales a copy of the calling object by the given factors relative to the given center Point.
        Specified by:
        getScaled in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        factorX - x-scale-factor
        factorY - y-scale-factor
        center - relative Point for the scaling
        Returns:
        the new, scaled object
      • getScaled

        public T getScaled​(double factor,
                           Point center)
        Description copied from interface: IScalable
        Scales a copy of the calling object by the given factor relative to the given center Point.
        Specified by:
        getScaled in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        factor - scale-factor
        center - relative Point for the scaling
        Returns:
        the new, scaled object
      • getShrinked

        public T getShrinked​(double h,
                             double v)
        Returns a new AbstractRectangleBasedGeometry, where the sides are shrinked by the horizontal and vertical values supplied. The center of this AbstractRectangleBasedGeometry is kept constant.
        Parameters:
        h - horizontal reduction amount
        v - vertical reduction amount
        Returns:
        a new, shrinked AbstractRectangleBasedGeometry
      • getShrinked

        public T getShrinked​(double left,
                             double top,
                             double right,
                             double bottom)
        Returns a new AbstractRectangleBasedGeometry shrinked by the specified insets.
        Parameters:
        left - the amount to shrink the left side
        top - the amount to shrink the top side
        right - the amount to shrink the right side
        bottom - the amount to shrink the bottom side
        Returns:
        a new, shrinked AbstractRectangleBasedGeometry
      • getSize

        public final Dimension getSize()
        Returns a Dimension that records the width and height of this AbstractRectangleBasedGeometry.
        Returns:
        a Dimension that records the width and height of this AbstractRectangleBasedGeometry
      • getTranslated

        public T getTranslated​(double dx,
                               double dy)
        Description copied from interface: ITranslatable
        Translates a copy of this object by the given values in x and y direction.
        Specified by:
        getTranslated in interface ITranslatable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        dx - x-translation
        dy - y-translation
        Returns:
        a new, translated object
      • getTranslated

        public T getTranslated​(Point pt)
        Description copied from interface: ITranslatable
        Translates a copy of this object by the given Point.
        Specified by:
        getTranslated in interface ITranslatable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        pt - translation Point
        Returns:
        a new, translated object
      • getWidth

        public final double getWidth()
        Returns the width of this AbstractRectangleBasedGeometry.
        Returns:
        the width of this AbstractRectangleBasedGeometry
      • getX

        public final double getX()
        Returns the x coordinate this AbstractRectangleBasedGeometry.
        Returns:
        the x coordinate this AbstractRectangleBasedGeometry
      • getY

        public final double getY()
        Returns the y coordinate of this AbstractRectangleBasedGeometry.
        Returns:
        the y coordinate of this AbstractRectangleBasedGeometry
      • scale

        public T scale​(double factor)
        Description copied from interface: IScalable
        Scales the calling object by the given factor relative to its center Point.
        Specified by:
        scale in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        factor - scale-factor
        Returns:
        this for convenience
      • scale

        public T scale​(double fx,
                       double fy)
        Description copied from interface: IScalable
        Scales the calling object by the given factors relative to the given center Point.
        Specified by:
        scale in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        fx - x-scale-factor
        fy - y-scale-factor
        Returns:
        this for convenience
      • scale

        public T scale​(double factor,
                       double cx,
                       double cy)
        Description copied from interface: IScalable
        Scales the calling object by the given factor relative to the given center Point (cx, cy).
        Specified by:
        scale in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        factor - scale-factor
        cx - x-coordinate of the relative Point for the scaling
        cy - y-coordinate of the relative Point for the scaling
        Returns:
        this for convenience
      • scale

        public T scale​(double fx,
                       double fy,
                       double cx,
                       double cy)
        Description copied from interface: IScalable
        Scales the calling object by the given factors relative to the given center Point (cx, cy).
        Specified by:
        scale in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        fx - x-scale-factor
        fy - y-scale-factor
        cx - x-coordinate of the relative Point for the scaling
        cy - y-coordinate of the relative Point for the scaling
        Returns:
        this for convenience
      • scale

        public T scale​(double fx,
                       double fy,
                       Point center)
        Description copied from interface: IScalable
        Scales the calling object by the given factors relative to the given center Point.
        Specified by:
        scale in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        fx - x-scale-factor
        fy - y-scale-factor
        center - relative Point for the scaling
        Returns:
        this for convenience
      • scale

        public T scale​(double factor,
                       Point center)
        Description copied from interface: IScalable
        Scales the calling object by the given factor relative to the given center Point.
        Specified by:
        scale in interface IScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        factor - scale-factor
        center - relative Point for the scaling
        Returns:
        this for convenience
      • setBounds

        public final T setBounds​(double x,
                                 double y,
                                 double w,
                                 double h)
        Sets the x, y, width, and height values of this AbstractRectangleBasedGeometry to the given values.
        Parameters:
        x - the new x-coordinate
        y - the new y-coordinate
        w - the new width
        h - the new height
        Returns:
        this for convenience
      • setBounds

        public final T setBounds​(Point loc,
                                 Dimension size)
        Sets the x, y, width, and height values of this AbstractRectangleBasedGeometry to the respective values specified by the passed-in Point and the passed-in Dimension.
        Parameters:
        loc - the Point specifying the new x and y coordinates of this AbstractRectangleBasedGeometry
        size - the Dimension specifying the new width and height of this AbstractRectangleBasedGeometry
        Returns:
        this for convenience
      • setBounds

        public final T setBounds​(Rectangle r)
        Sets the x and y coordinates and the width and height of this AbstractRectangleBasedGeometry to the respective values of the given Rectangle.
        Parameters:
        r - the Rectangle specifying the new x, y, width, and height values of this AbstractRectangleBasedGeometry
        Returns:
        this for convenience
      • setHeight

        public final T setHeight​(double height)
        Sets the height of this AbstractRectangleBasedGeometry to the given value.
        Parameters:
        height - the new height
        Returns:
        this for convenience
      • setLocation

        public final T setLocation​(double x,
                                   double y)
        Sets the x and y coordinates of this AbstractRectangleBasedGeometry to the specified values.
        Parameters:
        x - the new x coordinate of this AbstractRectangleBasedGeometry
        y - the new y coordinate of this AbstractRectangleBasedGeometry
        Returns:
        this for convenience
      • setLocation

        public final T setLocation​(Point p)
        Sets the x and y coordinates of this AbstractRectangleBasedGeometry to the respective values of the given Point.
        Parameters:
        p - the Point specifying the new x and y coordinates of this AbstractRectangleBasedGeometry
        Returns:
        this for convenience
      • setSize

        public final T setSize​(Dimension d)
        Sets the width and height of this AbstractRectangleBasedGeometry to the width and height of the given Dimension.
        Parameters:
        d - the Dimension specifying the new width and height of this AbstractRectangleBasedGeometry
        Returns:
        this for convenience
      • setSize

        public final T setSize​(double w,
                               double h)
        Sets the width and height of this AbstractRectangleBasedGeometry to the given values.
        Parameters:
        w - the new width of this AbstractRectangleBasedGeometry
        h - the new height of this AbstractRectangleBasedGeometry
        Returns:
        this for convenience
      • setWidth

        public final T setWidth​(double width)
        Sets the width of this AbstractRectangleBasedGeometry to the passed-in value.
        Parameters:
        width - the new width of this AbstractRectangleBasedGeometry
        Returns:
        this for convenience
      • setX

        public final T setX​(double x)
        Sets the x-coordinate of this AbstractRectangleBasedGeometry to the given value.
        Parameters:
        x - The new x-coordinate.
        Returns:
        this for convenience.
      • setY

        public final T setY​(double y)
        Sets the y-coordinate of this AbstractRectangleBasedGeometry to the given value.
        Parameters:
        y - The new y-coordinate.
        Returns:
        this for convenience.
      • shrink

        public T shrink​(double h,
                        double v)
        Shrinks the sides of this AbstractRectangleBasedGeometry by the horizontal and vertical values provided as input, and returns this AbstractRectangleBasedGeometry for convenience. The center of this AbstractRectangleBasedGeometry is kept constant.
        Parameters:
        h - horizontal reduction amount
        v - vertical reduction amount
        Returns:
        this for convenience
      • shrink

        public T shrink​(double left,
                        double top,
                        double right,
                        double bottom)
        Shrinks this AbstractRectangleBasedGeometry by the specified amounts.
        Parameters:
        left - the amount to shrink the left side
        top - the amount to shrink the top side
        right - the amount to shrink the right side
        bottom - the amount to shrink the bottom side
        Returns:
        this for convenience
      • translate

        public T translate​(double dx,
                           double dy)
        Description copied from interface: ITranslatable
        Translates the object by the given values in x and y direction.
        Specified by:
        translate in interface ITranslatable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        dx - x-translation
        dy - y-translation
        Returns:
        this for convenience
      • translate

        public T translate​(Point p)
        Description copied from interface: ITranslatable
        Translates the object by the given Point.
        Specified by:
        translate in interface ITranslatable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,​?>>
        Parameters:
        p - translation Point
        Returns:
        this for convenience
      • clone

        public java.lang.Object clone()
        Overridden with public visibility as recommended within Cloneable .
        Overrides:
        clone in class java.lang.Object
      • hashCode

        public final int hashCode()
        Overrides:
        hashCode in class java.lang.Object
        See Also:
        Object.hashCode()