1   package fi.jyu.mit.graphics;
2   
3   import java.awt.Graphics;
4   
5   /**
6    * Luokka täytetyille monikulmioille
7    * @author Markus Kivioja
8    *
9    */
10  public class FillPolygon extends Polygon {
11      
12      public FillPolygon() {
13          super();
14      }
15      /**
16       * Luo täytetyn monikulmion annetuista kulmapisteiden
17       * x- ja y-koordinaateista
18       * @param xpoints taulukko kulmapisteiden x-koordinaateista
19       * @param ypoints taulukko kulmapisteiden y-koordinaateista
20       */
21      public FillPolygon(double[] xpoints, double[] ypoints) {
22          super(xpoints, ypoints);
23      }
24      
25      /**
26       * Luo täytetyn monikulmion annetuista kulmapisteiden
27       * x-, y- ja z-koordinaateista
28       * @param xpoints taulukko kulmapisteiden x-koordinaateista
29       * @param ypoints taulukko kulmapisteiden y-koordinaateista
30       * @param zpoints taulikko kulmapisteiden z-koordinaateista
31       */
32      public FillPolygon(double[] xpoints, double[] ypoints, double[] zpoints) {
33          super(xpoints, ypoints, zpoints);
34      }
35      
36      /**
37       * Luo täytetyn kaksi- tai kolmiulotteisen monikulmion annetuista kulmapisteistä, esimerkiksi:
38       * <pre>
39       *      double[][] points = {{2, 6}, {5, 5}, {-1, 2.5}}
40       *      FillPolygon fp = new FillPolygon(points);
41       *      
42       *      Luo täytetyn monikulmion jonka kärkipisteet ovat (2, 6), (5, 5) ja (-1, 2.5)
43       * </pre>
44       * @param points 
45       */
46      public FillPolygon(double[][] points) {
47          super(points);
48      }
49  
50      /**
51       * Luo täytetyn monikulmion annetuista kulmapisteistä jotka ovat RPoint olioita
52       * @param points taulukko kulmapisteistä jotka ovat RPoint-olioita
53       */
54      public FillPolygon(RPoint[] points) {
55          super(points);
56      }
57      
58      public void drawEmpty(Graphics g, Matrix a) {
59          super.drawShape(g, a);
60      }
61      
62      @Override
63      protected void drawShape(Graphics g, Matrix a) {
64          int[][] sPoints = makeScreenPoints(a);
65          g.fillPolygon(sPoints[0], sPoints[1], getCount());
66      }   
67  }
68