diff options
| author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2009-08-18 20:56:02 +0000 |
|---|---|---|
| committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-09-25 16:59:08 +0000 |
| commit | 9f8a09ed743cedd9547bf0661d518647966ab114 (patch) | |
| tree | 9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/GIFPlot/Python | |
| download | swig-tarball-master.tar.gz | |
Imported from /srv/lorry/lorry-area/swig-tarball/swig-1.3.40.tar.gz.HEADswig-1.3.40master
Diffstat (limited to 'Examples/GIFPlot/Python')
| -rw-r--r-- | Examples/GIFPlot/Python/check.list | 4 | ||||
| -rw-r--r-- | Examples/GIFPlot/Python/full/Makefile | 26 | ||||
| -rw-r--r-- | Examples/GIFPlot/Python/full/README | 8 | ||||
| -rw-r--r-- | Examples/GIFPlot/Python/full/cmap | bin | 0 -> 768 bytes | |||
| -rw-r--r-- | Examples/GIFPlot/Python/full/gifplot.i | 15 | ||||
| -rw-r--r-- | Examples/GIFPlot/Python/full/runme.py | 64 | ||||
| -rw-r--r-- | Examples/GIFPlot/Python/shadow/Makefile | 27 | ||||
| -rw-r--r-- | Examples/GIFPlot/Python/shadow/README | 8 | ||||
| -rw-r--r-- | Examples/GIFPlot/Python/shadow/cmap | bin | 0 -> 768 bytes | |||
| -rw-r--r-- | Examples/GIFPlot/Python/shadow/runme.py | 62 | ||||
| -rw-r--r-- | Examples/GIFPlot/Python/simple/Makefile | 26 | ||||
| -rw-r--r-- | Examples/GIFPlot/Python/simple/README | 5 | ||||
| -rw-r--r-- | Examples/GIFPlot/Python/simple/runme.py | 27 | ||||
| -rw-r--r-- | Examples/GIFPlot/Python/simple/simple.i | 38 |
14 files changed, 310 insertions, 0 deletions
diff --git a/Examples/GIFPlot/Python/check.list b/Examples/GIFPlot/Python/check.list new file mode 100644 index 0000000..13de977 --- /dev/null +++ b/Examples/GIFPlot/Python/check.list @@ -0,0 +1,4 @@ +# see top-level Makefile.in +full +shadow +simple diff --git a/Examples/GIFPlot/Python/full/Makefile b/Examples/GIFPlot/Python/full/Makefile new file mode 100644 index 0000000..83a7c86 --- /dev/null +++ b/Examples/GIFPlot/Python/full/Makefile @@ -0,0 +1,26 @@ +TOP = ../../.. +SWIG = $(TOP)/../preinst-swig +SWIGOPT = -I../../Include +SRCS = +TARGET = gifplot +INTERFACE = gifplot.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)' python + +static:: + $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \ + INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \ + TARGET='mypython' INTERFACE='$(INTERFACE)' python_static + +clean:: + $(MAKE) -f $(TOP)/Makefile python_clean + rm -f $(TARGET).py + rm -f *.gif + +check: all + $(MAKE) -f $(TOP)/Makefile python_run diff --git a/Examples/GIFPlot/Python/full/README b/Examples/GIFPlot/Python/full/README new file mode 100644 index 0000000..52971e4 --- /dev/null +++ b/Examples/GIFPlot/Python/full/README @@ -0,0 +1,8 @@ +This example runs the entire gifplot.h header file through SWIG without +any changes. The script 'runme.py' 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/Python/full/cmap b/Examples/GIFPlot/Python/full/cmap Binary files differnew file mode 100644 index 0000000..a20c331 --- /dev/null +++ b/Examples/GIFPlot/Python/full/cmap diff --git a/Examples/GIFPlot/Python/full/gifplot.i b/Examples/GIFPlot/Python/full/gifplot.i new file mode 100644 index 0000000..5a7f500 --- /dev/null +++ b/Examples/GIFPlot/Python/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/Python/full/runme.py b/Examples/GIFPlot/Python/full/runme.py new file mode 100644 index 0000000..cb324c8 --- /dev/null +++ b/Examples/GIFPlot/Python/full/runme.py @@ -0,0 +1,64 @@ +# Plot a 3D function +# This example uses the low-level C interface. + +from _gifplot import * +from math import * + +# Here is the function to plot +def 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*max([xmax-xmin,ymax-ymin,zmax-zmin])) +Plot3D_autoperspective(p3,40) +Plot3D_rotu(p3,60) +Plot3D_rotr(p3,30) +Plot3D_rotd(p3,10) + +def drawsolid(): + 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 in xrange(0,nxpoints): + y = ymin + for j in xrange(0,nypoints): + 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 = int((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..." +drawsolid() + +FrameBuffer_writeGIF(frame,cmap,"image.gif") +print "Wrote image.gif" + diff --git a/Examples/GIFPlot/Python/shadow/Makefile b/Examples/GIFPlot/Python/shadow/Makefile new file mode 100644 index 0000000..3ae9a98 --- /dev/null +++ b/Examples/GIFPlot/Python/shadow/Makefile @@ -0,0 +1,27 @@ +TOP = ../../.. +SWIG = $(TOP)/../preinst-swig +SWIGOPT = -outcurrentdir +SRCS = +TARGET = gifplot +INTERFACEDIR = ../../Interface/ +INTERFACE = gifplot.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)' INTERFACEDIR='$(INTERFACEDIR)' python + +static:: + $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \ + INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \ + TARGET='mypython' INTERFACE='$(INTERFACE)' INTERFACEDIR='$(INTERFACEDIR)' python_static + +clean:: + $(MAKE) -f $(TOP)/Makefile python_clean + rm -f $(TARGET).py + rm -f *.gif + +check: all + $(MAKE) -f $(TOP)/Makefile python_run diff --git a/Examples/GIFPlot/Python/shadow/README b/Examples/GIFPlot/Python/shadow/README new file mode 100644 index 0000000..aa761e2 --- /dev/null +++ b/Examples/GIFPlot/Python/shadow/README @@ -0,0 +1,8 @@ +This example illustrates Python shadow classes. Take a look at +the file GIFPlot/Interface/gifplot.i + + + + + + diff --git a/Examples/GIFPlot/Python/shadow/cmap b/Examples/GIFPlot/Python/shadow/cmap Binary files differnew file mode 100644 index 0000000..a20c331 --- /dev/null +++ b/Examples/GIFPlot/Python/shadow/cmap diff --git a/Examples/GIFPlot/Python/shadow/runme.py b/Examples/GIFPlot/Python/shadow/runme.py new file mode 100644 index 0000000..d914601 --- /dev/null +++ b/Examples/GIFPlot/Python/shadow/runme.py @@ -0,0 +1,62 @@ +# Plot a 3D function +import gifplot +from math import * + +# Here is the function to plot +def 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 = gifplot.ColorMap("cmap") +frame = gifplot.FrameBuffer(500,500) +frame.clear(gifplot.BLACK) + +p3 = gifplot.Plot3D(frame,xmin,ymin,zmin,xmax,ymax,zmax) +p3.lookat(2*max([xmax-xmin,ymax-ymin,zmax-zmin])) +p3.autoperspective(40) +p3.rotu(60) +p3.rotr(30) +p3.rotd(10) + +def drawsolid(): + p3.clear(gifplot.BLACK) + p3.start() + dx = 1.0*(xmax-xmin)/nxpoints + dy = 1.0*(ymax-ymin)/nypoints + cscale = 240.0/(zmax-zmin) + x = xmin + for i in xrange(0,nxpoints): + y = ymin + for j in xrange(0,nypoints): + 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 = int((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..." +drawsolid() + +frame.writeGIF(cmap,"image.gif") +print "Wrote image.gif" + diff --git a/Examples/GIFPlot/Python/simple/Makefile b/Examples/GIFPlot/Python/simple/Makefile new file mode 100644 index 0000000..9fc9a6c --- /dev/null +++ b/Examples/GIFPlot/Python/simple/Makefile @@ -0,0 +1,26 @@ +TOP = ../../.. +SWIG = $(TOP)/../preinst-swig +SWIGOPT = +SRCS = +TARGET = 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)' python + +static:: + $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \ + INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \ + TARGET='mypython' INTERFACE='$(INTERFACE)' python_static + +clean:: + $(MAKE) -f $(TOP)/Makefile python_clean + rm -f $(TARGET).py + rm -f *.gif + +check: all + $(MAKE) -f $(TOP)/Makefile python_run diff --git a/Examples/GIFPlot/Python/simple/README b/Examples/GIFPlot/Python/simple/README new file mode 100644 index 0000000..22152c6 --- /dev/null +++ b/Examples/GIFPlot/Python/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.py' runs the example. + + diff --git a/Examples/GIFPlot/Python/simple/runme.py b/Examples/GIFPlot/Python/simple/runme.py new file mode 100644 index 0000000..dade677 --- /dev/null +++ b/Examples/GIFPlot/Python/simple/runme.py @@ -0,0 +1,27 @@ +# Draw some simple shapes +print "Drawing some basic shapes" +import simple + +cmap = simple.new_ColorMap() +f = simple.new_FrameBuffer(400,400) + +# Clear the picture +simple.FrameBuffer_clear(f,simple.BLACK) + +# Make a red box +simple.FrameBuffer_box(f,40,40,200,200,simple.RED) + +# Make a blue circle +simple.FrameBuffer_circle(f,200,200,40,simple.BLUE) + +# Make green line +simple.FrameBuffer_line(f,10,390,390,200, simple.GREEN) + +# Write an image out to disk + +simple.FrameBuffer_writeGIF(f,cmap,"image.gif") +print "Wrote image.gif" + +simple.delete_FrameBuffer(f) +simple.delete_ColorMap(cmap) + diff --git a/Examples/GIFPlot/Python/simple/simple.i b/Examples/GIFPlot/Python/simple/simple.i new file mode 100644 index 0000000..457bc4c --- /dev/null +++ b/Examples/GIFPlot/Python/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 + + + + + |
