Index: OpenGeometry20/Makefile diff -c OpenGeometry20/Makefile:1.1.1.1 OpenGeometry20/Makefile:1.2 *** OpenGeometry20/Makefile:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/Makefile Sat Jun 16 23:53:54 2007 *************** *** 8,19 **** SHELL=/bin/sh default: ! rm -f x O/try.o ! make x x: xstatic all: x clean: ! rm -f x O/try.o try.log *~ reallyclean: make clean rm -f $(O) O/libog.so --- 8,19 ---- SHELL=/bin/sh default: ! $(MAKE) clean ! $(MAKE) x x: xstatic all: x clean: ! rm -f x O/*.o try.log *~ reallyclean: make clean rm -f $(O) O/libog.so Index: OpenGeometry20/examples.list diff -c /dev/null OpenGeometry20/examples.list:1.1 *** /dev/null Sun Jun 17 00:23:47 2007 --- OpenGeometry20/examples.list Sat Jun 16 23:52:35 2007 *************** *** 0 **** --- 1,119 ---- + -- #include "stdafx.h" + -- #include "og_main.h" + + + example X/2D/first2d.cpp "a simple 2D application" + example X/3D/first3d.cpp "a simple 3D application" + + example USER/TEMPLETS/minimal2d.cpp "use this simple mask when you create your own 2D-application" + example USER/TEMPLETS/minimal3d.cpp "use this simple mask when you create your own 3D-application" + example USER/TEMPLETS/paramcurve2d.cpp "curve in 2-space with param. equation" + example USER/TEMPLETS/paramcurve3d.cpp "curve in 3-space with param. equation" + example USER/TEMPLETS/paramsurf.cpp "surface with given param. equation" + + example HANDBOOK/catacaustic.cpp "two ways of generating a catacaustic" + example HANDBOOK/three_planets.cpp "Mercury, Venus and Earth revolving around the sun" + example HANDBOOK/wavefront.cpp "simulation of planar wavefronts" + example HANDBOOK/koch_curve.cpp "the famous Koch curve" + example HANDBOOK/cage_of_gold2.cpp "hyperbolical cage of gold (surface with thickness)" + example HANDBOOK/hello_world.cpp "writes some text " + example HANDBOOK/kaleidocycle1.cpp "animation of Escher kaleidocylcle" + example HANDBOOK/moebius3.cpp "folding of Wunderlich's moebius band" + example HANDBOOK/elliptic_compass.cpp "multiple scene application (7 compasses)" + example HANDBOOK/handbook.h "this file contains all the examples of the Handbook" + example HANDBOOK/mult_23d.cpp "this file contains all the examples of the Handbook" + + example BOOK/anim1.cpp "BOOK/anim1.cpp" + example BOOK/anim2.cpp "BOOK/anim2.cpp" + example BOOK/anim3.cpp "BOOK/anim3.cpp" + example BOOK/nautilus.cpp "BOOK/nautilus.cpp" + -- example BOOK/book.h "this file contains many examples from the original book" + example BOOK/anim1.cpp "BOOK/anim1.cpp" + example BOOK/anim2.cpp "BOOK/anim2.cpp" + example BOOK/anim3.cpp "BOOK/anim3.cpp" + example BOOK/bspline3d.cpp "BOOK/bspline3d.cpp" + example BOOK/change_camera.cpp "BOOK/change_camera.cpp" + example BOOK/change_camera2.cpp "BOOK/change_camera2.cpp" + example BOOK/cleanup.cpp "BOOK/cleanup.cpp" + example BOOK/common_normal.cpp "BOOK/common_normal.cpp" + example BOOK/cp2d5.cpp "BOOK/cp2d5.cpp" + example BOOK/cp2d6.cpp "BOOK/cp2d6.cpp" + example BOOK/earth.cpp "BOOK/earth.cpp" + example BOOK/exhibit.cpp "BOOK/exhibit.cpp" + example BOOK/fctgraph.cpp "BOOK/fctgraph.cpp" + example BOOK/first3d.cpp "BOOK/first3d.cpp" + example BOOK/funny_surf.cpp "BOOK/funny_surf.cpp" + example BOOK/helical.cpp "BOOK/helical.cpp" + example BOOK/helical2.cpp "BOOK/helical2.cpp" + example BOOK/helical3.cpp "BOOK/helical3.cpp" + example BOOK/incircle.cpp "BOOK/incircle.cpp" + example BOOK/incircle2.cpp "BOOK/incircle2.cpp" + example BOOK/nautilus.cpp "BOOK/nautilus.cpp" + example BOOK/object_group.cpp "BOOK/object_group.cpp" + example BOOK/ogl2d.cpp "BOOK/ogl2d.cpp" + example BOOK/ogl3d.cpp "BOOK/ogl3d.cpp" + example BOOK/ogl3d2.cpp "BOOK/ogl3d2.cpp" + example BOOK/paraboloid.cpp "BOOK/paraboloid.cpp" + example BOOK/paraboloid2.cpp "BOOK/paraboloid2.cpp" + example BOOK/paramcurve2d.cpp "BOOK/paramcurve2d.cpp" + example BOOK/pentagon.cpp "BOOK/pentagon.cpp" + example BOOK/pluecker.cpp "BOOK/pluecker.cpp" + example BOOK/pseudosphere.cpp "BOOK/pseudosphere.cpp" + example BOOK/revol.cpp "BOOK/revol.cpp" + example BOOK/ruled_spiral.cpp "BOOK/ruled_spiral.cpp" + example BOOK/shell1.cpp "BOOK/shell1.cpp" + example BOOK/shell2.cpp "BOOK/shell2.cpp" + example BOOK/snail.cpp "BOOK/snail.cpp" + example BOOK/snail2.cpp "BOOK/snail2.cpp" + example BOOK/snail3.cpp "BOOK/snail3.cpp" + example BOOK/solid_and_transp_cyl.cpp "BOOK/solid_and_transp_cyl.cpp" + example BOOK/some_planet.cpp "BOOK/some_planet.cpp" + example BOOK/spl2d6.cpp "BOOK/spl2d6.cpp" + example BOOK/spline3d.cpp "BOOK/spline3d.cpp" + example BOOK/straight_lines3d.cpp "BOOK/straight_lines3d.cpp" + example BOOK/tangential_cone.cpp "BOOK/tangential_cone.cpp" + example BOOK/textures2d.cpp "BOOK/textures2d.cpp" + example BOOK/transfrm.cpp "BOOK/transfrm.cpp" + example BOOK/tubular.cpp "BOOK/tubular.cpp" + + example X/2D/poly2d.cpp "draw a simple 2d-polygon" + example X/2D/ellipse.cpp "elliptical motion" + example X/2D/antipar.cpp "a kinematical 2D-application (Anti-parallelogram)" + example X/2D/fourbar.cpp "four-bar-linkage" + example X/2D/astroid.cpp "hull of straight line" + example X/2D/otto_engine.cpp "X/2D/otto_engine.cpp" + example X/2D/gears.cpp "X/2D/gears.cpp" + + example X/3D/prism.cpp "draws prism, cone, frustum, sphere" + example X/SURF/escher_torus.cpp "X/SURF/escher_torus.cpp" + example X/3D/KINEMAT/oloid.cpp "crazily rotating Oloid (wobbler)" + example X/3D/nice.cpp "another Open Geometry logo (textures)" + example X/3D/IMPORT/b737.cpp "A Boing 737 flies over the alps " + example X/3D/IMPORT/dinohead.cpp "Two dinos in water" + example X/3D/IMPORT/dome.cpp "St.Stephen's cathedral in Vienna" + example X/3D/IMPORT/teapot.cpp "The famous Utah teapot" + example X/3D/IMPORT/stego_family.cpp "Stego-saurus" + example X/3D/ROTOIDS/rotoid_surf.cpp "generation of ruled rotoid surfaces" + example X/SURF/sealevel.cpp "landscape with lakes" + example X/SURF/bend2.cpp "shows how to create parametrized surfaces" + example X/SURF/sweep.cpp "spiral surface swept by a circle (snail, Open Geometry logo)" + example X/3D/cones.cpp "a cones rolls on another one" + example X/3D/KINEMAT/spinning_wheels.cpp "Lorenz Thaler" + example X/MORE3D/cubic_circle.cpp "X/MORE3D/cubic_circle.cpp" + example X/BOOLE/cyl_x_cube.cpp "X/BOOLE/cyl_x_cube.cpp" + example X/BOOLE/cyl_x_plane.cpp "X/BOOLE/cyl_x_plane.cpp" + example X/BOOLE/tree_house.cpp "X/BOOLE/tree_house.cpp" + example X/BOOLE/tube2.cpp "X/BOOLE/tube2.cpp" + example X/BOOLE/eyeball.cpp "X/BOOLE/eyeball.cpp" + example X/MORE3D/microscope.cpp "X/MORE3D/microscope.cpp" + example X/MORE3D/rocking_horse.cpp "X/MORE3D/rocking_horse.cpp" + example X/MORE3D/pentagondodekahedron.cpp "X/MORE3D/pentagondodekahedron.cpp" + example X/MORE3D/kardan.cpp "X/MORE3D/kardan.cpp" + example X/MORE3D/gg.cpp "X/MORE3D/gg.cpp" + + example HANDBOOK/mult_demo1.cpp "HANDBOOK/mult_demo1.cpp" + example HANDBOOK/mult_demo1.cpp "HANDBOOK/mult_demo1.cpp" + example HANDBOOK/mult_circumference.cpp "HANDBOOK/mult_circumference.cpp" + example HANDBOOK/mult_23d.cpp "HANDBOOK/mult_23d.cpp" + example HANDBOOK/mult_demos2_1.cpp "HANDBOOK/mult_demos2_1.cpp" + example HANDBOOK/multiple_scenes.cpp "HANDBOOK/multiple_scenes.cpp" Index: OpenGeometry20/show_examples.sh diff -c /dev/null OpenGeometry20/show_examples.sh:1.1 *** /dev/null Sun Jun 17 00:23:47 2007 --- OpenGeometry20/show_examples.sh Sat Jun 16 23:52:35 2007 *************** *** 0 **** --- 1,66 ---- + #! /bin/bash + # + # show_examples.sh dialog-menue for the examples of OpenGeometry2.0 + + exa='examples.list' + + [[ ! -d tmp ]] && { mkdir tmp; echo working directory tmp created; } + exalist=./tmp/${exa}_$$ + dialoglist=./tmp/${exa}_$$.dialoglist + dialogin=./tmp/${exa}_$$.dialogin + + trap "rm -f $exalist $dialoglist $dialogin" EXIT + + cat $exa | tr -d ' ' | grep -v '^$' | grep -v '^--' > $exalist + awk '{ + printf ("%d ", ++i); + s=sprintf ("%s_", $3); + for (k=4; k<=NF; k++) { + s=s""sprintf ("%s_", $k); + } + printf ("%s\n", substr(s, 1, length(s)-1)); + }' $exalist >$dialoglist + + # cat $dialoglist + # read x + + aktu=1 + + while :; do + + dialog --no-collapse --backtitle "Open Geometry 2.0 Examples" --menu \ + " Select your favorite example. + + " 20 70 15 `grep "^$aktu " $dialoglist` '' '' `grep -v "^$aktu " $dialoglist` 2>$dialogin + selected=`cat $dialogin` + [[ "$selected" = '' ]] && exit; + + # echo You selected $selected + # sleep 3 + # echo $(head -$selected $exalist | tail -1) + # sleep 3 + + awk -v selected=$selected ' + BEGIN { + printf ("#include \"stdafx.h\"\n"); + printf ("#include \"og_main.h\"\n"); + } + NR==selected { + printf ("#include \"%s\"\n", $2); + }' $exalist > try.cpp + + make x + + [[ $? -eq 0 ]] && ./x || { + echo Compiling OG or running the model failed + echo try.cpp contained following commands: + echo ==================================== + cat try.cpp + echo ==================================== + echo Hit ENTER; + read x + } + + aktu=$(($selected + 1)) + [[ $aktu -gt `wc -l $dialoglist | awk '{print $1}'` ]] && aktu=1 + done Index: OpenGeometry20/try.cpp diff -c OpenGeometry20/try.cpp:1.1.1.1 OpenGeometry20/try.cpp:1.2 *** OpenGeometry20/try.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/try.cpp Sat Jun 16 23:53:54 2007 *************** *** 16,22 **** //#include "USER/TEMPLETS/minimal3d.cpp" // use this simple mask when you create your own 3D-application //#include "USER/TEMPLETS/paramcurve2d.cpp" // curve in 2-space with param. equation //#include "USER/TEMPLETS/paramcurve3d.cpp" // curve in 3-space with param. equation ! #include "USER/TEMPLETS/paramsurf.cpp" // surface with given param. equation // Some examples from the "Handbook" //#include "HANDBOOK/catacaustic.cpp" // two ways of generating a catacaustic --- 16,22 ---- //#include "USER/TEMPLETS/minimal3d.cpp" // use this simple mask when you create your own 3D-application //#include "USER/TEMPLETS/paramcurve2d.cpp" // curve in 2-space with param. equation //#include "USER/TEMPLETS/paramcurve3d.cpp" // curve in 3-space with param. equation ! //#include "USER/TEMPLETS/paramsurf.cpp" // surface with given param. equation // Some examples from the "Handbook" //#include "HANDBOOK/catacaustic.cpp" // two ways of generating a catacaustic *************** *** 35,41 **** //#include "BOOK/anim1.cpp" //#include "BOOK/anim2.cpp" //#include "BOOK/anim3.cpp" ! //#include "BOOK/nautilus.cpp" //#include "BOOK/book.h" // this file contains many examples from the original book --- 35,41 ---- //#include "BOOK/anim1.cpp" //#include "BOOK/anim2.cpp" //#include "BOOK/anim3.cpp" ! #include "BOOK/nautilus.cpp" //#include "BOOK/book.h" // this file contains many examples from the original book Index: OpenGeometry20/BOOK/book.h diff -c OpenGeometry20/BOOK/book.h:1.1.1.1 OpenGeometry20/BOOK/book.h:1.2 *** OpenGeometry20/BOOK/book.h:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/BOOK/book.h Sat Jun 16 23:53:55 2007 *************** *** 1,6 **** //#include "BOOK/anim1.cpp" //#include "BOOK/anim2.cpp" ! //#include "BOOK/anim3.cpp" //#include "BOOK/bspline3d.cpp" //#include "BOOK/change_camera.cpp" //#include "BOOK/change_camera2.cpp" --- 1,6 ---- //#include "BOOK/anim1.cpp" //#include "BOOK/anim2.cpp" ! #include "BOOK/anim3.cpp" //#include "BOOK/bspline3d.cpp" //#include "BOOK/change_camera.cpp" //#include "BOOK/change_camera2.cpp" *************** *** 9,15 **** //#include "BOOK/cp2d5.cpp" //#include "BOOK/cp2d6.cpp" //#include "BOOK/earth.cpp" ! #include "BOOK/exhibit.cpp" //#include "BOOK/fctgraph.cpp" //#include "BOOK/first3d.cpp" //#include "BOOK/funny_surf.cpp" --- 9,15 ---- //#include "BOOK/cp2d5.cpp" //#include "BOOK/cp2d6.cpp" //#include "BOOK/earth.cpp" ! //#include "BOOK/exhibit.cpp" //#include "BOOK/fctgraph.cpp" //#include "BOOK/first3d.cpp" //#include "BOOK/funny_surf.cpp" Index: OpenGeometry20/BOOK/change_camera2.cpp diff -c OpenGeometry20/BOOK/change_camera2.cpp:1.1.1.1 OpenGeometry20/BOOK/change_camera2.cpp:1.2 *** OpenGeometry20/BOOK/change_camera2.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/BOOK/change_camera2.cpp Sat Jun 16 23:53:55 2007 *************** *** 40,46 **** NewTarget.Mark( PureRed, 0.2, 0.1 ); StraightLine3d( PureRed, NewPosition, NewTarget, MEDIUM ); ProjPlane.Shade( ); ! for ( i = 0; i < 5; i++ ) box[i].WireFrame( false, THIN ); } void Scene::Init( ) --- 40,46 ---- NewTarget.Mark( PureRed, 0.2, 0.1 ); StraightLine3d( PureRed, NewPosition, NewTarget, MEDIUM ); ProjPlane.Shade( ); ! for ( int i = 0; i < 5; i++ ) box[i].WireFrame( false, THIN ); } void Scene::Init( ) Index: OpenGeometry20/BOOK/first3d.cpp diff -c OpenGeometry20/BOOK/first3d.cpp:1.1.1.1 OpenGeometry20/BOOK/first3d.cpp:1.2 *** OpenGeometry20/BOOK/first3d.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/BOOK/first3d.cpp Sat Jun 16 23:53:55 2007 *************** *** 41,44 **** ParallelLight( 1, -1, 0.15 ); } } -  \ No newline at end of file --- 41,43 ---- Index: OpenGeometry20/BOOK/helical.cpp diff -c OpenGeometry20/BOOK/helical.cpp:1.1.1.1 OpenGeometry20/BOOK/helical.cpp:1.2 *** OpenGeometry20/BOOK/helical.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/BOOK/helical.cpp Sat Jun 16 23:53:55 2007 *************** *** 22,28 **** Surf[0].Def( Green, parameter, 200, m, -360, 270 ); Surf[0].Translate( 0, -5, 0 ); // Now transform the spline into the base plane ! for ( i = 1; i <= m.Size( ); i++ ) { m[i].Rotate( Zaxis, -Deg( m[i].z / parameter ) ); m[i].z = 0; --- 22,28 ---- Surf[0].Def( Green, parameter, 200, m, -360, 270 ); Surf[0].Translate( 0, -5, 0 ); // Now transform the spline into the base plane ! for ( int i = 1; i <= m.Size( ); i++ ) { m[i].Rotate( Zaxis, -Deg( m[i].z / parameter ) ); m[i].z = 0; Index: OpenGeometry20/BOOK/helical2.cpp diff -c OpenGeometry20/BOOK/helical2.cpp:1.1.1.1 OpenGeometry20/BOOK/helical2.cpp:1.2 *** OpenGeometry20/BOOK/helical2.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/BOOK/helical2.cpp Sat Jun 16 23:53:55 2007 *************** *** 19,25 **** m.Def( Black, 3, circle ); Surf[0].Def( Green, parameter, 130, m, -180, 270 ); Surf[0].Translate( 0, 2.5, 0 ); ! for ( i = 1; i <= m.Size( ); i++ ) { m[i].Rotate( Zaxis, -Deg( m[i].z / parameter ) ); m[i].z = 0; --- 19,25 ---- m.Def( Black, 3, circle ); Surf[0].Def( Green, parameter, 130, m, -180, 270 ); Surf[0].Translate( 0, 2.5, 0 ); ! for ( int i = 1; i <= m.Size( ); i++ ) { m[i].Rotate( Zaxis, -Deg( m[i].z / parameter ) ); m[i].z = 0; Index: OpenGeometry20/BOOK/helical3.cpp diff -c OpenGeometry20/BOOK/helical3.cpp:1.1.1.1 OpenGeometry20/BOOK/helical3.cpp:1.2 *** OpenGeometry20/BOOK/helical3.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/BOOK/helical3.cpp Sat Jun 16 23:53:55 2007 *************** *** 19,25 **** m.Def( Black, 5, circle ); Surf[0].Def( Green, parameter, 200, m, -180, 270 ); Surf[0].Translate( 0, -2.5, 0 ); ! for ( i = 1; i <= m.Size( ); i++ ) { m[i].Rotate( Zaxis, -Deg( m[i].z / parameter ) ); m[i].z = 0; --- 19,25 ---- m.Def( Black, 5, circle ); Surf[0].Def( Green, parameter, 200, m, -180, 270 ); Surf[0].Translate( 0, -2.5, 0 ); ! for ( int i = 1; i <= m.Size( ); i++ ) { m[i].Rotate( Zaxis, -Deg( m[i].z / parameter ) ); m[i].z = 0; Index: OpenGeometry20/BOOK/ogl3d2.cpp diff -c OpenGeometry20/BOOK/ogl3d2.cpp:1.1.1.1 OpenGeometry20/BOOK/ogl3d2.cpp:1.2 *** OpenGeometry20/BOOK/ogl3d2.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/BOOK/ogl3d2.cpp Sat Jun 16 23:53:55 2007 *************** *** 1,6 **** #include "opengeom.h" #include "defaults3d.h" ! #include // needed for the function auxSolidSphere( ) // Draw a rectangle and a sphere, once with Open Geometry, // the other time with OpenGL --- 1,6 ---- #include "opengeom.h" #include "defaults3d.h" ! // fzk: #include // needed for the function auxSolidSphere( ) // Draw a rectangle and a sphere, once with Open Geometry, // the other time with OpenGL *************** *** 50,56 **** else // OpenGL-code { OpenGL_Light( ); ! auxSolidSphere( 2 ); // The ball // Now the rectangle glMatrixMode( GL_PROJECTION ); // change projection glPushMatrix( ); // save previous projection --- 50,56 ---- else // OpenGL-code { OpenGL_Light( ); ! // fzk: auxSolidSphere( 2 ); // The ball // Now the rectangle glMatrixMode( GL_PROJECTION ); // change projection glPushMatrix( ); // save previous projection Index: OpenGeometry20/BOOK/spl2d6.cpp diff -c OpenGeometry20/BOOK/spl2d6.cpp:1.1.1.1 OpenGeometry20/BOOK/spl2d6.cpp:1.2 *** OpenGeometry20/BOOK/spl2d6.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/BOOK/spl2d6.cpp Sat Jun 16 23:53:55 2007 *************** *** 26,32 **** // points: A point P is rotated N times about the origin // through the alternate angles of 15 and 75 degrees. // For N = 9 the first and the last point are identical. ! for ( i = 1, P = P0; i <= N; i++ ) { Base2[i] = P; P.Rotate( Origin2d, i % 2 ? 15: 75 ); --- 26,33 ---- // points: A point P is rotated N times about the origin // through the alternate angles of 15 and 75 degrees. // For N = 9 the first and the last point are identical. ! P = P0; ! for ( int i = 1; i <= N; i++ ) { Base2[i] = P; P.Rotate( Origin2d, i % 2 ? 15: 75 ); Index: OpenGeometry20/C/boole_op.c diff -c OpenGeometry20/C/boole_op.c:1.1.1.1 OpenGeometry20/C/boole_op.c:1.2 *** OpenGeometry20/C/boole_op.c:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/C/boole_op.c Fri Jun 15 21:02:59 2007 *************** *** 16,26 **** in most cases... */ ! #ifdef UNIX extern "C" { ! #endif ! #pragma warning(disable:4244 4127 4100 4013 4101 4505 4702 4706 4761 4131 4018 4305 4701 4715) #include "p2c.h" --- 16,26 ---- in most cases... */ ! #ifdef __cplusplus extern "C" { ! #else #pragma warning(disable:4244 4127 4100 4013 4101 4505 4702 4706 4761 4131 4018 4305 4701 4715) + #endif #include "p2c.h" *************** *** 13841,13846 **** } /* p2c: Note: Remember to call _boole_op_init() in main program [215] */ /* End. */ ! #ifdef UNIX } #endif --- 13841,13846 ---- } /* p2c: Note: Remember to call _boole_op_init() in main program [215] */ /* End. */ ! #ifdef __cplusplus } #endif Index: OpenGeometry20/C/tess.c diff -c OpenGeometry20/C/tess.c:1.1.1.1 OpenGeometry20/C/tess.c:1.2 *** OpenGeometry20/C/tess.c:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/C/tess.c Fri Jun 15 21:02:59 2007 *************** *** 2,8 **** // For any changes, please refer to section "How to make essential changes" in the handbook // Please reports bugs to "open.geometry@uni-ak.ac.at" ! #ifdef UNIX extern "C" { #ifndef APIENTRY #define APIENTRY GLCALLBACK --- 2,8 ---- // For any changes, please refer to section "How to make essential changes" in the handbook // Please reports bugs to "open.geometry@uni-ak.ac.at" ! #ifdef __cplusplus extern "C" { #ifndef APIENTRY #define APIENTRY GLCALLBACK *************** *** 168,174 **** if ( !CurrentTesselation ) CurrentTesselation = gluNewTess( ); #endif ! #ifdef UNIX void (APIENTRY *fn1)() = (void (APIENTRY *)() ) glBegin; void (APIENTRY *fn2)() = (void (APIENTRY *)() ) glVertex2dv; gluTessCallback( CurrentTesselation, (GLenum) GLU_BEGIN, fn1 ); --- 168,174 ---- if ( !CurrentTesselation ) CurrentTesselation = gluNewTess( ); #endif ! #ifdef __cplusplus void (APIENTRY *fn1)() = (void (APIENTRY *)() ) glBegin; void (APIENTRY *fn2)() = (void (APIENTRY *)() ) glVertex2dv; gluTessCallback( CurrentTesselation, (GLenum) GLU_BEGIN, fn1 ); *************** *** 202,208 **** CurrentTesselation = gluNewTess( ); #endif #ifdef DATA ! #ifdef UNIX void (APIENTRY *fn1)() = (void (APIENTRY *)() ) beginData; void (APIENTRY *fn2)() = (void (APIENTRY *)() ) polyData; void (APIENTRY *fn3)() = (void (APIENTRY *)() ) endData; --- 202,208 ---- CurrentTesselation = gluNewTess( ); #endif #ifdef DATA ! #ifdef __cplusplus void (APIENTRY *fn1)() = (void (APIENTRY *)() ) beginData; void (APIENTRY *fn2)() = (void (APIENTRY *)() ) polyData; void (APIENTRY *fn3)() = (void (APIENTRY *)() ) endData; *************** *** 266,272 **** CurrentTesselation = NULL; #endif } ! #ifdef UNIX } #endif --- 266,272 ---- CurrentTesselation = NULL; #endif } ! #ifdef __cplusplus } #endif Index: OpenGeometry20/C/time.c diff -c OpenGeometry20/C/time.c:1.1.1.1 OpenGeometry20/C/time.c:1.2 *** OpenGeometry20/C/time.c:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/C/time.c Fri Jun 15 21:02:59 2007 *************** *** 2,8 **** // For any changes, please refer to section "How to make essential changes" in the handbook // Please reports bugs to "open.geometry@uni-ak.ac.at" ! #ifdef UNIX extern "C" { #endif --- 2,8 ---- // For any changes, please refer to section "How to make essential changes" in the handbook // Please reports bugs to "open.geometry@uni-ak.ac.at" ! #ifdef __cplusplus extern "C" { #endif *************** *** 90,95 **** No_of_repetitions = 0; } ! #ifdef UNIX } #endif --- 90,95 ---- No_of_repetitions = 0; } ! #ifdef __cplusplus } #endif Index: OpenGeometry20/H/fptr.h diff -c OpenGeometry20/H/fptr.h:1.1.1.1 OpenGeometry20/H/fptr.h:1.2 *** OpenGeometry20/H/fptr.h:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/H/fptr.h Sat Jun 16 23:53:55 2007 *************** *** 98,101 **** #endif // DO_NOT_OVERWRITE_OPENGL_FUNCTIONS ! #endif __FPTR_H__ --- 98,101 ---- #endif // DO_NOT_OVERWRITE_OPENGL_FUNCTIONS ! #endif // __FPTR_H__ Index: OpenGeometry20/H/fptr_c.h diff -c OpenGeometry20/H/fptr_c.h:1.1.1.1 OpenGeometry20/H/fptr_c.h:1.2 *** OpenGeometry20/H/fptr_c.h:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/H/fptr_c.h Sat Jun 16 23:53:55 2007 *************** *** 93,96 **** #endif // DO_NOT_OVERWRITE_OPENGL_FUNCTIONS ! #endif __FPTR_H__ --- 93,96 ---- #endif // DO_NOT_OVERWRITE_OPENGL_FUNCTIONS ! #endif // __FPTR_H__ Index: OpenGeometry20/H/fractal.h diff -c OpenGeometry20/H/fractal.h:1.1.1.1 OpenGeometry20/H/fractal.h:1.2 *** OpenGeometry20/H/fractal.h:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/H/fractal.h Sat Jun 16 23:53:55 2007 *************** *** 13,19 **** void MarkPoints( Color color, Real radius1, Real radius0 ); int GetStep( void ) { return Step; }; void IncreaseStep( void ) { Step++; }; ! virtual void Generator( void ) = NULL; private: int Step; }; --- 13,19 ---- void MarkPoints( Color color, Real radius1, Real radius0 ); int GetStep( void ) { return Step; }; void IncreaseStep( void ) { Step++; }; ! virtual void Generator( void ) = 0; private: int Step; }; Index: OpenGeometry20/H/function2d.h diff -c OpenGeometry20/H/function2d.h:1.1.1.1 OpenGeometry20/H/function2d.h:1.2 *** OpenGeometry20/H/function2d.h:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/H/function2d.h Sat Jun 16 23:53:55 2007 *************** *** 33,36 **** RealArray x0; L2d graph; }; ! #endif \ No newline at end of file --- 33,36 ---- RealArray x0; L2d graph; }; ! #endif Index: OpenGeometry20/H/gbuffer.h diff -c OpenGeometry20/H/gbuffer.h:1.1.1.1 OpenGeometry20/H/gbuffer.h:1.2 *** OpenGeometry20/H/gbuffer.h:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/H/gbuffer.h Fri Jun 15 21:02:59 2007 *************** *** 95,102 **** void ShowQuadrangle( int x, int y, int delta ); void set_plane_point(int i, Vector p); int Max_x, Max_y; ! inline void GammaBuffer::Transform( Vector v, Vector grid ); ! inline void GammaBuffer::TransformBack( Vector grid, Vector v ); }; #endif --- 95,102 ---- void ShowQuadrangle( int x, int y, int delta ); void set_plane_point(int i, Vector p); int Max_x, Max_y; ! inline void /* GammaBuffer:: */ Transform( Vector v, Vector grid ); ! inline void /* GammaBuffer:: */ TransformBack( Vector grid, Vector v ); }; #endif Index: OpenGeometry20/H/poly3d.h diff -c OpenGeometry20/H/poly3d.h:1.1.1.1 OpenGeometry20/H/poly3d.h:1.3 *** OpenGeometry20/H/poly3d.h:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/H/poly3d.h Sat Jun 16 23:53:55 2007 *************** *** 33,39 **** P3d &S1, P3d &S2, Real min_length = 1e-5 ); ~Poly3d( ) { if (Texture) { delete Texture; Texture = NULL; } } /* The following is very special and not documented. */ ! void Poly3d::MyShadeWithTexture( TextureMap &Map, Poly2d &c, float g ); /* int Poly3d::Solve_Formula1( const P3d &A, const P3d &B, const P3d &C, const P3d &Eye, --- 33,39 ---- P3d &S1, P3d &S2, Real min_length = 1e-5 ); ~Poly3d( ) { if (Texture) { delete Texture; Texture = NULL; } } /* The following is very special and not documented. */ ! void /* Poly3d::*/ MyShadeWithTexture( TextureMap &Map, Poly2d &c, float g ); /* int Poly3d::Solve_Formula1( const P3d &A, const P3d &B, const P3d &C, const P3d &Eye, *************** *** 93,102 **** struct Poly3dS: public Poly3d { ! Poly3dS::Poly3dS( ) { } void Shadow( Poly3d &plane, Real offset ); }; #define __POLY3D_H__ ! #endif __POLY3D_H__ --- 93,102 ---- struct Poly3dS: public Poly3d { ! /*Poly3dS::*/ Poly3dS( ) { } void Shadow( Poly3d &plane, Real offset ); }; #define __POLY3D_H__ ! #endif // __POLY3D_H__ Index: OpenGeometry20/H/ruled_surface.h diff -c OpenGeometry20/H/ruled_surface.h:1.1.1.1 OpenGeometry20/H/ruled_surface.h:1.2 *** OpenGeometry20/H/ruled_surface.h:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/H/ruled_surface.h Sat Jun 16 23:53:55 2007 *************** *** 3,10 **** class RuledSurface: public ParamSurface { public: ! virtual P3d DirectrixPoint( Real u ) = NULL; ! virtual V3d DirectionVector( Real u ) = NULL; virtual P3d SurfacePoint( Real u, Real v ); void GetDirectrix( L3d &directrix, Color col, int size ); void DrawDirectrix( Color col, int n, ThinOrThick thick, Real offset = 1e-3 ); --- 3,10 ---- class RuledSurface: public ParamSurface { public: ! virtual P3d DirectrixPoint( Real u ) = 0; ! virtual V3d DirectionVector( Real u ) = 0; virtual P3d SurfacePoint( Real u, Real v ); void GetDirectrix( L3d &directrix, Color col, int size ); void DrawDirectrix( Color col, int n, ThinOrThick thick, Real offset = 1e-3 ); Index: OpenGeometry20/H/splines.h diff -c OpenGeometry20/H/splines.h:1.1.1.1 OpenGeometry20/H/splines.h:1.2 *** OpenGeometry20/H/splines.h:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/H/splines.h Sat Jun 16 23:53:55 2007 *************** *** 64,67 **** #define __SPLINES_H__ ! #endif __SPLINES_H__ --- 64,67 ---- #define __SPLINES_H__ ! #endif // __SPLINES_H__ Index: OpenGeometry20/HANDBOOK/fukuta1.cpp diff -c OpenGeometry20/HANDBOOK/fukuta1.cpp:1.1.1.1 OpenGeometry20/HANDBOOK/fukuta1.cpp:1.2 *** OpenGeometry20/HANDBOOK/fukuta1.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/HANDBOOK/fukuta1.cpp Sat Jun 16 23:53:55 2007 *************** *** 186,189 **** { xyCoordinates( -12.0, 12.0, -10.0, 10.0 ); } ! } \ No newline at end of file --- 186,189 ---- { xyCoordinates( -12.0, 12.0, -10.0, 10.0 ); } ! } Index: OpenGeometry20/HANDBOOK/fukuta2.cpp diff -c OpenGeometry20/HANDBOOK/fukuta2.cpp:1.1.1.1 OpenGeometry20/HANDBOOK/fukuta2.cpp:1.2 *** OpenGeometry20/HANDBOOK/fukuta2.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/HANDBOOK/fukuta2.cpp Sat Jun 16 23:53:55 2007 *************** *** 173,176 **** { xyCoordinates( -12.0, 12.0, -10.0, 10.0 ); } ! } \ No newline at end of file --- 173,176 ---- { xyCoordinates( -12.0, 12.0, -10.0, 10.0 ); } ! } Index: OpenGeometry20/HANDBOOK/get_anti_ortho.cpp diff -c OpenGeometry20/HANDBOOK/get_anti_ortho.cpp:1.1.1.1 OpenGeometry20/HANDBOOK/get_anti_ortho.cpp:1.2 *** OpenGeometry20/HANDBOOK/get_anti_ortho.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/HANDBOOK/get_anti_ortho.cpp Sat Jun 16 23:53:55 2007 *************** *** 69,72 **** { xyCoordinates( -14.0, 14.0, -11.0, 11.0 ); } ! } \ No newline at end of file --- 69,72 ---- { xyCoordinates( -14.0, 14.0, -11.0, 11.0 ); } ! } Index: OpenGeometry20/HANDBOOK/get_anti_pedal.cpp diff -c OpenGeometry20/HANDBOOK/get_anti_pedal.cpp:1.1.1.1 OpenGeometry20/HANDBOOK/get_anti_pedal.cpp:1.2 *** OpenGeometry20/HANDBOOK/get_anti_pedal.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/HANDBOOK/get_anti_pedal.cpp Sat Jun 16 23:53:55 2007 *************** *** 66,69 **** { xyCoordinates( -14.0, 14.0, -11.0, 11.0 ); } ! } \ No newline at end of file --- 66,69 ---- { xyCoordinates( -14.0, 14.0, -11.0, 11.0 ); } ! } Index: OpenGeometry20/HANDBOOK/get_orthonomic.cpp diff -c OpenGeometry20/HANDBOOK/get_orthonomic.cpp:1.1.1.1 OpenGeometry20/HANDBOOK/get_orthonomic.cpp:1.2 *** OpenGeometry20/HANDBOOK/get_orthonomic.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/HANDBOOK/get_orthonomic.cpp Sat Jun 16 23:53:55 2007 *************** *** 73,76 **** { xyCoordinates( -14.0, 14.0, -11.0, 11.0 ); } ! } \ No newline at end of file --- 73,76 ---- { xyCoordinates( -14.0, 14.0, -11.0, 11.0 ); } ! } Index: OpenGeometry20/HANDBOOK/get_pedal.cpp diff -c OpenGeometry20/HANDBOOK/get_pedal.cpp:1.1.1.1 OpenGeometry20/HANDBOOK/get_pedal.cpp:1.2 *** OpenGeometry20/HANDBOOK/get_pedal.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/HANDBOOK/get_pedal.cpp Sat Jun 16 23:53:55 2007 *************** *** 69,72 **** { xyCoordinates( -14.0, 14.0, -11.0, 11.0 ); } ! } \ No newline at end of file --- 69,72 ---- { xyCoordinates( -14.0, 14.0, -11.0, 11.0 ); } ! } Index: OpenGeometry20/SYS/LINUX/glut_window.cpp diff -c OpenGeometry20/SYS/LINUX/glut_window.cpp:1.1.1.1 OpenGeometry20/SYS/LINUX/glut_window.cpp:1.2 *** OpenGeometry20/SYS/LINUX/glut_window.cpp:1.1.1.1 Fri Jun 15 20:56:26 2007 --- OpenGeometry20/SYS/LINUX/glut_window.cpp Fri Jun 15 21:02:59 2007 *************** *** 46,63 **** void GlutWindow::register_window(void) { Windows[fWindow] = this; ! fCallbacks[glut_callback_display] = glut_window_display; ! fCallbacks[glut_callback_overlay_display] = glut_window_overlay_display; ! fCallbacks[glut_callback_reshape] = glut_window_reshape; ! fCallbacks[glut_callback_keyboard] = glut_window_keyboard; ! fCallbacks[glut_callback_mouse] = glut_window_mouse; ! fCallbacks[glut_callback_motion] = glut_window_motion; ! fCallbacks[glut_callback_passive_motion] = glut_window_passive_motion; ! fCallbacks[glut_callback_visibility] = glut_window_visibility; ! fCallbacks[glut_callback_entry] = glut_window_entry; ! fCallbacks[glut_callback_special] = glut_window_special; ! fCallbacks[glut_callback_menu_status] = glut_window_menu_status; ! fCallbacks[glut_callback_menu_state] = glut_window_menu_state; } void GlutWindow::event(int ev, bool on) { --- 46,63 ---- void GlutWindow::register_window(void) { Windows[fWindow] = this; ! fCallbacks[glut_callback_display] = (void *)glut_window_display; ! fCallbacks[glut_callback_overlay_display] = (void *)glut_window_overlay_display; ! fCallbacks[glut_callback_reshape] = (void *)glut_window_reshape; ! fCallbacks[glut_callback_keyboard] = (void *)glut_window_keyboard; ! fCallbacks[glut_callback_mouse] = (void *)glut_window_mouse; ! fCallbacks[glut_callback_motion] = (void *)glut_window_motion; ! fCallbacks[glut_callback_passive_motion] = (void *)glut_window_passive_motion; ! fCallbacks[glut_callback_visibility] = (void *)glut_window_visibility; ! fCallbacks[glut_callback_entry] = (void *)glut_window_entry; ! fCallbacks[glut_callback_special] = (void *)glut_window_special; ! fCallbacks[glut_callback_menu_status] = (void *)glut_window_menu_status; ! fCallbacks[glut_callback_menu_state] = (void *)glut_window_menu_state; } void GlutWindow::event(int ev, bool on) {