package com.revolsys.geometry.model.impl;
import com.revolsys.geometry.model.BoundingBox;
import com.revolsys.geometry.model.Geometry;
import com.revolsys.geometry.model.Point;
public class Circle extends PointDoubleXY {
private static final long serialVersionUID = 1L;
private BoundingBox boundingBox;
private final double radius;
private final double tolerance = 0.0001;
public Circle(final Point centre, final double radius) {
super(centre);
this.radius = radius;
this.boundingBox = new BoundingBoxDoubleXY(getX(), getY());
this.boundingBox = this.boundingBox.expand(radius);
}
public boolean contains(final Point point) {
final double distanceFromCentre = distancePoint(point);
return distanceFromCentre < this.radius + this.tolerance;
}
@Override
public BoundingBox getBoundingBox() {
return this.boundingBox;
}
public double getRadius() {
return this.radius;
}
public Geometry toGeometry() {
return buffer(this.radius);
}
@Override
public String toString() {
return "CIRCLE(" + getX() + " " + getY() + " " + this.radius + ")";
}
}