/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package feuille.drawing.ornament;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Rectangle;
/**
*
* @author The Wingate 2940
*/
public class OrnControlPoint extends AShape {
//Un "point de contrôle" est défini par un cercle sur le dessin et par un
//rectangle virtuellement; ce rectangle sert de conteneur de coordonnées.
//Les coordonnées du centre du rectangle étant les coordonnées réelles.
private Rectangle rect = new Rectangle();
public OrnControlPoint(){
}
/** Création d'un "point de contrôle" avec coordonnées. */
public OrnControlPoint(int x, int y){
rect.setRect(
x-thickness.getThickness()/2,
y-thickness.getThickness()/2,
thickness.getThickness(),
thickness.getThickness());
originPoint = new java.awt.Point(x, y);
lastPoint = new java.awt.Point(x, y);
}
@Override
public void updateThickness(Thickness thickness){
this.thickness = thickness;
rect.setRect(
originPoint.x-thickness.getThickness()/2,
originPoint.y-thickness.getThickness()/2,
thickness.getThickness(),
thickness.getThickness());
}
/** Renvoie <b>true</b> si la coordonnée est concernée par un changement. */
public boolean isPointisinRectangle(java.awt.Point p){
return rect.contains(p);
}
/** Met à jour la position du point concerné. */
@Override
public void updatePointPosition(java.awt.Point p){
int x = (int)p.getX();
int y = (int)p.getY();
rect.setRect(
x-thickness.getThickness()/2,
y-thickness.getThickness()/2,
thickness.getThickness(),
thickness.getThickness());
originPoint = p;
lastPoint = p;
}
@Override
public double getY(double x) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void draw(Graphics2D g2d, Color c) {
Color oldc = g2d.getColor();
g2d.setColor(c);
g2d.fillOval(
originPoint.x-thickness.getThickness()/2,
originPoint.y-thickness.getThickness()/2,
thickness.getThickness(),
thickness.getThickness());
g2d.setColor(oldc);
}
}