diff options
Diffstat (limited to 'Examples/GIFPlot/Php')
| -rw-r--r-- | Examples/GIFPlot/Php/check.list | 3 | ||||
| -rw-r--r-- | Examples/GIFPlot/Php/full/Makefile | 20 | ||||
| -rw-r--r-- | Examples/GIFPlot/Php/full/README | 4 | ||||
| -rw-r--r-- | Examples/GIFPlot/Php/full/cmap | bin | 0 -> 768 bytes | |||
| -rw-r--r-- | Examples/GIFPlot/Php/full/gifplot.i | 15 | ||||
| -rw-r--r-- | Examples/GIFPlot/Php/full/runme.php | 78 | ||||
| -rw-r--r-- | Examples/GIFPlot/Php/shadow/Makefile | 19 | ||||
| -rw-r--r-- | Examples/GIFPlot/Php/shadow/README | 2 | ||||
| -rw-r--r-- | Examples/GIFPlot/Php/shadow/cmap | bin | 0 -> 768 bytes | |||
| -rw-r--r-- | Examples/GIFPlot/Php/shadow/runme.php | 79 | ||||
| -rw-r--r-- | Examples/GIFPlot/Php/simple/Makefile | 20 | ||||
| -rw-r--r-- | Examples/GIFPlot/Php/simple/README | 5 | ||||
| -rw-r--r-- | Examples/GIFPlot/Php/simple/runme.php | 32 | ||||
| -rw-r--r-- | Examples/GIFPlot/Php/simple/simple.i | 38 |
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 Binary files differnew file mode 100644 index 0000000..a20c331 --- /dev/null +++ b/Examples/GIFPlot/Php/full/cmap 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 Binary files differnew file mode 100644 index 0000000..a20c331 --- /dev/null +++ b/Examples/GIFPlot/Php/shadow/cmap 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 + + + + + |
