diff src/samer/tools/Renderer.java @ 0:bf79fb79ee13

Initial Mercurial check in.
author samer
date Tue, 17 Jan 2012 17:50:20 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/samer/tools/Renderer.java	Tue Jan 17 17:50:20 2012 +0000
@@ -0,0 +1,40 @@
+package samer.tools;
+
+import samer.core.util.*;
+import java.awt.*;
+
+public interface Renderer {
+	public void draw( Graphics g, int x1, int x2, int j1, int j2, int j0);
+
+	class Line implements Renderer {
+		public void draw( Graphics g, int x1, int x2, int j1, int j2, int j0) {
+			g.drawLine(x1,j1,x2,j2);
+		}
+	}
+
+	class Fill implements Renderer {
+		public void draw( Graphics g, int x1, int x2, int j1, int j2, int j0) {
+			if (j2>j0) g.fillRect(x1,j0,x2-x1,j2-j0);
+			else g.fillRect(x1,j2,x2-x1,j0-j2);
+		}
+	}
+
+	class Fill3D implements Renderer {
+		public void draw( Graphics g, int x1, int x2, int j1, int j2, int j0) {
+			// need to make sure rectangle is the right way up
+			if (j2>j0) g.fill3DRect(x1,j0,x2-x1,j2-j0,true);
+			else g.fill3DRect(x1,j2,x2-x1,j0-j2,true);
+		}
+	}
+
+	class Steps implements Renderer {
+		public void draw( Graphics g, int x1, int x2, int j1, int j2, int j0) {
+			g.drawLine(x1,j1,x1,j2);
+			g.drawLine(x1,j2,x2,j2);
+		}
+	}
+	public final static Renderer LINE=new Line();
+	public final static Renderer FILL=new Fill();
+	public final static Renderer FILL3D=new Fill3D();
+	public final static Renderer STEPS=new Steps();
+}