/**
 * 
 */
package math.geom2d.point;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

import math.geom2d.Box2D;
import math.geom2d.Point2D;
import math.geom2d.domain.Domain2D;

/**
 * @author dlegland
 *
 */
public class CheckGetBufferPoint extends JPanel{
	private static final long serialVersionUID = 1L;

	Point2D point;
	Domain2D domain1;
	Domain2D domain2;
	
	public CheckGetBufferPoint(){
		point = new Point2D(150, 150);
		domain1 = point.buffer(20);
		domain2 = point.buffer(-50);
	}
	
	public void paintComponent(Graphics g){
		Graphics2D g2 = (Graphics2D) g;
		
		// draw buffer with posiive distance
		g2.setColor(Color.CYAN);
		domain1.fill(g2);
		g2.setColor(Color.BLUE);
		domain1.draw(g2);
		
		// draw buffer with negative distance
		Box2D box = new Box2D(50, 250, 50, 250);
		g2.setColor(Color.CYAN);
		domain2.clip(box).fill(g2);
		g2.setColor(Color.BLUE);
		domain2.draw(g2);
		
		g2.setColor(Color.BLACK);
		point.draw(g2, 5);
	}
	
	public final static void main(String[] args){
		JPanel panel = new CheckGetBufferPoint();
		panel.setPreferredSize(new Dimension(500, 400));
		JFrame frame = new JFrame("Compute buffer of circles");
		frame.setContentPane(panel);
		frame.pack();
		frame.setVisible(true);		
	}
}