View Javadoc

1   package org.catacomb.graph.drawing;
2   
3   import org.catacomb.graph.gui.Painter;
4   
5   
6   
7   public class Oval extends FixedDrawingComponent {
8   
9   
10  
11      public double x;
12      public double y;
13      public double rx;
14      public double ry;
15  
16      public Oval() {
17          super();
18      }
19  
20  
21      public void setSize(double sx, double sy) {
22          rx = sx;
23          ry = sy;
24      }
25  
26  
27  
28  
29      public void instruct(Painter p, double offx, double offy, double scale) {
30          double w = getWidth();
31          if (isFilled()) {
32              p.drawFilledOval(offx + scale * x, offy + scale * y,
33                               scale * rx, scale * ry, getFillColor(), getColor(),
34                               w, widthIsPixels());
35          } else if (w > 0.5) {
36              p.drawOval(offx + scale * x, offy + scale * y,
37                         scale * rx, scale * ry, getColor(), w, widthIsPixels());
38  
39          }
40      }
41  
42  
43      public void applyToShape(Shape shp) {
44          shp.setCurviness(1.0);
45          applySymmetryToShape(shp);
46  
47          double[] xpts = { x - rx, x - rx, x + rx, x + rx };
48          double[] ypts = { y - ry, y + ry, y + ry, y - ry };
49          shp.setXpts(xpts);
50          shp.setYpts(ypts);
51      }
52  
53  
54      public void applySymmetryToShape(Shape shp) {
55          shp.setSymmetry(ShapeSymmetry.RECTANGLE);
56      }
57  
58  }