[Polycasso-commit] SF.net SVN: polycasso:[218] trunk/polycasso/src/com/mebigfatguy/polycasso
Brought to you by:
dbrosius
|
From: <dbr...@us...> - 2010-01-01 04:19:02
|
Revision: 218
http://polycasso.svn.sourceforge.net/polycasso/?rev=218&view=rev
Author: dbrosius
Date: 2010-01-01 04:18:52 +0000 (Fri, 01 Jan 2010)
Log Message:
-----------
split the data out from the code to draw it
Modified Paths:
--------------
trunk/polycasso/src/com/mebigfatguy/polycasso/JavaSaver.java
trunk/polycasso/src/com/mebigfatguy/polycasso/JavaSaver.template
Modified: trunk/polycasso/src/com/mebigfatguy/polycasso/JavaSaver.java
===================================================================
--- trunk/polycasso/src/com/mebigfatguy/polycasso/JavaSaver.java 2010-01-01 01:19:31 UTC (rev 217)
+++ trunk/polycasso/src/com/mebigfatguy/polycasso/JavaSaver.java 2010-01-01 04:18:52 UTC (rev 218)
@@ -69,52 +69,18 @@
templateStream = getClass().getResourceAsStream("/com/mebigfatguy/polycasso/JavaSaver.template");
String template = IOUtils.toString(templateStream);
- StringWriter insert = new StringWriter();
- PrintWriter polyWriter = new PrintWriter(insert);
- for (PolygonData pd : data) {
- polyWriter.print(TABS);
- polyWriter.println("poly.reset();");
- Polygon poly = pd.getPolygon();
-
- for (int p = 0; p < poly.npoints; p++) {
- polyWriter.print(TABS);
- polyWriter.print("poly.addPoint(");
- polyWriter.print(poly.xpoints[p]);
- polyWriter.print(", ");
- polyWriter.print(poly.ypoints[p]);
- polyWriter.println(");");
- }
- Color c = pd.getColor();
- polyWriter.print(TABS);
- polyWriter.print("color = new Color(");
- polyWriter.print(c.getRed());
- polyWriter.print(", ");
- polyWriter.print(c.getGreen());
- polyWriter.print(", ");
- polyWriter.print(c.getBlue());
- polyWriter.println(");");
-
- polyWriter.print(TABS);
- polyWriter.println("g2d.setColor(color);");
-
- polyWriter.print(TABS);
- polyWriter.print("composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, ");
- polyWriter.print(pd.getAlpha());
- polyWriter.println("f);");
-
- polyWriter.print(TABS);
- polyWriter.println("g2d.setComposite(composite);");
-
- polyWriter.print(TABS);
- polyWriter.println("g2d.fillPolygon(poly);");
- }
- polyWriter.flush();
+ String polygonData = getPolygonData(data);
+ String colorData = getColorData(data);
+ String transparencyData = getTransparencyData(data);
+
/* All the curly braces confuses MessageFormat, so just do it manually */
template = template.replaceAll("\\{0\\}", className);
template = template.replaceAll("\\{1\\}", String.valueOf(imageSize.width));
template = template.replaceAll("\\{2\\}", String.valueOf(imageSize.height));
- template = template.replaceAll("\\{3\\}", insert.toString());
+ template = template.replaceAll("\\{3\\}", polygonData);
+ template = template.replaceAll("\\{4\\}", colorData);
+ template = template.replaceAll("\\{5\\}", transparencyData);
pw.println(template);
@@ -123,8 +89,105 @@
} finally {
IOUtils.closeQuietly(templateStream);
IOUtils.closeQuietly(pw);
+ }
+ }
+
+ private String getPolygonData(PolygonData[] data) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+
+ String outerComma = "";
+ String innerComma;
+ for (int i = 0; i < data.length; i++) {
+
+ PolygonData pd = data[i];
+
+ pw.println(outerComma);
+ pw.print(TABS);
+ pw.println("{");
+
+ /* Xs */
+ pw.print(TABS);
+ pw.print("\t{");
+
+ innerComma = "";
+ Polygon poly = pd.getPolygon();
+ for (int j = 0; j < poly.npoints; j++) {
+ pw.print(innerComma);
+ pw.print(poly.xpoints[j]);
+ innerComma = ",";
+ }
+
+ pw.println("},");
+
+ /* Ys */
+ pw.print(TABS);
+ pw.print("\t{");
+
+ innerComma = "";
+ poly = pd.getPolygon();
+ for (int j = 0; j < poly.npoints; j++) {
+ pw.print(innerComma);
+ pw.print(poly.ypoints[j]);
+ innerComma = ",";
+ }
+
+ pw.println("}");
+
+ pw.print(TABS);
+ pw.print("}");
+ outerComma = ",";
}
+ pw.flush();
+ return sw.toString();
}
+
+ private String getColorData(PolygonData[] data) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+
+ String comma = "";
+ for (int i = 0; i < data.length; i++) {
+
+ PolygonData pd = data[i];
+
+ pw.println(comma);
+ pw.print(TABS);
+ pw.print("{");
+
+ Color color = pd.getColor();
+ pw.print(color.getRed());
+ pw.print(",");
+ pw.print(color.getGreen());
+ pw.print(",");
+ pw.print(color.getBlue());
+ pw.print("}");
+ comma = ",";
+ }
+
+ pw.flush();
+ return sw.toString();
+ }
+
+ private String getTransparencyData(PolygonData[] data) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ pw.println();
+ pw.print(TABS);
+ String comma = "";
+ for (int i = 0; i < data.length; i++) {
+
+ PolygonData pd = data[i];
+
+ pw.print(comma);
+ pw.print(pd.getAlpha());
+ pw.print("f");
+ comma = ",";
+ }
+
+ pw.flush();
+ return sw.toString();
+ }
}
Modified: trunk/polycasso/src/com/mebigfatguy/polycasso/JavaSaver.template
===================================================================
--- trunk/polycasso/src/com/mebigfatguy/polycasso/JavaSaver.template 2010-01-01 01:19:31 UTC (rev 217)
+++ trunk/polycasso/src/com/mebigfatguy/polycasso/JavaSaver.template 2010-01-01 04:18:52 UTC (rev 218)
@@ -34,19 +34,38 @@
public static void main(String[] args) {
JFrame frame = new JFrame() {
- {
+ {
+ final int[][][] polygonData = new int[][][]
+ {{3}
+ };
+
+ final int[][] colorData = new int[][]
+ {{4}
+ };
+
+ final float [] transparencyData = new float[]
+ {{5}
+ };
+
Container cp = getContentPane();
cp.add(new JPanel() {
+ private static final long serialVersionUID = 1L;
+
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.BLACK);
- g2d.fillRect(0, 0, {1}, {2});
- Polygon poly = new Polygon();
- AlphaComposite composite;
- Color color;
-{3}
+ g2d.fillRect(0, 0, {1}, {2});
+
+ for (int i = 0; i < polygonData.length; i++) {
+ Polygon polygon = new Polygon(polygonData[i][0], polygonData[i][1], polygonData[i][0].length);
+ Color color = new Color(colorData[i][0], colorData[i][1], colorData[i][2]);
+ g2d.setColor(color);
+ AlphaComposite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, transparencyData[i]);
+ g2d.setComposite(composite);
+ g2d.fillPolygon(polygon);
+ }
}
});
pack();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|