package edu.oregonstate.cartography.simplefeatures; import java.awt.Color; import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import java.awt.geom.Rectangle2D; /** * * @author marstonb */ public final class Point extends Geometry { private double x; private double y; public Point(double valueX, double valueY) { this.x = valueX; this.y = valueY; } /** * @return the x */ public double getX() { return x; } /** * @param x the x to set */ public void setX(double x) { this.x = x; } /** * @return the y */ public double getY() { return y; } /** * @param y the y to set */ public void setY(double y) { this.y = y; } @Override public String toString() { return "x=\"" + getX() + "\" y=\""+getY() +"\""/* + super.toString()*/; } @Override public void paint(Graphics2D g2d) { //Sets color of points g2d.setColor(Color.BLUE); //Creates a double precision ellipse centered on (6,6) Ellipse2D.Double point = new Ellipse2D.Double(x - 3, y - 3, 6, 6); //Paints the point g2d.fill(point); } //Returns the bounding box of a 2D rectangle with height and width equal to 0 @Override public Rectangle2D getBoundingBox() { Rectangle2D rectangle = new Rectangle2D.Double(x, y, 0, 0); return rectangle; } public boolean isSameLocation(Point p) { return x == p.x && y == p.y; } /** * Returns the hashcode for this <code>Point2D</code>. * From Point2D * @return a hash code for this <code>Point2D</code>. */ @Override public int hashCode() { long bits = java.lang.Double.doubleToLongBits(getX()); bits ^= java.lang.Double.doubleToLongBits(getY()) * 31; return (((int) bits) ^ ((int) (bits >> 32))); } /** * Determines whether or not two points are equal. Two instances of * <code>Point2D</code> are equal if the values of their * <code>x</code> and <code>y</code> member fields, representing * their position in the coordinate space, are the same. * From Point2D * @param obj an object to be compared with this <code>Point2D</code> * @return <code>true</code> if the object to be compared is * an instance of <code>Point2D</code> and has * the same values; <code>false</code> otherwise. * @since 1.2 */ @Override public boolean equals(Object obj) { if (obj instanceof Point) { Point p2d = (Point) obj; return (getX() == p2d.getX()) && (getY() == p2d.getY()); } return super.equals(obj); } }