summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2010-03-06 00:03:23 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2010-03-06 00:03:23 +0000
commit1284055c524f18ae5c499ce8c65a9e3b0b0b13fd (patch)
tree1da35f308d4b81f2c7a14c923c8a6ae786ee8223
parent1eb5446e13f752c53cab60379f7587cb1fd8cc65 (diff)
downloadswig-1284055c524f18ae5c499ce8c65a9e3b0b0b13fd.tar.gz
merge revisions 11872:11876 from trunk to gsoc2008-jezabek branch - license changes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-jezabek@11901 626c5289-ae23-0410-ae9c-e8d60b6d4f22
-rw-r--r--ANNOUNCE10
-rw-r--r--COPYRIGHT63
-rw-r--r--Doc/Manual/Sections.html2
-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--LICENSE117
-rw-r--r--LICENSE-GPL674
-rw-r--r--LICENSE-UNIVERSITIES95
-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/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
-rw-r--r--Makefile.in57
-rw-r--r--README57
-rw-r--r--Source/CParse/cparse.h8
-rw-r--r--Source/CParse/cscanner.c8
-rw-r--r--Source/CParse/parser.y8
-rw-r--r--Source/CParse/templ.c8
-rw-r--r--Source/CParse/util.c8
-rw-r--r--Source/DOH/base.c12
-rw-r--r--Source/DOH/doh.h14
-rw-r--r--Source/DOH/dohint.h15
-rw-r--r--Source/DOH/file.c12
-rw-r--r--Source/DOH/fio.c12
-rw-r--r--Source/DOH/hash.c12
-rw-r--r--Source/DOH/list.c12
-rw-r--r--Source/DOH/memory.c12
-rw-r--r--Source/DOH/string.c12
-rw-r--r--Source/DOH/void.c12
-rw-r--r--Source/Include/swigwarn.h10
-rw-r--r--Source/Modules/allegrocl.cxx8
-rw-r--r--Source/Modules/allocate.cxx8
-rw-r--r--Source/Modules/browser.cxx8
-rw-r--r--Source/Modules/cffi.cxx8
-rw-r--r--Source/Modules/chicken.cxx8
-rw-r--r--Source/Modules/clisp.cxx8
-rw-r--r--Source/Modules/contract.cxx8
-rw-r--r--Source/Modules/csharp.cxx8
-rw-r--r--Source/Modules/directors.cxx8
-rw-r--r--Source/Modules/emit.cxx8
-rw-r--r--Source/Modules/guile.cxx8
-rw-r--r--Source/Modules/java.cxx8
-rw-r--r--Source/Modules/lang.cxx8
-rw-r--r--Source/Modules/lua.cxx8
-rw-r--r--Source/Modules/main.cxx8
-rw-r--r--Source/Modules/modula3.cxx8
-rw-r--r--Source/Modules/module.cxx8
-rw-r--r--Source/Modules/mzscheme.cxx8
-rw-r--r--Source/Modules/ocaml.cxx8
-rw-r--r--Source/Modules/octave.cxx8
-rw-r--r--Source/Modules/overload.cxx8
-rw-r--r--Source/Modules/perl5.cxx12
-rw-r--r--Source/Modules/php.cxx8
-rw-r--r--Source/Modules/pike.cxx8
-rw-r--r--Source/Modules/python.cxx8
-rw-r--r--Source/Modules/r.cxx8
-rw-r--r--Source/Modules/ruby.cxx8
-rw-r--r--Source/Modules/s-exp.cxx8
-rw-r--r--Source/Modules/swigmain.cxx12
-rw-r--r--Source/Modules/swigmod.h8
-rw-r--r--Source/Modules/tcl8.cxx8
-rw-r--r--Source/Modules/typepass.cxx8
-rw-r--r--Source/Modules/uffi.cxx8
-rw-r--r--Source/Modules/utils.cxx8
-rw-r--r--Source/Modules/xml.cxx8
-rw-r--r--Source/Preprocessor/cpp.c8
-rw-r--r--Source/Preprocessor/expr.c8
-rw-r--r--Source/Preprocessor/preprocessor.h8
-rw-r--r--Source/Swig/cwrap.c8
-rw-r--r--Source/Swig/deprecate.c8
-rw-r--r--Source/Swig/error.c8
-rw-r--r--Source/Swig/fragment.c8
-rw-r--r--Source/Swig/getopt.c8
-rw-r--r--Source/Swig/include.c8
-rw-r--r--Source/Swig/misc.c8
-rw-r--r--Source/Swig/naming.c8
-rw-r--r--Source/Swig/parms.c8
-rw-r--r--Source/Swig/scanner.c8
-rw-r--r--Source/Swig/stype.c8
-rw-r--r--Source/Swig/swig.h8
-rw-r--r--Source/Swig/swigfile.h8
-rw-r--r--Source/Swig/swigopt.h8
-rw-r--r--Source/Swig/swigparm.h8
-rw-r--r--Source/Swig/swigscan.h8
-rw-r--r--Source/Swig/swigtree.h8
-rw-r--r--Source/Swig/swigwrap.h8
-rw-r--r--Source/Swig/symbol.c8
-rw-r--r--Source/Swig/tree.c8
-rw-r--r--Source/Swig/typemap.c8
-rw-r--r--Source/Swig/typeobj.c8
-rw-r--r--Source/Swig/typesys.c8
-rw-r--r--Source/Swig/wrapfunc.c8
-rw-r--r--configure.in4
432 files changed, 1385 insertions, 12568 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index 9ef41142a..2595f7a55 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,10 +1,10 @@
-*** ANNOUNCE: SWIG 1.3.40 (in progress) ***
+*** ANNOUNCE: SWIG 2.0.0 (in progress) ***
http://www.swig.org
-We're pleased to announce SWIG-1.3.40, the latest installment in the
-SWIG development effort. SWIG-1.3.40 includes a number of bug fixes
+We're pleased to announce SWIG-2.0.0, the latest installment in the
+SWIG development effort. SWIG-2.0.0 includes a number of bug fixes
and enhancements.
What is SWIG?
@@ -24,11 +24,11 @@ Availability:
-------------
The release is available for download on Sourceforge at
- http://prdownloads.sourceforge.net/swig/swig-1.3.40.tar.gz
+ http://prdownloads.sourceforge.net/swig/swig-2.0.0.tar.gz
A Windows version is also available at
- http://prdownloads.sourceforge.net/swig/swigwin-1.3.40.zip
+ http://prdownloads.sourceforge.net/swig/swigwin-2.0.0.zip
Please report problems with this release to the swig-dev mailing list,
details at http://www.swig.org/mail.html.
diff --git a/COPYRIGHT b/COPYRIGHT
new file mode 100644
index 000000000..45f9d6b45
--- /dev/null
+++ b/COPYRIGHT
@@ -0,0 +1,63 @@
+SWIG Copyright and Authors
+--------------------------
+
+Copyright (c) 1995-2010 The SWIG Developers
+Copyright (c) 2005-2006 Arizona Board of Regents (University of Arizona).
+Copyright (c) 1998-2005 University of Chicago.
+Copyright (c) 1995-1998 The University of Utah and the Regents of the University of California
+
+Portions also copyrighted by:
+ Network Applied Communication Laboratory, Inc
+ Information-technology Promotion Agency, Japan
+
+Active SWIG Developers:
+ William Fulton (wsf@fultondesigns.co.uk) (SWIG core, Java, C#, Windows, Cygwin)
+ Olly Betts (olly@survex.com) (PHP)
+ Joseph Wang (joequant@gmail.com) (R)
+ Xavier Delacour (xavier.delacour@gmail.com) (Octave)
+
+Past SWIG developers and major contributors include:
+ Dave Beazley (dave-swig@dabeaz.com) (SWIG core, Python, Tcl, Perl)
+ Henning Thielemann (swig@henning-thielemann.de) (Modula3)
+ Matthias Köppe (mkoeppe@mail.math.uni-magdeburg.de) (Guile, MzScheme)
+ Luigi Ballabio (luigi.ballabio@fastwebnet.it) (STL wrapping)
+ Mikel Bancroft (mikel@franz.com) (Allegro CL)
+ Surendra Singhi (efuzzyone@netscape.net) (CLISP, CFFI)
+ Marcelo Matus (mmatus@acms.arizona.edu) (SWIG core, Python, UTL[python,perl,tcl,ruby])
+ Art Yerkes (ayerkes@speakeasy.net) (Ocaml)
+ Lyle Johnson (lyle@users.sourceforge.net) (Ruby)
+ Charlie Savage (cfis@interserv.com) (Ruby)
+ Thien-Thi Nguyen (ttn@glug.org) (build/test/misc)
+ Richard Palmer (richard@magicality.org) (PHP)
+ Sam Liddicott - Anonova Ltd (saml@liddicott.com) (PHP)
+ Tim Hockin - Sun Microsystems (thockin@sun.com) (PHP)
+ Kevin Ruland (PHP)
+ Shibukawa Yoshiki (Japanese Translation)
+ Jason Stewart (jason@openinformatics.com) (Perl5)
+ Loic Dachary (Perl5)
+ David Fletcher (Perl5)
+ Gary Holt (Perl5)
+ Masaki Fukushima (Ruby)
+ Scott Michel (scottm@cs.ucla.edu) (Java directors)
+ Tiger Feng (songyanf@cs.uchicago.edu) (SWIG core)
+ Mark Rose (mrose@stm.lbl.gov) (Directors)
+ Jonah Beckford (beckford@usermail.com) (CHICKEN)
+ Ahmon Dancy (dancy@franz.com) (Allegro CL)
+ Dirk Gerrits (Allegro CL)
+ Neil Cawse (C#)
+ Harco de Hilster (Java)
+ Alexey Dyachenko (dyachenko@fromru.com) (Tcl)
+ Bob Techentin (Tcl)
+ Martin Froehlich <MartinFroehlich@ACM.org> (Guile)
+ Marcio Luis Teixeira <marciot@holly.colostate.edu> (Guile)
+ Duncan Temple Lang (R)
+ Miklos Vajna <vmiklos@frugalware.org> (PHP directors)
+ Mark Gossage (mark@gossage.cjb.net) (Lua)
+ Gonzalo Garramuno (ggarra@advancedsl.com.ar) (Ruby, Ruby's UTL)
+ John Lenz (Guile, MzScheme updates, Chicken module, runtime system)
+
+Past contributors include:
+ James Michael DuPont, Clark McGrew, Dustin Mitchell, Ian Cooke, Catalin Dumitrescu, Baran
+ Kovuk, Oleg Tolmatcev, Tal Shalif, Lluis Padro, Chris Seatory, Igor Bely, Robin Dunn
+ (See CHANGES and CHANGES.current for a more complete list).
+
diff --git a/Doc/Manual/Sections.html b/Doc/Manual/Sections.html
index 789efc129..ab47ed8ee 100644
--- a/Doc/Manual/Sections.html
+++ b/Doc/Manual/Sections.html
@@ -6,7 +6,7 @@
<body bgcolor="#ffffff">
<H1><a name="Sections"></a>SWIG-1.3 Development Documentation</H1>
-Last update : SWIG-1.3.40 (in progress)
+Last update : SWIG-2.0.0 (in progress)
<H2>Sections</H2>
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 685b20e47..ef5314dc7 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/LICENSE b/LICENSE
index fdb73d916..d7a422fda 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,95 +1,22 @@
-SWIG is distributed under the following terms:
-
-I.
-
-Copyright (c) 1995-1998
-The University of Utah and the Regents of the University of California
-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.
-
-
-II.
-
-This software includes contributions that are Copyright (c) 1998-2005
-University of Chicago.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer. Redistributions
-in binary form must reproduce the above copyright notice, this list of
-conditions and the following disclaimer in the documentation and/or
-other materials provided with the distribution. Neither the name of
-the University of Chicago nor the names of its contributors may be
-used to endorse or promote products derived from this software without
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF CHICAGO AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF
-CHICAGO OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-III.
-
-This software includes contributions that are Copyright (c) 2005-2006
-Arizona Board of Regents (University of Arizona).
-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.
-
-THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF ARIZONA AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF
-ARIZONA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
+SWIG is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version. See the LICENSE-GPL file for
+the full terms of the GNU General Public license version 3.
+
+Portions of SWIG are also licensed under the terms of the licenses
+in the file LICENSE-UNIVERSITIES. You must observe the terms of
+these licenses, as well as the terms of the GNU General Public License,
+when you distribute SWIG.
+
+The SWIG library and examples, under the Lib and Examples top level
+directories, are distributed under the following terms:
+
+ You may copy, modify, distribute, and make derivative works based on
+ this software, in source code or object code form, without
+ restriction. If you distribute the software to others, you may do
+ so according to the terms of your choice. This software is offered as
+ is, without warranty of any kind.
+
+See the COPYRIGHT file for a list of contributors to SWIG and their
+copyright notices.
diff --git a/LICENSE-GPL b/LICENSE-GPL
new file mode 100644
index 000000000..94a9ed024
--- /dev/null
+++ b/LICENSE-GPL
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/LICENSE-UNIVERSITIES b/LICENSE-UNIVERSITIES
new file mode 100644
index 000000000..fdb73d916
--- /dev/null
+++ b/LICENSE-UNIVERSITIES
@@ -0,0 +1,95 @@
+SWIG is distributed under the following terms:
+
+I.
+
+Copyright (c) 1995-1998
+The University of Utah and the Regents of the University of California
+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.
+
+
+II.
+
+This software includes contributions that are Copyright (c) 1998-2005
+University of Chicago.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer. Redistributions
+in binary form must reproduce the above copyright notice, this list of
+conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution. Neither the name of
+the University of Chicago nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF CHICAGO AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF
+CHICAGO OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+III.
+
+This software includes contributions that are Copyright (c) 2005-2006
+Arizona Board of Regents (University of Arizona).
+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.
+
+THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF ARIZONA AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF
+ARIZONA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
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 67601f737..41e8f86ce 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 3b09861a2..a30b6fa70 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
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 d3a4a5541..673cced89 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
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 00b7877e1..bc153d0ff 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 32e1b1617..4c9aa5144 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 6ddd403d0..08096c98b 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/globalvar.i b/Lib/php/globalvar.i
index df8cfade7..34bd5f994 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 087525be4..99181472d 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 3d1a62511..e7d4f2fda 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
*
* The 'keywords' in PHP are global, ie, the following names are fine
diff --git a/Lib/php/phprun.swg b/Lib/php/phprun.swg
index 5196b95b4..22f23f729 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 c6721806b..ede5fbe30 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 08a7cdac9..22c953bf5 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 b54181618..4cfc94f74 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
*
* SWIG typemaps for std::vector types
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 7af301d0d..7bb8c9fa3 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 ba9144539..82309dbda 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 38632e1ab..68f5e4b48 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 9a6371ad9..60c086f5b 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 919695ec2..c93094aeb 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 360e399ce..09be64aee 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 c2d577995..aff35dcf1 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 24d861d5a..ccc997a71 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 026f373d6..c30523c0d 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 d913f00cc..3c8dd24b7 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 7c9e04a8b..8bee672cc 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 32b3f5a77..5baf7904c 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
diff --git a/Makefile.in b/Makefile.in
index e2b62d6a7..282de2746 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -188,51 +188,6 @@ java.actionexample:
(cd Examples/$(LANGUAGE)/java && $(MAKE) -s $(chk-set-env) $(ACTION)) \
fi; \
-gifplot-library:
- @echo $(ACTION)ing Examples/GIFPlot/Lib
- @cd Examples/GIFPlot/Lib && $(MAKE) -k -s $(ACTION)
-
-check-gifplot: \
- check-tcl-gifplot \
- check-perl5-gifplot \
- check-python-gifplot \
- check-java-gifplot \
- check-guile-gifplot \
- check-mzscheme-gifplot \
- check-ruby-gifplot \
- check-ocaml-gifplot \
- check-octave-gifplot \
- check-php-gifplot \
- check-pike-gifplot \
- check-chicken-gifplot \
- check-com-gifplot \
-# check-lua-gifplot \
-# check-csharp-gifplot \
-# check-modula3-gifplot
-
-check-%-gifplot: gifplot-library
- @if test -z "$(skip-$*)"; then \
- echo $* unknown; \
- exit 1; \
- fi
- @passed=true; \
- up=`$(srcdir)/Tools/capitalize $*`; \
- dir="Examples/GIFPlot/$$up"; \
- if $(skip-$*); then \
- echo skipping $$up $(ACTION); \
- elif [ ! -f $$dir/check.list ]; then \
- echo skipping $$up $(ACTION) "(no $$dir/check.list)"; \
- else \
- all=`sed '/^#/d' $$dir/check.list`; \
- for a in $$all; do \
- echo $(ACTION)ing $$dir/$$a; \
- (cd $$dir/$$a && \
- $(MAKE) -k -s $(chk-set-env) $(ACTION)) \
- || passed=false; \
- done; \
- fi; \
- test $$passed = true
-
# Checks testcases in the test-suite excluding those which are known to be broken
check-test-suite: \
check-tcl-test-suite \
@@ -283,7 +238,7 @@ partialcheck-test-suite:
partialcheck-%-test-suite:
@$(MAKE) -k -s check-$*-test-suite ACTION=partialcheck NOSKIP=1
-check: check-aliveness check-ccache check-examples check-gifplot check-test-suite
+check: check-aliveness check-ccache check-examples check-test-suite
# Run known-to-be-broken as well as not broken testcases in the test-suite
all-test-suite: \
@@ -345,7 +300,7 @@ broken-%-test-suite:
# CLEAN
#####################################################################
-clean: clean-objects clean-libfiles clean-examples clean-gifplot clean-test-suite clean-docs
+clean: clean-objects clean-libfiles clean-examples clean-test-suite clean-docs
clean-objects: clean-source clean-ccache
@@ -360,9 +315,6 @@ clean-libfiles:
clean-examples:
@$(MAKE) -k -s check-examples ACTION=clean
-clean-gifplot:
- @$(MAKE) -k -s check-gifplot ACTION=clean
-
clean-test-suite:
@$(MAKE) -k -s check-test-suite ACTION=clean NOSKIP=1
@@ -372,9 +324,6 @@ clean-%-examples:
clean-%-test-suite:
@$(MAKE) -k -s check-$*-test-suite ACTION=clean NOSKIP=1
-clean-%-gifplot:
- @$(MAKE) -k -s check-$*-gifplot ACTION=clean
-
clean-ccache:
test -z "$(ENABLE_CCACHE)" || (cd $(CCACHE) && $(MAKE) -s clean)
@@ -396,7 +345,7 @@ maintainer-clean: clean-libfiles
DISTCLEAN-DEAD = config.status config.log config.cache swig.spec Makefile mkmf.log libtool
-distclean: distclean-objects clean-examples clean-gifplot distclean-test-suite clean-docs distclean-dead distclean-ccache
+distclean: distclean-objects clean-examples distclean-test-suite clean-docs distclean-dead distclean-ccache
distclean-objects: distclean-source
diff --git a/README b/README
index 3df9e506a..e7b79d2d2 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
SWIG (Simplified Wrapper and Interface Generator)
-Version: 1.3.40 (in progress)
+Version: 2.0.0 (in progress)
Tagline: SWIG is a compiler that integrates C and C++ with languages
including Perl, Python, Tcl, Ruby, PHP, Java, Ocaml, Lua,
@@ -13,61 +13,6 @@ the listed languages, or to extend C/C++ programs with a scripting
language.
This distribution represents the latest development release of SWIG.
-The guilty parties working on this are:
-
-Active Developers:
- William Fulton (wsf@fultondesigns.co.uk) (SWIG core, Java, C#, Windows, Cygwin)
- Olly Betts (olly@survex.com) (PHP)
- John Lenz (Guile, MzScheme updates, Chicken module, runtime system)
- Mark Gossage (mark@gossage.cjb.net) (Lua)
- Joseph Wang (joe@gnacademy.org) (R)
- Gonzalo Garramuno (ggarra@advancedsl.com.ar) (Ruby, Ruby's UTL)
- Xavier Delacour (xavier.delacour@gmail.com) (Octave)
-
-Major contributors include:
- Dave Beazley (dave-swig@dabeaz.com) (SWIG core, Python, Tcl, Perl)
- Henning Thielemann (swig@henning-thielemann.de) (Modula3)
- Matthias Köppe (mkoeppe@mail.math.uni-magdeburg.de) (Guile, MzScheme)
- Luigi Ballabio (luigi.ballabio@fastwebnet.it) (STL wrapping)
- Mikel Bancroft (mikel@franz.com) (Allegro CL)
- Surendra Singhi (efuzzyone@netscape.net) (CLISP, CFFI)
- Marcelo Matus (mmatus@acms.arizona.edu) (SWIG core, Python, UTL[python,perl,tcl,ruby])
- Art Yerkes (ayerkes@speakeasy.net) (Ocaml)
- Lyle Johnson (lyle@users.sourceforge.net) (Ruby)
- Charlie Savage (cfis@interserv.com) (Ruby)
- Thien-Thi Nguyen (ttn@glug.org) (build/test/misc)
- Richard Palmer (richard@magicality.org) (PHP)
- Sam Liddicott - Anonova Ltd (saml@liddicott.com) (PHP)
- Tim Hockin - Sun Microsystems (thockin@sun.com) (PHP)
- Kevin Ruland (PHP)
- Shibukawa Yoshiki (Japanese Translation)
- Jason Stewart (jason@openinformatics.com) (Perl5)
- Loic Dachary (Perl5)
- David Fletcher (Perl5)
- Gary Holt (Perl5)
- Masaki Fukushima (Ruby)
- Scott Michel (scottm@cs.ucla.edu) (Java directors)
- Tiger Feng (songyanf@cs.uchicago.edu) (SWIG core)
- Mark Rose (mrose@stm.lbl.gov) (Directors)
- Jonah Beckford (beckford@usermail.com) (CHICKEN)
- Ahmon Dancy (dancy@franz.com) (Allegro CL)
- Dirk Gerrits (Allegro CL)
- Neil Cawse (C#)
- Harco de Hilster (Java)
- Alexey Dyachenko (dyachenko@fromru.com) (Tcl)
- Bob Techentin (Tcl)
- Martin Froehlich <MartinFroehlich@ACM.org> (Guile)
- Marcio Luis Teixeira <marciot@holly.colostate.edu> (Guile)
- Duncan Temple Lang (R)
-
-Past contributors include:
- James Michael DuPont, Clark McGrew, Dustin Mitchell, Ian Cooke, Catalin Dumitrescu, Baran
- Kovuk, Oleg Tolmatcev, Tal Shalif, Lluis Padro, Chris Seatory, Igor Bely, Robin Dunn
- (See CHANGES for a more complete list).
-
-Portions also copyrighted by companies/corporations;
- Network Applied Communication Laboratory, Inc
- Information-technology Promotion Agency, Japan
Up-to-date SWIG related information can be found at
diff --git a/Source/CParse/cparse.h b/Source/CParse/cparse.h
index 9be41c60e..c17577d8c 100644
--- a/Source/CParse/cparse.h
+++ b/Source/CParse/cparse.h
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* cparse.h
*
diff --git a/Source/CParse/cscanner.c b/Source/CParse/cscanner.c
index 8734c7d0e..36c5f7d6c 100644
--- a/Source/CParse/cscanner.c
+++ b/Source/CParse/cscanner.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* scanner.c
*
diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
index 0babfbbb8..b365cfc08 100644
--- a/Source/CParse/parser.y
+++ b/Source/CParse/parser.y
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* parser.y
*
diff --git a/Source/CParse/templ.c b/Source/CParse/templ.c
index 14886605f..d3b9b3d99 100644
--- a/Source/CParse/templ.c
+++ b/Source/CParse/templ.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* templ.c
*
diff --git a/Source/CParse/util.c b/Source/CParse/util.c
index efae41051..fa934ffc0 100644
--- a/Source/CParse/util.c
+++ b/Source/CParse/util.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* util.c
*
diff --git a/Source/DOH/base.c b/Source/DOH/base.c
index 15827f328..245004f87 100644
--- a/Source/DOH/base.c
+++ b/Source/DOH/base.c
@@ -1,13 +1,15 @@
/* -----------------------------------------------------------------------------
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
+ *
* base.c
*
* This file contains the function entry points for dispatching methods on
* DOH objects. A number of small utility functions are also included.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- *
- * Copyright (C) 1999-2000. The University of Chicago
- * See the file LICENSE for information on usage and redistribution.
* ----------------------------------------------------------------------------- */
char cvsroot_base_c[] = "$Id$";
diff --git a/Source/DOH/doh.h b/Source/DOH/doh.h
index 766e12a34..1ed196058 100644
--- a/Source/DOH/doh.h
+++ b/Source/DOH/doh.h
@@ -1,14 +1,14 @@
/* -----------------------------------------------------------------------------
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
+ *
* doh.h
*
* This file describes of the externally visible functions in DOH.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- *
- * Copyright (C) 1999-2000. The University of Chicago
- * See the file LICENSE for information on usage and redistribution.
- *
- * $Id$
* ----------------------------------------------------------------------------- */
#ifndef _DOH_H
diff --git a/Source/DOH/dohint.h b/Source/DOH/dohint.h
index 1fc5eb7c9..661bed075 100644
--- a/Source/DOH/dohint.h
+++ b/Source/DOH/dohint.h
@@ -1,15 +1,14 @@
-
/* -----------------------------------------------------------------------------
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
+ *
* dohint.h
*
* This file describes internally managed objects.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- *
- * Copyright (C) 1999-2000. The University of Chicago
- * See the file LICENSE for information on usage and redistribution.
- *
- * $Id$
* ----------------------------------------------------------------------------- */
#ifndef _DOHINT_H
diff --git a/Source/DOH/file.c b/Source/DOH/file.c
index 65c2336a4..a9ee332bf 100644
--- a/Source/DOH/file.c
+++ b/Source/DOH/file.c
@@ -1,13 +1,15 @@
/* -----------------------------------------------------------------------------
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
+ *
* file.c
*
* This file implements a file-like object that can be built around an
* ordinary FILE * or integer file descriptor.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- *
- * Copyright (C) 1999-2000. The University of Chicago
- * See the file LICENSE for information on usage and redistribution.
* ----------------------------------------------------------------------------- */
char cvsroot_file_c[] = "$Id$";
diff --git a/Source/DOH/fio.c b/Source/DOH/fio.c
index f544cee64..2ef605c32 100644
--- a/Source/DOH/fio.c
+++ b/Source/DOH/fio.c
@@ -1,13 +1,15 @@
/* -----------------------------------------------------------------------------
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
+ *
* fio.c
*
* This file implements a number of standard I/O operations included
* formatted output, readline, and splitting.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- *
- * Copyright (C) 1999-2000. The University of Chicago
- * See the file LICENSE for information on usage and redistribution.
* ----------------------------------------------------------------------------- */
char cvsroot_fio_c[] = "$Id$";
diff --git a/Source/DOH/hash.c b/Source/DOH/hash.c
index 045de8b5b..87f8e3c40 100644
--- a/Source/DOH/hash.c
+++ b/Source/DOH/hash.c
@@ -1,12 +1,14 @@
/* -----------------------------------------------------------------------------
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
+ *
* hash.c
*
* Implements a simple hash table object.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- *
- * Copyright (C) 1999-2000. The University of Chicago
- * See the file LICENSE for information on usage and redistribution.
* ----------------------------------------------------------------------------- */
char cvsroot_hash_c[] = "$Id$";
diff --git a/Source/DOH/list.c b/Source/DOH/list.c
index 7a1786299..a08cadb5a 100644
--- a/Source/DOH/list.c
+++ b/Source/DOH/list.c
@@ -1,12 +1,14 @@
/* -----------------------------------------------------------------------------
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
+ *
* list.c
*
* Implements a simple list object.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- *
- * Copyright (C) 1999-2000. The University of Chicago
- * See the file LICENSE for information on usage and redistribution.
* ----------------------------------------------------------------------------- */
char cvsroot_list_c[] = "$Id$";
diff --git a/Source/DOH/memory.c b/Source/DOH/memory.c
index 1c6063ef3..fcacd6170 100644
--- a/Source/DOH/memory.c
+++ b/Source/DOH/memory.c
@@ -1,13 +1,15 @@
/* -----------------------------------------------------------------------------
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
+ *
* memory.c
*
* This file implements all of DOH's memory management including allocation
* of objects and checking of objects.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- *
- * Copyright (C) 1999-2000. The University of Chicago
- * See the file LICENSE for information on usage and redistribution.
* ----------------------------------------------------------------------------- */
char cvsroot_memory_c[] = "$Id$";
diff --git a/Source/DOH/string.c b/Source/DOH/string.c
index 141cd58e8..bd36c4094 100644
--- a/Source/DOH/string.c
+++ b/Source/DOH/string.c
@@ -1,13 +1,15 @@
/* -----------------------------------------------------------------------------
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
+ *
* string.c
*
* Implements a string object that supports both sequence operations and
* file semantics.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- *
- * Copyright (C) 1999-2000. The University of Chicago
- * See the file LICENSE for information on usage and redistribution.
* ----------------------------------------------------------------------------- */
char cvsroot_string_c[] = "$Id$";
diff --git a/Source/DOH/void.c b/Source/DOH/void.c
index 0be01561a..2d684b9cd 100644
--- a/Source/DOH/void.c
+++ b/Source/DOH/void.c
@@ -1,13 +1,15 @@
/* -----------------------------------------------------------------------------
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
+ *
* void.c
*
* Implements a "void" object that is really just a DOH container around
* an arbitrary C object represented as a void *.
- *
- * Author(s) : David Beazley (beazley@cs.uchicago.edu)
- *
- * Copyright (C) 1999-2000. The University of Chicago
- * See the file LICENSE for information on usage and redistribution.
* ----------------------------------------------------------------------------- */
char cvsroot_void_c[] = "$Id$";
diff --git a/Source/Include/swigwarn.h b/Source/Include/swigwarn.h
index 41b31d0ea..750bf5b35 100644
--- a/Source/Include/swigwarn.h
+++ b/Source/Include/swigwarn.h
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* swigwarn.h
*
@@ -16,8 +20,6 @@
* numbers in this file.
* ----------------------------------------------------------------------------- */
-/* $Id$ */
-
#ifndef SWIGWARN_H_
#define SWIGWARN_H_
diff --git a/Source/Modules/allegrocl.cxx b/Source/Modules/allegrocl.cxx
index 1eb12630c..034799567 100644
--- a/Source/Modules/allegrocl.cxx
+++ b/Source/Modules/allegrocl.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* allegrocl.cxx
*
diff --git a/Source/Modules/allocate.cxx b/Source/Modules/allocate.cxx
index b1eb2cb36..06f0f8ba2 100644
--- a/Source/Modules/allocate.cxx
+++ b/Source/Modules/allocate.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* allocate.cxx
*
diff --git a/Source/Modules/browser.cxx b/Source/Modules/browser.cxx
index b1bc7349c..592e12783 100644
--- a/Source/Modules/browser.cxx
+++ b/Source/Modules/browser.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* browser.cxx
*
diff --git a/Source/Modules/cffi.cxx b/Source/Modules/cffi.cxx
index 0aa933c56..c8c431e47 100644
--- a/Source/Modules/cffi.cxx
+++ b/Source/Modules/cffi.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* cffi.cxx
*
diff --git a/Source/Modules/chicken.cxx b/Source/Modules/chicken.cxx
index 12ef4b454..1d9e9c620 100644
--- a/Source/Modules/chicken.cxx
+++ b/Source/Modules/chicken.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* chicken.cxx
*
diff --git a/Source/Modules/clisp.cxx b/Source/Modules/clisp.cxx
index fa73b3a0b..95ee66bc9 100644
--- a/Source/Modules/clisp.cxx
+++ b/Source/Modules/clisp.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* clisp.cxx
*
diff --git a/Source/Modules/contract.cxx b/Source/Modules/contract.cxx
index 518dc2997..7a8543928 100644
--- a/Source/Modules/contract.cxx
+++ b/Source/Modules/contract.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* contract.cxx
*
diff --git a/Source/Modules/csharp.cxx b/Source/Modules/csharp.cxx
index ad6830ec6..17aea0242 100644
--- a/Source/Modules/csharp.cxx
+++ b/Source/Modules/csharp.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* csharp.cxx
*
diff --git a/Source/Modules/directors.cxx b/Source/Modules/directors.cxx
index 158b53502..6064e1758 100644
--- a/Source/Modules/directors.cxx
+++ b/Source/Modules/directors.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* directors.cxx
*
diff --git a/Source/Modules/emit.cxx b/Source/Modules/emit.cxx
index a4cf8cebc..fde3b2457 100644
--- a/Source/Modules/emit.cxx
+++ b/Source/Modules/emit.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* emit.cxx
*
diff --git a/Source/Modules/guile.cxx b/Source/Modules/guile.cxx
index 0c72de8d0..05ceced22 100644
--- a/Source/Modules/guile.cxx
+++ b/Source/Modules/guile.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* guile.cxx
*
diff --git a/Source/Modules/java.cxx b/Source/Modules/java.cxx
index 50ef506ed..3cff85c9c 100644
--- a/Source/Modules/java.cxx
+++ b/Source/Modules/java.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* java.cxx
*
diff --git a/Source/Modules/lang.cxx b/Source/Modules/lang.cxx
index 38658ce9c..479615908 100644
--- a/Source/Modules/lang.cxx
+++ b/Source/Modules/lang.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* lang.cxx
*
diff --git a/Source/Modules/lua.cxx b/Source/Modules/lua.cxx
index 78cd7ce96..4640d9ed7 100644
--- a/Source/Modules/lua.cxx
+++ b/Source/Modules/lua.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* lua.cxx
*
diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx
index c824db6f9..2437b35c7 100644
--- a/Source/Modules/main.cxx
+++ b/Source/Modules/main.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* main.cxx
*
diff --git a/Source/Modules/modula3.cxx b/Source/Modules/modula3.cxx
index b3568c0bf..e650edcb2 100644
--- a/Source/Modules/modula3.cxx
+++ b/Source/Modules/modula3.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* modula3.cxx
*
diff --git a/Source/Modules/module.cxx b/Source/Modules/module.cxx
index 6a0d6bbb9..f4ab560dd 100644
--- a/Source/Modules/module.cxx
+++ b/Source/Modules/module.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* module.cxx
*
diff --git a/Source/Modules/mzscheme.cxx b/Source/Modules/mzscheme.cxx
index 28dd8ecd2..d17ccd33c 100644
--- a/Source/Modules/mzscheme.cxx
+++ b/Source/Modules/mzscheme.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* mzscheme.cxx
*
diff --git a/Source/Modules/ocaml.cxx b/Source/Modules/ocaml.cxx
index 8a797759c..50dfb6e06 100644
--- a/Source/Modules/ocaml.cxx
+++ b/Source/Modules/ocaml.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* ocaml.cxx
*
diff --git a/Source/Modules/octave.cxx b/Source/Modules/octave.cxx
index 55ffe8cbb..0cd5d9133 100644
--- a/Source/Modules/octave.cxx
+++ b/Source/Modules/octave.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* octave.cxx
*
diff --git a/Source/Modules/overload.cxx b/Source/Modules/overload.cxx
index 511e55004..57d7fac90 100644
--- a/Source/Modules/overload.cxx
+++ b/Source/Modules/overload.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* overload.cxx
*
diff --git a/Source/Modules/perl5.cxx b/Source/Modules/perl5.cxx
index eace179a7..d0c019195 100644
--- a/Source/Modules/perl5.cxx
+++ b/Source/Modules/perl5.cxx
@@ -1,10 +1,10 @@
-/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=2:tabstop=8:smarttab:
- */
-
/* ----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* perl5.cxx
*
diff --git a/Source/Modules/php.cxx b/Source/Modules/php.cxx
index ee69c1864..9f91f12d4 100644
--- a/Source/Modules/php.cxx
+++ b/Source/Modules/php.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* php.cxx
*
diff --git a/Source/Modules/pike.cxx b/Source/Modules/pike.cxx
index 98f63056c..e59248e95 100644
--- a/Source/Modules/pike.cxx
+++ b/Source/Modules/pike.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* pike.cxx
*
diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx
index 73f280e6b..b3de6b8bb 100644
--- a/Source/Modules/python.cxx
+++ b/Source/Modules/python.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* python.cxx
*
diff --git a/Source/Modules/r.cxx b/Source/Modules/r.cxx
index 8e9aa557d..f1fdff662 100644
--- a/Source/Modules/r.cxx
+++ b/Source/Modules/r.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* r.cxx
*
diff --git a/Source/Modules/ruby.cxx b/Source/Modules/ruby.cxx
index 8d5ab4fae..0240fb0fc 100644
--- a/Source/Modules/ruby.cxx
+++ b/Source/Modules/ruby.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* ruby.cxx
*
diff --git a/Source/Modules/s-exp.cxx b/Source/Modules/s-exp.cxx
index 90791ec70..62b93f7c7 100644
--- a/Source/Modules/s-exp.cxx
+++ b/Source/Modules/s-exp.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* s-exp.cxx
*
diff --git a/Source/Modules/swigmain.cxx b/Source/Modules/swigmain.cxx
index 4800201ca..0de66d6c4 100644
--- a/Source/Modules/swigmain.cxx
+++ b/Source/Modules/swigmain.cxx
@@ -1,11 +1,15 @@
/* -----------------------------------------------------------------------------
- * 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.
- *
- * Simplified Wrapper and Interface Generator (SWIG)
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* swigmain.cxx
*
+ * Simplified Wrapper and Interface Generator (SWIG)
+ *
* This file is the main entry point to SWIG. It collects the command
* line options, registers built-in language modules, and instantiates
* a module for code generation. If adding new language modules
diff --git a/Source/Modules/swigmod.h b/Source/Modules/swigmod.h
index 8dec8d0af..075a209d2 100644
--- a/Source/Modules/swigmod.h
+++ b/Source/Modules/swigmod.h
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* swigmod.h
*
diff --git a/Source/Modules/tcl8.cxx b/Source/Modules/tcl8.cxx
index 015ac5e45..efbe28c50 100644
--- a/Source/Modules/tcl8.cxx
+++ b/Source/Modules/tcl8.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* tcl8.cxx
*
diff --git a/Source/Modules/typepass.cxx b/Source/Modules/typepass.cxx
index 9b42bc1a3..8d4ddda11 100644
--- a/Source/Modules/typepass.cxx
+++ b/Source/Modules/typepass.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* typepass.cxx
*
diff --git a/Source/Modules/uffi.cxx b/Source/Modules/uffi.cxx
index d3f8401f0..f793b5643 100644
--- a/Source/Modules/uffi.cxx
+++ b/Source/Modules/uffi.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* uffi.cxx
*
diff --git a/Source/Modules/utils.cxx b/Source/Modules/utils.cxx
index bf8211903..3fe7a2709 100644
--- a/Source/Modules/utils.cxx
+++ b/Source/Modules/utils.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* utils.cxx
*
diff --git a/Source/Modules/xml.cxx b/Source/Modules/xml.cxx
index 2edd01cf0..bcfac1acc 100644
--- a/Source/Modules/xml.cxx
+++ b/Source/Modules/xml.cxx
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* xml.cxx
*
diff --git a/Source/Preprocessor/cpp.c b/Source/Preprocessor/cpp.c
index 81646171a..bcb1061c8 100644
--- a/Source/Preprocessor/cpp.c
+++ b/Source/Preprocessor/cpp.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* cpp.c
*
diff --git a/Source/Preprocessor/expr.c b/Source/Preprocessor/expr.c
index 4da24a774..3e3f39480 100644
--- a/Source/Preprocessor/expr.c
+++ b/Source/Preprocessor/expr.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* expr.c
*
diff --git a/Source/Preprocessor/preprocessor.h b/Source/Preprocessor/preprocessor.h
index 3579eede2..8f98dae15 100644
--- a/Source/Preprocessor/preprocessor.h
+++ b/Source/Preprocessor/preprocessor.h
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* preprocessor.h
*
diff --git a/Source/Swig/cwrap.c b/Source/Swig/cwrap.c
index 7c6837a2b..208842121 100644
--- a/Source/Swig/cwrap.c
+++ b/Source/Swig/cwrap.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* cwrap.c
*
diff --git a/Source/Swig/deprecate.c b/Source/Swig/deprecate.c
index 475d2c6cf..f25b9a650 100644
--- a/Source/Swig/deprecate.c
+++ b/Source/Swig/deprecate.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* deprecate.c
*
diff --git a/Source/Swig/error.c b/Source/Swig/error.c
index 156fe06a7..80eede4e3 100644
--- a/Source/Swig/error.c
+++ b/Source/Swig/error.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* error.c
*
diff --git a/Source/Swig/fragment.c b/Source/Swig/fragment.c
index 510a01875..896461b30 100644
--- a/Source/Swig/fragment.c
+++ b/Source/Swig/fragment.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* fragment.c
*
diff --git a/Source/Swig/getopt.c b/Source/Swig/getopt.c
index cbd051d9f..f6f196bfd 100644
--- a/Source/Swig/getopt.c
+++ b/Source/Swig/getopt.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* getopt.c
*
diff --git a/Source/Swig/include.c b/Source/Swig/include.c
index f42eb5d45..710a7ad71 100644
--- a/Source/Swig/include.c
+++ b/Source/Swig/include.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* include.c
*
diff --git a/Source/Swig/misc.c b/Source/Swig/misc.c
index 050e5357a..3a78fe7ab 100644
--- a/Source/Swig/misc.c
+++ b/Source/Swig/misc.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* misc.c
*
diff --git a/Source/Swig/naming.c b/Source/Swig/naming.c
index 013ce5929..9af0354e2 100644
--- a/Source/Swig/naming.c
+++ b/Source/Swig/naming.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* naming.c
*
diff --git a/Source/Swig/parms.c b/Source/Swig/parms.c
index 9b58f5fcb..cb8176377 100644
--- a/Source/Swig/parms.c
+++ b/Source/Swig/parms.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* parms.c
*
diff --git a/Source/Swig/scanner.c b/Source/Swig/scanner.c
index 53f1ad4a0..72984b27e 100644
--- a/Source/Swig/scanner.c
+++ b/Source/Swig/scanner.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* scanner.c
*
diff --git a/Source/Swig/stype.c b/Source/Swig/stype.c
index 8a7700bec..023148f8d 100644
--- a/Source/Swig/stype.c
+++ b/Source/Swig/stype.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* stype.c
*
diff --git a/Source/Swig/swig.h b/Source/Swig/swig.h
index d61d5d8f4..f274394d1 100644
--- a/Source/Swig/swig.h
+++ b/Source/Swig/swig.h
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* swig.h
*
diff --git a/Source/Swig/swigfile.h b/Source/Swig/swigfile.h
index 92c7945e6..632e821e2 100644
--- a/Source/Swig/swigfile.h
+++ b/Source/Swig/swigfile.h
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* swigfile.h
*
diff --git a/Source/Swig/swigopt.h b/Source/Swig/swigopt.h
index 11eb5ba99..586f8bbc4 100644
--- a/Source/Swig/swigopt.h
+++ b/Source/Swig/swigopt.h
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* swigopt.h
*
diff --git a/Source/Swig/swigparm.h b/Source/Swig/swigparm.h
index 49ae7992e..3e6269eae 100644
--- a/Source/Swig/swigparm.h
+++ b/Source/Swig/swigparm.h
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* swigparm.h
*
diff --git a/Source/Swig/swigscan.h b/Source/Swig/swigscan.h
index 3403098df..faec4fe48 100644
--- a/Source/Swig/swigscan.h
+++ b/Source/Swig/swigscan.h
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* swigscan.h
*
diff --git a/Source/Swig/swigtree.h b/Source/Swig/swigtree.h
index 5b43006a9..6799398c9 100644
--- a/Source/Swig/swigtree.h
+++ b/Source/Swig/swigtree.h
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* swigtree.h
*
diff --git a/Source/Swig/swigwrap.h b/Source/Swig/swigwrap.h
index 0dcf88059..b1f596f72 100644
--- a/Source/Swig/swigwrap.h
+++ b/Source/Swig/swigwrap.h
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* swigwrap.h
*
diff --git a/Source/Swig/symbol.c b/Source/Swig/symbol.c
index 7854a1b9e..0298a5cc3 100644
--- a/Source/Swig/symbol.c
+++ b/Source/Swig/symbol.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* symbol.c
*
diff --git a/Source/Swig/tree.c b/Source/Swig/tree.c
index 14d231afa..c80c61081 100644
--- a/Source/Swig/tree.c
+++ b/Source/Swig/tree.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* tree.c
*
diff --git a/Source/Swig/typemap.c b/Source/Swig/typemap.c
index 401a99801..a44ecdf6d 100644
--- a/Source/Swig/typemap.c
+++ b/Source/Swig/typemap.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* typemap.c
*
diff --git a/Source/Swig/typeobj.c b/Source/Swig/typeobj.c
index 8ff31bc0b..cafecb9a6 100644
--- a/Source/Swig/typeobj.c
+++ b/Source/Swig/typeobj.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* typeobj.c
*
diff --git a/Source/Swig/typesys.c b/Source/Swig/typesys.c
index 2562e12f8..3eb21b57b 100644
--- a/Source/Swig/typesys.c
+++ b/Source/Swig/typesys.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* typesys.c
*
diff --git a/Source/Swig/wrapfunc.c b/Source/Swig/wrapfunc.c
index 11518bfc2..2c9f7c86a 100644
--- a/Source/Swig/wrapfunc.c
+++ b/Source/Swig/wrapfunc.c
@@ -1,6 +1,10 @@
/* -----------------------------------------------------------------------------
- * 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.
+ * This file is part of SWIG, which is licensed as a whole under version 3
+ * (or any later version) of the GNU General Public License. Some additional
+ * terms also apply to certain portions of SWIG. The full details of the SWIG
+ * license and copyrights can be found in the LICENSE and COPYRIGHT files
+ * included with the SWIG source code as distributed by the SWIG developers
+ * and at http://www.swig.org/legal.html.
*
* wrapfunc.c
*
diff --git a/configure.in b/configure.in
index d4833ec4a..d3edb0908 100644
--- a/configure.in
+++ b/configure.in
@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
dnl The macros which aren't shipped with the autotools are stored in the
dnl Tools/config directory in .m4 files.
-AC_INIT([swig],[1.3.40],[http://www.swig.org])
+AC_INIT([swig],[2.0.0],[http://www.swig.org])
AC_PREREQ(2.58)
AC_CONFIG_SRCDIR([Source/Swig/swig.h])
AC_CONFIG_AUX_DIR([Tools/config])
@@ -2327,8 +2327,6 @@ AC_CONFIG_FILES([ \
Examples/Makefile \
Examples/guile/Makefile \
Examples/xml/Makefile \
- Examples/GIFPlot/Makefile \
- Examples/GIFPlot/Lib/Makefile \
Examples/test-suite/chicken/Makefile \
Examples/test-suite/csharp/Makefile \
Examples/test-suite/guile/Makefile \