edu.mit.sketch.geom
Class Ellipse

java.lang.Object
  |
  +--java.awt.geom.RectangularShape
        |
        +--java.awt.geom.Ellipse2D
              |
              +--java.awt.geom.Ellipse2D.Double
                    |
                    +--edu.mit.sketch.geom.Ellipse
All Implemented Interfaces:
Cloneable, GeometricObject, Paintable, Serializable, Shape, Terminal, Translatable

public class Ellipse
extends Ellipse2D.Double
implements GeometricObject, Serializable

This class represents an Ellipse described by its upper_left, corner width and height of the encapsulating rectangle.

See Also:
Serialized Form

Inner classes inherited from class java.awt.geom.Ellipse2D
Ellipse2D.Double, Ellipse2D.Float
 
Field Summary
 Graphics graphics
          Graphics context for this Geometric object.
 long time_stamp
          Time stamp of this object.
 
Fields inherited from class java.awt.geom.Ellipse2D.Double
height, width, x, y
 
Fields inherited from interface edu.mit.sketch.geom.GeometricObject
CIRCLE, ELLIPSE, LINE, POINT, POLYGON, RECTANGLE, SQUARE
 
Constructor Summary
Ellipse()
          The constructor.
Ellipse(double x, double y, double width, double height)
          The constructor.
Ellipse(Point upper_left, Dimension d)
          The constructor.
Ellipse(Point upper_left, int width, int height)
          The constructor.
 
Method Summary
 boolean containsGeometricObject(GeometricObject object)
          Returns false if the argument is not completely inside this object.
 boolean containsGeometricObjects(GeometricObject[] objects)
          Returns false if the objects in the input array are completely inside this object.
 Polygon getDataPoints()
          This method is used to get the original data points that forms this GeometricObject
 Polygon getPolygonalBounds()
          This method should return a polygon that corresponds to this object.
 Rectangle getRectangularBounds()
          Supplied for completeness.
 long getTimeStamp()
          Returns the time stamp of the current Terminal
 String getType()
          Implement GeometricObject
 String getTypeWithTolerance(double tolerance)
          This returns "circle" if the width/height ratio is within tolerance neighborhood of 1.
 void paint()
          Draw the object
 void paint(Graphics g)
          Draw the object
 void paintOriginal(Graphics g)
          This method is used to paint the original data points that forms this GeometricObject
 boolean pointIsOn(Point p, int radius)
          Returns true if the point is within +-radius distance from the curve defining the object.
 boolean pointIsOnOriginal(Point p, int radius)
          Returns true if the point is within +-radius distance from the original curve defining the object.
 void setDataPoints(Polygon points)
          This method is used to set the original data points that forms this GeometricObject
 void setGraphicsContext(Graphics g)
          Set graphics context for this Geometric object.
 void setTimeStamp(long time_stamp)
          Sets the time stamp of the current Terminal
 int spatialRelation(GeometricObject object)
          This method should return the spatial relation of the input parameter with respect to this object.
 String toString()
          Override toString
 boolean touches(GeometricObject object)
          This method should return true if the input objects touch.
 void translate(double x, double y)
          Add the arguments to the (x, y) position of the object.
 
Methods inherited from class java.awt.geom.Ellipse2D.Double
getBounds2D, getHeight, getWidth, getX, getY, isEmpty, setFrame
 
Methods inherited from class java.awt.geom.Ellipse2D
contains, contains, getPathIterator, intersects
 
Methods inherited from class java.awt.geom.RectangularShape
clone, contains, contains, getBounds, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, getPathIterator, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

time_stamp

public long time_stamp
Time stamp of this object.

graphics

public transient Graphics graphics
Graphics context for this Geometric object.
Constructor Detail

Ellipse

public Ellipse()
The constructor.

Ellipse

public Ellipse(double x,
               double y,
               double width,
               double height)
The constructor.

Ellipse

public Ellipse(Point upper_left,
               int width,
               int height)
The constructor.

Ellipse

public Ellipse(Point upper_left,
               Dimension d)
The constructor.
Method Detail

getType

public String getType()
Implement GeometricObject
Specified by:
getType in interface Paintable

getTypeWithTolerance

public String getTypeWithTolerance(double tolerance)
This returns "circle" if the width/height ratio is within tolerance neighborhood of 1.
Parameters:
tolerance - a double value
Returns:
a String value

toString

public String toString()
Override toString
Overrides:
toString in class Object

paint

public void paint()
Draw the object
Specified by:
paint in interface Paintable

paint

public void paint(Graphics g)
Draw the object
Specified by:
paint in interface Paintable

paintOriginal

public void paintOriginal(Graphics g)
This method is used to paint the original data points that forms this GeometricObject
Specified by:
paintOriginal in interface Paintable

pointIsOn

public boolean pointIsOn(Point p,
                         int radius)
Returns true if the point is within +-radius distance from the curve defining the object. Returns false o/w.
Specified by:
pointIsOn in interface Translatable

pointIsOnOriginal

public boolean pointIsOnOriginal(Point p,
                                 int radius)
Returns true if the point is within +-radius distance from the original curve defining the object. Returns false o/w.
Specified by:
pointIsOnOriginal in interface Translatable

setGraphicsContext

public void setGraphicsContext(Graphics g)
Set graphics context for this Geometric object. Must be set at least once before doing any drawing.
Specified by:
setGraphicsContext in interface Paintable

touches

public boolean touches(GeometricObject object)
This method should return true if the input objects touch. It should be optimized making use of the object type information.
Specified by:
touches in interface GeometricObject

getRectangularBounds

public Rectangle getRectangularBounds()
Supplied for completeness.
Specified by:
getRectangularBounds in interface GeometricObject

containsGeometricObject

public boolean containsGeometricObject(GeometricObject object)
Returns false if the argument is not completely inside this object. Return true O/W.
Specified by:
containsGeometricObject in interface GeometricObject

getPolygonalBounds

public Polygon getPolygonalBounds()
This method should return a polygon that corresponds to this object. The polygon is implicity closed and the last point doesn't necessarily have to be the same as the first (zeroth) point. The returned polygon is a liberal approximation to the real shape of the object. Known eksik: This should be refined to return a more conservative result.
Specified by:
getPolygonalBounds in interface GeometricObject

spatialRelation

public int spatialRelation(GeometricObject object)
This method should return the spatial relation of the input parameter with respect to this object. see the SpatialRelation class for a detailed list of possible spatial relations. Another version of this method should be implemented for handling spatial relations where a rotated coordinate system is to be used.
Specified by:
spatialRelation in interface GeometricObject

setTimeStamp

public void setTimeStamp(long time_stamp)
Sets the time stamp of the current Terminal
Specified by:
setTimeStamp in interface Terminal

getTimeStamp

public long getTimeStamp()
Returns the time stamp of the current Terminal
Specified by:
getTimeStamp in interface Terminal

setDataPoints

public void setDataPoints(Polygon points)
This method is used to set the original data points that forms this GeometricObject
Specified by:
setDataPoints in interface GeometricObject

getDataPoints

public Polygon getDataPoints()
This method is used to get the original data points that forms this GeometricObject
Specified by:
getDataPoints in interface GeometricObject

translate

public void translate(double x,
                      double y)
Add the arguments to the (x, y) position of the object.
Specified by:
translate in interface Translatable

containsGeometricObjects

public boolean containsGeometricObjects(GeometricObject[] objects)
Returns false if the objects in the input array are completely inside this object. Return true O/W.
Specified by:
containsGeometricObjects in interface GeometricObject