summaryrefslogtreecommitdiff
path: root/Examples/GIFPlot/Php
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/GIFPlot/Php')
-rw-r--r--Examples/GIFPlot/Php/check.list3
-rw-r--r--Examples/GIFPlot/Php/full/Makefile20
-rw-r--r--Examples/GIFPlot/Php/full/README4
-rw-r--r--Examples/GIFPlot/Php/full/cmapbin0 -> 768 bytes
-rw-r--r--Examples/GIFPlot/Php/full/gifplot.i15
-rw-r--r--Examples/GIFPlot/Php/full/runme.php78
-rw-r--r--Examples/GIFPlot/Php/shadow/Makefile19
-rw-r--r--Examples/GIFPlot/Php/shadow/README2
-rw-r--r--Examples/GIFPlot/Php/shadow/cmapbin0 -> 768 bytes
-rw-r--r--Examples/GIFPlot/Php/shadow/runme.php79
-rw-r--r--Examples/GIFPlot/Php/simple/Makefile20
-rw-r--r--Examples/GIFPlot/Php/simple/README5
-rw-r--r--Examples/GIFPlot/Php/simple/runme.php32
-rw-r--r--Examples/GIFPlot/Php/simple/simple.i38
14 files changed, 315 insertions, 0 deletions
diff --git a/Examples/GIFPlot/Php/check.list b/Examples/GIFPlot/Php/check.list
new file mode 100644
index 0000000..e75ee58
--- /dev/null
+++ b/Examples/GIFPlot/Php/check.list
@@ -0,0 +1,3 @@
+# see top-level Makefile.in
+full
+simple
diff --git a/Examples/GIFPlot/Php/full/Makefile b/Examples/GIFPlot/Php/full/Makefile
new file mode 100644
index 0000000..e33e7a7
--- /dev/null
+++ b/Examples/GIFPlot/Php/full/Makefile
@@ -0,0 +1,20 @@
+TOP = ../../..
+SWIG = $(TOP)/../swig
+SWIGOPT = -I../../Include -noproxy
+SRCS =
+TARGET = php_gifplot
+INTERFACE = gifplot.i
+LIBS = -L../.. -lgifplot -lm
+INCLUDES = -I../../Include
+
+all::
+ $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
+ INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
+ TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' php
+
+clean::
+ $(MAKE) -f $(TOP)/Makefile php_clean
+ rm -f *.gif
+ rm -f php_gifplot.h
+
+check: all
diff --git a/Examples/GIFPlot/Php/full/README b/Examples/GIFPlot/Php/full/README
new file mode 100644
index 0000000..f8d38d9
--- /dev/null
+++ b/Examples/GIFPlot/Php/full/README
@@ -0,0 +1,4 @@
+This example runs the entire gifplot.h header file through SWIG without
+any changes. The script 'runme.php3' does something a little more
+interesting. You'll have to go look at the header file to get a complete
+listing of the functions.
diff --git a/Examples/GIFPlot/Php/full/cmap b/Examples/GIFPlot/Php/full/cmap
new file mode 100644
index 0000000..a20c331
--- /dev/null
+++ b/Examples/GIFPlot/Php/full/cmap
Binary files differ
diff --git a/Examples/GIFPlot/Php/full/gifplot.i b/Examples/GIFPlot/Php/full/gifplot.i
new file mode 100644
index 0000000..5a7f500
--- /dev/null
+++ b/Examples/GIFPlot/Php/full/gifplot.i
@@ -0,0 +1,15 @@
+/* Oh what the heck, let's just grab the whole darn header file
+ and see what happens. */
+
+%module gifplot
+%{
+
+/* Note: You still need this part because the %include directive
+ merely causes SWIG to interpret the contents of a file. It doesn't
+ include the right include headers for the resulting C code */
+
+#include "gifplot.h"
+
+%}
+
+%include gifplot.h
diff --git a/Examples/GIFPlot/Php/full/runme.php b/Examples/GIFPlot/Php/full/runme.php
new file mode 100644
index 0000000..de5371e
--- /dev/null
+++ b/Examples/GIFPlot/Php/full/runme.php
@@ -0,0 +1,78 @@
+<?
+
+# Plot a 3D function
+require "gifplot.php";
+
+# Here is the function to plot
+function func($x, $y) {
+ return 5*cos(2*sqrt($x*$x+$y*$y))*exp(-0.3*sqrt($x*$x+$y*$y));
+}
+
+# Here are some plotting parameters
+$xmin = -5.0;
+$xmax = 5.0;
+$ymin = -5.0;
+$ymax = 5.0;
+$zmin = -5.0;
+$zmax = 5.0;
+
+# Grid resolution
+$nxpoints = 60;
+$nypoints = 60;
+
+$cmap = new_ColorMap("cmap");
+$frame = new_FrameBuffer(500,500);
+FrameBuffer_clear($frame, BLACK);
+
+$p3 = new_Plot3D($frame,$xmin,$ymin,$zmin,$xmax,$ymax,$zmax);
+Plot3D_lookat($p3, 2*($zmax-$zmin));
+Plot3D_autoperspective($p3, 40);
+Plot3D_rotu($p3, 60);
+Plot3D_rotr($p3, 30);
+Plot3D_rotd($p3, 10);
+
+function drawsolid() {
+ global $p3;
+ global $xmax;
+ global $xmin;
+ global $ymax;
+ global $ymin;
+ global $zmin;
+ global $zmax;
+ global $nxpoints;
+ global $nypoints;
+
+ Plot3D_clear($p3, BLACK);
+ Plot3D_start($p3);
+ $dx = 1.0*($xmax-$xmin)/$nxpoints;
+ $dy = 1.0*($ymax-$ymin)/$nypoints;
+ $cscale = 240.0/($zmax-$zmin);
+ $x = $xmin;
+ for ($i = 0; $i < $nxpoints; $i++) {
+ $y = $ymin;
+ for ($j = 0; $j < $nypoints; $j++) {
+ $z1 = func($x,$y);
+ $z2 = func($x+$dx,$y);
+ $z3 = func($x+$dx,$y+$dy);
+ $z4 = func($x,$y+$dy);
+ $c1 = $cscale*($z1-$zmin);
+ $c2 = $cscale*($z2-$zmin);
+ $c3 = $cscale*($z3-$zmin);
+ $c4 = $cscale*($z4-$zmin);
+ $c = ($c1+$c2+$c3+$c4)/4;
+ if ($c < 0) { $c = 0; }
+ if ($c > 239) { $c = 239; }
+ Plot3D_solidquad($p3, $x,$y,$z1,$x+$dx,$y,$z2,$x+$dx,$y+$dy,$z3,$x,$y+$dy,$z4,$c+16);
+ $y = $y + $dy;
+ }
+ $x = $x + $dx;
+ }
+}
+
+print "Making a nice 3D plot...\n";
+drawsolid();
+
+FrameBuffer_writeGIF($frame, $cmap,"image.gif");
+print "Wrote image.gif\n";
+
+?>
diff --git a/Examples/GIFPlot/Php/shadow/Makefile b/Examples/GIFPlot/Php/shadow/Makefile
new file mode 100644
index 0000000..df8ee30
--- /dev/null
+++ b/Examples/GIFPlot/Php/shadow/Makefile
@@ -0,0 +1,19 @@
+TOP = ../../..
+SWIG = $(TOP)/../swig
+SWIGOPT = -I../../Interface
+SRCS =
+TARGET = php_gifplot
+INTERFACE = gifplot.i
+LIBS = -L../.. -lgifplot -lm
+INCLUDES = -I../../Include
+
+all::
+ $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
+ INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
+ TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' php
+
+clean::
+ $(MAKE) -f $(TOP)/Makefile php_clean
+ rm -f *.gif
+
+check: all
diff --git a/Examples/GIFPlot/Php/shadow/README b/Examples/GIFPlot/Php/shadow/README
new file mode 100644
index 0000000..3e91f7d
--- /dev/null
+++ b/Examples/GIFPlot/Php/shadow/README
@@ -0,0 +1,2 @@
+This example use the file in ../../Interface/gifplot.i to build
+an interface with shadow classes. Run the script 'runme.php3'.
diff --git a/Examples/GIFPlot/Php/shadow/cmap b/Examples/GIFPlot/Php/shadow/cmap
new file mode 100644
index 0000000..a20c331
--- /dev/null
+++ b/Examples/GIFPlot/Php/shadow/cmap
Binary files differ
diff --git a/Examples/GIFPlot/Php/shadow/runme.php b/Examples/GIFPlot/Php/shadow/runme.php
new file mode 100644
index 0000000..3dffba0
--- /dev/null
+++ b/Examples/GIFPlot/Php/shadow/runme.php
@@ -0,0 +1,79 @@
+<?
+
+# Plot a 3D function
+include("gifplot.php");
+
+# Here is the function to plot
+function func($x, $y) {
+ return 5*cos(2*sqrt($x*$x+$y*$y))*exp(-0.3*sqrt($x*$x+$y*$y));
+}
+
+# Here are some plotting parameters
+$xmin = -5.0;
+$xmax = 5.0;
+$ymin = -5.0;
+$ymax = 5.0;
+$zmin = -5.0;
+$zmax = 5.0;
+
+# Grid resolution
+$nxpoints = 60;
+$nypoints = 60;
+
+$cmap = new ColorMap("cmap");
+$frame = new FrameBuffer(500,500);
+$frame->clear(BLACK);
+
+
+$p3 = new Plot3D($frame,$xmin,$ymin,$zmin,$xmax,$ymax,$zmax);
+$p3->lookat(2*($zmax-$zmin));
+$p3->autoperspective(40);
+$p3->rotu(60);
+$p3->rotr(30);
+$p3->rotd(10);
+
+function drawsolid() {
+ global $xmax;
+ global $xmin;
+ global $ymax;
+ global $ymin;
+ global $zmin;
+ global $zmax;
+ global $nxpoints;
+ global $nypoints;
+ global $p3;
+
+ $p3->clear(BLACK);
+ $p3->start();
+ $dx = 1.0*($xmax-$xmin)/$nxpoints;
+ $dy = 1.0*($ymax-$ymin)/$nypoints;
+ $cscale = 240.0/($zmax-$zmin);
+ $x = $xmin;
+ for ($i = 0; $i < $nxpoints; $i++) {
+ $y = $ymin;
+ for ($j = 0; $j < $nypoints; $j++) {
+ $z1 = func($x,$y);
+ $z2 = func($x+$dx,$y);
+ $z3 = func($x+$dx,$y+$dy);
+ $z4 = func($x,$y+$dy);
+ $c1 = $cscale*($z1-$zmin);
+ $c2 = $cscale*($z2-$zmin);
+ $c3 = $cscale*($z3-$zmin);
+ $c4 = $cscale*($z4-$zmin);
+ $c = ($c1+$c2+$c3+$c4)/4;
+ if ($c < 0) { $c = 0; }
+ if ($c > 239) { $c = 239; }
+ $p3->solidquad($x,$y,$z1,$x+$dx,$y,$z2,$x+$dx,$y+$dy,$z3,$x,$y+$dy,$z4,$c+16);
+ $y = $y + $dy;
+ }
+ $x = $x + $dx;
+ }
+}
+
+print "Making a nice 3D plot...\n";
+drawsolid();
+
+$frame->writeGIF($cmap,"image.gif");
+print "Wrote image.gif\n";
+
+?>
diff --git a/Examples/GIFPlot/Php/simple/Makefile b/Examples/GIFPlot/Php/simple/Makefile
new file mode 100644
index 0000000..e60b641
--- /dev/null
+++ b/Examples/GIFPlot/Php/simple/Makefile
@@ -0,0 +1,20 @@
+TOP = ../../..
+SWIG = $(TOP)/../swig
+SWIGOPT = -noproxy
+SRCS =
+TARGET = php_simple
+INTERFACE = simple.i
+LIBS = -L../.. -lgifplot
+INCLUDES = -I../../Include
+
+all::
+ $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
+ INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
+ TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' php
+
+clean::
+ $(MAKE) -f $(TOP)/Makefile php_clean
+ rm -f *.gif
+ rm -f php_simple.h
+
+check: all
diff --git a/Examples/GIFPlot/Php/simple/README b/Examples/GIFPlot/Php/simple/README
new file mode 100644
index 0000000..c2c799a
--- /dev/null
+++ b/Examples/GIFPlot/Php/simple/README
@@ -0,0 +1,5 @@
+This is a very minimalistic example in which just a few functions
+and constants from library are wrapped and used to draw some simple
+shapes. The script 'runme.pl' runs the example.
+
+
diff --git a/Examples/GIFPlot/Php/simple/runme.php b/Examples/GIFPlot/Php/simple/runme.php
new file mode 100644
index 0000000..cf21a09
--- /dev/null
+++ b/Examples/GIFPlot/Php/simple/runme.php
@@ -0,0 +1,32 @@
+<?
+
+# Draw some simple shapes
+print "Drawing some basic shapes\n";
+
+require "simple.php";
+
+$cmap = new_ColorMap();
+$f = new_FrameBuffer(400,400);
+
+# Clear the picture
+FrameBuffer_clear($f,BLACK);
+
+# Make a red box
+FrameBuffer_box($f,40,40,200,200,RED);
+
+# Make a blue circle
+FrameBuffer_circle($f,200,200,40,BLUE);
+
+# Make green line
+FrameBuffer_line($f,10,390,390,200, GREEN);
+
+# Write an image out to disk
+
+FrameBuffer_writeGIF($f,$cmap,"image.gif");
+print "Wrote image.gif\n";
+
+delete_FrameBuffer($f);
+delete_ColorMap($cmap);
+
+?>
+
diff --git a/Examples/GIFPlot/Php/simple/simple.i b/Examples/GIFPlot/Php/simple/simple.i
new file mode 100644
index 0000000..457bc4c
--- /dev/null
+++ b/Examples/GIFPlot/Php/simple/simple.i
@@ -0,0 +1,38 @@
+/* This example shows a very simple interface wrapping a few
+ primitive declarations */
+
+%module simple
+%{
+#include "gifplot.h"
+%}
+
+typedef unsigned char Pixel;
+
+/* Here are a few useful functions */
+
+ColorMap *new_ColorMap(char *filename = 0);
+void delete_ColorMap(ColorMap *cmap);
+
+FrameBuffer *new_FrameBuffer(unsigned int width, unsigned int height);
+void delete_FrameBuffer(FrameBuffer *frame);
+void FrameBuffer_clear(FrameBuffer *frame, Pixel color);
+void FrameBuffer_line(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color);
+void FrameBuffer_box(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color);
+void FrameBuffer_circle(FrameBuffer *frame, int x1, int y1, int radius, Pixel color);
+int FrameBuffer_writeGIF(FrameBuffer *f, ColorMap *c, char *filename);
+
+/* And some useful constants */
+
+#define BLACK 0
+#define WHITE 1
+#define RED 2
+#define GREEN 3
+#define BLUE 4
+#define YELLOW 5
+#define CYAN 6
+#define MAGENTA 7
+
+
+
+
+