package com.xenoage.zong.renderer.stamping;
import com.xenoage.utils.annotations.Demo;
import com.xenoage.utils.color.Color;
import com.xenoage.utils.math.geom.Point2f;
import com.xenoage.utils.math.geom.Size2f;
import com.xenoage.zong.musiclayout.stampings.Stamping;
import com.xenoage.zong.musiclayout.stampings.TestStamping;
import com.xenoage.zong.renderer.RendererArgs;
import com.xenoage.zong.renderer.canvas.Canvas;
/**
* Renderer for a test stamping,
* used for testing purposes.
*
* Draws the border of a rectangle with
* a given color.
*
* @author Andreas Wenger
*/
@Demo
public class TestRenderer
extends StampingRenderer {
/**
* Draws the given {@link TestStamping} on the given {@link Canvas},
* using the given {@link RendererArgs}.
*/
@Override public void draw(Stamping stamping, Canvas canvas, RendererArgs args) {
TestStamping s = (TestStamping) stamping;
drawWith(s.positionMm, s.sizeMm, s.color, canvas, args);
}
public static void drawWith(Point2f position, Size2f size, Color color, Canvas canvas,
RendererArgs args) {
Point2f pNW = position;
Point2f pSE = new Point2f(position.x + size.width, position.y + size.height);
Point2f pNE = new Point2f(pSE.x, pNW.y);
Point2f pSW = new Point2f(pNW.x, pSE.y);
canvas.drawLine(pNW, pNE, color, 1);
canvas.drawLine(pNE, pSE, color, 1);
canvas.drawLine(pSE, pSW, color, 1);
canvas.drawLine(pSW, pNW, color, 1);
}
}