From 60f986f0a3f465d95dfb2ddcb15bb32250426ca2 Mon Sep 17 00:00:00 2001 From: benfry Date: Sat, 28 Jul 2001 00:04:26 +0000 Subject: [PATCH] automatic generation of g. code for processingapplet --- processing/app/ProcessingApplet.java | 229 +++++++++++++++++++++++++++ processing/app/bagelpublic.pl | 64 ++++++++ 2 files changed, 293 insertions(+) create mode 100644 processing/app/bagelpublic.pl diff --git a/processing/app/ProcessingApplet.java b/processing/app/ProcessingApplet.java index aa503260f..fe216f5a2 100644 --- a/processing/app/ProcessingApplet.java +++ b/processing/app/ProcessingApplet.java @@ -282,3 +282,232 @@ public class ProcessingApplet extends Applet // ------------------------------------------------------------ + public void beginFrame() { + g.beginFrame(); + } + + public void endFrame() { + g.endFrame(); + } + + public void beginShape(int kind) { + g.beginShape(kind); + } + + public void textureImage(BagelImage image) { + g.textureImage(image); + } + + public void vertexTexture(float u, float v) { + g.vertexTexture(u, v); + } + + public void vertexNormal(float nx, float ny, float nz) { + g.vertexNormal(nx, ny, nz); + } + + public void vertex(float x, float y) { + g.vertex(x, y); + } + + public void vertex(float x, float y, float z) { + g.vertex(x, y, z); + } + + public void endShape() { + g.endShape(); + } + + public void point(float x, float y) { + g.point(x, y); + } + + public void point(float x, float y, float z) { + g.point(x, y, z); + } + + public void line(float x1, float y1, float x2, float y2) { + g.line(x1, y1, x2, y2); + } + + public void line(float x1, float y1, float z1, + float x2, float y2, float z2) { + g.line(x1, y1, z1, x2, y2, z2); + } + + public void bezierCurve(float x1, float y1, float x2, float y2, + float x3, float y3, float x4, float y4) { + g.bezierCurve(x1, y1, x2, y2, x3, y3, x4, y4); + } + + public void drawBezier(float inX[], float inY[]) { + g.drawBezier(inX, inY); + } + + public void catmullRomCurve(float x1, float y1, + float cx1, float cy1, + float cx2, float cy2, + float x2, float y2) { + g.catmullRomCurve(x1, y1, cx1, cy1, cx2, cy2, x2, y2); + } + + public void rect(float x1, float y1, float x2, float y2) { + g.rect(x1, y1, x2, y2); + } + + public void cube(float size) { // radius*2 + g.cube(size); + } + + public void box(float x1, float y1, float z1, + float x2, float y2, float z2) { + g.box(x1, y1, z1, x2, y2, z2); + } + + public void sphere(float radius) { + g.sphere(radius); + } + + public void potato() { // my teapot equivalent + g.potato(); + } + + public void imageRect(float x1, float y1, float x2, float y2, + BagelImage image) { + g.imageRect(x1, y1, x2, y2, image); + } + + public void imageRect(float x1, float y1, float x2, float y2, + BagelImage image, float maxU, float maxV) { + g.imageRect(x1, y1, x2, y2, image, maxU, maxV); + } + + public void loadIdentityMatrix() { + g.loadIdentityMatrix(); + } + + public void push() { + g.push(); + } + + public void pop() { + g.pop(); + } + + public void multMatrix(float n00, float n01, float n02, float n03, + float n10, float n11, float n12, float n13, + float n20, float n21, float n22, float n23, + float n30, float n31, float n32, float n33) { + g.multMatrix(n00, n01, n02, n03, n10, n11, n12, n13, n20, n21, n22, n23, n30, n31, n32, n33); + } + + public void setupProjection(int projectionMode) { + g.setupProjection(projectionMode); + } + + public void projectPoint(float x, float y, float z) { + g.projectPoint(x, y, z); + } + + public void translate(float tx, float ty, float tz) { + g.translate(tx, ty, tz); + } + + public void rotate(float angle, float v0, float v1, float v2) { + g.rotate(angle, v0, v1, v2); + } + + public void scale(float xyz) { + g.scale(xyz); + } + + public void scale(float x, float y, float z) { + g.scale(x, y, z); + } + + public void multWithPerspective() { + g.multWithPerspective(); + } + + public void colorMode(int colorMode) { + g.colorMode(colorMode); + } + + public void colorMode(int colorMode, int max) { + g.colorMode(colorMode, max); + } + + public void colorMode(int colorMode, + int maxX, int maxY, int maxZ, int maxA) { + g.colorMode(colorMode, maxX, maxY, maxZ, maxA); + } + + public void colorScale(int maxX, int maxY, int maxZ, int maxA) { + g.colorScale(maxX, maxY, maxZ, maxA); + } + + public void noFill() { + g.noFill(); + } + + public void fill(float gray) { + g.fill(gray); + } + + public void fill(float gray, float alpha) { + g.fill(gray, alpha); + } + + public void fill(float x, float y, float z) { + g.fill(x, y, z); + } + + public void fill(float x, float y, float z, float a) { + g.fill(x, y, z, a); + } + + public void strokeWidth(float strokeWidth) { + g.strokeWidth(strokeWidth); + } + + public void noStroke() { + g.noStroke(); + } + + public void stroke(float gray) { + g.stroke(gray); + } + + public void stroke(float gray, float alpha) { + g.stroke(gray, alpha); + } + + public void stroke(float x, float y, float z) { + g.stroke(x, y, z); + } + + public void stroke(float x, float y, float z, float a) { + g.stroke(x, y, z, a); + } + + public void noBackground() { + g.noBackground(); + } + + public void background(float gray) { + g.background(gray); + } + + public void background(float x, float y, float z) { + g.background(x, y, z); + } + + public void message(int level, String message) { + g.message(level, message); + } + + public void message(int level, String message, Exception e) { + g.message(level, message, e); + } + +} diff --git a/processing/app/bagelpublic.pl b/processing/app/bagelpublic.pl new file mode 100644 index 000000000..67b8f86db --- /dev/null +++ b/processing/app/bagelpublic.pl @@ -0,0 +1,64 @@ +open(F, "bagel/Bagel.java") || die $!; +@contents = ; +close(F); + +open(OUT, ">>ProcessingApplet.java") || die $!; +select(OUT); + +$comments = 0; + +print "\n\n"; + +#foreach $line (@contents) { +while ($line = shift(@contents)) { + $decl = ""; + + if ($line =~ /\/\*/) { + $comments++; + } + if ($line =~ /\*\//) { + $comments--; + } + next if ($comments > 0); + + if ($line =~ /^\s*(public \w+ [a-zA-z_]+\(.*$)/) { + #print "$1\n"; + #$decl .= $line; + print $line; + $decl .= $line; + while (!($line =~ /\)/)) { + $line = shift (@contents); + $decl .= $line; + print $line; + #print shift (@contents); + } + + $decl =~ /\s(\S+)\(/; + $decl_name = $1; + #print "dec $decl_name\n"; + print " g.${decl_name}("; + + $decl =~ s/\s+/ /g; # smush onto a single line + $decl =~ s/^.*\(//; + $decl =~ s/\).*$//; + + $prev = 0; + @parts = split(', ', $decl); + foreach $part (@parts) { + ($the_type, $the_arg) = split(' ', $part); + $the_arg =~ s/[\[\]]//g; + #print "* $the_arg\n"; + if ($prev != 0) { + print ", "; + } + print "${the_arg}"; + $prev = 1; + } + print ");\n"; + + #print "$decl\r\n"; + + print " }\n\n"; + } +} +print "}\n";