/* @(#)PolygonSamples.java   15 September 2005 */

/* Useful imports */

import edu.neu.ccs.*;
import edu.neu.ccs.gui.*;
import edu.neu.ccs.codec.*;
import edu.neu.ccs.console.*;
import edu.neu.ccs.filter.*;
import edu.neu.ccs.jpf.*;
import edu.neu.ccs.parser.*;
import edu.neu.ccs.pedagogy.*;
import edu.neu.ccs.quick.*;
import edu.neu.ccs.util.*;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.font.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.border.*;
import java.io.*;
import java.util.*;
import java.math.*;
import java.beans.*;
import java.lang.reflect.*;
import java.net.URL;
import java.util.regex.*;
import java.text.ParseException;

/** The sample starter class for Java Power Framework. */
public class PolygonSamples extends JPF 
{
    
    public static void main(String[] args) { 
        LookAndFeelTools.adjustAllDefaultFontSizes(4);
        
        new PolygonSamples();
    }
    
    
    Color fill = Colors.red;
    Color draw = Colors.black;
    
    
    float[][] diamond =
        {  { 200, 100 },
           { 300, 200 },
           { 200, 300 },
           { 100, 200 }
        };
    
    
    PolygonShape diamondShape =
        new PolygonShape(diamond);
    
    
    ShapePaintable diamondPaintable =
        new ShapePaintable
            (diamondShape, PaintMode.FILL_DRAW, fill, draw);
    
    
    public void ShowDiamond() {
        window.clearPanelAndSequence();
        window.appendPaintable(diamondPaintable);
        window.repaint();
    }
    
    
    float[][] star() {
        float[][] data = new float[5][2];
        
        float x = 200;
        float y = 200;
        float r = 100;
        
        int angle = 0;
        int delta = 144;
        
        for (int i = 0; i <= 4; i++) {
            float dx =   r * (float) MathUtilities.sindeg(angle);
            float dy = - r * (float) MathUtilities.cosdeg(angle);
            
            data[i][0] = x + dx;
            data[i][1] = y + dy;
            
            angle += delta;
        }
        
        return data;
    }
    
    
    PolygonShape starShape =
        new PolygonShape
            (star(), ClosureMode.CLOSED, WindingRule.WIND_NON_ZERO);
    
    
    ShapePaintable starPaintable =
        new ShapePaintable
            (starShape, PaintMode.FILL_DRAW, fill, draw);
    
    
    public void ShowStar() {
        window.clearPanelAndSequence();
        window.appendPaintable(starPaintable);
        window.repaint();
    }
    
}
