package primitives.spaces;
import java.awt.*;
import primitives.geomtry.*;
public final class PolygonSpace extends CircleSpace{
	private Polygon polygon;
	public 	PolygonSpace(Dimension d,int edges){
		super(d,0,Math.PI*2);
		polygon = new Polygon();
		for(int i=0;i<edges;i++){											 
			Point temp = Geomtry.getPointByVector(dcenter,r,Math.PI*2*i/edges).toPoint();
			polygon.addPoint(temp.x,temp.y);
		}
	}
	public void changeState(){
		super.changeState();
		state = Geomtry.findPointOnPolygon(dcenter,new Coordinate(state.x,state.y),polygon).toPoint();
	}
	public void update(Graphics g){
		g.clearRect(0,0,d.width,d.height);
		g.setColor(Color.black);
		g.drawPolygon(polygon);
	}
	public void redraw(Graphics g){
		g.setColor(Color.green);
		Geomtry.drawJoint(g,state);
	}
	public void finalize() throws Throwable{
		polygon = null;
		super.finalize();
	}
}
