package org.archstudio.bna.things.shapes;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
@NonNullByDefault
public class EllipseThing extends EllipseThingBase {
public EllipseThing(@Nullable Object id) {
super(id);
}
@Override
public Shape getStickyShape() {
Rectangle r = getBoundingBox();
return new Ellipse2D.Float(r.x, r.y, r.width, r.height);
}
@Override
public boolean shouldIncrementRotatingOffset() {
return isSelected();
}
@Override
public Point getReferencePoint() {
Rectangle r = getBoundingBox();
return new Point(r.x + r.width / 2, r.y + r.height / 2);
}
@Override
public void setReferencePoint(Point value) {
Point p = getReferencePoint();
Rectangle r = getBoundingBox();
r.x += value.x - p.x;
r.y += value.y - p.y;
setBoundingBox(r);
}
}