1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.vectomatic.common.model.geometry;
19
20 import org.vectomatic.common.model.IShapeVisitor;
21 import org.vectomatic.common.model.Shape;
22
23 import com.google.gwt.user.client.rpc.IsSerializable;
24
25
26
27
28 public class Ellipse extends Shape implements IsSerializable {
29 public static final float K = ((float)Math.sqrt(2) - 1) * 4 / 3;
30 public Ellipse() {
31 super();
32 _bbox = BoundingBox.UNIT_BOX;
33 }
34 public Ellipse(Ellipse ellipse) {
35 super(ellipse);
36 }
37 @Override
38 public void acceptVisitor(IShapeVisitor visitor) {
39 visitor.visitEllipse(this);
40 }
41 @Override
42 public boolean isSame(Shape shape) {
43 if (shape instanceof Ellipse) {
44 Ellipse ellipse = (Ellipse)shape;
45 return getTransform().equals(ellipse.getTransform())
46 && _attributes.equals(ellipse._attributes);
47 }
48 return false;
49 }
50
51 @Override
52 public String toString() {
53 StringBuffer buffer = new StringBuffer();
54 buffer.append("Ellipse(m=");
55 buffer.append(getTransform().toString());
56 buffer.append(" atts=");
57 buffer.append(_attributes.toString());
58 buffer.append(")");
59 return buffer.toString();
60 }
61 }