summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2010-02-27 23:26:02 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2010-02-27 23:26:02 +0000
commit4308dd03cfd1356c41830860824063a429db0fd5 (patch)
tree7d2c8f2656fa1afa2a0e8687bf1431d1b26df079
parent283bb830bd1f9eb87ae2d957d4095c5de47a0bf9 (diff)
downloadswig-4308dd03cfd1356c41830860824063a429db0fd5.tar.gz
SWIG license change - The Examples and Lib move to a very permissive license in the LICENSE file, removing the BSD license restrictions as agreed by committers since it was inadvertently introduced. Remove some examples where the impact of the license change is not clear.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11874 626c5289-ae23-0410-ae9c-e8d60b6d4f22
-rw-r--r--Examples/GIFPlot/Chicken/check.list3
-rw-r--r--Examples/GIFPlot/Chicken/full/Makefile28
-rw-r--r--Examples/GIFPlot/Chicken/full/README6
-rw-r--r--Examples/GIFPlot/Chicken/full/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Chicken/full/gifplot.i26
-rw-r--r--Examples/GIFPlot/Chicken/full/test-gifplot.scm66
-rw-r--r--Examples/GIFPlot/Chicken/simple/Makefile28
-rw-r--r--Examples/GIFPlot/Chicken/simple/README5
-rw-r--r--Examples/GIFPlot/Chicken/simple/simple.i34
-rw-r--r--Examples/GIFPlot/Chicken/simple/test-simple.scm29
-rw-r--r--Examples/GIFPlot/Common-Lisp/full/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Common-Lisp/full/gifplot.i21
-rw-r--r--Examples/GIFPlot/Common-Lisp/full/runme.lisp59
-rw-r--r--Examples/GIFPlot/Guile/check.list3
-rw-r--r--Examples/GIFPlot/Guile/full/Makefile28
-rw-r--r--Examples/GIFPlot/Guile/full/README8
-rw-r--r--Examples/GIFPlot/Guile/full/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Guile/full/gifplot.i21
-rw-r--r--Examples/GIFPlot/Guile/full/runme.scm66
-rw-r--r--Examples/GIFPlot/Guile/simple/Makefile28
-rw-r--r--Examples/GIFPlot/Guile/simple/README11
-rw-r--r--Examples/GIFPlot/Guile/simple/runme.scm30
-rw-r--r--Examples/GIFPlot/Guile/simple/simple.i34
-rw-r--r--Examples/GIFPlot/Include/gifplot.h333
-rw-r--r--Examples/GIFPlot/Interface/gifplot.i264
-rw-r--r--Examples/GIFPlot/Java/check.list4
-rw-r--r--Examples/GIFPlot/Java/full/Makefile20
-rw-r--r--Examples/GIFPlot/Java/full/README8
-rw-r--r--Examples/GIFPlot/Java/full/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Java/full/gifplot.i15
-rw-r--r--Examples/GIFPlot/Java/full/runme.java75
-rw-r--r--Examples/GIFPlot/Java/shadow/Makefile21
-rw-r--r--Examples/GIFPlot/Java/shadow/README5
-rw-r--r--Examples/GIFPlot/Java/shadow/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Java/shadow/runme.java76
-rw-r--r--Examples/GIFPlot/Java/simple/Makefile21
-rw-r--r--Examples/GIFPlot/Java/simple/README5
-rw-r--r--Examples/GIFPlot/Java/simple/runme.java41
-rw-r--r--Examples/GIFPlot/Java/simple/simple.i38
-rw-r--r--Examples/GIFPlot/Lib/Makefile.in22
-rw-r--r--Examples/GIFPlot/Lib/color.c143
-rw-r--r--Examples/GIFPlot/Lib/font.c705
-rw-r--r--Examples/GIFPlot/Lib/frame.c924
-rw-r--r--Examples/GIFPlot/Lib/gif.c672
-rw-r--r--Examples/GIFPlot/Lib/matrix.c343
-rw-r--r--Examples/GIFPlot/Lib/pixmap.c159
-rw-r--r--Examples/GIFPlot/Lib/plot2d.c445
-rw-r--r--Examples/GIFPlot/Lib/plot3d.c2181
-rw-r--r--Examples/GIFPlot/Makefile.in23
-rw-r--r--Examples/GIFPlot/Ocaml/check.list3
-rw-r--r--Examples/GIFPlot/Ocaml/full/Makefile33
-rw-r--r--Examples/GIFPlot/Ocaml/full/README8
-rw-r--r--Examples/GIFPlot/Ocaml/full/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Ocaml/full/gifplot.i15
-rw-r--r--Examples/GIFPlot/Ocaml/full/runme.ml87
-rw-r--r--Examples/GIFPlot/Ocaml/simple/Makefile33
-rw-r--r--Examples/GIFPlot/Ocaml/simple/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Ocaml/simple/runme.ml35
-rw-r--r--Examples/GIFPlot/Ocaml/simple/simple.i33
-rw-r--r--Examples/GIFPlot/Perl5/check.list4
-rw-r--r--Examples/GIFPlot/Perl5/full/Makefile24
-rw-r--r--Examples/GIFPlot/Perl5/full/README8
-rw-r--r--Examples/GIFPlot/Perl5/full/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Perl5/full/gifplot.i15
-rw-r--r--Examples/GIFPlot/Perl5/full/runme.pl68
-rw-r--r--Examples/GIFPlot/Perl5/shadow/Makefile25
-rw-r--r--Examples/GIFPlot/Perl5/shadow/README2
-rw-r--r--Examples/GIFPlot/Perl5/shadow/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Perl5/shadow/runme.pl68
-rw-r--r--Examples/GIFPlot/Perl5/simple/Makefile24
-rw-r--r--Examples/GIFPlot/Perl5/simple/README5
-rw-r--r--Examples/GIFPlot/Perl5/simple/runme.pl28
-rw-r--r--Examples/GIFPlot/Perl5/simple/simple.i38
-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/cmapbin768 -> 0 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/cmapbin768 -> 0 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
-rw-r--r--Examples/GIFPlot/Pike/check.list2
-rw-r--r--Examples/GIFPlot/Pike/simple/Makefile24
-rw-r--r--Examples/GIFPlot/Pike/simple/README5
-rw-r--r--Examples/GIFPlot/Pike/simple/runme.pike30
-rw-r--r--Examples/GIFPlot/Pike/simple/simple.i38
-rw-r--r--Examples/GIFPlot/Python/check.list4
-rw-r--r--Examples/GIFPlot/Python/full/Makefile26
-rw-r--r--Examples/GIFPlot/Python/full/README8
-rw-r--r--Examples/GIFPlot/Python/full/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Python/full/gifplot.i15
-rw-r--r--Examples/GIFPlot/Python/full/runme.py64
-rw-r--r--Examples/GIFPlot/Python/shadow/Makefile27
-rw-r--r--Examples/GIFPlot/Python/shadow/README8
-rw-r--r--Examples/GIFPlot/Python/shadow/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Python/shadow/runme.py62
-rw-r--r--Examples/GIFPlot/Python/simple/Makefile26
-rw-r--r--Examples/GIFPlot/Python/simple/README5
-rw-r--r--Examples/GIFPlot/Python/simple/runme.py27
-rw-r--r--Examples/GIFPlot/Python/simple/simple.i38
-rw-r--r--Examples/GIFPlot/README59
-rw-r--r--Examples/GIFPlot/Ruby/check.list4
-rw-r--r--Examples/GIFPlot/Ruby/full/Makefile24
-rw-r--r--Examples/GIFPlot/Ruby/full/README8
-rw-r--r--Examples/GIFPlot/Ruby/full/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Ruby/full/gifplot.i15
-rw-r--r--Examples/GIFPlot/Ruby/full/runme.rb66
-rw-r--r--Examples/GIFPlot/Ruby/shadow/Makefile25
-rw-r--r--Examples/GIFPlot/Ruby/shadow/README5
-rw-r--r--Examples/GIFPlot/Ruby/shadow/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Ruby/shadow/runme.rb66
-rw-r--r--Examples/GIFPlot/Ruby/simple/Makefile24
-rw-r--r--Examples/GIFPlot/Ruby/simple/README5
-rw-r--r--Examples/GIFPlot/Ruby/simple/runme.rb27
-rw-r--r--Examples/GIFPlot/Ruby/simple/simple.i38
-rw-r--r--Examples/GIFPlot/Tcl/check.list4
-rw-r--r--Examples/GIFPlot/Tcl/full/Makefile24
-rw-r--r--Examples/GIFPlot/Tcl/full/README8
-rw-r--r--Examples/GIFPlot/Tcl/full/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Tcl/full/gifplot.i15
-rw-r--r--Examples/GIFPlot/Tcl/full/runme.tcl67
-rw-r--r--Examples/GIFPlot/Tcl/mandel/Makefile24
-rw-r--r--Examples/GIFPlot/Tcl/mandel/README6
-rw-r--r--Examples/GIFPlot/Tcl/mandel/cmapbin768 -> 0 bytes
-rw-r--r--Examples/GIFPlot/Tcl/mandel/display.tcl68
-rw-r--r--Examples/GIFPlot/Tcl/mandel/mandel.i47
-rw-r--r--Examples/GIFPlot/Tcl/mandel/mandel.tcl170
-rw-r--r--Examples/GIFPlot/Tcl/simple/Makefile24
-rw-r--r--Examples/GIFPlot/Tcl/simple/README5
-rw-r--r--Examples/GIFPlot/Tcl/simple/runme.tcl27
-rw-r--r--Examples/GIFPlot/Tcl/simple/simple.i38
-rw-r--r--Examples/chicken/zlib/Makefile28
-rw-r--r--Examples/chicken/zlib/README.html1666
-rw-r--r--Examples/chicken/zlib/example.i76
-rw-r--r--Examples/chicken/zlib/test-zlib.scm41
-rw-r--r--Examples/guile/check.list1
-rw-r--r--Examples/lua/lua.c1
-rw-r--r--Examples/test-suite/csharp/li_std_map_runme.cs5
-rw-r--r--Examples/test-suite/li_std_queue.i11
-rw-r--r--Examples/test-suite/li_std_set.i22
-rw-r--r--Examples/test-suite/li_std_stack.i11
-rwxr-xr-xExamples/test-suite/ruby/ruby_li_std_speed_runme.rb3
-rw-r--r--Examples/test-suite/ruby_li_std_speed.i11
-rw-r--r--Examples/xml/example_gif.i329
-rw-r--r--Lib/allegrocl/allegrocl.swg2
-rw-r--r--Lib/allegrocl/longlongs.i3
-rw-r--r--Lib/allegrocl/std_list.i3
-rw-r--r--Lib/allegrocl/std_string.i3
-rw-r--r--Lib/attribute.i3
-rw-r--r--Lib/carrays.i3
-rw-r--r--Lib/cdata.i3
-rw-r--r--Lib/chicken/chicken.swg3
-rw-r--r--Lib/chicken/chickenrun.swg4
-rw-r--r--Lib/chicken/multi-generic.scm2
-rw-r--r--Lib/chicken/std_string.i3
-rw-r--r--Lib/chicken/typemaps.i3
-rw-r--r--Lib/clisp/clisp.swg3
-rw-r--r--Lib/cmalloc.i3
-rw-r--r--Lib/constraints.i3
-rw-r--r--Lib/cpointer.i3
-rw-r--r--Lib/csharp/arrays_csharp.i3
-rw-r--r--Lib/csharp/csharp.swg3
-rw-r--r--Lib/csharp/csharphead.swg3
-rw-r--r--Lib/csharp/director.swg3
-rw-r--r--Lib/csharp/enums.swg3
-rw-r--r--Lib/csharp/enumsimple.swg3
-rw-r--r--Lib/csharp/enumtypesafe.swg3
-rw-r--r--Lib/csharp/std_except.i3
-rw-r--r--Lib/csharp/std_map.i3
-rw-r--r--Lib/csharp/std_pair.i3
-rw-r--r--Lib/csharp/std_string.i3
-rw-r--r--Lib/csharp/std_vector.i3
-rw-r--r--Lib/csharp/std_wstring.i3
-rw-r--r--Lib/csharp/stl.i3
-rw-r--r--Lib/csharp/typemaps.i3
-rw-r--r--Lib/csharp/wchar.i3
-rw-r--r--Lib/cstring.i3
-rw-r--r--Lib/cwstring.i3
-rw-r--r--Lib/exception.i3
-rw-r--r--Lib/gcj/cni.swg3
-rw-r--r--Lib/guile/common.scm6
-rw-r--r--Lib/guile/cplusplus.i3
-rw-r--r--Lib/guile/guile.i3
-rw-r--r--Lib/guile/guile_gh.swg3
-rw-r--r--Lib/guile/guile_gh_run.swg3
-rw-r--r--Lib/guile/guile_scm.swg3
-rw-r--r--Lib/guile/guile_scm_run.swg3
-rw-r--r--Lib/guile/guilemain.i3
-rw-r--r--Lib/guile/interpreter.i3
-rw-r--r--Lib/guile/list-vector.i3
-rw-r--r--Lib/guile/pointer-in-out.i3
-rw-r--r--Lib/guile/ports.i3
-rw-r--r--Lib/guile/std_common.i3
-rw-r--r--Lib/guile/std_map.i3
-rw-r--r--Lib/guile/std_pair.i3
-rw-r--r--Lib/guile/std_string.i3
-rw-r--r--Lib/guile/std_vector.i3
-rw-r--r--Lib/guile/stl.i3
-rw-r--r--Lib/guile/typemaps.i3
-rw-r--r--Lib/inttypes.i3
-rw-r--r--Lib/java/arrays_java.i3
-rw-r--r--Lib/java/director.swg3
-rw-r--r--Lib/java/enums.swg3
-rw-r--r--Lib/java/enumsimple.swg3
-rw-r--r--Lib/java/enumtypesafe.swg3
-rw-r--r--Lib/java/enumtypeunsafe.swg3
-rw-r--r--Lib/java/java.swg3
-rw-r--r--Lib/java/javahead.swg3
-rw-r--r--Lib/java/std_except.i3
-rw-r--r--Lib/java/std_map.i3
-rw-r--r--Lib/java/std_pair.i3
-rw-r--r--Lib/java/std_string.i3
-rw-r--r--Lib/java/std_vector.i3
-rw-r--r--Lib/java/std_wstring.i3
-rw-r--r--Lib/java/stl.i3
-rw-r--r--Lib/java/typemaps.i3
-rw-r--r--Lib/java/various.i3
-rw-r--r--Lib/lua/_std_common.i3
-rw-r--r--Lib/lua/lua.swg3
-rw-r--r--Lib/lua/lua_fnptr.i3
-rw-r--r--Lib/lua/luarun.swg3
-rw-r--r--Lib/lua/luaruntime.swg3
-rw-r--r--Lib/lua/luatypemaps.swg3
-rw-r--r--Lib/lua/std_except.i3
-rw-r--r--Lib/lua/std_map.i3
-rw-r--r--Lib/lua/std_pair.i3
-rw-r--r--Lib/lua/std_string.i3
-rw-r--r--Lib/lua/std_vector.i3
-rw-r--r--Lib/lua/stl.i3
-rw-r--r--Lib/lua/typemaps.i3
-rw-r--r--Lib/lua/wchar.i6
-rw-r--r--Lib/math.i3
-rw-r--r--Lib/modula3/modula3.swg3
-rw-r--r--Lib/modula3/modula3head.swg3
-rw-r--r--Lib/modula3/typemaps.i3
-rw-r--r--Lib/mzscheme/mzrun.swg3
-rw-r--r--Lib/mzscheme/mzscheme.swg3
-rw-r--r--Lib/mzscheme/std_common.i3
-rw-r--r--Lib/mzscheme/std_map.i3
-rw-r--r--Lib/mzscheme/std_pair.i3
-rw-r--r--Lib/mzscheme/std_string.i3
-rw-r--r--Lib/mzscheme/std_vector.i3
-rw-r--r--Lib/mzscheme/stl.i3
-rw-r--r--Lib/mzscheme/typemaps.i3
-rw-r--r--Lib/ocaml/cstring.i3
-rw-r--r--Lib/ocaml/director.swg3
-rw-r--r--Lib/ocaml/ocaml.i3
-rw-r--r--Lib/ocaml/ocamldec.swg3
-rw-r--r--Lib/ocaml/std_common.i3
-rw-r--r--Lib/ocaml/std_deque.i3
-rw-r--r--Lib/ocaml/std_list.i3
-rw-r--r--Lib/ocaml/std_map.i3
-rw-r--r--Lib/ocaml/std_pair.i3
-rw-r--r--Lib/ocaml/std_string.i3
-rw-r--r--Lib/ocaml/std_vector.i3
-rw-r--r--Lib/ocaml/stl.i3
-rw-r--r--Lib/ocaml/typecheck.i3
-rw-r--r--Lib/ocaml/typemaps.i3
-rw-r--r--Lib/octave/octcontainer.swg3
-rw-r--r--Lib/octave/octiterators.swg3
-rw-r--r--Lib/perl5/perlmain.i3
-rw-r--r--Lib/perl5/reference.i3
-rw-r--r--Lib/perl5/std_common.i3
-rw-r--r--Lib/perl5/std_list.i3
-rw-r--r--Lib/perl5/std_map.i3
-rw-r--r--Lib/perl5/std_pair.i3
-rw-r--r--Lib/perl5/std_vector.i3
-rw-r--r--Lib/perl5/stl.i3
-rw-r--r--Lib/perl5/typemaps.i3
-rw-r--r--Lib/php/const.i3
-rw-r--r--Lib/php/director.swg3
-rw-r--r--Lib/php/globalvar.i3
-rw-r--r--Lib/php/php.swg3
-rw-r--r--Lib/php/phpkw.swg3
-rw-r--r--Lib/php/phprun.swg3
-rw-r--r--Lib/php/std_common.i3
-rw-r--r--Lib/php/std_map.i3
-rw-r--r--Lib/php/std_pair.i3
-rw-r--r--Lib/php/std_string.i3
-rw-r--r--Lib/php/std_vector.i3
-rw-r--r--Lib/php/stl.i3
-rw-r--r--Lib/php/typemaps.i3
-rw-r--r--Lib/pike/pike.swg3
-rw-r--r--Lib/pike/pikerun.swg3
-rw-r--r--Lib/pike/std_string.i3
-rw-r--r--Lib/pointer.i3
-rw-r--r--Lib/python/ccomplex.i3
-rw-r--r--Lib/python/director.swg3
-rw-r--r--Lib/python/embed15.i3
-rw-r--r--Lib/python/file.i4
-rw-r--r--Lib/python/pycontainer.swg3
-rw-r--r--Lib/python/pyiterators.swg3
-rw-r--r--Lib/python/pyrun.swg3
-rw-r--r--Lib/python/typemaps.i3
-rw-r--r--Lib/ruby/director.swg3
-rw-r--r--Lib/ruby/rubyautodoc.swg15
-rw-r--r--Lib/ruby/rubycontainer.swg3
-rw-r--r--Lib/ruby/rubycontainer_extended.swg24
-rw-r--r--Lib/ruby/rubyiterators.swg3
-rw-r--r--Lib/ruby/rubyprimtypes.swg4
-rw-r--r--Lib/ruby/rubyrun.swg3
-rw-r--r--Lib/ruby/rubystdautodoc.swg12
-rw-r--r--Lib/ruby/rubytracking.swg3
-rw-r--r--Lib/ruby/rubywstrings.swg20
-rw-r--r--Lib/ruby/stl.i3
-rw-r--r--Lib/ruby/typemaps.i3
-rw-r--r--Lib/std/_std_deque.i3
-rw-r--r--Lib/std_except.i3
-rw-r--r--Lib/stdint.i3
-rw-r--r--Lib/stl.i3
-rw-r--r--Lib/swigarch.i3
-rw-r--r--Lib/swigrun.i3
-rw-r--r--Lib/tcl/mactclinit.c93
-rw-r--r--Lib/tcl/mactkinit.c3
-rw-r--r--Lib/tcl/std_common.i3
-rw-r--r--Lib/tcl/std_pair.i3
-rw-r--r--Lib/tcl/std_vector.i3
-rw-r--r--Lib/tcl/stl.i3
-rw-r--r--Lib/tcl/tcl8.swg3
-rw-r--r--Lib/tcl/tclinterp.i3
-rw-r--r--Lib/tcl/tclopers.swg3
-rw-r--r--Lib/tcl/tclresult.i3
-rw-r--r--Lib/tcl/tclrun.swg3
-rw-r--r--Lib/tcl/tclsh.i3
-rw-r--r--Lib/tcl/tclwstrings.swg3
-rw-r--r--Lib/tcl/typemaps.i3
-rw-r--r--Lib/tcl/wish.i3
-rw-r--r--Lib/typemaps/attribute.swg3
-rw-r--r--Lib/typemaps/carrays.swg3
-rw-r--r--Lib/typemaps/cdata.swg3
-rw-r--r--Lib/typemaps/cmalloc.swg3
-rw-r--r--Lib/typemaps/cpointer.swg3
-rw-r--r--Lib/typemaps/cstrings.swg3
-rw-r--r--Lib/typemaps/exception.swg3
-rw-r--r--Lib/typemaps/ptrtypes.swg3
-rw-r--r--Lib/typemaps/swigtypemaps.swg3
-rw-r--r--Lib/typemaps/typemaps.swg3
-rw-r--r--Lib/uffi/uffi.swg2
-rw-r--r--Lib/wchar.i3
-rw-r--r--Lib/windows.i3
346 files changed, 40 insertions, 12158 deletions
diff --git a/Examples/GIFPlot/Chicken/check.list b/Examples/GIFPlot/Chicken/check.list
deleted file mode 100644
index e75ee586a..000000000
--- a/Examples/GIFPlot/Chicken/check.list
+++ /dev/null
@@ -1,3 +0,0 @@
-# see top-level Makefile.in
-full
-simple
diff --git a/Examples/GIFPlot/Chicken/full/Makefile b/Examples/GIFPlot/Chicken/full/Makefile
deleted file mode 100644
index 2ae4fd7ea..000000000
--- a/Examples/GIFPlot/Chicken/full/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../preinst-swig
-INTERFACE = gifplot.i
-SRCS =
-CXXSRCS =
-TARGET = gifplot
-INCLUDE = -I. -I../../Include
-SWIGOPT = -I../../Include
-CFLAGS =
-VARIANT =
-LIBS = -L../.. -lgifplot -lm
-
-# comment the following two lines to build a dynamic so file
-CHICKEN_MAIN = test-gifplot.scm
-VARIANT = _static
-
-all:: $(TARGET)
-
-$(TARGET): $(INTERFACE) $(SRCS)
- $(MAKE) -f $(TOP)/Makefile \
- SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
- INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' LIBS='$(LIBS)' TARGET='$(TARGET)' \
- SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
-
-clean::
- $(MAKE) -f $(TOP)/Makefile chicken_clean
- rm -f gifplot.scm image.gif
- rm -f $(TARGET)
diff --git a/Examples/GIFPlot/Chicken/full/README b/Examples/GIFPlot/Chicken/full/README
deleted file mode 100644
index e5ddd7af1..000000000
--- a/Examples/GIFPlot/Chicken/full/README
+++ /dev/null
@@ -1,6 +0,0 @@
-This example runs the entire gifplot.h header file through SWIG without
-any changes. The Scheme program 'test-gifplot.scm' does something a
-little more interesting. You'll have to go look at the header file to
-get a complete listing of the functions.
-
-`make' will build a static binary. Run ./gifplot to test it.
diff --git a/Examples/GIFPlot/Chicken/full/cmap b/Examples/GIFPlot/Chicken/full/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Chicken/full/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Chicken/full/gifplot.i b/Examples/GIFPlot/Chicken/full/gifplot.i
deleted file mode 100644
index f6741864a..000000000
--- a/Examples/GIFPlot/Chicken/full/gifplot.i
+++ /dev/null
@@ -1,26 +0,0 @@
-/* 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"
-
-%}
-
-/* Pixel is typedef'd to unsigned char, and SWIG will translate this
- type into Scheme characters. We would like to translate Pixels to
- Scheme integers instead, so: */
-
-SIMPLE_TYPEMAP(Pixel, C_unfix, C_fix, C_swig_is_fixnum, (int), 0);
-
-%{
-static Pixel int_to_Pixel (int v) { return (Pixel) v; }
-%}
-extern Pixel int_to_Pixel (int v);
-
-%include gifplot.h
diff --git a/Examples/GIFPlot/Chicken/full/test-gifplot.scm b/Examples/GIFPlot/Chicken/full/test-gifplot.scm
deleted file mode 100644
index c290af54d..000000000
--- a/Examples/GIFPlot/Chicken/full/test-gifplot.scm
+++ /dev/null
@@ -1,66 +0,0 @@
-;;; Plot a 3D function
-
-(declare (uses gifplot))
-
-;; Here is the function to plot
-(define (func x y)
- (* 5
- (cos (* 2 (sqrt (+ (* x x) (* y y)))))
- (exp (* -0.3 (sqrt (+ (* x x) (* y y)))))))
-
-;; Here are some plotting parameters
-(define xmin -5.0)
-(define xmax 5.0)
-(define ymin -5.0)
-(define ymax 5.0)
-(define zmin -5.0)
-(define zmax 5.0)
-
-;; Grid resolution
-(define nxpoints 60)
-(define nypoints 60)
-
-(define cmap (gifplot:new-ColorMap "cmap"))
-(define frame (gifplot:new-FrameBuffer 500 500))
-(gifplot:FrameBuffer-clear frame (gifplot:BLACK))
-
-(define p3 (gifplot:new-Plot3D frame xmin ymin zmin xmax ymax zmax))
-(gifplot:Plot3D-lookat p3 (* 2 (- zmax zmin)))
-(gifplot:Plot3D-autoperspective p3 40.0)
-(gifplot:Plot3D-rotu p3 60.0)
-(gifplot:Plot3D-rotr p3 30.0)
-(gifplot:Plot3D-rotd p3 10.0)
-
-(define (drawsolid)
- (gifplot:Plot3D-clear p3 (gifplot:BLACK))
- (gifplot:Plot3D-start p3)
- (let ((dx (/ (- xmax xmin) nxpoints))
- (dy (/ (- ymax ymin) nypoints))
- (cscale (/ 240 (- zmax zmin))))
- (let x-loop ((x xmin) (i 0))
- (cond
- ((< i nxpoints)
- (let y-loop ((y ymin) (j 0))
- (cond
- ((< j nypoints)
- (let* ((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)))
- (cc (/ (+ c1 c2 c3 c4) 4))
- (c (inexact->exact (round (max (min cc 239) 0)))))
- (gifplot:Plot3D-solidquad p3 x y z1 (+ x dx) y z2 (+ x dx) (+ y dy)
- z3 x (+ y dy) z4
- (gifplot:int->Pixel (+ c 16))))
- (y-loop (+ y dy) (+ j 1)))))
- (x-loop (+ x dx) (+ i 1)))))))
-
-(display "Making a nice 3D plot...\n")
-(drawsolid)
-
-(gifplot:FrameBuffer-writeGIF frame cmap "image.gif")
-(display "Wrote image.gif\n")
diff --git a/Examples/GIFPlot/Chicken/simple/Makefile b/Examples/GIFPlot/Chicken/simple/Makefile
deleted file mode 100644
index 484e58390..000000000
--- a/Examples/GIFPlot/Chicken/simple/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../preinst-swig
-INTERFACE = simple.i
-SRCS =
-CXXSRCS =
-TARGET = simple
-INCLUDE = -I. -I../../Include
-SWIGOPT = -I../../Include
-CFLAGS =
-VARIANT =
-LIBS = -L../.. -lgifplot -lm
-
-# comment the following two lines to build a dynamic so file
-CHICKEN_MAIN = test-simple.scm
-VARIANT = _static
-
-all:: $(TARGET)
-
-$(TARGET): $(INTERFACE) $(SRCS)
- $(MAKE) -f $(TOP)/Makefile \
- SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
- INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' LIBS='$(LIBS)' TARGET='$(TARGET)' \
- SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
-
-clean::
- $(MAKE) -f $(TOP)/Makefile chicken_clean
- rm -f simple.scm image.gif
- rm -f $(TARGET)
diff --git a/Examples/GIFPlot/Chicken/simple/README b/Examples/GIFPlot/Chicken/simple/README
deleted file mode 100644
index 3b138f381..000000000
--- a/Examples/GIFPlot/Chicken/simple/README
+++ /dev/null
@@ -1,5 +0,0 @@
-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.
-
-`make' will build an exe. Run ./simple to test it.
diff --git a/Examples/GIFPlot/Chicken/simple/simple.i b/Examples/GIFPlot/Chicken/simple/simple.i
deleted file mode 100644
index 23ac8a856..000000000
--- a/Examples/GIFPlot/Chicken/simple/simple.i
+++ /dev/null
@@ -1,34 +0,0 @@
-/* This example shows a very simple interface wrapping a few
- primitive declarations */
-
-%module simple
-%{
-#include "gifplot.h"
-%}
-
-typedef unsigned int 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, which we redefine (from gifplot.h) so
- that SWIG sees them */
-#define BLACK 0
-#define WHITE 1
-#define RED 2
-#define GREEN 3
-#define BLUE 4
-#define YELLOW 5
-#define CYAN 6
-#define MAGENTA 7
-
diff --git a/Examples/GIFPlot/Chicken/simple/test-simple.scm b/Examples/GIFPlot/Chicken/simple/test-simple.scm
deleted file mode 100644
index 43250d8e9..000000000
--- a/Examples/GIFPlot/Chicken/simple/test-simple.scm
+++ /dev/null
@@ -1,29 +0,0 @@
-;;; Draw some simple shapes
-
-(declare (uses simple))
-
-(display "Drawing some basic shapes\n")
-
-(define cmap (simple:new-ColorMap #f))
-(define 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")
-(display "Wrote image.gif\n")
-
-(simple:delete-FrameBuffer f)
-(simple:delete-ColorMap cmap)
-
diff --git a/Examples/GIFPlot/Common-Lisp/full/cmap b/Examples/GIFPlot/Common-Lisp/full/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Common-Lisp/full/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Common-Lisp/full/gifplot.i b/Examples/GIFPlot/Common-Lisp/full/gifplot.i
deleted file mode 100644
index e5c15aa2b..000000000
--- a/Examples/GIFPlot/Common-Lisp/full/gifplot.i
+++ /dev/null
@@ -1,21 +0,0 @@
-/* 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"
-
-%}
-
-/* Pixel is typedef'd to unsigned char, and SWIG will translate this
- type into Scheme characters. We would like to translate Pixels to
- Scheme integers instead, so: */
-
-SIMPLE_MAP(Pixel, gh_scm2int, gh_int2scm, integer);
-
-%include gifplot.h
diff --git a/Examples/GIFPlot/Common-Lisp/full/runme.lisp b/Examples/GIFPlot/Common-Lisp/full/runme.lisp
deleted file mode 100644
index 48f804201..000000000
--- a/Examples/GIFPlot/Common-Lisp/full/runme.lisp
+++ /dev/null
@@ -1,59 +0,0 @@
-;;; Plot a 3D function
-
-;; Here is the function to plot
-(defun func (x y)
- (* 5
- (cos (* 2 (sqrt (+ (* x x) (* y y)))))
- (exp (* -0.3 (sqrt (+ (* x x) (* y y)))))))
-
-;; Here are some plotting parameters
-(defvar xmin -5D0)
-(defvar xmax 5D0)
-(defvar ymin -5D0)
-(defvar ymax 5D0)
-(defvar zmin -5D0)
-(defvar zmax 5D0)
-
-;; Grid resolution
-(defvar nxpoints 60)
-(defvar nypoints 60)
-
-(defun drawsolid (p3)
- (Plot3D-clear p3 0)
- (Plot3D-start p3)
- (let ((dx (/ (- xmax xmin) nxpoints))
- (dy (/ (- ymax ymin) nypoints))
- (cscale (/ 240 (- zmax zmin))))
- (loop for x from xmin by dx
- repeat nxpoints
- do (loop for y from ymin by dy
- repeat nypoints
- do (let* ((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)))
- (cc (/ (+ c1 c2 c3 c4) 4))
- (c (round (max (min cc 239) 0))))
- (Plot3D-solidquad p3 x y z1 (+ x dx) y z2 (+ x dx) (+ y dy)
- z3 x (+ y dy) z4 (+ c 16)))))))
-
-(defun action (cmap-filename)
- (let ((cmap (new-ColorMap cmap-filename))
- (frame (new-FrameBuffer 500 500)))
- (format t "Making a nice 3D plot...~%")
- (FrameBuffer-clear frame 0)
- (let ((p3 (new-Plot3D frame xmin ymin zmin xmax ymax zmax)))
- (Plot3D-lookat p3 (* 2 (- zmax zmin)))
- (Plot3D-autoperspective p3 40D0)
- (Plot3D-rotu p3 60D0)
- (Plot3D-rotr p3 30D0)
- (Plot3D-rotd p3 10D0)
- (drawsolid p3))
- (FrameBuffer-writeGIF frame cmap "/tmp/image.gif")
- (format t "Wrote image.gif~%")))
-
-
diff --git a/Examples/GIFPlot/Guile/check.list b/Examples/GIFPlot/Guile/check.list
deleted file mode 100644
index e75ee586a..000000000
--- a/Examples/GIFPlot/Guile/check.list
+++ /dev/null
@@ -1,3 +0,0 @@
-# see top-level Makefile.in
-full
-simple
diff --git a/Examples/GIFPlot/Guile/full/Makefile b/Examples/GIFPlot/Guile/full/Makefile
deleted file mode 100644
index 1fcdf58d2..000000000
--- a/Examples/GIFPlot/Guile/full/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../swig
-SWIGOPT = -I../../Include
-SRCS =
-TARGET = gifplot
-INTERFACE = gifplot.i
-LIBS = -L../.. -lgifplot -lm
-INCLUDES = -I../../Include
-
-all:: static
-
-dynamic::
- $(MAKE) -f $(TOP)/Makefile TOP='$(TOP)' \
- SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' guile
-
-static::
- $(MAKE) -f $(TOP)/Makefile TOP='$(TOP)' \
- SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' guile_static
-
-clean::
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' guile_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Guile/full/README b/Examples/GIFPlot/Guile/full/README
deleted file mode 100644
index 9780988d2..000000000
--- a/Examples/GIFPlot/Guile/full/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This example runs the entire gifplot.h header file through SWIG without
-any changes. The Scheme program 'runme.scm' 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/Guile/full/cmap b/Examples/GIFPlot/Guile/full/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Guile/full/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Guile/full/gifplot.i b/Examples/GIFPlot/Guile/full/gifplot.i
deleted file mode 100644
index e5c15aa2b..000000000
--- a/Examples/GIFPlot/Guile/full/gifplot.i
+++ /dev/null
@@ -1,21 +0,0 @@
-/* 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"
-
-%}
-
-/* Pixel is typedef'd to unsigned char, and SWIG will translate this
- type into Scheme characters. We would like to translate Pixels to
- Scheme integers instead, so: */
-
-SIMPLE_MAP(Pixel, gh_scm2int, gh_int2scm, integer);
-
-%include gifplot.h
diff --git a/Examples/GIFPlot/Guile/full/runme.scm b/Examples/GIFPlot/Guile/full/runme.scm
deleted file mode 100644
index 0ffe92167..000000000
--- a/Examples/GIFPlot/Guile/full/runme.scm
+++ /dev/null
@@ -1,66 +0,0 @@
-;;; Plot a 3D function
-
-;; Use the wrapped GIFPlot library
-(use-modules (gifplot))
-
-;; Here is the function to plot
-(define (func x y)
- (* 5
- (cos (* 2 (sqrt (+ (* x x) (* y y)))))
- (exp (* -0.3 (sqrt (+ (* x x) (* y y)))))))
-
-;; Here are some plotting parameters
-(define xmin -5.0)
-(define xmax 5.0)
-(define ymin -5.0)
-(define ymax 5.0)
-(define zmin -5.0)
-(define zmax 5.0)
-
-;; Grid resolution
-(define nxpoints 60)
-(define nypoints 60)
-
-(define cmap (new-ColorMap "cmap"))
-(define frame (new-FrameBuffer 500 500))
-(FrameBuffer-clear frame (BLACK))
-
-(define 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)
-
-(define (drawsolid)
- (Plot3D-clear p3 (BLACK))
- (Plot3D-start p3)
- (let ((dx (/ (- xmax xmin) nxpoints))
- (dy (/ (- ymax ymin) nypoints))
- (cscale (/ 240 (- zmax zmin))))
- (let x-loop ((x xmin) (i 0))
- (cond
- ((< i nxpoints)
- (let y-loop ((y ymin) (j 0))
- (cond
- ((< j nypoints)
- (let* ((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)))
- (cc (/ (+ c1 c2 c3 c4) 4))
- (c (round (max (min cc 239) 0))))
- (Plot3D-solidquad p3 x y z1 (+ x dx) y z2 (+ x dx) (+ y dy)
- z3 x (+ y dy) z4 (+ c 16)))
- (y-loop (+ y dy) (+ j 1)))))
- (x-loop (+ x dx) (+ i 1)))))))
-
-(display "Making a nice 3D plot...\n")
-(drawsolid)
-
-(FrameBuffer-writeGIF frame cmap "image.gif")
-(display "Wrote image.gif\n")
diff --git a/Examples/GIFPlot/Guile/simple/Makefile b/Examples/GIFPlot/Guile/simple/Makefile
deleted file mode 100644
index 7986214a0..000000000
--- a/Examples/GIFPlot/Guile/simple/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../swig
-SWIGOPT =
-SRCS =
-TARGET = simple
-INTERFACE = simple.i
-LIBS = -L../.. -lgifplot
-INCLUDES = -I../../Include
-
-all:: static
-
-dynamic::
- $(MAKE) -f $(TOP)/Makefile TOP='$(TOP)' \
- SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' guile
-
-static::
- $(MAKE) -f $(TOP)/Makefile TOP='$(TOP)' \
- SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' guile_static
-
-clean::
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' guile_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Guile/simple/README b/Examples/GIFPlot/Guile/simple/README
deleted file mode 100644
index 1925efa93..000000000
--- a/Examples/GIFPlot/Guile/simple/README
+++ /dev/null
@@ -1,11 +0,0 @@
-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.
-
-`make' will build a version of Guile which defines an additional
-module (simple). Run `./simple-guile -s runme.scm' to test it.
-
-`make dynamic' will build a dynamically loadable module, which can be
-loaded from any Guile interpreter. Run `guile -s runme.scm' to test
-it. The `use-modules' call in `runme.scm' dynamically loads the
-module.
diff --git a/Examples/GIFPlot/Guile/simple/runme.scm b/Examples/GIFPlot/Guile/simple/runme.scm
deleted file mode 100644
index 40ec18101..000000000
--- a/Examples/GIFPlot/Guile/simple/runme.scm
+++ /dev/null
@@ -1,30 +0,0 @@
-;;; Draw some simple shapes
-
-;; Use the wrapped GIFPlot library
-(use-modules (simple))
-
-(display "Drawing some basic shapes\n")
-
-(define cmap (new-ColorMap))
-(define 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")
-(display "Wrote image.gif\n")
-
-(delete-FrameBuffer f)
-(delete-ColorMap cmap)
-
diff --git a/Examples/GIFPlot/Guile/simple/simple.i b/Examples/GIFPlot/Guile/simple/simple.i
deleted file mode 100644
index 86eaabdc0..000000000
--- a/Examples/GIFPlot/Guile/simple/simple.i
+++ /dev/null
@@ -1,34 +0,0 @@
-/* This example shows a very simple interface wrapping a few
- primitive declarations */
-
-%module simple
-%{
-#include "gifplot.h"
-%}
-
-typedef unsigned int 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
-
diff --git a/Examples/GIFPlot/Include/gifplot.h b/Examples/GIFPlot/Include/gifplot.h
deleted file mode 100644
index 85e4c10b3..000000000
--- a/Examples/GIFPlot/Include/gifplot.h
+++ /dev/null
@@ -1,333 +0,0 @@
-/* -----------------------------------------------------------------------------
- * gifplot.h
- *
- * Main header file for the GIFPlot library.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- * Copyright (C) 1995-1996
- *
- * See the file LICENSE for information on usage and redistribution.
- * ----------------------------------------------------------------------------- */
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <float.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-
-#ifndef GIFPLOT_H
-
-#ifdef SWIG
-%nodefault;
-#endif
-
-/* Pixel is 8-bits */
-
-typedef unsigned char Pixel;
-typedef float Zvalue;
-
-/* ------------------------------------------------------------------------
- ColorMap
-
- Definition and methods for colormaps
- ------------------------------------------------------------------------ */
-
-typedef struct ColorMap {
- unsigned char *cmap;
- char *name;
-} ColorMap;
-
-extern ColorMap *new_ColorMap(char *filename);
-extern void delete_ColorMap(ColorMap *c);
-extern void ColorMap_default(ColorMap *c);
-extern void ColorMap_assign(ColorMap *c, int index, int r, int g, int b);
-extern int ColorMap_getitem(ColorMap *c, int index);
-extern void ColorMap_setitem(ColorMap *c, int index, int value);
-extern int ColorMap_write(ColorMap *c, char *filename);
-
-/* Some default colors */
-
-#define BLACK 0
-#define WHITE 1
-#define RED 2
-#define GREEN 3
-#define BLUE 4
-#define YELLOW 5
-#define CYAN 6
-#define MAGENTA 7
-
-/*-------------------------------------------------------------------------
- FrameBuffer
-
- This structure defines a simple 8 bit framebuffer.
- ------------------------------------------------------------------------- */
-
-typedef struct FrameBuffer {
- Pixel **pixels;
- Zvalue **zbuffer;
- unsigned int height;
- unsigned int width;
- int xmin; /* These are used for clipping */
- int ymin;
- int xmax;
- int ymax;
-} FrameBuffer;
-
-#define ZMIN 1e+36
-
-/* FrameBuffer Methods */
-
-extern FrameBuffer *new_FrameBuffer(unsigned int width, unsigned int height);
-extern void delete_FrameBuffer(FrameBuffer *frame);
-extern int FrameBuffer_resize(FrameBuffer *frame, int width, int height);
-extern void FrameBuffer_clear(FrameBuffer *frame, Pixel color);
-extern void FrameBuffer_plot(FrameBuffer *frame, int x, int y, Pixel color);
-extern void FrameBuffer_horizontal(FrameBuffer *frame, int xmin, int xmax, int y, Pixel color);
-extern void FrameBuffer_horizontalinterp(FrameBuffer *f, int xmin, int xmax, int y, Pixel c1, Pixel c2);
-extern void FrameBuffer_vertical(FrameBuffer *frame, int ymin, int ymax, int x, Pixel color);
-extern void FrameBuffer_box(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color);
-extern void FrameBuffer_solidbox(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color);
-extern void FrameBuffer_interpbox(FrameBuffer *f, int x1, int y1, int x2, int y2, Pixel c1, Pixel c2, Pixel c3, Pixel c4);
-extern void FrameBuffer_circle(FrameBuffer *frame, int x1, int y1, int radius, Pixel color);
-extern void FrameBuffer_solidcircle(FrameBuffer *frame, int x1, int y1, int radius, Pixel color);
-extern void FrameBuffer_line(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color);
-extern void FrameBuffer_setclip(FrameBuffer *frame, int xmin, int ymin, int xmax, int ymax);
-extern void FrameBuffer_noclip(FrameBuffer *frame);
-extern int FrameBuffer_makeGIF(FrameBuffer *frame, ColorMap *cmap, void *buffer, unsigned int maxsize);
-extern int FrameBuffer_writeGIF(FrameBuffer *f, ColorMap *c, char *filename);
-extern void FrameBuffer_zresize(FrameBuffer *f, int width, int height);
-extern void FrameBuffer_zclear(FrameBuffer *f);
-extern void FrameBuffer_solidtriangle(FrameBuffer *f, int x1, int y1, int x2, int y2, int x3, int y3, Pixel c);
-extern void FrameBuffer_interptriangle(FrameBuffer *f, int tx1, int ty1, Pixel c1,
- int tx2, int ty2, Pixel c2, int tx3, int ty3, Pixel c3);
-
-#define HORIZONTAL 1
-#define VERTICAL 2
-
-extern void FrameBuffer_drawchar(FrameBuffer *frame, int x, int y, int fgcolor, int bgcolor, char chr, int orientation);
-extern void FrameBuffer_drawstring(FrameBuffer *f, int x, int y, int fgcolor, int bgcolor, char *text, int orientation);
-
-/* ------------------------------------------------------------------------
- PixMap
-
- The equivalent of "bit-maps".
- ------------------------------------------------------------------------ */
-
-typedef struct PixMap {
- int width;
- int height;
- int centerx;
- int centery;
- int *map;
-} PixMap;
-
-/* PIXMAP methods */
-
-extern PixMap *new_PixMap(int width, int height, int centerx, int centery);
-extern void delete_PixMap(PixMap *pm);
-extern void PixMap_set(PixMap *pm, int x, int y, int pix);
-extern void FrameBuffer_drawpixmap(FrameBuffer *f, PixMap *pm, int x, int y, int fgcolor, int bgcolor);
-
-#define GIFPLOT_TRANSPARENT 0
-#define GIFPLOT_FOREGROUND 1
-#define GIFPLOT_BACKGROUND 2
-
-/* ------------------------------------------------------------------------
- Plot2D
-
- Definition and methods for 2D plots.
- ------------------------------------------------------------------------ */
-
-typedef struct Plot2D {
- FrameBuffer *frame; /* what frame buffer are we using */
- int view_xmin; /* Minimum coordinates of view region */
- int view_ymin;
- int view_xmax; /* Maximum coordinates of view region */
- int view_ymax;
- double xmin; /* Minimum coordinates of plot region */
- double ymin;
- double xmax; /* Maximum coordinates of plot region */
- double ymax;
- int xscale; /* Type of scaling (LINEAR, LOG, etc..) */
- int yscale;
- double dx; /* Private scaling parameters */
- double dy;
-} Plot2D;
-
-/* 2D Plot methods */
-
-extern Plot2D *new_Plot2D(FrameBuffer *frame,double xmin,double ymin, double xmax, double ymax);
-extern void delete_Plot2D(Plot2D *p2);
-extern Plot2D *Plot2D_copy(Plot2D *p2);
-extern void Plot2D_clear(Plot2D *p2, Pixel c);
-extern void Plot2D_setview(Plot2D *p2, int vxmin, int vymin, int vxmax, int vymax);
-extern void Plot2D_setrange(Plot2D *p2, double xmin, double ymin, double xmax, double ymax);
-extern void Plot2D_setscale(Plot2D *p2, int xscale, int yscale);
-extern void Plot2D_plot(Plot2D *p2, double x, double y, Pixel color);
-extern void Plot2D_box(Plot2D *p2, double x1, double y1, double x2, double y2, Pixel color);
-extern void Plot2D_solidbox(Plot2D *p2, double x1, double y1,double x2, double y2, Pixel color);
-extern void Plot2D_interpbox(Plot2D *p2, double x1, double y1, double x2, double y2, Pixel c1, Pixel c2, Pixel c3, Pixel c4);
-extern void Plot2D_circle(Plot2D *p2, double x, double y, double radius, Pixel color);
-extern void Plot2D_solidcircle(Plot2D *p2, double x, double y, double radius, Pixel color);
-extern void Plot2D_line(Plot2D *p2, double x1, double y1, double x2, double y2, Pixel color);
-extern void Plot2D_start(Plot2D *p2);
-extern void Plot2D_drawpixmap(Plot2D *p2, PixMap *pm, double x, double y, Pixel color, Pixel bgcolor);
-extern void Plot2D_xaxis(Plot2D *p2, double x, double y, double xtick, int ticklength, Pixel c);
-extern void Plot2D_yaxis(Plot2D *p2, double x, double y, double ytick, int ticklength, Pixel c);
-extern void Plot2D_triangle(Plot2D *p2, double x1, double y1, double x2, double y2, double x3, double y3, Pixel c);
-extern void Plot2D_solidtriangle(Plot2D *p2, double x1, double y1, double x2, double y2, double x3, double y3, Pixel c);
-extern void Plot2D_interptriangle(Plot2D *p2, double x1, double y1, Pixel c1,
- double x2, double y2, Pixel c2,
- double x3, double y3, Pixel c3);
-
-#define LINEAR 10
-#define LOG 11
-
-/* -----------------------------------------------------------------------
- Matrix
-
- Operations on 4x4 transformation matrices and vectors.
- Matrices are represented as a double array of 16 elements
- ----------------------------------------------------------------------- */
-
-typedef double *Matrix;
-typedef struct GL_Vector {
- double x;
- double y;
- double z;
- double w;
-} GL_Vector;
-
-extern Matrix new_Matrix();
-extern void delete_Matrix(Matrix a);
-extern Matrix Matrix_copy(Matrix a);
-extern void Matrix_multiply(Matrix a, Matrix b, Matrix c);
-extern void Matrix_identity(Matrix a);
-extern void Matrix_zero(Matrix a);
-extern void Matrix_transpose(Matrix a, Matrix result);
-extern void Matrix_invert(Matrix a, Matrix inva);
-extern void Matrix_transform(Matrix a, GL_Vector *r, GL_Vector *t);
-extern void Matrix_transform4(Matrix a, double rx, double ry, double rz,
- double rw, GL_Vector *t);
-
-extern void Matrix_print(Matrix a);
-extern void Matrix_translate(Matrix a, double tx, double ty, double tz);
-extern void Matrix_rotatex(Matrix a, double deg);
-extern void Matrix_rotatey(Matrix a, double deg);
-extern void Matrix_rotatez(Matrix a, double deg);
-
-/* -----------------------------------------------------------------------
- Plot3D
-
- Data Structure for 3-D plots
- ------------------------------------------------------------------------ */
-
-typedef struct Plot3D {
- FrameBuffer *frame; /* Frame buffer being used */
- int view_xmin; /* Viewing region */
- int view_ymin;
- int view_xmax;
- int view_ymax;
- double xmin; /* Bounding box */
- double ymin;
- double zmin;
- double xmax;
- double ymax;
- double zmax;
- double xcenter; /* Center point */
- double ycenter;
- double zcenter;
- double fovy; /* Field of view */
- double aspect; /* Aspect ratio */
- double znear; /* near "clipping" plane */
- double zfar; /* far "clipping" plane */
- Matrix center_mat; /* Matrix used for centering the model */
- Matrix model_mat; /* Model rotation matrix */
- Matrix view_mat; /* Viewing matrix */
- Matrix fullmodel_mat; /* Full model matrix. Used by sphere plot */
- Matrix trans_mat; /* Total transformation matrix */
- double lookatz; /* Where is the z-lookat point */
- double xshift; /* Used for translation and stuff */
- double yshift;
- double zoom;
- int width;
- int height;
- int pers_mode; /* Perspective mode (private) */
- double ortho_left,ortho_right,ortho_bottom,ortho_top;
-} Plot3D;
-
-extern Plot3D *new_Plot3D(FrameBuffer *frame, double xmin, double ymin, double zmin,
- double xmax, double ymax, double zmax);
-extern void delete_Plot3D(Plot3D *p3);
-extern Plot3D *Plot3D_copy(Plot3D *p3);
-extern void Plot3D_clear(Plot3D *p3, Pixel Color);
-extern void Plot3D_perspective(Plot3D *p3, double fovy, double znear, double zfar);
-extern void Plot3D_ortho(Plot3D *p3, double left, double right, double top, double bottom);
-extern void Plot3D_lookat(Plot3D *p3, double z);
-extern void Plot3D_autoperspective(Plot3D *p3, double fovy);
-extern void Plot3D_autoortho(Plot3D *p3);
-extern void Plot3D_rotx(Plot3D *p3, double deg);
-extern void Plot3D_roty(Plot3D *p3, double deg);
-extern void Plot3D_rotz(Plot3D *p3, double deg);
-extern void Plot3D_rotl(Plot3D *p3, double deg);
-extern void Plot3D_rotr(Plot3D *p3, double deg);
-extern void Plot3D_rotd(Plot3D *p3, double deg);
-extern void Plot3D_rotu(Plot3D *p3, double deg);
-extern void Plot3D_rotc(Plot3D *p3, double deg);
-extern void Plot3D_zoom(Plot3D *p3, double percent);
-extern void Plot3D_left(Plot3D *p3, double percent);
-extern void Plot3D_right(Plot3D *p3, double percent);
-extern void Plot3D_down(Plot3D *p3, double percent);
-extern void Plot3D_up(Plot3D *p3, double percent);
-extern void Plot3D_center(Plot3D *p3, double cx, double cy);
-
-extern void Plot3D_plot(Plot3D *p3, double x, double y, double z, Pixel Color);
-
-extern void Plot3D_setview(Plot3D *p3, int vxmin, int vymin, int vxmax, int vymax);
-extern void Plot3D_start(Plot3D *p3);
-extern void Plot3D_line(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2, Pixel color);
-extern void Plot3D_triangle(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3, Pixel color);
-extern void Plot3D_solidtriangle(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3, Pixel color);
-
-extern void Plot3D_interptriangle(Plot3D *p3,
- double x1, double y1, double z1, Pixel c1,
- double x2, double y2, double z2, Pixel c2,
- double x3, double y3, double z3, Pixel c3);
-
-extern void Plot3D_quad(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- double x4, double y4, double z4,
- Pixel color);
-
-extern void Plot3D_solidquad(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- double x4, double y4, double z4,
- Pixel color);
-
-extern void Plot3D_interpquad(Plot3D *p3, double x1, double y1, double z1, Pixel c1,
- double x2, double y2, double z2, Pixel c2,
- double x3, double y3, double z3, Pixel c3,
- double x4, double y4, double z4, Pixel c4);
-
-
-extern void Plot3D_solidsphere(Plot3D *p3, double x, double y, double z, double radius,Pixel c);
-
-extern void Plot3D_outlinesphere(Plot3D *p3, double x, double y, double z, double radius,Pixel c, Pixel bc);
-
-extern PixMap PixMap_SQUARE;
-extern PixMap PixMap_TRIANGLE;
-extern PixMap PixMap_CROSS;
-
-#endif
-#define GIFPLOT_H
-
-
-
diff --git a/Examples/GIFPlot/Interface/gifplot.i b/Examples/GIFPlot/Interface/gifplot.i
deleted file mode 100644
index fdf661c5e..000000000
--- a/Examples/GIFPlot/Interface/gifplot.i
+++ /dev/null
@@ -1,264 +0,0 @@
-//
-// Graphics module
-//
-%module gifplot
-%{
-#include "gifplot.h"
-%}
-
-#if defined(SWIGJAVA ) || defined(SWIGPHP)
- %rename(make_default) ColorMap::default();
-#endif
-
-%rename(__getitem__) ColorMap::getitem(int index);
-%rename(__setitem__) ColorMap::setitem(int index, int value);
-
-/* Pixel is 8-bits */
-
-typedef unsigned char Pixel;
-typedef float Zvalue;
-
-/* ------------------------------------------------------------------------
- ColorMap
-
- Definition and methods for colormaps
- ------------------------------------------------------------------------ */
-
-typedef struct ColorMap {
- char *name;
-
-//
-// %extend adds some C methods to this structure to make it
-// look like a C++ class in Python.
-// These are really named things like ColorMap_default, ColorMap_assign, etc...
-
- %extend {
- ColorMap(char *filename);
- ~ColorMap();
- void default();
- void assign(int index,int r, int g, int b);
- int getitem(int index);
- void setitem(int index, int value);
- int write(char *filename);
- }
-} ColorMap;
-
-/* Some default colors */
-
-#define BLACK 0
-#define WHITE 1
-#define RED 2
-#define GREEN 3
-#define BLUE 4
-#define YELLOW 5
-#define CYAN 6
-#define MAGENTA 7
-
-/*-------------------------------------------------------------------------
- FrameBuffer
-
- This structure defines a simple 8 bit framebuffer.
- ------------------------------------------------------------------------- */
-
-typedef struct FrameBuffer {
- unsigned int height;
- unsigned int width;
- int xmin; /* These are used for clipping */
- int ymin;
- int xmax;
- int ymax;
- %extend {
- FrameBuffer(unsigned int width, unsigned int height);
- ~FrameBuffer();
- void resize(int width, int height);
- void clear(Pixel color);
- void plot(int x, int y, Pixel color);
- void horizontal(int xmin, int xmax, int y, Pixel color);
- void horizontalinterp(int xmin, int xmax, int y, Pixel c1, Pixel c2);
- void vertical(int ymin, int ymax, int x, Pixel color);
- void box(int x1, int y1, int x2, int y2, Pixel color);
- void solidbox(int x1, int y1, int x2, int y2, Pixel color);
- void interpbox(int x1, int y1, int x2, int y2, Pixel c1, Pixel c2, Pixel c3, Pixel c4);
- void circle(int x1, int y1, int radius, Pixel color);
- void solidcircle(int x1, int y1, int radius, Pixel color);
- void line(int x1, int y1, int x2, int y2, Pixel color);
- void setclip(int xmin, int ymin, int xmax, int ymax);
- void noclip();
- int makeGIF(ColorMap *cmap, void *buffer, unsigned int maxsize);
- void zresize(int width, int height);
- void zclear();
- void drawchar(int x, int y, int fgcolor, int bgcolor, char chr, int orientation);
- void drawstring(int x, int y, int fgcolor, int bgcolor, char *text, int orientation);
- void drawpixmap(PixMap *pm, int x, int y, int fgcolor, int bgcolor);
- int writeGIF(ColorMap *cmap, char *filename);
- }
-} FrameBuffer;
-
-#define HORIZONTAL 1
-#define VERTICAL 2
-
-/* --------------------------------------------------------------------------
- PixMap
-
- The equivalent of "bit-maps".
- -------------------------------------------------------------------------- */
-
-/* PIXMAP methods */
-
-extern PixMap *new_PixMap(int width, int height, int centerx, int centery);
-extern void delete_PixMap(PixMap *pm);
-extern void PixMap_set(PixMap *pm, int x, int y, int pix);
-
-#define GIFPLOT_TRANSPARENT 0
-#define GIFPLOT_FOREGROUND 1
-#define GIFPLOT_BACKGROUND 2
-
-/* --------------------------------------------------------------------------
- Plot2D
-
- Definition and methods for 2D plots.
- --------------------------------------------------------------------------- */
-
-typedef struct Plot2D {
- FrameBuffer *frame;
- int view_xmin; /* Minimum coordinates of view region */
- int view_ymin;
- int view_xmax; /* Maximum coordinates of view region */
- int view_ymax;
- double xmin; /* Minimum coordinates of plot region */
- double ymin;
- double xmax; /* Maximum coordinates of plot region */
- double ymax;
- int xscale; /* Type of scaling (LINEAR, LOG, etc..) */
- int yscale;
- %extend {
- Plot2D(FrameBuffer *frame,double xmin,double ymin, double xmax, double ymax);
- ~Plot2D();
- Plot2D *copy();
- void clear(Pixel c);
- void setview(int vxmin, int vymin, int vxmax, int vymax);
- void setrange(double xmin, double ymin, double xmax, double ymax);
- void setscale(int xscale, int yscale);
- void plot(double x, double y, Pixel color);
- void box(double x1, double y1, double x2, double y2, Pixel color);
- void solidbox(double x1, double y1, double x2, double y2, Pixel color);
- void interpbox(double x1, double y1, double x2, double y2, Pixel c1, Pixel c2, Pixel c3, Pixel c4);
-
- void circle(double x, double y, double radius, Pixel color);
- void solidcircle(double x, double y, double radius, Pixel color);
- void line(double x1, double y1, double x2, double y2, Pixel color);
- void start();
- void drawpixmap(PixMap *pm, double x, double y, Pixel color, Pixel bgcolor);
- void xaxis(double x, double y, double xtick, int ticklength, Pixel color);
- void yaxis(double x, double y, double ytick, int ticklength, Pixel color);
- void triangle(double x1, double y1, double x2, double y2, double x3, double y3, Pixel c);
-
- void solidtriangle(double x1, double y1, double x2, double y2, double x3, double y3, Pixel c);
-
- void interptriangle(double x1, double y1, Pixel c1,
- double x2, double y2, Pixel c2,
- double x3, double y3, Pixel c3);
-
- }
-} Plot2D;
-
-#define LINEAR 10
-#define LOG 11
-
-/* ------------------------------------------------------------------------------
- Plot3D
-
- Data Structure for 3-D plots
- ------------------------------------------------------------------------------ */
-
-typedef struct Plot3D {
- FrameBuffer *frame;
- int view_xmin; /* Viewing region */
- int view_ymin;
- int view_xmax;
- int view_ymax;
- double xmin; /* Bounding box */
- double ymin;
- double zmin;
- double xmax;
- double ymax;
- double zmax;
- double xcenter; /* Center point */
- double ycenter;
- double zcenter;
- double fovy; /* Field of view */
- double aspect; /* Aspect ratio */
- double znear; /* near "clipping" plane */
- double zfar; /* far "clipping" plane */
- double lookatz; /* Where is the z-lookat point */
- double xshift; /* Used for translation and stuff */
- double yshift;
- %extend {
- Plot3D(FrameBuffer *frame, double xmin, double ymin, double zmin, double xmax, double ymax, double zmax);
- ~Plot3D();
- Plot3D *copy();
- void clear(Pixel bgcolor);
- void perspective( double fovy, double znear, double zfar);
- void lookat( double z);
- void autoperspective( double fovy);
- void ortho(double left, double right, double bottom, double top);
- void autoortho();
- void rotx( double deg);
- void roty( double deg);
- void rotz( double deg);
- void rotl( double deg);
- void rotr( double deg);
- void rotd( double deg);
- void rotu( double deg);
- void rotc( double deg);
- void zoom( double percent);
- void left( double percent);
- void right( double percent);
- void down( double percent);
- void up( double percent);
- void center( double cx, double cy);
- void plot( double x, double y, double z, Pixel Color);
- void setview( int vxmin, int vymin, int vxmax, int vymax);
- void start();
- void line( double x1, double y1, double z1,
- double x2, double y2, double z2, Pixel color);
- void triangle( double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3, Pixel color);
- void solidtriangle( double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3, Pixel color);
- void interptriangle(double x1, double y1, double z1, Pixel c1,
- double x2, double y2, double z2, Pixel c2,
- double x3, double y3, double z3, Pixel c3);
- void quad( double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- double x4, double y4, double z4,
- Pixel color);
- void solidquad( double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- double x4, double y4, double z4,
- Pixel color);
- void interpquad( double x1, double y1, double z1, Pixel c1,
- double x2, double y2, double z2, Pixel c2,
- double x3, double y3, double z3, Pixel c3,
- double x4, double y4, double z4, Pixel c4);
- void solidsphere( double x, double y, double z, double radius,Pixel c);
- void outlinesphere( double x, double y, double z, double radius,Pixel c, Pixel bc);
- }
-} Plot3D;
-
-#ifndef SWIGJAVA
-/* These directives create constants of a specific type. They
- do not correspond to any C variable or declared constant in the
- header file */
-%constant PixMap * SQUARE = &PixMap_SQUARE;
-%constant PixMap * TRIANGLE = &PixMap_TRIANGLE;
-%constant PixMap * CROSS = &PixMap_CROSS;
-#endif
-
-
-
-
diff --git a/Examples/GIFPlot/Java/check.list b/Examples/GIFPlot/Java/check.list
deleted file mode 100644
index 13de977af..000000000
--- a/Examples/GIFPlot/Java/check.list
+++ /dev/null
@@ -1,4 +0,0 @@
-# see top-level Makefile.in
-full
-shadow
-simple
diff --git a/Examples/GIFPlot/Java/full/Makefile b/Examples/GIFPlot/Java/full/Makefile
deleted file mode 100644
index 8f167237d..000000000
--- a/Examples/GIFPlot/Java/full/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-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
deleted file mode 100644
index 93463ea30..000000000
--- a/Examples/GIFPlot/Java/full/README
+++ /dev/null
@@ -1,8 +0,0 @@
-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
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Java/full/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Java/full/gifplot.i b/Examples/GIFPlot/Java/full/gifplot.i
deleted file mode 100644
index 5a7f5008f..000000000
--- a/Examples/GIFPlot/Java/full/gifplot.i
+++ /dev/null
@@ -1,15 +0,0 @@
-/* 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
deleted file mode 100644
index c47c1e672..000000000
--- a/Examples/GIFPlot/Java/full/runme.java
+++ /dev/null
@@ -1,75 +0,0 @@
-// 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));
- }
-}
diff --git a/Examples/GIFPlot/Java/shadow/Makefile b/Examples/GIFPlot/Java/shadow/Makefile
deleted file mode 100644
index 8062c2700..000000000
--- a/Examples/GIFPlot/Java/shadow/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../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)' java
- javac *.java
-
-clean::
- $(MAKE) -f $(TOP)/Makefile java_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Java/shadow/README b/Examples/GIFPlot/Java/shadow/README
deleted file mode 100644
index b06c5a8f1..000000000
--- a/Examples/GIFPlot/Java/shadow/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This example uses the file in ../../Interface/gifplot.i to build
-an interface with shadow classes. After doing a make, run the program runme, ie: 'java runme'.
-
-Note the differences in the runme.java files between this example and the
-'full' example. This example uses the shadow classes.
diff --git a/Examples/GIFPlot/Java/shadow/cmap b/Examples/GIFPlot/Java/shadow/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Java/shadow/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Java/shadow/runme.java b/Examples/GIFPlot/Java/shadow/runme.java
deleted file mode 100644
index 91db03898..000000000
--- a/Examples/GIFPlot/Java/shadow/runme.java
+++ /dev/null
@@ -1,76 +0,0 @@
-// 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;
-
- ColorMap cmap = new ColorMap("cmap");
- FrameBuffer frame = new FrameBuffer(500,500);
- frame.clear((short)gifplot.BLACK);
-
- Plot3D 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);
-
- System.out.println( "Making a nice 3D plot..." );
- p3.clear((short)gifplot.BLACK);
- p3.start();
- 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;
- p3.solidquad(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;
- }
-
- frame.writeGIF(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));
- }
-}
diff --git a/Examples/GIFPlot/Java/simple/Makefile b/Examples/GIFPlot/Java/simple/Makefile
deleted file mode 100644
index d707fd458..000000000
--- a/Examples/GIFPlot/Java/simple/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../swig
-SWIGOPT = -noproxy
-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)' java
- javac *.java
-
-
-clean::
- $(MAKE) -f $(TOP)/Makefile java_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Java/simple/README b/Examples/GIFPlot/Java/simple/README
deleted file mode 100644
index 13ff49611..000000000
--- a/Examples/GIFPlot/Java/simple/README
+++ /dev/null
@@ -1,5 +0,0 @@
-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. After doing a make, run the java program, ie 'java runme'.
-
-
diff --git a/Examples/GIFPlot/Java/simple/runme.java b/Examples/GIFPlot/Java/simple/runme.java
deleted file mode 100644
index 2d8d2bb48..000000000
--- a/Examples/GIFPlot/Java/simple/runme.java
+++ /dev/null
@@ -1,41 +0,0 @@
-
-public class runme {
-
- static {
- try {
- System.loadLibrary("simple");
- } 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[]) {
-
- // Draw some simple shapes
- System.out.println( "Drawing some basic shapes" );
-
- SWIGTYPE_p_ColorMap cmap = simple.new_ColorMap(null);
- SWIGTYPE_p_FrameBuffer f = simple.new_FrameBuffer(400,400);
-
- // Clear the picture
- simple.FrameBuffer_clear(f,(short)simple.BLACK);
-
- // Make a red box
- simple.FrameBuffer_box(f,40,40,200,200,(short)simple.RED);
-
- // Make a blue circle
- simple.FrameBuffer_circle(f,200,200,40,(short)simple.BLUE);
-
- // Make green line
- simple.FrameBuffer_line(f,10,390,390,200, (short)simple.GREEN);
-
- // Write an image out to disk
-
- simple.FrameBuffer_writeGIF(f,cmap,"image.gif");
- System.out.println( "Wrote image.gif" );
-
- simple.delete_FrameBuffer(f);
- simple.delete_ColorMap(cmap);
- }
-}
diff --git a/Examples/GIFPlot/Java/simple/simple.i b/Examples/GIFPlot/Java/simple/simple.i
deleted file mode 100644
index 457bc4c09..000000000
--- a/Examples/GIFPlot/Java/simple/simple.i
+++ /dev/null
@@ -1,38 +0,0 @@
-/* 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
-
-
-
-
-
diff --git a/Examples/GIFPlot/Lib/Makefile.in b/Examples/GIFPlot/Lib/Makefile.in
deleted file mode 100644
index 9db828eb2..000000000
--- a/Examples/GIFPlot/Lib/Makefile.in
+++ /dev/null
@@ -1,22 +0,0 @@
-CC = @CC@
-CCSHARED= @CCSHARED@
-INCLUDES= -I../Include
-CFLAGS = -O
-SRCS = frame.c color.c plot2d.c plot3d.c font.c pixmap.c matrix.c gif.c
-OBJS = $(SRCS:.c=.@OBJEXT@)
-AR = @AR@
-RANLIB = @RANLIB@
-TARGET = ../libgifplot.a
-
-.c.@OBJEXT@:
- $(CC) $(CCSHARED) $(INCLUDES) $(CFLAGS) -c -o $*.@OBJEXT@ $<
-
-all: $(OBJS)
- @rm -f ../libgifplot.a
- $(AR) cr $(TARGET) $(OBJS)
- $(RANLIB) $(TARGET)
-
-clean:
- rm -f *.@OBJEXT@ *~ $(TARGET)
-
-check: all
diff --git a/Examples/GIFPlot/Lib/color.c b/Examples/GIFPlot/Lib/color.c
deleted file mode 100644
index 7d79baca9..000000000
--- a/Examples/GIFPlot/Lib/color.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* -----------------------------------------------------------------------------
- * color.c
- *
- * Colormaps
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- * Copyright (C) 1995-1996
- *
- * See the file LICENSE for information on usage and redistribution.
- * ----------------------------------------------------------------------------- */
-
-#define COLORMAP
-#include "gifplot.h"
-#include <string.h>
-
-/* ------------------------------------------------------------------------
- ColorMap *new_ColorMap(char *filename)
-
- Read a colormap from a file.
- ------------------------------------------------------------------------ */
-
-ColorMap *new_ColorMap(char *filename) {
- ColorMap *c;
- FILE *cm;
- void ColorMap_default(ColorMap *);
-
- if (!filename) {
- c = (ColorMap *) malloc(sizeof(ColorMap));
- c->cmap = (unsigned char *) malloc(768*sizeof(char));
- c->name = 0;
- ColorMap_default(c);
- return c;
- }
- if (strlen(filename) == 0) {
- c = (ColorMap *) malloc(sizeof(ColorMap));
- c->cmap = (unsigned char *) malloc(768*sizeof(char));
- ColorMap_default(c);
- return c;
- }
- if ((cm = fopen(filename,"rb")) == NULL) {
- return (ColorMap *) 0;
- }
- c = (ColorMap *) malloc(sizeof(ColorMap));
- c->cmap = (unsigned char *) malloc(768*sizeof(char));
- if (fread(c->cmap, 768, 1, cm) != 1) {
- free((char *)c->cmap);
- free((char *)c);
- fclose(cm);
- return (ColorMap *) 0;
- }
- fclose(cm);
- c->name = (char *) malloc(strlen(filename)+1);
- strcpy(c->name, filename);
- ColorMap_default(c);
- return c;
-}
-
-/* --------------------------------------------------------------------------
- delete_ColorMap(ColorMap *cm)
-
- Destroy a ColorMap
- -------------------------------------------------------------------------- */
-
-void delete_ColorMap(ColorMap *cm) {
- if (cm) {
- free((char *)cm->cmap);
- if (cm->name)
- free((char *)cm->name);
- free((char *)cm);
- }
-}
-
-/* --------------------------------------------------------------------------
- ColorMap_default(ColorMap *cm)
-
- This function fills in default values for the first 8 entries of the
- colormap. These are *fixed* values---used internally.
- -------------------------------------------------------------------------- */
-
-void ColorMap_default(ColorMap *cm) {
- unsigned char *r,*g,*b;
- if (cm) {
- r = cm->cmap;
- g = cm->cmap+256;
- b = cm->cmap+512;
-
- r[0] = 0; g[0] = 0; b[0] = 0; /* BLACK */
- r[1] = 255; g[1] = 255; b[1] = 255; /* WHITE */
- r[2] = 255; g[2] = 0; b[2] = 0; /* RED */
- r[3] = 0; g[3] = 255; b[3] = 0; /* GREEN */
- r[4] = 0; g[4] = 0; b[4] = 255; /* BLUE */
- r[5] = 255; g[5] = 255; b[5] = 0; /* YELLOW */
- r[6] = 0; g[6] = 255; b[6] = 255; /* CYAN */
- r[7] = 255; g[7] = 0; b[7] = 255; /* MAGENTA */
- }
-}
-
-void ColorMap_assign(ColorMap *cm, int index, int r, int g, int b) {
- unsigned char *rb,*gb,*bb;
-
- rb = cm->cmap;
- gb = cm->cmap+256;
- bb = cm->cmap+512;
-
- rb[index] = r;
- gb[index] = g;
- bb[index] = b;
-}
-
-int ColorMap_getitem(ColorMap *cm, int index) {
- if ((index < 0) && (index >= 768)) return -1;
- return cm->cmap[index];
-}
-
-void ColorMap_setitem(ColorMap *cm, int index, int value) {
- if ((index < 0) && (index >= 768)) return;
- cm->cmap[index]=value;
-}
-
-/* --------------------------------------------------------------------
- ColorMap_write(ColorMap *cm, char *filename)
-
- Write out a colormap to disk.
- -------------------------------------------------------------------- */
-
-int ColorMap_write(ColorMap *cm, char *filename) {
-
- FILE *f;
- if (!cm) return -1;
- if (!filename) return -1;
- if (strlen(filename) == 0) return -1;
-
- f = fopen(filename,"w");
-
- if (fwrite(cm->cmap,768,1,f) != 1) {
- fclose(f);
- return -1;
- }
- fclose(f);
- return 0;
-}
-
-#undef COLORMAP
diff --git a/Examples/GIFPlot/Lib/font.c b/Examples/GIFPlot/Lib/font.c
deleted file mode 100644
index b30ee9b14..000000000
--- a/Examples/GIFPlot/Lib/font.c
+++ /dev/null
@@ -1,705 +0,0 @@
-/* -----------------------------------------------------------------------------
- * font.c
- *
- * Some basic fonts.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- * Copyright (C) 1995-1996
- *
- * See the file LICENSE for information on usage and redistribution.
- * ----------------------------------------------------------------------------- */
-
-#define FONT
-#include "gifplot.h"
-
-static char Char_A[80] = "\
-...x....\
-...x....\
-..x.x...\
-..x.x...\
-.x...x..\
-.xxxxx..\
-x.....x.\
-x.....x.\
-x.....x.\
-........";
-
-static char Char_B[80] = "\
-xxxxxx..\
-x.....x.\
-x.....x.\
-x.....x.\
-xxxxxx..\
-x.....x.\
-x.....x.\
-x.....x.\
-xxxxxx..\
-........";
-
-static char Char_C[80] = "\
-..xxxx..\
-.x....x.\
-x.......\
-x.......\
-x.......\
-x.......\
-x.......\
-.x....x.\
-..xxxx..\
-........";
-
-static char Char_D[80] = "\
-xxxxx...\
-x....x..\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x....x..\
-xxxxx...\
-........";
-static char Char_E[80] = "\
-xxxxxxx.\
-x.......\
-x.......\
-x.......\
-xxxxx...\
-x.......\
-x.......\
-x.......\
-xxxxxxx.\
-........";
-static char Char_F[80] = "\
-xxxxxxx.\
-x.......\
-x.......\
-x.......\
-xxxxx...\
-x.......\
-x.......\
-x.......\
-x.......\
-........";
-static char Char_G[80] = "\
-.xxxxx..\
-x.....x.\
-x.......\
-x.......\
-x...xxx.\
-x.....x.\
-x.....x.\
-x.....x.\
-.xxxxx..\
-........";
-static char Char_H[80] = "\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-xxxxxxx.\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-........";
-static char Char_I[80] = "\
-xxxxxxx.\
-...x....\
-...x....\
-...x....\
-...x....\
-...x....\
-...x....\
-...x....\
-xxxxxxx.\
-........";
-static char Char_J[80] = "\
-......x.\
-......x.\
-......x.\
-......x.\
-......x.\
-......x.\
-x.....x.\
-.x...x..\
-..xxx...\
-........";
-static char Char_K[80] = "\
-x.....x.\
-x....x..\
-x...x...\
-x..x....\
-xxx.....\
-x..x....\
-x...x...\
-x....x..\
-x.....x.\
-........";
-static char Char_L[80] = "\
-x.......\
-x.......\
-x.......\
-x.......\
-x.......\
-x.......\
-x.......\
-x.......\
-xxxxxxx.\
-........";
-static char Char_M[80] = "\
-x.....x.\
-xx...xx.\
-xx...xx.\
-x.x.x.x.\
-x.x.x.x.\
-x..x..x.\
-x..x..x.\
-x.....x.\
-x.....x.\
-........";
-static char Char_N[80] = "\
-x.....x.\
-xx....x.\
-x.x...x.\
-x.x...x.\
-x..x..x.\
-x...x.x.\
-x...x.x.\
-x....xx.\
-x.....x.\
-........";
-static char Char_O[80] = "\
-.xxxxx..\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-.xxxxx..\
-........";
-static char Char_P[80] = "\
-xxxxxx..\
-x.....x.\
-x.....x.\
-x.....x.\
-xxxxxx..\
-x.......\
-x.......\
-x.......\
-x.......\
-........";
-static char Char_Q[80] = "\
-.xxxxx..\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x...x.x.\
-x....x..\
-.xxxx.x.\
-........";
-static char Char_R[80] = "\
-xxxxxx..\
-x.....x.\
-x.....x.\
-x.....x.\
-xxxxxx..\
-x..x....\
-x...x...\
-x....x..\
-x.....x.\
-........";
-static char Char_S[80] = "\
-.xxxxx..\
-x.....x.\
-x.......\
-x.......\
-.xxxxx..\
-......x.\
-......x.\
-x.....x.\
-.xxxxx..\
-........";
-static char Char_T[80] = "\
-xxxxxxx.\
-...x....\
-...x....\
-...x....\
-...x....\
-...x....\
-...x....\
-...x....\
-...x....\
-........";
-static char Char_U[80] = "\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-.xxxxx..\
-........";
-static char Char_V[80] = "\
-x.....x.\
-x.....x.\
-.x...x..\
-.x...x..\
-..x.x...\
-..x.x...\
-...x....\
-...x....\
-...x....\
-........";
-static char Char_W[80] = "\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x.....x.\
-x..x..x.\
-x..x..x.\
-x.x.x.x.\
-.x...x..\
-........";
-static char Char_X[80] = "\
-x.....x.\
-x.....x.\
-.x...x..\
-..x.x...\
-...x....\
-..x.x...\
-.x...x..\
-x.....x.\
-x.....x.\
-........";
-static char Char_Y[80] = "\
-x.....x.\
-x.....x.\
-.x...x..\
-..x.x...\
-...x....\
-...x....\
-...x....\
-...x....\
-...x....\
-........";
-static char Char_Z[80] = "\
-xxxxxxx.\
-......x.\
-.....x..\
-....x...\
-...x....\
-..x.....\
-.x......\
-x.......\
-xxxxxxx.\
-........";
-static char Char_0[80] = "\
-.xxxxx..\
-x....xx.\
-x...x.x.\
-x..x..x.\
-x..x..x.\
-x.x...x.\
-x.x...x.\
-xx....x.\
-.xxxxx..\
-........";
-static char Char_1[80] = "\
-...x....\
-..xx....\
-...x....\
-...x....\
-...x....\
-...x....\
-...x....\
-...x....\
-..xxx...\
-........";
-static char Char_2[80] = "\
-..xxxx..\
-.x....x.\
-x.....x.\
-.....x..\
-....x...\
-...x....\
-..x.....\
-.x......\
-xxxxxxx.\
-........";
-static char Char_3[80] = "\
-.xxxxx..\
-x.....x.\
-......x.\
-......x.\
-...xxx..\
-......x.\
-......x.\
-x.....x.\
-.xxxxx..\
-........";
-static char Char_4[80] = "\
-....xx..\
-...x.x..\
-..x..x..\
-.x...x..\
-xxxxxxx.\
-.....x..\
-.....x..\
-.....x..\
-.....x..\
-........";
-static char Char_5[80] = "\
-xxxxxxx.\
-x.......\
-x.......\
-x.......\
-xxxxxx..\
-......x.\
-......x.\
-x.....x.\
-.xxxxx..\
-........";
-static char Char_6[80] = "\
-....xxx.\
-..xx....\
-.x......\
-x.......\
-x.xxx...\
-xx...x..\
-x.....x.\
-.x...x..\
-..xxx...\
-........";
-static char Char_7[80] = "\
-xxxxxxx.\
-x.....x.\
-.....x..\
-....x...\
-...x....\
-..x.....\
-.x......\
-x.......\
-x.......\
-........";
-static char Char_8[80] = "\
-.xxxxx..\
-x.....x.\
-x.....x.\
-x.....x.\
-.xxxxx..\
-x.....x.\
-x.....x.\
-x.....x.\
-.xxxxx..\
-........";
-static char Char_9[80] = "\
-..xxxx..\
-.x....x.\
-x.....x.\
-x....xx.\
-.xxxx.x.\
-......x.\
-......x.\
-....xx..\
-.xxx....\
-........";
-static char Char_MINUS[80] = "\
-........\
-........\
-........\
-........\
-.xxxxxx.\
-........\
-........\
-........\
-........\
-........";
-static char Char_PLUS[80] = "\
-........\
-........\
-...x....\
-...x....\
-.xxxxx..\
-...x....\
-...x....\
-........\
-........\
-........";
-static char Char_EQUAL[80] = "\
-........\
-........\
-........\
-.xxxxx..\
-........\
-.xxxxx..\
-........\
-........\
-........\
-........";
-static char Char_LPAREN[80] = "\
-....x...\
-...x....\
-..x.....\
-.x......\
-.x......\
-.x......\
-..x.....\
-...x....\
-....x...\
-........";
-static char Char_RPAREN[80] = "\
-...x....\
-....x...\
-.....x..\
-......x.\
-......x.\
-......x.\
-.....x..\
-....x...\
-...x....\
-........";
-static char Char_QUOTE[80] = "\
-..x.x...\
-..x.x...\
-........\
-........\
-........\
-........\
-........\
-........\
-........\
-........";
-static char Char_COLON[80] = "\
-........\
-........\
-...xx...\
-...xx...\
-........\
-...xx...\
-...xx...\
-........\
-........\
-........";
-static char Char_PERIOD[80] = "\
-........\
-........\
-........\
-........\
-........\
-........\
-........\
-...xx...\
-...xx...\
-........";
-static char Char_COMMA[80] = "\
-........\
-........\
-........\
-........\
-........\
-........\
-...xx...\
-...xx...\
-....x...\
-...x....";
-
-static char Char_SLASH[80] = "\
-........\
-......x.\
-.....x..\
-....x...\
-...x....\
-..x.....\
-.x......\
-x.......\
-........\
-........";
-
-static char Char_SPACE[80] = "\
-........\
-........\
-........\
-........\
-........\
-........\
-........\
-........\
-........\
-........";
-
-static char *GP_Font[128];
-static int InitGP_Font = 0;
-
-static void initGP_Fonts(void) {
-
- int i;
- for (i = 0; i < 128; i++)
- GP_Font[i] = (char *) 0;
-
- GP_Font['A'] = GP_Font['a'] = Char_A;
- GP_Font['B'] = GP_Font['b'] = Char_B;
- GP_Font['C'] = GP_Font['c'] = Char_C;
- GP_Font['D'] = GP_Font['d'] = Char_D;
- GP_Font['E'] = GP_Font['e'] = Char_E;
- GP_Font['F'] = GP_Font['f'] = Char_F;
- GP_Font['G'] = GP_Font['g'] = Char_G;
- GP_Font['H'] = GP_Font['h'] = Char_H;
- GP_Font['I'] = GP_Font['i'] = Char_I;
- GP_Font['J'] = GP_Font['j'] = Char_J;
- GP_Font['K'] = GP_Font['k'] = Char_K;
- GP_Font['L'] = GP_Font['l'] = Char_L;
- GP_Font['M'] = GP_Font['m'] = Char_M;
- GP_Font['N'] = GP_Font['n'] = Char_N;
- GP_Font['O'] = GP_Font['o'] = Char_O;
- GP_Font['P'] = GP_Font['p'] = Char_P;
- GP_Font['Q'] = GP_Font['q'] = Char_Q;
- GP_Font['R'] = GP_Font['r'] = Char_R;
- GP_Font['S'] = GP_Font['s'] = Char_S;
- GP_Font['T'] = GP_Font['t'] = Char_T;
- GP_Font['U'] = GP_Font['u'] = Char_U;
- GP_Font['V'] = GP_Font['v'] = Char_V;
- GP_Font['W'] = GP_Font['w'] = Char_W;
- GP_Font['X'] = GP_Font['x'] = Char_X;
- GP_Font['Y'] = GP_Font['y'] = Char_Y;
- GP_Font['Z'] = GP_Font['z'] = Char_Z;
- GP_Font['0'] = Char_0;
- GP_Font['1'] = Char_1;
- GP_Font['2'] = Char_2;
- GP_Font['3'] = Char_3;
- GP_Font['4'] = Char_4;
- GP_Font['5'] = Char_5;
- GP_Font['6'] = Char_6;
- GP_Font['7'] = Char_7;
- GP_Font['8'] = Char_8;
- GP_Font['9'] = Char_9;
- GP_Font['.'] = Char_PERIOD;
- GP_Font[','] = Char_COMMA;
- GP_Font['='] = Char_EQUAL;
- GP_Font['-'] = Char_MINUS;
- GP_Font['+'] = Char_PLUS;
- GP_Font['\"'] = Char_QUOTE;
- GP_Font['('] = Char_LPAREN;
- GP_Font[')'] = Char_RPAREN;
- GP_Font[':'] = Char_COLON;
- GP_Font['/'] = Char_SLASH;
- GP_Font[' '] = Char_SPACE;
- InitGP_Font = 1;
-}
-
-/* -----------------------------------------------------------------------
- void FrameBuffer_drawchar(FrameBuffer *f, int x, int y, Pixel fgcolor, Pixel bgcolor, char chr, int orientation)
-
- Draws a character at location x, y with given color and orientation parameters.
- Orientation can either be HORIZONTAL or VERTICAL
- ----------------------------------------------------------------------- */
-void FrameBuffer_drawchar(FrameBuffer *f, int x, int y, int fgcolor,
- int bgcolor, char chr, int orientation) {
-
- Pixel c, bc,*p,*p1;
- char *ch;
- int i,j;
- int xpixels,ypixels;
-
- if (!InitGP_Font) initGP_Fonts();
-
- c = (Pixel) fgcolor;
- bc = (Pixel) bgcolor;
- xpixels = f->width;
- ypixels = f->height;
-
- if (orientation == HORIZONTAL) {
- if ((x < f->xmin) || (x > f->xmax-8) ||
- (y < f->ymin) || (y > f->ymax-10)) return;
-
- ch = GP_Font[(int) chr];
- if (!ch) return;
- p = &f->pixels[y+9][x];
- for (i = 0; i < 10; i++) {
- p1 = p;
- for (j = 0; j< 8; j++) {
- if (*(ch++) == 'x') *p= c;
- else if (bgcolor >= 0)
- *p = bc;
- p++;
- }
- p = (p1 - xpixels);
- }
- } else {
- if ((x < f->xmin+10) || (x >= f->xmax) ||
- (y < f->ymin) || (y > f->ymax-8)) return;
-
- ch = GP_Font[(int) chr];
- if (!ch) return;
- p = &f->pixels[y][x-9];
- for (i = 0; i < 10; i++) {
- p1 = p;
- for (j = 0; j< 8; j++) {
- if (*(ch++) == 'x') *p= c;
- else if (bgcolor >= 0)
- *p = bc;
- p+=xpixels;
- }
- p = p1 + 1;
- }
- }
-}
-
-/* ----------------------------------------------------------------------
- void FrameBuffer_drawstring(FrameBuffer *f, int x, int y, int fgcolor,
- int bgcolor, char *text, int orientation)
-
- Draws an ASCII string on the framebuffer. Can be oriented either horizontally
- or vertically.
- ---------------------------------------------------------------------- */
-
-void FrameBuffer_drawstring(FrameBuffer *f, int x, int y, int fgcolor, int bgcolor, char *text, int orientation) {
-
- char *c;
- int x1, y1;
- int xpixels, ypixels;
-
- x1 = x;
- y1 = y;
- xpixels = f->width;
- ypixels = f->height;
- c = text;
- while (*c) {
- if (*c == '\n') {
- if (orientation == HORIZONTAL) {
- x1 = x; y1= y1- 10*xpixels;
- } else {
- y1 = y; x1= x1 + 10*ypixels;
- }
- } else {
- FrameBuffer_drawchar(f, x1,y1,fgcolor, bgcolor,*c, orientation);
- if (orientation == HORIZONTAL) {
- x1+=8;
- if (x1 >= (xpixels-8)) {
- x1 = x; y1= y1- 10;}
- if (y1 < 0) return;
- } else {
- y1 += 8;
- if (y1 >= (ypixels-8)) {
- y1 = y; x1 = x1 + 10;}
- if (x1 > (xpixels-10)) return;
- }
- }
- c++;
- }
-}
-
-
-
-
-
-
-
-
diff --git a/Examples/GIFPlot/Lib/frame.c b/Examples/GIFPlot/Lib/frame.c
deleted file mode 100644
index e006f0daf..000000000
--- a/Examples/GIFPlot/Lib/frame.c
+++ /dev/null
@@ -1,924 +0,0 @@
-/* -----------------------------------------------------------------------------
- * frame.c
- *
- * Frame buffer management
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- * Copyright (C) 1995-1996
- *
- * See the file LICENSE for information on usage and redistribution.
- * ----------------------------------------------------------------------------- */
-
-#define FRAME
-#include "gifplot.h"
-#include <float.h>
-
-/* ------------------------------------------------------------------------
- FrameBuffer *new_FrameBuffer(int width, int height)
-
- Creates a new framebuffer for storing data.
- ------------------------------------------------------------------------ */
-
-FrameBuffer *new_FrameBuffer(unsigned int width, unsigned int height) {
-
- FrameBuffer *f;
- int FrameBuffer_resize(FrameBuffer *f, int width, int height);
-
- /* Create a new frame buffer */
-
- f = (FrameBuffer *) malloc(sizeof(FrameBuffer));
- f->pixels = (Pixel **) 0;
- f->zbuffer = (Zvalue **) 0;
- /* Set its size */
-
- if (FrameBuffer_resize(f, width, height) == -1) {
- free((char *) f);
- return (FrameBuffer *) 0;
- }
-
- f->xmin = 0;
- f->ymin = 0;
- f->xmax = width;
- f->ymax = height;
- return f;
-}
-
-/* ------------------------------------------------------------------------
- void delete_FrameBuffer(FrameBuffer *f)
-
- Destroys the given framebuffer
- ------------------------------------------------------------------------ */
-
-void delete_FrameBuffer(FrameBuffer *f) {
-
- if (f) {
- if (f->pixels) {
- free((char *) f->pixels[0]);
- free((char *) f->pixels);
- }
- if (f->zbuffer) {
- free((char *) f->zbuffer[0]);
- free((char *) f->zbuffer);
- }
- free((char *)f);
- }
-}
-
-/* ------------------------------------------------------------------------
- int *FrameBuffer_resize(FrameBuffer *f, int width, int height)
-
- Resize the given framebuffer. Returns 0 on success, -1 on failure.
- ------------------------------------------------------------------------ */
-
-int FrameBuffer_resize(FrameBuffer *f, int width, int height) {
- int i;
- if ((f) && (width > 0) && (height > 0)) {
- if (f->pixels) {
- free((char *)f->pixels[0]);
- free((char *)f->pixels);
- }
- f->pixels = (Pixel **) malloc (height*sizeof(Pixel *));
- if (!f->pixels) return -1;
- f->pixels[0] = (Pixel *) malloc(height*width*sizeof(Pixel));
- if (!f->pixels[0]) {
- free((char *)f->pixels);
- return -1;
- }
- for (i = 0; i < height; i++)
- f->pixels[i] = f->pixels[0] + i*width;
- f->width = width;
- f->height = height;
- if (f->zbuffer) {
- FrameBuffer_zresize(f,width,height);
- }
- return 0;
- } else {
- return -1;
- }
-}
-
-/* ------------------------------------------------------------------------
- void FrameBuffer_clear(FrameBuffer *f, Pixel color)
-
- Clears the current FrameBuffer
- ------------------------------------------------------------------------ */
-
-void FrameBuffer_clear(FrameBuffer *f, Pixel color) {
- Pixel *p;
- unsigned int i;
- p = &f->pixels[0][0];
-
- for (i = 0; i < f->width*f->height; i++, p++)
- *p = color;
-}
-
-/* ------------------------------------------------------------------------
- void FrameBuffer_plot(FrameBuffer *f, int x1, int y1, Pixel color)
-
- Plots a point and does a bounds check.
- ------------------------------------------------------------------------ */
-
-void FrameBuffer_plot(FrameBuffer *f, int x1, int y1, Pixel color) {
-
- if ((x1 < f->xmin) || (x1 >= f->xmax) || (y1 < f->ymin) || (y1 >= f->ymax))
- return;
- f->pixels[y1][x1] = color;
-
-}
-
-/* ------------------------------------------------------------------------
- FrameBuffer_horizontal(Framebuffer *f, int xmin, int xmax, int y, Pixel color)
-
- Draw a horizontal line (clipped)
- ------------------------------------------------------------------------ */
-
-void FrameBuffer_horizontal(FrameBuffer *f, int xmin, int xmax, int y, Pixel color) {
-
- Pixel *p;
- int i;
-
- if ((y < f->ymin) || (y >= f->ymax)) return;
- if (xmin < f->xmin) xmin = f->xmin;
- if (xmax >= f->xmax) xmax = f->xmax - 1;
-
- p = &f->pixels[y][xmin];
- for (i = xmin; i <= xmax; i++, p++)
- *p = color;
-
-}
-
-/* ------------------------------------------------------------------------
- FrameBuffer_horizontalinterp(Framebuffer *f, int xmin, int xmax, int y,
- Pixel c1, Pixel c2)
-
- Draw a horizontal line (clipped) with color interpolation.
- ------------------------------------------------------------------------ */
-
-void FrameBuffer_horizontalinterp(FrameBuffer *f, int xmin, int xmax, int y,
- Pixel c1, Pixel c2) {
-
- Pixel *p;
- int i;
- double mc;
- int x1;
- if ((y < f->ymin) || (y >= f->ymax)) return;
-
- x1 = xmin;
- if (xmin < f->xmin) xmin = f->xmin;
- if (xmax >= f->xmax) xmax = f->xmax - 1;
- if (xmax < f->xmin) return;
- if (xmin >= f->xmax) return;
-
- if (xmin != xmax)
- mc = (double)(c2 - c1)/(double) (xmax - xmin);
- else
- mc = 0.0;
-
- p = &f->pixels[y][xmin];
- for (i = xmin; i <= xmax; i++, p++)
- *p = (Pixel) (mc*(i-x1) + c1);
-
-}
-
-
-/* ------------------------------------------------------------------------
- FrameBuffer_vertical(Framebuffer *f, int xmin, int xmax, int y, Pixel color)
-
- Draw a Vertical line (clipped)
- ------------------------------------------------------------------------ */
-
-void FrameBuffer_vertical(FrameBuffer *f, int ymin, int ymax, int x, Pixel color) {
-
- Pixel *p;
- int i;
-
- if ((x < f->xmin) || (x >= f->xmax)) return;
- if (ymax < f->ymin) return;
- if (ymin > f->ymax) return;
- if (ymin < f->ymin) ymin = f->ymin;
- if (ymax >= f->ymax) ymax = f->ymax - 1;
-
- p = &f->pixels[ymin][x];
- for (i = 0; i <= (ymax - ymin); i++, p+=f->width)
- *p = color;
-
-}
-
-/* ------------------------------------------------------------------------
- void FrameBuffer_box(FrameBuffer *f, int x1, int y1, int x2, int y2, Pixel color)
-
- Makes an outline box.
- ------------------------------------------------------------------------ */
-
-void FrameBuffer_box(FrameBuffer *f, int x1, int y1, int x2, int y2, Pixel color) {
-
- int xt, yt;
-
- /* Make sure points are in correct order */
-
- if (x2 < x1) {
- xt = x2;
- x2 = x1;
- x1 = xt;
- }
- if (y2 < y1) {
- yt = y2;
- y2 = y1;
- y1 = yt;
- }
-
- /* Draw lower edge */
-
- FrameBuffer_horizontal(f,x1,x2,y1,color);
-
- /* Draw upper edge */
-
- FrameBuffer_horizontal(f,x1,x2,y2,color);
-
- /* Draw left side */
-
- FrameBuffer_vertical(f,y1,y2,x1,color);
-
- /* Draw right side */
-
- FrameBuffer_vertical(f,y1,y2,x2,color);
-
-}
-
-/* ------------------------------------------------------------------------
- void FrameBuffer_solidbox(FrameBuffer *f, int x1, int y1, int x2, int y2, Pixel color)
-
- Makes an solid box.
- ------------------------------------------------------------------------ */
-
-void FrameBuffer_solidbox(FrameBuffer *f, int x1, int y1, int x2, int y2, Pixel color) {
-
- int xt, yt;
-
- /* Make sure points are in correct order */
-
- if (x2 < x1) {
- xt = x2;
- x2 = x1;
- x1 = xt;
- }
- if (y2 < y1) {
- yt = y2;
- y2 = y1;
- y1 = yt;
- }
-
- /* Now perform some clipping */
-
- if (y1 < f->ymin) y1 = f->ymin;
- if (y2 >= f->ymax) y2 = f->ymax - 1;
-
- /* Fill it in using horizontal lines */
-
- for (yt = y1; yt <= y2; yt++)
- FrameBuffer_horizontal(f,x1,x2,yt,color);
-
-}
-
-/* ------------------------------------------------------------------------
- void FrameBuffer_interpbox(FrameBuffer *f, int x1, int y1, int x2, int y2
- Pixel c1, Pixel c2, Pixel c3, Pixel c4)
-
- Makes a box with interpolated color. Colors are assigned as follows :
- (x1,y1) = c1
- (x1,y2) = c2
- (x2,y1) = c3
- (x2,y2) = c4
- ------------------------------------------------------------------------ */
-
-void FrameBuffer_interpbox(FrameBuffer *f, int x1, int y1, int x2, int y2,
- Pixel c1, Pixel c2, Pixel c3, Pixel c4) {
-
- int xt, yt;
- Pixel ct;
- double mc1,mc2;
- int ystart;
- /* Make sure points are in correct order */
-
- if (x2 < x1) {
- xt = x2;
- x2 = x1;
- x1 = xt;
- ct = c1;
- c1 = c3;
- c3 = ct;
- ct = c2;
- c2 = c4;
- c4 = ct;
- }
- if (y2 < y1) {
- yt = y2;
- y2 = y1;
- y1 = yt;
- ct = c1;
- c1 = c2;
- c2 = ct;
- ct = c3;
- c3 = c4;
- c4 = ct;
- }
-
- /* Now perform some clipping */
-
- ystart = y1;
- mc1 = (double) (c2 - c1)/(double) (y2 - y1);
- mc2 = (double) (c4 - c3)/(double) (y2 - y1);
- if (y1 < f->ymin) y1 = f->ymin;
- if (y2 >= f->ymax) y2 = f->ymax - 1;
-
- /* Fill it in using horizontal lines */
-
- for (yt = y1; yt <= y2; yt++)
- FrameBuffer_horizontalinterp(f,x1,x2,yt,(Pixel) ((mc1*(yt - ystart)) + c1),
- (Pixel) ((mc2*(yt-ystart))+c3));
-
-}
-
-/* ---------------------------------------------------------------------------
- FrameBuffer_line(FrameBuffer *f, int x1, int y1, int x2, int y2, color)
-
- Draws a line on the framebuffer using the Bresenham line algorithm. The
- line is clipped to fit within the current view window.
- ---------------------------------------------------------------------------- */
-
-void FrameBuffer_line(FrameBuffer *f, int x1, int y1, int x2, int y2, Pixel c) {
-
- int dx,dy,dxneg,dyneg, inc1,inc2,di;
- int x, y, xpixels, ypixels, xt, yt;
- Pixel *p;
- double m;
- int end1 = 0, end2 = 0;
-
- /* Need to figure out where in the heck this line is */
-
- dx = x2 - x1;
- dy = y2 - y1;
-
- if (dx == 0) {
- /* Draw a Vertical Line */
- if (y1 < y2)
- FrameBuffer_vertical(f,y1,y2,x1,c);
- else
- FrameBuffer_vertical(f,y2,y1,x1,c);
- return;
- }
- if (dy == 0) {
- /* Draw a Horizontal Line */
- if (x1 < x2)
- FrameBuffer_horizontal(f,x1,x2,y1,c);
- else
- FrameBuffer_horizontal(f,x2,x1,y1,c);
- return;
- }
-
- /* Figure out where in the heck these lines are using the
- Cohen-Sutherland Line Clipping Scheme. */
-
- end1 = ((x1 - f->xmin) < 0) |
- (((f->xmax- 1 - x1) < 0) << 1) |
- (((y1 - f->ymin) < 0) << 2) |
- (((f->ymax-1 - y1) < 0) << 3);
-
- end2 = ((x2 - f->xmin) < 0) |
- (((f->xmax-1 - x2) < 0) << 1) |
- (((y2 - f->ymin) < 0) << 2) |
- (((f->ymax-1 - y2) < 0) << 3);
-
- if (end1 & end2) return; /* Nope : Not visible */
-
- /* Make sure points have a favorable orientation */
-
- if (x1 > x2) {
- xt = x1;
- x1 = x2;
- x2 = xt;
- yt = y1;
- y1 = y2;
- y2 = yt;
- }
-
- /* Clip against the boundaries */
- m = (y2 - y1)/(double) (x2-x1);
- if (x1 < f->xmin) {
- y1 = (int) ((f->xmin - x1)*m + y1);
- x1 = (int) f->xmin;
- }
- if (x2 >= f->xmax) {
- y2 = (int) ((f->xmax -1 -x1)*m + y1);
- x2 = (int) (f->xmax - 1);
- }
-
- if (y1 > y2) {
- xt = x1;
- x1 = x2;
- x2 = xt;
- yt = y1;
- y1 = y2;
- y2 = yt;
- }
-
- m = 1/m;
- if (y1 < f->ymin) {
- x1 = (int) ((f->ymin - y1)*m + x1);
- y1 = (int) f->ymin;
- }
- if (y2 >= f->ymax) {
- x2 = (int) ((f->ymax-1-y1)*m + x1);
- y2 = (int) (f->ymax-1);
- }
-
- if ((x1 < f->xmin) || (x1 >= f->xmax) || (y1 < f->ymin) || (y1 >= f->ymax) ||
- (x2 < f->xmin) || (x2 >= f->xmax) || (y2 < f->ymin) || (y2 >= f->ymax)) return;
-
- dx = x2 - x1;
- dy = y2 - y1;
- xpixels = f->width;
- ypixels = f->height;
-
- dxneg = (dx < 0) ? 1 : 0;
- dyneg = (dy < 0) ? 1 : 0;
-
- dx = abs(dx);
- dy = abs(dy);
- if (dx >= dy) {
- /* Slope between -1 and 1. */
- if (dxneg) {
- x = x1;
- y = y1;
- x1 = x2;
- y1 = y2;
- x2 = x;
- y2 = y;
- dyneg = !dyneg;
- }
- inc1 = 2*dy;
- inc2 = 2*(dy-dx);
- di = 2*dy-dx;
-
- /* Draw a line using x as independent variable */
-
- p = &f->pixels[y1][x1];
- x = x1;
- while (x <= x2) {
- *(p++) = c;
- if (di < 0) {
- di = di + inc1;
- } else {
- if (dyneg) {
- p = p - xpixels;
- di = di + inc2;
- } else {
- p = p + xpixels;
- di = di + inc2;
- }
- }
- x++;
- }
- } else {
- /* Slope < -1 or > 1 */
- if (dyneg) {
- x = x1;
- y = y1;
- x1 = x2;
- y1 = y2;
- x2 = x;
- y2 = y;
- dxneg = !dxneg;
- }
- inc1 = 2*dx;
- inc2 = 2*(dx-dy);
- di = 2*dx-dy;
-
- /* Draw a line using y as independent variable */
-
- p = &f->pixels[y1][x1];
- y = y1;
- while (y <= y2) {
- *p = c;
- p = p + xpixels;
- if (di < 0) {
- di = di + inc1;
- } else {
- if (dxneg) {
- p = p - 1;
- di = di + inc2;
- } else {
- p = p + 1;
- di = di + inc2;
- }
- }
- y++;
- }
- }
-}
-
-
-/* -------------------------------------------------------------------------
- FrameBuffer_circle(FrameBuffer f, int xc, int yc, int radius, Pixel c)
-
- Create an outline circle
- ------------------------------------------------------------------------- */
-
-#define plot_circle(x,y,c) \
- if ((x >= xmin) && (x < xmax) && \
- (y >= ymin) && (y < ymax)) \
- pixels[y][x] = c;
-
-void FrameBuffer_circle(FrameBuffer *f, int xc, int yc, int radius, Pixel c) {
-
- int xpixels, ypixels, x, y, p;
- int xmin, ymin, xmax, ymax;
- Pixel **pixels;
-
- if (radius <= 0) return;
- xpixels = f->width;
- ypixels = f->height;
- pixels = f->pixels;
- xmin = f->xmin;
- ymin = f->ymin;
- xmax = f->xmax;
- ymax = f->ymax;
- x = 0;
- y = radius;
- p = 3-2*radius;
- while (x <= y) {
- plot_circle(xc+x,yc+y,c);
- plot_circle(xc-x,yc+y,c);
- plot_circle(xc+x,yc-y,c);
- plot_circle(xc-x,yc-y,c);
- plot_circle(xc+y,yc+x,c);
- plot_circle(xc-y,yc+x,c);
- plot_circle(xc+y,yc-x,c);
- plot_circle(xc-y,yc-x,c);
- if (p < 0) p = p + 4*x + 6;
- else {
- p = p + 4*(x-y) + 10;
- y = y -1;
- }
- x++;
- }
-}
-
-
-/* -------------------------------------------------------------------------
- FrameBuffer_solidcircle(FrameBuffer f, int xc, int yc, int radius, Pixel c)
-
- Create an filled circle
- ------------------------------------------------------------------------- */
-
-
-#define fill_circle(x,y,c) \
- x1 = xc - x; \
- x2 = xc + x; \
- FrameBuffer_horizontal(f,x1,x2,y,c);
-
-void FrameBuffer_solidcircle(FrameBuffer *f, int xc, int yc, int radius, Pixel c) {
-
- int xpixels, ypixels, x, y, p;
- int x1,x2;
- int xmin, ymin, xmax, ymax;
- Pixel **pixels;
-
- if (radius <= 0) return;
- xpixels = f->width;
- ypixels = f->height;
- pixels = f->pixels;
- xmin = f->xmin;
- ymin = f->ymin;
- xmax = f->xmax;
- ymax = f->ymax;
- x = 0;
- y = radius;
- p = 3-2*radius;
- while (x <= y) {
- fill_circle(x,yc+y,c);
- fill_circle(x,yc-y,c);
- fill_circle(y,yc+x,c);
- fill_circle(y,yc-x,c);
- if (p < 0) p = p + 4*x + 6;
- else {
- p = p + 4*(x-y) + 10;
- y = y -1;
- }
- x++;
- }
-}
-
-/* ------------------------------------------------------------------------
- void FrameBuffer_setclip(f,xmin,ymin,xmax,ymax)
-
- Set clipping region for plotting
- ------------------------------------------------------------------------ */
-
-void FrameBuffer_setclip(FrameBuffer *f, int xmin, int ymin, int xmax, int ymax) {
-
- if (xmin >= xmax) return;
- if (ymin >= ymax) return;
-
- if (xmin < 0) xmin = 0;
- if (ymin < 0) ymin = 0;
- if (xmax > (int) f->width) xmax = f->width;
- if (ymax > (int) f->height) ymax = f->height;
-
- f->xmin = xmin;
- f->ymin = ymin;
- f->xmax = xmax;
- f->ymax = ymax;
-}
-
-/* ------------------------------------------------------------------------
- void FrameBuffer_noclip(f)
-
- Disable clipping region
- ------------------------------------------------------------------------ */
-
-void FrameBuffer_noclip(FrameBuffer *f) {
- f->xmin = 0;
- f->ymin = 0;
- f->xmax = f->width;
- f->ymax = f->height;
-}
-
-
-/* ------------------------------------------------------------------------
- FrameBuffer_zresize(FrameBuffer *f, int width, int height)
-
- This function resizes the framebuffer's zbuffer. If none exist, it
- creates a new one.
- ------------------------------------------------------------------------ */
-
-void FrameBuffer_zresize(FrameBuffer *f, int width, int height) {
- int i;
-
- if (f->zbuffer) {
- free((char *)f->zbuffer[0]);
- free((char *)f->zbuffer);
- }
- f->zbuffer = (Zvalue **) malloc(height*sizeof(Zvalue *));
- f->zbuffer[0] = (Zvalue *) malloc(height*width*sizeof(Zvalue));
- for (i = 0; i < height; i++)
- f->zbuffer[i] = f->zbuffer[0]+i*width;
-}
-
-/* ------------------------------------------------------------------------
- FrameBuffer_zclear(FrameBuffer *f)
-
- Clears the z-buffer for a particular frame. Sets all of the z-values to
- ZMIN.
- ------------------------------------------------------------------------- */
-
-void FrameBuffer_zclear(FrameBuffer *f) {
- unsigned int i,j;
- if (f) {
- if (f->zbuffer) {
- for (i = 0; i < f->width; i++)
- for (j = 0; j < f->height; j++)
- f->zbuffer[j][i] = ZMIN;
- }
- }
-}
-
-
-
-/* -------------------------------------------------------------------------
- FrameBuffer_solidtriangle(FrameBuffer *f, int tx1, int ty2,
- int tx2, int ty2,
- int tx3, int ty3, Pixel color)
-
- This function draws a 2D filled triangle.
-
- General idea :
- 1. Transform the three points into screen coordinates
- 2. Order three points vertically on screen.
- 3. Check for degenerate cases (where 3 points are colinear).
- 4. Fill in the resulting triangle using horizontal lines.
- -------------------------------------------------------------------------- */
-
-void FrameBuffer_solidtriangle(FrameBuffer *f, int tx1, int ty1,
- int tx2, int ty2,
- int tx3, int ty3, Pixel color) {
- int tempx, tempy;
- double m1,m2,m3;
- int y;
- int ix1, ix2;
-
- /* Figure out which point has the greatest "y" value */
-
- if (ty2 > ty1) { /* Swap points 1 and 2 if 2 is higher */
- tempx = tx1;
- tempy = ty1;
- tx1 = tx2;
- ty1 = ty2;
- tx2 = tempx;
- ty2 = tempy;
- }
- if (ty3 > ty1) { /* Swap points 1 and 3 if 3 is higher */
- tempx = tx1;
- tempy = ty1;
- tx1 = tx3;
- ty1 = ty3;
- tx3 = tempx;
- ty3 = tempy;
- }
- if (ty3 > ty2) { /* Swap points 2 and 3 if 3 is higher */
- tempx = tx2;
- tempy = ty2;
- tx2 = tx3;
- ty2 = ty3;
- tx3 = tempx;
- ty3 = tempy;
- }
-
- /* Points are now order so that t_1 is the highest point, t_2 is the
- middle point, and t_3 is the lowest point */
-
- /* Check for degenerate cases here */
-
- if ((ty1 == ty2) && (ty2 == ty3)) {
-
- /* Points are aligned horizontally. Handle as a special case */
- /* Just draw three lines using the outline color */
-
- FrameBuffer_line(f,tx1,ty1,tx2,ty2,color);
- FrameBuffer_line(f,tx1,ty1,tx3,ty3,color);
- FrameBuffer_line(f,tx2,ty2,tx3,ty3,color);
-
- } else {
-
- if (ty2 < ty1) {
- /* First process line segments between (x1,y1)-(x2,y2)
- And between (x1,y1),(x3,y3) */
-
- m1 = (double) (tx2 - tx1)/(double) (ty2 - ty1);
- m2 = (double) (tx3 - tx1)/(double) (ty3 - ty1);
-
- y = ty1;
- while (y >= ty2) {
- /* Calculate x values from slope */
- ix1 = (int) (m1*(y-ty1)+0.5) + tx1;
- ix2 = (int) (m2*(y-ty1)+0.5) + tx1;
- if (ix1 > ix2)
- FrameBuffer_horizontal(f,ix2,ix1,y,color);
- else
- FrameBuffer_horizontal(f,ix1,ix2,y,color);
- y--;
- }
- }
- if (ty3 < ty2) {
- /* Draw lower half of the triangle */
- m2 = (double) (tx3 - tx1)/(double) (ty3 - ty1);
- m3 = (double) (tx3 - tx2)/(double)(ty3 - ty2);
- y = ty2;
- while (y >= ty3) {
- ix1 = (int) (m3*(y-ty2)+0.5)+tx2;
- ix2 = (int) (m2*(y-ty1)+0.5)+tx1;
- if (ix1 > ix2)
- FrameBuffer_horizontal(f,ix2,ix1,y,color);
- else
- FrameBuffer_horizontal(f,ix1,ix2,y,color);
- y--;
- }
- }
- }
-}
-
-/* -------------------------------------------------------------------------
- FrameBuffer_interptriangle(FrameBuffer *f,
- int tx1, int ty2, Pixel c1,
- int tx2, int ty2, Pixel c2,
- int tx3, int ty3, Pixel c3)
-
- This function draws a filled triangle with color
- interpolation.
-
- General idea :
- 1. Transform the three points into screen coordinates
- 2. Order three points vertically on screen.
- 3. Check for degenerate cases (where 3 points are colinear).
- 4. Fill in the resulting triangle using horizontal lines.
- 5. Colors are interpolated between end points
- -------------------------------------------------------------------------- */
-
-void FrameBuffer_interptriangle(FrameBuffer *f,
- int tx1, int ty1, Pixel c1,
- int tx2, int ty2, Pixel c2,
- int tx3, int ty3, Pixel c3) {
- int tempx, tempy;
- double m1,m2,m3;
- double mc1,mc2,mc3;
- Pixel ic1,ic2,tempc;
- int y;
- int ix1, ix2;
-
- /* Figure out which point has the greatest "y" value */
-
- if (ty2 > ty1) { /* Swap points 1 and 2 if 2 is higher */
- tempx = tx1;
- tempy = ty1;
- tempc = c1;
- tx1 = tx2;
- ty1 = ty2;
- c1 = c2;
- tx2 = tempx;
- ty2 = tempy;
- c2 = tempc;
- }
- if (ty3 > ty1) { /* Swap points 1 and 3 if 3 is higher */
- tempx = tx1;
- tempy = ty1;
- tempc = c1;
- tx1 = tx3;
- ty1 = ty3;
- c1 = c3;
- tx3 = tempx;
- ty3 = tempy;
- c3 = tempc;
- }
- if (ty3 > ty2) { /* Swap points 2 and 3 if 3 is higher */
- tempx = tx2;
- tempy = ty2;
- tempc = c2;
- tx2 = tx3;
- ty2 = ty3;
- c2 = c3;
- tx3 = tempx;
- ty3 = tempy;
- c3 = tempc;
- }
-
- /* Points are now order so that t_1 is the highest point, t_2 is the
- middle point, and t_3 is the lowest point */
-
- /* Check for degenerate cases here */
-
- if ((ty1 == ty2) && (ty2 == ty3)) {
-
- /* Points are aligned horizontally. Handle as a special case */
- /* Just draw three lines using the outline color */
-
- if (tx2 > tx1)
- FrameBuffer_horizontalinterp(f,tx1,tx2,ty1,c1,c2);
- else
- FrameBuffer_horizontalinterp(f,tx2,tx1,ty1,c2,c1);
- if (tx3 > tx1)
- FrameBuffer_horizontalinterp(f,tx1,tx3,ty1,c1,c3);
- else
- FrameBuffer_horizontalinterp(f,tx3,tx1,ty1,c3,c1);
- if (tx3 > tx2)
- FrameBuffer_horizontalinterp(f,tx2,tx3,ty2,c2,c3);
- else
- FrameBuffer_horizontalinterp(f,tx3,tx2,ty2,c3,c2);
-
- } else {
-
- /* First process line segments between (x1,y1)-(x2,y2)
- And between (x1,y1),(x3,y3) */
-
- if (ty2 < ty1) {
- m1 = (double) (tx2 - tx1)/(double) (ty2 - ty1);
- m2 = (double) (tx3 - tx1)/(double) (ty3 - ty1);
- mc1 = (c2 - c1)/(double) (ty2 - ty1);
- mc2 = (c3 - c1)/(double) (ty3 - ty1);
-
- y = ty1;
- while (y >= ty2) {
- /* Calculate x values from slope */
- ix1 = (int) (m1*(y-ty1)+0.5) + tx1;
- ix2 = (int) (m2*(y-ty1)+0.5) + tx1;
- ic1 = (int) (mc1*(y-ty1) + c1);
- ic2 = (int) (mc2*(y-ty1) + c1);
- if (ix1 > ix2)
- FrameBuffer_horizontalinterp(f,ix2,ix1,y,ic2,ic1);
- else
- FrameBuffer_horizontalinterp(f,ix1,ix2,y,ic1,ic2);
- y--;
- }
- }
- if (ty3 < ty2) {
- /* Draw lower half of the triangle */
- m2 = (double) (tx3 - tx1)/(double) (ty3 - ty1);
- mc2 = (c3 - c1)/(double) (ty3 - ty1);
- m3 = (double) (tx3 - tx2)/(double)(ty3 - ty2);
- mc3 = (c3 - c2)/(double) (ty3 - ty2);
- y = ty2;
- while (y >= ty3) {
- ix1 = (int) (m3*(y-ty2)+0.5)+tx2;
- ix2 = (int) (m2*(y-ty1)+0.5)+tx1;
- ic1 = (int) (mc3*(y-ty2)+c2);
- ic2 = (int) (mc2*(y-ty1)+c1);
- if (ix1 > ix2)
- FrameBuffer_horizontalinterp(f,ix2,ix1,y,ic2,ic1);
- else
- FrameBuffer_horizontalinterp(f,ix1,ix2,y,ic1,ic2);
- y--;
- }
- }
- }
-}
-
-
diff --git a/Examples/GIFPlot/Lib/gif.c b/Examples/GIFPlot/Lib/gif.c
deleted file mode 100644
index 7953e5ce9..000000000
--- a/Examples/GIFPlot/Lib/gif.c
+++ /dev/null
@@ -1,672 +0,0 @@
-
-/**********************************************************************
- * GIFPlot 0.0
- *
- * Dave Beazley
- *
- * Department of Computer Science Theoretical Division (T-11)
- * University of Utah Los Alamos National Laboratory
- * Salt Lake City, Utah 84112 Los Alamos, New Mexico 87545
- * beazley@cs.utah.edu beazley@lanl.gov
- *
- * Copyright (c) 1996
- * The Regents of the University of California and the University of Utah
- * All Rights Reserved
- *
- * Permission is hereby granted, without written agreement and without
- * license or royalty fees, to use, copy, modify, and distribute this
- * software and its documentation for any purpose, provided that
- * (1) The above copyright notice and the following two paragraphs
- * appear in all copies of the source code and (2) redistributions
- * including binaries reproduces these notices in the supporting
- * documentation. Substantial modifications to this software may be
- * copyrighted by their authors and need not follow the licensing terms
- * described here, provided that the new terms are clearly indicated in
- * all files where they apply.
- *
- * IN NO EVENT SHALL THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, THE
- * UNIVERSITY OF UTAH OR DISTRIBUTORS OF THIS SOFTWARE BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
- * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION,
- * EVEN IF THE AUTHORS OR ANY OF THE ABOVE PARTIES HAVE BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- *
- * THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, AND THE UNIVERSITY OF UTAH
- * SPECIFICALLY DISCLAIM ANY WARRANTIES,INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
- * THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE,
- * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- *
- **************************************************************************/
-
-/*******************************************************************
- * Creates a GIF format file.
- *
- * Dave Beazley (T-11)
- * August 11, 1995
- *
- * Rather than writing directly to files, this module fills out
- * output buffer.
- *
- * Note : To save memory, this routine uses approximately 50K of the
- * output buffer as temporary storage (for hash tables and compression codes).
- * The remainder of the output buffer is used to store the final image.
- * This feature allows GIF images to be created with no additional
- * memory overhead.
- *
- * -- Revision History
- * $Log$
- * Revision 1.2 2003/09/01 16:23:31 beazley
- * Restored the 'mojo'.
- *
- * Revision 1.2 1996/09/25 22:39:30 dmb
- * Fixed prototypes and use of void pointers for compatibility with the Cray T3D
- *
- * Revision 1.1 1996/09/10 17:44:00 dmb
- * Initial revision
- *
- * Revision 1.2 1995/08/31 14:46:07 beazley
- * Minor changes to support comments and a few bug fixes.
- *
- *
- ******************************************************************/
-
-
-/*
- * xvgifwr.c - handles writing of GIF files. based on flgife.c and
- * flgifc.c from the FBM Library, by Michael Maudlin
- *
- * Contains:
- * WriteGIF(fp, pic, ptype, w, h, rmap, gmap, bmap, numcols, colorstyle,
- * comment)
- *
- * Note: slightly brain-damaged, in that it'll only write non-interlaced
- * GIF files (in the interests of speed, or something)
- *
- */
-
-
-
-/*****************************************************************
- * Portions of this code Copyright (C) 1989 by Michael Mauldin.
- * Permission is granted to use this file in whole or in
- * part for any purpose, educational, recreational or commercial,
- * provided that this copyright notice is retained unchanged.
- * This software is available to all free of charge by anonymous
- * FTP and in the UUNET archives.
- *
- *
- * Authors: Michael Mauldin (mlm@cs.cmu.edu)
- * David Rowley (mgardi@watdcsu.waterloo.edu)
- *
- * Based on: compress.c - File compression ala IEEE Computer, June 1984.
- *
- * Spencer W. Thomas (decvax!harpo!utah-cs!utah-gr!thomas)
- * Jim McKie (decvax!mcvax!jim)
- * Steve Davies (decvax!vax135!petsd!peora!srd)
- * Ken Turkowski (decvax!decwrl!turtlevax!ken)
- * James A. Woods (decvax!ihnp4!ames!jaw)
- * Joe Orost (decvax!vax135!petsd!joe)
- *****************************************************************/
-
-#include "gifplot.h"
-#include <string.h>
-typedef long int count_int;
-typedef unsigned char byte;
-
-static int gif_error;
-static unsigned char *op;
-static int Width, Height;
-static int curx, cury;
-static int Interlace;
-
-static void putgifword(int);
-static void compress(int, byte **, int);
-static void output_GIF(int);
-static void cl_block(void);
-static void cl_hash(count_int);
-static void char_init(void);
-static void char_out(int);
-static void flush_char(void);
-static void *OutBuffer;
-static int OutBufSize;
-static FrameBuffer *GIF_frame;
-
-static unsigned char pc2nc[256],r1[256],g1[256],b1[256];
-
-/*************************************************************/
-int FrameBuffer_makeGIF(FrameBuffer *f, ColorMap *c, void *outbuffer, unsigned int outbufsize)
-{
- int RWidth, RHeight;
- int LeftOfs, TopOfs;
- int ColorMapSize, InitCodeSize, Background, BitsPerPixel;
- int i,j,nc;
- char *rmap, *gmap, *bmap;
- char *cmap;
- int count;
-
- Interlace = 0;
- Background = 0;
- OutBuffer = outbuffer;
- OutBufSize = outbufsize;
- GIF_frame = f;
- cmap = (char *) c->cmap;
-
- op = (unsigned char *) outbuffer;
- gif_error = 0;
- for (i=0; i<256; i++) { pc2nc[i] = r1[i] = g1[i] = b1[i] = 0; }
-
- /* compute number of unique colors */
- nc = 0;
- rmap = &cmap[0];
- gmap = &cmap[256];
- bmap = &cmap[512];
-
- for (i=0; i<256; i++) {
- /* see if color #i is already used */
- for (j=0; j<i; j++) {
- if (rmap[i] == rmap[j] && gmap[i] == gmap[j] &&
- bmap[i] == bmap[j]) break;
- }
-
- if (j==i) { /* wasn't found */
- pc2nc[i] = nc;
- r1[nc] = rmap[i];
- g1[nc] = gmap[i];
- b1[nc] = bmap[i];
- nc++;
- }
- else pc2nc[i] = pc2nc[j];
- }
-
- /* figure out 'BitsPerPixel' */
- for (i=1; i<8; i++)
- if ( (1<<i) >= nc) break;
-
- BitsPerPixel = i;
-
- ColorMapSize = 1 << BitsPerPixel;
-
- RWidth = Width = f->width;
- RHeight = Height = f->height;
- LeftOfs = TopOfs = 0;
-
- if (BitsPerPixel <= 1) InitCodeSize = 2;
- else InitCodeSize = BitsPerPixel;
-
- curx = 0;
- cury = f->height - 1;
-
- strcpy((char *) op,"GIF89a"); /* Put in GIF magic number */
- op+=6;
- putgifword(RWidth); /* screen descriptor */
- putgifword(RHeight);
-
- i = 0x80; /* Yes, there is a color map */
- i |= (8-1)<<4; /* OR in the color resolution (hardwired 8) */
- i |= (BitsPerPixel - 1); /* OR in the # of bits per pixel */
- *(op++) = i;
- *(op++) = Background; /* background color */
- *(op++) = 0;
- for (i=0; i<ColorMapSize; i++) { /* write out Global colormap */
- *(op++) = r1[i];
- *(op++) = g1[i];
- *(op++) = b1[i];
- }
-
- *(op++) = ','; /* image separator */
-
- /* Write the Image header */
- putgifword(LeftOfs);
- putgifword(TopOfs);
- putgifword(Width);
- putgifword(Height);
- *(op++) = 0;
- *(op++) = InitCodeSize;
-
- compress(InitCodeSize+1, f->pixels, f->width*f->height);
-
- *(op++) = 0;
- *(op++) = ';';
-
- count = (op - (unsigned char *) OutBuffer);
- if (gif_error) return -1;
- else return count;
-}
-
-/******************************/
-static void putgifword(w)
-int w;
-{
- /* writes a 16-bit integer in GIF order (LSB first) */
- *(op++) = w & 0xff;
- *(op++) = (w>>8)&0xff;
-}
-
-/***********************************************************************/
-
-
-static unsigned long cur_accum = 0;
-static int cur_bits = 0;
-
-
-
-
-#define GP_BITS 12 /* BITS was already defined on some systems */
-
-#define HSIZE 5003 /* 80% occupancy */
-
-typedef unsigned char char_type;
-
-static int n_bits; /* number of bits/code */
-static int maxbits = GP_BITS; /* user settable max # bits/code */
-static int maxcode; /* maximum code, given n_bits */
-static int maxmaxcode = 1 << GP_BITS; /* NEVER generate this */
-
-#define MAXCODE(n_bits) ( (1 << (n_bits)) - 1)
-
-static count_int *htab;
-static unsigned short *codetab;
-static int GIFOutBufSize;
-
-/* static count_int htab [HSIZE];
-static unsigned short codetab [HSIZE]; */
-
-#define HashTabOf(i) htab[i]
-#define CodeTabOf(i) codetab[i]
-
-static int hsize = HSIZE; /* for dynamic table sizing */
-
-/*
- * To save much memory, we overlay the table used by compress() with those
- * used by decompress(). The tab_prefix table is the same size and type
- * as the codetab. The tab_suffix table needs 2**BITS characters. We
- * get this from the beginning of htab. The output stack uses the rest
- * of htab, and contains characters. There is plenty of room for any
- * possible stack (stack used to be 8000 characters).
- */
-
-#define tab_prefixof(i) CodeTabOf(i)
-#define tab_suffixof(i) ((char_type *)(htab))[i]
-#define de_stack ((char_type *)&tab_suffixof(1<<GP_BITS))
-
-static int free_ent = 0; /* first unused entry */
-
-/*
- * block compression parameters -- after all codes are used up,
- * and compression rate changes, start over.
- */
-static int clear_flg = 0;
-
-static long int out_count = 0; /* # of codes output (for debugging) */
-
-/*
- * compress stdin to stdout
- *
- * Algorithm: use open addressing double hashing (no chaining) on the
- * prefix code / next character combination. We do a variant of Knuth's
- * algorithm D (vol. 3, sec. 6.4) along with G. Knott's relatively-prime
- * secondary probe. Here, the modular division first probe is gives way
- * to a faster exclusive-or manipulation. Also do block compression with
- * an adaptive reset, whereby the code table is cleared when the compression
- * ratio decreases, but after the table fills. The variable-length output
- * codes are re-sized at this point, and a special CLEAR code is generated
- * for the decompressor. Late addition: construct the table according to
- * file size for noticeable speed improvement on small files. Please direct
- * questions about this implementation to ames!jaw.
- */
-
-static int g_init_bits;
-
-static int ClearCode;
-static int EOFCode;
-
-
-/********************************************************/
-static void compress(init_bits, data, len)
- int init_bits;
- unsigned char **data;
- int len;
-{
- register long fcode;
- register int i = 0;
- register int c;
- register int ent;
- register int disp;
- register int hsize_reg;
- register int hshift;
- int code_count = 0;
-
- /* Use the output buffer as temporary storage for GIF data */
-
- if (OutBufSize < HSIZE*(sizeof(count_int) + sizeof(unsigned short))) {
- gif_error =1;
- return;
- }
-
- /* Put htab and codetab arrays into the output buffer */
-
- GIFOutBufSize = OutBufSize - HSIZE*(sizeof(count_int) + sizeof(unsigned short)) - 16;
- GIFOutBufSize = GIFOutBufSize & (~0x3); /* Make sure it's double word alligned */
-
- htab = (count_int *) ((char *) OutBuffer + GIFOutBufSize);
- codetab = (unsigned short *) ((char *) OutBuffer + GIFOutBufSize + HSIZE*sizeof(count_int));
-
- /*
- * Set up the globals: g_init_bits - initial number of bits
- * g_outfile - pointer to output file
- */
- g_init_bits = init_bits;
-
-
- /* initialize 'compress' globals */
- maxbits = GP_BITS;
- maxmaxcode = 1<<GP_BITS;
- memset(htab,0,sizeof(htab));
- memset(codetab,0,sizeof(codetab));
- hsize = HSIZE;
- free_ent = 0;
- clear_flg = 0;
- out_count = 0;
- cur_accum = 0;
- cur_bits = 0;
-
- /*
- * Set up the necessary values
- */
- out_count = 0;
- clear_flg = 0;
- maxcode = MAXCODE(n_bits = g_init_bits);
-
- ClearCode = (1 << (init_bits - 1));
- EOFCode = ClearCode + 1;
- free_ent = ClearCode + 2;
-
- char_init();
- ent = pc2nc[data[cury][curx]];
- curx++;
- if (curx >= GIF_frame->width) {
- curx = 0;
- cury--;
- }
- len--;
-
- hshift = 0;
- for ( fcode = (long) hsize; fcode < 65536L; fcode *= 2L )
- hshift++;
- hshift = 8 - hshift; /* set hash code range bound */
-
- hsize_reg = hsize;
- cl_hash( (count_int) hsize_reg); /* clear hash table */
-
- output_GIF(ClearCode);
- while (len) {
- c = pc2nc[data[cury][curx]];
- curx++;
- if (curx >= GIF_frame->width) {
- curx = 0;
- cury--;
- }
- len--;
-
- fcode = (long) ( ( (long) c << maxbits) + ent);
- i = (((int) c << hshift) ^ ent); /* xor hashing */
-
- if ( HashTabOf (i) == fcode ) {
- ent = CodeTabOf (i);
- continue;
- }
-
- if ( (long)HashTabOf (i) < 0 ) /* empty slot */
- goto nomatch;
-
- disp = hsize_reg - i; /* secondary hash (after G. Knott) */
- if ( i == 0 )
- disp = 1;
-
-probe:
- if ( (i -= disp) < 0 )
- i += hsize_reg;
-
- if ( HashTabOf (i) == fcode ) {
- ent = CodeTabOf (i);
- continue;
- }
-
- if ( (long)HashTabOf (i) >= 0 )
- goto probe;
-
-nomatch:
- output_GIF(ent);
- out_count++;
- ent = c;
-
- if ( free_ent < maxmaxcode ) {
- CodeTabOf (i) = free_ent++; /* code -> hashtable */
- HashTabOf (i) = fcode;
- }
- else
- cl_block();
-
- }
- /* Put out the final code */
- output_GIF(ent);
- output_GIF(EOFCode);
-}
-
-
-/*****************************************************************
- * TAG( output_GIF )
- *
- * Output the given code.
- * Inputs:
- * code: A n_bits-bit integer. If == -1, then EOF. This assumes
- * that n_bits =< (long)wordsize - 1.
- * Outputs:
- * Outputs code to the file.
- * Assumptions:
- * Chars are 8 bits long.
- * Algorithm:
- * Maintain a BITS character long buffer (so that 8 codes will
- * fit in it exactly). Use the VAX insv instruction to insert each
- * code in turn. When the buffer fills up empty it and start over.
- */
-
-static
-unsigned long masks[] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F,
- 0x001F, 0x003F, 0x007F, 0x00FF,
- 0x01FF, 0x03FF, 0x07FF, 0x0FFF,
- 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF };
-
-static void output_GIF(code)
-int code;
-{
- cur_accum &= masks[cur_bits];
-
- if (cur_bits > 0)
- cur_accum |= ((long)code << cur_bits);
- else
- cur_accum = code;
-
- cur_bits += n_bits;
-
- while( cur_bits >= 8 ) {
- char_out( (int) (cur_accum & 0xff) );
- cur_accum >>= 8;
- cur_bits -= 8;
- }
-
- /*
- * If the next entry is going to be too big for the code size,
- * then increase it, if possible.
- */
-
- if (free_ent > maxcode || clear_flg) {
-
- if( clear_flg ) {
- maxcode = MAXCODE (n_bits = g_init_bits);
- clear_flg = 0;
- }
- else {
- n_bits++;
- if ( n_bits == maxbits )
- maxcode = maxmaxcode;
- else
- maxcode = MAXCODE(n_bits);
- }
- }
-
- if( code == EOFCode ) {
- /* At EOF, write the rest of the buffer */
- while( cur_bits > 0 ) {
- char_out( (int)(cur_accum & 0xff) );
- cur_accum >>= 8;
- cur_bits -= 8;
- }
-
- flush_char();
- }
-}
-
-
-/********************************/
-static void cl_block () /* table clear for block compress */
-{
- /* Clear out the hash table */
-
- cl_hash ( (count_int) hsize );
- free_ent = ClearCode + 2;
- clear_flg = 1;
-
- output_GIF(ClearCode);
-}
-
-
-/********************************/
-static void cl_hash(hsize) /* reset code table */
-register count_int hsize;
-{
- register count_int *htab_p = htab+hsize;
- register long i;
- register long m1 = -1;
-
- i = hsize - 16;
- do { /* might use Sys V memset(3) here */
- *(htab_p-16) = m1;
- *(htab_p-15) = m1;
- *(htab_p-14) = m1;
- *(htab_p-13) = m1;
- *(htab_p-12) = m1;
- *(htab_p-11) = m1;
- *(htab_p-10) = m1;
- *(htab_p-9) = m1;
- *(htab_p-8) = m1;
- *(htab_p-7) = m1;
- *(htab_p-6) = m1;
- *(htab_p-5) = m1;
- *(htab_p-4) = m1;
- *(htab_p-3) = m1;
- *(htab_p-2) = m1;
- *(htab_p-1) = m1;
- htab_p -= 16;
- } while ((i -= 16) >= 0);
-
- for ( i += 16; i > 0; i-- )
- *--htab_p = m1;
-}
-
-
-/******************************************************************************
- *
- * GIF Specific routines
- *
- ******************************************************************************/
-
-/*
- * Number of characters so far in this 'packet'
- */
-static int a_count;
-
-/*
- * Set up the 'byte output' routine
- */
-static void char_init()
-{
- a_count = 0;
-}
-
-/*
- * Define the storage for the packet accumulator
- */
-static char accum[ 256 ];
-
-/*
- * Add a character to the end of the current packet, and if it is 254
- * characters, flush the packet to disk.
- */
-static void char_out(c)
-int c;
-{
- accum[ a_count++ ] = c;
- if( a_count >= 254 )
- flush_char();
-}
-
-/*
- * Flush the packet to disk, and reset the accumulator
- */
-static void flush_char()
-{
- if (gif_error) return;
- if( a_count > 0 ) {
- *(op++) = a_count;
- memcpy(op,accum,a_count);
- op+=a_count;
- a_count = 0;
-
- if (op > (unsigned char *) ((char *) OutBuffer + (GIFOutBufSize - 2048))) {
- gif_error = 1;
- }
- }
-}
-
-
-/* ----------------------------------------------------------------------
- int FrameBuffer_writeGIF(char *filename)
-
- Write a GIF file to filename
- ----------------------------------------------------------------------- */
-
-int FrameBuffer_writeGIF(FrameBuffer *f, ColorMap *c, char *filename) {
-
- FILE *file;
- void *buffer;
- int nbytes;
- int bufsize;
-
- file = fopen(filename,"wb");
- if (file == NULL) return -1;
-
- bufsize = (f->width*f->height*3)/2;
- buffer = (void *) malloc(bufsize);
- nbytes = FrameBuffer_makeGIF(f,c,buffer,bufsize);
- if (nbytes == -1) {
- free(buffer);
- fclose(file);
- return -1;
- }
- if (fwrite(buffer,nbytes,1,file) != 1) {
- free(buffer);
- fclose(file);
- return -1;
- }
- fclose(file);
- free(buffer);
- return 0;
-}
-
-
-
-
-
diff --git a/Examples/GIFPlot/Lib/matrix.c b/Examples/GIFPlot/Lib/matrix.c
deleted file mode 100644
index ef0cf3aab..000000000
--- a/Examples/GIFPlot/Lib/matrix.c
+++ /dev/null
@@ -1,343 +0,0 @@
-/* -----------------------------------------------------------------------------
- * matrix.c
- *
- * Some 4x4 matrix operations
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- * Copyright (C) 1995-1996
- *
- * See the file LICENSE for information on usage and redistribution.
- * ----------------------------------------------------------------------------- */
-
-#define MATRIX
-#include "gifplot.h"
-#include <math.h>
-
-/* ------------------------------------------------------------------------
- Matrix new_Matrix()
-
- Create a new 4x4 matrix.
- ------------------------------------------------------------------------ */
-Matrix
-new_Matrix() {
- Matrix m;
- m = (Matrix) malloc(16*sizeof(double));
- return m;
-}
-
-/* ------------------------------------------------------------------------
- delete_Matrix(Matrix *m);
-
- Destroy a matrix
- ------------------------------------------------------------------------ */
-
-void
-delete_Matrix(Matrix m) {
- if (m)
- free((char *) m);
-}
-
-/* ------------------------------------------------------------------------
- Matrix Matrix_copy(Matrix a)
-
- Makes a copy of matrix a and returns it.
- ------------------------------------------------------------------------ */
-
-Matrix Matrix_copy(Matrix a) {
- int i;
- Matrix r = 0;
- if (a) {
- r = new_Matrix();
- if (r) {
- for (i = 0; i < 16; i++)
- r[i] = a[i];
- }
- }
- return r;
-}
-
-/* ------------------------------------------------------------------------
- Matrix_multiply(Matrix a, Matrix b, Matrix c)
-
- Multiplies a*b = c
- c may be one of the source matrices
- ------------------------------------------------------------------------ */
-void
-Matrix_multiply(Matrix a, Matrix b, Matrix c) {
- double temp[16];
- int i,j,k;
-
- for (i =0; i < 4; i++)
- for (j = 0; j < 4; j++) {
- temp[i*4+j] = 0.0;
- for (k = 0; k < 4; k++)
- temp[i*4+j] += a[i*4+k]*b[k*4+j];
- }
- for (i = 0; i < 16; i++)
- c[i] = temp[i];
-}
-
-/* ------------------------------------------------------------------------
- Matrix_identity(Matrix a)
-
- Puts an identity matrix in matrix a
- ------------------------------------------------------------------------ */
-
-void
-Matrix_identity(Matrix a) {
- int i;
- for (i = 0; i < 16; i++) a[i] = 0;
- a[0] = 1;
- a[5] = 1;
- a[10] = 1;
- a[15] = 1;
-}
-
-/* ------------------------------------------------------------------------
- Matrix_zero(Matrix a)
-
- Puts a zero matrix in matrix a
- ------------------------------------------------------------------------ */
-void
-Matrix_zero(Matrix a) {
- int i;
- for (i = 0; i < 16; i++) a[i] = 0;
-}
-
-/* ------------------------------------------------------------------------
- Matrix_transpose(Matrix a, Matrix result)
-
- Transposes matrix a and puts it in result.
- ------------------------------------------------------------------------ */
-void
-Matrix_transpose(Matrix a, Matrix result) {
- double temp[16];
- int i,j;
-
- for (i = 0; i < 4; i++)
- for (j = 0; j < 4; j++)
- temp[4*i+j] = a[4*j+i];
-
- for (i = 0; i < 16; i++)
- result[i] = temp[i];
-}
-
-
-/* ------------------------------------------------------------------------
- Matrix_gauss(Matrix a, Matrix b)
-
- Solves ax=b for x, using Gaussian elimination. Destroys a.
- Really only used for calculating inverses of 4x4 transformation
- matrices.
- ------------------------------------------------------------------------ */
-
-void Matrix_gauss(Matrix a, Matrix b) {
- int ipiv[4], indxr[4], indxc[4];
- int i,j,k,l,ll;
- int irow=0, icol=0;
- double big, pivinv;
- double dum;
- for (j = 0; j < 4; j++)
- ipiv[j] = 0;
- for (i = 0; i < 4; i++) {
- big = 0;
- for (j = 0; j < 4; j++) {
- if (ipiv[j] != 1) {
- for (k = 0; k < 4; k++) {
- if (ipiv[k] == 0) {
- if (fabs(a[4*j+k]) >= big) {
- big = fabs(a[4*j+k]);
- irow = j;
- icol = k;
- }
- } else if (ipiv[k] > 1)
- return; /* Singular matrix */
- }
- }
- }
- ipiv[icol] = ipiv[icol]+1;
- if (irow != icol) {
- for (l = 0; l < 4; l++) {
- dum = a[4*irow+l];
- a[4*irow+l] = a[4*icol+l];
- a[4*icol+l] = dum;
- }
- for (l = 0; l < 4; l++) {
- dum = b[4*irow+l];
- b[4*irow+l] = b[4*icol+l];
- b[4*icol+l] = dum;
- }
- }
- indxr[i] = irow;
- indxc[i] = icol;
- if (a[4*icol+icol] == 0) return;
- pivinv = 1.0/a[4*icol+icol];
- a[4*icol+icol] = 1.0;
- for (l = 0; l < 4; l++)
- a[4*icol+l] = a[4*icol+l]*pivinv;
- for (l = 0; l < 4; l++)
- b[4*icol+l] = b[4*icol+l]*pivinv;
- for (ll = 0; ll < 4; ll++) {
- if (ll != icol) {
- dum = a[4*ll+icol];
- a[4*ll+icol] = 0;
- for (l = 0; l < 4; l++)
- a[4*ll+l] = a[4*ll+l] - a[4*icol+l]*dum;
- for (l = 0; l < 4; l++)
- b[4*ll+l] = b[4*ll+l] - b[4*icol+l]*dum;
- }
- }
- }
- for (l = 3; l >= 0; l--) {
- if (indxr[l] != indxc[l]) {
- for (k = 0; k < 4; k++) {
- dum = a[4*k+indxr[l]];
- a[4*k+indxr[l]] = a[4*k+indxc[l]];
- a[4*k+indxc[l]] = dum;
- }
- }
- }
-}
-
-/* ------------------------------------------------------------------------
- Matrix_invert(Matrix a, Matrix inva)
-
- Inverts Matrix a and places the result in inva.
- Relies on the Gaussian Elimination code above. (See Numerical recipes).
- ------------------------------------------------------------------------ */
-void
-Matrix_invert(Matrix a, Matrix inva) {
-
- double temp[16];
- int i;
-
- for (i = 0; i < 16; i++)
- temp[i] = a[i];
- Matrix_identity(inva);
- Matrix_gauss(temp,inva);
-}
-
-/* ------------------------------------------------------------------------
- Matrix_transform(Matrix a, GL_Vector *r, GL_Vector *t)
-
- Transform a vector. a*r ----> t
- ------------------------------------------------------------------------ */
-
-void Matrix_transform(Matrix a, GL_Vector *r, GL_Vector *t) {
-
- double rx, ry, rz, rw;
-
- rx = r->x;
- ry = r->y;
- rz = r->z;
- rw = r->w;
- t->x = a[0]*rx + a[1]*ry + a[2]*rz + a[3]*rw;
- t->y = a[4]*rx + a[5]*ry + a[6]*rz + a[7]*rw;
- t->z = a[8]*rx + a[9]*ry + a[10]*rz + a[11]*rw;
- t->w = a[12]*rx + a[13]*ry + a[14]*rz + a[15]*rw;
-}
-
-/* ------------------------------------------------------------------------
- Matrix_transform4(Matrix a, double x, double y, double z, double w, GL_Vector *t)
-
- Transform a vector from a point specified as 4 doubles
- ------------------------------------------------------------------------ */
-
-void Matrix_transform4(Matrix a, double rx, double ry, double rz, double rw,
- GL_Vector *t) {
-
- t->x = a[0]*rx + a[1]*ry + a[2]*rz + a[3]*rw;
- t->y = a[4]*rx + a[5]*ry + a[6]*rz + a[7]*rw;
- t->z = a[8]*rx + a[9]*ry + a[10]*rz + a[11]*rw;
- t->w = a[12]*rx + a[13]*ry + a[14]*rz + a[15]*rw;
-}
-
-/* ---------------------------------------------------------------------
- Matrix_translate(Matrix a, double tx, double ty, double tz)
-
- Put a translation matrix in Matrix a
- ---------------------------------------------------------------------- */
-
-void Matrix_translate(Matrix a, double tx, double ty, double tz) {
- Matrix_identity(a);
- a[3] = tx;
- a[7] = ty;
- a[11] = tz;
- a[15] = 1;
-}
-
-/* -----------------------------------------------------------------------
- Matrix_rotatex(Matrix a, double deg)
-
- Produce an x-rotation matrix for given angle in degrees.
- ----------------------------------------------------------------------- */
-void
-Matrix_rotatex(Matrix a, double deg) {
- double r;
-
- r = 3.1415926*deg/180.0;
- Matrix_zero(a);
- a[0] = 1.0;
- a[5] = cos(r);
- a[6] = -sin(r);
- a[9] = sin(r);
- a[10] = cos(r);
- a[15] = 1.0;
-}
-
-/* -----------------------------------------------------------------------
- Matrix_rotatey(Matrix a, double deg)
-
- Produce an y-rotation matrix for given angle in degrees.
- ----------------------------------------------------------------------- */
-void
-Matrix_rotatey(Matrix a, double deg) {
- double r;
-
- r = 3.1415926*deg/180.0;
- Matrix_zero(a);
- a[0] = cos(r);
- a[2] = sin(r);
- a[5] = 1.0;
- a[8] = -sin(r);
- a[10] = cos(r);
- a[15] = 1;
-
-}
-/* -----------------------------------------------------------------------
- Matrix_RotateZ(Matrix a, double deg)
-
- Produce an z-rotation matrix for given angle in degrees.
- ----------------------------------------------------------------------- */
-void
-Matrix_rotatez(Matrix a, double deg) {
- double r;
-
- r = 3.1415926*deg/180.0;
- Matrix_zero(a);
- a[0] = cos(r);
- a[1] = -sin(r);
- a[4] = sin(r);
- a[5] = cos(r);
- a[10] = 1.0;
- a[15] = 1.0;
-}
-
-
-/* A debugging routine */
-
-void Matrix_set(Matrix a, int i, int j, double val) {
- a[4*j+i] = val;
-}
-
-void Matrix_print(Matrix a) {
- int i,j;
- for (i = 0; i < 4; i++) {
- for (j = 0; j < 4; j++) {
- fprintf(stdout,"%10f ",a[4*i+j]);
- }
- fprintf(stdout,"\n");
- }
- fprintf(stdout,"\n");
-}
-
diff --git a/Examples/GIFPlot/Lib/pixmap.c b/Examples/GIFPlot/Lib/pixmap.c
deleted file mode 100644
index a55cf041f..000000000
--- a/Examples/GIFPlot/Lib/pixmap.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* -----------------------------------------------------------------------------
- * pixmap.c
- *
- * Pixel maps (i.e., bitmaps)
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- * Copyright (C) 1995-1996
- *
- * See the file LICENSE for information on usage and redistribution.
- * ----------------------------------------------------------------------------- */
-
-#define PIXMAP
-#include "gifplot.h"
-
-/* -----------------------------------------------------------------------
- PixMap *new_PixMap(int width, int height, int centerx, int centery)
-
- Create a new pixmap of given size
- ----------------------------------------------------------------------- */
-PixMap *new_PixMap(int width, int height, int centerx, int centery) {
- PixMap *pm;
- if ((width > 0) && (height > 0)) {
- pm = (PixMap *) malloc(sizeof(PixMap));
- pm->width = width;
- pm->height = height;
- pm->centerx = centerx;
- pm->centery = centery;
- pm->map = (int *) malloc(height*width*sizeof(int));
- return pm;
- }
- return (PixMap *) 0;
-}
-
-/* --------------------------------------------------------------------------
- void delete_PixMap(PixMap *pm)
-
- Destroy a pixmap
- -------------------------------------------------------------------------- */
-
-void delete_PixMap(PixMap *pm) {
- if (pm) {
- free((char *) pm->map);
- free((char *) pm);
- }
-}
-
-/* ---------------------------------------------------------------------------
- void PixMap_set(PixMap *pm, int x, int y, int pix)
-
- Set a pixel in the bitmap
- --------------------------------------------------------------------------- */
-void
-PixMap_set(PixMap *pm, int x, int y, int pix) {
- if ((x < 0) || (x>=pm->width)) return;
- if ((y < 0) || (y>=pm->height)) return;
-
- pm->map[pm->width*y + x] = pix;
-}
-
-/* -----------------------------------------------------------------------------
- void FrameBuffer_drawpixmap(FrameBuffer *f, PixMap *pm, int x, int y, int fgcolor, int bgcolor)
-
- Draw a pixmap onto the framebuffer. This is somewhat optimized for speed.
- ------------------------------------------------------------------------------ */
-
-void
-FrameBuffer_drawpixmap(FrameBuffer *f, PixMap *pm, int x, int y, int fgcolor, int bgcolor) {
-
- int startx, starty; /* Starting location on framebuffer */
- int startpixx = 0, startpixy = 0; /* Starting location in pixmap */
- int endx, endy; /* Ending location on framebuffer */
- int i,j, px, py;
- int c;
-
- startx = x - pm->centerx;
- starty = y + pm->centery;
- endx = startx + pm->width;
- endy = starty - pm->height;
-
- /* Figure out if we need to clip */
-
- if (startx < f->xmin) {
- startpixx = f->xmin - startx;
- startx = f->xmin;
- }
- if (starty >= f->ymax) {
- startpixy = starty - f->ymax;
- starty = f->ymax-1;
- }
- if (endx >= f->xmax) {
- endx = f->xmax-1;
- }
- if (endy < f->ymin) {
- endy = f->ymin;
- }
- py = startpixy;
- for (j = starty; j >= endy; j--) {
- px = startpixx;
- for (i = startx; i < endx; i++) {
- c = pm->map[py*pm->width + px];
- switch (c) {
- case GIFPLOT_FOREGROUND:
- f->pixels[j][i] = fgcolor;
- break;
- case GIFPLOT_BACKGROUND:
- f->pixels[j][i] = bgcolor;
- break;
- default:
- break;
- }
- px++;
- }
- py++;
- }
-}
-
-/**************************************************************************
- * Some common PixMaps (for plotting)
- *
- **************************************************************************/
-
-int _SQUARE_MAP[] = {
- 0,1,1,1,1,1,1,1,
- 0,1,1,1,1,1,1,1,
- 0,1,1,1,1,1,1,1,
- 0,1,1,1,1,1,1,1,
- 0,1,1,1,1,1,1,1,
- 0,1,1,1,1,1,1,1,
- 0,1,1,1,1,1,1,1,
- 0,0,0,0,0,0,0,0 };
-
-PixMap PixMap_SQUARE = { 8,8,4,4, _SQUARE_MAP};
-
-int _TRIANGLE_MAP[] = {
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,1,1,1,0,0,0,
- 0,0,1,1,1,0,0,0,
- 0,1,1,1,1,1,0,0,
- 0,1,1,1,1,1,0,0,
- 1,1,1,1,1,1,1,0,
- 0,0,0,0,0,0,0,0 };
-
-PixMap PixMap_TRIANGLE = { 8,8,4,4,_TRIANGLE_MAP};
-
-int _CROSS_MAP[] = {
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 1,1,1,1,1,1,1,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,0,0,0,0,0 };
-
-PixMap PixMap_CROSS = { 8,8,4,4,_CROSS_MAP};
-
-
-
diff --git a/Examples/GIFPlot/Lib/plot2d.c b/Examples/GIFPlot/Lib/plot2d.c
deleted file mode 100644
index e78107bf1..000000000
--- a/Examples/GIFPlot/Lib/plot2d.c
+++ /dev/null
@@ -1,445 +0,0 @@
-/* -----------------------------------------------------------------------------
- * plot2d.c
- *
- * 2-Dimensional plotting
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- * Copyright (C) 1995-1996
- *
- * See the file LICENSE for information on usage and redistribution.
- * ----------------------------------------------------------------------------- */
-
-#define PLOT2D
-
-#include "gifplot.h"
-
-/* ------------------------------------------------------------------------
- Plot2D *new_Plot2D(FrameBuffer *frame, xmin, ymin, xmax, ymax)
-
- Create a new 2D plot with given minimum and maximum coordinates.
- ------------------------------------------------------------------------ */
-Plot2D *new_Plot2D(FrameBuffer *frame,double xmin,double ymin,double xmax,double ymax) {
- Plot2D *p2;
- if (frame) {
- if (xmax <= xmin) return (Plot2D *) 0;
- if (ymax <= ymin) return (Plot2D *) 0;
- p2 = (Plot2D *) malloc(sizeof(Plot2D));
- p2->frame = frame;
- p2->xmin = xmin;
- p2->ymin = ymin;
- p2->xmax = xmax;
- p2->ymax = ymax;
- p2->view_xmin = 0;
- p2->view_xmax = frame->width;
- p2->view_ymin = 0;
- p2->view_ymax = frame->height;
- p2->xscale = LINEAR;
- p2->yscale = LINEAR;
- p2->dx = (p2->view_xmax - p2->view_xmin)/(p2->xmax - p2->xmin);
- p2->dy = (p2->view_ymax - p2->view_ymin)/(p2->ymax - p2->ymin);
- return p2;
- }
- return (Plot2D *) 0;
-}
-
-/* ----------------------------------------------------------------------------
- delete_Plot2D(Plot2D *p2)
-
- Delete a 2D plot
- ---------------------------------------------------------------------------- */
-void
-delete_Plot2D(Plot2D *p2) {
- if (p2)
- free((char *) p2);
-}
-
-/* -----------------------------------------------------------------------------
- Plot2D *Plot2D_copy(Plot2D *p2)
-
- Makes a copy of the Plot2D data structure.
- ----------------------------------------------------------------------------- */
-
-Plot2D *Plot2D_copy(Plot2D *p2) {
- Plot2D *c2;
- if (p2) {
- c2 = (Plot2D *) malloc(sizeof(Plot2D));
- if (c2) {
- c2->frame = p2->frame;
- c2->view_xmin = p2->view_xmin;
- c2->view_ymin = p2->view_ymin;
- c2->view_xmax = p2->view_xmax;
- c2->view_ymax = p2->view_ymax;
- c2->xmin = p2->xmin;
- c2->ymin = p2->ymin;
- c2->xmax = p2->xmax;
- c2->ymax = p2->ymax;
- c2->xscale = p2->xscale;
- c2->yscale = p2->yscale;
- c2->dx = p2->dx;
- c2->dy = p2->dy;
- }
- return c2;
- } else {
- return (Plot2D *) 0;
- }
-}
-
-/* -----------------------------------------------------------------------------
- Plot2D_clear(Plot2D *p2, Pixel c)
-
- Clear the region assigned to this plot to the given color.
- -------------------------------------------------------------------------- */
-
-void Plot2D_clear(Plot2D *p2, Pixel c) {
- int i,j;
- for (i = p2->view_xmin; i < p2->view_xmax; i++)
- for (j = p2->view_ymin; j < p2->view_ymax; j++) {
- p2->frame->pixels[j][i] = c;
- }
-}
-
-/* ------------------------------------------------------------------------------
- Plot2D_setview
-
- Sets the plot region on the framebuffer
- ------------------------------------------------------------------------------ */
-
-void
-Plot2D_setview(Plot2D *p2, int vxmin, int vymin, int vxmax, int vymax) {
- if (p2) {
- p2->view_xmin = vxmin;
- p2->view_ymin = vymin;
- p2->view_xmax = vxmax;
- p2->view_ymax = vymax;
- p2->dx = (p2->view_xmax - p2->view_xmin)/(p2->xmax - p2->xmin);
- p2->dy = (p2->view_ymax - p2->view_ymin)/(p2->ymax - p2->ymin);
- FrameBuffer_setclip(p2->frame,vxmin,vymin,vxmax,vymax);
- }
-}
-
-/* -------------------------------------------------------------------------------
- Plot2D_setrange(Plot2D *p2, double xmin, double ymin, double xmax, double ymax)
-
- Sets the plotting range.
- ------------------------------------------------------------------------------- */
-
-void
-Plot2D_setrange(Plot2D *p2, double xmin, double ymin, double xmax, double ymax) {
- if (p2) {
- p2->xmin = xmin;
- p2->ymin = ymin;
- p2->xmax = xmax;
- p2->ymax = ymax;
- p2->dx = (p2->view_xmax - p2->view_xmin)/(p2->xmax - p2->xmin);
- p2->dy = (p2->view_ymax - p2->view_ymin)/(p2->ymax - p2->ymin);
- }
-}
-
-/* -------------------------------------------------------------------------------
- Plot2D_setscale(Plot2D *p2, int xscale, int yscale)
-
- Sets the plotting scaling method
- ------------------------------------------------------------------------------- */
-
-void
-Plot2D_setscale(Plot2D *p2, int xscale, int yscale) {
- if (p2) {
- p2->xscale = xscale;
- p2->yscale = yscale;
- }
-}
-
-/* ----------------------------------------------------------------------------
- Plot2D_transform(Plot2D *p2, double x, double y, int *px, int *py)
-
- Transforms x,y into screen coordinates px and py. Result is returned
- in px and py. Rounds to the nearest pixel instead of truncating.
- ----------------------------------------------------------------------------- */
-
-void
-Plot2D_transform(Plot2D *p2, double x, double y, int *px, int *py) {
- if (p2) {
- *px = p2->view_xmin + (int) (p2->dx*(x-p2->xmin) + 0.5);
- *py = p2->view_ymin + (int) (p2->dy*(y-p2->ymin) + 0.5);
- }
-}
-
-/* -------------------------------------------------------------------------------
- Plot2D_plot(Plot2D *p2, double x, double y, Pixel color)
-
- Plot a 2D Point of a given color
- ------------------------------------------------------------------------------- */
-void
-Plot2D_plot(Plot2D *p2, double x, double y, Pixel color) {
- int px, py;
-
- Plot2D_transform(p2,x,y,&px,&py);
- FrameBuffer_plot(p2->frame, px, py, color);
-}
-
-/* -------------------------------------------------------------------------------
- Plot2D_box(Plot2D *p2, double x1, double y1, double x2, double y2, Pixel Color)
-
- Plot an outline box on the 2D plot
- ------------------------------------------------------------------------------- */
-void
-Plot2D_box(Plot2D *p2, double x1, double y1,double x2, double y2, Pixel color) {
- int ix1, ix2,iy1, iy2;
-
- Plot2D_transform(p2,x1,y1,&ix1,&iy1);
- Plot2D_transform(p2,x2,y2,&ix2,&iy2);
- FrameBuffer_box(p2->frame,ix1,iy1,ix2,iy2,color);
-}
-
-/* -------------------------------------------------------------------------------
- Plot2D_solidbox(Plot2D *p2, double x1, double y1, double x2, double y2, Pixel Color)
-
- Plot a solid box box on the 2D plot
- ------------------------------------------------------------------------------- */
-void
-Plot2D_solidbox(Plot2D *p2, double x1, double y1,double x2, double y2, Pixel color) {
- int ix1, ix2,iy1, iy2;
-
- Plot2D_transform(p2,x1,y1,&ix1,&iy1);
- Plot2D_transform(p2,x2,y2,&ix2,&iy2);
- FrameBuffer_solidbox(p2->frame,ix1,iy1,ix2,iy2,color);
-}
-
-/* -------------------------------------------------------------------------------
- Plot2D_interpbox(Plot2D *p2, double x1, double y1, double x2, double y2,
- Pixel c1, Pixel c2, Pixel c3, Pixel c4)
-
- Plot a color-interpolated box on the 2D plot
- ------------------------------------------------------------------------------- */
-void
-Plot2D_interpbox(Plot2D *p2, double x1, double y1,double x2, double y2,
- Pixel c1, Pixel c2, Pixel c3, Pixel c4) {
- int ix1, ix2,iy1, iy2;
-
- Plot2D_transform(p2,x1,y1,&ix1,&iy1);
- Plot2D_transform(p2,x2,y2,&ix2,&iy2);
- FrameBuffer_interpbox(p2->frame,ix1,iy1,ix2,iy2,c1,c2,c3,c4);
-}
-
-/* -------------------------------------------------------------------------------
- Plot2D_circle(Plot2D *p2, double x, double y, double radius, Pixel color)
-
- Make an outline circle on the 2D plot.
- ------------------------------------------------------------------------------- */
-void
-Plot2D_circle(Plot2D *p2, double x, double y, double radius, Pixel color) {
- int ix, iy, ir;
-
- Plot2D_transform(p2,x,y,&ix,&iy);
- ir = p2->dx * radius; /* This is really incorrect. Will need ellipse */
- if (ir > 1)
- FrameBuffer_circle(p2->frame,ix,iy,ir,color);
- else
- FrameBuffer_plot(p2->frame,ix,iy,color);
-
-}
-
-/* -------------------------------------------------------------------------------
- Plot2D_solidcircle(Plot2D *p2, double x, double y, double radius, Pixel color)
-
- Make an solid circle on the 2D plot.
- ------------------------------------------------------------------------------- */
-void
-Plot2D_solidcircle(Plot2D *p2, double x, double y, double radius, Pixel color) {
- int ix, iy, ir;
-
- Plot2D_transform(p2,x,y,&ix,&iy);
- ir = p2->dx * radius; /* This is really incorrect. Will need ellipse */
- if (ir > 1)
- FrameBuffer_solidcircle(p2->frame,ix,iy,ir,color);
- else
- FrameBuffer_plot(p2->frame,ix,iy,color);
-}
-
-/* -------------------------------------------------------------------------------
- Plot2D_line(Plot2D *p2, double x1, double y1, double x2, double y2, Pixel color)
-
- Draw a line
- ------------------------------------------------------------------------------- */
-
-void
-Plot2D_line(Plot2D *p2, double x1, double y1, double x2, double y2, Pixel color) {
- int ix1, ix2, iy1, iy2;
-
- Plot2D_transform(p2,x1,y1,&ix1,&iy1);
- Plot2D_transform(p2,x2,y2,&ix2,&iy2);
- FrameBuffer_line(p2->frame,ix1,iy1,ix2,iy2,color);
-}
-
-
-
-/* -------------------------------------------------------------------------------
- Plot2D_start(Plot2D *p2)
-
- This should be called before starting to make a 2D plot. It will change
- the viewport coordinates for the framebuffer and do other stuff.
- ------------------------------------------------------------------------------- */
-
-void Plot2D_start(Plot2D *p2) {
- if (p2) {
- FrameBuffer_setclip(p2->frame, p2->view_xmin,p2->view_ymin,p2->view_xmax, p2->view_ymax);
- p2->dx = (p2->view_xmax - p2->view_xmin)/(p2->xmax - p2->xmin);
- p2->dy = (p2->view_ymax - p2->view_ymin)/(p2->ymax - p2->ymin);
- }
-}
-
-/* --------------------------------------------------------------------------
- void Plot2D_drawpixmap(Plot2D *p2, PixMap *pm, double x, double y, Pixel color, Pixel bgcolor)
-
- Draw a pixel map at the given coordinates. (Used for putting symbols on 2D
- plots).
- -------------------------------------------------------------------------- */
-void
-Plot2D_drawpixmap(Plot2D *p2, PixMap *pm, double x, double y, Pixel color, Pixel bgcolor) {
- int ix, iy;
-
- Plot2D_transform(p2,x,y,&ix,&iy);
- FrameBuffer_drawpixmap(p2->frame,pm,ix,iy,color,bgcolor);
-}
-
-/* ----------------------------------------------------------------------------
- void Plot2D_xaxis(Plot2D *p2, double x, double y, double xtick, int ticklength, Pixel color)
-
- Draw an X axis bar at location x,y with ticks spaced every xtick units.
- Ticks are spaced starting at "x"
- ----------------------------------------------------------------------------- */
-
-void Plot2D_xaxis(Plot2D *p2, double x, double y, double xtick, int ticklength, Pixel color) {
- int ix, iy,iy2;
- double xt;
-
- /* Draw a line fox the axis */
-
- Plot2D_line(p2,p2->xmin,y,p2->xmax,y,color);
- xt = x;
- while (xt >= p2->xmin) {
- Plot2D_transform(p2,xt,y,&ix,&iy);
- iy2 = iy+ticklength;
- iy = iy-ticklength;
- FrameBuffer_line(p2->frame,ix,iy,ix,iy2,color);
- xt = xt - xtick;
- }
- xt = x + xtick;
- while (xt < p2->xmax) {
- Plot2D_transform(p2,xt,y,&ix,&iy);
- iy2 = iy+ticklength;
- iy = iy-ticklength;
- FrameBuffer_line(p2->frame,ix,iy,ix,iy2,color);
- xt = xt + xtick;
- }
-}
-
-
-/* ----------------------------------------------------------------------------
- void Plot2D_yaxis(Plot2D *p2, double x, double y, double ytick, int ticklength, Pixel c)
-
- Draw an Y axis bar at location x,y with ticks spaced every xtick units.
- Ticks are spaced starting at "y"
- ----------------------------------------------------------------------------- */
-
-void Plot2D_yaxis(Plot2D *p2, double x, double y, double ytick, int ticklength, Pixel color) {
- int ix, iy, ix2;
- double yt;
-
- /* Draw a line fox the axis */
-
- Plot2D_line(p2,x,p2->ymin,x,p2->ymax,color);
- yt = y;
- while (yt >= p2->ymin) {
- Plot2D_transform(p2,x,yt,&ix,&iy);
- ix2 = ix+ticklength;
- ix = ix-ticklength;
- FrameBuffer_line(p2->frame,ix,iy,ix2,iy,color);
- yt = yt - ytick;
- }
- yt = y + ytick;
- while (yt < p2->ymax) {
- Plot2D_transform(p2,x,yt,&ix,&iy);
- ix2 = ix+ticklength;
- ix = ix-ticklength;
- FrameBuffer_line(p2->frame,ix,iy,ix2,iy,color);
- yt = yt + ytick;
- }
-}
-
-
-/* -------------------------------------------------------------------------
- Plot2D_triangle(Plot2D *p2, double x1, double y1,
- double x2, double y2,
- double x3, double y3,
- Pixel fillcolor)
-
- This function draws a 2D outline triangle.
- -------------------------------------------------------------------------- */
-
-void Plot2D_triangle(Plot2D *p2, double x1, double y1,
- double x2, double y2,
- double x3, double y3, Pixel color) {
-
- Plot2D_line(p2,x1,y1,x2,y2,color);
- Plot2D_line(p2,x2,y2,x3,y3,color);
- Plot2D_line(p2,x3,y3,x1,y1,color);
-
-}
-
-
-/* -------------------------------------------------------------------------
- Plot2D_solidtriangle(Plot2D *p2, double x1, double y1,
- double x2, double y2,
- double x3, double y3,
- Pixel color)
-
- This function draws a 2D filled triangle. Can be used to
- draw other primitives such as quadralaterals, etc...
-
- -------------------------------------------------------------------------- */
-
-void Plot2D_solidtriangle(Plot2D *p2, double x1, double y1,
-
- double x2, double y2,
- double x3, double y3, Pixel color) {
-
- int tx1, tx2, tx3, ty1, ty2, ty3;
-
- /* Transform the three points into screen coordinates */
-
- Plot2D_transform(p2,x1,y1,&tx1,&ty1);
- Plot2D_transform(p2,x2,y2,&tx2,&ty2);
- Plot2D_transform(p2,x3,y3,&tx3,&ty3);
-
- FrameBuffer_solidtriangle(p2->frame,tx1,ty1,tx2,ty2,tx3,ty3,color);
-
-}
-
-/* -------------------------------------------------------------------------
- Plot2D_interptriangle(Plot2D *p2, double x1, double y1, Pixel c1,
- double x2, double y2, Pixel c2,
- double x3, double y3, Pixel c3);
-
- This function draws a 2D filled triangle with color interpolation.
- Can be used to draw other primitives such as quadralaterals, etc...
- -------------------------------------------------------------------------- */
-
-void Plot2D_interptriangle(Plot2D *p2, double x1, double y1, Pixel c1,
- double x2, double y2, Pixel c2,
- double x3, double y3, Pixel c3) {
-
- int tx1, tx2, tx3, ty1, ty2, ty3;
-
- /* Transform the three points into screen coordinates */
-
- Plot2D_transform(p2,x1,y1,&tx1,&ty1);
- Plot2D_transform(p2,x2,y2,&tx2,&ty2);
- Plot2D_transform(p2,x3,y3,&tx3,&ty3);
-
- FrameBuffer_interptriangle(p2->frame,tx1,ty1,c1,tx2,ty2,c2,tx3,ty3,c3);
-
-}
-
-
-
diff --git a/Examples/GIFPlot/Lib/plot3d.c b/Examples/GIFPlot/Lib/plot3d.c
deleted file mode 100644
index 387e420e2..000000000
--- a/Examples/GIFPlot/Lib/plot3d.c
+++ /dev/null
@@ -1,2181 +0,0 @@
-/* -----------------------------------------------------------------------------
- * plot3d.c
- *
- * Three-dimensional plotting.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- * Copyright (C) 1995-1996
- *
- * See the file LICENSE for information on usage and redistribution.
- * ----------------------------------------------------------------------------- */
-
-#define PLOT3D
-#include "gifplot.h"
-#include <math.h>
-#include <float.h>
-
-#define ORTHO 1
-#define PERSPECTIVE 2
-/* ------------------------------------------------------------------------
- Plot3D *new_Plot3D(FrameBuffer *f, double xmin, double ymin, double zmin,
- double xmax, double ymax, double zmax)
-
- Creates a new 3D plot. Min and max coordinates are primarily used to
- pick some default parameters. Returns NULL on failure
- ------------------------------------------------------------------------- */
-
-Plot3D *new_Plot3D(FrameBuffer *f, double xmin, double ymin, double zmin,
- double xmax, double ymax, double zmax) {
-
- Plot3D *p3;
- void Plot3D_maketransform(Plot3D *p3);
-
- /* Check to make sure the framebuffer and min/max parameters are valid */
-
- if (!f) return (Plot3D *) 0;
- if ((xmin > xmax) || (ymin > ymax) || (zmin > zmax)) return (Plot3D *) 0;
-
- p3 = (Plot3D *) malloc(sizeof(Plot3D));
- p3->frame = f;
- p3->xmin = xmin;
- p3->ymin = ymin;
- p3->zmin = zmin;
- p3->xmax = xmax;
- p3->ymax = ymax;
- p3->zmax = zmax;
-
- /* Set view region to the entire size of the framebuffer */
-
- p3->view_xmin = 0;
- p3->view_ymin = 0;
- p3->view_xmax = f->width;
- p3->view_ymax = f->height;
- p3->width = f->width;
- p3->height = f->height;
-
- /* Calculate a center point based off the min and max coordinates given */
-
- p3->xcenter = (xmax - xmin)/2.0 + xmin;
- p3->ycenter = (ymax - ymin)/2.0 + ymin;
- p3->zcenter = (zmax - zmin)/2.0 + zmin;
-
- /* Calculate the aspect ratio of the viewing region */
-
- p3->aspect = (double) f->width/(double) f->height;
-
- /* Set default view parameters */
- p3->xshift = 1.0;
- p3->yshift = 1.0;
- p3->zoom = 0.5;
- p3->fovy = 40.0; /* 40 degree field of view */
-
- /* Create matrices */
-
- p3->model_mat = new_Matrix();
- p3->view_mat = new_Matrix();
- p3->center_mat = new_Matrix();
- p3->fullmodel_mat = new_Matrix();
- p3->trans_mat = new_Matrix();
- p3->pers_mode = ORTHO;
-
- FrameBuffer_zresize(p3->frame,p3->width, p3->height);
- Matrix_identity(p3->view_mat);
- Matrix_identity(p3->model_mat);
- Matrix_translate(p3->center_mat, -p3->xcenter,-p3->ycenter,-p3->zcenter);
- Plot3D_maketransform(p3);
- return p3;
-}
-
-/* ---------------------------------------------------------------------
- delete_Plot3D(Plot3D *p3)
-
- Deletes a 3D plot
- --------------------------------------------------------------------- */
-
-void delete_Plot3D(Plot3D *p3) {
- if (p3) {
- delete_Matrix(p3->view_mat);
- delete_Matrix(p3->model_mat);
- delete_Matrix(p3->trans_mat);
- free((char *) p3);
- }
-}
-
-/* ---------------------------------------------------------------------
- Plot3D *Plot3D_copy(Plot3D *p3)
-
- This makes a copy of the 3D plot structure and returns a pointer to it.
- --------------------------------------------------------------------- */
-
-Plot3D *Plot3D_copy(Plot3D *p3) {
- Plot3D *c3;
- if (p3) {
- c3 = (Plot3D *) malloc(sizeof(Plot3D));
- if (c3) {
- c3->frame = p3->frame;
- c3->view_xmin = p3->view_xmin;
- c3->view_ymin = p3->view_ymin;
- c3->view_xmax = p3->view_xmax;
- c3->view_ymax = p3->view_ymax;
- c3->xmin = p3->xmin;
- c3->ymin = p3->ymin;
- c3->zmin = p3->zmin;
- c3->xmax = p3->xmax;
- c3->ymax = p3->ymax;
- c3->zmax = p3->zmax;
- c3->xcenter = p3->xcenter;
- c3->ycenter = p3->ycenter;
- c3->zcenter = p3->zcenter;
- c3->fovy = p3->fovy;
- c3->aspect = p3->aspect;
- c3->znear = p3->znear;
- c3->zfar = p3->zfar;
- c3->center_mat = Matrix_copy(p3->center_mat);
- c3->model_mat = Matrix_copy(p3->model_mat);
- c3->view_mat = Matrix_copy(p3->view_mat);
- c3->fullmodel_mat = Matrix_copy(p3->fullmodel_mat);
- c3->trans_mat = Matrix_copy(p3->trans_mat);
- c3->lookatz = p3->lookatz;
- c3->xshift = p3->xshift;
- c3->yshift = p3->yshift;
- c3->zoom = p3->zoom;
- c3->width = p3->width;
- c3->height = p3->height;
- c3->pers_mode = p3->pers_mode;
- }
- return c3;
- } else {
- return (Plot3D *) 0;
- }
-}
-
-/* ----------------------------------------------------------------------
- Plot3D_clear(Plot3D *p3, Pixel bgcolor)
-
- Clear the pixel and zbuffer only for the view region of this image.
- ---------------------------------------------------------------------- */
-void
-Plot3D_clear(Plot3D *p3, Pixel bgcolor) {
- int i,j;
-
- for (i = p3->view_xmin; i < p3->view_xmax; i++)
- for (j = p3->view_ymin; j < p3->view_ymax; j++) {
- p3->frame->pixels[j][i] = bgcolor;
- p3->frame->zbuffer[j][i] = ZMIN;
- }
-}
-
-/* ---------------------------------------------------------------------
- Plot3D_maketransform(Plot3D *p3)
-
- This function builds the total 3D transformation matrix from a
- collection of components.
-
- Trans = View * Rotation * Center
-
- Where View is the viewing transformation matrix, Rotation is the
- model rotation matrix, Center is the translation matrix used to
- center the Model at the origin.
- --------------------------------------------------------------------- */
-
-void
-Plot3D_maketransform(Plot3D *p3) {
-
- Matrix_multiply(p3->model_mat,p3->center_mat, p3->fullmodel_mat);
- Matrix_multiply(p3->view_mat,p3->fullmodel_mat, p3->trans_mat);
-}
-
-/* ---------------------------------------------------------------------
- Plot3D_perspective(Plot3D *p3, double fovy, double znear, double zfar)
-
- Sets up the perspective viewing transformation. Assumes "lookat"
- has already been called.
- --------------------------------------------------------------------- */
-
-void
-Plot3D_perspective(Plot3D *p3, double fovy, double znear, double zfar) {
- double theta;
- double mat[16];
-
- p3->fovy = fovy;
- p3->znear = znear;
- p3->zfar = zfar;
-
- theta = 3.1415926*fovy/180.0;
-
- Matrix_identity(mat);
- mat[0] = cos(theta/2.0)/(sin(theta/2.0)*p3->aspect);
- mat[5] = cos(theta/2.0)/(sin(theta/2.0));
- mat[10] = -(zfar + znear)/(zfar-znear);
- mat[14] = -1.0;
- mat[11] = -(2*zfar*znear)/(zfar - znear);
- mat[15] = 0.0;
-
- /* Update the view transformation matrix */
-
- Matrix_multiply(mat,p3->view_mat,p3->view_mat);
-
- /* Update the global transformation matrix */
-
- Plot3D_maketransform(p3);
- p3->pers_mode = PERSPECTIVE;
-
-}
-
-/* ---------------------------------------------------------------------
- Plot3D_lookat(Plot3D *p3, double z)
-
- A greatly simplified version of (lookat). Specifies the position
- of the viewpoint. (can be used for moving image in or out).
-
- Destroys the current viewing transformation matrix, so it will have
- to be recalculated.
- --------------------------------------------------------------------- */
-
-void
-Plot3D_lookat(Plot3D *p3, double z) {
- if (p3) {
- Matrix_translate(p3->view_mat, 0,0,-z);
- p3->lookatz = z;
- Plot3D_maketransform(p3);
- }
-}
-
-/* -------------------------------------------------------------------------
- Plot3D_autoperspective(Plot3D *p3, double fovy)
-
- Automatically figures out a semi-decent viewpoint given the
- min,max parameters currently set for this image
- ------------------------------------------------------------------------- */
-
-void
-Plot3D_autoperspective(Plot3D *p3, double fovy) {
-
- /* Make a perspective transformation matrix for this system */
-
- double zfar;
- double znear;
- double d, dmax;
- double cx,cy,cz;
- double xmin,xmax,ymin,ymax,zmin,zmax;
-
- xmin = p3->xmin;
- ymin = p3->ymin;
- zmin = p3->zmin;
- xmax = p3->xmax;
- ymax = p3->ymax;
- zmax = p3->zmax;
- cx = p3->xcenter;
- cy = p3->ycenter;
- cz = p3->zcenter;
-
- /* Calculate longest point from center point */
-
- dmax = (xmin-cx)*(xmin-cx) + (ymin-cy)*(ymin-cy) + (zmin-cz)*(zmin-cz);
- d = (xmax-cx)*(xmax-cx) + (ymin-cy)*(ymin-cy) + (zmin-cz)*(zmin-cz);
- if (d > dmax) dmax = d;
- d = (xmin-cx)*(xmin-cx) + (ymax-cy)*(ymax-cy) + (zmin-cz)*(zmin-cz);
- if (d > dmax) dmax = d;
- d = (xmax-cx)*(xmax-cx) + (ymax-cy)*(ymax-cy) + (zmin-cz)*(zmin-cz);
- if (d > dmax) dmax = d;
- d = (xmin-cx)*(xmin-cx) + (ymin-cy)*(ymin-cy) + (zmax-cz)*(zmax-cz);
- if (d > dmax) dmax = d;
- d = (xmax-cx)*(xmax-cx) + (ymin-cy)*(ymin-cy) + (zmax-cz)*(zmax-cz);
- if (d > dmax) dmax = d;
- d = (xmin-cx)*(xmin-cx) + (ymax-cy)*(ymax-cy) + (zmax-cz)*(zmax-cz);
- if (d > dmax) dmax = d;
- d = (xmax-cx)*(xmax-cx) + (ymax-cy)*(ymax-cy) + (zmax-cz)*(zmax-cz);
- if (d > dmax) dmax = d;
-
- dmax = sqrt(dmax);
- d = p3->lookatz;
-
- znear = d - dmax;
- zfar = znear+1.5*dmax;
- Plot3D_perspective(p3, fovy,znear,zfar);
-
-}
-
-
-/* ---------------------------------------------------------------------
- Plot3D_ortho(Plot3D *p3, double left, double right, double bottom, double top)
-
- Sets up an orthographic viewing transformation.
- --------------------------------------------------------------------- */
-
-void
-Plot3D_ortho(Plot3D *p3, double left, double right, double bottom, double top) {
-
-
- Matrix_identity(p3->view_mat);
- p3->view_mat[0] = (2.0/(right - left))/p3->aspect;
- p3->view_mat[5] = 2.0/(top - bottom);
- p3->view_mat[10] = -1;
- p3->view_mat[15] = 1.0;
- p3->view_mat[3] = -(right+left)/(right-left);
- p3->view_mat[7] = -(top+bottom)/(top-bottom);
-
- /* Update the global transformation matrix */
-
- Plot3D_maketransform(p3);
- p3->pers_mode = ORTHO;
- p3->ortho_left = left;
- p3->ortho_right = right;
- p3->ortho_bottom = bottom;
- p3->ortho_top = top;
-
-}
-
-/* ---------------------------------------------------------------------
- Plot3D_autoortho(Plot3D *p3)
-
- Automatically pick an orthographic projection that's probably
- pretty good.
- --------------------------------------------------------------------- */
-
-void
-Plot3D_autoortho(Plot3D *p3) {
-
- /* Make a perspective transformation matrix for this system */
-
- double d, dmax;
- double cx,cy,cz;
- double xmin,xmax,ymin,ymax,zmin,zmax;
-
- xmin = p3->xmin;
- ymin = p3->ymin;
- zmin = p3->zmin;
- xmax = p3->xmax;
- ymax = p3->ymax;
- zmax = p3->zmax;
- cx = p3->xcenter;
- cy = p3->ycenter;
- cz = p3->zcenter;
-
- /* Calculate longest point from center point */
-
- dmax = (xmin-cx)*(xmin-cx) + (ymin-cy)*(ymin-cy) + (zmin-cz)*(zmin-cz);
- d = (xmax-cx)*(xmax-cx) + (ymin-cy)*(ymin-cy) + (zmin-cz)*(zmin-cz);
- if (d > dmax) dmax = d;
- d = (xmin-cx)*(xmin-cx) + (ymax-cy)*(ymax-cy) + (zmin-cz)*(zmin-cz);
- if (d > dmax) dmax = d;
- d = (xmax-cx)*(xmax-cx) + (ymax-cy)*(ymax-cy) + (zmin-cz)*(zmin-cz);
- if (d > dmax) dmax = d;
- d = (xmin-cx)*(xmin-cx) + (ymin-cy)*(ymin-cy) + (zmax-cz)*(zmax-cz);
- if (d > dmax) dmax = d;
- d = (xmax-cx)*(xmax-cx) + (ymin-cy)*(ymin-cy) + (zmax-cz)*(zmax-cz);
- if (d > dmax) dmax = d;
- d = (xmin-cx)*(xmin-cx) + (ymax-cy)*(ymax-cy) + (zmax-cz)*(zmax-cz);
- if (d > dmax) dmax = d;
- d = (xmax-cx)*(xmax-cx) + (ymax-cy)*(ymax-cy) + (zmax-cz)*(zmax-cz);
- if (d > dmax) dmax = d;
-
- dmax = sqrt(dmax);
-
- Plot3D_ortho(p3,-dmax,dmax,-dmax,dmax);
-
-}
-
-
-
-/* -------------------------------------------------------------------------
- Plot3D_setview(Plot3D *p3, int vxmin, int vymin, int vxmax, int vymax)
-
- Sets the viewport for this 3D graph. Will recalculate all of the
- local viewing transformation matrices accordingly.
- ------------------------------------------------------------------------- */
-void
-Plot3D_setview(Plot3D *p3, int vxmin, int vymin, int vxmax, int vymax) {
- if (p3) {
- if ((vxmin > vxmax) || (vymin >vymax)) return;
- p3->view_xmin = vxmin;
- p3->view_ymin = vymin;
- p3->view_xmax = vxmax;
- p3->view_ymax = vymax;
- p3->width = (vxmax - vxmin);
- p3->height = (vymax - vymin);
- p3->aspect = (double) p3->width/(double) p3->height;
-
- /* Fix up the viewing transformation matrix */
-
- if (p3->pers_mode == PERSPECTIVE) {
- Plot3D_lookat(p3,p3->lookatz);
- Plot3D_perspective(p3,p3->fovy,p3->znear,p3->zfar);
- } else {
- Plot3D_ortho(p3,p3->ortho_left,p3->ortho_right,p3->ortho_bottom, p3->ortho_top);
- }
- FrameBuffer_setclip(p3->frame,vxmin,vymin,vxmax,vymax);
- }
-}
-
-/* ---------------------------------------------------------------------------
- Plot2D_start(Plot2D *p3)
-
- Set up viewing region and other parameters for this image.
- --------------------------------------------------------------------------- */
-
-void
-Plot3D_start(Plot3D *p3) {
- if (p3)
- FrameBuffer_setclip(p3->frame, p3->view_xmin,p3->view_ymin,p3->view_xmax, p3->view_ymax);
-
-}
-
-/* -------------------------------------------------------------------------
- Plot3D_plot(Plot3D *p3, double x, double y, double z, Pixel Color)
-
- Plot a 3D point
- ------------------------------------------------------------------------- */
-
-void
-Plot3D_plot(Plot3D *p3, double x, double y, double z, Pixel color) {
-
- GL_Vector t;
- int ix, iy;
- double invw;
- FrameBuffer *f;
-
- /* Perform a transformation */
-
- Matrix_transform4(p3->trans_mat,x,y,z,1,&t);
-
- /* Scale the coordinates into unit cube */
-
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
-#ifdef GL_DEBUG
- fprintf(stdout,"t.x = %g, t.y = %g, t.z = %g\n", t.x,t.y,t.z);
-#endif
- /* Calculate the x and y coordinates */
-
- ix = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5);
- iy = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5);
-
- if ((ix >= 0) && (ix < p3->width) &&
- (iy >= 0) && (ix < p3->height)) {
- ix += p3->view_xmin;
- iy += p3->view_ymin;
- f = p3->frame;
- if (t.z <= f->zbuffer[iy][ix]) {
- f->pixels[iy][ix] = color;
- f->zbuffer[iy][ix] = t.z;
- }
- }
-}
-
-/* ----------------------------------------------------------------------
- Plot3D_rotx(Plot3D *p3, double deg)
-
- Rotate the model around its x axis.
- ---------------------------------------------------------------------- */
-
-void
-Plot3D_rotx(Plot3D *p3, double deg) {
- double temp[16];
-
- Matrix_rotatex(temp,deg); /* Construct a x rotation matrix */
- Matrix_multiply(p3->model_mat,temp,p3->model_mat);
- Plot3D_maketransform(p3);
-
-}
-
-/* ----------------------------------------------------------------------
- Plot3D_roty(Plot3D *p3, double deg)
-
- Rotate the model around its y axis.
- ---------------------------------------------------------------------- */
-
-void
-Plot3D_roty(Plot3D *p3, double deg) {
- double temp[16];
-
- Matrix_rotatey(temp,deg); /* Construct a y rotation matrix */
- Matrix_multiply(p3->model_mat,temp,p3->model_mat);
- Plot3D_maketransform(p3);
-
-}
-
-/* ----------------------------------------------------------------------
- Plot3D_rotz(Plot3D *p3, double deg)
-
- Rotate the model around its z axis.
- ---------------------------------------------------------------------- */
-
-void
-Plot3D_rotz(Plot3D *p3, double deg) {
- double temp[16];
-
- Matrix_rotatez(temp,deg); /* Construct a z rotation matrix */
- Matrix_multiply(p3->model_mat,temp,p3->model_mat);
- Plot3D_maketransform(p3);
-
-}
-
-
-/* ----------------------------------------------------------------------
- Plot3D_rotd(Plot3D *p3, double deg)
-
- Rotate the model down
- ---------------------------------------------------------------------- */
-
-void
-Plot3D_rotd(Plot3D *p3, double deg) {
- double temp[16];
-
- Matrix_rotatex(temp,deg); /* Construct a x rotation matrix */
- Matrix_multiply(temp, p3->model_mat,p3->model_mat);
- Plot3D_maketransform(p3);
-
-}
-
-
-/* ----------------------------------------------------------------------
- Plot3D_rotu(Plot3D *p3, double deg)
-
- Rotate the model up
- ---------------------------------------------------------------------- */
-
-void
-Plot3D_rotu(Plot3D *p3, double deg) {
- double temp[16];
-
- Matrix_rotatex(temp,-deg); /* Construct a x rotation matrix */
- Matrix_multiply(temp,p3->model_mat,p3->model_mat);
- Plot3D_maketransform(p3);
-
-}
-
-
-/* ----------------------------------------------------------------------
- Plot3D_rotr(Plot3D *p3, double deg)
-
- Rotate the model down
- ---------------------------------------------------------------------- */
-
-void
-Plot3D_rotr(Plot3D *p3, double deg) {
- double temp[16];
-
- Matrix_rotatey(temp,deg); /* Construct a y rotation matrix */
- Matrix_multiply(temp, p3->model_mat,p3->model_mat);
- Plot3D_maketransform(p3);
-
-}
-
-
-/* ----------------------------------------------------------------------
- Plot3D_rotl(Plot3D *p3, double deg)
-
- Rotate the model left
- ---------------------------------------------------------------------- */
-
-void
-Plot3D_rotl(Plot3D *p3, double deg) {
- double temp[16];
-
- Matrix_rotatey(temp,-deg); /* Construct a y rotation matrix */
- Matrix_multiply(temp,p3->model_mat,p3->model_mat);
- Plot3D_maketransform(p3);
-
-}
-
-
-/* ----------------------------------------------------------------------
- Plot3D_rotc(Plot3D *p3, double deg)
-
- Rotate the model around center point
- ---------------------------------------------------------------------- */
-
-void
-Plot3D_rotc(Plot3D *p3, double deg) {
- double temp[16];
-
- Matrix_rotatez(temp,-deg); /* Construct a z rotation matrix */
- Matrix_multiply(temp,p3->model_mat,p3->model_mat);
- Plot3D_maketransform(p3);
-}
-
-/* -------------------------------------------------------------------------
- Plot3D_zoom(Plot3D *p3, double percent)
-
- Zooms in or out the current image. percent defines a percentage of
- zoom.
-
- Zooming is actually done by adjusting the perspective field of view
- instead of scaling the model or moving in the viewpoint. This
- seems to work the best.
- ------------------------------------------------------------------------- */
-
-void
-Plot3D_zoom(Plot3D *p3, double percent) {
-
- double scale;
- double dx;
- if (percent <= 0) return;
- scale = percent/100.0;
-
- dx = (1.0/scale - 1.0)/(2*p3->zoom); /* Don't even ask where this came from */
- p3->xshift += dx;
- p3->yshift += dx;
- p3->zoom = p3->zoom*scale;
-
-#ifdef OLD
- p3->fovy = p3->fovy*scale;
- if (p3->fovy > 170.0) p3->fovy = 170.0;
- if (p3->fovy == 0) p3->fovy = 0.0001;
- Plot3D_lookat(p3,p3->lookatz);
- Plot3D_perspective(p3,p3->fovy,p3->znear,p3->zfar);
-#endif
-}
-
-/* --------------------------------------------------------------------------
- Plot3D_left(Plot3D *p3, double s)
-
- Shifts the image to the left by s units. This is a little funky.
-
- s is scaled so that s = 100 equals one full screen.
- -------------------------------------------------------------------------- */
-void
-Plot3D_left(Plot3D *p3, double s) {
- p3->xshift -= (s/100.0)/p3->zoom;
-}
-
-/* --------------------------------------------------------------------------
- Plot3D_right(Plot3D *p3, double s)
-
- Shifts the image to the right by s units.
-
- s is scaled so that s = 100 equals one full screen.
- -------------------------------------------------------------------------- */
-void
-Plot3D_right(Plot3D *p3, double s) {
- p3->xshift += (s/100.0)/p3->zoom;
-}
-
-/* --------------------------------------------------------------------------
- Plot3D_up(Plot3D *p3, double s)
-
- Shifts the image up left by s units.
-
- s is scaled so that s = 100 equals one full screen.
- -------------------------------------------------------------------------- */
-void
-Plot3D_up(Plot3D *p3, double s) {
- p3->yshift += (s/100.0)/p3->zoom;
-}
-
-/* --------------------------------------------------------------------------
- Plot3D_down(Plot3D *p3, double s)
-
- Shifts the image down by s units.
-
- s is scaled so that s = 100 equals one full screen.
- -------------------------------------------------------------------------- */
-void
-Plot3D_down(Plot3D *p3, double s) {
- p3->yshift -= (s/100.0)/p3->zoom;
-}
-
-/* -------------------------------------------------------------------------
- Plot3D_center(Plot3D *p3, double cx, double cy)
-
- Centers the image on a point in the range (0,0) - (100,100)
- ------------------------------------------------------------------------- */
-void
-Plot3D_center(Plot3D *p3, double cx, double cy) {
- Plot3D_left(p3,cx-50);
- Plot3D_down(p3,cy-50);
-}
-
-
-
-/***************************************************************************
- * 3d Primitives *
- ***************************************************************************/
-
-/* -------------------------------------------------------------------------
- Plot3D_horizontal(Plot3D *p3, int xmin, int xmax, int y, double z1, double z2, Pixel color)
-
- Draws a "Horizontal" line on the framebuffer between two screen coordinates,
- but also supplies z-values and zbuffering. This function probably isn't
- too useful by itself, but will be used by a number of other primitives.
- -------------------------------------------------------------------------- */
-
-void Plot3D_horizontal(Plot3D *p3, int xmin, int xmax, int y, Zvalue z1, Zvalue z2, Pixel color) {
- Pixel *p;
- FrameBuffer *f;
- int i;
- Zvalue *zbuf,z,mz;
- int startx, endx;
-
- f = p3->frame;
- if ((y < f->ymin) || (y >= f->ymax)) return;
- if (xmin > f->xmax) return;
- if (xmin < f->xmin) startx = f->xmin;
- else startx = xmin;
- if (xmax < f->xmin) return;
- if (xmax >= f->xmax) endx = f->xmax - 1;
- else endx = xmax;
-
- /* Calculate z slope */
-
- if (xmax != xmin) {
- mz = (Zvalue) ((double) (z2 - z1)/(double) (xmax - xmin));
- } else {
- mz = 0;
- }
-
- /* Draw it */
-
- p = &f->pixels[y][startx];
- zbuf = &f->zbuffer[y][startx];
- z = (Zvalue) (mz*(startx-xmin) + z1);
- for (i = startx; i <= endx; i++, p++, zbuf++,z+=mz) {
- if (z <= *zbuf) {
- *p = color;
- *zbuf = z;
- }
- }
-}
-
-
-/* -------------------------------------------------------------------------
- Plot3D_vertical(Plot3D *p3, int ymin, int ymax, int x, double z1, double z2, Pixel color)
-
- Draws a "Vertical" line on the framebuffer between two screen coordinates,
- but also supplies z-values and zbuffering. This function probably isn't
- too useful by itself, but will be used by a number of other primitives.
- -------------------------------------------------------------------------- */
-
-void Plot3D_vertical(Plot3D *p3, int ymin, int ymax, int x, Zvalue z1, Zvalue z2, Pixel color) {
- Pixel *p;
- FrameBuffer *f;
- int i;
- Zvalue *zbuf,z,mz;
- int starty, endy;
-
- f = p3->frame;
- if ((x < f->xmin) || (x >= f->xmax)) return;
- if (ymin >= f->ymax) return;
- if (ymin < f->ymin) starty = f->ymin;
- else starty = ymin;
- if (ymax < f->ymin) return;
- if (ymax >= f->ymax) endy = f->ymax - 1;
- else endy = ymax;
-
- /* Calculate z slope */
-
- mz = (double) (z2 - z1)/(double) (ymax - ymin);
-
- /* Draw it */
-
- p = &f->pixels[starty][x];
- zbuf = &f->zbuffer[starty][x];
- for (i = starty; i <= endy; i++, p+=f->width, zbuf+=f->width) {
- z = (Zvalue) (mz*(i-ymin) + z1);
- if (z <= *zbuf) {
- *p = color;
- *zbuf = z;
- }
- }
-}
-
-/* -------------------------------------------------------------------------------
- Plot3D_linetransform(Plot3D *p3, int x1, int y1, Zvalue z1,
- int x2, int y2, Zvalue z2, Pixel c)
-
- Draw a 3D line between points that have already been transformed into
- 3D space.
-
- Uses a Bresenham line algorithm, but with linear interpolation between
- Zvalues.
- ------------------------------------------------------------------------------- */
-
-void
-Plot3D_linetransform(Plot3D *p3, int x1, int y1, Zvalue z1, int x2, int y2, Zvalue z2, Pixel c) {
-
- int orig_x1, orig_y1, orig_x2,orig_y2;
- Zvalue zt;
-
- /* Bresenham line drawing parameters */
- FrameBuffer *f;
- int dx,dy,dxneg,dyneg, inc1,inc2,di;
- int x, y, xpixels, ypixels, xt, yt;
- Pixel *p;
- double m;
- int end1 = 0, end2 = 0;
- Zvalue *zbuf,mz,z;
-
- f = p3->frame;
-
- /* Need to figure out where in the heck this line is */
-
- dx = x2 - x1;
- dy = y2 - y1;
-
- if ((dx == 0) && (dy == 0)) {
- if ((x1 < f->xmin) || (x1 >= f->xmax) ||
- (y1 < f->ymin) || (y1 >= f->ymax)) return;
- if (z1 <= f->zbuffer[y1][x1]) {
- f->pixels[y1][x1] = c;
- }
- return;
- }
- if (dx == 0) {
- /* Draw a Vertical Line */
- if (y1 < y2)
- Plot3D_vertical(p3,y1,y2,x1,z1,z2,c);
- else
- Plot3D_vertical(p3,y2,y1,x1,z2,z1,c);
- return;
- }
- if (dy == 0) {
- /* Draw a Horizontal Line */
- if (x1 < x2)
- Plot3D_horizontal(p3,x1,x2,y1,z1,z2,c);
- else
- Plot3D_horizontal(p3,x2,x1,y1,z2,z1,c);
- return;
- }
-
- /* Figure out where in the heck these lines are using the
- Cohen-Sutherland Line Clipping Scheme. */
-
- end1 = ((x1 - f->xmin) < 0) |
- (((f->xmax- 1 - x1) < 0) << 1) |
- (((y1 - f->ymin) < 0) << 2) |
- (((f->ymax-1 - y1) < 0) << 3);
-
- end2 = ((x2 - f->xmin) < 0) |
- (((f->xmax-1 - x2) < 0) << 1) |
- (((y2 - f->ymin) < 0) << 2) |
- (((f->ymax-1 - y2) < 0) << 3);
-
- if (end1 & end2) return; /* Nope : Not visible */
-
- /* Make sure points have a favorable orientation */
-
- if (x1 > x2) {
- xt = x1;
- x1 = x2;
- x2 = xt;
- yt = y1;
- y1 = y2;
- y2 = yt;
- zt = z1;
- z1 = z2;
- z2 = zt;
- }
-
- /* Save original points before we clip them off */
- orig_x1 = x1;
- orig_y1 = y1;
- orig_x2 = x2;
- orig_y2 = y2;
-
- /* Clip against the boundaries */
- m = (y2 - y1)/(double) (x2-x1);
- if (x1 < f->xmin) {
- y1 = (f->xmin - x1)*m + y1;
- x1 = f->xmin;
- }
- if (x2 >= f->xmax) {
- y2 = (f->xmax -1 -x1)*m + y1;
- x2 = f->xmax - 1;
- }
-
- if (y1 > y2) {
- xt = x1;
- x1 = x2;
- x2 = xt;
- yt = y1;
- y1 = y2;
- y2 = yt;
- zt = z1;
- z1 = z2;
- z2 = zt;
-
- /* Swap original points */
-
- xt = orig_x1;
- orig_x1 = orig_x2;
- orig_x2 = xt;
- yt = orig_y1;
- orig_y1 = orig_y2;
- orig_y2 = yt;
- }
-
- m = 1/m;
- if (y1 < f->ymin) {
- x1 = (f->ymin - y1)*m + x1;
- y1 = f->ymin;
- }
- if (y2 >= f->ymax) {
- x2 = (f->ymax-1-y1)*m + x1;
- y2 = f->ymax-1;
- }
-
- if ((x1 < f->xmin) || (x1 >= f->xmax) || (y1 < f->ymin) || (y1 >= f->ymax) ||
- (x2 < f->xmin) || (x2 >= f->xmax) || (y2 < f->ymin) || (y2 >= f->ymax)) return;
-
- dx = x2 - x1;
- dy = y2 - y1;
- xpixels = f->width;
- ypixels = f->height;
-
- dxneg = (dx < 0) ? 1 : 0;
- dyneg = (dy < 0) ? 1 : 0;
-
- dx = abs(dx);
- dy = abs(dy);
- if (dx >= dy) {
- /* Slope between -1 and 1. */
- mz = (z2 - z1)/(orig_x2 - orig_x1); /* Z interpolation slope */
- if (dxneg) {
- x = x1;
- y = y1;
- x1 = x2;
- y1 = y2;
- x2 = x;
- y2 = y;
- dyneg = !dyneg;
- }
- inc1 = 2*dy;
- inc2 = 2*(dy-dx);
- di = 2*dy-dx;
-
- /* Draw a line using x as independent variable */
-
- p = &f->pixels[y1][x1];
- zbuf = &f->zbuffer[y1][x1];
- x = x1;
- while (x <= x2) {
- /* Do a z-buffer check */
- z = mz*(x-orig_x1)+z1;
- if (z <= *zbuf){
- *p = c;
- *zbuf = z;
- }
- p++;
- zbuf++;
- if (di < 0) {
- di = di + inc1;
- } else {
- if (dyneg) {
- p = p - xpixels;
- zbuf = zbuf - xpixels;
- di = di + inc2;
- } else {
- p = p + xpixels;
- zbuf = zbuf + xpixels;
- di = di + inc2;
- }
- }
- x++;
- }
- } else {
- /* Slope < -1 or > 1 */
- mz = (z2 - z1)/(double) (orig_y2 - orig_y1);
- if (dyneg) {
- x = x1;
- y = y1;
- x1 = x2;
- y1 = y2;
- x2 = x;
- y2 = y;
- dxneg = !dxneg;
- }
- inc1 = 2*dx;
- inc2 = 2*(dx-dy);
- di = 2*dx-dy;
-
- /* Draw a line using y as independent variable */
-
- p = &f->pixels[y1][x1];
- zbuf = &f->zbuffer[y1][x1];
- y = y1;
- while (y <= y2) {
- /* Do a z-buffer check */
- z = mz*(y-orig_y1)+z1;
- if (z <= *zbuf) {
- *p = c;
- *zbuf = z;
- }
- p = p + xpixels;
- zbuf = zbuf + xpixels;
- if (di < 0) {
- di = di + inc1;
- } else {
- if (dxneg) {
- p = p - 1;
- zbuf = zbuf - 1;
- di = di + inc2;
- } else {
- p = p + 1;
- zbuf = zbuf + 1;
- di = di + inc2;
- }
- }
- y++;
- }
- }
-}
-
-/* ---------------------------------------------------------------------------
- Plot3D_line(Plot3D *p3, double x1, double y1, double z1, double x2, double y2, double z2,int color)
-
- Draws a line in 3D space. This is done as follows (for lack of a better
- method).
-
- 1. The points (x1,y1,z1) and (x2,y2,z2) are transformed into screen coordinates
- 2. We draw the line using a modified Bresenham line algorithm.
- 3. Zbuffer values are linearly interpolated between the two points.
- ---------------------------------------------------------------------------- */
-
-void
-Plot3D_line(Plot3D *p3, double fx1, double fy1, double fz1, double fx2, double fy2,
- double fz2, Pixel c) {
-
- /* 3D Transformation parameters */
- GL_Vector t;
- double invw;
- int x1,y1,x2,y2;
- Zvalue z1,z2;
-
- /* Transform the two points into screen coordinates */
-
- Matrix_transform4(p3->trans_mat,fx1,fy1,fz1,1,&t); /* Point 1 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- x1 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- y1 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- z1 = t.z;
-
- Matrix_transform4(p3->trans_mat,fx2,fy2,fz2,1,&t); /* Point 2 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- x2 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- y2 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- z2 = t.z;
- Plot3D_linetransform(p3,x1,y1,z1,x2,y2,z2,c);
-}
-
-
-/* -------------------------------------------------------------------------
- Plot3D_triangle(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- Pixel fillcolor)
-
- This function draws a 3D z-buffered outline triangle.
- -------------------------------------------------------------------------- */
-
-void Plot3D_triangle(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3, Pixel color) {
-
- int tx1, tx2, tx3, ty1, ty2, ty3;
- Zvalue tz1, tz2, tz3;
- GL_Vector t;
- double invw;
-
- /* Transform the three points into screen coordinates */
-
- Matrix_transform4(p3->trans_mat,x1,y1,z1,1,&t); /* Point 1 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx1 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty1 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz1 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x2,y2,z2,1,&t); /* Point 2 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx2 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty2 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz2 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x3,y3,z3,1,&t); /* Point 3 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx3 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty3 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz3 = (Zvalue) t.z;
-
-
- Plot3D_linetransform(p3,tx1,ty1,tz1,tx2,ty2,tz2,color);
- Plot3D_linetransform(p3,tx1,ty1,tz1,tx3,ty3,tz3,color);
- Plot3D_linetransform(p3,tx2,ty2,tz2,tx3,ty3,tz3,color);
-}
-
-
-/* -------------------------------------------------------------------------
- Plot3D_solidtriangletransform(Plot3D *p3, int tx1, int ty2, Zvalue tz1,
- int tx2, int ty2, Zvalue tz2,
- int tx3, int ty3, Zvalue tz3, Pixel color)
-
- This function draws a 3D z-buffered filled triangle. Assumes three
- points have already been transformed into screen coordinates.
-
- General idea :
- 1. Transform the three points into screen coordinates
- 2. Order three points vertically on screen.
- 3. Check for degenerate cases (where 3 points are colinear).
- 4. Fill in the resulting triangle using horizontal lines.
- -------------------------------------------------------------------------- */
-
-void Plot3D_solidtriangletransform(Plot3D *p3, int tx1, int ty1, Zvalue tz1,
- int tx2, int ty2, Zvalue tz2,
- int tx3, int ty3, Zvalue tz3, Pixel color) {
- int tempx, tempy;
- Zvalue tempz;
- double m1,m2,m3, mz1, mz2, mz3;
- int y;
- int ix1, ix2;
- Zvalue zz1, zz2;
- FrameBuffer *f;
- register double fy1,fy2;
- register Zvalue fz1,fz2;
-
- f = p3->frame;
-
- /* Check for degenerate cases here */
-
- if ((ty1 == ty2) && (ty2 == ty3)) {
- if (tx2 < tx1) { /* Swap points 1 and 2 if 2 is higher */
- tempx = tx1;
- tempz = tz1;
- tx1 = tx2;
- tz1 = tz2;
- tx2 = tempx;
- tz2 = tempz;
- }
- if (tx3 < tx1) { /* Swap points 1 and 3 if 3 is higher */
- tempx = tx1;
- tempz = tz1;
- tx1 = tx3;
- tz1 = tz3;
- tx3 = tempx;
- tz3 = tempz;
- }
- if (tx3 < tx2) { /* Swap points 2 and 3 if 3 is higher */
- tempx = tx2;
- tempz = tz2;
- tx2 = tx3;
- tz2 = tz3;
- tx3 = tempx;
- tz3 = tempz;
- }
-
- /* Points are aligned horizontally. Handle as a special case */
- /* Just draw three lines using the outline color */
-
- Plot3D_horizontal(p3,tx1,tx2,ty1,tz1,tz3,color);
-
- /* Plot3D_linetransform(p3,tx1,ty1,tz1,tx2,ty2,tz2,color);
- Plot3D_linetransform(p3,tx1,ty1,tz1,tx3,ty3,tz3,color);
- Plot3D_linetransform(p3,tx2,ty2,tz2,tx3,ty3,tz3,color);
- */
-
- return;
- }
-
- /* Figure out which point has the greatest "y" value */
-
- if (ty2 > ty1) { /* Swap points 1 and 2 if 2 is higher */
- tempx = tx1;
- tempy = ty1;
- tempz = tz1;
- tx1 = tx2;
- ty1 = ty2;
- tz1 = tz2;
- tx2 = tempx;
- ty2 = tempy;
- tz2 = tempz;
- }
- if (ty3 > ty1) { /* Swap points 1 and 3 if 3 is higher */
- tempx = tx1;
- tempy = ty1;
- tempz = tz1;
- tx1 = tx3;
- ty1 = ty3;
- tz1 = tz3;
- tx3 = tempx;
- ty3 = tempy;
- tz3 = tempz;
- }
- if (ty3 > ty2) { /* Swap points 2 and 3 if 3 is higher */
- tempx = tx2;
- tempy = ty2;
- tempz = tz2;
- tx2 = tx3;
- ty2 = ty3;
- tz2 = tz3;
- tx3 = tempx;
- ty3 = tempy;
- tz3 = tempz;
- }
-
- /* Points are now order so that t_1 is the highest point, t_2 is the
- middle point, and t_3 is the lowest point */
-
- if (ty2 < ty1) {
- /* First process line segments between (x1,y1)-(x2,y2)
- And between (x1,y1),(x3,y3) */
-
- m1 = (double) (tx2 - tx1)/(double) (ty2 - ty1);
- m2 = (double) (tx3 - tx1)/(double) (ty3 - ty1);
- mz1 = (tz2 - tz1)/(double) (ty2 - ty1);
- mz2 = (tz3 - tz1)/(double) (ty3 - ty1);
-
- y = ty1;
- fy1 = m1*(y-ty1)+0.5 + tx1;
- fy2 = m2*(y-ty1)+0.5 + tx1;
- fz1 = mz1*(y-ty1) + tz1;
- fz2 = mz2*(y-ty1) + tz1;
- while (y >= ty2) {
- /* Replace with bresenham scheme */
- /* Calculate x values from slope */
- ix1 = (int) fy1;
- ix2 = (int) fy2;
- zz1 = fz1;
- zz2 = fz2;
- fy1-= m1;
- fy2-= m2;
- fz1-= mz1;
- fz2-= mz2;
- if (ix1 > ix2)
- Plot3D_horizontal(p3,ix2,ix1,y,zz2,zz1,color);
- else
- Plot3D_horizontal(p3,ix1,ix2,y,zz1,zz2,color);
- y--;
- }
- }
- if (ty3 < ty2) {
- /* Draw lower half of the triangle */
- m2 = (double) (tx3 - tx1)/(double) (ty3 - ty1);
- m3 = (double) (tx3 - tx2)/(double)(ty3 - ty2);
- mz2 = (tz3 - tz1)/(double) (ty3 - ty1);
- mz3 = (tz3 - tz2)/(double) (ty3 - ty2);
- y = ty2;
- while (y >= ty3) {
- ix1 = (int) (m3*(y-ty2)+0.5)+tx2;
- ix2 = (int) (m2*(y-ty1)+0.5)+tx1;
- zz1 = mz3*(y-ty2)+tz2;
- zz2 = mz2*(y-ty1)+tz1;
- if (ix1 > ix2)
- Plot3D_horizontal(p3,ix2,ix1,y,zz2,zz1,color);
- else
- Plot3D_horizontal(p3,ix1,ix2,y,zz1,zz2,color);
- y--;
- }
- }
-}
-
-/* -------------------------------------------------------------------------
- Plot3D_solidtriangle(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- Pixel color)
-
- This function draws a 3D z-buffered filled triangle. Can be used to
- draw other primitives such as quadralaterals, etc...
-
- This function simply transforms the given points and calls
- Plot3D_SolidTriangleTransform().
- -------------------------------------------------------------------------- */
-
-void Plot3D_solidtriangle(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3, Pixel color) {
-
- int tx1, tx2, tx3, ty1, ty2, ty3;
- Zvalue tz1, tz2, tz3;
- GL_Vector t;
- double invw;
- Matrix a;
- register double xshift, yshift, zoom, width, height, view_xmin, view_ymin;
-
- a = p3->trans_mat;
- xshift = p3->xshift;
- yshift = p3->yshift;
- zoom = p3->zoom;
- height = p3->height;
- width = p3->width;
- view_xmin = p3->view_xmin;
- view_ymin = p3->view_ymin;
-
- /* Transform the three points into screen coordinates */
-
- t.w = a[12]*x1 + a[13]*y1 + a[14]*z1 + a[15];
- invw = 1.0/t.w;
- t.x = (a[0]*x1 + a[1]*y1 + a[2]*z1 + a[3])*invw;
- t.y = (a[4]*x1 + a[5]*y1 + a[6]*z1 + a[7])*invw;
- t.z = (a[8]*x1 + a[9]*y1 + a[10]*z1 + a[11])*invw;
-
- tx1 = (int) ((t.x +xshift)*zoom*width + 0.5) + view_xmin;
- ty1 = (int) ((t.y +yshift)*zoom*height + 0.5) + view_ymin;
- tz1 = (Zvalue) t.z;
-
-
- t.w = a[12]*x2 + a[13]*y2 + a[14]*z2 + a[15];
- invw = 1.0/t.w;
- t.x = (a[0]*x2 + a[1]*y2 + a[2]*z2 + a[3])*invw;
- t.y = (a[4]*x2 + a[5]*y2 + a[6]*z2 + a[7])*invw;
- t.z = (a[8]*x2 + a[9]*y2 + a[10]*z2 + a[11])*invw;
- tx2 = (int) ((t.x +xshift)*zoom*width + 0.5) + view_xmin;
- ty2 = (int) ((t.y +yshift)*zoom*height + 0.5) + view_ymin;
- tz2 = (Zvalue) t.z;
-
- t.w = a[12]*x3 + a[13]*y3 + a[14]*z3 + a[15];
- invw = 1.0/t.w;
- t.x = (a[0]*x3 + a[1]*y3 + a[2]*z3 + a[3])*invw;
- t.y = (a[4]*x3 + a[5]*y3 + a[6]*z3 + a[7])*invw;
- t.z = (a[8]*x3 + a[9]*y3 + a[10]*z3 + a[11])*invw;
- tx3 = (int) ((t.x +xshift)*zoom*width + 0.5) + view_xmin;
- ty3 = (int) ((t.y +yshift)*zoom*height + 0.5) + view_ymin;
- tz3 = (Zvalue) t.z;
-
- Plot3D_solidtriangletransform(p3,tx1,ty1,tz1,tx2,ty2,tz2,tx3,ty3,tz3,color);
-
-}
-
-
-/* -------------------------------------------------------------------------
- Plot3D_horizontalinterp(Plot3D *p3, int xmin, int xmax, int y,
- double z1, double z2, Pixel c1, Pixel c2)
-
- Draws a "Horizontal" line on the framebuffer between two screen coordinates,
- but also supplies z-values and zbuffering. Performs a color interpolation
- between c1 and c2. This is primarily used by the SolidTriangleInterp()
- function to give the illusion of smooth surfaces.
- -------------------------------------------------------------------------- */
-
-void Plot3D_horizontalinterp(Plot3D *p3, int xmin, int xmax, int y,
- Zvalue z1, Zvalue z2, Pixel c1, Pixel c2) {
- Pixel *p;
- FrameBuffer *f;
- int i;
- Zvalue *zbuf,z,mz;
- double mc;
- int startx, endx;
- double invdx;
-
- f = p3->frame;
- if ((y < f->ymin) || (y >= f->ymax)) return;
- if (xmin >= f->xmax) return;
- if (xmin < f->xmin) startx = f->xmin;
- else startx = xmin;
- if (xmax < f->xmin) return;
- if (xmax >= f->xmax) endx = f->xmax - 1;
- else endx = xmax;
-
- /* Calculate z slope */
- if (xmax != xmin) {
- invdx = 1.0/(double) (xmax-xmin);
- } else {
- invdx = 0;
- }
-
- mz = (Zvalue) (z2 - z1)*invdx;
-
- /* Calculate c slope */
-
- mc = (double) (c2 - c1)*invdx;
-
- /* Draw it */
-
- p = &f->pixels[y][startx];
- zbuf = &f->zbuffer[y][startx];
- for (i = startx; i <= endx; i++, p++, zbuf++) {
- z = (Zvalue) (mz*(i-xmin) + z1);
- if (z <= *zbuf) {
- *p = (Pixel) (mc*(i-xmin)+c1);
- *zbuf = z;
- }
- }
-}
-
-/* -------------------------------------------------------------------------
- Plot3D_interptriangletransform(Plot3D *p3,
- int tx1, int ty2, Zvalue tz1, Pixel c1,
- int tx2, int ty2, Zvalue tz2, Pixel c2,
- int tx3, int ty3, Zvalue tz3, Pixel c3)
-
- This function draws a 3D z-buffered filled triangle with color
- interpolation. Assumes three points have already been transformed
- into screen coordinates.
-
- General idea :
- 1. Transform the three points into screen coordinates
- 2. Order three points vertically on screen.
- 3. Check for degenerate cases (where 3 points are colinear).
- 4. Fill in the resulting triangle using horizontal lines.
- 5. Colors are interpolated between end points
- -------------------------------------------------------------------------- */
-
-void Plot3D_interptriangletransform(Plot3D *p3,
- int tx1, int ty1, Zvalue tz1, Pixel c1,
- int tx2, int ty2, Zvalue tz2, Pixel c2,
- int tx3, int ty3, Zvalue tz3, Pixel c3) {
- int tempx, tempy;
- Zvalue tempz;
- double m1,m2,m3, mz1, mz2, mz3;
- double mc1,mc2,mc3;
- Pixel ic1,ic2,tempc;
- int y;
- int ix1, ix2;
- Zvalue zz1, zz2;
- FrameBuffer *f;
-
- f = p3->frame;
-
- /* Figure out which point has the greatest "y" value */
-
- if (ty2 > ty1) { /* Swap points 1 and 2 if 2 is higher */
- tempx = tx1;
- tempy = ty1;
- tempz = tz1;
- tempc = c1;
- tx1 = tx2;
- ty1 = ty2;
- tz1 = tz2;
- c1 = c2;
- tx2 = tempx;
- ty2 = tempy;
- tz2 = tempz;
- c2 = tempc;
- }
- if (ty3 > ty1) { /* Swap points 1 and 3 if 3 is higher */
- tempx = tx1;
- tempy = ty1;
- tempz = tz1;
- tempc = c1;
- tx1 = tx3;
- ty1 = ty3;
- tz1 = tz3;
- c1 = c3;
- tx3 = tempx;
- ty3 = tempy;
- tz3 = tempz;
- c3 = tempc;
- }
- if (ty3 > ty2) { /* Swap points 2 and 3 if 3 is higher */
- tempx = tx2;
- tempy = ty2;
- tempz = tz2;
- tempc = c2;
- tx2 = tx3;
- ty2 = ty3;
- tz2 = tz3;
- c2 = c3;
- tx3 = tempx;
- ty3 = tempy;
- tz3 = tempz;
- c3 = tempc;
- }
-
- /* Points are now order so that t_1 is the highest point, t_2 is the
- middle point, and t_3 is the lowest point */
-
- /* Check for degenerate cases here */
-
- if ((ty1 == ty2) && (ty2 == ty3)) {
-
- /* Points are aligned horizontally. Handle as a special case */
- /* Just draw three lines using the outline color */
-
- if (tx2 > tx1)
- Plot3D_horizontalinterp(p3,tx1,tx2,ty1,tz1,tz2,c1,c2);
- else
- Plot3D_horizontalinterp(p3,tx2,tx1,ty1,tz2,tz1,c2,c1);
- if (tx3 > tx1)
- Plot3D_horizontalinterp(p3,tx1,tx3,ty1,tz1,tz3,c1,c3);
- else
- Plot3D_horizontalinterp(p3,tx3,tx1,ty1,tz3,tz1,c3,c1);
- if (tx3 > tx2)
- Plot3D_horizontalinterp(p3,tx2,tx3,ty2,tz2,tz3,c2,c3);
- else
- Plot3D_horizontalinterp(p3,tx3,tx2,ty2,tz3,tz2,c3,c2);
-
- } else {
-
- /* First process line segments between (x1,y1)-(x2,y2)
- And between (x1,y1),(x3,y3) */
-
- if (ty2 < ty1) {
- m1 = (double) (tx2 - tx1)/(double) (ty2 - ty1);
- m2 = (double) (tx3 - tx1)/(double) (ty3 - ty1);
- mz1 = (tz2 - tz1)/(double) (ty2 - ty1);
- mz2 = (tz3 - tz1)/(double) (ty3 - ty1);
- mc1 = (c2 - c1)/(double) (ty2 - ty1);
- mc2 = (c3 - c1)/(double) (ty3 - ty1);
-
- y = ty1;
- while (y >= ty2) {
- /* Calculate x values from slope */
- ix1 = (int) (m1*(y-ty1)+0.5) + tx1;
- ix2 = (int) (m2*(y-ty1)+0.5) + tx1;
- zz1 = mz1*(y-ty1) + tz1;
- zz2 = mz2*(y-ty1) + tz1;
- ic1 = mc1*(y-ty1) + c1;
- ic2 = mc2*(y-ty1) + c1;
- if (ix1 > ix2)
- Plot3D_horizontalinterp(p3,ix2,ix1,y,zz2,zz1,ic2,ic1);
- else
- Plot3D_horizontalinterp(p3,ix1,ix2,y,zz1,zz2,ic1,ic2);
- y--;
- }
- }
- if (ty3 < ty2) {
- /* Draw lower half of the triangle */
- m2 = (double) (tx3 - tx1)/(double) (ty3 - ty1);
- mz2 = (tz3 - tz1)/(double) (ty3 - ty1);
- mc2 = (c3 - c1)/(double) (ty3 - ty1);
- m3 = (double) (tx3 - tx2)/(double)(ty3 - ty2);
- mz3 = (tz3 - tz2)/(double) (ty3 - ty2);
- mc3 = (c3 - c2)/(double) (ty3 - ty2);
- y = ty2;
- while (y >= ty3) {
- ix1 = (int) (m3*(y-ty2)+0.5)+tx2;
- ix2 = (int) (m2*(y-ty1)+0.5)+tx1;
- zz1 = mz3*(y-ty2)+tz2;
- zz2 = mz2*(y-ty1)+tz1;
- ic1 = mc3*(y-ty2)+c2;
- ic2 = mc2*(y-ty1)+c1;
- if (ix1 > ix2)
- Plot3D_horizontalinterp(p3,ix2,ix1,y,zz2,zz1,ic2,ic1);
- else
- Plot3D_horizontalinterp(p3,ix1,ix2,y,zz1,zz2,ic1,ic2);
- y--;
- }
- }
- }
-}
-
-/* -------------------------------------------------------------------------
- Plot3D_interptriangle(Plot3D *p3,
- double x1, double y1, double z1, Pixel c1,
- double x2, double y2, double z2, Pixel c2,
- double x3, double y3, double z3, Pixel c3)
-
- This function draws a 3D z-buffered filled triangle with color
- interpolation.
-
- This function simply transforms the given points and calls
- Plot3D_InterpTriangleTransform().
- -------------------------------------------------------------------------- */
-
-void Plot3D_interptriangle(Plot3D *p3,
- double x1, double y1, double z1, Pixel c1,
- double x2, double y2, double z2, Pixel c2,
- double x3, double y3, double z3, Pixel c3) {
-
- int tx1, tx2, tx3, ty1, ty2, ty3;
- Zvalue tz1, tz2, tz3;
- GL_Vector t;
- double invw;
-
- /* Transform the three points into screen coordinates */
-
- Matrix_transform4(p3->trans_mat,x1,y1,z1,1,&t); /* Point 1 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx1 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty1 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz1 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x2,y2,z2,1,&t); /* Point 2 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx2 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty2 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz2 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x3,y3,z3,1,&t); /* Point 3 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx3 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty3 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz3 = (Zvalue) t.z;
-
- Plot3D_interptriangletransform(p3,tx1,ty1,tz1,c1,tx2,ty2,tz2,c2,tx3,ty3,tz3,c3);
-}
-
-/* -------------------------------------------------------------------------
- Plot3D_quad(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- double x4, double y4, double z4,
- Pixel fillcolor)
-
- This function draws a 3D outlined Quadralateral. Used primarily for
- drawing meshes and other things.
-
- Plotting is done in the following order :
- (x1,y1,z1) --> (x2,y2,z2)
- (x2,y2,z2) --> (x3,y3,z3)
- (x3,y3,z3) --> (x4,y4,z4)
- (x4,y4,z4) --> (x1,y1,z1)
- -------------------------------------------------------------------------- */
-
-void Plot3D_quad(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- double x4, double y4, double z4,
- Pixel color) {
-
- int tx1, tx2, tx3, tx4, ty1, ty2, ty3, ty4;
- Zvalue tz1, tz2, tz3, tz4;
- GL_Vector t;
- double invw;
-
- /* Transform the three points into screen coordinates */
-
- Matrix_transform4(p3->trans_mat,x1,y1,z1,1,&t); /* Point 1 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx1 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty1 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz1 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x2,y2,z2,1,&t); /* Point 2 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx2 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty2 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz2 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x3,y3,z3,1,&t); /* Point 3 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx3 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty3 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz3 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x4,y4,z4,1,&t); /* Point 3 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx4 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty4 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz4 = (Zvalue) t.z;
-
- Plot3D_linetransform(p3,tx1,ty1,tz1,tx2,ty2,tz2,color);
- Plot3D_linetransform(p3,tx2,ty2,tz2,tx3,ty3,tz3,color);
- Plot3D_linetransform(p3,tx3,ty3,tz3,tx4,ty4,tz4,color);
- Plot3D_linetransform(p3,tx4,ty4,tz4,tx1,ty1,tz1,color);
-
-}
-
-
-/* -------------------------------------------------------------------------
- Plot3D_solidquad(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- double x4, double y4, double z4,
- Pixel fillcolor)
-
- This function draws a 3D solid Quadralateral. Uses the function
- Plot3D_SolidTriangleTransform() to fill in the region.
-
- Plotting is done in the following order :
- (x1,y1,z1) --> (x2,y2,z2)
- (x2,y2,z2) --> (x3,y3,z3)
- (x3,y3,z3) --> (x4,y4,z4)
- (x4,y4,z4) --> (x1,y1,z1)
- -------------------------------------------------------------------------- */
-
-void Plot3D_solidquad(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- double x4, double y4, double z4,
- Pixel color) {
-
- int tx1, tx2, tx3, tx4, ty1, ty2, ty3, ty4;
- Zvalue tz1, tz2, tz3, tz4;
- GL_Vector t;
- double invw;
-
- /* Transform the three points into screen coordinates */
-
- Matrix_transform4(p3->trans_mat,x1,y1,z1,1,&t); /* Point 1 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx1 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty1 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz1 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x2,y2,z2,1,&t); /* Point 2 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx2 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty2 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz2 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x3,y3,z3,1,&t); /* Point 3 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx3 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty3 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz3 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x4,y4,z4,1,&t); /* Point 3 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx4 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty4 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz4 = (Zvalue) t.z;
-
- Plot3D_solidtriangletransform(p3,tx1,ty1,tz1,tx2,ty2,tz2,tx3,ty3,tz3,color);
- Plot3D_solidtriangletransform(p3,tx1,ty1,tz1,tx4,ty4,tz4,tx3,ty3,tz3,color);
-}
-
-/* -------------------------------------------------------------------------
- Plot3D_interpquad(Plot3D *p3, double x1, double y1, double z1, Pixel c1,
- double x2, double y2, double z2, Pixel c2,
- double x3, double y3, double z3, Pixel c3,
- double x4, double y4, double z4, Pixel c4)
-
- This function draws a 3D color-interpolated Quadralateral. Uses the function
- Plot3D_InterpTriangleTransform() to fill in the region.
-
- Plotting is done in the following order :
- (x1,y1,z1) --> (x2,y2,z2)
- (x2,y2,z2) --> (x3,y3,z3)
- (x3,y3,z3) --> (x4,y4,z4)
- (x4,y4,z4) --> (x1,y1,z1)
- -------------------------------------------------------------------------- */
-
-void Plot3D_interpquad(Plot3D *p3, double x1, double y1, double z1, Pixel c1,
- double x2, double y2, double z2, Pixel c2,
- double x3, double y3, double z3, Pixel c3,
- double x4, double y4, double z4, Pixel c4) {
-
-
- int tx1, tx2, tx3, tx4, ty1, ty2, ty3, ty4;
- Zvalue tz1, tz2, tz3, tz4;
- GL_Vector t;
- double invw;
-
- /* Transform the three points into screen coordinates */
-
- Matrix_transform4(p3->trans_mat,x1,y1,z1,1,&t); /* Point 1 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx1 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty1 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz1 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x2,y2,z2,1,&t); /* Point 2 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx2 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty2 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz2 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x3,y3,z3,1,&t); /* Point 3 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx3 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty3 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz3 = (Zvalue) t.z;
-
- Matrix_transform4(p3->trans_mat,x4,y4,z4,1,&t); /* Point 3 */
- invw = 1.0/t.w;
- t.x = t.x *invw;
- t.y = t.y *invw;
- t.z = t.z *invw;
- tx4 = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty4 = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz4 = (Zvalue) t.z;
-
- Plot3D_interptriangletransform(p3,tx1,ty1,tz1,c1,tx2,ty2,tz2,c2,tx3,ty3,tz3,c3);
- Plot3D_interptriangletransform(p3,tx1,ty1,tz1,c1,tx4,ty4,tz4,c4,tx3,ty3,tz3,c3);
-
-}
-
-/* --------------------------------------------------------------------------
- Plot3D_solidsphere(Plot3 *p3, double x, double y, double z, double radius,
- Pixel c)
-
- Makes a 3D sphere at x,y,z with given radius and color.
-
- Basic strategy :
- 1. Transform point to screen coordinates
- 2. Figure out what the radius is in screen coordinates
- 3. Use bresenham algorithm for large spheres
- 4. Use bitmaps for small spheres
- -------------------------------------------------------------------------- */
-
-/* This is used to fill in spheres */
-static int s_xmin;
-static int s_ymin;
-static int s_xmax;
-static int s_ymax;
-static Pixel **s_pixels;
-static Zvalue **s_zbuffer;
-
-void Plot3D_spherehorizontal(int xmin, int xmax, int y, Zvalue z, Pixel color) {
- int i;
- int startx, endx;
- Pixel *p;
- Zvalue *zbuf;
-
- if ((y < s_ymin) || (y >= s_ymax)) return;
- if (xmin < s_xmin) startx = s_xmin;
- else startx = xmin;
- if (xmax >= s_xmax) endx = s_xmax - 1;
- else endx = xmax;
-
- /* Draw it */
-
- p = &s_pixels[y][xmin];
- zbuf = &s_zbuffer[y][xmin];
- for (i = startx; i <= endx; i++, p++, zbuf++) {
- if (z <= *zbuf) {
- *p = color;
- *zbuf = z;
- }
- }
-}
-
-void Plot3D_solidsphere(Plot3D *p3, double x, double y, double z, double radius,
- Pixel c) {
-
- GL_Vector t,r;
- double rad;
- int tx,ty, irad;
- Zvalue tz;
- double invw;
- int ix, iy, ix1,ix2,p;
- FrameBuffer *f;
-
- /* First transform the point into model coordinates */
-
- Matrix_transform4(p3->fullmodel_mat,x,y,z,1,&t);
-
- /* Now transform two points in order to find proper sphere radius */
-
- Matrix_transform4(p3->view_mat,t.x+radius,t.y,t.z,t.w,&r); /* transform radius */
- Matrix_transform4(p3->view_mat,t.x,t.y,t.z,t.w,&t);
-
- invw = 1.0/t.w;
- t.x = t.x*invw;
- t.y = t.y*invw;
- t.z = t.z*invw;
- invw = 1.0/r.w;
- r.x = r.x*invw;
- r.y = r.y*invw;
- r.z = r.z*invw;
- invw = 1.0/r.w;
-
- rad = fabs(t.x - r.x);
-
- /* Transform everything into screen coordinates */
-
- tx = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz = (Zvalue) t.z;
- irad = (int) (p3->zoom*(rad*p3->width + 0.5));
-
- /* This is only a temporary solution (maybe). */
-
-#define fill_zcircle(x,y,c) \
- ix1 = tx - x; \
- ix2 = tx + x; \
- if (ix1 < s_xmin) ix1 = s_xmin; \
- if (ix2 >= s_xmax) ix2 = s_xmax; \
- Plot3D_spherehorizontal(ix1,ix2,y,tz,c);
-
- f = p3->frame;
- s_xmin = f->xmin;
- s_ymin = f->ymin;
- s_xmax = f->xmax;
- s_ymax = f->ymax;
- s_pixels = f->pixels;
- s_zbuffer = f->zbuffer;
- if (irad <= 1) {
- /* Plot a single pixel */
- if ((tx >= f->xmin) && (tx < f->xmax)) {
- if ((ty >= f->ymin) && (ty <f->ymax)) {
- if (tz <= f->zbuffer[ty][tx]) {
- f->pixels[ty][tx] = c;
- f->zbuffer[ty][tx] = tz;
- }
- }
- }
- return;
- }
- ix = 0;
- iy = irad;
- p = 3-2*irad;
- while (ix <= iy) {
- fill_zcircle(ix,ty+iy,c);
- fill_zcircle(ix,ty-iy,c);
- fill_zcircle(iy,ty+ix,c);
- fill_zcircle(iy,ty-ix,c);
- if (p < 0) p = p + 4*ix + 6;
- else {
- p = p + 4*(ix-iy) + 10;
- iy = iy -1;
- }
- ix++;
- }
-}
-
-
-/* --------------------------------------------------------------------
- Plot3D_outlinesphere(Plot3D *p3, double x, double y, double z,
- double radius, Pixel color, Pixel bc)
-
- Draws an outlined sphere.
- -------------------------------------------------------------------- */
-
-void Plot3D_outlinesphere(Plot3D *p3, double x, double y, double z,
- double radius, Pixel c, Pixel bc)
-{
- GL_Vector t,r;
- double rad;
- int tx,ty, irad;
- Zvalue tz;
- double invw;
- int ix, iy, ix1,ix2,p;
-
- FrameBuffer *f;
-
- /* First transform the point into model coordinates */
-
- Matrix_transform4(p3->fullmodel_mat,x,y,z,1,&t);
-
- /* Now transform two points in order to find proper sphere radius */
-
- Matrix_transform4(p3->view_mat,t.x+radius,t.y,t.z,t.w,&r); /* transform radius */
- Matrix_transform4(p3->view_mat,t.x,t.y,t.z,t.w,&t);
-
- invw = 1.0/t.w;
- t.x = t.x*invw;
- t.y = t.y*invw;
- t.z = t.z*invw;
- invw = 1.0/r.w;
- r.x = r.x*invw;
- r.y = r.y*invw;
- r.z = r.z*invw;
- invw = 1.0/r.w;
-
- rad = fabs(t.x - r.x);
-
- /* Transform everything into screen coordinates */
-
- tx = (int) ((t.x +p3->xshift)*p3->zoom*p3->width + 0.5) + p3->view_xmin;
- ty = (int) ((t.y +p3->yshift)*p3->zoom*p3->height + 0.5) + p3->view_ymin;
- tz = (Zvalue) t.z;
- irad = (int) (p3->zoom*(rad*p3->width + 0.5));
-
- /* This is only a temporary solution (maybe). */
-#define plot_zcircle(x,y,c) \
- if ((x >= s_xmin) && (x < s_xmax) && \
- (y >= s_ymin) && (y < s_ymax)) {\
- if (tz <= s_zbuffer[y][x]) { \
- s_pixels[y][x] = c; \
- s_zbuffer[y][x] = tz; } \
- }
-
- f = p3->frame;
- s_xmin = f->xmin;
- s_ymin = f->ymin;
- s_xmax = f->xmax;
- s_ymax = f->ymax;
- s_pixels = f->pixels;
- s_zbuffer = f->zbuffer;
-
- if (irad <= 1) {
- /* Plot a single pixel */
- if ((tx >= f->xmin) && (tx < f->xmax)) {
- if ((ty >= f->ymin) && (ty <f->ymax)) {
- if (tz <= f->zbuffer[ty][tx]) {
- f->pixels[ty][tx] = c;
- f->zbuffer[ty][tx] = tz;
- }
- }
- }
- return;
- }
- ix = 0;
- iy = irad;
- p = 3-2*irad;
- while (ix <= iy) {
- fill_zcircle(ix,ty+iy,c);
- fill_zcircle(ix,ty-iy,c);
- fill_zcircle(iy,ty+ix,c);
- fill_zcircle(iy,ty-ix,c);
-
- plot_zcircle(tx+ix,ty+iy,bc);
- plot_zcircle(tx-ix,ty+iy,bc);
- plot_zcircle(tx+ix,ty-iy,bc);
- plot_zcircle(tx-ix,ty-iy,bc);
- plot_zcircle(tx+iy,ty+ix,bc);
- plot_zcircle(tx-iy,ty+ix,bc);
- plot_zcircle(tx+iy,ty-ix,bc);
- plot_zcircle(tx-iy,ty-ix,bc);
- if (p < 0) p = p + 4*ix + 6;
- else {
- p = p + 4*(ix-iy) + 10;
- iy = iy -1;
- }
- ix++;
- }
-}
-
-/* QUAD Test
- Test out quad functions for graphing */
-
-double zf(double x, double y) {
- return cos(sqrt(x*x + y*y)*10.0)/(sqrt(x*x+y*y)+1);
-}
-
-void Quad_Test(Plot3D *p3, int npoints) {
- int i,j;
- double dx;
- double x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,za;
- int c;
- dx = 2.0/npoints;
-
-
- for (i = 0; i < npoints; i++)
- for (j = 0; j < npoints; j++) {
- x1 = i*dx + -1.0;
- y1 = j*dx + -1.0;
- x2 = x1 + dx;
- x3 = x1 + dx;
- x4 = x1;
- y2 = y1;
- y3 = y1 + dx;
- y4 = y1 + dx;
- z1 = zf(x1,y1);
- z2 = zf(x2,y2);
- z3 = zf(x3,y3);
- z4 = zf(x4,y4);
- za = 0.25*(z1+z2+z3+z4);
- c = 16+((za + 1)*120);
- if (c > 254) c = 254;
- Plot3D_quad(p3,x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,(Pixel) c);
- }
-}
-
-
-void Quad_SolidTest(Plot3D *p3, int npoints) {
- int i,j;
- double dx;
- double x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,za;
- int c;
- dx = 2.0/npoints;
-
-
- for (i = 0; i < npoints; i++)
- for (j = 0; j < npoints; j++) {
- x1 = i*dx + -1.0;
- y1 = j*dx + -1.0;
- x2 = x1 + dx;
- x3 = x1 + dx;
- x4 = x1;
- y2 = y1;
- y3 = y1 + dx;
- y4 = y1 + dx;
- z1 = zf(x1,y1);
- z2 = zf(x2,y2);
- z3 = zf(x3,y3);
- z4 = zf(x4,y4);
- za = 0.25*(z1+z2+z3+z4);
- c = 16+((za + 1)*120);
- if (c > 254) c = 254;
- Plot3D_solidquad(p3,x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,(Pixel) c);
- }
-}
-
-
-
-void Quad_InterpTest(Plot3D *p3, int npoints) {
- int i,j;
- double dx;
- double x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4;
- int c1,c2,c3,c4;
- dx = 2.0/npoints;
-
-
- for (i = 0; i < npoints; i++)
- for (j = 0; j < npoints; j++) {
- x1 = i*dx + -1.0;
- y1 = j*dx + -1.0;
- x2 = x1 + dx;
- x3 = x1 + dx;
- x4 = x1;
- y2 = y1;
- y3 = y1 + dx;
- y4 = y1 + dx;
- z1 = zf(x1,y1);
- z2 = zf(x2,y2);
- z3 = zf(x3,y3);
- z4 = zf(x4,y4);
- c1 = 16+((z1 + 1)*120);
- c2 = 16+((z2 + 1)*120);
- c3 = 16+((z3 + 1)*120);
- c4 = 16+((z4 + 1)*120);
- if (c1 > 254) c1 = 254;
- if (c2 > 254) c2 = 254;
- if (c3 > 254) c3 = 254;
- if (c4 > 254) c4 = 254;
- Plot3D_interpquad(p3,x1,y1,z1,(Pixel) c1,x2,y2,z2,(Pixel) c2,x3,y3,z3,(Pixel) c3,x4,y4,z4,(Pixel) c4);
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Examples/GIFPlot/Makefile.in b/Examples/GIFPlot/Makefile.in
deleted file mode 100644
index 4e51360c8..000000000
--- a/Examples/GIFPlot/Makefile.in
+++ /dev/null
@@ -1,23 +0,0 @@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-RANLIB = @RANLIB@
-OPT =
-
-INSTALL = ../install-sh -c
-INSTALL_DATA = ${INSTALL} -m 644
-SHELL = /bin/sh
-
-all:
- cd Lib && $(MAKE) OPT="$(OPT)"
-
-install:
- $(INSTALL_DATA) Include/gifplot.h $(prefix)/include/gifplot.h
- $(INSTALL_DATA) libgifplot.a $(exec_prefix)/lib/libgifplot.a
- $(RANLIB) $(exec_prefix)/lib/libgifplot.a
-
-clean::
- rm -f *.@OBJEXT@ *~ libgifplot.a *_wrap* *_man*
- cd Lib && $(MAKE) clean
- rm -f config.log config.status config.cache
-
-check: all
diff --git a/Examples/GIFPlot/Ocaml/check.list b/Examples/GIFPlot/Ocaml/check.list
deleted file mode 100644
index e75ee586a..000000000
--- a/Examples/GIFPlot/Ocaml/check.list
+++ /dev/null
@@ -1,3 +0,0 @@
-# see top-level Makefile.in
-full
-simple
diff --git a/Examples/GIFPlot/Ocaml/full/Makefile b/Examples/GIFPlot/Ocaml/full/Makefile
deleted file mode 100644
index 4f35c43f9..000000000
--- a/Examples/GIFPlot/Ocaml/full/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../swig
-SWIGOPT = -I../../Include
-SRCS =
-TARGET = gifcaml
-INTERFACE = gifplot.i
-LIBS = -L../.. -lgifplot -lm
-INCLUDES = -I../../Include
-MLFILE = gifplot.ml
-IOBJS = runme.cmo
-PROGFILE = runme.ml
-
-all:: static
-
-static::
- $(MAKE) -f $(TOP)/Makefile TOP='$(TOP)' \
- IOBJS='$(IOBJS)' PROGFILE='$(PROGFILE)' \
- SRCS='$(SRCS)' SWIG='$(SWIG)' MLFILE='$(MLFILE)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ocaml_static
-
-dynamic::
- $(MAKE) -f $(TOP)/Makefile TOP='$(TOP)' \
- IOBJS='$(IOBJS)' PROGFILE='$(PROGFILE)' \
- SRCS='$(SRCS)' SWIG='$(SWIG)' MLFILE='$(MLFILE)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ocaml_dynamic
-
-clean::
- $(MAKE) -f $(TOP)/Makefile MLFILE='$(MLFILE)' ocaml_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Ocaml/full/README b/Examples/GIFPlot/Ocaml/full/README
deleted file mode 100644
index 4a2b400b5..000000000
--- a/Examples/GIFPlot/Ocaml/full/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This example runs the entire gifplot.h header file through SWIG without
-any changes. The ocaml program 'runme.ml' 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/Ocaml/full/cmap b/Examples/GIFPlot/Ocaml/full/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Ocaml/full/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Ocaml/full/gifplot.i b/Examples/GIFPlot/Ocaml/full/gifplot.i
deleted file mode 100644
index 22f4df672..000000000
--- a/Examples/GIFPlot/Ocaml/full/gifplot.i
+++ /dev/null
@@ -1,15 +0,0 @@
-/* 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"
-%}
-
-typedef int Pixel;
-%include gifplot.h
diff --git a/Examples/GIFPlot/Ocaml/full/runme.ml b/Examples/GIFPlot/Ocaml/full/runme.ml
deleted file mode 100644
index 0dfa98569..000000000
--- a/Examples/GIFPlot/Ocaml/full/runme.ml
+++ /dev/null
@@ -1,87 +0,0 @@
-(* Plot a 3D Function *)
-
-(* Use the wrapped GIFPlot library *)
-open Swig
-open Gifplot
-open Int32
-
-(* Here is the function to plot *)
-let func x y =
- 5.0 *.
- (cos (2.0 *. (sqrt (x *. x) +. (y *. y)))) *.
- (exp (-0.3 *. (sqrt (x *. x) +. (y *. y))))
-
-(* Here are some plotting parameters *)
-
-let xmin = -5.0
-let xmax = 5.0
-let ymin = -5.0
-let ymax = 5.0
-let zmin = -5.0
-let zmax = 5.0
-
-(* Grid resolution *)
-let nxpoints = 60
-let nypoints = 60
-
-let cmap = _new_ColorMap (C_string "cmap")
-let frame = _new_FrameBuffer (C_list [ C_int 500 ;
- C_int 500 ])
-let _ = _FrameBuffer_clear (C_list [ frame ; _BLACK C_void ])
-
-let p2 = _new_Plot3D (C_list [ frame ;
- C_float xmin ; C_float ymin ; C_float zmin ;
- C_float xmax ; C_float ymax ; C_float zmax ])
-let _ = _Plot3D_lookat (C_list [ p2 ; C_float (2.0 *. (zmax -. zmin)) ])
-let _ = _Plot3D_autoperspective (C_list [ p2 ; C_float 40.0 ])
-let _ = _Plot3D_rotu (C_list [ p2 ; C_float 60.0 ])
-let _ = _Plot3D_rotr (C_list [ p2 ; C_float 30.0 ])
-let _ = _Plot3D_rotd (C_list [ p2 ; C_float 10.0 ])
-
-let drawsolid () =
- begin
- _Plot3D_clear (C_list [ p2 ; _BLACK C_void ]) ;
- _Plot3D_start p2 ;
- let dx = ((xmax -. xmin) /. (float_of_int nxpoints))
- and dy = ((ymax -. ymin) /. (float_of_int nypoints))
- and cscale = (240.0 /. (zmax -. zmin)) in
- let rec x_loop x i =
- if i < nxpoints then
- begin
- let rec y_loop y j =
- begin
- if j < nypoints then
- let z1 = func x y
- and z2 = func (x +. dx) y
- and z3 = func (x +. dx) (y +. dy)
- and z4 = func x (y +. dy) in
- let c1 = cscale *. (z1 -. zmin)
- and c2 = cscale *. (z2 -. zmin)
- and c3 = cscale *. (z3 -. zmin)
- and c4 = cscale *. (z4 -. zmin) in
- let cc = (c1 +. c2 +. c3 +. c4) /. 4.0 in
- let c = (max (min (int_of_float cc) 239) 0) in
- _Plot3D_solidquad
- (C_list (p2 ::
- (List.map
- (fun x -> C_float x)
- [ x ; y ; z1 ;
- (x +. dx) ; y ; z2 ;
- (x +. dx) ; (y +. dy) ; z3 ;
- x ; (y +. dx) ; z4 ;
- (float_of_int (c + 16)) ]))) ;
- y_loop (y +. dy) (j + 1)
- end in
- begin
- y_loop ymin 0 ;
- x_loop (x +. dx) (i + 1)
- end
- end in
- x_loop xmin 0
- end
-
-let _ = print_endline "Making a nice 3D plot..."
-let _ = drawsolid ()
-
-let _ = _FrameBuffer_writeGIF (C_list [ frame ; cmap ; C_string "image.gif" ])
-let _ = print_endline "Write image.gif"
diff --git a/Examples/GIFPlot/Ocaml/simple/Makefile b/Examples/GIFPlot/Ocaml/simple/Makefile
deleted file mode 100644
index 50492efc7..000000000
--- a/Examples/GIFPlot/Ocaml/simple/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../swig
-SWIGOPT = -I../../Include
-SRCS =
-TARGET = gifsimple
-INTERFACE = simple.i
-LIBS = -L../.. -lgifplot -lm
-INCLUDES = -I../../Include
-MLFILE = simple.ml
-IOBJS = simple_wrap.o simple.cmo runme.cmo
-PROGFILE = runme.ml
-
-all:: static
-
-static::
- $(MAKE) -f $(TOP)/Makefile TOP='$(TOP)' \
- IOBJS='$(IOBJS)' PROGFILE='$(PROGFILE)' \
- SRCS='$(SRCS)' SWIG='$(SWIG)' MLFILE='$(MLFILE)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ocaml_static
-
-dynamic::
- $(MAKE) -f $(TOP)/Makefile TOP='$(TOP)' \
- IOBJS='$(IOBJS)' PROGFILE='$(PROGFILE)' \
- SRCS='$(SRCS)' SWIG='$(SWIG)' MLFILE='$(MLFILE)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ocaml_static
-
-clean::
- $(MAKE) -f $(TOP)/Makefile MLFILE='$(MLFILE)' ocaml_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Ocaml/simple/cmap b/Examples/GIFPlot/Ocaml/simple/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Ocaml/simple/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Ocaml/simple/runme.ml b/Examples/GIFPlot/Ocaml/simple/runme.ml
deleted file mode 100644
index 3b6602cbc..000000000
--- a/Examples/GIFPlot/Ocaml/simple/runme.ml
+++ /dev/null
@@ -1,35 +0,0 @@
-(* Draw some simple shapes *)
-
-(* Use the wrapped GIFPlot library *)
-open Swig
-open Simple
-open Int32
-
-let _ = print_endline "Drawing some basic shapes"
-
-let cmap = _new_ColorMap (C_string "cmap")
-let f = _new_FrameBuffer (C_list [ C_int 400 ; C_int 400 ])
-
-(* Clear the picture *)
-let _ = _FrameBuffer_clear (C_list [ f ; _BLACK C_void ])
-
-(* Make a red box *)
-let _ = _FrameBuffer_box
- (C_list [ f ; C_int 40 ; C_int 40 ; C_int 200 ; C_int 200 ; _RED C_void ])
-
-(* Make a blue circle *)
-let _ = _FrameBuffer_circle
- (C_list [ f ; C_int 200 ; C_int 200 ; C_int 40 ; _BLUE C_void ])
-
-(* Make green line *)
-let _ = _FrameBuffer_line
- (C_list [ f ; C_int 10 ; C_int 390 ; C_int 390 ; C_int 200 ; _GREEN C_void ])
-
-(* Write an image out to disk *)
-
-let _ = _FrameBuffer_writeGIF (C_list [ f ; cmap ; C_string "image.gif" ])
-let _ = print_endline "Wrote image.gif"
-
-let _ = _delete_FrameBuffer f
-let _ = _delete_ColorMap cmap
-
diff --git a/Examples/GIFPlot/Ocaml/simple/simple.i b/Examples/GIFPlot/Ocaml/simple/simple.i
deleted file mode 100644
index 33297f491..000000000
--- a/Examples/GIFPlot/Ocaml/simple/simple.i
+++ /dev/null
@@ -1,33 +0,0 @@
-/* This example shows a very simple interface wrapping a few
- primitive declarations */
-
-%module simple
-%{
-#include "gifplot.h"
-%}
-
-typedef int 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
diff --git a/Examples/GIFPlot/Perl5/check.list b/Examples/GIFPlot/Perl5/check.list
deleted file mode 100644
index 13de977af..000000000
--- a/Examples/GIFPlot/Perl5/check.list
+++ /dev/null
@@ -1,4 +0,0 @@
-# see top-level Makefile.in
-full
-shadow
-simple
diff --git a/Examples/GIFPlot/Perl5/full/Makefile b/Examples/GIFPlot/Perl5/full/Makefile
deleted file mode 100644
index 0e0878d03..000000000
--- a/Examples/GIFPlot/Perl5/full/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../swig
-SWIGOPT = -I../../Include -noproxy
-SRCS =
-TARGET = 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)' perl5
-
-static::
- $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_static
-
-clean::
- $(MAKE) -f $(TOP)/Makefile perl5_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Perl5/full/README b/Examples/GIFPlot/Perl5/full/README
deleted file mode 100644
index 05c685a80..000000000
--- a/Examples/GIFPlot/Perl5/full/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This example runs the entire gifplot.h header file through SWIG without
-any changes. The script 'runme.pl' 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/Perl5/full/cmap b/Examples/GIFPlot/Perl5/full/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Perl5/full/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Perl5/full/gifplot.i b/Examples/GIFPlot/Perl5/full/gifplot.i
deleted file mode 100644
index 5a7f5008f..000000000
--- a/Examples/GIFPlot/Perl5/full/gifplot.i
+++ /dev/null
@@ -1,15 +0,0 @@
-/* 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/Perl5/full/runme.pl b/Examples/GIFPlot/Perl5/full/runme.pl
deleted file mode 100644
index 77fd321c9..000000000
--- a/Examples/GIFPlot/Perl5/full/runme.pl
+++ /dev/null
@@ -1,68 +0,0 @@
-# Plot a 3D function
-use gifplot;
-package gifplot;
-
-# Here is the function to plot
-sub func {
- my $x = shift;
- my $y = shift;
- 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);
-
-sub drawsolid {
- Plot3D_clear($p3,$BLACK);
- Plot3D_start($p3);
- my $dx = 1.0*($xmax-$xmin)/$nxpoints;
- my $dy = 1.0*($ymax-$ymin)/$nypoints;
- my $cscale = 240.0/($zmax-$zmin);
- my $x = $xmin;
- for ($i = 0; $i < $nxpoints; $i++) {
- my $y = $ymin;
- for ($j = 0; $j < $nypoints; $j++) {
- my $z1 = func($x,$y);
- my $z2 = func($x+$dx,$y);
- my $z3 = func($x+$dx,$y+$dy);
- my $z4 = func($x,$y+$dy);
- my $c1 = $cscale*($z1-$zmin);
- my $c2 = $cscale*($z2-$zmin);
- my $c3 = $cscale*($z3-$zmin);
- my $c4 = $cscale*($z4-$zmin);
- my $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/Perl5/shadow/Makefile b/Examples/GIFPlot/Perl5/shadow/Makefile
deleted file mode 100644
index c39eac52c..000000000
--- a/Examples/GIFPlot/Perl5/shadow/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../swig
-SWIGOPT = -outcurrentdir
-SRCS =
-TARGET = gifplot
-INTERFACEDIR = ../../Interface/
-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)' INTERFACEDIR='$(INTERFACEDIR)' perl5
-
-static::
- $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='myperl' INTERFACE='$(INTERFACE)' INTERFACEDIR='$(INTERFACEDIR)' perl5_static
-
-clean::
- $(MAKE) -f $(TOP)/Makefile perl5_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Perl5/shadow/README b/Examples/GIFPlot/Perl5/shadow/README
deleted file mode 100644
index ab12e344e..000000000
--- a/Examples/GIFPlot/Perl5/shadow/README
+++ /dev/null
@@ -1,2 +0,0 @@
-This example use the file in ../../Interface/gifplot.i to build
-an interface with shadow classes. Run the script 'runme.pl'.
diff --git a/Examples/GIFPlot/Perl5/shadow/cmap b/Examples/GIFPlot/Perl5/shadow/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Perl5/shadow/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Perl5/shadow/runme.pl b/Examples/GIFPlot/Perl5/shadow/runme.pl
deleted file mode 100644
index c396251af..000000000
--- a/Examples/GIFPlot/Perl5/shadow/runme.pl
+++ /dev/null
@@ -1,68 +0,0 @@
-# Plot a 3D function
-use gifplot;
-package gifplot;
-
-# Here is the function to plot
-sub func {
- my $x = shift;
- my $y = shift;
- 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 gifplot::ColorMap("cmap");
-$frame = new gifplot::FrameBuffer(500,500);
-$frame->clear($BLACK);
-
-$p3 = new gifplot::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);
-
-sub drawsolid {
- $p3->clear($BLACK);
- $p3->start();
- my $dx = 1.0*($xmax-$xmin)/$nxpoints;
- my $dy = 1.0*($ymax-$ymin)/$nypoints;
- my $cscale = 240.0/($zmax-$zmin);
- my $x = $xmin;
- for ($i = 0; $i < $nxpoints; $i++) {
- my $y = $ymin;
- for ($j = 0; $j < $nypoints; $j++) {
- my $z1 = func($x,$y);
- my $z2 = func($x+$dx,$y);
- my $z3 = func($x+$dx,$y+$dy);
- my $z4 = func($x,$y+$dy);
- my $c1 = $cscale*($z1-$zmin);
- my $c2 = $cscale*($z2-$zmin);
- my $c3 = $cscale*($z3-$zmin);
- my $c4 = $cscale*($z4-$zmin);
- my $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/Perl5/simple/Makefile b/Examples/GIFPlot/Perl5/simple/Makefile
deleted file mode 100644
index 36a8fa938..000000000
--- a/Examples/GIFPlot/Perl5/simple/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../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)' perl5
-
-static::
- $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_static
-
-clean::
- $(MAKE) -f $(TOP)/Makefile perl5_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Perl5/simple/README b/Examples/GIFPlot/Perl5/simple/README
deleted file mode 100644
index c2c799a70..000000000
--- a/Examples/GIFPlot/Perl5/simple/README
+++ /dev/null
@@ -1,5 +0,0 @@
-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/Perl5/simple/runme.pl b/Examples/GIFPlot/Perl5/simple/runme.pl
deleted file mode 100644
index f28255e7c..000000000
--- a/Examples/GIFPlot/Perl5/simple/runme.pl
+++ /dev/null
@@ -1,28 +0,0 @@
-# Draw some simple shapes
-print "Drawing some basic shapes\n";
-
-use 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\n";
-
-simple::delete_FrameBuffer($f);
-simple::delete_ColorMap($cmap);
-
diff --git a/Examples/GIFPlot/Perl5/simple/simple.i b/Examples/GIFPlot/Perl5/simple/simple.i
deleted file mode 100644
index 457bc4c09..000000000
--- a/Examples/GIFPlot/Perl5/simple/simple.i
+++ /dev/null
@@ -1,38 +0,0 @@
-/* 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
-
-
-
-
-
diff --git a/Examples/GIFPlot/Php/check.list b/Examples/GIFPlot/Php/check.list
deleted file mode 100644
index e75ee586a..000000000
--- a/Examples/GIFPlot/Php/check.list
+++ /dev/null
@@ -1,3 +0,0 @@
-# see top-level Makefile.in
-full
-simple
diff --git a/Examples/GIFPlot/Php/full/Makefile b/Examples/GIFPlot/Php/full/Makefile
deleted file mode 100644
index e33e7a730..000000000
--- a/Examples/GIFPlot/Php/full/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-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
deleted file mode 100644
index f8d38d9af..000000000
--- a/Examples/GIFPlot/Php/full/README
+++ /dev/null
@@ -1,4 +0,0 @@
-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
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Php/full/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Php/full/gifplot.i b/Examples/GIFPlot/Php/full/gifplot.i
deleted file mode 100644
index 5a7f5008f..000000000
--- a/Examples/GIFPlot/Php/full/gifplot.i
+++ /dev/null
@@ -1,15 +0,0 @@
-/* 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
deleted file mode 100644
index de5371ee8..000000000
--- a/Examples/GIFPlot/Php/full/runme.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?
-
-# 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
deleted file mode 100644
index df8ee30c0..000000000
--- a/Examples/GIFPlot/Php/shadow/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-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
deleted file mode 100644
index 3e91f7d59..000000000
--- a/Examples/GIFPlot/Php/shadow/README
+++ /dev/null
@@ -1,2 +0,0 @@
-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
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Php/shadow/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Php/shadow/runme.php b/Examples/GIFPlot/Php/shadow/runme.php
deleted file mode 100644
index 3dffba050..000000000
--- a/Examples/GIFPlot/Php/shadow/runme.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?
-
-# 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
deleted file mode 100644
index e60b641fa..000000000
--- a/Examples/GIFPlot/Php/simple/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-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
deleted file mode 100644
index c2c799a70..000000000
--- a/Examples/GIFPlot/Php/simple/README
+++ /dev/null
@@ -1,5 +0,0 @@
-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
deleted file mode 100644
index cf21a0927..000000000
--- a/Examples/GIFPlot/Php/simple/runme.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?
-
-# 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
deleted file mode 100644
index 457bc4c09..000000000
--- a/Examples/GIFPlot/Php/simple/simple.i
+++ /dev/null
@@ -1,38 +0,0 @@
-/* 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
-
-
-
-
-
diff --git a/Examples/GIFPlot/Pike/check.list b/Examples/GIFPlot/Pike/check.list
deleted file mode 100644
index d38998cab..000000000
--- a/Examples/GIFPlot/Pike/check.list
+++ /dev/null
@@ -1,2 +0,0 @@
-# see top-level Makefile.in
-simple
diff --git a/Examples/GIFPlot/Pike/simple/Makefile b/Examples/GIFPlot/Pike/simple/Makefile
deleted file mode 100644
index d339e0333..000000000
--- a/Examples/GIFPlot/Pike/simple/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../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)' pike
-
-static::
- $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='mypike' INTERFACE='$(INTERFACE)' pike_static
-
-clean::
- $(MAKE) -f $(TOP)/Makefile pike_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Pike/simple/README b/Examples/GIFPlot/Pike/simple/README
deleted file mode 100644
index 177b3633b..000000000
--- a/Examples/GIFPlot/Pike/simple/README
+++ /dev/null
@@ -1,5 +0,0 @@
-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.pike' runs the example.
-
-
diff --git a/Examples/GIFPlot/Pike/simple/runme.pike b/Examples/GIFPlot/Pike/simple/runme.pike
deleted file mode 100644
index 0e70235f1..000000000
--- a/Examples/GIFPlot/Pike/simple/runme.pike
+++ /dev/null
@@ -1,30 +0,0 @@
-int main()
-{
- // Draw some simple shapes
- write("Drawing some basic shapes\n");
-
- .simple.ColorMap cmap = .simple.new_ColorMap();
- .simple.FrameBuffer 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");
- write("Wrote image.gif\n");
-
- .simple.delete_FrameBuffer(f);
- .simple.delete_ColorMap(cmap);
-
- return 0;
-}
-
diff --git a/Examples/GIFPlot/Pike/simple/simple.i b/Examples/GIFPlot/Pike/simple/simple.i
deleted file mode 100644
index 457bc4c09..000000000
--- a/Examples/GIFPlot/Pike/simple/simple.i
+++ /dev/null
@@ -1,38 +0,0 @@
-/* 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
-
-
-
-
-
diff --git a/Examples/GIFPlot/Python/check.list b/Examples/GIFPlot/Python/check.list
deleted file mode 100644
index 13de977af..000000000
--- a/Examples/GIFPlot/Python/check.list
+++ /dev/null
@@ -1,4 +0,0 @@
-# see top-level Makefile.in
-full
-shadow
-simple
diff --git a/Examples/GIFPlot/Python/full/Makefile b/Examples/GIFPlot/Python/full/Makefile
deleted file mode 100644
index 83a7c864b..000000000
--- a/Examples/GIFPlot/Python/full/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-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
deleted file mode 100644
index 52971e40a..000000000
--- a/Examples/GIFPlot/Python/full/README
+++ /dev/null
@@ -1,8 +0,0 @@
-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
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Python/full/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Python/full/gifplot.i b/Examples/GIFPlot/Python/full/gifplot.i
deleted file mode 100644
index 5a7f5008f..000000000
--- a/Examples/GIFPlot/Python/full/gifplot.i
+++ /dev/null
@@ -1,15 +0,0 @@
-/* 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
deleted file mode 100644
index cb324c814..000000000
--- a/Examples/GIFPlot/Python/full/runme.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# 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
deleted file mode 100644
index 3ae9a9897..000000000
--- a/Examples/GIFPlot/Python/shadow/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-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
deleted file mode 100644
index aa761e240..000000000
--- a/Examples/GIFPlot/Python/shadow/README
+++ /dev/null
@@ -1,8 +0,0 @@
-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
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Python/shadow/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Python/shadow/runme.py b/Examples/GIFPlot/Python/shadow/runme.py
deleted file mode 100644
index d91460121..000000000
--- a/Examples/GIFPlot/Python/shadow/runme.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# 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
deleted file mode 100644
index 9fc9a6c72..000000000
--- a/Examples/GIFPlot/Python/simple/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-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
deleted file mode 100644
index 22152c665..000000000
--- a/Examples/GIFPlot/Python/simple/README
+++ /dev/null
@@ -1,5 +0,0 @@
-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
deleted file mode 100644
index dade67767..000000000
--- a/Examples/GIFPlot/Python/simple/runme.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# 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
deleted file mode 100644
index 457bc4c09..000000000
--- a/Examples/GIFPlot/Python/simple/simple.i
+++ /dev/null
@@ -1,38 +0,0 @@
-/* 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
-
-
-
-
-
diff --git a/Examples/GIFPlot/README b/Examples/GIFPlot/README
deleted file mode 100644
index ac1025a42..000000000
--- a/Examples/GIFPlot/README
+++ /dev/null
@@ -1,59 +0,0 @@
-GIFPlot
-=======
-
-To illustrate various SWIG features, the following examples involve
-building an interface to a small, but somewhat useful graphics library
-for creating 2D and 3D images in the form of GIF files. The Perl,
-Python, Tcl, Java, Ruby etc. directories contain various examples specific to
-those languages.
-
-This library was originally developed as part of the SPaSM molecular
-dynamics project at Los Alamos National Laboratory. However, due to
-patent enforcement issues related to LZW encoding and a general lack
-of time on the part of the author, the library was never officially
-released. On the plus side, a number of people have found it to be a
-useful easter egg within the SWIG distribution :-).
-
-<LEGAL>
-DUE TO PATENT RESTRICTIONS ON THE LZW COMPRESSION ALGORITHM, THIS
-LIBRARY ONLY PRODUCES UNCOMPRESSED GIF FILES. SO THERE.
-</LEGAL>
-
-Building the Library
-====================
-
-In order to run the examples, it is first necessary to build the GIFPlot
-C library. To do this, simply run make:
-
- make
-
-Running the Examples
-====================
-
-Once the library has been built, go to your chosen language directory,
-that is, Perl, Python, Tcl, Java, Ruby etc. Each example should have a
-README file with a description.
-
-Each example can be compiled using the makefile in each example directory. This
-makefile uses the top level makefile in the "Examples" directory of the distribution.
-If the example doesn't compile, you will need to adjust the settings in this file.
-
-Documentation
-=============
-
-Read the source Luke. The examples should be pretty much self-explanatory.
-The header file Include/gifplot.h contains the full API.
-
-The original documentation for the library can be found online at:
-
- http://www.dabeaz.com/gifplot/index.html
-
-
-Let me know what you think!
-===========================
-If you found this example to be useful, confusing, or otherwise, I would like to know
-about it. Suggestions for improvement are welcome.
-
--- Dave (dave@dabeaz.com)
-
-
diff --git a/Examples/GIFPlot/Ruby/check.list b/Examples/GIFPlot/Ruby/check.list
deleted file mode 100644
index 13de977af..000000000
--- a/Examples/GIFPlot/Ruby/check.list
+++ /dev/null
@@ -1,4 +0,0 @@
-# see top-level Makefile.in
-full
-shadow
-simple
diff --git a/Examples/GIFPlot/Ruby/full/Makefile b/Examples/GIFPlot/Ruby/full/Makefile
deleted file mode 100644
index 5af8bc832..000000000
--- a/Examples/GIFPlot/Ruby/full/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../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)' ruby
-
-static::
- $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_static
-
-clean::
- $(MAKE) -f $(TOP)/Makefile ruby_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Ruby/full/README b/Examples/GIFPlot/Ruby/full/README
deleted file mode 100644
index 22af6cb06..000000000
--- a/Examples/GIFPlot/Ruby/full/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This example runs the entire gifplot.h header file through SWIG without
-any changes. The script 'runme.rb' 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/Ruby/full/cmap b/Examples/GIFPlot/Ruby/full/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Ruby/full/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Ruby/full/gifplot.i b/Examples/GIFPlot/Ruby/full/gifplot.i
deleted file mode 100644
index 5a7f5008f..000000000
--- a/Examples/GIFPlot/Ruby/full/gifplot.i
+++ /dev/null
@@ -1,15 +0,0 @@
-/* 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/Ruby/full/runme.rb b/Examples/GIFPlot/Ruby/full/runme.rb
deleted file mode 100644
index 5c118b2fa..000000000
--- a/Examples/GIFPlot/Ruby/full/runme.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-# Plot a 3D function
-require 'gifplot'
-include Gifplot
-include Math
-
-# 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))
-end
-
-# 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*[XMAX-XMIN,YMAX-YMIN,ZMAX-ZMIN].max)
-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 0...NXPOINTS
- y = YMIN
- for j in 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 = (c1+c2+c3+c4)/4
- c = 0 if (c < 0)
- c = 239 if 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
- end
- x = x + dx
- end
-end
-
-puts "Making a nice 3D plot..."
-drawsolid()
-
-FrameBuffer_writeGIF(frame,cmap,"image.gif")
-puts "Wrote image.gif"
diff --git a/Examples/GIFPlot/Ruby/shadow/Makefile b/Examples/GIFPlot/Ruby/shadow/Makefile
deleted file mode 100644
index 8cbea2a57..000000000
--- a/Examples/GIFPlot/Ruby/shadow/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../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)' ruby
-
-static::
- $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='myruby' INTERFACE='$(INTERFACE)' INTERFACEDIR='$(INTERFACEDIR)' ruby_static
-
-clean::
- $(MAKE) -f $(TOP)/Makefile ruby_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Ruby/shadow/README b/Examples/GIFPlot/Ruby/shadow/README
deleted file mode 100644
index 7a33e137f..000000000
--- a/Examples/GIFPlot/Ruby/shadow/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This example illustrates Ruby shadow classes. Take a look at
-the file GIFPlot/Interface/gifplot.i
-
-Actually Ruby module of SWIG needs no shadow class. But this example
-is named "shadow" in order to be consistent with other languages.
diff --git a/Examples/GIFPlot/Ruby/shadow/cmap b/Examples/GIFPlot/Ruby/shadow/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Ruby/shadow/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Ruby/shadow/runme.rb b/Examples/GIFPlot/Ruby/shadow/runme.rb
deleted file mode 100644
index 0afcceef9..000000000
--- a/Examples/GIFPlot/Ruby/shadow/runme.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-# Plot a 3D function
-require 'gifplot'
-include Math
-
-# 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))
-end
-
-# 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.new("cmap")
-frame = Gifplot::FrameBuffer.new(500,500)
-frame.clear(Gifplot::BLACK)
-
-P3 = Gifplot::Plot3D.new(frame,XMIN,YMIN,ZMIN,XMAX,YMAX,ZMAX)
-P3.lookat(2*[XMAX-XMIN,YMAX-YMIN,ZMAX-ZMIN].max)
-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 0...NXPOINTS
- y = YMIN
- for j in 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 = (c1+c2+c3+c4)/4
- c = 0 if (c < 0)
- c = 239 if 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
- end
- x = x + dx
- end
-end
-
-puts "Making a nice 3D plot..."
-drawsolid()
-
-frame.writeGIF(cmap,"image.gif")
-puts "Wrote image.gif"
-
diff --git a/Examples/GIFPlot/Ruby/simple/Makefile b/Examples/GIFPlot/Ruby/simple/Makefile
deleted file mode 100644
index f7ca1a7d8..000000000
--- a/Examples/GIFPlot/Ruby/simple/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../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)' ruby
-
-static::
- $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_static
-
-clean::
- $(MAKE) -f $(TOP)/Makefile ruby_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Ruby/simple/README b/Examples/GIFPlot/Ruby/simple/README
deleted file mode 100644
index 9b51038bf..000000000
--- a/Examples/GIFPlot/Ruby/simple/README
+++ /dev/null
@@ -1,5 +0,0 @@
-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.rb' runs the example.
-
-
diff --git a/Examples/GIFPlot/Ruby/simple/runme.rb b/Examples/GIFPlot/Ruby/simple/runme.rb
deleted file mode 100644
index e8bf5a40f..000000000
--- a/Examples/GIFPlot/Ruby/simple/runme.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-# Draw some simple shapes
-puts "Drawing some basic shapes"
-require '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")
-puts "Wrote image.gif"
-
-Simple.delete_FrameBuffer(f)
-Simple.delete_ColorMap(cmap)
-
diff --git a/Examples/GIFPlot/Ruby/simple/simple.i b/Examples/GIFPlot/Ruby/simple/simple.i
deleted file mode 100644
index 457bc4c09..000000000
--- a/Examples/GIFPlot/Ruby/simple/simple.i
+++ /dev/null
@@ -1,38 +0,0 @@
-/* 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
-
-
-
-
-
diff --git a/Examples/GIFPlot/Tcl/check.list b/Examples/GIFPlot/Tcl/check.list
deleted file mode 100644
index 2b6e3d28a..000000000
--- a/Examples/GIFPlot/Tcl/check.list
+++ /dev/null
@@ -1,4 +0,0 @@
-# see top-level Makefile.in
-full
-mandel
-simple
diff --git a/Examples/GIFPlot/Tcl/full/Makefile b/Examples/GIFPlot/Tcl/full/Makefile
deleted file mode 100644
index 0c016e364..000000000
--- a/Examples/GIFPlot/Tcl/full/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../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)' tcl
-
-static::
- $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='mytclsh' INTERFACE='$(INTERFACE)' tclsh
-
-clean::
- $(MAKE) -f $(TOP)/Makefile tcl_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Tcl/full/README b/Examples/GIFPlot/Tcl/full/README
deleted file mode 100644
index bdba4e8b0..000000000
--- a/Examples/GIFPlot/Tcl/full/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This example runs the entire gifplot.h header file through SWIG without
-any changes. The script 'runme.tcl' 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/Tcl/full/cmap b/Examples/GIFPlot/Tcl/full/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Tcl/full/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Tcl/full/gifplot.i b/Examples/GIFPlot/Tcl/full/gifplot.i
deleted file mode 100644
index 5a7f5008f..000000000
--- a/Examples/GIFPlot/Tcl/full/gifplot.i
+++ /dev/null
@@ -1,15 +0,0 @@
-/* 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/Tcl/full/runme.tcl b/Examples/GIFPlot/Tcl/full/runme.tcl
deleted file mode 100644
index f469e71dd..000000000
--- a/Examples/GIFPlot/Tcl/full/runme.tcl
+++ /dev/null
@@ -1,67 +0,0 @@
-# Plot a 3D function
-
-catch { load ./gifplot[info sharedlibextension] gifplot}
-
-# Here is the function to plot
-proc func { x y } {
- return [expr { 5*cos(2*sqrt($x*$x+$y*$y))*exp(-0.3*sqrt($x*$x+$y*$y)) }]
-}
-
-# Here are some plotting parameters
-set xmin -5.0
-set xmax 5.0
-set ymin -5.0
-set ymax 5.0
-set zmin -5.0
-set zmax 5.0
-
-# Grid resolution
-set nxpoints 60
-set nypoints 60
-
-set cmap [new_ColorMap cmap]
-set frame [new_FrameBuffer 500 500]
-FrameBuffer_clear $frame $BLACK
-
-set p3 [new_Plot3D $frame $xmin $ymin $zmin $xmax $ymax $zmax ]
-Plot3D_lookat $p3 [expr {2*($zmax-$zmin)}]
-Plot3D_autoperspective $p3 40
-Plot3D_rotu $p3 60
-Plot3D_rotr $p3 30
-Plot3D_rotd $p3 10
-
-proc drawsolid { } {
- global xmin ymin zmin xmax ymax zmax nxpoints nypoints p3 BLACK
- Plot3D_clear $p3 $BLACK
- Plot3D_start $p3
- set dx [expr {1.0*($xmax-$xmin)/$nxpoints}]
- set dy [expr {1.0*($ymax-$ymin)/$nypoints}]
- set cscale [expr {240.0/($zmax-$zmin)}]
- set x $xmin
- for {set i 0} {$i < $nxpoints} {incr i 1} {
- set y $ymin
- for {set j 0} {$j < $nypoints} {incr j 1} {
- set z1 [func $x $y]
- set z2 [func [expr {$x+$dx}] $y]
- set z3 [func [expr {$x+$dx}] [expr {$y+$dy}]]
- set z4 [func $x [expr {$y+$dy}]]
- set c1 [expr {$cscale*($z1-$zmin)}]
- set c2 [expr {$cscale*($z2-$zmin)}]
- set c3 [expr {$cscale*($z3-$zmin)}]
- set c4 [expr {$cscale*($z4-$zmin)}]
- set c [expr {int(($c1+$c2+$c3+$c4)/4)}]
- if {$c < 0} { set c 0 }
- if {$c > 239} { set c 239 }
- Plot3D_solidquad $p3 $x $y $z1 [expr {$x+$dx}] $y $z2 [expr {$x+$dx}] [expr {$y+$dy}] $z3 $x [expr {$y+$dy}] $z4 [expr {$c+16}]
- set y [expr {$y + $dy}]
- }
- set x [expr {$x + $dx}]
- }
-}
-
-puts "Making a nice 3D plot..."
-drawsolid
-
-FrameBuffer_writeGIF $frame $cmap "image.gif"
-puts "Wrote image.gif"
-
diff --git a/Examples/GIFPlot/Tcl/mandel/Makefile b/Examples/GIFPlot/Tcl/mandel/Makefile
deleted file mode 100644
index 9280d7bb2..000000000
--- a/Examples/GIFPlot/Tcl/mandel/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../swig
-SWIGOPT = -I../../Interface
-SRCS =
-TARGET = gifplot
-INTERFACE = mandel.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)' tcl
-
-static::
- $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='mywish' INTERFACE='$(INTERFACE)' wish
-
-clean::
- $(MAKE) -f $(TOP)/Makefile tcl_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Tcl/mandel/README b/Examples/GIFPlot/Tcl/mandel/README
deleted file mode 100644
index a533d09b8..000000000
--- a/Examples/GIFPlot/Tcl/mandel/README
+++ /dev/null
@@ -1,6 +0,0 @@
-Kill lots of time exploring the Mandelbrot set. This example uses
-the full SWIG interface file located in ../../Interface. To run
-the program, type 'wish mandel.tcl'.
-
-
-
diff --git a/Examples/GIFPlot/Tcl/mandel/cmap b/Examples/GIFPlot/Tcl/mandel/cmap
deleted file mode 100644
index a20c331a9..000000000
--- a/Examples/GIFPlot/Tcl/mandel/cmap
+++ /dev/null
Binary files differ
diff --git a/Examples/GIFPlot/Tcl/mandel/display.tcl b/Examples/GIFPlot/Tcl/mandel/display.tcl
deleted file mode 100644
index 89eedf044..000000000
--- a/Examples/GIFPlot/Tcl/mandel/display.tcl
+++ /dev/null
@@ -1,68 +0,0 @@
-# Tcl code to display a image in a widget
-
-set __imageno 0
-
-proc dismiss {t i} {
- destroy $t
- image delete $i
-}
-
-proc BoxInit { c p2 mxmin mymin mxmax mymax func } {
- bind $c <Button-1> {BoxBegin %W %x %y}
- bind $c <B1-Motion> {BoxDrag %W %x %y}
- bind $c <ButtonRelease-1> "BoxFinish %W %x %y $p2 $mxmin $mymin $mxmax $mymax $func"
-}
-
-proc BoxBegin {w x y} {
- global box
- set box(anchor) [list $x $y]
- catch {unset box(last)}
-}
-
-proc BoxDrag { w x y} {
- global box
- catch {$w delete $box(last)}
- set box(last) [eval {$w create rect} $box(anchor) {$x $y -tag box -outline white}]
-}
-
-proc BoxFinish {w x y p2 mxmin mymin mxmax mymax func } {
- global box
- set start $box(anchor)
- set x1 [lrange $start 0 0]
- set y1 [lrange $start 1 1]
- catch {$w delete $box(last)}
-# Call the handler function
- $func $p2 $mxmin $mymin $mxmax $mymax $x1 $y1 $x $y
-}
-
-proc display_image {filename p2 handler} {
- global __imageno __images
- set i [image create photo -file $filename]
- set tl .image$__imageno
- toplevel $tl
- frame $tl.img
- frame $tl.button
-
- set width [image width $i]
- set height [image height $i]
- canvas $tl.img.c -width [expr {$width+0}] -height [expr {$height+0}]
- pack $tl.img.c
- $tl.img.c create image 0 0 -image $i -anchor nw
- label $tl.button.label -text $filename
- pack $tl.button.label -side left
- button $tl.button.dismiss -text "Dismiss" -command "dismiss $tl $i" -width 10
- pack $tl.button.dismiss -side right
- pack $tl.img $tl.button -side top -fill x
- BoxInit $tl.img.c $p2 [$p2 cget -xmin] [$p2 cget -ymin] [$p2 cget -xmax] [$p2 cget -ymax] $handler
- bind $tl <Key-q> "dismiss $tl $i"
- bind $tl <Key-Escape> "dismiss $tl $i"
-
- # Bind some actions to the canvas
-
- incr __imageno 1
-}
-
-proc test {} {
- puts "hello"
-}
-
diff --git a/Examples/GIFPlot/Tcl/mandel/mandel.i b/Examples/GIFPlot/Tcl/mandel/mandel.i
deleted file mode 100644
index 0b19f4727..000000000
--- a/Examples/GIFPlot/Tcl/mandel/mandel.i
+++ /dev/null
@@ -1,47 +0,0 @@
-// Special module to run the mandlebrot set
-%module gifplot
-%include gifplot.i
-
-%inline %{
-
-void mandel(Plot2D *p2, int tol) {
- double scalingx;
- double scalingy;
- double zr,zi,ztr,zti,cr,ci;
- double cscale;
- int i,j,n;
- FrameBuffer *f;
-
- f = p2->frame;
- scalingx = (p2->xmax-p2->xmin)/f->width;
- scalingy = (p2->ymax-p2->ymin)/f->height;
-
- cscale = 239.0/tol;
- printf("working...\n");
- for (i = 0; i < f->width; i++) {
- for (j = 0; j < f->height; j++) {
- zr = scalingx*i + p2->xmin;
- zi = scalingy*j + p2->ymin;
- cr = zr;
- ci = zi;
- n = 0;
- while (n < tol) {
- ztr = zr*zr-zi*zi + cr;
- zti = 2*zr*zi + ci;
- zr = ztr;
- zi = zti;
- if (ztr*ztr + zti*zti > 20) break;
- n = n + 1;
- }
-
- if (n >= tol) FrameBuffer_plot(f,i,j,BLACK);
- else FrameBuffer_plot(f,i,j,16+(int) (n*cscale));
- }
- if ((i % 10) == 0) printf("%d\n",i);
- }
-
-}
-
-%}
-
-
diff --git a/Examples/GIFPlot/Tcl/mandel/mandel.tcl b/Examples/GIFPlot/Tcl/mandel/mandel.tcl
deleted file mode 100644
index 3e1600bc1..000000000
--- a/Examples/GIFPlot/Tcl/mandel/mandel.tcl
+++ /dev/null
@@ -1,170 +0,0 @@
-catch { load ./gifplot[info sharedlibextension] }
-source display.tcl
-set tcl_precision 17
-set f [FrameBuffer -args 400 400]
-set cmap [ColorMap -args cmap]
-set p2 [Plot2D -args $f -3 -2 1 2]
-
-set xmin -3
-set xmax 1
-set ymin -2.0
-set ymax 2.0
-set tolerance 240
-set filename mandel.gif
-
-# Make a plot from the above parms
-
-proc make_plot {} {
- global p2 cmap tolerance
- global xmin ymin xmax ymax filename
- $p2 setrange $xmin $ymin $xmax $ymax
- $p2 start
- . config -cursor watch
- update
- mandel $p2 $tolerance
- . config -cursor arrow
- [$p2 cget -frame] writeGIF $cmap $filename
- display_image $filename $p2 set_zoom
-}
-
-
-# Take some screen coordinates and set global min and max values
-
-proc set_zoom {p2 mxmin mymin mxmax mymax x1 y1 x2 y2} {
- global xmin ymin xmax ymax
-
- set frame [$p2 cget -frame]
- set width [$frame cget -width]
- set height [$frame cget -height]
-
- if {$x1 < 0} {set x1 0}
- if {$x1 > ($width)} {set x1 $width}
- if {$x2 < 0} {set x2 0}
- if {$x2 > ($width)} {set x2 $width}
- if {$x1 < $x2} {set ixmin $x1; set ixmax $x2} {set ixmin $x2; set ixmax $x1}
-
- if {$y1 < 0} {set y1 0}
- if {$y1 > ($height)} {set y1 $height}
- if {$y2 < 0} {set y2 0}
- if {$y2 > ($height)} {set y2 $height}
- if {$y1 < $y2} {set iymin $y1; set iymax $y2} {set iymin $y2; set iymax $y1}
-
- # Now determine new min and max values based on screen location
-
- set xmin [expr {$mxmin + ($mxmax-$mxmin)*($ixmin)/($width)}]
- set xmax [expr {$mxmin + ($mxmax-$mxmin)*($ixmax)/($width)}]
- set ymin [expr {$mymin + ($mymax-$mymin)*(($height)-($iymax))/($height)}]
- set ymax [expr {$mymin + ($mymax-$mymin)*(($height)-($iymin))/($height)}]
-
- catch {make_plot}
-}
-
-# Box drag constrained to a square
-proc BoxDrag { w x y} {
- global box
- catch {$w delete $box(last)}
- set x1 [lrange $box(anchor) 0 0]
- set y1 [lrange $box(anchor) 1 1]
- set dx [expr {$x - $x1}]
- set dy [expr {$y - $y1}]
- if {abs($dy) > abs($dx)} {set dx $dy}
- set newx [expr {$x1 + $dx}]
- set newy [expr {$y1 + $dx}]
- set box(last) [eval {$w create rect} $box(anchor) {$newx $newy -tag box -outline white}]
-}
-
-
-proc BoxFinish {w x y p2 mxmin mymin mxmax mymax func } {
- global box
- set start $box(anchor)
- set x1 [lrange $box(anchor) 0 0]
- set y1 [lrange $box(anchor) 1 1]
- set dx [expr {$x - $x1}]
- set dy [expr {$y - $y1}]
- if {($dx == 0) || ($dy == 0)} {
- catch {$w delete $box(last)}
- return
- }
- if {abs($dy) > abs($dx)} {set dx $dy}
- set newx [expr {$x1 + $dx}]
- set newy [expr {$y1 + $dx}]
- $w config -cursor watch
- update
-# Call the handler function
- $func $p2 $mxmin $mymin $mxmax $mymax $x1 $y1 $newx $newy
- catch {$w delete $box(last)}
- $w config -cursor arrow
-}
-
-
-# Create a few frames
-
-wm title . Mandelbrot
-frame .title -relief groove -borderwidth 1
-label .title.name -text "Mandelbrot Set"
-button .title.quit -text "Quit" -command "exit"
-button .title.about -text "About" -command "about"
-pack .title.name -side left
-pack .title.quit .title.about -side right
-
-frame .func -relief groove -borderwidth 1
-
-frame .func.xrange
-label .func.xrange.xrlabel -text "X range" -width 12
-entry .func.xrange.xmin -textvar xmin -width 8
-label .func.xrange.xtolabel -text "to"
-entry .func.xrange.xmax -textvar xmax -width 8
-pack .func.xrange.xrlabel .func.xrange.xmin .func.xrange.xtolabel .func.xrange.xmax -side left
-
-frame .func.yrange
-label .func.yrange.yrlabel -text "Y range" -width 12
-entry .func.yrange.ymin -textvar ymin -width 8
-label .func.yrange.ytolabel -text "to"
-entry .func.yrange.ymax -textvar ymax -width 8
-pack .func.yrange.yrlabel .func.yrange.ymin .func.yrange.ytolabel .func.yrange.ymax -side left
-
-frame .func.npoints
-label .func.npoints.label -text "Tolerance " -width 12
-entry .func.npoints.npoints -textvar tolerance -width 8
-scale .func.npoints.scale -from 0 -to 2500 -variable tolerance -orient horizontal -showvalue false \
- -sliderlength 13 -bigincrement 10 -resolution 10
-pack .func.npoints.label .func.npoints.npoints .func.npoints.scale -side left
-
-pack .func.xrange .func.yrange .func.npoints -side top -fill x
-
-# Filename dialog
-
-frame .save -relief groove -borderwidth 1
-
-frame .save.file
-label .save.file.label -text "Save as" -width 12
-entry .save.file.filename -textvar filename -width 20
-pack .save.file.label .save.file.filename -side left
-pack .save.file -side left -fill x
-button .save.go -text "Plot" -command "make_plot"
-pack .save.go -side right
-
-bind .save.file.filename <Return> {make_plot}
-
-pack .title .func .save -side top -fill both
-
-proc about { } {
- toplevel .about -width 350
-
- message .about.m -text "\
-Mandelbrot Set\n\n\
-Copyright (c) 1997\n\
-Dave Beazley\n\
-University of Utah\n\n\
-Creates a plot of the Mandelbrot set. Any displayed image can be zoomed by clicking and \
-dragging. Although the main calculation is written in C, it may take awhile for each \
-image to be calculated (be patient). Image quality can be improved at the expense of speed \
-by increasing the tolerance value.\n"
-
-button .about.okay -text "Ok" -command {destroy .about}
-
-pack .about.m .about.okay -side top
-focus .about.okay
-}
-
-make_plot
diff --git a/Examples/GIFPlot/Tcl/simple/Makefile b/Examples/GIFPlot/Tcl/simple/Makefile
deleted file mode 100644
index 752d79c10..000000000
--- a/Examples/GIFPlot/Tcl/simple/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-TOP = ../../..
-SWIG = $(TOP)/../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)' tcl
-
-static::
- $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
- INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
- TARGET='mytclsh' INTERFACE='$(INTERFACE)' tclsh
-
-clean::
- $(MAKE) -f $(TOP)/Makefile tcl_clean
- rm -f *.gif
-
-check: all
diff --git a/Examples/GIFPlot/Tcl/simple/README b/Examples/GIFPlot/Tcl/simple/README
deleted file mode 100644
index d6b291c92..000000000
--- a/Examples/GIFPlot/Tcl/simple/README
+++ /dev/null
@@ -1,5 +0,0 @@
-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.tcl' runs the example.
-
-
diff --git a/Examples/GIFPlot/Tcl/simple/runme.tcl b/Examples/GIFPlot/Tcl/simple/runme.tcl
deleted file mode 100644
index e3f41266c..000000000
--- a/Examples/GIFPlot/Tcl/simple/runme.tcl
+++ /dev/null
@@ -1,27 +0,0 @@
-# Draw some simple shapes
-puts "Drawing some basic shapes"
-
-catch { load ./simple[info sharedlibextension] simple}
-
-set cmap [new_ColorMap]
-set 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
-puts "Wrote image.gif"
-
-delete_FrameBuffer $f
-delete_ColorMap $cmap
-
diff --git a/Examples/GIFPlot/Tcl/simple/simple.i b/Examples/GIFPlot/Tcl/simple/simple.i
deleted file mode 100644
index 457bc4c09..000000000
--- a/Examples/GIFPlot/Tcl/simple/simple.i
+++ /dev/null
@@ -1,38 +0,0 @@
-/* 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
-
-
-
-
-
diff --git a/Examples/chicken/zlib/Makefile b/Examples/chicken/zlib/Makefile
deleted file mode 100644
index 720701444..000000000
--- a/Examples/chicken/zlib/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-TOP = ../..
-SWIG = $(TOP)/../preinst-swig
-INTERFACE = example.i
-SRCS =
-CXXSRCS =
-TARGET = zlib
-INCLUDE =
-SWIGOPT = -I/usr/include
-CFLAGS =
-VARIANT =
-LIBS = -lz
-VARIANT = _direct
-
-all:: $(TARGET)
-
-$(TARGET): $(INTERFACE) $(SRCS)
- $(MAKE) -f $(TOP)/Makefile \
- SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' \
- INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' LIBS='$(LIBS)' TARGET='$(TARGET)' \
- SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
-
-clean::
- $(MAKE) -f $(TOP)/Makefile chicken_clean
- rm -f example.scm
- rm -f $(TARGET)
-
-check::
- csi test-zlib.scm
diff --git a/Examples/chicken/zlib/README.html b/Examples/chicken/zlib/README.html
deleted file mode 100644
index b082a310c..000000000
--- a/Examples/chicken/zlib/README.html
+++ /dev/null
@@ -1,1666 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
- <title>zlib - Chicken - SWIG example</title>
- </head>
- <body>
- <center><h1>zlib - Chicken - SWIG</h1></center>
-
- <h2>Table of Contents</h2>
- <a href="#build">Building the example</a><br>
- <a href="#zlibh">zlib.h</a><br>
- <a href="#devel">How the zlib wrapper was developed</a><br>
-
- <center><h2><a name="build">Building the example</a></h2></center>
-
- zlib must be installed for this example to work.<br>
-
- Just type <code>make</code> to build this example.<br>
-
- If zlib is not installed in /usr/lib and /usr/include, then do
- something similar to the following:
-
- <blockquote>
- <pre>make SWIGOPT="-I/usr/local/include" LIBS="-L/usr/local/lib -lz"</pre>
- </blockquote>
-
- <center><h2><a name="zlibh">zlib.h</a></h2></center>
- <blockquote>
- <pre>
-<font color="blue">001:</font> /* zlib.h -- interface of the 'zlib' general purpose compression library
-<font color="blue">002:</font> version 1.1.4, March 11th, 2002
-<font color="blue">003:</font>
-<font color="blue">004:</font> Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler
-<font color="blue">005:</font>
-<font color="blue">006:</font> This software is provided 'as-is', without any express or implied
-<font color="blue">007:</font> warranty. In no event will the authors be held liable for any damages
-<font color="blue">008:</font> arising from the use of this software.
-<font color="blue">009:</font>
-<font color="blue">010:</font> Permission is granted to anyone to use this software for any purpose,
-<font color="blue">011:</font> including commercial applications, and to alter it and redistribute it
-<font color="blue">012:</font> freely, subject to the following restrictions:
-<font color="blue">013:</font>
-<font color="blue">014:</font> 1. The origin of this software must not be misrepresented; you must not
-<font color="blue">015:</font> claim that you wrote the original software. If you use this software
-<font color="blue">016:</font> in a product, an acknowledgment in the product documentation would be
-<font color="blue">017:</font> appreciated but is not required.
-<font color="blue">018:</font> 2. Altered source versions must be plainly marked as such, and must not be
-<font color="blue">019:</font> misrepresented as being the original software.
-<font color="blue">020:</font> 3. This notice may not be removed or altered from any source distribution.
-<font color="blue">021:</font>
-<font color="blue">022:</font> Jean-loup Gailly Mark Adler
-<font color="blue">023:</font> jloup@gzip.org madler@alumni.caltech.edu
-<font color="blue">024:</font>
-<font color="blue">025:</font>
-<font color="blue">026:</font> The data format used by the zlib library is described by RFCs (Request for
-<font color="blue">027:</font> Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt
-<font color="blue">028:</font> (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
-<font color="blue">029:</font> */
-<font color="blue">030:</font>
-<font color="blue">031:</font> #ifndef _ZLIB_H
-<font color="blue">032:</font> #define _ZLIB_H
-<font color="blue">033:</font>
-<font color="blue">034:</font> #include "zconf.h"
-<font color="blue">035:</font>
-<font color="blue">036:</font> #ifdef __cplusplus
-<font color="blue">037:</font> extern "C" {
-<font color="blue">038:</font> #endif
-<font color="blue">039:</font>
-<font color="blue">040:</font> #define ZLIB_VERSION "1.1.4"
-<font color="blue">041:</font>
-<font color="blue">042:</font> /*
-<font color="blue">043:</font> The 'zlib' compression library provides in-memory compression and
-<font color="blue">044:</font> decompression functions, including integrity checks of the uncompressed
-<font color="blue">045:</font> data. This version of the library supports only one compression method
-<font color="blue">046:</font> (deflation) but other algorithms will be added later and will have the same
-<font color="blue">047:</font> stream interface.
-<font color="blue">048:</font>
-<font color="blue">049:</font> Compression can be done in a single step if the buffers are large
-<font color="blue">050:</font> enough (for example if an input file is mmap'ed), or can be done by
-<font color="blue">051:</font> repeated calls of the compression function. In the latter case, the
-<font color="blue">052:</font> application must provide more input and/or consume the output
-<font color="blue">053:</font> (providing more output space) before each call.
-<font color="blue">054:</font>
-<font color="blue">055:</font> The library also supports reading and writing files in gzip (.gz) format
-<font color="blue">056:</font> with an interface similar to that of stdio.
-<font color="blue">057:</font>
-<font color="blue">058:</font> The library does not install any signal handler. The decoder checks
-<font color="blue">059:</font> the consistency of the compressed data, so the library should never
-<font color="blue">060:</font> crash even in case of corrupted input.
-<font color="blue">061:</font> */
-<font color="blue">062:</font>
-<font color="blue"><a name="l63">063:</a></font> typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-<font color="blue">064:</font> typedef void (*free_func) OF((voidpf opaque, voidpf address));
-<font color="blue">065:</font>
-<font color="blue">066:</font> struct internal_state;
-<font color="blue">067:</font>
-<font color="blue">068:</font> typedef struct z_stream_s {
-<font color="blue">069:</font> Bytef *next_in; /* next input byte */
-<font color="blue">070:</font> uInt avail_in; /* number of bytes available at next_in */
-<font color="blue">071:</font> uLong total_in; /* total nb of input bytes read so far */
-<font color="blue">072:</font>
-<font color="blue">073:</font> Bytef *next_out; /* next output byte should be put there */
-<font color="blue">074:</font> uInt avail_out; /* remaining free space at next_out */
-<font color="blue">075:</font> uLong total_out; /* total nb of bytes output so far */
-<font color="blue">076:</font>
-<font color="blue">077:</font> char *msg; /* last error message, NULL if no error */
-<font color="blue"><a name="l78">078:</a></font> struct internal_state FAR *state; /* not visible by applications */
-<font color="blue">079:</font>
-<font color="blue"><a name="l80">080:</a></font> alloc_func zalloc; /* used to allocate the internal state */
-<font color="blue">081:</font> free_func zfree; /* used to free the internal state */
-<font color="blue">082:</font> voidpf opaque; /* private data object passed to zalloc and zfree */
-<font color="blue">083:</font>
-<font color="blue">084:</font> int data_type; /* best guess about the data type: ascii or binary */
-<font color="blue">085:</font> uLong adler; /* adler32 value of the uncompressed data */
-<font color="blue">086:</font> uLong reserved; /* reserved for future use */
-<font color="blue">087:</font> } z_stream;
-<font color="blue">088:</font>
-<font color="blue">089:</font> typedef z_stream FAR *z_streamp;
-<font color="blue">090:</font>
-<font color="blue">091:</font> /*
-<font color="blue">092:</font> The application must update next_in and avail_in when avail_in has
-<font color="blue">093:</font> dropped to zero. It must update next_out and avail_out when avail_out
-<font color="blue">094:</font> has dropped to zero. The application must initialize zalloc, zfree and
-<font color="blue">095:</font> opaque before calling the init function. All other fields are set by the
-<font color="blue">096:</font> compression library and must not be updated by the application.
-<font color="blue">097:</font>
-<font color="blue">098:</font> The opaque value provided by the application will be passed as the first
-<font color="blue">099:</font> parameter for calls of zalloc and zfree. This can be useful for custom
-<font color="blue">100:</font> memory management. The compression library attaches no meaning to the
-<font color="blue">101:</font> opaque value.
-<font color="blue">102:</font>
-<font color="blue">103:</font> zalloc must return Z_NULL if there is not enough memory for the object.
-<font color="blue">104:</font> If zlib is used in a multi-threaded application, zalloc and zfree must be
-<font color="blue">105:</font> thread safe.
-<font color="blue">106:</font>
-<font color="blue">107:</font> On 16-bit systems, the functions zalloc and zfree must be able to allocate
-<font color="blue">108:</font> exactly 65536 bytes, but will not be required to allocate more than this
-<font color="blue">109:</font> if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
-<font color="blue">110:</font> pointers returned by zalloc for objects of exactly 65536 bytes *must*
-<font color="blue">111:</font> have their offset normalized to zero. The default allocation function
-<font color="blue">112:</font> provided by this library ensures this (see zutil.c). To reduce memory
-<font color="blue">113:</font> requirements and avoid any allocation of 64K objects, at the expense of
-<font color="blue">114:</font> compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
-<font color="blue">115:</font>
-<font color="blue">116:</font> The fields total_in and total_out can be used for statistics or
-<font color="blue">117:</font> progress reports. After compression, total_in holds the total size of
-<font color="blue">118:</font> the uncompressed data and may be saved for use in the decompressor
-<font color="blue">119:</font> (particularly if the decompressor wants to decompress everything in
-<font color="blue">120:</font> a single step).
-<font color="blue">121:</font> */
-<font color="blue">122:</font>
-<font color="blue">123:</font> /* constants */
-<font color="blue">124:</font>
-<font color="blue">125:</font> #define Z_NO_FLUSH 0
-<font color="blue">126:</font> #define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */
-<font color="blue">127:</font> #define Z_SYNC_FLUSH 2
-<font color="blue">128:</font> #define Z_FULL_FLUSH 3
-<font color="blue">129:</font> #define Z_FINISH 4
-<font color="blue">130:</font> /* Allowed flush values; see deflate() below for details */
-<font color="blue">131:</font>
-<font color="blue">132:</font> #define Z_OK 0
-<font color="blue">133:</font> #define Z_STREAM_END 1
-<font color="blue">134:</font> #define Z_NEED_DICT 2
-<font color="blue">135:</font> #define Z_ERRNO (-1)
-<font color="blue">136:</font> #define Z_STREAM_ERROR (-2)
-<font color="blue">137:</font> #define Z_DATA_ERROR (-3)
-<font color="blue">138:</font> #define Z_MEM_ERROR (-4)
-<font color="blue">139:</font> #define Z_BUF_ERROR (-5)
-<font color="blue">140:</font> #define Z_VERSION_ERROR (-6)
-<font color="blue">141:</font> /* Return codes for the compression/decompression functions. Negative
-<font color="blue">142:</font> * values are errors, positive values are used for special but normal events.
-<font color="blue">143:</font> */
-<font color="blue">144:</font>
-<font color="blue">145:</font> #define Z_NO_COMPRESSION 0
-<font color="blue">146:</font> #define Z_BEST_SPEED 1
-<font color="blue">147:</font> #define Z_BEST_COMPRESSION 9
-<font color="blue">148:</font> #define Z_DEFAULT_COMPRESSION (-1)
-<font color="blue">149:</font> /* compression levels */
-<font color="blue">150:</font>
-<font color="blue">151:</font> #define Z_FILTERED 1
-<font color="blue">152:</font> #define Z_HUFFMAN_ONLY 2
-<font color="blue">153:</font> #define Z_DEFAULT_STRATEGY 0
-<font color="blue">154:</font> /* compression strategy; see deflateInit2() below for details */
-<font color="blue">155:</font>
-<font color="blue">156:</font> #define Z_BINARY 0
-<font color="blue">157:</font> #define Z_ASCII 1
-<font color="blue">158:</font> #define Z_UNKNOWN 2
-<font color="blue">159:</font> /* Possible values of the data_type field */
-<font color="blue">160:</font>
-<font color="blue">161:</font> #define Z_DEFLATED 8
-<font color="blue">162:</font> /* The deflate compression method (the only one supported in this version) */
-<font color="blue">163:</font>
-<font color="blue">164:</font> #define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
-<font color="blue">165:</font>
-<font color="blue">166:</font> #define zlib_version zlibVersion()
-<font color="blue">167:</font> /* for compatibility with versions &lt; 1.0.2 */
-<font color="blue">168:</font>
-<font color="blue">169:</font> /* basic functions */
-<font color="blue">170:</font>
-<font color="blue">171:</font> ZEXTERN const char * ZEXPORT zlibVersion OF((void));
-<font color="blue">172:</font> /* The application can compare zlibVersion and ZLIB_VERSION for consistency.
-<font color="blue">173:</font> If the first character differs, the library code actually used is
-<font color="blue">174:</font> not compatible with the zlib.h header file used by the application.
-<font color="blue">175:</font> This check is automatically made by deflateInit and inflateInit.
-<font color="blue">176:</font> */
-<font color="blue">177:</font>
-<font color="blue">178:</font> /*
-<font color="blue">179:</font> ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
-<font color="blue">180:</font>
-<font color="blue">181:</font> Initializes the internal stream state for compression. The fields
-<font color="blue">182:</font> zalloc, zfree and opaque must be initialized before by the caller.
-<font color="blue">183:</font> If zalloc and zfree are set to Z_NULL, deflateInit updates them to
-<font color="blue">184:</font> use default allocation functions.
-<font color="blue">185:</font>
-<font color="blue">186:</font> The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
-<font color="blue">187:</font> 1 gives best speed, 9 gives best compression, 0 gives no compression at
-<font color="blue">188:</font> all (the input data is simply copied a block at a time).
-<font color="blue">189:</font> Z_DEFAULT_COMPRESSION requests a default compromise between speed and
-<font color="blue">190:</font> compression (currently equivalent to level 6).
-<font color="blue">191:</font>
-<font color="blue">192:</font> deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
-<font color="blue">193:</font> enough memory, Z_STREAM_ERROR if level is not a valid compression level,
-<font color="blue">194:</font> Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
-<font color="blue">195:</font> with the version assumed by the caller (ZLIB_VERSION).
-<font color="blue">196:</font> msg is set to null if there is no error message. deflateInit does not
-<font color="blue">197:</font> perform any compression: this will be done by deflate().
-<font color="blue">198:</font> */
-<font color="blue">199:</font>
-<font color="blue">200:</font>
-<font color="blue">201:</font> ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
-<font color="blue">202:</font> /*
-<font color="blue">203:</font> deflate compresses as much data as possible, and stops when the input
-<font color="blue">204:</font> buffer becomes empty or the output buffer becomes full. It may introduce some
-<font color="blue">205:</font> output latency (reading input without producing any output) except when
-<font color="blue">206:</font> forced to flush.
-<font color="blue">207:</font>
-<font color="blue">208:</font> The detailed semantics are as follows. deflate performs one or both of the
-<font color="blue">209:</font> following actions:
-<font color="blue">210:</font>
-<font color="blue">211:</font> - Compress more input starting at next_in and update next_in and avail_in
-<font color="blue">212:</font> accordingly. If not all input can be processed (because there is not
-<font color="blue">213:</font> enough room in the output buffer), next_in and avail_in are updated and
-<font color="blue">214:</font> processing will resume at this point for the next call of deflate().
-<font color="blue">215:</font>
-<font color="blue">216:</font> - Provide more output starting at next_out and update next_out and avail_out
-<font color="blue">217:</font> accordingly. This action is forced if the parameter flush is non zero.
-<font color="blue">218:</font> Forcing flush frequently degrades the compression ratio, so this parameter
-<font color="blue">219:</font> should be set only when necessary (in interactive applications).
-<font color="blue">220:</font> Some output may be provided even if flush is not set.
-<font color="blue">221:</font>
-<font color="blue">222:</font> Before the call of deflate(), the application should ensure that at least
-<font color="blue">223:</font> one of the actions is possible, by providing more input and/or consuming
-<font color="blue">224:</font> more output, and updating avail_in or avail_out accordingly; avail_out
-<font color="blue">225:</font> should never be zero before the call. The application can consume the
-<font color="blue">226:</font> compressed output when it wants, for example when the output buffer is full
-<font color="blue">227:</font> (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK
-<font color="blue">228:</font> and with zero avail_out, it must be called again after making room in the
-<font color="blue">229:</font> output buffer because there might be more output pending.
-<font color="blue">230:</font>
-<font color="blue">231:</font> If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
-<font color="blue">232:</font> flushed to the output buffer and the output is aligned on a byte boundary, so
-<font color="blue">233:</font> that the decompressor can get all input data available so far. (In particular
-<font color="blue">234:</font> avail_in is zero after the call if enough output space has been provided
-<font color="blue">235:</font> before the call.) Flushing may degrade compression for some compression
-<font color="blue">236:</font> algorithms and so it should be used only when necessary.
-<font color="blue">237:</font>
-<font color="blue">238:</font> If flush is set to Z_FULL_FLUSH, all output is flushed as with
-<font color="blue">239:</font> Z_SYNC_FLUSH, and the compression state is reset so that decompression can
-<font color="blue">240:</font> restart from this point if previous compressed data has been damaged or if
-<font color="blue">241:</font> random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
-<font color="blue">242:</font> the compression.
-<font color="blue">243:</font>
-<font color="blue">244:</font> If deflate returns with avail_out == 0, this function must be called again
-<font color="blue">245:</font> with the same value of the flush parameter and more output space (updated
-<font color="blue">246:</font> avail_out), until the flush is complete (deflate returns with non-zero
-<font color="blue">247:</font> avail_out).
-<font color="blue">248:</font>
-<font color="blue">249:</font> If the parameter flush is set to Z_FINISH, pending input is processed,
-<font color="blue">250:</font> pending output is flushed and deflate returns with Z_STREAM_END if there
-<font color="blue">251:</font> was enough output space; if deflate returns with Z_OK, this function must be
-<font color="blue">252:</font> called again with Z_FINISH and more output space (updated avail_out) but no
-<font color="blue">253:</font> more input data, until it returns with Z_STREAM_END or an error. After
-<font color="blue">254:</font> deflate has returned Z_STREAM_END, the only possible operations on the
-<font color="blue">255:</font> stream are deflateReset or deflateEnd.
-<font color="blue">256:</font>
-<font color="blue">257:</font> Z_FINISH can be used immediately after deflateInit if all the compression
-<font color="blue">258:</font> is to be done in a single step. In this case, avail_out must be at least
-<font color="blue">259:</font> 0.1% larger than avail_in plus 12 bytes. If deflate does not return
-<font color="blue">260:</font> Z_STREAM_END, then it must be called again as described above.
-<font color="blue">261:</font>
-<font color="blue">262:</font> deflate() sets strm-&gt;adler to the adler32 checksum of all input read
-<font color="blue">263:</font> so far (that is, total_in bytes).
-<font color="blue">264:</font>
-<font color="blue">265:</font> deflate() may update data_type if it can make a good guess about
-<font color="blue">266:</font> the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
-<font color="blue">267:</font> binary. This field is only for information purposes and does not affect
-<font color="blue">268:</font> the compression algorithm in any manner.
-<font color="blue">269:</font>
-<font color="blue">270:</font> deflate() returns Z_OK if some progress has been made (more input
-<font color="blue">271:</font> processed or more output produced), Z_STREAM_END if all input has been
-<font color="blue">272:</font> consumed and all output has been produced (only when flush is set to
-<font color="blue">273:</font> Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
-<font color="blue">274:</font> if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible
-<font color="blue">275:</font> (for example avail_in or avail_out was zero).
-<font color="blue">276:</font> */
-<font color="blue">277:</font>
-<font color="blue">278:</font>
-<font color="blue">279:</font> ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
-<font color="blue">280:</font> /*
-<font color="blue">281:</font> All dynamically allocated data structures for this stream are freed.
-<font color="blue">282:</font> This function discards any unprocessed input and does not flush any
-<font color="blue">283:</font> pending output.
-<font color="blue">284:</font>
-<font color="blue">285:</font> deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
-<font color="blue">286:</font> stream state was inconsistent, Z_DATA_ERROR if the stream was freed
-<font color="blue">287:</font> prematurely (some input or output was discarded). In the error case,
-<font color="blue">288:</font> msg may be set but then points to a static string (which must not be
-<font color="blue">289:</font> deallocated).
-<font color="blue">290:</font> */
-<font color="blue">291:</font>
-<font color="blue">292:</font>
-<font color="blue">293:</font> /*
-<font color="blue">294:</font> ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
-<font color="blue">295:</font>
-<font color="blue">296:</font> Initializes the internal stream state for decompression. The fields
-<font color="blue">297:</font> next_in, avail_in, zalloc, zfree and opaque must be initialized before by
-<font color="blue">298:</font> the caller. If next_in is not Z_NULL and avail_in is large enough (the exact
-<font color="blue">299:</font> value depends on the compression method), inflateInit determines the
-<font color="blue">300:</font> compression method from the zlib header and allocates all data structures
-<font color="blue">301:</font> accordingly; otherwise the allocation will be deferred to the first call of
-<font color="blue">302:</font> inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to
-<font color="blue">303:</font> use default allocation functions.
-<font color="blue">304:</font>
-<font color="blue">305:</font> inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-<font color="blue">306:</font> memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-<font color="blue">307:</font> version assumed by the caller. msg is set to null if there is no error
-<font color="blue">308:</font> message. inflateInit does not perform any decompression apart from reading
-<font color="blue">309:</font> the zlib header if present: this will be done by inflate(). (So next_in and
-<font color="blue">310:</font> avail_in may be modified, but next_out and avail_out are unchanged.)
-<font color="blue">311:</font> */
-<font color="blue">312:</font>
-<font color="blue">313:</font>
-<font color="blue">314:</font> ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
-<font color="blue">315:</font> /*
-<font color="blue">316:</font> inflate decompresses as much data as possible, and stops when the input
-<font color="blue">317:</font> buffer becomes empty or the output buffer becomes full. It may some
-<font color="blue">318:</font> introduce some output latency (reading input without producing any output)
-<font color="blue">319:</font> except when forced to flush.
-<font color="blue">320:</font>
-<font color="blue">321:</font> The detailed semantics are as follows. inflate performs one or both of the
-<font color="blue">322:</font> following actions:
-<font color="blue">323:</font>
-<font color="blue">324:</font> - Decompress more input starting at next_in and update next_in and avail_in
-<font color="blue">325:</font> accordingly. If not all input can be processed (because there is not
-<font color="blue">326:</font> enough room in the output buffer), next_in is updated and processing
-<font color="blue">327:</font> will resume at this point for the next call of inflate().
-<font color="blue">328:</font>
-<font color="blue">329:</font> - Provide more output starting at next_out and update next_out and avail_out
-<font color="blue">330:</font> accordingly. inflate() provides as much output as possible, until there
-<font color="blue">331:</font> is no more input data or no more space in the output buffer (see below
-<font color="blue">332:</font> about the flush parameter).
-<font color="blue">333:</font>
-<font color="blue">334:</font> Before the call of inflate(), the application should ensure that at least
-<font color="blue">335:</font> one of the actions is possible, by providing more input and/or consuming
-<font color="blue">336:</font> more output, and updating the next_* and avail_* values accordingly.
-<font color="blue">337:</font> The application can consume the uncompressed output when it wants, for
-<font color="blue">338:</font> example when the output buffer is full (avail_out == 0), or after each
-<font color="blue">339:</font> call of inflate(). If inflate returns Z_OK and with zero avail_out, it
-<font color="blue">340:</font> must be called again after making room in the output buffer because there
-<font color="blue">341:</font> might be more output pending.
-<font color="blue">342:</font>
-<font color="blue">343:</font> If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much
-<font color="blue">344:</font> output as possible to the output buffer. The flushing behavior of inflate is
-<font color="blue">345:</font> not specified for values of the flush parameter other than Z_SYNC_FLUSH
-<font color="blue">346:</font> and Z_FINISH, but the current implementation actually flushes as much output
-<font color="blue">347:</font> as possible anyway.
-<font color="blue">348:</font>
-<font color="blue">349:</font> inflate() should normally be called until it returns Z_STREAM_END or an
-<font color="blue">350:</font> error. However if all decompression is to be performed in a single step
-<font color="blue">351:</font> (a single call of inflate), the parameter flush should be set to
-<font color="blue">352:</font> Z_FINISH. In this case all pending input is processed and all pending
-<font color="blue">353:</font> output is flushed; avail_out must be large enough to hold all the
-<font color="blue">354:</font> uncompressed data. (The size of the uncompressed data may have been saved
-<font color="blue">355:</font> by the compressor for this purpose.) The next operation on this stream must
-<font color="blue">356:</font> be inflateEnd to deallocate the decompression state. The use of Z_FINISH
-<font color="blue">357:</font> is never required, but can be used to inform inflate that a faster routine
-<font color="blue">358:</font> may be used for the single inflate() call.
-<font color="blue">359:</font>
-<font color="blue">360:</font> If a preset dictionary is needed at this point (see inflateSetDictionary
-<font color="blue">361:</font> below), inflate sets strm-adler to the adler32 checksum of the
-<font color="blue">362:</font> dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise
-<font color="blue">363:</font> it sets strm-&gt;adler to the adler32 checksum of all output produced
-<font color="blue">364:</font> so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or
-<font color="blue">365:</font> an error code as described below. At the end of the stream, inflate()
-<font color="blue">366:</font> checks that its computed adler32 checksum is equal to that saved by the
-<font color="blue">367:</font> compressor and returns Z_STREAM_END only if the checksum is correct.
-<font color="blue">368:</font>
-<font color="blue">369:</font> inflate() returns Z_OK if some progress has been made (more input processed
-<font color="blue">370:</font> or more output produced), Z_STREAM_END if the end of the compressed data has
-<font color="blue">371:</font> been reached and all uncompressed output has been produced, Z_NEED_DICT if a
-<font color="blue">372:</font> preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
-<font color="blue">373:</font> corrupted (input stream not conforming to the zlib format or incorrect
-<font color="blue">374:</font> adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent
-<font color="blue">375:</font> (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not
-<font color="blue">376:</font> enough memory, Z_BUF_ERROR if no progress is possible or if there was not
-<font color="blue">377:</font> enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR
-<font color="blue">378:</font> case, the application may then call inflateSync to look for a good
-<font color="blue">379:</font> compression block.
-<font color="blue">380:</font> */
-<font color="blue">381:</font>
-<font color="blue">382:</font>
-<font color="blue">383:</font> ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
-<font color="blue">384:</font> /*
-<font color="blue">385:</font> All dynamically allocated data structures for this stream are freed.
-<font color="blue">386:</font> This function discards any unprocessed input and does not flush any
-<font color="blue">387:</font> pending output.
-<font color="blue">388:</font>
-<font color="blue">389:</font> inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
-<font color="blue">390:</font> was inconsistent. In the error case, msg may be set but then points to a
-<font color="blue">391:</font> static string (which must not be deallocated).
-<font color="blue">392:</font> */
-<font color="blue">393:</font>
-<font color="blue">394:</font> /* Advanced functions */
-<font color="blue">395:</font>
-<font color="blue">396:</font> /*
-<font color="blue">397:</font> The following functions are needed only in some special applications.
-<font color="blue">398:</font> */
-<font color="blue">399:</font>
-<font color="blue">400:</font> /*
-<font color="blue">401:</font> ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
-<font color="blue">402:</font> int level,
-<font color="blue">403:</font> int method,
-<font color="blue">404:</font> int windowBits,
-<font color="blue">405:</font> int memLevel,
-<font color="blue">406:</font> int strategy));
-<font color="blue">407:</font>
-<font color="blue">408:</font> This is another version of deflateInit with more compression options. The
-<font color="blue">409:</font> fields next_in, zalloc, zfree and opaque must be initialized before by
-<font color="blue">410:</font> the caller.
-<font color="blue">411:</font>
-<font color="blue">412:</font> The method parameter is the compression method. It must be Z_DEFLATED in
-<font color="blue">413:</font> this version of the library.
-<font color="blue">414:</font>
-<font color="blue">415:</font> The windowBits parameter is the base two logarithm of the window size
-<font color="blue">416:</font> (the size of the history buffer). It should be in the range 8..15 for this
-<font color="blue">417:</font> version of the library. Larger values of this parameter result in better
-<font color="blue">418:</font> compression at the expense of memory usage. The default value is 15 if
-<font color="blue">419:</font> deflateInit is used instead.
-<font color="blue">420:</font>
-<font color="blue">421:</font> The memLevel parameter specifies how much memory should be allocated
-<font color="blue">422:</font> for the internal compression state. memLevel=1 uses minimum memory but
-<font color="blue">423:</font> is slow and reduces compression ratio; memLevel=9 uses maximum memory
-<font color="blue">424:</font> for optimal speed. The default value is 8. See zconf.h for total memory
-<font color="blue">425:</font> usage as a function of windowBits and memLevel.
-<font color="blue">426:</font>
-<font color="blue">427:</font> The strategy parameter is used to tune the compression algorithm. Use the
-<font color="blue">428:</font> value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
-<font color="blue">429:</font> filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman encoding only (no
-<font color="blue">430:</font> string match). Filtered data consists mostly of small values with a
-<font color="blue">431:</font> somewhat random distribution. In this case, the compression algorithm is
-<font color="blue">432:</font> tuned to compress them better. The effect of Z_FILTERED is to force more
-<font color="blue">433:</font> Huffman coding and less string matching; it is somewhat intermediate
-<font color="blue">434:</font> between Z_DEFAULT and Z_HUFFMAN_ONLY. The strategy parameter only affects
-<font color="blue">435:</font> the compression ratio but not the correctness of the compressed output even
-<font color="blue">436:</font> if it is not set appropriately.
-<font color="blue">437:</font>
-<font color="blue">438:</font> deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-<font color="blue">439:</font> memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid
-<font color="blue">440:</font> method). msg is set to null if there is no error message. deflateInit2 does
-<font color="blue">441:</font> not perform any compression: this will be done by deflate().
-<font color="blue">442:</font> */
-<font color="blue">443:</font>
-<font color="blue">444:</font> ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
-<font color="blue">445:</font> const Bytef *dictionary,
-<font color="blue">446:</font> uInt dictLength));
-<font color="blue">447:</font> /*
-<font color="blue">448:</font> Initializes the compression dictionary from the given byte sequence
-<font color="blue">449:</font> without producing any compressed output. This function must be called
-<font color="blue">450:</font> immediately after deflateInit, deflateInit2 or deflateReset, before any
-<font color="blue">451:</font> call of deflate. The compressor and decompressor must use exactly the same
-<font color="blue">452:</font> dictionary (see inflateSetDictionary).
-<font color="blue">453:</font>
-<font color="blue">454:</font> The dictionary should consist of strings (byte sequences) that are likely
-<font color="blue">455:</font> to be encountered later in the data to be compressed, with the most commonly
-<font color="blue">456:</font> used strings preferably put towards the end of the dictionary. Using a
-<font color="blue">457:</font> dictionary is most useful when the data to be compressed is short and can be
-<font color="blue">458:</font> predicted with good accuracy; the data can then be compressed better than
-<font color="blue">459:</font> with the default empty dictionary.
-<font color="blue">460:</font>
-<font color="blue">461:</font> Depending on the size of the compression data structures selected by
-<font color="blue">462:</font> deflateInit or deflateInit2, a part of the dictionary may in effect be
-<font color="blue">463:</font> discarded, for example if the dictionary is larger than the window size in
-<font color="blue">464:</font> deflate or deflate2. Thus the strings most likely to be useful should be
-<font color="blue">465:</font> put at the end of the dictionary, not at the front.
-<font color="blue">466:</font>
-<font color="blue">467:</font> Upon return of this function, strm-&gt;adler is set to the Adler32 value
-<font color="blue">468:</font> of the dictionary; the decompressor may later use this value to determine
-<font color="blue">469:</font> which dictionary has been used by the compressor. (The Adler32 value
-<font color="blue">470:</font> applies to the whole dictionary even if only a subset of the dictionary is
-<font color="blue">471:</font> actually used by the compressor.)
-<font color="blue">472:</font>
-<font color="blue">473:</font> deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
-<font color="blue">474:</font> parameter is invalid (such as NULL dictionary) or the stream state is
-<font color="blue">475:</font> inconsistent (for example if deflate has already been called for this stream
-<font color="blue">476:</font> or if the compression method is bsort). deflateSetDictionary does not
-<font color="blue">477:</font> perform any compression: this will be done by deflate().
-<font color="blue">478:</font> */
-<font color="blue">479:</font>
-<font color="blue">480:</font> ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
-<font color="blue">481:</font> z_streamp source));
-<font color="blue">482:</font> /*
-<font color="blue">483:</font> Sets the destination stream as a complete copy of the source stream.
-<font color="blue">484:</font>
-<font color="blue">485:</font> This function can be useful when several compression strategies will be
-<font color="blue">486:</font> tried, for example when there are several ways of pre-processing the input
-<font color="blue">487:</font> data with a filter. The streams that will be discarded should then be freed
-<font color="blue">488:</font> by calling deflateEnd. Note that deflateCopy duplicates the internal
-<font color="blue">489:</font> compression state which can be quite large, so this strategy is slow and
-<font color="blue">490:</font> can consume lots of memory.
-<font color="blue">491:</font>
-<font color="blue">492:</font> deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-<font color="blue">493:</font> enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-<font color="blue">494:</font> (such as zalloc being NULL). msg is left unchanged in both source and
-<font color="blue">495:</font> destination.
-<font color="blue">496:</font> */
-<font color="blue">497:</font>
-<font color="blue">498:</font> ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
-<font color="blue">499:</font> /*
-<font color="blue">500:</font> This function is equivalent to deflateEnd followed by deflateInit,
-<font color="blue">501:</font> but does not free and reallocate all the internal compression state.
-<font color="blue">502:</font> The stream will keep the same compression level and any other attributes
-<font color="blue">503:</font> that may have been set by deflateInit2.
-<font color="blue">504:</font>
-<font color="blue">505:</font> deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-<font color="blue">506:</font> stream state was inconsistent (such as zalloc or state being NULL).
-<font color="blue">507:</font> */
-<font color="blue">508:</font>
-<font color="blue">509:</font> ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
-<font color="blue">510:</font> int level,
-<font color="blue">511:</font> int strategy));
-<font color="blue">512:</font> /*
-<font color="blue">513:</font> Dynamically update the compression level and compression strategy. The
-<font color="blue">514:</font> interpretation of level and strategy is as in deflateInit2. This can be
-<font color="blue">515:</font> used to switch between compression and straight copy of the input data, or
-<font color="blue">516:</font> to switch to a different kind of input data requiring a different
-<font color="blue">517:</font> strategy. If the compression level is changed, the input available so far
-<font color="blue">518:</font> is compressed with the old level (and may be flushed); the new level will
-<font color="blue">519:</font> take effect only at the next call of deflate().
-<font color="blue">520:</font>
-<font color="blue">521:</font> Before the call of deflateParams, the stream state must be set as for
-<font color="blue">522:</font> a call of deflate(), since the currently available input may have to
-<font color="blue">523:</font> be compressed and flushed. In particular, strm-&gt;avail_out must be non-zero.
-<font color="blue">524:</font>
-<font color="blue">525:</font> deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
-<font color="blue">526:</font> stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR
-<font color="blue">527:</font> if strm-&gt;avail_out was zero.
-<font color="blue">528:</font> */
-<font color="blue">529:</font>
-<font color="blue">530:</font> /*
-<font color="blue">531:</font> ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
-<font color="blue">532:</font> int windowBits));
-<font color="blue">533:</font>
-<font color="blue">534:</font> This is another version of inflateInit with an extra parameter. The
-<font color="blue">535:</font> fields next_in, avail_in, zalloc, zfree and opaque must be initialized
-<font color="blue">536:</font> before by the caller.
-<font color="blue">537:</font>
-<font color="blue">538:</font> The windowBits parameter is the base two logarithm of the maximum window
-<font color="blue">539:</font> size (the size of the history buffer). It should be in the range 8..15 for
-<font color="blue">540:</font> this version of the library. The default value is 15 if inflateInit is used
-<font color="blue">541:</font> instead. If a compressed stream with a larger window size is given as
-<font color="blue">542:</font> input, inflate() will return with the error code Z_DATA_ERROR instead of
-<font color="blue">543:</font> trying to allocate a larger window.
-<font color="blue">544:</font>
-<font color="blue">545:</font> inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-<font color="blue">546:</font> memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative
-<font color="blue">547:</font> memLevel). msg is set to null if there is no error message. inflateInit2
-<font color="blue">548:</font> does not perform any decompression apart from reading the zlib header if
-<font color="blue">549:</font> present: this will be done by inflate(). (So next_in and avail_in may be
-<font color="blue">550:</font> modified, but next_out and avail_out are unchanged.)
-<font color="blue">551:</font> */
-<font color="blue">552:</font>
-<font color="blue">553:</font> ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
-<font color="blue">554:</font> const Bytef *dictionary,
-<font color="blue">555:</font> uInt dictLength));
-<font color="blue">556:</font> /*
-<font color="blue">557:</font> Initializes the decompression dictionary from the given uncompressed byte
-<font color="blue">558:</font> sequence. This function must be called immediately after a call of inflate
-<font color="blue">559:</font> if this call returned Z_NEED_DICT. The dictionary chosen by the compressor
-<font color="blue">560:</font> can be determined from the Adler32 value returned by this call of
-<font color="blue">561:</font> inflate. The compressor and decompressor must use exactly the same
-<font color="blue">562:</font> dictionary (see deflateSetDictionary).
-<font color="blue">563:</font>
-<font color="blue">564:</font> inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
-<font color="blue">565:</font> parameter is invalid (such as NULL dictionary) or the stream state is
-<font color="blue">566:</font> inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
-<font color="blue">567:</font> expected one (incorrect Adler32 value). inflateSetDictionary does not
-<font color="blue">568:</font> perform any decompression: this will be done by subsequent calls of
-<font color="blue">569:</font> inflate().
-<font color="blue">570:</font> */
-<font color="blue">571:</font>
-<font color="blue">572:</font> ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
-<font color="blue">573:</font> /*
-<font color="blue">574:</font> Skips invalid compressed data until a full flush point (see above the
-<font color="blue">575:</font> description of deflate with Z_FULL_FLUSH) can be found, or until all
-<font color="blue">576:</font> available input is skipped. No output is provided.
-<font color="blue">577:</font>
-<font color="blue">578:</font> inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR
-<font color="blue">579:</font> if no more input was provided, Z_DATA_ERROR if no flush point has been found,
-<font color="blue">580:</font> or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
-<font color="blue">581:</font> case, the application may save the current current value of total_in which
-<font color="blue">582:</font> indicates where valid compressed data was found. In the error case, the
-<font color="blue">583:</font> application may repeatedly call inflateSync, providing more input each time,
-<font color="blue">584:</font> until success or end of the input data.
-<font color="blue">585:</font> */
-<font color="blue">586:</font>
-<font color="blue">587:</font> ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
-<font color="blue">588:</font> /*
-<font color="blue">589:</font> This function is equivalent to inflateEnd followed by inflateInit,
-<font color="blue">590:</font> but does not free and reallocate all the internal decompression state.
-<font color="blue">591:</font> The stream will keep attributes that may have been set by inflateInit2.
-<font color="blue">592:</font>
-<font color="blue">593:</font> inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-<font color="blue">594:</font> stream state was inconsistent (such as zalloc or state being NULL).
-<font color="blue">595:</font> */
-<font color="blue">596:</font>
-<font color="blue">597:</font>
-<font color="blue">598:</font> /* utility functions */
-<font color="blue">599:</font>
-<font color="blue">600:</font> /*
-<font color="blue">601:</font> The following utility functions are implemented on top of the
-<font color="blue">602:</font> basic stream-oriented functions. To simplify the interface, some
-<font color="blue">603:</font> default options are assumed (compression level and memory usage,
-<font color="blue">604:</font> standard memory allocation functions). The source code of these
-<font color="blue">605:</font> utility functions can easily be modified if you need special options.
-<font color="blue">606:</font> */
-<font color="blue">607:</font>
-<font color="blue">608:</font> ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen,
-<font color="blue">609:</font> const Bytef *source, uLong sourceLen));
-<font color="blue">610:</font> /*
-<font color="blue">611:</font> Compresses the source buffer into the destination buffer. sourceLen is
-<font color="blue">612:</font> the byte length of the source buffer. Upon entry, destLen is the total
-<font color="blue">613:</font> size of the destination buffer, which must be at least 0.1% larger than
-<font color="blue">614:</font> sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the
-<font color="blue">615:</font> compressed buffer.
-<font color="blue">616:</font> This function can be used to compress a whole file at once if the
-<font color="blue">617:</font> input file is mmap'ed.
-<font color="blue">618:</font> compress returns Z_OK if success, Z_MEM_ERROR if there was not
-<font color="blue">619:</font> enough memory, Z_BUF_ERROR if there was not enough room in the output
-<font color="blue">620:</font> buffer.
-<font color="blue">621:</font> */
-<font color="blue">622:</font>
-<font color="blue">623:</font> ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen,
-<font color="blue">624:</font> const Bytef *source, uLong sourceLen,
-<font color="blue">625:</font> int level));
-<font color="blue">626:</font> /*
-<font color="blue">627:</font> Compresses the source buffer into the destination buffer. The level
-<font color="blue">628:</font> parameter has the same meaning as in deflateInit. sourceLen is the byte
-<font color="blue">629:</font> length of the source buffer. Upon entry, destLen is the total size of the
-<font color="blue">630:</font> destination buffer, which must be at least 0.1% larger than sourceLen plus
-<font color="blue">631:</font> 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
-<font color="blue">632:</font>
-<font color="blue">633:</font> compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-<font color="blue">634:</font> memory, Z_BUF_ERROR if there was not enough room in the output buffer,
-<font color="blue">635:</font> Z_STREAM_ERROR if the level parameter is invalid.
-<font color="blue">636:</font> */
-<font color="blue">637:</font>
-<font color="blue">638:</font> ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
-<font color="blue">639:</font> const Bytef *source, uLong sourceLen));
-<font color="blue">640:</font> /*
-<font color="blue">641:</font> Decompresses the source buffer into the destination buffer. sourceLen is
-<font color="blue">642:</font> the byte length of the source buffer. Upon entry, destLen is the total
-<font color="blue">643:</font> size of the destination buffer, which must be large enough to hold the
-<font color="blue">644:</font> entire uncompressed data. (The size of the uncompressed data must have
-<font color="blue">645:</font> been saved previously by the compressor and transmitted to the decompressor
-<font color="blue">646:</font> by some mechanism outside the scope of this compression library.)
-<font color="blue">647:</font> Upon exit, destLen is the actual size of the compressed buffer.
-<font color="blue">648:</font> This function can be used to decompress a whole file at once if the
-<font color="blue">649:</font> input file is mmap'ed.
-<font color="blue">650:</font>
-<font color="blue">651:</font> uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
-<font color="blue">652:</font> enough memory, Z_BUF_ERROR if there was not enough room in the output
-<font color="blue">653:</font> buffer, or Z_DATA_ERROR if the input data was corrupted.
-<font color="blue">654:</font> */
-<font color="blue">655:</font>
-<font color="blue">656:</font>
-<font color="blue">657:</font> typedef voidp gzFile;
-<font color="blue">658:</font>
-<font color="blue">659:</font> ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
-<font color="blue">660:</font> /*
-<font color="blue">661:</font> Opens a gzip (.gz) file for reading or writing. The mode parameter
-<font color="blue">662:</font> is as in fopen ("rb" or "wb") but can also include a compression level
-<font color="blue">663:</font> ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for
-<font color="blue">664:</font> Huffman only compression as in "wb1h". (See the description
-<font color="blue">665:</font> of deflateInit2 for more information about the strategy parameter.)
-<font color="blue">666:</font>
-<font color="blue">667:</font> gzopen can be used to read a file which is not in gzip format; in this
-<font color="blue">668:</font> case gzread will directly read from the file without decompression.
-<font color="blue">669:</font>
-<font color="blue">670:</font> gzopen returns NULL if the file could not be opened or if there was
-<font color="blue">671:</font> insufficient memory to allocate the (de)compression state; errno
-<font color="blue">672:</font> can be checked to distinguish the two cases (if errno is zero, the
-<font color="blue">673:</font> zlib error is Z_MEM_ERROR). */
-<font color="blue">674:</font>
-<font color="blue">675:</font> ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));
-<font color="blue">676:</font> /*
-<font color="blue">677:</font> gzdopen() associates a gzFile with the file descriptor fd. File
-<font color="blue">678:</font> descriptors are obtained from calls like open, dup, creat, pipe or
-<font color="blue">679:</font> fileno (in the file has been previously opened with fopen).
-<font color="blue">680:</font> The mode parameter is as in gzopen.
-<font color="blue">681:</font> The next call of gzclose on the returned gzFile will also close the
-<font color="blue">682:</font> file descriptor fd, just like fclose(fdopen(fd), mode) closes the file
-<font color="blue">683:</font> descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode).
-<font color="blue">684:</font> gzdopen returns NULL if there was insufficient memory to allocate
-<font color="blue">685:</font> the (de)compression state.
-<font color="blue">686:</font> */
-<font color="blue">687:</font>
-<font color="blue">688:</font> ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
-<font color="blue">689:</font> /*
-<font color="blue">690:</font> Dynamically update the compression level or strategy. See the description
-<font color="blue">691:</font> of deflateInit2 for the meaning of these parameters.
-<font color="blue">692:</font> gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
-<font color="blue">693:</font> opened for writing.
-<font color="blue">694:</font> */
-<font color="blue">695:</font>
-<font color="blue">696:</font> ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
-<font color="blue">697:</font> /*
-<font color="blue">698:</font> Reads the given number of uncompressed bytes from the compressed file.
-<font color="blue">699:</font> If the input file was not in gzip format, gzread copies the given number
-<font color="blue">700:</font> of bytes into the buffer.
-<font color="blue">701:</font> gzread returns the number of uncompressed bytes actually read (0 for
-<font color="blue">702:</font> end of file, -1 for error). */
-<font color="blue">703:</font>
-<font color="blue">704:</font> ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
-<font color="blue">705:</font> const voidp buf, unsigned len));
-<font color="blue">706:</font> /*
-<font color="blue">707:</font> Writes the given number of uncompressed bytes into the compressed file.
-<font color="blue">708:</font> gzwrite returns the number of uncompressed bytes actually written
-<font color="blue">709:</font> (0 in case of error).
-<font color="blue">710:</font> */
-<font color="blue">711:</font>
-<font color="blue">712:</font> ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...));
-<font color="blue">713:</font> /*
-<font color="blue">714:</font> Converts, formats, and writes the args to the compressed file under
-<font color="blue">715:</font> control of the format string, as in fprintf. gzprintf returns the number of
-<font color="blue">716:</font> uncompressed bytes actually written (0 in case of error).
-<font color="blue">717:</font> */
-<font color="blue">718:</font>
-<font color="blue">719:</font> ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
-<font color="blue">720:</font> /*
-<font color="blue">721:</font> Writes the given null-terminated string to the compressed file, excluding
-<font color="blue">722:</font> the terminating null character.
-<font color="blue">723:</font> gzputs returns the number of characters written, or -1 in case of error.
-<font color="blue">724:</font> */
-<font color="blue">725:</font>
-<font color="blue">726:</font> ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
-<font color="blue">727:</font> /*
-<font color="blue">728:</font> Reads bytes from the compressed file until len-1 characters are read, or
-<font color="blue">729:</font> a newline character is read and transferred to buf, or an end-of-file
-<font color="blue">730:</font> condition is encountered. The string is then terminated with a null
-<font color="blue">731:</font> character.
-<font color="blue">732:</font> gzgets returns buf, or Z_NULL in case of error.
-<font color="blue">733:</font> */
-<font color="blue">734:</font>
-<font color="blue">735:</font> ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));
-<font color="blue">736:</font> /*
-<font color="blue">737:</font> Writes c, converted to an unsigned char, into the compressed file.
-<font color="blue">738:</font> gzputc returns the value that was written, or -1 in case of error.
-<font color="blue">739:</font> */
-<font color="blue">740:</font>
-<font color="blue">741:</font> ZEXTERN int ZEXPORT gzgetc OF((gzFile file));
-<font color="blue">742:</font> /*
-<font color="blue">743:</font> Reads one byte from the compressed file. gzgetc returns this byte
-<font color="blue">744:</font> or -1 in case of end of file or error.
-<font color="blue">745:</font> */
-<font color="blue">746:</font>
-<font color="blue">747:</font> ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
-<font color="blue">748:</font> /*
-<font color="blue">749:</font> Flushes all pending output into the compressed file. The parameter
-<font color="blue">750:</font> flush is as in the deflate() function. The return value is the zlib
-<font color="blue">751:</font> error number (see function gzerror below). gzflush returns Z_OK if
-<font color="blue">752:</font> the flush parameter is Z_FINISH and all output could be flushed.
-<font color="blue">753:</font> gzflush should be called only when strictly necessary because it can
-<font color="blue">754:</font> degrade compression.
-<font color="blue">755:</font> */
-<font color="blue">756:</font>
-<font color="blue">757:</font> ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,
-<font color="blue">758:</font> z_off_t offset, int whence));
-<font color="blue">759:</font> /*
-<font color="blue">760:</font> Sets the starting position for the next gzread or gzwrite on the
-<font color="blue">761:</font> given compressed file. The offset represents a number of bytes in the
-<font color="blue">762:</font> uncompressed data stream. The whence parameter is defined as in lseek(2);
-<font color="blue">763:</font> the value SEEK_END is not supported.
-<font color="blue">764:</font> If the file is opened for reading, this function is emulated but can be
-<font color="blue">765:</font> extremely slow. If the file is opened for writing, only forward seeks are
-<font color="blue">766:</font> supported; gzseek then compresses a sequence of zeroes up to the new
-<font color="blue">767:</font> starting position.
-<font color="blue">768:</font>
-<font color="blue">769:</font> gzseek returns the resulting offset location as measured in bytes from
-<font color="blue">770:</font> the beginning of the uncompressed stream, or -1 in case of error, in
-<font color="blue">771:</font> particular if the file is opened for writing and the new starting position
-<font color="blue">772:</font> would be before the current position.
-<font color="blue">773:</font> */
-<font color="blue">774:</font>
-<font color="blue">775:</font> ZEXTERN int ZEXPORT gzrewind OF((gzFile file));
-<font color="blue">776:</font> /*
-<font color="blue">777:</font> Rewinds the given file. This function is supported only for reading.
-<font color="blue">778:</font>
-<font color="blue">779:</font> gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
-<font color="blue">780:</font> */
-<font color="blue">781:</font>
-<font color="blue">782:</font> ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file));
-<font color="blue">783:</font> /*
-<font color="blue">784:</font> Returns the starting position for the next gzread or gzwrite on the
-<font color="blue">785:</font> given compressed file. This position represents a number of bytes in the
-<font color="blue">786:</font> uncompressed data stream.
-<font color="blue">787:</font>
-<font color="blue">788:</font> gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
-<font color="blue">789:</font> */
-<font color="blue">790:</font>
-<font color="blue">791:</font> ZEXTERN int ZEXPORT gzeof OF((gzFile file));
-<font color="blue">792:</font> /*
-<font color="blue">793:</font> Returns 1 when EOF has previously been detected reading the given
-<font color="blue">794:</font> input stream, otherwise zero.
-<font color="blue">795:</font> */
-<font color="blue">796:</font>
-<font color="blue">797:</font> ZEXTERN int ZEXPORT gzclose OF((gzFile file));
-<font color="blue">798:</font> /*
-<font color="blue">799:</font> Flushes all pending output if necessary, closes the compressed file
-<font color="blue">800:</font> and deallocates all the (de)compression state. The return value is the zlib
-<font color="blue">801:</font> error number (see function gzerror below).
-<font color="blue">802:</font> */
-<font color="blue">803:</font>
-<font color="blue">804:</font> ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
-<font color="blue">805:</font> /*
-<font color="blue">806:</font> Returns the error message for the last error which occurred on the
-<font color="blue">807:</font> given compressed file. errnum is set to zlib error number. If an
-<font color="blue">808:</font> error occurred in the file system and not in the compression library,
-<font color="blue">809:</font> errnum is set to Z_ERRNO and the application may consult errno
-<font color="blue">810:</font> to get the exact error code.
-<font color="blue">811:</font> */
-<font color="blue">812:</font>
-<font color="blue">813:</font> /* checksum functions */
-<font color="blue">814:</font>
-<font color="blue">815:</font> /*
-<font color="blue">816:</font> These functions are not related to compression but are exported
-<font color="blue">817:</font> anyway because they might be useful in applications using the
-<font color="blue">818:</font> compression library.
-<font color="blue">819:</font> */
-<font color="blue">820:</font>
-<font color="blue">821:</font> ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
-<font color="blue">822:</font>
-<font color="blue">823:</font> /*
-<font color="blue">824:</font> Update a running Adler-32 checksum with the bytes buf[0..len-1] and
-<font color="blue">825:</font> return the updated checksum. If buf is NULL, this function returns
-<font color="blue">826:</font> the required initial value for the checksum.
-<font color="blue">827:</font> An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
-<font color="blue">828:</font> much faster. Usage example:
-<font color="blue">829:</font>
-<font color="blue">830:</font> uLong adler = adler32(0L, Z_NULL, 0);
-<font color="blue">831:</font>
-<font color="blue">832:</font> while (read_buffer(buffer, length) != EOF) {
-<font color="blue">833:</font> adler = adler32(adler, buffer, length);
-<font color="blue">834:</font> }
-<font color="blue">835:</font> if (adler != original_adler) error();
-<font color="blue">836:</font> */
-<font color="blue">837:</font>
-<font color="blue">838:</font> ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
-<font color="blue">839:</font> /*
-<font color="blue">840:</font> Update a running crc with the bytes buf[0..len-1] and return the updated
-<font color="blue">841:</font> crc. If buf is NULL, this function returns the required initial value
-<font color="blue">842:</font> for the crc. Pre- and post-conditioning (one's complement) is performed
-<font color="blue">843:</font> within this function so it shouldn't be done by the application.
-<font color="blue">844:</font> Usage example:
-<font color="blue">845:</font>
-<font color="blue">846:</font> uLong crc = crc32(0L, Z_NULL, 0);
-<font color="blue">847:</font>
-<font color="blue">848:</font> while (read_buffer(buffer, length) != EOF) {
-<font color="blue">849:</font> crc = crc32(crc, buffer, length);
-<font color="blue">850:</font> }
-<font color="blue">851:</font> if (crc != original_crc) error();
-<font color="blue">852:</font> */
-<font color="blue">853:</font>
-<font color="blue">854:</font>
-<font color="blue">855:</font> /* various hacks, don't look :) */
-<font color="blue">856:</font>
-<font color="blue">857:</font> /* deflateInit and inflateInit are macros to allow checking the zlib version
-<font color="blue">858:</font> * and the compiler's view of z_stream:
-<font color="blue">859:</font> */
-<font color="blue">860:</font> ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
-<font color="blue">861:</font> const char *version, int stream_size));
-<font color="blue">862:</font> ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
-<font color="blue">863:</font> const char *version, int stream_size));
-<font color="blue">864:</font> ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method,
-<font color="blue">865:</font> int windowBits, int memLevel,
-<font color="blue">866:</font> int strategy, const char *version,
-<font color="blue">867:</font> int stream_size));
-<font color="blue">868:</font> ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits,
-<font color="blue">869:</font> const char *version, int stream_size));
-<font color="blue"><a name="initmacros">870:</a></font> #define deflateInit(strm, level) \
-<font color="blue">871:</font> deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream))
-<font color="blue">872:</font> #define inflateInit(strm) \
-<font color="blue">873:</font> inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream))
-<font color="blue">874:</font> #define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
-<font color="blue">875:</font> deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
-<font color="blue">876:</font> (strategy), ZLIB_VERSION, sizeof(z_stream))
-<font color="blue">877:</font> #define inflateInit2(strm, windowBits) \
-<font color="blue">878:</font> inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
-<font color="blue">879:</font>
-<font color="blue">880:</font>
-<font color="blue">881:</font> #if !defined(_Z_UTIL_H) &amp;&amp; !defined(NO_DUMMY_DECL)
-<font color="blue">882:</font> struct internal_state {int dummy;}; /* hack for buggy compilers */
-<font color="blue">883:</font> #endif
-<font color="blue">884:</font>
-<font color="blue">885:</font> ZEXTERN const char * ZEXPORT zError OF((int err));
-<font color="blue">886:</font> ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z));
-<font color="blue">887:</font> ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void));
-<font color="blue">888:</font>
-<font color="blue">889:</font> #ifdef __cplusplus
-<font color="blue">890:</font> }
-<font color="blue">891:</font> #endif
-<font color="blue">892:</font>
-<font color="blue">893:</font> #endif /* _ZLIB_H */
- </pre>
- </blockquote>
-
- <center><h2><a name="devel">How the zlib wrapper was developed</a></h2></center>
-
- <h3>Attempt #1</h3>
- <blockquote>
- <pre>
-/* File : example.i */
-%module example
-%{
-/* Put headers and other declarations here */
-#include "zlib.h"
-%}
-
-%include typemaps.i
-
-%include "zlib.h"
- </pre>
- </blockquote>
-
- The result is:
-
- <blockquote>
- <pre>
-% swig -chicken -I/usr/include example.i
-<a href="#l63">/usr/include/zlib.h:63</a>: Syntax error in input.
-<a href="#l78">/usr/include/zlib.h:78</a>: Syntax error in input.
-<a href="#l80">/usr/include/zlib.h:80</a>: Syntax error in input.
- </pre>
- </blockquote>
-
- The first problem we see is that the macro <code>OF(...)</code> is
- not defined.
-
- <h3>Attempt #2</h3>
-
- We make sure to include <tt>zconf.h</tt> so that SWIG can see the
- definition of <code>OF(...)</code>. We try again.
-
- <blockquote>
- <pre>
-/* File : example.i */
-%module example
-%{
-/* Put headers and other declarations here */
-#include "zlib.h"
-%}
-
-%include typemaps.i
-
-<font color="red">%include "zconf.h"</font>
-%include "zlib.h"
- </pre>
- </blockquote>
-
- The result is:
-
- <blockquote>
- <pre>
-% swig -chicken -I/usr/include example.i
- </pre>
- </blockquote>
-
- This seems to work! But we should take a peek inside the generated
- <tt>example_wrap.c</tt> to see what the names of the Scheme
- procedures will be.
-
- <blockquote>
- <pre>
-% grep C_intern example_wrap.c
- C_word err = C_intern2 (&amp;a, errorhook);
- sym = C_intern (&amp;a, 21, "example:max-mem-level");
- sym = C_intern (&amp;a, 17, "example:max-wbits");
- sym = C_intern (&amp;a, 16, "example:seek-set");
- sym = C_intern (&amp;a, 16, "example:seek-cur");
- sym = C_intern (&amp;a, 16, "example:seek-end");
- sym = C_intern (&amp;a, 20, "example:zlib-version");
- sym = C_intern (&amp;a, 28, "example:z-stream-next-in-set");
- sym = C_intern (&amp;a, 28, "example:z-stream-next-in-get");
- sym = C_intern (&amp;a, 29, "example:z-stream-avail-in-set");
- sym = C_intern (&amp;a, 29, "example:z-stream-avail-in-get");
- sym = C_intern (&amp;a, 29, "example:z-stream-total-in-set");
- sym = C_intern (&amp;a, 29, "example:z-stream-total-in-get");
- sym = C_intern (&amp;a, 29, "example:z-stream-next-out-set");
- sym = C_intern (&amp;a, 29, "example:z-stream-next-out-get");
- sym = C_intern (&amp;a, 30, "example:z-stream-avail-out-set");
- sym = C_intern (&amp;a, 30, "example:z-stream-avail-out-get");
- sym = C_intern (&amp;a, 30, "example:z-stream-total-out-set");
- sym = C_intern (&amp;a, 30, "example:z-stream-total-out-get");
- sym = C_intern (&amp;a, 24, "example:z-stream-msg-set");
- sym = C_intern (&amp;a, 24, "example:z-stream-msg-get");
- sym = C_intern (&amp;a, 26, "example:z-stream-state-set");
- sym = C_intern (&amp;a, 26, "example:z-stream-state-get");
- sym = C_intern (&amp;a, 27, "example:z-stream-zalloc-set");
- sym = C_intern (&amp;a, 27, "example:z-stream-zalloc-get");
- sym = C_intern (&amp;a, 26, "example:z-stream-zfree-set");
- sym = C_intern (&amp;a, 26, "example:z-stream-zfree-get");
- sym = C_intern (&amp;a, 27, "example:z-stream-opaque-set");
- sym = C_intern (&amp;a, 27, "example:z-stream-opaque-get");
- sym = C_intern (&amp;a, 30, "example:z-stream-data-type-set");
- sym = C_intern (&amp;a, 30, "example:z-stream-data-type-get");
- sym = C_intern (&amp;a, 26, "example:z-stream-adler-set");
- sym = C_intern (&amp;a, 26, "example:z-stream-adler-get");
- sym = C_intern (&amp;a, 29, "example:z-stream-reserved-set");
- sym = C_intern (&amp;a, 29, "example:z-stream-reserved-get");
- sym = C_intern (&amp;a, 20, "example:new-z-stream");
- sym = C_intern (&amp;a, 23, "example:delete-z-stream");
- sym = C_intern (&amp;a, 18, "example:z-no-flush");
- sym = C_intern (&amp;a, 23, "example:z-partial-flush");
- sym = C_intern (&amp;a, 20, "example:z-sync-flush");
- sym = C_intern (&amp;a, 20, "example:z-full-flush");
- sym = C_intern (&amp;a, 16, "example:z-finish");
- sym = C_intern (&amp;a, 12, "example:z-ok");
- sym = C_intern (&amp;a, 20, "example:z-stream-end");
- sym = C_intern (&amp;a, 19, "example:z-need-dict");
- sym = C_intern (&amp;a, 15, "example:z-errno");
- sym = C_intern (&amp;a, 22, "example:z-stream-error");
- sym = C_intern (&amp;a, 20, "example:z-data-error");
- sym = C_intern (&amp;a, 19, "example:z-mem-error");
- sym = C_intern (&amp;a, 19, "example:z-buf-error");
- sym = C_intern (&amp;a, 23, "example:z-version-error");
- sym = C_intern (&amp;a, 24, "example:z-no-compression");
- sym = C_intern (&amp;a, 20, "example:z-best-speed");
- sym = C_intern (&amp;a, 26, "example:z-best-compression");
- sym = C_intern (&amp;a, 29, "example:z-default-compression");
- sym = C_intern (&amp;a, 18, "example:z-filtered");
- sym = C_intern (&amp;a, 22, "example:z-huffman-only");
- sym = C_intern (&amp;a, 26, "example:z-default-strategy");
- sym = C_intern (&amp;a, 16, "example:z-binary");
- sym = C_intern (&amp;a, 15, "example:z-ascii");
- sym = C_intern (&amp;a, 17, "example:z-unknown");
- sym = C_intern (&amp;a, 18, "example:z-deflated");
- sym = C_intern (&amp;a, 14, "example:z-null");
- sym = C_intern (&amp;a, 19, "example:zlibversion");
- sym = C_intern (&amp;a, 15, "example:deflate");
- sym = C_intern (&amp;a, 18, "example:deflateend");
- sym = C_intern (&amp;a, 15, "example:inflate");
- sym = C_intern (&amp;a, 18, "example:inflateend");
- sym = C_intern (&amp;a, 28, "example:deflatesetdictionary");
- sym = C_intern (&amp;a, 19, "example:deflatecopy");
- sym = C_intern (&amp;a, 20, "example:deflatereset");
- sym = C_intern (&amp;a, 21, "example:deflateparams");
- sym = C_intern (&amp;a, 28, "example:inflatesetdictionary");
- sym = C_intern (&amp;a, 19, "example:inflatesync");
- sym = C_intern (&amp;a, 20, "example:inflatereset");
- sym = C_intern (&amp;a, 16, "example:compress");
- sym = C_intern (&amp;a, 17, "example:compress2");
- sym = C_intern (&amp;a, 18, "example:uncompress");
- sym = C_intern (&amp;a, 14, "example:gzopen");
- sym = C_intern (&amp;a, 15, "example:gzdopen");
- sym = C_intern (&amp;a, 19, "example:gzsetparams");
- sym = C_intern (&amp;a, 14, "example:gzread");
- sym = C_intern (&amp;a, 15, "example:gzwrite");
- sym = C_intern (&amp;a, 16, "example:gzprintf");
- sym = C_intern (&amp;a, 14, "example:gzputs");
- sym = C_intern (&amp;a, 14, "example:gzgets");
- sym = C_intern (&amp;a, 14, "example:gzputc");
- sym = C_intern (&amp;a, 14, "example:gzgetc");
- sym = C_intern (&amp;a, 15, "example:gzflush");
- sym = C_intern (&amp;a, 14, "example:gzseek");
- sym = C_intern (&amp;a, 16, "example:gzrewind");
- sym = C_intern (&amp;a, 14, "example:gztell");
- sym = C_intern (&amp;a, 13, "example:gzeof");
- sym = C_intern (&amp;a, 15, "example:gzclose");
- sym = C_intern (&amp;a, 15, "example:gzerror");
- sym = C_intern (&amp;a, 15, "example:adler32");
- sym = C_intern (&amp;a, 13, "example:crc32");
- sym = C_intern (&amp;a, 20, "example:deflateinit-");
- sym = C_intern (&amp;a, 20, "example:inflateinit-");
- sym = C_intern (&amp;a, 21, "example:deflateinit2-");
- sym = C_intern (&amp;a, 21, "example:inflateinit2-");
- sym = C_intern (&amp;a, 32, "example:internal-state-dummy-set");
- sym = C_intern (&amp;a, 32, "example:internal-state-dummy-get");
- sym = C_intern (&amp;a, 26, "example:new-internal-state");
- sym = C_intern (&amp;a, 29, "example:delete-internal-state");
- sym = C_intern (&amp;a, 14, "example:zerror");
- sym = C_intern (&amp;a, 24, "example:inflatesyncpoint");
- sym = C_intern (&amp;a, 21, "example:get-crc-table");
- </pre>
- </blockquote>
-
- In fact, we want the Scheme procedure names to begin with
- <code>zlib</code> instead of <code>example</code>. For
- <code>example:zlib-version</code>, we want
- <code>zlib-version</code>. And we want dashes when the case
- switches to/from upper/lowercase; ex. the function
- <code>deflateEnd()</code> should be the Scheme procedure
- <code>zlib-deflate-end</code>.
-
- <h3>Attempt #3</h3>
-
- We make sure to add <tt>-prefix zlib -mixed</tt> to the
- <tt>swig</tt> command line, and we rename
- <code>ZLIB_VERSION</code> to <code>VERSION</code>. We try again.
-
- <blockquote>
- <pre>
-/* File : example.i */
-%module example
-%{
-/* Put headers and other declarations here */
-#include "zlib.h"
-%}
-
-%include typemaps.i
-
-<font color="red">%rename(VERSION) ZLIB_VERSION;</font>
-
-%include "zconf.h"
-%include "zlib.h"
- </pre>
- </blockquote>
-
- The result is:
-
- <blockquote>
- <pre>
-% swig -chicken <font color="red">-prefix zlib -mixed</font> -I/usr/include example.i
-% grep C_intern example_wrap.c
- C_word err = C_intern2 (&amp;a, errorhook);
- sym = C_intern (&amp;a, 18, "zlib:max-mem-level");
- sym = C_intern (&amp;a, 14, "zlib:max-wbits");
- sym = C_intern (&amp;a, 13, "zlib:seek-set");
- sym = C_intern (&amp;a, 13, "zlib:seek-cur");
- sym = C_intern (&amp;a, 13, "zlib:seek-end");
- sym = C_intern (&amp;a, 12, "zlib:version");
- sym = C_intern (&amp;a, 25, "zlib:z-stream-next-in-set");
- sym = C_intern (&amp;a, 25, "zlib:z-stream-next-in-get");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-avail-in-set");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-avail-in-get");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-total-in-set");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-total-in-get");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-next-out-set");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-next-out-get");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-avail-out-set");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-avail-out-get");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-total-out-set");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-total-out-get");
- sym = C_intern (&amp;a, 21, "zlib:z-stream-msg-set");
- sym = C_intern (&amp;a, 21, "zlib:z-stream-msg-get");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-state-set");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-state-get");
- sym = C_intern (&amp;a, 24, "zlib:z-stream-zalloc-set");
- sym = C_intern (&amp;a, 24, "zlib:z-stream-zalloc-get");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-zfree-set");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-zfree-get");
- sym = C_intern (&amp;a, 24, "zlib:z-stream-opaque-set");
- sym = C_intern (&amp;a, 24, "zlib:z-stream-opaque-get");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-data-type-set");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-data-type-get");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-adler-set");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-adler-get");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-reserved-set");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-reserved-get");
- sym = C_intern (&amp;a, 17, "zlib:new-z-stream");
- sym = C_intern (&amp;a, 20, "zlib:delete-z-stream");
- sym = C_intern (&amp;a, 15, "zlib:z-no-flush");
- sym = C_intern (&amp;a, 20, "zlib:z-partial-flush");
- sym = C_intern (&amp;a, 17, "zlib:z-sync-flush");
- sym = C_intern (&amp;a, 17, "zlib:z-full-flush");
- sym = C_intern (&amp;a, 13, "zlib:z-finish");
- sym = C_intern (&amp;a, 9, "zlib:z-ok");
- sym = C_intern (&amp;a, 17, "zlib:z-stream-end");
- sym = C_intern (&amp;a, 16, "zlib:z-need-dict");
- sym = C_intern (&amp;a, 12, "zlib:z-errno");
- sym = C_intern (&amp;a, 19, "zlib:z-stream-error");
- sym = C_intern (&amp;a, 17, "zlib:z-data-error");
- sym = C_intern (&amp;a, 16, "zlib:z-mem-error");
- sym = C_intern (&amp;a, 16, "zlib:z-buf-error");
- sym = C_intern (&amp;a, 20, "zlib:z-version-error");
- sym = C_intern (&amp;a, 21, "zlib:z-no-compression");
- sym = C_intern (&amp;a, 17, "zlib:z-best-speed");
- sym = C_intern (&amp;a, 23, "zlib:z-best-compression");
- sym = C_intern (&amp;a, 26, "zlib:z-default-compression");
- sym = C_intern (&amp;a, 15, "zlib:z-filtered");
- sym = C_intern (&amp;a, 19, "zlib:z-huffman-only");
- sym = C_intern (&amp;a, 23, "zlib:z-default-strategy");
- sym = C_intern (&amp;a, 13, "zlib:z-binary");
- sym = C_intern (&amp;a, 12, "zlib:z-ascii");
- sym = C_intern (&amp;a, 14, "zlib:z-unknown");
- sym = C_intern (&amp;a, 15, "zlib:z-deflated");
- sym = C_intern (&amp;a, 11, "zlib:z-null");
- sym = C_intern (&amp;a, 17, "zlib:zlib-version");
- sym = C_intern (&amp;a, 12, "zlib:deflate");
- sym = C_intern (&amp;a, 16, "zlib:deflate-end");
- sym = C_intern (&amp;a, 12, "zlib:inflate");
- sym = C_intern (&amp;a, 16, "zlib:inflate-end");
- sym = C_intern (&amp;a, 27, "zlib:deflate-set-dictionary");
- sym = C_intern (&amp;a, 17, "zlib:deflate-copy");
- sym = C_intern (&amp;a, 18, "zlib:deflate-reset");
- sym = C_intern (&amp;a, 19, "zlib:deflate-params");
- sym = C_intern (&amp;a, 27, "zlib:inflate-set-dictionary");
- sym = C_intern (&amp;a, 17, "zlib:inflate-sync");
- sym = C_intern (&amp;a, 18, "zlib:inflate-reset");
- sym = C_intern (&amp;a, 13, "zlib:compress");
- sym = C_intern (&amp;a, 14, "zlib:compress2");
- sym = C_intern (&amp;a, 15, "zlib:uncompress");
- sym = C_intern (&amp;a, 11, "zlib:gzopen");
- sym = C_intern (&amp;a, 12, "zlib:gzdopen");
- sym = C_intern (&amp;a, 16, "zlib:gzsetparams");
- sym = C_intern (&amp;a, 11, "zlib:gzread");
- sym = C_intern (&amp;a, 12, "zlib:gzwrite");
- sym = C_intern (&amp;a, 13, "zlib:gzprintf");
- sym = C_intern (&amp;a, 11, "zlib:gzputs");
- sym = C_intern (&amp;a, 11, "zlib:gzgets");
- sym = C_intern (&amp;a, 11, "zlib:gzputc");
- sym = C_intern (&amp;a, 11, "zlib:gzgetc");
- sym = C_intern (&amp;a, 12, "zlib:gzflush");
- sym = C_intern (&amp;a, 11, "zlib:gzseek");
- sym = C_intern (&amp;a, 13, "zlib:gzrewind");
- sym = C_intern (&amp;a, 11, "zlib:gztell");
- sym = C_intern (&amp;a, 10, "zlib:gzeof");
- sym = C_intern (&amp;a, 12, "zlib:gzclose");
- sym = C_intern (&amp;a, 12, "zlib:gzerror");
- sym = C_intern (&amp;a, 12, "zlib:adler32");
- sym = C_intern (&amp;a, 10, "zlib:crc32");
- sym = C_intern (&amp;a, 18, "zlib:deflate-init-");
- sym = C_intern (&amp;a, 18, "zlib:inflate-init-");
- sym = C_intern (&amp;a, 19, "zlib:deflate-init2-");
- sym = C_intern (&amp;a, 19, "zlib:inflate-init2-");
- sym = C_intern (&amp;a, 29, "zlib:internal-state-dummy-set");
- sym = C_intern (&amp;a, 29, "zlib:internal-state-dummy-get");
- sym = C_intern (&amp;a, 23, "zlib:new-internal-state");
- sym = C_intern (&amp;a, 26, "zlib:delete-internal-state");
- sym = C_intern (&amp;a, 12, "zlib:ze-rror");
- sym = C_intern (&amp;a, 23, "zlib:inflate-sync-point");
- sym = C_intern (&amp;a, 18, "zlib:get-crc-table");
- </pre>
- </blockquote>
-
- Much better. The only problem is the identifier
- <code>zlib:ze-rror</code>, and we are missing
- <code>zlib:deflate-init</code> and <code>zlib:inflate-init</code>
- because they are defined as macros (see <a
- href="#initmacros">macro definitions</a>).
-
- <h3>Attempt #4</h3>
-
- We make sure to rename <code>zError</code> to
- <code>z_error</code>, and we inline some helper functions for the
- <code>zlib:...-init</code> macros. We try again.
-
- <blockquote>
- <pre>
-/* File : example.i */
-%module example
-%{
-/* Put headers and other declarations here */
-#include "zlib.h"
-%}
-
-%include typemaps.i
-
-%rename(VERSION) ZLIB_VERSION;
-<font color="red">%rename(z_error) zError;</font>
-
-%include "zconf.h"
-%include "zlib.h"
-
-<font color="red">%inline %{
-/* %inline blocks are seen by SWIG and are inserted into the header
- portion of example_wrap.c, so that they are also seen by the C
- compiler. */
-int deflate_init(z_streamp strm, int level) {
- return deflateInit(strm,level); /* call macro */
-}
-int inflate_init(z_streamp strm) {
- return inflateInit(strm); /* call macro */
-}
-%}
-</font>
-
- </pre>
- </blockquote>
-
- The result is:
-
- <blockquote>
- <pre>
-% swig -chicken -prefix zlib -mixed -I/usr/include example.i
-% grep C_intern example_wrap.c
- C_word err = C_intern2 (&amp;a, errorhook);
- sym = C_intern (&amp;a, 18, "zlib:max-mem-level");
- sym = C_intern (&amp;a, 14, "zlib:max-wbits");
- sym = C_intern (&amp;a, 13, "zlib:seek-set");
- sym = C_intern (&amp;a, 13, "zlib:seek-cur");
- sym = C_intern (&amp;a, 13, "zlib:seek-end");
- sym = C_intern (&amp;a, 12, "zlib:version");
- sym = C_intern (&amp;a, 25, "zlib:z-stream-next-in-set");
- sym = C_intern (&amp;a, 25, "zlib:z-stream-next-in-get");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-avail-in-set");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-avail-in-get");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-total-in-set");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-total-in-get");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-next-out-set");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-next-out-get");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-avail-out-set");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-avail-out-get");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-total-out-set");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-total-out-get");
- sym = C_intern (&amp;a, 21, "zlib:z-stream-msg-set");
- sym = C_intern (&amp;a, 21, "zlib:z-stream-msg-get");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-state-set");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-state-get");
- sym = C_intern (&amp;a, 24, "zlib:z-stream-zalloc-set");
- sym = C_intern (&amp;a, 24, "zlib:z-stream-zalloc-get");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-zfree-set");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-zfree-get");
- sym = C_intern (&amp;a, 24, "zlib:z-stream-opaque-set");
- sym = C_intern (&amp;a, 24, "zlib:z-stream-opaque-get");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-data-type-set");
- sym = C_intern (&amp;a, 27, "zlib:z-stream-data-type-get");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-adler-set");
- sym = C_intern (&amp;a, 23, "zlib:z-stream-adler-get");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-reserved-set");
- sym = C_intern (&amp;a, 26, "zlib:z-stream-reserved-get");
- sym = C_intern (&amp;a, 17, "zlib:new-z-stream");
- sym = C_intern (&amp;a, 20, "zlib:delete-z-stream");
- sym = C_intern (&amp;a, 15, "zlib:z-no-flush");
- sym = C_intern (&amp;a, 20, "zlib:z-partial-flush");
- sym = C_intern (&amp;a, 17, "zlib:z-sync-flush");
- sym = C_intern (&amp;a, 17, "zlib:z-full-flush");
- sym = C_intern (&amp;a, 13, "zlib:z-finish");
- sym = C_intern (&amp;a, 9, "zlib:z-ok");
- sym = C_intern (&amp;a, 17, "zlib:z-stream-end");
- sym = C_intern (&amp;a, 16, "zlib:z-need-dict");
- sym = C_intern (&amp;a, 12, "zlib:z-errno");
- sym = C_intern (&amp;a, 19, "zlib:z-stream-error");
- sym = C_intern (&amp;a, 17, "zlib:z-data-error");
- sym = C_intern (&amp;a, 16, "zlib:z-mem-error");
- sym = C_intern (&amp;a, 16, "zlib:z-buf-error");
- sym = C_intern (&amp;a, 20, "zlib:z-version-error");
- sym = C_intern (&amp;a, 21, "zlib:z-no-compression");
- sym = C_intern (&amp;a, 17, "zlib:z-best-speed");
- sym = C_intern (&amp;a, 23, "zlib:z-best-compression");
- sym = C_intern (&amp;a, 26, "zlib:z-default-compression");
- sym = C_intern (&amp;a, 15, "zlib:z-filtered");
- sym = C_intern (&amp;a, 19, "zlib:z-huffman-only");
- sym = C_intern (&amp;a, 23, "zlib:z-default-strategy");
- sym = C_intern (&amp;a, 13, "zlib:z-binary");
- sym = C_intern (&amp;a, 12, "zlib:z-ascii");
- sym = C_intern (&amp;a, 14, "zlib:z-unknown");
- sym = C_intern (&amp;a, 15, "zlib:z-deflated");
- sym = C_intern (&amp;a, 11, "zlib:z-null");
- sym = C_intern (&amp;a, 17, "zlib:zlib-version");
- sym = C_intern (&amp;a, 12, "zlib:deflate");
- sym = C_intern (&amp;a, 16, "zlib:deflate-end");
- sym = C_intern (&amp;a, 12, "zlib:inflate");
- sym = C_intern (&amp;a, 16, "zlib:inflate-end");
- sym = C_intern (&amp;a, 27, "zlib:deflate-set-dictionary");
- sym = C_intern (&amp;a, 17, "zlib:deflate-copy");
- sym = C_intern (&amp;a, 18, "zlib:deflate-reset");
- sym = C_intern (&amp;a, 19, "zlib:deflate-params");
- sym = C_intern (&amp;a, 27, "zlib:inflate-set-dictionary");
- sym = C_intern (&amp;a, 17, "zlib:inflate-sync");
- sym = C_intern (&amp;a, 18, "zlib:inflate-reset");
- sym = C_intern (&amp;a, 13, "zlib:compress");
- sym = C_intern (&amp;a, 14, "zlib:compress2");
- sym = C_intern (&amp;a, 15, "zlib:uncompress");
- sym = C_intern (&amp;a, 11, "zlib:gzopen");
- sym = C_intern (&amp;a, 12, "zlib:gzdopen");
- sym = C_intern (&amp;a, 16, "zlib:gzsetparams");
- sym = C_intern (&amp;a, 11, "zlib:gzread");
- sym = C_intern (&amp;a, 12, "zlib:gzwrite");
- sym = C_intern (&amp;a, 13, "zlib:gzprintf");
- sym = C_intern (&amp;a, 11, "zlib:gzputs");
- sym = C_intern (&amp;a, 11, "zlib:gzgets");
- sym = C_intern (&amp;a, 11, "zlib:gzputc");
- sym = C_intern (&amp;a, 11, "zlib:gzgetc");
- sym = C_intern (&amp;a, 12, "zlib:gzflush");
- sym = C_intern (&amp;a, 11, "zlib:gzseek");
- sym = C_intern (&amp;a, 13, "zlib:gzrewind");
- sym = C_intern (&amp;a, 11, "zlib:gztell");
- sym = C_intern (&amp;a, 10, "zlib:gzeof");
- sym = C_intern (&amp;a, 12, "zlib:gzclose");
- sym = C_intern (&amp;a, 12, "zlib:gzerror");
- sym = C_intern (&amp;a, 12, "zlib:adler32");
- sym = C_intern (&amp;a, 10, "zlib:crc32");
- sym = C_intern (&amp;a, 18, "zlib:deflate-init-");
- sym = C_intern (&amp;a, 18, "zlib:inflate-init-");
- sym = C_intern (&amp;a, 19, "zlib:deflate-init2-");
- sym = C_intern (&amp;a, 19, "zlib:inflate-init2-");
- sym = C_intern (&amp;a, 29, "zlib:internal-state-dummy-set");
- sym = C_intern (&amp;a, 29, "zlib:internal-state-dummy-get");
- sym = C_intern (&amp;a, 23, "zlib:new-internal-state");
- sym = C_intern (&amp;a, 26, "zlib:delete-internal-state");
- sym = C_intern (&amp;a, 12, "zlib:z-error");
- sym = C_intern (&amp;a, 23, "zlib:inflate-sync-point");
- sym = C_intern (&amp;a, 18, "zlib:get-crc-table");
- sym = C_intern (&amp;a, 17, "zlib:deflate-init");
- sym = C_intern (&amp;a, 17, "zlib:inflate-init");
- </pre>
- </blockquote>
-
- Perfect! Now let's integrate this zlib extension into a
- CHICKEN interpreter. To save some time, in this
- Examples/chicken/zlib directory:
- <ol>
- <li>Backup the original <tt>example.i</tt>.</li>
- <li>Copy and paste the <tt>example.i</tt> text from above and
- put it into the file called <tt>example.i</tt></li>
- <li>Run 'make' as per <a href="#build">Building the
- example</a>.</li>
- <li>Run the resultant executable <tt>zlib</tt>.</li>
- </ol>
-
- The interpreter interaction is as follows:
-
- <blockquote>
- <pre>
-% ./zlib
-zlib
-
- A SWIG example for the CHICKEN compiler
- Author: Jonah Beckford, February 2003
-
-Scheme Procedures:
-
-zlib:max-mem-level
-zlib:max-wbits
-zlib:seek-set
-zlib:seek-cur
-zlib:seek-end
-zlib:version
-zlib:z-stream-next-in-set
-zlib:z-stream-next-in-get
-zlib:z-stream-avail-in-set
-...
-zlib:get-crc-table
-zlib:deflate-init
-zlib:inflate-init
-; This is the CHICKEN interpreter - Version 0, Build 1095 - windows-cygwin-x86
-; (c)2000-2003 Felix L. Winkelmann
-&gt;&gt;&gt; (define s (zlib:new-z-stream))
-&gt;&gt;&gt; s
-#&lt;tagged pointer #&lt;c++ "z_stream *"&gt;(#&lt;pointer 6d9290&gt;)&gt;
-&gt;&gt;&gt; (zlib:z-stream-next-in-get s)
-#f
-&gt;&gt;&gt; (zlib:z-stream-next-in-set s "some dummy stream data")
-Error: Type error. Expected _p_Bytef: "bad argument type"
-&gt;&gt;&gt; (exit)
- </pre>
- </blockquote>
-
- Apparently we cannot use Scheme strings as <code>Bytef *</code>. The SWIG
- manual shows many ways how to handle strings and byte arrays, but
- to be simplistic, let's just make the <code>Bytef *</code> look
- like a <code>char *</code>, which is automatically handled as a
- string by SWIG CHICKEN.
-
- <h3>Attempt #5</h3>
-
- We make sure to add an %apply construct so that <code>Bytef
- *</code> is handled the same as <code>char *</code> to SWIG. We
- try again.
-
- <blockquote>
- <pre>
-/* File : example.i */
-%module example
-%{
-/* Put headers and other declarations here */
-#include "zlib.h"
-%}
-
-%include typemaps.i
-
-%rename(VERSION) ZLIB_VERSION;
-%rename(z_error) zError;
-<font color="red">%apply char * { Bytef * };</font>
-
-%include "zconf.h"
-%include "zlib.h"
-
-%inline %{
-/* %inline blocks are seen by SWIG and are inserted into the header
- portion of example_wrap.c, so that they are also seen by the C
- compiler. */
-int deflate_init(z_streamp strm, int level) {
- return deflateInit(strm,level); /* call macro */
-}
-int inflate_init(z_streamp strm) {
- return inflateInit(strm); /* call macro */
-}
-%}
- </pre>
- </blockquote>
-
- Build the example once more.<br>
-
- The interpreter interaction is as follows:
-
- <blockquote>
- <pre>
-% ./zlib
-zlib
-
- A SWIG example for the CHICKEN compiler
- Author: Jonah Beckford, February 2003
-
-Scheme Procedures:
-
-zlib:max-mem-level
-zlib:max-wbits
-zlib:seek-set
-zlib:seek-cur
-zlib:seek-end
-zlib:version
-zlib:z-stream-next-in-set
-zlib:z-stream-next-in-get
-zlib:z-stream-avail-in-set
-...
-zlib:get-crc-table
-zlib:deflate-init
-zlib:inflate-init
-; This is the CHICKEN interpreter - Version 0, Build 1095 - windows-cygwin-x86
-; (c)2000-2003 Felix L. Winkelmann
-&gt;&gt;&gt; (define s (zlib:new-z-stream))
-<em>Init zstream</em>
-&gt;&gt;&gt; (zlib:z-stream-zalloc-set s #f)
-&gt;&gt;&gt; (zlib:z-stream-zfree-set s #f)
-&gt;&gt;&gt; (zlib:z-stream-opaque-set s #f)
-&gt;&gt;&gt; (zlib:deflate-init s (zlib:z-default-compression))
-0
-<em>Deflate something small so we don't need to loop/stream data</em>
-&gt;&gt;&gt; (define in "some dummy data")
-&gt;&gt;&gt; (define out (make-string 1000))
-&gt;&gt;&gt; (zlib:z-stream-next-in-set s in)
-&gt;&gt;&gt; (zlib:z-stream-avail-in-set s (string-length in))
-&gt;&gt;&gt; (zlib:z-stream-next-out-set s out)
-&gt;&gt;&gt; (zlib:z-stream-avail-out-set s (string-length out))
-&gt;&gt;&gt; (zlib:deflate s (zlib:z-finish))
-1 <em>;; (zlib:z-stream-end) == 1, which is good</em>
-&gt;&gt;&gt; (zlib:z-stream-total-out-get s)
-23.
-&gt;&gt;&gt; out
-" "
- </pre>
- </blockquote>
-
- We see the problem ... the compression is occurring as it should,
- but we cannot see any of the compressed output. This is because
- when SWIG CHICKEN passes a Scheme string to a C function, it
- duplicates the string before calling the C function. We want to
- save the memory address that
- <code>zlib:z-stream-next-out-set</code> is using, so we can
- display this later. While we are at it, we can foresee that
- <code>compress</code>, <code>compress2</code> and
- <code>uncompress</code> will all need some finessing to work with
- mutating strings.
-
- <h3>Attempt #6</h3>
-
- When we have to finesse strings, we must use typemaps. As well,
- we define some functions to save and restore the
- <code>next_out</code> element. We try again.
-
- <blockquote>
- <pre>
-/* File : example.i */
-%module example
-%{
-/* Put headers and other declarations here */
-#include "zlib.h"
-%}
-
-%include typemaps.i
-
-%rename(VERSION) ZLIB_VERSION;
-%rename(z_error) zError;
-%apply char * { Bytef * };
- <font color="red">
-/* Allow the sourceLen to be automatically filled in from the length
- of the 'source' string */
-%typemap(in) (const Bytef *source, uLong sourceLen)
-%{ if (!C_swig_is_string ($input)) {
- swig_barf (SWIG_BARF1_BAD_ARGUMENT_TYPE, "Argument $input is not a string");
- }
- $2 = (uLong) C_header_size ($input);
- $1 = C_c_string ($input);
-%}
-
-/* Allocate space the size of which is determined by the Scheme
- integer argument, and make a temporary integer so we can set
- destLen. */
-%typemap(in) (Bytef *dest, uLongf *destLen) (uLong len)
-%{ if (!C_swig_is_fixnum ($input)) {
- swig_barf (SWIG_BARF1_BAD_ARGUMENT_TYPE, "Argument $input is not a integer");
- }
- len = (uLong) C_unfix ($input);
- $2 = &amp;len;
- $1 = (char *) malloc (*$2);
-%}
-
-/* Return the mutated string as a new object. */
-%typemap(argout) (Bytef *dest, uLongf *destLen)
-(C_word *scmstr)
-%{ scmstr = C_alloc (C_SIZEOF_STRING (*$2));
- SWIG_APPEND_VALUE(C_string (&amp;scmstr, *$2, $1));
- free ($1);
-%}
- </font>
-%include "zconf.h"
-%include "zlib.h"
- <font color="red">
-/* Ignore destLen as an input argument, and make a temporary integer so
- we can set destLen. */
-%typemap(in, numinputs=0) uLongf *destLen (uLong len)
-"$1 = &amp;len;";
-
-/* Return a sized string as a new object. */
-%typemap(argout)
-(void *outstr, uLongf *destLen) (C_word *scmstr)
-%{ scmstr = C_alloc (C_SIZEOF_STRING (*$2));
- SWIG_APPEND_VALUE(C_string (&amp;scmstr, *$2, $1));
-%}
- </font>
-%inline %{
-/* %inline blocks are seen by SWIG and are inserted into the header
- portion of example_wrap.c, so that they are also seen by the C
- compiler. */
-int deflate_init(z_streamp strm, int level) {
- return deflateInit(strm,level); /* call macro */
-}
-int inflate_init(z_streamp strm) {
- return inflateInit(strm); /* call macro */
-}
-<font color="red">void* z_stream_save_next_out(z_streamp strm) {
- return (void*) strm-&gt;next_out;
-}
-void z_stream_get_next_chunk(z_streamp strm, void *outstr, uLongf *destLen) {
- *destLen = strm-&gt;next_out - (Bytef*)outstr;
-}</font>
-%}
- </pre>
- </blockquote>
-
- And that's it. Try building the entire example from the
- Makefile. Run <tt>./zlib test-zlib.scm</tt> to test it out.
-
- </body>
-</html>
diff --git a/Examples/chicken/zlib/example.i b/Examples/chicken/zlib/example.i
deleted file mode 100644
index dd962ad56..000000000
--- a/Examples/chicken/zlib/example.i
+++ /dev/null
@@ -1,76 +0,0 @@
-/* File : example.i */
-%module example
-%{
-/* Put headers and other declarations here */
-#include "zlib.h"
-%}
-
-%include typemaps.i
-
-%rename(VERSION) ZLIB_VERSION;
-%rename(z_error) zError;
-%apply char * { Bytef * };
-
-/* Allow the sourceLen to be automatically filled in from the length
- of the 'source' string */
-%typemap(in) (const Bytef *source, uLong sourceLen)
-%{ if (!C_swig_is_string ($input)) {
- swig_barf (SWIG_BARF1_BAD_ARGUMENT_TYPE, "Argument $input is not a string");
- }
- $2 = (uLong) C_header_size ($input);
- $1 = C_c_string ($input);
-%}
-
-/* Allocate space the size of which is determined by the Scheme
- integer argument, and make a temporary integer so we can set
- destLen. */
-%typemap(in) (Bytef *dest, uLongf *destLen) (uLong len)
-%{ if (!C_swig_is_fixnum ($input)) {
- swig_barf (SWIG_BARF1_BAD_ARGUMENT_TYPE, "Argument $input is not a integer");
- }
- len = (uLong) C_unfix ($input);
- $2 = &len;
- $1 = (char *) malloc (*$2);
-%}
-
-/* Return the mutated string as a new object. */
-%typemap(argout) (Bytef *dest, uLongf *destLen)
-(C_word *scmstr)
-%{ scmstr = C_alloc (C_SIZEOF_STRING (*$2));
- SWIG_APPEND_VALUE(C_string (&scmstr, *$2, $1));
- free ($1);
-%}
-
-%include "zconf.h"
-%include "zlib.h"
-
-/* Ignore destLen as an input argument, and make a temporary integer so
- we can set destLen. */
-%typemap(numinputs=0) uLongf *destLen (uLong len)
-"$1 = &len;";
-
-/* Return a sized string as a new object. */
-%typemap(argout)
-(void *outstr, uLongf *destLen) (C_word *scmstr)
-%{ scmstr = C_alloc (C_SIZEOF_STRING (*$2));
- SWIG_APPEND_VALUE(C_string (&scmstr, *$2, $1));
-%}
-
-%inline %{
-/* %inline blocks are seen by SWIG and are inserted into the header
- portion of example_wrap.c, so that they are also seen by the C
- compiler. */
-int deflate_init(z_streamp strm, int level) {
- return deflateInit(strm,level); /* call macro */
-}
-int inflate_init(z_streamp strm) {
- return inflateInit(strm); /* call macro */
-}
-void* z_stream_save_next_out(z_streamp strm) {
- return (void*) strm->next_out;
-}
-void z_stream_get_next_chunk(z_streamp strm, void *outstr, uLongf *destLen) {
- *destLen = strm->next_out - (Bytef*)outstr;
-}
-%}
-
diff --git a/Examples/chicken/zlib/test-zlib.scm b/Examples/chicken/zlib/test-zlib.scm
deleted file mode 100644
index a13d801b8..000000000
--- a/Examples/chicken/zlib/test-zlib.scm
+++ /dev/null
@@ -1,41 +0,0 @@
-(load-library 'example "./zlib.so")
-
-;; Init zstream
-(define s (new-z-stream))
-(z-stream-zalloc-set s #f)
-(z-stream-zfree-set s #f)
-(z-stream-opaque-set s #f)
-(deflate-init s (Z-DEFAULT-COMPRESSION))
-
-;; Deflate something small so we don't need to loop/stream data
-(define in "some pony et jumping et jack et flash et had a jack pony")
-(define out (make-string 1000))
-(printf "to be compressed: ~A~%to be compressed bytes: ~A~%~%" in (string-length in))
-(z-stream-next-in-set s in)
-(z-stream-avail-in-set s (string-length in))
-(z-stream-next-out-set s out)
-(z-stream-avail-out-set s (string-length out))
-(let*
- ((saved-out (z-stream-save-next-out s))
- (ret (deflate s (Z-FINISH))))
- (cond
- ((= ret (Z-STREAM-END))
- (printf "deflated properly!~%compressed bytes: ~A~%compressed stream: ~A~%"
- (z-stream-total-out-get s) (z-stream-get-next-chunk s saved-out)))
- ((= ret (Z-OK))
- (display "only partial deflation ... not enough output space\n"))
- (else
- (printf "deflate error(~D): ~A ~%" ret (z-stream-msg-get s)))))
-
-;; Use simple compress routine, and set max output size to 100
-(newline)
-(call-with-values (lambda () (compress 100 in))
- (lambda (ret compressed)
- (cond
- ((= ret (Z-OK))
- (printf "compressed properly!~%compressed bytes: ~A~%compressed stream: ~A~%"
- (string-length compressed) compressed))
- (else
- (printf "compress error(~D): ~A ~%" ret (z-error ret))))))
-
-(exit 0)
diff --git a/Examples/guile/check.list b/Examples/guile/check.list
index d35b2d693..7ccd0730a 100644
--- a/Examples/guile/check.list
+++ b/Examples/guile/check.list
@@ -1,6 +1,5 @@
# see top-level Makefile.in
constants
-matrix
simple
port
multimap
diff --git a/Examples/lua/lua.c b/Examples/lua/lua.c
index e06e2c5fc..8cffaa503 100644
--- a/Examples/lua/lua.c
+++ b/Examples/lua/lua.c
@@ -1,5 +1,4 @@
/*
-** $Id$
** Lua stand-alone interpreter
** See Copyright Notice in lua.h
*/
diff --git a/Examples/test-suite/csharp/li_std_map_runme.cs b/Examples/test-suite/csharp/li_std_map_runme.cs
index 2cdd5f5bc..b0a5a78e4 100644
--- a/Examples/test-suite/csharp/li_std_map_runme.cs
+++ b/Examples/test-suite/csharp/li_std_map_runme.cs
@@ -1,12 +1,7 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* li_std_map_runme.cs
*
* SWIG C# tester for std_map.i
- * Implementation by Yuval Baror (http://yuval.bar-or.org)
- *
* This class tests all the functionality of the std_map.i wrapper.
* Upon successful testing, the main function doesn't print out anything.
* If any error is found - it will be printed on the screen.
diff --git a/Examples/test-suite/li_std_queue.i b/Examples/test-suite/li_std_queue.i
index 2d322b4d9..6bf71afca 100644
--- a/Examples/test-suite/li_std_queue.i
+++ b/Examples/test-suite/li_std_queue.i
@@ -1,13 +1,4 @@
-/**
- * @file std_queue.i
- * @author gga
- * @date Sun May 6 01:52:44 2007
- *
- * @brief test of std::queue
- *
- *
- */
-
+// test of std::queue
%module li_std_queue
%include std_queue.i
diff --git a/Examples/test-suite/li_std_set.i b/Examples/test-suite/li_std_set.i
index 8c335b24c..2dcc2f17c 100644
--- a/Examples/test-suite/li_std_set.i
+++ b/Examples/test-suite/li_std_set.i
@@ -1,18 +1,12 @@
-/**
- * @file li_std_set.i
- * @author gga
- * @date Tue May 1 02:52:47 2007
- *
- * @brief a test of set containers.
- * Languages should define swig::LANGUAGE_OBJ to be
- * an entity of their native pointer type which can be
- * included in a STL container.
+/*
+ * a test of set containers.
+ * Languages should define swig::LANGUAGE_OBJ to be
+ * an entity of their native pointer type which can be
+ * included in a STL container.
*
- * For example:
- * swig::LANGUAGE_OBJ is GC_VALUE in Ruby
- * swig::LANGUAGE_OBJ is SwigPtr_PyObject in python
- *
- *
+ * For example:
+ * swig::LANGUAGE_OBJ is GC_VALUE in Ruby
+ * swig::LANGUAGE_OBJ is SwigPtr_PyObject in python
*/
%module li_std_set
diff --git a/Examples/test-suite/li_std_stack.i b/Examples/test-suite/li_std_stack.i
index d29254089..19b45d46f 100644
--- a/Examples/test-suite/li_std_stack.i
+++ b/Examples/test-suite/li_std_stack.i
@@ -1,13 +1,4 @@
-/**
- * @file std_stack.i
- * @author gga
- * @date Sun May 6 01:52:44 2007
- *
- * @brief test of std::stack
- *
- *
- */
-
+// test of std::stack
%module li_std_stack
%include std_stack.i
diff --git a/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb b/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb
index 825f3c593..e79cb46a8 100755
--- a/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb
+++ b/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb
@@ -3,9 +3,6 @@
# This is a simple speed benchmark suite for std containers,
# to verify their O(n) performance.
# It is not part of the standard tests.
-#
-# License:: SWIG
-#
require 'benchmark'
diff --git a/Examples/test-suite/ruby_li_std_speed.i b/Examples/test-suite/ruby_li_std_speed.i
index 3c8e60643..bfb0b2776 100644
--- a/Examples/test-suite/ruby_li_std_speed.i
+++ b/Examples/test-suite/ruby_li_std_speed.i
@@ -1,13 +1,4 @@
-/**
- * @file ruby_li_std_speed.i
- * @author gga
- * @date Fri May 18 18:03:15 2007
- *
- * @brief A speed test of the ruby stl
- *
- *
- */
-
+// A speed test of the ruby stl
%module ruby_li_std_speed
%include <std_list.i>
diff --git a/Examples/xml/example_gif.i b/Examples/xml/example_gif.i
deleted file mode 100644
index f0fb3b183..000000000
--- a/Examples/xml/example_gif.i
+++ /dev/null
@@ -1,329 +0,0 @@
-/* -----------------------------------------------------------------------------
- * gifplot.h
- *
- * Main header file for the GIFPlot library.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- * Copyright (C) 1995-1996
- *
- * See the file LICENSE for information on usage and redistribution.
- * ----------------------------------------------------------------------------- */
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <float.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-
-#ifndef GIFPLOT_H
-
-/* Pixel is 8-bits */
-
-typedef unsigned char Pixel;
-typedef float Zvalue;
-
-/* ------------------------------------------------------------------------
- ColorMap
-
- Definition and methods for colormaps
- ------------------------------------------------------------------------ */
-
-typedef struct ColorMap {
- unsigned char *cmap;
- char *name;
-} ColorMap;
-
-extern ColorMap *new_ColorMap(char *filename);
-extern void delete_ColorMap(ColorMap *c);
-extern void ColorMap_default(ColorMap *c);
-extern void ColorMap_assign(ColorMap *c, int index, int r, int g, int b);
-extern int ColorMap_getitem(ColorMap *c, int index);
-extern void ColorMap_setitem(ColorMap *c, int index, int value);
-extern int ColorMap_write(ColorMap *c, char *filename);
-
-/* Some default colors */
-
-#define BLACK 0
-#define WHITE 1
-#define RED 2
-#define GREEN 3
-#define BLUE 4
-#define YELLOW 5
-#define CYAN 6
-#define MAGENTA 7
-
-/*-------------------------------------------------------------------------
- FrameBuffer
-
- This structure defines a simple 8 bit framebuffer.
- ------------------------------------------------------------------------- */
-
-typedef struct FrameBuffer {
- Pixel **pixels;
- Zvalue **zbuffer;
- unsigned int height;
- unsigned int width;
- int xmin; /* These are used for clipping */
- int ymin;
- int xmax;
- int ymax;
-} FrameBuffer;
-
-#define ZMIN 1e+36
-
-/* FrameBuffer Methods */
-
-extern FrameBuffer *new_FrameBuffer(unsigned int width, unsigned int height);
-extern void delete_FrameBuffer(FrameBuffer *frame);
-extern int FrameBuffer_resize(FrameBuffer *frame, int width, int height);
-extern void FrameBuffer_clear(FrameBuffer *frame, Pixel color);
-extern void FrameBuffer_plot(FrameBuffer *frame, int x, int y, Pixel color);
-extern void FrameBuffer_horizontal(FrameBuffer *frame, int xmin, int xmax, int y, Pixel color);
-extern void FrameBuffer_horizontalinterp(FrameBuffer *f, int xmin, int xmax, int y, Pixel c1, Pixel c2);
-extern void FrameBuffer_vertical(FrameBuffer *frame, int ymin, int ymax, int x, Pixel color);
-extern void FrameBuffer_box(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color);
-extern void FrameBuffer_solidbox(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color);
-extern void FrameBuffer_interpbox(FrameBuffer *f, int x1, int y1, int x2, int y2, Pixel c1, Pixel c2, Pixel c3, Pixel c4);
-extern void FrameBuffer_circle(FrameBuffer *frame, int x1, int y1, int radius, Pixel color);
-extern void FrameBuffer_solidcircle(FrameBuffer *frame, int x1, int y1, int radius, Pixel color);
-extern void FrameBuffer_line(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color);
-extern void FrameBuffer_setclip(FrameBuffer *frame, int xmin, int ymin, int xmax, int ymax);
-extern void FrameBuffer_noclip(FrameBuffer *frame);
-extern int FrameBuffer_makeGIF(FrameBuffer *frame, ColorMap *cmap, void *buffer, unsigned int maxsize);
-extern int FrameBuffer_writeGIF(FrameBuffer *f, ColorMap *c, char *filename);
-extern void FrameBuffer_zresize(FrameBuffer *f, int width, int height);
-extern void FrameBuffer_zclear(FrameBuffer *f);
-extern void FrameBuffer_solidtriangle(FrameBuffer *f, int x1, int y1, int x2, int y2, int x3, int y3, Pixel c);
-extern void FrameBuffer_interptriangle(FrameBuffer *f, int tx1, int ty1, Pixel c1,
- int tx2, int ty2, Pixel c2, int tx3, int ty3, Pixel c3);
-
-#define HORIZONTAL 1
-#define VERTICAL 2
-
-extern void FrameBuffer_drawchar(FrameBuffer *frame, int x, int y, int fgcolor, int bgcolor, char chr, int orientation);
-extern void FrameBuffer_drawstring(FrameBuffer *f, int x, int y, int fgcolor, int bgcolor, char *text, int orientation);
-
-/* ------------------------------------------------------------------------
- PixMap
-
- The equivalent of "bit-maps".
- ------------------------------------------------------------------------ */
-
-typedef struct PixMap {
- int width;
- int height;
- int centerx;
- int centery;
- int *map;
-} PixMap;
-
-/* PIXMAP methods */
-
-extern PixMap *new_PixMap(int width, int height, int centerx, int centery);
-extern void delete_PixMap(PixMap *pm);
-extern void PixMap_set(PixMap *pm, int x, int y, int pix);
-extern void FrameBuffer_drawpixmap(FrameBuffer *f, PixMap *pm, int x, int y, int fgcolor, int bgcolor);
-
-#define TRANSPARENT 0
-#define FOREGROUND 1
-#define BACKGROUND 2
-
-/* ------------------------------------------------------------------------
- Plot2D
-
- Definition and methods for 2D plots.
- ------------------------------------------------------------------------ */
-
-typedef struct Plot2D {
- FrameBuffer *frame; /* what frame buffer are we using */
- int view_xmin; /* Minimum coordinates of view region */
- int view_ymin;
- int view_xmax; /* Maximum coordinates of view region */
- int view_ymax;
- double xmin; /* Minimum coordinates of plot region */
- double ymin;
- double xmax; /* Maximum coordinates of plot region */
- double ymax;
- int xscale; /* Type of scaling (LINEAR, LOG, etc..) */
- int yscale;
- double dx; /* Private scaling parameters */
- double dy;
-} Plot2D;
-
-/* 2D Plot methods */
-
-extern Plot2D *new_Plot2D(FrameBuffer *frame,double xmin,double ymin, double xmax, double ymax);
-extern void delete_Plot2D(Plot2D *p2);
-extern Plot2D *Plot2D_copy(Plot2D *p2);
-extern void Plot2D_clear(Plot2D *p2, Pixel c);
-extern void Plot2D_setview(Plot2D *p2, int vxmin, int vymin, int vxmax, int vymax);
-extern void Plot2D_setrange(Plot2D *p2, double xmin, double ymin, double xmax, double ymax);
-extern void Plot2D_setscale(Plot2D *p2, int xscale, int yscale);
-extern void Plot2D_plot(Plot2D *p2, double x, double y, Pixel color);
-extern void Plot2D_box(Plot2D *p2, double x1, double y1, double x2, double y2, Pixel color);
-extern void Plot2D_solidbox(Plot2D *p2, double x1, double y1,double x2, double y2, Pixel color);
-extern void Plot2D_interpbox(Plot2D *p2, double x1, double y1, double x2, double y2, Pixel c1, Pixel c2, Pixel c3, Pixel c4);
-extern void Plot2D_circle(Plot2D *p2, double x, double y, double radius, Pixel color);
-extern void Plot2D_solidcircle(Plot2D *p2, double x, double y, double radius, Pixel color);
-extern void Plot2D_line(Plot2D *p2, double x1, double y1, double x2, double y2, Pixel color);
-extern void Plot2D_start(Plot2D *p2);
-extern void Plot2D_drawpixmap(Plot2D *p2, PixMap *pm, double x, double y, Pixel color, Pixel bgcolor);
-extern void Plot2D_xaxis(Plot2D *p2, double x, double y, double xtick, int ticklength, Pixel c);
-extern void Plot2D_yaxis(Plot2D *p2, double x, double y, double ytick, int ticklength, Pixel c);
-extern void Plot2D_triangle(Plot2D *p2, double x1, double y1, double x2, double y2, double x3, double y3, Pixel c);
-extern void Plot2D_solidtriangle(Plot2D *p2, double x1, double y1, double x2, double y2, double x3, double y3, Pixel c);
-extern void Plot2D_interptriangle(Plot2D *p2, double x1, double y1, Pixel c1,
- double x2, double y2, Pixel c2,
- double x3, double y3, Pixel c3);
-
-#define LINEAR 10
-#define LOG 11
-
-/* -----------------------------------------------------------------------
- Matrix
-
- Operations on 4x4 transformation matrices and vectors.
- Matrices are represented as a double array of 16 elements
- ----------------------------------------------------------------------- */
-
-typedef double *Matrix;
-typedef struct GL_Vector {
- double x;
- double y;
- double z;
- double w;
-} GL_Vector;
-
-extern Matrix new_Matrix();
-extern void delete_Matrix(Matrix a);
-extern Matrix Matrix_copy(Matrix a);
-extern void Matrix_multiply(Matrix a, Matrix b, Matrix c);
-extern void Matrix_identity(Matrix a);
-extern void Matrix_zero(Matrix a);
-extern void Matrix_transpose(Matrix a, Matrix result);
-extern void Matrix_invert(Matrix a, Matrix inva);
-extern void Matrix_transform(Matrix a, GL_Vector *r, GL_Vector *t);
-extern void Matrix_transform4(Matrix a, double rx, double ry, double rz,
- double rw, GL_Vector *t);
-
-extern void Matrix_print(Matrix a);
-extern void Matrix_translate(Matrix a, double tx, double ty, double tz);
-extern void Matrix_rotatex(Matrix a, double deg);
-extern void Matrix_rotatey(Matrix a, double deg);
-extern void Matrix_rotatez(Matrix a, double deg);
-
-/* -----------------------------------------------------------------------
- Plot3D
-
- Data Structure for 3-D plots
- ------------------------------------------------------------------------ */
-
-typedef struct Plot3D {
- FrameBuffer *frame; /* Frame buffer being used */
- int view_xmin; /* Viewing region */
- int view_ymin;
- int view_xmax;
- int view_ymax;
- double xmin; /* Bounding box */
- double ymin;
- double zmin;
- double xmax;
- double ymax;
- double zmax;
- double xcenter; /* Center point */
- double ycenter;
- double zcenter;
- double fovy; /* Field of view */
- double aspect; /* Aspect ratio */
- double znear; /* near "clipping" plane */
- double zfar; /* far "clipping" plane */
- Matrix center_mat; /* Matrix used for centering the model */
- Matrix model_mat; /* Model rotation matrix */
- Matrix view_mat; /* Viewing matrix */
- Matrix fullmodel_mat; /* Full model matrix. Used by sphere plot */
- Matrix trans_mat; /* Total transformation matrix */
- double lookatz; /* Where is the z-lookat point */
- double xshift; /* Used for translation and stuff */
- double yshift;
- double zoom;
- int width;
- int height;
- int pers_mode; /* Perspective mode (private) */
- double ortho_left,ortho_right,ortho_bottom,ortho_top;
-} Plot3D;
-
-extern Plot3D *new_Plot3D(FrameBuffer *frame, double xmin, double ymin, double zmin,
- double xmax, double ymax, double zmax);
-extern void delete_Plot3D(Plot3D *p3);
-extern Plot3D *Plot3D_copy(Plot3D *p3);
-extern void Plot3D_clear(Plot3D *p3, Pixel Color);
-extern void Plot3D_perspective(Plot3D *p3, double fovy, double znear, double zfar);
-extern void Plot3D_ortho(Plot3D *p3, double left, double right, double top, double bottom);
-extern void Plot3D_lookat(Plot3D *p3, double z);
-extern void Plot3D_autoperspective(Plot3D *p3, double fovy);
-extern void Plot3D_autoortho(Plot3D *p3);
-extern void Plot3D_rotx(Plot3D *p3, double deg);
-extern void Plot3D_roty(Plot3D *p3, double deg);
-extern void Plot3D_rotz(Plot3D *p3, double deg);
-extern void Plot3D_rotl(Plot3D *p3, double deg);
-extern void Plot3D_rotr(Plot3D *p3, double deg);
-extern void Plot3D_rotd(Plot3D *p3, double deg);
-extern void Plot3D_rotu(Plot3D *p3, double deg);
-extern void Plot3D_rotc(Plot3D *p3, double deg);
-extern void Plot3D_zoom(Plot3D *p3, double percent);
-extern void Plot3D_left(Plot3D *p3, double percent);
-extern void Plot3D_right(Plot3D *p3, double percent);
-extern void Plot3D_down(Plot3D *p3, double percent);
-extern void Plot3D_up(Plot3D *p3, double percent);
-extern void Plot3D_center(Plot3D *p3, double cx, double cy);
-
-extern void Plot3D_plot(Plot3D *p3, double x, double y, double z, Pixel Color);
-
-extern void Plot3D_setview(Plot3D *p3, int vxmin, int vymin, int vxmax, int vymax);
-extern void Plot3D_start(Plot3D *p3);
-extern void Plot3D_line(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2, Pixel color);
-extern void Plot3D_triangle(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3, Pixel color);
-extern void Plot3D_solidtriangle(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3, Pixel color);
-
-extern void Plot3D_interptriangle(Plot3D *p3,
- double x1, double y1, double z1, Pixel c1,
- double x2, double y2, double z2, Pixel c2,
- double x3, double y3, double z3, Pixel c3);
-
-extern void Plot3D_quad(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- double x4, double y4, double z4,
- Pixel color);
-
-extern void Plot3D_solidquad(Plot3D *p3, double x1, double y1, double z1,
- double x2, double y2, double z2,
- double x3, double y3, double z3,
- double x4, double y4, double z4,
- Pixel color);
-
-extern void Plot3D_interpquad(Plot3D *p3, double x1, double y1, double z1, Pixel c1,
- double x2, double y2, double z2, Pixel c2,
- double x3, double y3, double z3, Pixel c3,
- double x4, double y4, double z4, Pixel c4);
-
-
-extern void Plot3D_solidsphere(Plot3D *p3, double x, double y, double z, double radius,Pixel c);
-
-extern void Plot3D_outlinesphere(Plot3D *p3, double x, double y, double z, double radius,Pixel c, Pixel bc);
-
-extern PixMap PixMap_SQUARE;
-extern PixMap PixMap_TRIANGLE;
-extern PixMap PixMap_CROSS;
-
-#endif
-#define GIFPLOT_H
-
-
-
diff --git a/Lib/allegrocl/allegrocl.swg b/Lib/allegrocl/allegrocl.swg
index 4479f6ac2..266303113 100644
--- a/Lib/allegrocl/allegrocl.swg
+++ b/Lib/allegrocl/allegrocl.swg
@@ -289,8 +289,6 @@ $body)"
#endif
%insert("lisphead") %{
-;; $Id$
-
(eval-when (:compile-toplevel :load-toplevel :execute)
;; avoid compiling ef-templates at runtime
diff --git a/Lib/allegrocl/longlongs.i b/Lib/allegrocl/longlongs.i
index b887a8a0a..4aa54660b 100644
--- a/Lib/allegrocl/longlongs.i
+++ b/Lib/allegrocl/longlongs.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* longlongs.i
*
* Typemap addition for support of 'long long' type and 'unsigned long long
diff --git a/Lib/allegrocl/std_list.i b/Lib/allegrocl/std_list.i
index c8ab45649..4e260897f 100644
--- a/Lib/allegrocl/std_list.i
+++ b/Lib/allegrocl/std_list.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_list.i
*
* SWIG typemaps for std::list types
diff --git a/Lib/allegrocl/std_string.i b/Lib/allegrocl/std_string.i
index 4da0148fe..becc322e9 100644
--- a/Lib/allegrocl/std_string.i
+++ b/Lib/allegrocl/std_string.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_string.i
*
* SWIG typemaps for std::string
diff --git a/Lib/attribute.i b/Lib/attribute.i
index 45c3c5b64..0cc3ff1a3 100644
--- a/Lib/attribute.i
+++ b/Lib/attribute.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* attribute.i
*
* SWIG library file for implementing attributes.
diff --git a/Lib/carrays.i b/Lib/carrays.i
index 738b4577a..5fc78877c 100644
--- a/Lib/carrays.i
+++ b/Lib/carrays.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* carrays.i
*
* SWIG library file containing macros that can be used to manipulate simple
diff --git a/Lib/cdata.i b/Lib/cdata.i
index b970b1d5d..1abaf357b 100644
--- a/Lib/cdata.i
+++ b/Lib/cdata.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cdata.i
*
* SWIG library file containing macros for manipulating raw C data as strings.
diff --git a/Lib/chicken/chicken.swg b/Lib/chicken/chicken.swg
index a8d1b5a57..68f022570 100644
--- a/Lib/chicken/chicken.swg
+++ b/Lib/chicken/chicken.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* chicken.swg
*
* CHICKEN configuration module.
diff --git a/Lib/chicken/chickenrun.swg b/Lib/chicken/chickenrun.swg
index 8703ea65a..f4e94d6f6 100644
--- a/Lib/chicken/chickenrun.swg
+++ b/Lib/chicken/chickenrun.swg
@@ -1,9 +1,5 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* chickenrun.swg
- *
* ----------------------------------------------------------------------------- */
#include <chicken.h>
diff --git a/Lib/chicken/multi-generic.scm b/Lib/chicken/multi-generic.scm
index ae822f37b..9d2e31d34 100644
--- a/Lib/chicken/multi-generic.scm
+++ b/Lib/chicken/multi-generic.scm
@@ -21,7 +21,7 @@
;; which functions are used when.
;; Comments, bugs, suggestions: send either to chicken-users@nongnu.org or to
-;; Author: John Lenz <lenz@cs.wisc.edu>, most code copied from TinyCLOS
+;; Most code copied from TinyCLOS
(define <multi-generic> (make <entity-class>
'name "multi-generic"
diff --git a/Lib/chicken/std_string.i b/Lib/chicken/std_string.i
index 2955d0e2f..ce24cba32 100644
--- a/Lib/chicken/std_string.i
+++ b/Lib/chicken/std_string.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_string.i
*
* SWIG typemaps for std::string
diff --git a/Lib/chicken/typemaps.i b/Lib/chicken/typemaps.i
index d79e20184..56cd18a5d 100644
--- a/Lib/chicken/typemaps.i
+++ b/Lib/chicken/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i
*
* Pointer handling
diff --git a/Lib/clisp/clisp.swg b/Lib/clisp/clisp.swg
index fb6cdbf2a..e1d330cb3 100644
--- a/Lib/clisp/clisp.swg
+++ b/Lib/clisp/clisp.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* clisp.swg
* ----------------------------------------------------------------------------- */
diff --git a/Lib/cmalloc.i b/Lib/cmalloc.i
index 03a61351c..9f58bc03c 100644
--- a/Lib/cmalloc.i
+++ b/Lib/cmalloc.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cmalloc.i
*
* SWIG library file containing macros that can be used to create objects using
diff --git a/Lib/constraints.i b/Lib/constraints.i
index 2deb1168a..8bc7f9159 100644
--- a/Lib/constraints.i
+++ b/Lib/constraints.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* constraints.i
*
* SWIG constraints library.
diff --git a/Lib/cpointer.i b/Lib/cpointer.i
index 1a6e51741..6b15a8417 100644
--- a/Lib/cpointer.i
+++ b/Lib/cpointer.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cpointer.i
*
* SWIG library file containing macros that can be used to manipulate simple
diff --git a/Lib/csharp/arrays_csharp.i b/Lib/csharp/arrays_csharp.i
index ea22da584..513330e4e 100644
--- a/Lib/csharp/arrays_csharp.i
+++ b/Lib/csharp/arrays_csharp.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* arrays_csharp.i
*
* This file contains a two approaches to marshaling arrays. The first uses
diff --git a/Lib/csharp/csharp.swg b/Lib/csharp/csharp.swg
index fe459547c..204cf4b2f 100644
--- a/Lib/csharp/csharp.swg
+++ b/Lib/csharp/csharp.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* csharp.swg
*
* C# typemaps
diff --git a/Lib/csharp/csharphead.swg b/Lib/csharp/csharphead.swg
index 927a54b3b..9b144d6a5 100644
--- a/Lib/csharp/csharphead.swg
+++ b/Lib/csharp/csharphead.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* csharphead.swg
*
* Support code for exceptions if the SWIG_CSHARP_NO_EXCEPTION_HELPER is not defined
diff --git a/Lib/csharp/director.swg b/Lib/csharp/director.swg
index 8957ecf42..7768d8c02 100644
--- a/Lib/csharp/director.swg
+++ b/Lib/csharp/director.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* director.swg
*
* This file contains support for director classes so that C# proxy
diff --git a/Lib/csharp/enums.swg b/Lib/csharp/enums.swg
index be2a6063b..6605da8c8 100644
--- a/Lib/csharp/enums.swg
+++ b/Lib/csharp/enums.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* enums.swg
*
* Include this file in order for C/C++ enums to be wrapped by proper C# enums.
diff --git a/Lib/csharp/enumsimple.swg b/Lib/csharp/enumsimple.swg
index f50849892..2b1cb182b 100644
--- a/Lib/csharp/enumsimple.swg
+++ b/Lib/csharp/enumsimple.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* enumsimple.swg
*
* This file provides backwards compatible enum wrapping. SWIG versions 1.3.21
diff --git a/Lib/csharp/enumtypesafe.swg b/Lib/csharp/enumtypesafe.swg
index 8ba7838ef..a6bf64b9a 100644
--- a/Lib/csharp/enumtypesafe.swg
+++ b/Lib/csharp/enumtypesafe.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* enumtypesafe.swg
*
* Include this file in order for C/C++ enums to be wrapped by the so called
diff --git a/Lib/csharp/std_except.i b/Lib/csharp/std_except.i
index c86e97a54..27eb84bc2 100644
--- a/Lib/csharp/std_except.i
+++ b/Lib/csharp/std_except.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_except.i
*
* Typemaps used by the STL wrappers that throw exceptions. These typemaps are
diff --git a/Lib/csharp/std_map.i b/Lib/csharp/std_map.i
index f210a96ba..24efbe26f 100644
--- a/Lib/csharp/std_map.i
+++ b/Lib/csharp/std_map.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_map.i
*
* SWIG typemaps for std::map< K, T >
diff --git a/Lib/csharp/std_pair.i b/Lib/csharp/std_pair.i
index 78142ffa6..0712ad762 100644
--- a/Lib/csharp/std_pair.i
+++ b/Lib/csharp/std_pair.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_pair.i
*
* SWIG typemaps for std::pair
diff --git a/Lib/csharp/std_string.i b/Lib/csharp/std_string.i
index d29692717..0d804518b 100644
--- a/Lib/csharp/std_string.i
+++ b/Lib/csharp/std_string.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_string.i
*
* Typemaps for std::string and const std::string&
diff --git a/Lib/csharp/std_vector.i b/Lib/csharp/std_vector.i
index 64aad5807..57abe614d 100644
--- a/Lib/csharp/std_vector.i
+++ b/Lib/csharp/std_vector.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_vector.i
*
* SWIG typemaps for std::vector<T>
diff --git a/Lib/csharp/std_wstring.i b/Lib/csharp/std_wstring.i
index 938070e4b..9142d36a5 100644
--- a/Lib/csharp/std_wstring.i
+++ b/Lib/csharp/std_wstring.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_wstring.i
*
* Typemaps for std::wstring and const std::wstring&
diff --git a/Lib/csharp/stl.i b/Lib/csharp/stl.i
index 66b72e073..9d2e91eee 100644
--- a/Lib/csharp/stl.i
+++ b/Lib/csharp/stl.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stl.i
*
* Initial STL definition. extended as needed in each language
diff --git a/Lib/csharp/typemaps.i b/Lib/csharp/typemaps.i
index 56cc6cb61..d50e5c46d 100644
--- a/Lib/csharp/typemaps.i
+++ b/Lib/csharp/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i
*
* Pointer and reference handling typemap library
diff --git a/Lib/csharp/wchar.i b/Lib/csharp/wchar.i
index be87560c3..f02c09a53 100644
--- a/Lib/csharp/wchar.i
+++ b/Lib/csharp/wchar.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* wchar.i
*
* Typemaps for the wchar_t type
diff --git a/Lib/cstring.i b/Lib/cstring.i
index 4ebdf6857..6829f7597 100644
--- a/Lib/cstring.i
+++ b/Lib/cstring.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cstring.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/cwstring.i b/Lib/cwstring.i
index a6b08ae40..f0631d328 100644
--- a/Lib/cwstring.i
+++ b/Lib/cwstring.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cwstring.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/exception.i b/Lib/exception.i
index a1a47554e..2bc86b458 100644
--- a/Lib/exception.i
+++ b/Lib/exception.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* exception.i
*
* SWIG library file providing language independent exception handling
diff --git a/Lib/gcj/cni.swg b/Lib/gcj/cni.swg
index 247909a4a..4bd07df06 100644
--- a/Lib/gcj/cni.swg
+++ b/Lib/gcj/cni.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cni.swg
* ----------------------------------------------------------------------------- */
diff --git a/Lib/guile/common.scm b/Lib/guile/common.scm
index a51d3a71d..17c9ab580 100644
--- a/Lib/guile/common.scm
+++ b/Lib/guile/common.scm
@@ -3,12 +3,6 @@
;;;*
;;;* This file contains generic SWIG GOOPS classes for generated
;;;* GOOPS file support
-;;;*
-;;;* Copyright (C) 2003 John Lenz (jelenz@wisc.edu)
-;;;* Copyright (C) 2004 Matthias Koeppe (mkoeppe@mail.math.uni-magdeburg.de)
-;;;*
-;;;* This file may be freely redistributed without license or fee provided
-;;;* this copyright message remains intact.
;;;************************************************************************
(define-module (Swig swigrun))
diff --git a/Lib/guile/cplusplus.i b/Lib/guile/cplusplus.i
index cb4cf7434..0dfe71754 100644
--- a/Lib/guile/cplusplus.i
+++ b/Lib/guile/cplusplus.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cplusplus.i
*
* SWIG typemaps for C++
diff --git a/Lib/guile/guile.i b/Lib/guile/guile.i
index 1bf28d6f3..ef270d74b 100644
--- a/Lib/guile/guile.i
+++ b/Lib/guile/guile.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* guile.i
*
* SWIG Configuration File for Guile.
diff --git a/Lib/guile/guile_gh.swg b/Lib/guile/guile_gh.swg
index 6412a4c61..3b65af897 100644
--- a/Lib/guile/guile_gh.swg
+++ b/Lib/guile/guile_gh.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* guile_gh.swg
*
* This SWIG interface file is processed if the Guile module is run
diff --git a/Lib/guile/guile_gh_run.swg b/Lib/guile/guile_gh_run.swg
index 5b1fca0aa..0eba1f97e 100644
--- a/Lib/guile/guile_gh_run.swg
+++ b/Lib/guile/guile_gh_run.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* guile_gh_run.swg
*
* Guile GH runtime file
diff --git a/Lib/guile/guile_scm.swg b/Lib/guile/guile_scm.swg
index caded728d..d12401451 100644
--- a/Lib/guile/guile_scm.swg
+++ b/Lib/guile/guile_scm.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* guile_scm.swg
*
* This SWIG interface file is processed if the Guile module is run
diff --git a/Lib/guile/guile_scm_run.swg b/Lib/guile/guile_scm_run.swg
index 5da8558fc..91b74095d 100644
--- a/Lib/guile/guile_scm_run.swg
+++ b/Lib/guile/guile_scm_run.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* guile_scm_run.swg
* ----------------------------------------------------------------------------- */
diff --git a/Lib/guile/guilemain.i b/Lib/guile/guilemain.i
index 6f4e4d94d..925b81fee 100644
--- a/Lib/guile/guilemain.i
+++ b/Lib/guile/guilemain.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* guilemain.i
*
* The main functions for a user augmented guile
diff --git a/Lib/guile/interpreter.i b/Lib/guile/interpreter.i
index 7e8f0777a..524e0694a 100644
--- a/Lib/guile/interpreter.i
+++ b/Lib/guile/interpreter.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* interpreter.i
*
* SWIG file for a simple Guile interpreter
diff --git a/Lib/guile/list-vector.i b/Lib/guile/list-vector.i
index d98cae59a..c2cd1aea2 100644
--- a/Lib/guile/list-vector.i
+++ b/Lib/guile/list-vector.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* list_vector.i
*
* Guile typemaps for converting between arrays and Scheme lists or vectors
diff --git a/Lib/guile/pointer-in-out.i b/Lib/guile/pointer-in-out.i
index bc6438759..d8a631ca9 100644
--- a/Lib/guile/pointer-in-out.i
+++ b/Lib/guile/pointer-in-out.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* pointer-in-out.i
*
* Guile typemaps for passing pointers indirectly
diff --git a/Lib/guile/ports.i b/Lib/guile/ports.i
index 0d0e142e1..5940b4d3b 100644
--- a/Lib/guile/ports.i
+++ b/Lib/guile/ports.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* ports.i
*
* Guile typemaps for handling ports
diff --git a/Lib/guile/std_common.i b/Lib/guile/std_common.i
index ace5d65a8..a46c42c69 100644
--- a/Lib/guile/std_common.i
+++ b/Lib/guile/std_common.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_common.i
*
* SWIG typemaps for STL - common utilities
diff --git a/Lib/guile/std_map.i b/Lib/guile/std_map.i
index cc53e1560..19c863096 100644
--- a/Lib/guile/std_map.i
+++ b/Lib/guile/std_map.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_map.i
*
* SWIG typemaps for std::map
diff --git a/Lib/guile/std_pair.i b/Lib/guile/std_pair.i
index f8c2ea688..35f0cfad5 100644
--- a/Lib/guile/std_pair.i
+++ b/Lib/guile/std_pair.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_pair.i
*
* SWIG typemaps for std::pair
diff --git a/Lib/guile/std_string.i b/Lib/guile/std_string.i
index f80a65ca5..c10806e98 100644
--- a/Lib/guile/std_string.i
+++ b/Lib/guile/std_string.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_string.i
*
* SWIG typemaps for std::string
diff --git a/Lib/guile/std_vector.i b/Lib/guile/std_vector.i
index 145db945b..6801daee8 100644
--- a/Lib/guile/std_vector.i
+++ b/Lib/guile/std_vector.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_vector.i
*
* SWIG typemaps for std::vector
diff --git a/Lib/guile/stl.i b/Lib/guile/stl.i
index 66b72e073..9d2e91eee 100644
--- a/Lib/guile/stl.i
+++ b/Lib/guile/stl.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stl.i
*
* Initial STL definition. extended as needed in each language
diff --git a/Lib/guile/typemaps.i b/Lib/guile/typemaps.i
index d9f972850..4f306f7f8 100644
--- a/Lib/guile/typemaps.i
+++ b/Lib/guile/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i
*
* Guile-specific typemaps
diff --git a/Lib/inttypes.i b/Lib/inttypes.i
index 0cc81948e..8450cb840 100644
--- a/Lib/inttypes.i
+++ b/Lib/inttypes.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* inttypes.i
*
* SWIG library file for ISO C99 types: 7.8 Format conversion of integer types <inttypes.h>
diff --git a/Lib/java/arrays_java.i b/Lib/java/arrays_java.i
index 95510c3f9..ddaf7408c 100644
--- a/Lib/java/arrays_java.i
+++ b/Lib/java/arrays_java.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* arrays_java.i
*
* These typemaps give more natural support for arrays. The typemaps are not efficient
diff --git a/Lib/java/director.swg b/Lib/java/director.swg
index fa588671d..07e5a1af1 100644
--- a/Lib/java/director.swg
+++ b/Lib/java/director.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* director.swg
*
* This file contains support for director classes that proxy
diff --git a/Lib/java/enums.swg b/Lib/java/enums.swg
index 1a8f89b3a..edb67c417 100644
--- a/Lib/java/enums.swg
+++ b/Lib/java/enums.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* enums.swg
*
* Include this file in order for C/C++ enums to be wrapped by proper Java enums.
diff --git a/Lib/java/enumsimple.swg b/Lib/java/enumsimple.swg
index f45774d0c..e08401869 100644
--- a/Lib/java/enumsimple.swg
+++ b/Lib/java/enumsimple.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* enumsimple.swg
*
* This file provides backwards compatible enum wrapping. SWIG versions 1.3.21
diff --git a/Lib/java/enumtypesafe.swg b/Lib/java/enumtypesafe.swg
index a49a9d134..d6c6e5190 100644
--- a/Lib/java/enumtypesafe.swg
+++ b/Lib/java/enumtypesafe.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* enumtypesafe.swg
*
* Include this file in order for C/C++ enums to be wrapped by the so called
diff --git a/Lib/java/enumtypeunsafe.swg b/Lib/java/enumtypeunsafe.swg
index bda055113..d9a7c4d29 100644
--- a/Lib/java/enumtypeunsafe.swg
+++ b/Lib/java/enumtypeunsafe.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* enumtypeunsafe.swg
*
* Include this file in order for C/C++ enums to be wrapped by integers values.
diff --git a/Lib/java/java.swg b/Lib/java/java.swg
index bd2357a86..6173502ca 100644
--- a/Lib/java/java.swg
+++ b/Lib/java/java.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* java.swg
*
* Java typemaps
diff --git a/Lib/java/javahead.swg b/Lib/java/javahead.swg
index 7626bf50d..685bba198 100644
--- a/Lib/java/javahead.swg
+++ b/Lib/java/javahead.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* javahead.swg
*
* Java support code
diff --git a/Lib/java/std_except.i b/Lib/java/std_except.i
index 15be1deb8..9e23d50e6 100644
--- a/Lib/java/std_except.i
+++ b/Lib/java/std_except.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_except.i
*
* Typemaps used by the STL wrappers that throw exceptions.
diff --git a/Lib/java/std_map.i b/Lib/java/std_map.i
index 00967d3f9..a7020532c 100644
--- a/Lib/java/std_map.i
+++ b/Lib/java/std_map.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_map.i
*
* SWIG typemaps for std::map
diff --git a/Lib/java/std_pair.i b/Lib/java/std_pair.i
index dc0604dc5..fe45ee676 100644
--- a/Lib/java/std_pair.i
+++ b/Lib/java/std_pair.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_pair.i
*
* SWIG typemaps for std::pair
diff --git a/Lib/java/std_string.i b/Lib/java/std_string.i
index 789e17a65..f0d837696 100644
--- a/Lib/java/std_string.i
+++ b/Lib/java/std_string.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_string.i
*
* Typemaps for std::string and const std::string&
diff --git a/Lib/java/std_vector.i b/Lib/java/std_vector.i
index 29439606b..3f29b19c7 100644
--- a/Lib/java/std_vector.i
+++ b/Lib/java/std_vector.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_vector.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/java/std_wstring.i b/Lib/java/std_wstring.i
index 989176500..12d8fc14f 100644
--- a/Lib/java/std_wstring.i
+++ b/Lib/java/std_wstring.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_wstring.i
*
* Typemaps for std::wstring and const std::wstring&
diff --git a/Lib/java/stl.i b/Lib/java/stl.i
index b8d7a654c..04f86014f 100644
--- a/Lib/java/stl.i
+++ b/Lib/java/stl.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stl.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/java/typemaps.i b/Lib/java/typemaps.i
index 59f7af99a..74ed99374 100644
--- a/Lib/java/typemaps.i
+++ b/Lib/java/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i
*
* Pointer and reference handling typemap library
diff --git a/Lib/java/various.i b/Lib/java/various.i
index 733b8fa79..7c396de3e 100644
--- a/Lib/java/various.i
+++ b/Lib/java/various.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* various.i
*
* SWIG Typemap library for Java.
diff --git a/Lib/lua/_std_common.i b/Lib/lua/_std_common.i
index 33cc513c3..e552d0c8f 100644
--- a/Lib/lua/_std_common.i
+++ b/Lib/lua/_std_common.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* _std_common.i
*
* std::helpers for LUA
diff --git a/Lib/lua/lua.swg b/Lib/lua/lua.swg
index b6d888670..c3f5cecc5 100644
--- a/Lib/lua/lua.swg
+++ b/Lib/lua/lua.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* lua.swg
*
* SWIG Configuration File for Lua.
diff --git a/Lib/lua/lua_fnptr.i b/Lib/lua/lua_fnptr.i
index c7df6f5a3..7e9facdf3 100644
--- a/Lib/lua/lua_fnptr.i
+++ b/Lib/lua/lua_fnptr.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* lua_fnptr.i
*
* SWIG Library file containing the main typemap code to support Lua modules.
diff --git a/Lib/lua/luarun.swg b/Lib/lua/luarun.swg
index 9bb45d577..b4e979531 100644
--- a/Lib/lua/luarun.swg
+++ b/Lib/lua/luarun.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* luarun.swg
*
* This file contains the runtime support for Lua modules
diff --git a/Lib/lua/luaruntime.swg b/Lib/lua/luaruntime.swg
index b82cd56d7..5823d4fcf 100644
--- a/Lib/lua/luaruntime.swg
+++ b/Lib/lua/luaruntime.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* luaruntime.swg
*
* all the runtime code for .
diff --git a/Lib/lua/luatypemaps.swg b/Lib/lua/luatypemaps.swg
index caa2a6ce1..401541267 100644
--- a/Lib/lua/luatypemaps.swg
+++ b/Lib/lua/luatypemaps.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* luatypemaps.swg
*
* basic typemaps for Lua.
diff --git a/Lib/lua/std_except.i b/Lib/lua/std_except.i
index ce148ef63..9c736b9ef 100644
--- a/Lib/lua/std_except.i
+++ b/Lib/lua/std_except.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* Typemaps used by the STL wrappers that throw exceptions.
* These typemaps are used when methods are declared with an STL exception
* specification, such as:
diff --git a/Lib/lua/std_map.i b/Lib/lua/std_map.i
index dd22443d5..84b0c74ff 100644
--- a/Lib/lua/std_map.i
+++ b/Lib/lua/std_map.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_map.i
*
* SWIG typemaps for std::map
diff --git a/Lib/lua/std_pair.i b/Lib/lua/std_pair.i
index 1b20f74e0..c76361554 100644
--- a/Lib/lua/std_pair.i
+++ b/Lib/lua/std_pair.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_pair.i
*
* std::pair typemaps for LUA
diff --git a/Lib/lua/std_string.i b/Lib/lua/std_string.i
index fa58f10bb..92f27d738 100644
--- a/Lib/lua/std_string.i
+++ b/Lib/lua/std_string.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_string.i
*
* std::string typemaps for LUA
diff --git a/Lib/lua/std_vector.i b/Lib/lua/std_vector.i
index c6778087f..f248f0340 100644
--- a/Lib/lua/std_vector.i
+++ b/Lib/lua/std_vector.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_vector.i
*
* std::vector typemaps for LUA
diff --git a/Lib/lua/stl.i b/Lib/lua/stl.i
index b8d7a654c..04f86014f 100644
--- a/Lib/lua/stl.i
+++ b/Lib/lua/stl.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stl.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/lua/typemaps.i b/Lib/lua/typemaps.i
index fa0c0d0e5..084726e58 100644
--- a/Lib/lua/typemaps.i
+++ b/Lib/lua/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.swg
*
* SWIG Library file containing the main typemap code to support Lua modules.
diff --git a/Lib/lua/wchar.i b/Lib/lua/wchar.i
index 5b206eb71..5021c1604 100644
--- a/Lib/lua/wchar.i
+++ b/Lib/lua/wchar.i
@@ -1,12 +1,8 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* wchar.i
*
* Typemaps for the wchar_t type
* These are mapped to a Lua string and are passed around by value.
- *
* ----------------------------------------------------------------------------- */
// note: only support for pointer right now, not fixed length strings
@@ -43,4 +39,4 @@ if ($1==0) {lua_pushfstring(L,"Error in converting to wchar (arg %d)",$input);go
free($1);
%}
-%typemap(typecheck) wchar_t * = char *; \ No newline at end of file
+%typemap(typecheck) wchar_t * = char *;
diff --git a/Lib/math.i b/Lib/math.i
index be931d71b..a37c92d19 100644
--- a/Lib/math.i
+++ b/Lib/math.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* math.i
*
* SWIG library file for floating point operations.
diff --git a/Lib/modula3/modula3.swg b/Lib/modula3/modula3.swg
index 6a1b4d94d..599a12e5a 100644
--- a/Lib/modula3/modula3.swg
+++ b/Lib/modula3/modula3.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* modula3.swg
*
* Modula3 typemaps
diff --git a/Lib/modula3/modula3head.swg b/Lib/modula3/modula3head.swg
index b2426be5f..af96a78d1 100644
--- a/Lib/modula3/modula3head.swg
+++ b/Lib/modula3/modula3head.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* modula3head.swg
*
* Modula3 support code
diff --git a/Lib/modula3/typemaps.i b/Lib/modula3/typemaps.i
index 79ddfda0f..1d76ab5e0 100644
--- a/Lib/modula3/typemaps.i
+++ b/Lib/modula3/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i
*
* Pointer and reference handling typemap library
diff --git a/Lib/mzscheme/mzrun.swg b/Lib/mzscheme/mzrun.swg
index 3b05d2406..a5128da56 100644
--- a/Lib/mzscheme/mzrun.swg
+++ b/Lib/mzscheme/mzrun.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* mzrun.swg
* ----------------------------------------------------------------------------- */
diff --git a/Lib/mzscheme/mzscheme.swg b/Lib/mzscheme/mzscheme.swg
index ed4b2ec9d..9ae242845 100644
--- a/Lib/mzscheme/mzscheme.swg
+++ b/Lib/mzscheme/mzscheme.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* mzscheme.swg
*
* SWIG Configuration File for MzScheme.
diff --git a/Lib/mzscheme/std_common.i b/Lib/mzscheme/std_common.i
index 8732f811c..1f1ae1ab7 100644
--- a/Lib/mzscheme/std_common.i
+++ b/Lib/mzscheme/std_common.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_common.i
*
* SWIG typemaps for STL - common utilities
diff --git a/Lib/mzscheme/std_map.i b/Lib/mzscheme/std_map.i
index aff720db6..b2c894509 100644
--- a/Lib/mzscheme/std_map.i
+++ b/Lib/mzscheme/std_map.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_map.i
*
* SWIG typemaps for std::map
diff --git a/Lib/mzscheme/std_pair.i b/Lib/mzscheme/std_pair.i
index 2ac331e71..d5a65470d 100644
--- a/Lib/mzscheme/std_pair.i
+++ b/Lib/mzscheme/std_pair.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_pair.i
*
* SWIG typemaps for std::pair
diff --git a/Lib/mzscheme/std_string.i b/Lib/mzscheme/std_string.i
index c9a82efe4..b8b99d9ad 100644
--- a/Lib/mzscheme/std_string.i
+++ b/Lib/mzscheme/std_string.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_string.i
*
* SWIG typemaps for std::string types
diff --git a/Lib/mzscheme/std_vector.i b/Lib/mzscheme/std_vector.i
index 90a52fc0a..22e1fa96b 100644
--- a/Lib/mzscheme/std_vector.i
+++ b/Lib/mzscheme/std_vector.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_vector.i
*
* SWIG typemaps for std::vector
diff --git a/Lib/mzscheme/stl.i b/Lib/mzscheme/stl.i
index 946e4b7f0..b19eae58b 100644
--- a/Lib/mzscheme/stl.i
+++ b/Lib/mzscheme/stl.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stl.i
*
* Initial STL definition. extended as needed in each language
diff --git a/Lib/mzscheme/typemaps.i b/Lib/mzscheme/typemaps.i
index 334893242..b9f22440c 100644
--- a/Lib/mzscheme/typemaps.i
+++ b/Lib/mzscheme/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/ocaml/cstring.i b/Lib/ocaml/cstring.i
index e56258264..0d6aa4b69 100644
--- a/Lib/ocaml/cstring.i
+++ b/Lib/ocaml/cstring.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cstring.i
*
* This file provides typemaps and macros for dealing with various forms
diff --git a/Lib/ocaml/director.swg b/Lib/ocaml/director.swg
index 87333168f..a21f62102 100644
--- a/Lib/ocaml/director.swg
+++ b/Lib/ocaml/director.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* director.swg
*
* This file contains support for director classes that proxy
diff --git a/Lib/ocaml/ocaml.i b/Lib/ocaml/ocaml.i
index a46e239d1..e099f7c10 100644
--- a/Lib/ocaml/ocaml.i
+++ b/Lib/ocaml/ocaml.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* ocaml.i
*
* SWIG Configuration File for Ocaml
diff --git a/Lib/ocaml/ocamldec.swg b/Lib/ocaml/ocamldec.swg
index 3b5290fa1..8e452d3f9 100644
--- a/Lib/ocaml/ocamldec.swg
+++ b/Lib/ocaml/ocamldec.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* ocamldec.swg
*
* Ocaml runtime code -- declarations
diff --git a/Lib/ocaml/std_common.i b/Lib/ocaml/std_common.i
index b2dff61d2..1c397050c 100644
--- a/Lib/ocaml/std_common.i
+++ b/Lib/ocaml/std_common.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_common.i
*
* SWIG typemaps for STL - common utilities
diff --git a/Lib/ocaml/std_deque.i b/Lib/ocaml/std_deque.i
index baadb4e53..5b38962bf 100644
--- a/Lib/ocaml/std_deque.i
+++ b/Lib/ocaml/std_deque.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_deque.i
*
* Default std_deque wrapper
diff --git a/Lib/ocaml/std_list.i b/Lib/ocaml/std_list.i
index 0aea90767..06181cca8 100644
--- a/Lib/ocaml/std_list.i
+++ b/Lib/ocaml/std_list.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_list.i
*
* SWIG typemaps for std::list types
diff --git a/Lib/ocaml/std_map.i b/Lib/ocaml/std_map.i
index f174f2872..f202e74ed 100644
--- a/Lib/ocaml/std_map.i
+++ b/Lib/ocaml/std_map.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_map.i
*
* SWIG typemaps for std::map
diff --git a/Lib/ocaml/std_pair.i b/Lib/ocaml/std_pair.i
index dc0604dc5..fe45ee676 100644
--- a/Lib/ocaml/std_pair.i
+++ b/Lib/ocaml/std_pair.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_pair.i
*
* SWIG typemaps for std::pair
diff --git a/Lib/ocaml/std_string.i b/Lib/ocaml/std_string.i
index 7add3a070..e75e95304 100644
--- a/Lib/ocaml/std_string.i
+++ b/Lib/ocaml/std_string.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_string.i
*
* SWIG typemaps for std::string
diff --git a/Lib/ocaml/std_vector.i b/Lib/ocaml/std_vector.i
index 91c335562..53d107447 100644
--- a/Lib/ocaml/std_vector.i
+++ b/Lib/ocaml/std_vector.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_vector.i
*
* SWIG typemaps for std::vector types
diff --git a/Lib/ocaml/stl.i b/Lib/ocaml/stl.i
index 66b72e073..9d2e91eee 100644
--- a/Lib/ocaml/stl.i
+++ b/Lib/ocaml/stl.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stl.i
*
* Initial STL definition. extended as needed in each language
diff --git a/Lib/ocaml/typecheck.i b/Lib/ocaml/typecheck.i
index 51e66061b..4c3500690 100644
--- a/Lib/ocaml/typecheck.i
+++ b/Lib/ocaml/typecheck.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typecheck.i
*
* Typechecking rules
diff --git a/Lib/ocaml/typemaps.i b/Lib/ocaml/typemaps.i
index 7f978bf7f..39544de94 100644
--- a/Lib/ocaml/typemaps.i
+++ b/Lib/ocaml/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i
*
* The Ocaml module handles all types uniformly via typemaps. Here
diff --git a/Lib/octave/octcontainer.swg b/Lib/octave/octcontainer.swg
index afc3ed147..6613fcfff 100644
--- a/Lib/octave/octcontainer.swg
+++ b/Lib/octave/octcontainer.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* octcontainer.swg
*
* Octave cell <-> C++ container wrapper
diff --git a/Lib/octave/octiterators.swg b/Lib/octave/octiterators.swg
index 926361e10..0e3fe7033 100644
--- a/Lib/octave/octiterators.swg
+++ b/Lib/octave/octiterators.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* octiterators.swg
*
* Users can derive form the OctSwigIterator to implemet their
diff --git a/Lib/perl5/perlmain.i b/Lib/perl5/perlmain.i
index f224b9c75..18ecb7eb5 100644
--- a/Lib/perl5/perlmain.i
+++ b/Lib/perl5/perlmain.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* perlmain.i
*
* Code to statically rebuild perl5.
diff --git a/Lib/perl5/reference.i b/Lib/perl5/reference.i
index 6f5eda518..fdc9c1320 100644
--- a/Lib/perl5/reference.i
+++ b/Lib/perl5/reference.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* reference.i
*
* Accept Perl references as pointers
diff --git a/Lib/perl5/std_common.i b/Lib/perl5/std_common.i
index bc25b353f..c36513912 100644
--- a/Lib/perl5/std_common.i
+++ b/Lib/perl5/std_common.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_common.i
*
* SWIG typemaps for STL - common utilities
diff --git a/Lib/perl5/std_list.i b/Lib/perl5/std_list.i
index 633e40d9a..c6bca18f6 100644
--- a/Lib/perl5/std_list.i
+++ b/Lib/perl5/std_list.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_list.i
*
* SWIG typemaps for std::list types
diff --git a/Lib/perl5/std_map.i b/Lib/perl5/std_map.i
index c35f21dc7..b19414597 100644
--- a/Lib/perl5/std_map.i
+++ b/Lib/perl5/std_map.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_map.i
*
* SWIG typemaps for std::map
diff --git a/Lib/perl5/std_pair.i b/Lib/perl5/std_pair.i
index 78142ffa6..0712ad762 100644
--- a/Lib/perl5/std_pair.i
+++ b/Lib/perl5/std_pair.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_pair.i
*
* SWIG typemaps for std::pair
diff --git a/Lib/perl5/std_vector.i b/Lib/perl5/std_vector.i
index 7c4f72919..0a61c31e0 100644
--- a/Lib/perl5/std_vector.i
+++ b/Lib/perl5/std_vector.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_vector.i
*
* SWIG typemaps for std::vector types
diff --git a/Lib/perl5/stl.i b/Lib/perl5/stl.i
index 946e4b7f0..b19eae58b 100644
--- a/Lib/perl5/stl.i
+++ b/Lib/perl5/stl.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stl.i
*
* Initial STL definition. extended as needed in each language
diff --git a/Lib/perl5/typemaps.i b/Lib/perl5/typemaps.i
index fc6d8f874..7d96f2ace 100644
--- a/Lib/perl5/typemaps.i
+++ b/Lib/perl5/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i
*
* The SWIG typemap library provides a language independent mechanism for
diff --git a/Lib/php/const.i b/Lib/php/const.i
index d2d1c75bd..afd7d02b9 100644
--- a/Lib/php/const.i
+++ b/Lib/php/const.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* const.i
*
* Typemaps for constants
diff --git a/Lib/php/director.swg b/Lib/php/director.swg
index b28f6dbd9..5c1d8d08f 100644
--- a/Lib/php/director.swg
+++ b/Lib/php/director.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* director.swg
*
* This file contains support for director classes that proxy
diff --git a/Lib/php/globalvar.i b/Lib/php/globalvar.i
index be20a96bc..3463691d5 100644
--- a/Lib/php/globalvar.i
+++ b/Lib/php/globalvar.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* globalvar.i
*
* Global variables - add the variable to PHP
diff --git a/Lib/php/php.swg b/Lib/php/php.swg
index 77985e3c5..feeb9c5df 100644
--- a/Lib/php/php.swg
+++ b/Lib/php/php.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* php.swg
*
* PHP configuration file
diff --git a/Lib/php/phpkw.swg b/Lib/php/phpkw.swg
index dab05ed39..c40421062 100644
--- a/Lib/php/phpkw.swg
+++ b/Lib/php/phpkw.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* phpkw.swg
* ----------------------------------------------------------------------------- */
diff --git a/Lib/php/phprun.swg b/Lib/php/phprun.swg
index 3aff867b4..a48a30b20 100644
--- a/Lib/php/phprun.swg
+++ b/Lib/php/phprun.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* phprun.swg
*
* PHP runtime library
diff --git a/Lib/php/std_common.i b/Lib/php/std_common.i
index a779649dd..092bf012b 100644
--- a/Lib/php/std_common.i
+++ b/Lib/php/std_common.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_common.i
*
* SWIG typemaps for STL - common utilities
diff --git a/Lib/php/std_map.i b/Lib/php/std_map.i
index 2c9e1fd9a..cfb82f44c 100644
--- a/Lib/php/std_map.i
+++ b/Lib/php/std_map.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_map.i
*
* SWIG typemaps for std::map
diff --git a/Lib/php/std_pair.i b/Lib/php/std_pair.i
index dc0604dc5..fe45ee676 100644
--- a/Lib/php/std_pair.i
+++ b/Lib/php/std_pair.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_pair.i
*
* SWIG typemaps for std::pair
diff --git a/Lib/php/std_string.i b/Lib/php/std_string.i
index eff6951b5..656765194 100644
--- a/Lib/php/std_string.i
+++ b/Lib/php/std_string.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_string.i
*
* SWIG typemaps for std::string types
diff --git a/Lib/php/std_vector.i b/Lib/php/std_vector.i
index 74991cc8c..28c99210c 100644
--- a/Lib/php/std_vector.i
+++ b/Lib/php/std_vector.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_vector.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/php/stl.i b/Lib/php/stl.i
index 66b72e073..9d2e91eee 100644
--- a/Lib/php/stl.i
+++ b/Lib/php/stl.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stl.i
*
* Initial STL definition. extended as needed in each language
diff --git a/Lib/php/typemaps.i b/Lib/php/typemaps.i
index cc2341b19..335f6d9f4 100644
--- a/Lib/php/typemaps.i
+++ b/Lib/php/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i.
*
* SWIG Typemap library for PHP.
diff --git a/Lib/pike/pike.swg b/Lib/pike/pike.swg
index e72da8fba..2ba27671e 100644
--- a/Lib/pike/pike.swg
+++ b/Lib/pike/pike.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* pike.swg
*
* Pike configuration module.
diff --git a/Lib/pike/pikerun.swg b/Lib/pike/pikerun.swg
index 875fcf4e2..451a4e092 100644
--- a/Lib/pike/pikerun.swg
+++ b/Lib/pike/pikerun.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* pikerun.swg
*
* This file contains the runtime support for Pike modules
diff --git a/Lib/pike/std_string.i b/Lib/pike/std_string.i
index ca1fad822..0694035bf 100644
--- a/Lib/pike/std_string.i
+++ b/Lib/pike/std_string.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_string.i
*
* SWIG typemaps for std::string
diff --git a/Lib/pointer.i b/Lib/pointer.i
index 16e11b7d1..8015317d7 100644
--- a/Lib/pointer.i
+++ b/Lib/pointer.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* pointer.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/python/ccomplex.i b/Lib/python/ccomplex.i
index 30f797d74..28872b985 100644
--- a/Lib/python/ccomplex.i
+++ b/Lib/python/ccomplex.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* ccomplex.i
*
* C complex typemaps
diff --git a/Lib/python/director.swg b/Lib/python/director.swg
index f3855babe..a57df7315 100644
--- a/Lib/python/director.swg
+++ b/Lib/python/director.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* director.swg
*
* This file contains support for director classes that proxy
diff --git a/Lib/python/embed15.i b/Lib/python/embed15.i
index 32808b1aa..3c419b9a3 100644
--- a/Lib/python/embed15.i
+++ b/Lib/python/embed15.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* embed15.i
*
* SWIG file embedding the Python interpreter in something else.
diff --git a/Lib/python/file.i b/Lib/python/file.i
index 294ab9178..359c34d2c 100644
--- a/Lib/python/file.i
+++ b/Lib/python/file.i
@@ -1,11 +1,7 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* file.i
*
* Typemaps for FILE*
- * From the ideas of Luigi Ballabio
* ----------------------------------------------------------------------------- */
%types(FILE *);
diff --git a/Lib/python/pycontainer.swg b/Lib/python/pycontainer.swg
index 7d7fdfc72..efca86cf1 100644
--- a/Lib/python/pycontainer.swg
+++ b/Lib/python/pycontainer.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* pycontainer.swg
*
* Python sequence <-> C++ container wrapper
diff --git a/Lib/python/pyiterators.swg b/Lib/python/pyiterators.swg
index 8719f73ce..3c39f9710 100644
--- a/Lib/python/pyiterators.swg
+++ b/Lib/python/pyiterators.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* pyiterators.swg
*
* Implement a python 'output' iterator for Python 2.2 or higher.
diff --git a/Lib/python/pyrun.swg b/Lib/python/pyrun.swg
index c0d30ee45..d46628551 100644
--- a/Lib/python/pyrun.swg
+++ b/Lib/python/pyrun.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* pyrun.swg
*
* This file contains the runtime support for Python modules
diff --git a/Lib/python/typemaps.i b/Lib/python/typemaps.i
index 1c87de61d..5d438ecab 100644
--- a/Lib/python/typemaps.i
+++ b/Lib/python/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i
*
* Pointer handling
diff --git a/Lib/ruby/director.swg b/Lib/ruby/director.swg
index 76969cadc..de6289cc5 100644
--- a/Lib/ruby/director.swg
+++ b/Lib/ruby/director.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* director.swg
*
* This file contains support for director classes that proxy
diff --git a/Lib/ruby/rubyautodoc.swg b/Lib/ruby/rubyautodoc.swg
index ade4bde1d..1e6b0d9dc 100644
--- a/Lib/ruby/rubyautodoc.swg
+++ b/Lib/ruby/rubyautodoc.swg
@@ -1,13 +1,8 @@
-/**
- * @file rubyautodoc.swg
- * @author gga
- * @date Wed May 2 16:41:59 2007
- *
- * @brief This file implements autodoc typemaps for some common
- * ruby methods.
- *
- *
- */
+/* -----------------------------------------------------------------------------
+ * rubyautodoc.swg
+ *
+ * This file implements autodoc typemaps for some common ruby methods.
+ * ----------------------------------------------------------------------------- */
%define AUTODOC(func, str)
%feature("autodoc", str) func;
diff --git a/Lib/ruby/rubycontainer.swg b/Lib/ruby/rubycontainer.swg
index 60c128456..fa4b619f9 100644
--- a/Lib/ruby/rubycontainer.swg
+++ b/Lib/ruby/rubycontainer.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* rubycontainer.swg
*
* Ruby sequence <-> C++ container wrapper
diff --git a/Lib/ruby/rubycontainer_extended.swg b/Lib/ruby/rubycontainer_extended.swg
index 81936b9da..d2a058586 100644
--- a/Lib/ruby/rubycontainer_extended.swg
+++ b/Lib/ruby/rubycontainer_extended.swg
@@ -1,17 +1,13 @@
-/**
- * @file rubycontainer_extended.swg
- * @author gga
- * @date Sat May 5 05:36:01 2007
- *
- * @brief This file contains additional functions that make containers
- * behave closer to ruby primitive types.
- * However, some of these functions place some restrictions on
- * the underlying object inside of the container and the iterator
- * (that it has to have an == comparison function, that it has to have
- * an = assignment operator, etc).
- *
- */
-
+/* -----------------------------------------------------------------------------
+ * rubycontainer_extended.swg
+ *
+ * This file contains additional functions that make containers
+ * behave closer to ruby primitive types.
+ * However, some of these functions place some restrictions on
+ * the underlying object inside of the container and the iterator
+ * (that it has to have an == comparison function, that it has to have
+ * an = assignment operator, etc).
+ * ----------------------------------------------------------------------------- */
/**
* Macro used to add extend functions that require operator== in object.
diff --git a/Lib/ruby/rubyiterators.swg b/Lib/ruby/rubyiterators.swg
index 466ae221b..aba156a2b 100644
--- a/Lib/ruby/rubyiterators.swg
+++ b/Lib/ruby/rubyiterators.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* rubyiterators.swg
*
* Implement a C++ 'output' iterator for Ruby.
diff --git a/Lib/ruby/rubyprimtypes.swg b/Lib/ruby/rubyprimtypes.swg
index 9e6c361ad..df72e97f4 100644
--- a/Lib/ruby/rubyprimtypes.swg
+++ b/Lib/ruby/rubyprimtypes.swg
@@ -1,9 +1,5 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* rubyprimtypes.swg
- *
* ----------------------------------------------------------------------------- */
/* ------------------------------------------------------------
* Primitive Types
diff --git a/Lib/ruby/rubyrun.swg b/Lib/ruby/rubyrun.swg
index 5aa43b6cf..a8afc6a10 100644
--- a/Lib/ruby/rubyrun.swg
+++ b/Lib/ruby/rubyrun.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* rubyrun.swg
*
* This file contains the runtime support for Ruby modules
diff --git a/Lib/ruby/rubystdautodoc.swg b/Lib/ruby/rubystdautodoc.swg
index ad70f7f8b..e14f65902 100644
--- a/Lib/ruby/rubystdautodoc.swg
+++ b/Lib/ruby/rubystdautodoc.swg
@@ -1,12 +1,8 @@
-/**
- * @file rubystdautodoc.swg
- * @author gga
- * @date Wed May 2 17:20:39 2007
+/* -----------------------------------------------------------------------------
+ * rubystdautodoc.swg
*
- * @brief This file contains autodocs for standard STL functions.
- *
- *
- */
+ * This file contains autodocs for standard STL functions.
+ * ----------------------------------------------------------------------------- */
//
// For STL autodocumentation
diff --git a/Lib/ruby/rubytracking.swg b/Lib/ruby/rubytracking.swg
index 959d2087e..0a36f4a05 100644
--- a/Lib/ruby/rubytracking.swg
+++ b/Lib/ruby/rubytracking.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* rubytracking.swg
*
* This file contains support for tracking mappings from
diff --git a/Lib/ruby/rubywstrings.swg b/Lib/ruby/rubywstrings.swg
index 862928c95..bb44fbc6e 100644
--- a/Lib/ruby/rubywstrings.swg
+++ b/Lib/ruby/rubywstrings.swg
@@ -1,15 +1,11 @@
-/**
- * @file rubywstrings.swg
- * @author
- * @date Fri May 4 17:49:40 2007
- *
- * @brief Currently, Ruby does not support Unicode or WChar properly, so these
- * are still treated as char arrays for now.
- * There are other libraries available that add support to this in
- * ruby including WString, FXString, etc.
- *
- *
- */
+/* -----------------------------------------------------------------------------
+ * rubywstrings.swg
+ *
+ * Currently, Ruby does not support Unicode or WChar properly, so these
+ * are still treated as char arrays for now.
+ * There are other libraries available that add support to this in
+ * ruby including WString, FXString, etc.
+ * ----------------------------------------------------------------------------- */
/* ------------------------------------------------------------
* utility methods for wchar_t strings
diff --git a/Lib/ruby/stl.i b/Lib/ruby/stl.i
index 66b72e073..9d2e91eee 100644
--- a/Lib/ruby/stl.i
+++ b/Lib/ruby/stl.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stl.i
*
* Initial STL definition. extended as needed in each language
diff --git a/Lib/ruby/typemaps.i b/Lib/ruby/typemaps.i
index 2492e2e03..c4db82161 100644
--- a/Lib/ruby/typemaps.i
+++ b/Lib/ruby/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i
*
* Pointer handling
diff --git a/Lib/std/_std_deque.i b/Lib/std/_std_deque.i
index 3d68c385f..4234789a8 100644
--- a/Lib/std/_std_deque.i
+++ b/Lib/std/_std_deque.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* _std_deque.i
*
* This file contains a generic definition of std::deque along with
diff --git a/Lib/std_except.i b/Lib/std_except.i
index af9803a62..769a68995 100644
--- a/Lib/std_except.i
+++ b/Lib/std_except.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_except.i
*
* SWIG library file with typemaps to handle and throw STD exceptions in a
diff --git a/Lib/stdint.i b/Lib/stdint.i
index 7b48ca388..14fe6195e 100644
--- a/Lib/stdint.i
+++ b/Lib/stdint.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stdint.i
*
* SWIG library file for ISO C99 types: 7.18 Integer types <stdint.h>
diff --git a/Lib/stl.i b/Lib/stl.i
index c3ade01ea..0b236afda 100644
--- a/Lib/stl.i
+++ b/Lib/stl.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stl.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/swigarch.i b/Lib/swigarch.i
index 260b60880..f5aea4678 100644
--- a/Lib/swigarch.i
+++ b/Lib/swigarch.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* swigarch.i
*
* SWIG library file for 32bit/64bit code specialization and checking.
diff --git a/Lib/swigrun.i b/Lib/swigrun.i
index 17a140968..6026a9151 100644
--- a/Lib/swigrun.i
+++ b/Lib/swigrun.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* swigrun.i
*
* Empty module (for now). Placeholder for runtime libs
diff --git a/Lib/tcl/mactclinit.c b/Lib/tcl/mactclinit.c
deleted file mode 100644
index 5dcf8e7f3..000000000
--- a/Lib/tcl/mactclinit.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
- * mactclinit.c
- * ----------------------------------------------------------------------------- */
-
-/*
- * tclMacAppInit.c --
- *
- * Provides a version of the Tcl_AppInit procedure for the example shell.
- *
- * Copyright (c) 1993-1994 Lockheed Missle & Space Company, AI Center
- * Copyright (c) 1995-1997 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * SCCS: @(#) tclMacAppInit.c 1.17 97/01/21 18:13:34
- */
-
-#include "tcl.h"
-#include "tclInt.h"
-#include "tclMacInt.h"
-
-#if defined(THINK_C)
-# include <console.h>
-#elif defined(__MWERKS__)
-# include <SIOUX.h>
-short InstallConsole _ANSI_ARGS_((short fd));
-#endif
-
-
-
-/*
- *----------------------------------------------------------------------
- *
- * MacintoshInit --
- *
- * This procedure calls initalization routines to set up a simple
- * console on a Macintosh. This is necessary as the Mac doesn't
- * have a stdout & stderr by default.
- *
- * Results:
- * Returns TCL_OK if everything went fine. If it didn't the
- * application should probably fail.
- *
- * Side effects:
- * Inits the appropiate console package.
- *
- *----------------------------------------------------------------------
- */
-
-#ifdef __cplusplus
-extern "C"
-#endif
-extern int
-MacintoshInit()
-{
-#if defined(THINK_C)
-
- /* Set options for Think C console package */
- /* The console package calls the Mac init calls */
- console_options.pause_atexit = 0;
- console_options.title = "\pTcl Interpreter";
-
-#elif defined(__MWERKS__)
-
- /* Set options for CodeWarrior SIOUX package */
- SIOUXSettings.autocloseonquit = true;
- SIOUXSettings.showstatusline = true;
- SIOUXSettings.asktosaveonclose = false;
- InstallConsole(0);
- SIOUXSetTitle("\pTcl Interpreter");
-
-#elif defined(applec)
-
- /* Init packages used by MPW SIOW package */
- InitGraf((Ptr)&qd.thePort);
- InitFonts();
- InitWindows();
- InitMenus();
- TEInit();
- InitDialogs(nil);
- InitCursor();
-
-#endif
-
- TclMacSetEventProc((TclMacConvertEventPtr) SIOUXHandleOneEvent);
-
- /* No problems with initialization */
- return TCL_OK;
-}
diff --git a/Lib/tcl/mactkinit.c b/Lib/tcl/mactkinit.c
index bfe74029c..78391d445 100644
--- a/Lib/tcl/mactkinit.c
+++ b/Lib/tcl/mactkinit.c
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* mactkinit.c
*
* This is a support file needed to build a new version of Wish.
diff --git a/Lib/tcl/std_common.i b/Lib/tcl/std_common.i
index 3a6f47042..0718facb8 100644
--- a/Lib/tcl/std_common.i
+++ b/Lib/tcl/std_common.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_common.i
*
* SWIG typemaps for STL - common utilities
diff --git a/Lib/tcl/std_pair.i b/Lib/tcl/std_pair.i
index 52e96674f..1448d6524 100644
--- a/Lib/tcl/std_pair.i
+++ b/Lib/tcl/std_pair.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_pair.i
*
* Typemaps for std::pair
diff --git a/Lib/tcl/std_vector.i b/Lib/tcl/std_vector.i
index 273214292..de99a36d0 100644
--- a/Lib/tcl/std_vector.i
+++ b/Lib/tcl/std_vector.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* std_vector.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/tcl/stl.i b/Lib/tcl/stl.i
index afd121341..40c7584ec 100644
--- a/Lib/tcl/stl.i
+++ b/Lib/tcl/stl.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* stl.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/tcl/tcl8.swg b/Lib/tcl/tcl8.swg
index c33cc7681..5da1bc07c 100644
--- a/Lib/tcl/tcl8.swg
+++ b/Lib/tcl/tcl8.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* tcl8.swg
*
* Tcl configuration module.
diff --git a/Lib/tcl/tclinterp.i b/Lib/tcl/tclinterp.i
index 48cdb6066..3b45b6d4b 100644
--- a/Lib/tcl/tclinterp.i
+++ b/Lib/tcl/tclinterp.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* tclinterp.i
*
* Tcl_Interp *interp
diff --git a/Lib/tcl/tclopers.swg b/Lib/tcl/tclopers.swg
index 26b74203d..f113ccd19 100644
--- a/Lib/tcl/tclopers.swg
+++ b/Lib/tcl/tclopers.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* tclopers.swg
*
* C++ overloaded operators.
diff --git a/Lib/tcl/tclresult.i b/Lib/tcl/tclresult.i
index ca0106432..c63b3ee19 100644
--- a/Lib/tcl/tclresult.i
+++ b/Lib/tcl/tclresult.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* tclresult.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/tcl/tclrun.swg b/Lib/tcl/tclrun.swg
index 6387fb008..eb8bd253c 100644
--- a/Lib/tcl/tclrun.swg
+++ b/Lib/tcl/tclrun.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* tclrun.swg
*
* This file contains the runtime support for Tcl modules and includes
diff --git a/Lib/tcl/tclsh.i b/Lib/tcl/tclsh.i
index 2e8ed3316..160ba8d8f 100644
--- a/Lib/tcl/tclsh.i
+++ b/Lib/tcl/tclsh.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* tclsh.i
*
* SWIG File for building new tclsh program
diff --git a/Lib/tcl/tclwstrings.swg b/Lib/tcl/tclwstrings.swg
index 2d344c20f..b3b682e30 100644
--- a/Lib/tcl/tclwstrings.swg
+++ b/Lib/tcl/tclwstrings.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* tclwstrings.wg
*
* Utility methods for wchar strings
diff --git a/Lib/tcl/typemaps.i b/Lib/tcl/typemaps.i
index 2a8f1064a..04a5c78f3 100644
--- a/Lib/tcl/typemaps.i
+++ b/Lib/tcl/typemaps.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.i
*
* SWIG typemap library for Tcl8. This file contains various sorts
diff --git a/Lib/tcl/wish.i b/Lib/tcl/wish.i
index 077ded61f..260032a81 100644
--- a/Lib/tcl/wish.i
+++ b/Lib/tcl/wish.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* wish.i
*
* SWIG File for making wish
diff --git a/Lib/typemaps/attribute.swg b/Lib/typemaps/attribute.swg
index 4bc6315b7..4dcf15e2d 100644
--- a/Lib/typemaps/attribute.swg
+++ b/Lib/typemaps/attribute.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* attribute.swg
*
* Attribute implementation
diff --git a/Lib/typemaps/carrays.swg b/Lib/typemaps/carrays.swg
index 27ca11779..cdeab36b7 100644
--- a/Lib/typemaps/carrays.swg
+++ b/Lib/typemaps/carrays.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* carrays.swg
*
* This library file contains macros that can be used to manipulate simple
diff --git a/Lib/typemaps/cdata.swg b/Lib/typemaps/cdata.swg
index cab53d31e..8597b7b0c 100644
--- a/Lib/typemaps/cdata.swg
+++ b/Lib/typemaps/cdata.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cdata.swg
*
* This library file contains macros for manipulating raw C data as strings.
diff --git a/Lib/typemaps/cmalloc.swg b/Lib/typemaps/cmalloc.swg
index 15f962930..45a6ab990 100644
--- a/Lib/typemaps/cmalloc.swg
+++ b/Lib/typemaps/cmalloc.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cmalloc.swg
*
* This library file contains macros that can be used to create objects using
diff --git a/Lib/typemaps/cpointer.swg b/Lib/typemaps/cpointer.swg
index ce1af169e..f797a6895 100644
--- a/Lib/typemaps/cpointer.swg
+++ b/Lib/typemaps/cpointer.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cpointer.swg
*
* This library file contains macros that can be used to manipulate simple
diff --git a/Lib/typemaps/cstrings.swg b/Lib/typemaps/cstrings.swg
index 9144da790..c60ef6496 100644
--- a/Lib/typemaps/cstrings.swg
+++ b/Lib/typemaps/cstrings.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* cstrings.swg
*
* This file provides typemaps and macros for dealing with various forms
diff --git a/Lib/typemaps/exception.swg b/Lib/typemaps/exception.swg
index 17a819cd7..12c4ea658 100644
--- a/Lib/typemaps/exception.swg
+++ b/Lib/typemaps/exception.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* exceptions.swg
*
* This SWIG library file provides language independent exception handling
diff --git a/Lib/typemaps/ptrtypes.swg b/Lib/typemaps/ptrtypes.swg
index 803377afe..e1bc476ed 100644
--- a/Lib/typemaps/ptrtypes.swg
+++ b/Lib/typemaps/ptrtypes.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* ptrtypes.swg
*
* Value typemaps (Type, const Type&) for "Ptr" types, such as swig
diff --git a/Lib/typemaps/swigtypemaps.swg b/Lib/typemaps/swigtypemaps.swg
index 08abab028..0e39afe4c 100644
--- a/Lib/typemaps/swigtypemaps.swg
+++ b/Lib/typemaps/swigtypemaps.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* swigtypemaps.swg
*
* Unified Typemap Library frontend
diff --git a/Lib/typemaps/typemaps.swg b/Lib/typemaps/typemaps.swg
index 6e7505765..4629e8dfa 100644
--- a/Lib/typemaps/typemaps.swg
+++ b/Lib/typemaps/typemaps.swg
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* typemaps.swg
*
* Tcl Pointer handling
diff --git a/Lib/uffi/uffi.swg b/Lib/uffi/uffi.swg
index 78bd23534..41b085998 100644
--- a/Lib/uffi/uffi.swg
+++ b/Lib/uffi/uffi.swg
@@ -27,8 +27,6 @@
typedef long size_t;
%wrapper %{
-;; $Id$
-
(eval-when (compile eval)
;;; You can define your own identifier converter if you want.
diff --git a/Lib/wchar.i b/Lib/wchar.i
index f106a3529..14de34634 100644
--- a/Lib/wchar.i
+++ b/Lib/wchar.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* wchar.i
* ----------------------------------------------------------------------------- */
diff --git a/Lib/windows.i b/Lib/windows.i
index 08ddc2b22..2c093dacc 100644
--- a/Lib/windows.i
+++ b/Lib/windows.i
@@ -1,7 +1,4 @@
/* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
* windows.i
*
* SWIG library file to support types found in windows.h as well as Microsoft