diff options
Diffstat (limited to 'Examples/GIFPlot/Java/full')
| -rw-r--r-- | Examples/GIFPlot/Java/full/Makefile | 20 | ||||
| -rw-r--r-- | Examples/GIFPlot/Java/full/README | 8 | ||||
| -rw-r--r-- | Examples/GIFPlot/Java/full/cmap | bin | 0 -> 768 bytes | |||
| -rw-r--r-- | Examples/GIFPlot/Java/full/gifplot.i | 15 | ||||
| -rw-r--r-- | Examples/GIFPlot/Java/full/runme.java | 75 |
5 files changed, 118 insertions, 0 deletions
diff --git a/Examples/GIFPlot/Java/full/Makefile b/Examples/GIFPlot/Java/full/Makefile new file mode 100644 index 0000000..8f16723 --- /dev/null +++ b/Examples/GIFPlot/Java/full/Makefile @@ -0,0 +1,20 @@ +TOP = ../../.. +SWIG = $(TOP)/../swig +SWIGOPT = -I../../Include -noproxy +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)' java + javac *.java + +clean:: + $(MAKE) -f $(TOP)/Makefile java_clean + rm -f *.gif + +check: all diff --git a/Examples/GIFPlot/Java/full/README b/Examples/GIFPlot/Java/full/README new file mode 100644 index 0000000..93463ea --- /dev/null +++ b/Examples/GIFPlot/Java/full/README @@ -0,0 +1,8 @@ +This example runs the entire gifplot.h header file through SWIG without +any changes. The program 'runme.java' does something a little more +interesting. After doing a make, run it using 'java runme'. You'll have to go +look at the header file to get a complete listing of the functions. + +Note the differences in the runme.java files between this example and the +'full' example. This example does not use shadow classes. + diff --git a/Examples/GIFPlot/Java/full/cmap b/Examples/GIFPlot/Java/full/cmap Binary files differnew file mode 100644 index 0000000..a20c331 --- /dev/null +++ b/Examples/GIFPlot/Java/full/cmap diff --git a/Examples/GIFPlot/Java/full/gifplot.i b/Examples/GIFPlot/Java/full/gifplot.i new file mode 100644 index 0000000..5a7f500 --- /dev/null +++ b/Examples/GIFPlot/Java/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/Java/full/runme.java b/Examples/GIFPlot/Java/full/runme.java new file mode 100644 index 0000000..c47c1e6 --- /dev/null +++ b/Examples/GIFPlot/Java/full/runme.java @@ -0,0 +1,75 @@ +// Plot a 3D function +import java.lang.Math; + +public class runme { + + static { + try { + System.loadLibrary("gifplot"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String argv[]) { + + // Here are some plotting parameters + double xmin = -5.0; + double xmax = 5.0; + double ymin = -5.0; + double ymax = 5.0; + double zmin = -5.0; + double zmax = 5.0; + + // Grid resolution + int nxpoints = 60; + int nypoints = 60; + + SWIGTYPE_p_ColorMap cmap = gifplot.new_ColorMap("cmap"); + SWIGTYPE_p_FrameBuffer frame = gifplot.new_FrameBuffer(500,500); + gifplot.FrameBuffer_clear(frame,(short)gifplot.BLACK); + + SWIGTYPE_p_Plot3D p3 = gifplot.new_Plot3D(frame,xmin,ymin,zmin,xmax,ymax,zmax); + gifplot.Plot3D_lookat(p3,2*(zmax-zmin)); + gifplot.Plot3D_autoperspective(p3,40); + gifplot.Plot3D_rotu(p3,60); + gifplot.Plot3D_rotr(p3,30); + gifplot.Plot3D_rotd(p3,10); + + System.out.println( "Making a nice 3D plot..." ); + gifplot.Plot3D_clear(p3,(short)gifplot.BLACK); + gifplot.Plot3D_start(p3); + double dx = 1.0*(xmax-xmin)/nxpoints; + double dy = 1.0*(ymax-ymin)/nypoints; + double cscale = 240.0/(zmax-zmin); + double x = xmin; + for (int i = 0; i < nxpoints; i++) { + double y = ymin; + for (int j = 0; j < nypoints; j++) { + double z1 = func(x,y); + double z2 = func(x+dx,y); + double z3 = func(x+dx,y+dy); + double z4 = func(x,y+dy); + double c1 = cscale*(z1-zmin); + double c2 = cscale*(z2-zmin); + double c3 = cscale*(z3-zmin); + double c4 = cscale*(z4-zmin); + double c = (c1+c2+c3+c4)/4; + if (c < 0) c = 0; + if (c > 239) c = 239; + gifplot.Plot3D_solidquad(p3,x,y,z1,x+dx,y,z2,x+dx,y+dy,z3,x,y+dy,z4,(short)(c+16)); + y = y + dy; + } + x = x + dx; + } + + gifplot.FrameBuffer_writeGIF(frame,cmap,"image.gif"); + System.out.println( "Wrote image.gif" ); + } + + // Here is the function to plot + public static double func(double x, double y) { + return 5*java.lang.Math.cos(2*java.lang.Math.sqrt(x*x+y*y))*java.lang.Math.exp(-0.3*java.lang.Math.sqrt(x*x+y*y)); + } +} |
