/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.ebixio.virtmus.shapes;
import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Composite;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Point;
import java.awt.RenderingHints;
/**
*
* @author Gabriel Burca <gburca dash virtmus at ebixio dot com>
*/
public class ShapeRect extends VmShape {
Point start, end;
public ShapeRect(Paint color, float alpha, int thickness, Point start) {
super(color, alpha, thickness);
this.start = start;
}
public void addEnd(Point end) {
this.end = end;
}
@Override
public void paint(Graphics2D g) {
Composite origComposite = g.getComposite();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setPaint(paint);
g.setStroke(new BasicStroke(this.lineThickness, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
if (this.alpha < 1.0) {
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
}
Point p1 = new Point(Math.min(start.x, end.x), Math.min(start.y, end.y));
Point p2 = new Point(Math.max(start.x, end.x), Math.max(start.y, end.y));
g.fillRoundRect(p1.x, p1.y, p2.x - p1.x, p2.y - p1.y, lineThickness, lineThickness);
//g.drawRoundRect(p1.x, p1.y, p2.x - p1.x, p2.y - p1.y, lineThickness, lineThickness);
g.setComposite(origComposite);
}
}