Package org.eclipse.gef.geometry.planar
Class Ellipse
java.lang.Object
org.eclipse.gef.geometry.planar.Ellipse
- All Implemented Interfaces:
Serializable,Cloneable,IGeometry,IRotatable<PolyBezier>,IScalable<Ellipse>,IShape,ITranslatable<Ellipse>
Represents the geometric shape of an ellipse.
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:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclone()Overridden with public visibility as recommended withinCloneable.booleanbooleanbooleanbooleanequals(double x, double y, double width, double height) Tests whether thisEllipseand the ellipse defined by the given bounds are equal.booleanexpand(double h, double v) Expands the horizontal and vertical sides of thisAbstractRectangleBasedGeometrywith the values provided as input, and returnsthisfor convenience.expand(double left, double top, double right, double bottom) Expands thisAbstractRectangleBasedGeometryby the given amounts, and returns this for convenience.Returns the centerPointof thisAbstractRectangleBasedGeometry.getCopy()Returns a newEllipsewith the same location and size than this one.getExpanded(double h, double v) Returns a new expandedAbstractRectangleBasedGeometry, where the sides are incremented by the horizontal and vertical values provided.getExpanded(double left, double top, double right, double bottom) Creates and returns a newAbstractRectangleBasedGeometrywith the bounds of thisAbstractRectangleBasedGeometryexpanded by the given insets.final doubleReturns the height of thisAbstractRectangleBasedGeometry.Point[]Point[]Point[]getIntersections(Line line) Returns aPointspecifying the x and y coordinates of thisAbstractRectangleBasedGeometry.Calculates the outline segments of thisEllipse.getRotatedCCW(Angle angle) getRotatedCCW(Angle angle, double cx, double cy) getRotatedCCW(Angle angle, Point center) getRotatedCW(Angle angle) getRotatedCW(Angle angle, double cx, double cy) getRotatedCW(Angle angle, Point center) getScaled(double factor) Scales a copy of the calling object by the given factor relative to its centerPoint.getScaled(double factorX, double factorY) Scales a copy of the calling object by the given factors relative to its centerPoint.getScaled(double factor, double centerX, double centerY) Scales a copy of the calling object by the given factor relative to the given centerPoint(cx, cy).getScaled(double factorX, double factorY, double centerX, double centerY) Scales a copy of the calling object by the given factors relative to the given centerPoint(cx, cy).Scales a copy of the calling object by the given factors relative to the given centerPoint.Scales a copy of the calling object by the given factor relative to the given centerPoint.getShrinked(double h, double v) Returns a newAbstractRectangleBasedGeometry, where the sides are shrinked by the horizontal and vertical values supplied.getShrinked(double left, double top, double right, double bottom) Returns a newAbstractRectangleBasedGeometryshrinked by the specified insets.final DimensiongetSize()Returns aDimensionthat records the width and height of thisAbstractRectangleBasedGeometry.getTranslated(double dx, double dy) Translates a copy of this object by the given values in x and y direction.getTranslated(Point pt) Translates a copy of this object by the givenPoint.final doublegetWidth()Returns the width of thisAbstractRectangleBasedGeometry.final doublegetX()Returns the x coordinate thisAbstractRectangleBasedGeometry.final doublegetY()Returns the y coordinate of thisAbstractRectangleBasedGeometry.final inthashCode()scale(double factor) Scales the calling object by the given factor relative to its centerPoint.scale(double fx, double fy) Scales the calling object by the given factors relative to the given centerPoint.scale(double factor, double cx, double cy) Scales the calling object by the given factor relative to the given centerPoint(cx, cy).scale(double fx, double fy, double cx, double cy) Scales the calling object by the given factors relative to the given centerPoint(cx, cy).Scales the calling object by the given factors relative to the given centerPoint.Scales the calling object by the given factor relative to the given centerPoint.final EllipsesetBounds(double x, double y, double w, double h) Sets the x, y, width, and height values of thisAbstractRectangleBasedGeometryto the given values.final Ellipsefinal EllipseSets the x and y coordinates and the width and height of thisAbstractRectangleBasedGeometryto the respective values of the givenRectangle.final EllipsesetHeight(double height) Sets the height of thisAbstractRectangleBasedGeometryto the given value.final EllipsesetLocation(double x, double y) Sets the x and y coordinates of thisAbstractRectangleBasedGeometryto the specified values.final EllipsesetLocation(Point p) Sets the x and y coordinates of thisAbstractRectangleBasedGeometryto the respective values of the givenPoint.final EllipsesetSize(double w, double h) Sets the width and height of thisAbstractRectangleBasedGeometryto the given values.final EllipseSets the width and height of thisAbstractRectangleBasedGeometryto the width and height of the givenDimension.final EllipsesetWidth(double width) Sets the width of thisAbstractRectangleBasedGeometryto the passed-in value.final EllipsesetX(double x) Sets the x-coordinate of thisAbstractRectangleBasedGeometryto the given value.final EllipsesetY(double y) Sets the y-coordinate of thisAbstractRectangleBasedGeometryto the given value.shrink(double h, double v) Shrinks the sides of thisAbstractRectangleBasedGeometryby the horizontal and vertical values provided as input, and returns thisAbstractRectangleBasedGeometryfor convenience.shrink(double left, double top, double right, double bottom) Shrinks thisAbstractRectangleBasedGeometryby the specified amounts.toPath()Returns aPathrepresentation of thisEllipse, which is an approximation of the fouroutline segmentsby means ofCubicCurves.toString()booleantranslate(double dx, double dy) Translates the object by the given values in x and y direction.Translates the object by the givenPoint.
-
Constructor Details
-
Ellipse
public Ellipse(double x, double y, double width, double height) Constructs a newEllipseso that it is fully contained within the framing rectangle defined by (x, y, width, height).- Parameters:
x- The x-coordinate of the framing rectangley- The y-coordinate of the framing rectanglewidth- The width of the framing rectangleheight- The height of the framing rectangle
-
Ellipse
-
-
Method Details
-
contains
Description copied from interface:IShape -
contains
-
contains
Description copied from interface:IGeometry -
equals
public boolean equals(double x, double y, double width, double height) Tests whether thisEllipseand the ellipse defined by the given bounds are equal.- Parameters:
x- the x-coordinate of the bounds defining define the ellipse to testy- the y-coordinate of the bounds defining the ellipse to testwidth- the width of the bounds defining the ellipse to testheight- the height of the bounds defining the ellipse to test- Returns:
trueif thisEllipseand the ellipse defined via the given bounds are (imprecisely) regarded to be equal,falseotherwise
-
equals
-
getCopy
Returns a newEllipsewith the same location and size than this one. -
getIntersections
-
getIntersections
-
getIntersections
-
getOutline
Description copied from interface:IShape- Specified by:
getOutlinein interfaceIShape- Returns:
- An
ICurverepresenting thisIShape's outline.
-
getOutlineSegments
Calculates the outline segments of thisEllipse. The outline segments are approximated byCubicCurves. The outline segments are returned in the following order:- from
0degto90deg(quadrant I) - from
90degto180deg(quadrant II) - from
180degto270deg(quadrant III) - from
270degto360deg(quadrant IV)
Angleof0degis oriented to the right. Increasing anAnglerotates counter-clockwise (CCW).- Specified by:
getOutlineSegmentsin interfaceIShape- Returns:
- an array of
CubicCurves representing the outline of thisEllipse
- from
-
getRotatedCCW
Description copied from interface:IRotatableRotates the calling object by specifiedAnglecounter-clock-wise (CCW) around its centerPoint. Does not necessarily return an object of the same type.- Specified by:
getRotatedCCWin interfaceIRotatable<PolyBezier>- Parameters:
angle- rotationAngle- Returns:
- an
IGeometryrepresenting the result of the rotation
-
getRotatedCCW
Description copied from interface:IRotatableRotates the calling object by the specifiedAnglecounter-clock-wise (CCW) around the specified centerPoint(cx, cy). Does not necessarily return an object of the same type.- Specified by:
getRotatedCCWin interfaceIRotatable<PolyBezier>- Parameters:
angle- rotationAnglecx- x-coordinate of the relativePointfor the rotationcy- y-coordinate of the relativePointfor the rotation- Returns:
- an
IGeometryrepresenting the result of the rotation
-
getRotatedCCW
Description copied from interface:IRotatableRotates the calling object by the specifiedAnglecounter-clock-wise (CCW) around the specified centerPoint. Does not necessarily return an object of the same type.- Specified by:
getRotatedCCWin interfaceIRotatable<PolyBezier>- Parameters:
angle- rotationAnglecenter- relativePointfor the rotation- Returns:
- an
IGeometryrepresenting the result of the rotation
-
getRotatedCW
Description copied from interface:IRotatableRotates the calling object by specifiedAngleclock-wise (CW) around its centerPoint. Does not necessarily return an object of the same type.- Specified by:
getRotatedCWin interfaceIRotatable<PolyBezier>- Parameters:
angle- rotationAngle- Returns:
- an
IGeometryrepresenting the result of the rotation
-
getRotatedCW
Description copied from interface:IRotatableRotates the calling object by the specifiedAngleclock-wise (CW) around the specified centerPoint(cx, cy). Does not necessarily return an object of the same type.- Specified by:
getRotatedCWin interfaceIRotatable<PolyBezier>- Parameters:
angle- rotationAnglecx- x-coordinate of the relativePointfor the rotationcy- y-coordinate of the relativePointfor the rotation- Returns:
- an
IGeometryrepresenting the result of the rotation
-
getRotatedCW
Description copied from interface:IRotatableRotates the calling object by the specifiedAngleclock-wise (CW) around the specified centerPoint. Does not necessarily return an object of the same type.- Specified by:
getRotatedCWin interfaceIRotatable<PolyBezier>- Parameters:
angle- rotationAnglecenter- relativePointfor the rotation- Returns:
- an
IGeometryrepresenting the result of the rotation
-
getTransformed
Default implementation returning a transformedPathrepresentation of thisIGeometry. Subclasses may override this method to return a more specific representation.- Specified by:
getTransformedin interfaceIGeometry- Specified by:
getTransformedin interfaceIShape- Parameters:
t- TheAffineTransformto be applied- Returns:
- a transformed
Pathrepresentation of thisIGeometry - See Also:
-
toPath
Returns aPathrepresentation of thisEllipse, which is an approximation of the fouroutline segmentsby means ofCubicCurves. -
toString
-
expand
Expands the horizontal and vertical sides of thisAbstractRectangleBasedGeometrywith the values provided as input, and returnsthisfor convenience. The location of its center is kept constant.- Parameters:
h- the horizontal incrementv- the vertical increment- Returns:
thisfor convenience
-
expand
Expands thisAbstractRectangleBasedGeometryby the given amounts, and returns this for convenience.- Parameters:
left- the amount to expand the left sidetop- the amount to expand the top sideright- the amount to expand the right sidebottom- the amount to expand the bottom side- Returns:
thisfor convenience
-
getBounds
Description copied from interface:IGeometry -
getCenter
Returns the centerPointof thisAbstractRectangleBasedGeometry.- Returns:
- the center
Pointof thisAbstractRectangleBasedGeometry
-
getExpanded
Returns a new expandedAbstractRectangleBasedGeometry, where the sides are incremented by the horizontal and vertical values provided. The center of theAbstractRectangleBasedGeometryis maintained constant.- Parameters:
h- The horizontal incrementv- The vertical increment- Returns:
- a new expanded
AbstractRectangleBasedGeometry
-
getExpanded
Creates and returns a newAbstractRectangleBasedGeometrywith the bounds of thisAbstractRectangleBasedGeometryexpanded by the given insets.- Parameters:
left- the amount to expand the left sidetop- the amount to expand the top sideright- the amount to expand the right sidebottom- the amount to expand the bottom side- Returns:
- a new expanded
AbstractRectangleBasedGeometry
-
getHeight
public final double getHeight()Returns the height of thisAbstractRectangleBasedGeometry.- Returns:
- the height of this
AbstractRectangleBasedGeometry
-
getLocation
Returns aPointspecifying the x and y coordinates of thisAbstractRectangleBasedGeometry.- Returns:
- a
Pointrepresenting the x and y coordinates of thisAbstractRectangleBasedGeometry
-
getScaled
Description copied from interface:IScalableScales a copy of the calling object by the given factor relative to its centerPoint. -
getScaled
Description copied from interface:IScalableScales a copy of the calling object by the given factors relative to its centerPoint. -
getScaled
Description copied from interface:IScalableScales a copy of the calling object by the given factor relative to the given centerPoint(cx, cy).- Specified by:
getScaledin interfaceIScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,?>> - Parameters:
factor- scale-factorcenterX- x-coordinate of the relativePointfor the scalingcenterY- y-coordinate of the relativePointfor the scaling- Returns:
- the new, scaled object
-
getScaled
Description copied from interface:IScalableScales a copy of the calling object by the given factors relative to the given centerPoint(cx, cy).- Specified by:
getScaledin interfaceIScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,?>> - Parameters:
factorX- x-scale-factorfactorY- y-scale-factorcenterX- x-coordinate of the relativePointfor the scalingcenterY- y-coordinate of the relativePointfor the scaling- Returns:
- the new, scaled object
-
getScaled
Description copied from interface:IScalableScales a copy of the calling object by the given factors relative to the given centerPoint. -
getScaled
Description copied from interface:IScalableScales a copy of the calling object by the given factor relative to the given centerPoint. -
getShrinked
Returns a newAbstractRectangleBasedGeometry, where the sides are shrinked by the horizontal and vertical values supplied. The center of thisAbstractRectangleBasedGeometryis kept constant.- Parameters:
h- horizontal reduction amountv- vertical reduction amount- Returns:
- a new, shrinked
AbstractRectangleBasedGeometry
-
getShrinked
Returns a newAbstractRectangleBasedGeometryshrinked by the specified insets.- Parameters:
left- the amount to shrink the left sidetop- the amount to shrink the top sideright- the amount to shrink the right sidebottom- the amount to shrink the bottom side- Returns:
- a new, shrinked
AbstractRectangleBasedGeometry
-
getSize
Returns aDimensionthat records the width and height of thisAbstractRectangleBasedGeometry.- Returns:
- a
Dimensionthat records the width and height of thisAbstractRectangleBasedGeometry
-
getTranslated
Description copied from interface:ITranslatableTranslates a copy of this object by the given values in x and y direction.- Specified by:
getTranslatedin interfaceITranslatable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,?>> - Parameters:
dx- x-translationdy- y-translation- Returns:
- a new, translated object
-
getTranslated
Description copied from interface:ITranslatableTranslates a copy of this object by the givenPoint.- Specified by:
getTranslatedin interfaceITranslatable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,?>> - Parameters:
pt- translationPoint- Returns:
- a new, translated object
-
getWidth
public final double getWidth()Returns the width of thisAbstractRectangleBasedGeometry.- Returns:
- the width of this
AbstractRectangleBasedGeometry
-
getX
public final double getX()Returns the x coordinate thisAbstractRectangleBasedGeometry.- Returns:
- the x coordinate this
AbstractRectangleBasedGeometry
-
getY
public final double getY()Returns the y coordinate of thisAbstractRectangleBasedGeometry.- Returns:
- the y coordinate of this
AbstractRectangleBasedGeometry
-
scale
Description copied from interface:IScalableScales the calling object by the given factor relative to its centerPoint. -
scale
Description copied from interface:IScalableScales the calling object by the given factors relative to the given centerPoint. -
scale
Description copied from interface:IScalableScales the calling object by the given factor relative to the given centerPoint(cx, cy). -
scale
Description copied from interface:IScalableScales the calling object by the given factors relative to the given centerPoint(cx, cy).- Specified by:
scalein interfaceIScalable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,?>> - Parameters:
fx- x-scale-factorfy- y-scale-factorcx- x-coordinate of the relativePointfor the scalingcy- y-coordinate of the relativePointfor the scaling- Returns:
thisfor convenience
-
scale
Description copied from interface:IScalableScales the calling object by the given factors relative to the given centerPoint. -
scale
Description copied from interface:IScalableScales the calling object by the given factor relative to the given centerPoint. -
setBounds
Sets the x, y, width, and height values of thisAbstractRectangleBasedGeometryto the given values.- Parameters:
x- the new x-coordinatey- the new y-coordinatew- the new widthh- the new height- Returns:
thisfor convenience
-
setBounds
-
setBounds
Sets the x and y coordinates and the width and height of thisAbstractRectangleBasedGeometryto the respective values of the givenRectangle.- Parameters:
r- theRectanglespecifying the new x, y, width, and height values of thisAbstractRectangleBasedGeometry- Returns:
thisfor convenience
-
setHeight
Sets the height of thisAbstractRectangleBasedGeometryto the given value.- Parameters:
height- the new height- Returns:
thisfor convenience
-
setLocation
Sets the x and y coordinates of thisAbstractRectangleBasedGeometryto the specified values.- Parameters:
x- the new x coordinate of thisAbstractRectangleBasedGeometryy- the new y coordinate of thisAbstractRectangleBasedGeometry- Returns:
thisfor convenience
-
setLocation
Sets the x and y coordinates of thisAbstractRectangleBasedGeometryto the respective values of the givenPoint.- Parameters:
p- thePointspecifying the new x and y coordinates of thisAbstractRectangleBasedGeometry- Returns:
thisfor convenience
-
setSize
Sets the width and height of thisAbstractRectangleBasedGeometryto the width and height of the givenDimension.- Parameters:
d- theDimensionspecifying the new width and height of thisAbstractRectangleBasedGeometry- Returns:
thisfor convenience
-
setSize
Sets the width and height of thisAbstractRectangleBasedGeometryto the given values.- Parameters:
w- the new width of thisAbstractRectangleBasedGeometryh- the new height of thisAbstractRectangleBasedGeometry- Returns:
thisfor convenience
-
setWidth
Sets the width of thisAbstractRectangleBasedGeometryto the passed-in value.- Parameters:
width- the new width of thisAbstractRectangleBasedGeometry- Returns:
thisfor convenience
-
setX
Sets the x-coordinate of thisAbstractRectangleBasedGeometryto the given value.- Parameters:
x- The new x-coordinate.- Returns:
thisfor convenience.
-
setY
Sets the y-coordinate of thisAbstractRectangleBasedGeometryto the given value.- Parameters:
y- The new y-coordinate.- Returns:
thisfor convenience.
-
shrink
Shrinks the sides of thisAbstractRectangleBasedGeometryby the horizontal and vertical values provided as input, and returns thisAbstractRectangleBasedGeometryfor convenience. The center of thisAbstractRectangleBasedGeometryis kept constant.- Parameters:
h- horizontal reduction amountv- vertical reduction amount- Returns:
thisfor convenience
-
shrink
Shrinks thisAbstractRectangleBasedGeometryby the specified amounts.- Parameters:
left- the amount to shrink the left sidetop- the amount to shrink the top sideright- the amount to shrink the right sidebottom- the amount to shrink the bottom side- Returns:
thisfor convenience
-
translate
Description copied from interface:ITranslatableTranslates the object by the given values in x and y direction.- Specified by:
translatein interfaceITranslatable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,?>> - Parameters:
dx- x-translationdy- y-translation- Returns:
thisfor convenience
-
translate
Description copied from interface:ITranslatableTranslates the object by the givenPoint.- Specified by:
translatein interfaceITranslatable<T extends org.eclipse.gef.geometry.planar.AbstractRectangleBasedGeometry<?,?>> - Parameters:
p- translationPoint- Returns:
thisfor convenience
-
clone
Overridden with public visibility as recommended withinCloneable. -
hashCode
public final int hashCode() -
touches
Description copied from interface:IGeometry
-