/*
* ShapeLine.java
*
* Created on Oct 16, 2007, 6:44:37 PM
*
* 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;
import java.awt.geom.GeneralPath;
/**
*
* @author Gabriel Burca <gburca dash virtmus at ebixio dot com>
*/
public class ShapeLine extends VmShape {
protected GeneralPath path = new GeneralPath();
protected int segments = 0;
public ShapeLine(Paint color, float alpha, int thickness, Point start) {
super(color, alpha, thickness);
path.moveTo(start.x, start.y);
}
public void addEnd(Point end) {
path.lineTo(end.x, end.y);
segments++;
}
@Override
public String getName() {
if (segments > 1) {
return "ShapeFreehand";
} else {
return "ShapeStraightLine";
}
}
@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));
}
g.draw(path);
g.setComposite(origComposite);
}
}