Index: UNIX/examples.list diff -c /dev/null UNIX/examples.list:1.2 *** /dev/null Fri Apr 18 17:55:55 2008 --- UNIX/examples.list Thu Apr 17 00:30:48 2008 *************** *** 0 **** --- 1,385 ---- + -- #include "stdafx.h" + -- #include "og_main.h" + + // Please choose one (and only one!) file from the following list + // and remove the comment sign at the beginning of this line. + // If there are other files that are not commented out, you have + // to comment them out! (Otherwise the compiler will try to compile + // several main files...) + + example X/2D/mask2d.cpp "use this simple mask when you create your own 2D-application" + example X/3D/mask3d.cpp "use this simple mask when you create your own 3D-application" + + + example X/2D/first2d.cpp "Rotating circle" + example X/3D/first3d.cpp "Sun, moon etc." + + + example BOOK/incircle.cpp "incircle of a triangle" + example BOOK/incircle2.cpp "incircle of a triangle (animated)" + example BOOK/common_normal.cpp "common normal of two straight lines" + example BOOK/anim1.cpp "Pseudo Rubic cube" + example BOOK/anim2.cpp "animated intersecting cylinders" + example BOOK/anim3.cpp "sphere under the influence of gravitation" + example BOOK/straight_lines3d.cpp "straight lines-> ruled surface" + + example X/3D/hello_world.cpp "Writes 'Open Geometry' in 3D" + example X/2D/poly2d.cpp "draw a simple 2d-polygon" + example BOOK/pentagon.cpp "regular pentagon" + example BOOK/paramcurve2d.cpp "parameterized 2d-curve" + example BOOK/some_planet.cpp "spheres (wireframe, shaded)" + example BOOK/spl2d6.cpp "spline curves" + example BOOK/textures2d.cpp "how to display 2d-textures" + example X/3D/sun_collector.cpp "reflected sun rays through a fixed point" + example X/3D/aircraft_tyre.cpp "non-trivial rotation in space" + + example BOOK/revol.cpp "draws two intersecting surfaces of revolution" + example BOOK/helical.cpp "draws two helical surfaces" + example BOOK/helical2.cpp "draws two helical surfaces" + example BOOK/earth.cpp "earth and moon from space shuttle" + example BOOK/pseudosphere.cpp "6 parameterized surfaces" + example BOOK/exhibit.cpp "transparent box" + example BOOK/cp2d6.cpp "complex poly (gear wheel)" + example X/3D/bouncing.cpp "3 spheres under the influence of gravitation" + example BOOK/ogl3d2.cpp "OpenGL shading vs. Open Geometry shading" + + example X/2D/omega.cpp "Writes 'omega = ...' in 2D (Pseudo-3D)" + + example X/3D/poly3d.cpp "draw a simple 3d-polygon" + example X/3D/frustum.cpp "Two conic frustums" + + example BOOK/paraboloid.cpp "sweeps a parboloid by means of two parabolas" + example BOOK/pluecker.cpp "motion of a straight line --> Pluecker's Conoid" + example BOOK/nautilus.cpp "a nautilus(spiral surface) with background texture" + example BOOK/snail2.cpp "a snail (spiral surface) with background texture" + example BOOK/spline3d.cpp "BOOK/spline3d.cpp" + example BOOK/shell1.cpp "ESSO" + example BOOK/shell2.cpp "another shell found on the beach" + example BOOK/ruled_spiral.cpp "ruled spiral surface" + example BOOK/funny_surf.cpp "creates a funny star-shaped surface" + example BOOK/tubular.cpp "creates an arbiraty tubular surface" + example BOOK/object_group.cpp "shows how to group objects" + example BOOK/change_camera.cpp "change camera in Scene::Draw()" + example BOOK/change_camera2.cpp "change camera in Scene::Draw()" + + example X/2D/conic.cpp "draws conic sections, given by 5 random points" + example BOOK/cleanup.cpp "how to free global memory" + example BOOK/transfrm.cpp "OpenGL-code + Open Geometry-code" + example X/3D/water.cpp "use this simple mask when you create your own 3D-application" + example X/2D/function.cpp "zeros of a function graph" + example X/3D/wuerfel.cpp "a really simple 3D-shading example" + example X/3D/cone_x_cone.cpp "Intersection of 2 frustums (2 ellipses)" + example X/3D/develop.cpp "Develop a cylinder" + example X/3D/develop2.cpp "Develop a cone" + + example X/SURF/indicatrix.cpp "parametrized surface (e.g., a torus)" + example X/SURF/oloid.cpp "Oloid" + example X/3D/KINEMAT/oloid.cpp "crazily rotating Oloid" + example X/3D/paramsurf.cpp "parametrized surface (e.g., a torus)" + example X/SURF/dini_surface.cpp "parametrized surface" + example X/SURF/klein_bottle.cpp "parametrized surface (klein bottle)" + example X/SURF/boy_surface.cpp "parametrized surface" + example X/3D/fuhsspir.cpp "helical motion of a 'tear-drop-curve'" + example X/2D/texture2d.cpp "Shows how to attach textures to 2D-polygons" + example X/3D/texture3d.cpp " Shows how to attach a texture onto a cylinder" + example X/3D/opengeom.cpp "a cube with some textures" + example X/3D/nice.cpp "another Open Geometry logo (textures)" + example X/3D/trees.cpp "some trees in a scene (may have bugs)" + + example X/3D/IMPORT/house.cpp "Reads the data for a house with textures" + example X/3D/IMPORT/drill.cpp "Reads the data for a drill (no textures)" + example X/3D/IMPORT/pot_and_skeleton2.cpp "skeleton picks up a teapot" + 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/skeleton.cpp "A skeleton bends knees" + 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/torus_normals.cpp "torus normals along Villarceau-circles" + example X/3D/ROTOIDS/rotoid_surf.cpp "generation of ruled rotoid surfaces" + example X/3D/ROTOIDS/non_trivial_rotoids.cpp "shows non-trivial rotoids on a rotoid surfaces" + example X/3D/ROTOIDS/con_rotoid_surf.cpp "generation of conoidal ruled rotoid surfaces" + example X/3D/ROTOIDS/con_rotoid_surf2.cpp "special conoidal ruled rotoid surfaces" + + // At first some more general 3D - examples + + example X/3D/prism.cpp "draws prism, cone, frustum, sphere" + + example X/3D/spiral2.cpp "various spiral surfaces. Change #define to get new surfs" + example X/MORE3D/dupin1.cpp "DUPIN surface" + example X/MORE3D/tor_cyl.cpp "DUPIN cyclids that intersect a torus" + example X/MORE3D/focal.cpp "four views of focal conics in space" + example X/MORE3D/ocircle.cpp "Cyclid + circles" + example X/SURF/ruledspiral.cpp "X/SURF/ruledspiral.cpp" + + example X/3D/nurbs.cpp "an OpenGL-example (pure OpenGL code)" + + example X/SURF/mathsurf.cpp "Draws a mathematical surface with given parametrized equation" + example X/SURF/fctgraph.cpp "Draws an arbitrary function graph, given by a formula" + example X/SURF/sealevel.cpp "landscape with lakes" + example X/SURF/bend1.cpp "shows how to create parametrized surfaces" + example X/SURF/bend2.cpp "parametrized surface (bending helicoid --> catenoid)" + example X/SURF/sweep.cpp "spiral surface swept by a circle (snail, Open Geometry logo)" + example X/SURF/sweep2.cpp "shows how to sweep a surface by means of a curve (tub. helical surf.)" + + example X/3D/paramcurve3d.cpp "parametrized curve (cubic circle)" + example X/3D/4views.cpp "4 views of a scene" + example X/3D/4views2.cpp "4 views of a curve" + + + example X/3D/glider.cpp "A glider does loopings (object grouping, cast shadows!)" + example X/3D/umbrella.cpp "speaker's desk" + example X/3D/cones.cpp "a cones rolls on another one" + example X/3D/KINEMAT/table.cpp "a flexible table (Julia AIGNER)" + example X/3D/KINEMAT/chair.cpp "a flexible chair (Karin ISOPP)" + example X/3D/KINEMAT/spinning_wheels.cpp "Lorenz Thaler" + + + example X/2D/simple2d.cpp "X/2D/simple2d.cpp" + 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/step_neg.cpp "another 4-bar-linkage" + example X/2D/roberts.cpp "ROBERT's theorem" + example X/2D/conchoid.cpp "chonchoid motion" + example X/2D/ellipse2.cpp "general elliptic motion" + example X/2D/ell_slider_crank.cpp "general elliptic motion" + example X/2D/approx_straight.cpp "approximated straight line guidance" + example X/2D/osc_center.cpp "osculating center" + example X/2D/astroid.cpp "hull of straight line" + example X/2D/simpson.cpp "Calculates the integral of a function" + example X/2D/runge.cpp "How to solve a differential equation" + example X/2D/runge2.cpp "How to solve a differential equation //TODO" + example X/3D/runge3d.cpp "Loxodromes on a torus as solution of a diff.equation" + example X/2D/clothoid.cpp "Clothoid curve by means of integrals" + example X/2D/clothoid2.cpp "clothoids as integral curves of a vector field" + example X/2D/troch2d.cpp "Trochoids" + example X/2D/otto_engine.cpp "X/2D/otto_engine.cpp" + example X/2D/gears.cpp "X/2D/gears.cpp" + example X/MORE2D/parallel_curve.cpp "parallel curves to a given 2D-curve" + + + example X/MORE3D/babylon.cpp "'Tower of Babylon' (P.Breughel)" + example X/MORE3D/stacone1.cpp "Spherical tripod" + example X/3D/gif_animation.cpp "Bouncing ball" + example X/MORE3D/sun.cpp "shows sun positions on the horizon during a certain time period" + example X/3D/sunrise.cpp "calculate sunrise and sunset" + + + example X/MORE3D/cubic_circle.cpp "X/MORE3D/cubic_circle.cpp" + example X/MORE3D/cloth3d.cpp "Clothoid curve by means of integrals" + + example X/PROJ/1.cpp "X/PROJ/1.cpp" + example X/PROJ/2.cpp "X/PROJ/2.cpp" + example X/PROJ/8.cpp "X/PROJ/8.cpp" + example X/PROJ/10.cpp "X/PROJ/10.cpp" + example X/3D/quatern.cpp "test quaternions" + example X/2D/complex_poly2d.cpp "X/2D/complex_poly2d.cpp" + + example X/BOOLE/cad3logo2.cpp "X/BOOLE/cad3logo2.cpp" + example X/BOOLE/maggi.cpp "X/BOOLE/maggi.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/tubes.cpp "X/BOOLE/tubes.cpp" + example X/BOOLE/cylinders.cpp "X/BOOLE/cylinders.cpp" + example X/BOOLE/torus_x_cube.cpp "X/BOOLE/torus_x_cube.cpp" + example X/BOOLE/torus_x_plane.cpp "X/BOOLE/torus_x_plane.cpp" + example X/BOOLE/wildbool.cpp "X/BOOLE/wildbool.cpp" + example X/BOOLE/graph_x_cyl.cpp "X/BOOLE/graph_x_cyl.cpp" + + example X/3D/proj_3space.cpp "fakes a central projection onto a plane" + example X/MORE3D/table.cpp "a table with 3 legs" + example X/MORE3D/triang_sphere.cpp "shows how to triangulate a sphere" + + // The following include files were used for diverse + // projects and demonstations + + example DATA/PROJECTS/demo_sep30_98.h "DATA/PROJECTS/demo_sep30_98.h" + example DATA/PROJECTS/demo_may29_98.h "DATA/PROJECTS/demo_may29_98.h" + example DATA/PROJECTS/helispirals.h "helispiral motion" + example DATA/PROJECTS/students.h "some nice student works" + example DATA/PROJECTS/milling.h "Simulation of milling processes" + example DATA/PROJECTS/fuhs.h "Simulation of milling processes" + example DATA/PROJECTS/dupin.h "Simulation of milling processes" + + example ./X/BOOLE/cad3logo.cpp "./X/BOOLE/cad3logo.cpp" + example ./X/BOOLE/cad3logo2.cpp "./X/BOOLE/cad3logo2.cpp" + example ./X/BOOLE/cyl_x_cube.cpp "./X/BOOLE/cyl_x_cube.cpp" + example ./X/BOOLE/cyl_x_cube2.cpp "./X/BOOLE/cyl_x_cube2.cpp" + example ./X/BOOLE/cyl_x_plane.cpp "./X/BOOLE/cyl_x_plane.cpp" + example ./X/BOOLE/cylinders.cpp "./X/BOOLE/cylinders.cpp" + example ./X/BOOLE/general.cpp "./X/BOOLE/general.cpp" + example ./X/BOOLE/graph_x_cyl.cpp "./X/BOOLE/graph_x_cyl.cpp" + example ./X/BOOLE/maggi.cpp "./X/BOOLE/maggi.cpp" + example ./X/BOOLE/readcad3.cpp "./X/BOOLE/readcad3.cpp" + example ./X/BOOLE/readcyl.cpp "./X/BOOLE/readcyl.cpp" + example ./X/BOOLE/sphere.cpp "./X/BOOLE/sphere.cpp" + example ./X/BOOLE/tmp.cpp "./X/BOOLE/tmp.cpp" + example ./X/BOOLE/tmp2.cpp "./X/BOOLE/tmp2.cpp" + example ./X/BOOLE/tmp3.cpp "./X/BOOLE/tmp3.cpp" + example ./X/BOOLE/torus_x_cube.cpp "./X/BOOLE/torus_x_cube.cpp" + example ./X/BOOLE/torus_x_plane.cpp "./X/BOOLE/torus_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/tubes.cpp "./X/BOOLE/tubes.cpp" + example ./X/BOOLE/wildbool.cpp "./X/BOOLE/wildbool.cpp" + example ./X/BOOLE/wildbool2.cpp "./X/BOOLE/wildbool2.cpp" + example ./X/FUHS/1.cpp "./X/FUHS/1.cpp" + example ./X/FUHS/2.cpp "./X/FUHS/2.cpp" + example ./X/FUHS/3.cpp "./X/FUHS/3.cpp" + example ./X/FUHS/4.cpp "./X/FUHS/4.cpp" + example ./X/HELISPIRALS/0.cpp "./X/HELISPIRALS/0.cpp" + example ./X/HELISPIRALS/1.cpp "./X/HELISPIRALS/1.cpp" + example ./X/HELISPIRALS/2.cpp "./X/HELISPIRALS/2.cpp" + example ./X/HELISPIRALS/3.cpp "./X/HELISPIRALS/3.cpp" + example ./X/HELISPIRALS/4.cpp "./X/HELISPIRALS/4.cpp" + example ./X/HELISPIRALS/antilope.cpp "./X/HELISPIRALS/antilope.cpp" + example ./X/HELISPIRALS/blackbuck.cpp "./X/HELISPIRALS/blackbuck.cpp" + example ./X/HELISPIRALS/buffalo.cpp "./X/HELISPIRALS/buffalo.cpp" + example ./X/HELISPIRALS/eland.cpp "./X/HELISPIRALS/eland.cpp" + example ./X/HELISPIRALS/eland2.cpp "./X/HELISPIRALS/eland2.cpp" + example ./X/HELISPIRALS/fig1.cpp "./X/HELISPIRALS/fig1.cpp" + example ./X/HELISPIRALS/fig2.cpp "./X/HELISPIRALS/fig2.cpp" + example ./X/HELISPIRALS/fig3.cpp "./X/HELISPIRALS/fig3.cpp" + example ./X/HELISPIRALS/fig4.cpp "./X/HELISPIRALS/fig4.cpp" + example ./X/HELISPIRALS/fig5.cpp "./X/HELISPIRALS/fig5.cpp" + example ./X/HELISPIRALS/fig6.cpp "./X/HELISPIRALS/fig6.cpp" + example ./X/HELISPIRALS/fig7.cpp "./X/HELISPIRALS/fig7.cpp" + example ./X/HELISPIRALS/fig8.cpp "./X/HELISPIRALS/fig8.cpp" + example ./X/HELISPIRALS/helispiral_motion.cpp "./X/HELISPIRALS/helispiral_motion.cpp" + example ./X/HELISPIRALS/ibex.cpp "./X/HELISPIRALS/ibex.cpp" + example ./X/HELISPIRALS/kudu.cpp "./X/HELISPIRALS/kudu.cpp" + example ./X/HELISPIRALS/markhor.cpp "./X/HELISPIRALS/markhor.cpp" + example ./X/HELISPIRALS/tmp.cpp "./X/HELISPIRALS/tmp.cpp" + example ./X/HELISPIRALS/worm.cpp "./X/HELISPIRALS/worm.cpp" + example ./X/MILLING/blind_areas.cpp "./X/MILLING/blind_areas.cpp" + example ./X/MILLING/fgraph2d3.cpp "./X/MILLING/fgraph2d3.cpp" + example ./X/MILLING/fgraph2d4.cpp "./X/MILLING/fgraph2d4.cpp" + example ./X/MILLING/fgraph2d5.cpp "./X/MILLING/fgraph2d5.cpp" + example ./X/MILLING/fgraph2d6.cpp "./X/MILLING/fgraph2d6.cpp" + example ./X/MILLING/fgraph2d_.cpp "./X/MILLING/fgraph2d_.cpp" + example ./X/MILLING/gen_offset.cpp "./X/MILLING/gen_offset.cpp" + example ./X/MILLING/gen_offset2.cpp "./X/MILLING/gen_offset2.cpp" + example ./X/MILLING/iso.cpp "./X/MILLING/iso.cpp" + example ./X/MILLING/iso2.cpp "./X/MILLING/iso2.cpp" + example ./X/MILLING/iso3.cpp "./X/MILLING/iso3.cpp" + example ./X/MILLING/iso4.cpp "./X/MILLING/iso4.cpp" + example ./X/MILLING/isophotes.cpp "./X/MILLING/isophotes.cpp" + example ./X/MILLING/local_millability.cpp "./X/MILLING/local_millability.cpp" + example ./X/MILLING/mill2.cpp "./X/MILLING/mill2.cpp" + example ./X/MILLING/milling.cpp "./X/MILLING/milling.cpp" + example ./X/MILLING/milling_with_paraboloid.cpp "./X/MILLING/milling_with_paraboloid.cpp" + example ./X/MILLING/millingp.cpp "./X/MILLING/millingp.cpp" + example ./X/MILLING/millingpath.cpp "./X/MILLING/millingpath.cpp" + example ./X/MILLING/millpath.cpp "./X/MILLING/millpath.cpp" + example ./X/MILLING/offset.cpp "./X/MILLING/offset.cpp" + example ./X/MILLING/offset1.cpp "./X/MILLING/offset1.cpp" + example ./X/MILLING/offset_cyl.cpp "./X/MILLING/offset_cyl.cpp" + example ./X/MILLING/offset_ell.cpp "./X/MILLING/offset_ell.cpp" + example ./X/MILLING/offset_hyp.cpp "./X/MILLING/offset_hyp.cpp" + example ./X/MILLING/opt_cutter0.cpp "./X/MILLING/opt_cutter0.cpp" + example ./X/MILLING/parallel_star.cpp "./X/MILLING/parallel_star.cpp" + example ./X/MILLING/parallel_star2.cpp "./X/MILLING/parallel_star2.cpp" + example ./X/MILLING/protecting_cutter.cpp "./X/MILLING/protecting_cutter.cpp" + example ./X/MILLING/relative_curv1.cpp "./X/MILLING/relative_curv1.cpp" + example ./X/MILLING/relative_curv2.cpp "./X/MILLING/relative_curv2.cpp" + example ./X/MILLING/runge3d.cpp "./X/MILLING/runge3d.cpp" + example ./X/MILLING/sculpt_surf.cpp "./X/MILLING/sculpt_surf.cpp" + example ./X/MILLING/star.cpp "./X/MILLING/star.cpp" + example ./X/MILLING/star_surf.cpp "./X/MILLING/star_surf.cpp" + example ./X/MILLING/tmp.cpp "./X/MILLING/tmp.cpp" + example ./X/MORE2D/parallel_curve.cpp "./X/MORE2D/parallel_curve.cpp" + example ./X/MORE2D/parallel_curve2.cpp "./X/MORE2D/parallel_curve2.cpp" + example ./X/MORE3D/babylon.cpp "./X/MORE3D/babylon.cpp" + example ./X/MORE3D/bezier.cpp "./X/MORE3D/bezier.cpp" + example ./X/MORE3D/bezier2.cpp "./X/MORE3D/bezier2.cpp" + example ./X/MORE3D/bezier2a.cpp "./X/MORE3D/bezier2a.cpp" + example ./X/MORE3D/cloth3d.cpp "./X/MORE3D/cloth3d.cpp" + example ./X/MORE3D/cubic_circle.cpp "./X/MORE3D/cubic_circle.cpp" + example ./X/MORE3D/cycfam.cpp "./X/MORE3D/cycfam.cpp" + example ./X/MORE3D/dupin1.cpp "./X/MORE3D/dupin1.cpp" + example ./X/MORE3D/dupin2.cpp "./X/MORE3D/dupin2.cpp" + example ./X/MORE3D/focal.cpp "./X/MORE3D/focal.cpp" + example ./X/MORE3D/moon.cpp "./X/MORE3D/moon.cpp" + example ./X/MORE3D/ocircle.cpp "./X/MORE3D/ocircle.cpp" + example ./X/MORE3D/stacone1.cpp "./X/MORE3D/stacone1.cpp" + example ./X/MORE3D/stacone2.cpp "./X/MORE3D/stacone2.cpp" + example ./X/MORE3D/stacone3.cpp "./X/MORE3D/stacone3.cpp" + example ./X/MORE3D/sun.cpp "./X/MORE3D/sun.cpp" + example ./X/MORE3D/table.cpp "./X/MORE3D/table.cpp" + example ./X/MORE3D/tmp.cpp "./X/MORE3D/tmp.cpp" + example ./X/MORE3D/tor_cyl.cpp "./X/MORE3D/tor_cyl.cpp" + example ./X/MORE3D/triang_sphere.cpp "./X/MORE3D/triang_sphere.cpp" + example ./X/PROJ/1.cpp "./X/PROJ/1.cpp" + example ./X/PROJ/10.cpp "./X/PROJ/10.cpp" + example ./X/PROJ/12.cpp "./X/PROJ/12.cpp" + example ./X/PROJ/2.cpp "./X/PROJ/2.cpp" + example ./X/PROJ/8.cpp "./X/PROJ/8.cpp" + example ./X/STUDENTS/AHMED/cylsphmo.cpp "./X/STUDENTS/AHMED/cylsphmo.cpp" + example ./X/STUDENTS/AHMED/four_bar.cpp "./X/STUDENTS/AHMED/four_bar.cpp" + example ./X/STUDENTS/AHMED/slid_cr.cpp "./X/STUDENTS/AHMED/slid_cr.cpp" + example ./X/STUDENTS/AHMED/sphmo.cpp "./X/STUDENTS/AHMED/sphmo.cpp" + example ./X/STUDENTS/AHMED/syklmo.cpp "./X/STUDENTS/AHMED/syklmo.cpp" + example ./X/STUDENTS/AHMED/trochmo.cpp "./X/STUDENTS/AHMED/trochmo.cpp" + example ./X/STUDENTS/AHMED/tub_ah1.cpp "./X/STUDENTS/AHMED/tub_ah1.cpp" + example ./X/STUDENTS/AHMED/tub_ah2.cpp "./X/STUDENTS/AHMED/tub_ah2.cpp" + example ./X/STUDENTS/ERIK/cycloids.cpp "./X/STUDENTS/ERIK/cycloids.cpp" + example ./X/STUDENTS/ERIK/erik_ankreis.cpp "./X/STUDENTS/ERIK/erik_ankreis.cpp" + example ./X/STUDENTS/ERIK/erik_fourier.cpp "./X/STUDENTS/ERIK/erik_fourier.cpp" + example ./X/STUDENTS/ERIK/erik_radlinie.cpp "./X/STUDENTS/ERIK/erik_radlinie.cpp" + example ./X/STUDENTS/ERIK/excircle.cpp "./X/STUDENTS/ERIK/excircle.cpp" + example ./X/STUDENTS/ERIK/fourier.cpp "./X/STUDENTS/ERIK/fourier.cpp" + example ./X/STUDENTS/PETER/peter2.cpp "./X/STUDENTS/PETER/peter2.cpp" + example ./X/STUDENTS/PETER/peter3.cpp "./X/STUDENTS/PETER/peter3.cpp" + example ./X/STUDENTS/PETER/peter4.cpp "./X/STUDENTS/PETER/peter4.cpp" + example ./X/STUDENTS/PETER/peter5.cpp "./X/STUDENTS/PETER/peter5.cpp" + example ./X/STUDENTS/PETER/peter6.cpp "./X/STUDENTS/PETER/peter6.cpp" + example ./X/STUDENTS/PETER/peter7.cpp "./X/STUDENTS/PETER/peter7.cpp" + example ./X/STUDENTS/ahmed.cpp "./X/STUDENTS/ahmed.cpp" + example ./X/STUDENTS/apr18.cpp "./X/STUDENTS/apr18.cpp" + example ./X/STUDENTS/bottle.cpp "./X/STUDENTS/bottle.cpp" + example ./X/STUDENTS/drehb.cpp "./X/STUDENTS/drehb.cpp" + example ./X/STUDENTS/four_bar.cpp "./X/STUDENTS/four_bar.cpp" + example ./X/STUDENTS/fourier.cpp "./X/STUDENTS/fourier.cpp" + example ./X/STUDENTS/helicoid.cpp "./X/STUDENTS/helicoid.cpp" + example ./X/STUDENTS/rotoids.cpp "./X/STUDENTS/rotoids.cpp" + example ./X/STUDENTS/slid_cr.cpp "./X/STUDENTS/slid_cr.cpp" + example ./X/STUDENTS/troch.cpp "./X/STUDENTS/troch.cpp" + example ./X/STUDENTS/tub_ah1.cpp "./X/STUDENTS/tub_ah1.cpp" + example ./X/STUDENTS/tub_ah2.cpp "./X/STUDENTS/tub_ah2.cpp" + example ./X/STUDENTS/tub_gab.cpp "./X/STUDENTS/tub_gab.cpp" + example ./X/STUDENTS/tub_gab2.cpp "./X/STUDENTS/tub_gab2.cpp" + example ./X/STUDENTS/tub_joe1.cpp "./X/STUDENTS/tub_joe1.cpp" + example ./X/STUDENTS/tub_joe2.cpp "./X/STUDENTS/tub_joe2.cpp" + example ./X/STUDENTS/tub_scr1.cpp "./X/STUDENTS/tub_scr1.cpp" + example ./X/STUDENTS/tub_scr2.cpp "./X/STUDENTS/tub_scr2.cpp" + example ./X/STUDENTS/viviani.cpp "./X/STUDENTS/viviani.cpp" + example ./X/SURF/bend1.cpp "./X/SURF/bend1.cpp" + example ./X/SURF/bend2.cpp "./X/SURF/bend2.cpp" + example ./X/SURF/boy_surface.cpp "./X/SURF/boy_surface.cpp" + example ./X/SURF/dini_surface.cpp "./X/SURF/dini_surface.cpp" + example ./X/SURF/fctgraph.cpp "./X/SURF/fctgraph.cpp" + example ./X/SURF/funny_surf.cpp "./X/SURF/funny_surf.cpp" + example ./X/SURF/indicatrix.cpp "./X/SURF/indicatrix.cpp" + example ./X/SURF/klein_bottle.cpp "./X/SURF/klein_bottle.cpp" + example ./X/SURF/mathsurf.cpp "./X/SURF/mathsurf.cpp" + example ./X/SURF/oloid.cpp "./X/SURF/oloid.cpp" + example ./X/SURF/paraboloid.cpp "./X/SURF/paraboloid.cpp" + example ./X/SURF/pluecker.cpp "./X/SURF/pluecker.cpp" + example ./X/SURF/revol.cpp "./X/SURF/revol.cpp" + example ./X/SURF/revol2.cpp "./X/SURF/revol2.cpp" + example ./X/SURF/ruledspiral.cpp "./X/SURF/ruledspiral.cpp" + example ./X/SURF/sealevel.cpp "./X/SURF/sealevel.cpp" + example ./X/SURF/sealevel2.cpp "./X/SURF/sealevel2.cpp" + example ./X/SURF/sweep.cpp "./X/SURF/sweep.cpp" + example ./X/SURF/sweep2.cpp "./X/SURF/sweep2.cpp" + example ./X/SURF/tmp.cpp "./X/SURF/tmp.cpp" + example ./X/SURF/tubular.cpp "./X/SURF/tubular.cpp" + example ./X/SURF/wild_surf.cpp "./X/SURF/wild_surf.cpp" + + // Maybe it is a good idea for you to include your CPP files there... + + example DATA/PROJECTS/my_projects.h "DATA/PROJECTS/my_projects.h" Index: UNIX/makefile diff -c UNIX/makefile:1.1.1.1 UNIX/makefile:1.2 *** UNIX/makefile:1.1.1.1 Mon Jul 9 22:31:25 2007 --- UNIX/makefile Mon Apr 14 23:20:10 2008 *************** *** 5,51 **** # path to X Windows and OpenGL libararies / includes - XLIB = -lX11 - DEP_LIBRARIES = /usr/lib/libaux.a /usr/lib/libtk.a - LOCAL_LIBRARIES = $(DEP_LIBRARIES) $(XLIB) -lGL -lGLU - INCLUDES = -I$(TOP) -I./libaux -I./libtk -I$(INCLUDEDIR)/GL - - all:: $(PROGRAMS) - PROGS = x ! DEP_LIBRARIES = /usr/lib/libaux.a /usr/lib/libtk.a ! LDFLAGS= -lm -lGL -lGLU $(DEP_LIBRARIES) $(XLIB) ! CFLAGS= -DIRIS -DUNIX -IH -g3 ! COMP= -c -g3 -o ! O= O/d.o O/e.o O/f.o O/h.o O/o.o O/s.o O/g.o O/tess.o O/main.o O/time.o O/boole_op.o O/p2clib.o try.o ! O/main.o: SYS/main.cpp ! CC $(COMP) O/main.o $(CFLAGS) SYS/main.cpp ! O/time.o: C/time.c ! cc $(COMP) O/time.o $(CFLAGS) SYS/time.c try.o: try.cpp H/*.h ! CC $(COMP) try.o $(CFLAGS) try.cpp ! O/d.o: C/d.cpp ! CC $(COMP) O/d.o $(CFLAGS) C/d.cpp ! O/e.o: C/e.cpp ! CC $(COMP) O/e.o $(CFLAGS) C/e.cpp O/f.o: C/f.cpp ! CC $(COMP) O/f.o $(CFLAGS) C/f.cpp ! O/g.o: C/g.cpp ! CC $(COMP) O/g.o $(CFLAGS) C/g.cpp ! O/h.o: C/h.cpp ! CC $(COMP) O/h.o $(CFLAGS) C/h.cpp ! O/o.o: C/o.cpp ! CC $(COMP) O/o.o $(CFLAGS) C/o.cpp O/s.o: C/s.cpp ! CC $(COMP) O/s.o $(CFLAGS) C/s.cpp O/tess.o: C/tess.c ! cc $(COMP) O/tess.o $(CFLAGS) C/tess.c O/boole_op.o: C/boole_op.c ! cc $(COMP) O/boole_op.o $(CFLAGS) C/boole_op.c O/p2clib.o: C/p2clib.c ! cc $(COMP) O/p2clib.o $(CFLAGS) C/p2clib.c x: $(O) ! CC $(CFLAGS) -o x $(O) $(LDFLAGS) ! --- 5,47 ---- # path to X Windows and OpenGL libararies / includes PROGS = x ! COMP= -c -O3 -g -o ! CFLAGS= -DIRIS -DUNIX -I. -IH -I/usr/X11R6/include ! LDFLAGS= -L/usr/X11R6/lib -L/usr/lib -lm -lglut -lGL -lGLU ! all:: $(PROGS) ! O= O/d.o O/e.o O/f.o O/g.o O/h.o O/o.o O/s.o O/tess.o O/main.o O/time.o O/boole_op.o O/p2clib.o try.o ! ! O/main.o: SYS/main.cpp ! $(CC) $(COMP) O/main.o $(CFLAGS) SYS/main.cpp ! O/time.o: C/time.c ! $(CC) $(COMP) O/time.o $(CFLAGS) C/time.c try.o: try.cpp H/*.h ! $(CC) $(COMP) try.o $(CFLAGS) try.cpp ! O/d.o: C/d.cpp ! $(CC) $(COMP) O/d.o $(CFLAGS) C/d.cpp ! O/e.o: C/e.cpp ! $(CC) $(COMP) O/e.o $(CFLAGS) C/e.cpp O/f.o: C/f.cpp ! $(CC) $(COMP) O/f.o $(CFLAGS) C/f.cpp ! O/g.o: C/g.cpp ! $(CC) $(COMP) O/g.o $(CFLAGS) C/g.cpp ! O/h.o: C/h.cpp ! $(CC) $(COMP) O/h.o $(CFLAGS) C/h.cpp ! O/o.o: C/o.cpp ! $(CC) $(COMP) O/o.o $(CFLAGS) C/o.cpp O/s.o: C/s.cpp ! $(CC) $(COMP) O/s.o $(CFLAGS) C/s.cpp O/tess.o: C/tess.c ! $(CC) $(COMP) O/tess.o $(CFLAGS) C/tess.c O/boole_op.o: C/boole_op.c ! $(CC) $(COMP) O/boole_op.o $(CFLAGS) C/boole_op.c O/p2clib.o: C/p2clib.c ! $(CC) $(COMP) O/p2clib.o $(CFLAGS) C/p2clib.c x: $(O) ! $(CC) $(CFLAGS) -o x $(O) $(LDFLAGS) ! ! clean: ! rm -f $(O) x \ No newline at end of file Index: UNIX/show_examples.sh diff -c /dev/null UNIX/show_examples.sh:1.1 *** /dev/null Fri Apr 18 17:55:55 2008 --- UNIX/show_examples.sh Mon Apr 14 23:03:42 2008 *************** *** 0 **** --- 1,70 ---- + #! /bin/bash + # + # show_examples.sh dialog-menue for the examples of OpenGeometry1.0 + + # export LD_LIBRARY_PATH=./O:$LD_LIBRARY_PATH + 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 '^--' | 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 + + aktu_1=$(($aktu - 1)) + [[ "$aktu_1" -eq 0 ]] && { aktu_1=show_nothing; } + + dialog --no-collapse --backtitle "Open Geometry 1.0 Examples" --menu \ + " Select your favorite example. + + " 20 70 15 `grep "^$aktu " $dialoglist` `grep "^$aktu_1 " $dialoglist` '' '' `cat $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: UNIX/try.cpp diff -c UNIX/try.cpp:1.1.1.1 UNIX/try.cpp:1.5 *** UNIX/try.cpp:1.1.1.1 Mon Jul 9 22:31:25 2007 --- UNIX/try.cpp Fri Apr 18 17:55:27 2008 *************** *** 8,18 **** // several main files...) //#include "X/2D/mask2d.cpp" // use this simple mask when you create your own 2D-application ! #include "X/3D/mask3d.cpp" // use this simple mask when you create your own 3D-application //#include "X/2D/first2d.cpp" // Rotating circle ! //#include "X/3D/first3d.cpp" // Sun, moon etc. //#include "BOOK/incircle.cpp" // incircle of a triangle --- 8,18 ---- // several main files...) //#include "X/2D/mask2d.cpp" // use this simple mask when you create your own 2D-application ! //#include "X/3D/mask3d.cpp" // use this simple mask when you create your own 3D-application //#include "X/2D/first2d.cpp" // Rotating circle ! #include "X/3D/first3d.cpp" // Sun, moon etc. //#include "BOOK/incircle.cpp" // incircle of a triangle *************** *** 48,63 **** //#include "X/3D/poly3d.cpp" // draw a simple 3d-polygon //#include "X/3D/frustum.cpp" // Two conic frustums ! //#include "BOOK/paraboloid.cpp" // sweeps a parboloid by means of two parabolas //#include "BOOK/pluecker.cpp" // motion of a straight line --> "Pluecker's Conoid" //#include "BOOK/nautilus.cpp" // a nautilus(spiral surface) with background texture //#include "BOOK/snail2.cpp" // a snail (spiral surface) with background texture ! //#include "BOOK/spline3d.cpp" // //#include "BOOK/shell1.cpp" // ESSO //#include "BOOK/shell2.cpp" // another shell found on the beach //#include "BOOK/ruled_spiral.cpp" // ruled spiral surface //#include "BOOK/funny_surf.cpp" // creates a funny star-shaped surface ! //#include "BOOK/tubular.cpp" // creates an arbiraty tubular surface //#include "BOOK/object_group.cpp" // shows how to group objects //#include "BOOK/change_camera.cpp" // change camera in Scene::Draw() //#include "BOOK/change_camera2.cpp" // change camera in Scene::Draw() --- 48,63 ---- //#include "X/3D/poly3d.cpp" // draw a simple 3d-polygon //#include "X/3D/frustum.cpp" // Two conic frustums ! //#include "BOOK/paraboloid.cpp" // sweeps a parboloid by means of two parabolas //#include "BOOK/pluecker.cpp" // motion of a straight line --> "Pluecker's Conoid" //#include "BOOK/nautilus.cpp" // a nautilus(spiral surface) with background texture //#include "BOOK/snail2.cpp" // a snail (spiral surface) with background texture ! //#include "BOOK/spline3d.cpp" // //#include "BOOK/shell1.cpp" // ESSO //#include "BOOK/shell2.cpp" // another shell found on the beach //#include "BOOK/ruled_spiral.cpp" // ruled spiral surface //#include "BOOK/funny_surf.cpp" // creates a funny star-shaped surface ! //#include "BOOK/tubular.cpp" // creates an arbiraty tubular surface //#include "BOOK/object_group.cpp" // shows how to group objects //#include "BOOK/change_camera.cpp" // change camera in Scene::Draw() //#include "BOOK/change_camera2.cpp" // change camera in Scene::Draw() *************** *** 78,124 **** //#include "X/3D/paramsurf.cpp" // parametrized surface (e.g., a torus) //#include "X/SURF/dini_surface.cpp" // parametrized surface //#include "X/SURF/klein_bottle.cpp" // parametrized surface (klein bottle) ! //#include "X/SURF/boy_surface.cpp" // parametrized surface //#include "X/3D/fuhsspir.cpp" // helical motion of a 'tear-drop-curve' //#include "X/2D/texture2d.cpp" // Shows how to attach textures to 2D-polygons //#include "X/3D/texture3d.cpp" // Shows how to attach a texture onto a cylinder ! //#include "X/3D/opengeom.cpp" // a cube with some textures //#include "X/3D/nice.cpp" // another Open Geometry logo (textures) //#include "X/3D/trees.cpp" // some trees in a scene (may have bugs) //#include "X/3D/IMPORT/house.cpp" // Reads the data for a house with textures //#include "X/3D/IMPORT/drill.cpp" // Reads the data for a drill (no textures) //#include "X/3D/IMPORT/pot_and_skeleton2.cpp" // skeleton picks up a teapot ! //#include "X/3D/IMPORT/b737.cpp" // A Boing 737 flies over the alps ! //#include "X/3D/IMPORT/dinohead.cpp" // Two dinos in water //#include "X/3D/IMPORT/skeleton.cpp" // A skeleton bends knees //#include "X/3D/IMPORT/dome.cpp" // St.Stephen's cathedral in Vienna //#include "X/3D/IMPORT/teapot.cpp" // The famous Utah teapot //#include "X/3D/IMPORT/stego_family.cpp" // Stego-saurus ! //#include "X/3D/ROTOIDS/torus_normals.cpp" // torus normals along Villarceau-circles //#include "X/3D/ROTOIDS/rotoid_surf.cpp" // generation of ruled rotoid surfaces //#include "X/3D/ROTOIDS/non_trivial_rotoids.cpp" // shows non-trivial rotoids on a rotoid surfaces //#include "X/3D/ROTOIDS/con_rotoid_surf.cpp" // generation of conoidal ruled rotoid surfaces //#include "X/3D/ROTOIDS/con_rotoid_surf2.cpp" // special conoidal ruled rotoid surfaces ! // At first some more general 3D - examples ! //#include "X/3D/prism.cpp" // draws prism, cone, frustum, sphere //#include "X/3D/spiral2.cpp" // various spiral surfaces. Change #define to get new surfs //#include "X/MORE3D/dupin1.cpp" // DUPIN surface //#include "X/MORE3D/tor_cyl.cpp" // DUPIN cyclids that intersect a torus //#include "X/MORE3D/focal.cpp" // four views of focal conics in space //#include "X/MORE3D/ocircle.cpp" // Cyclid + circles ! //#include "X/SURF/ruledspiral.cpp" //#include "X/3D/nurbs.cpp" // an OpenGL-example (pure OpenGL code) //#include "X/SURF/mathsurf.cpp" // Draws a mathematical surface with given parametrized equation //#include "X/SURF/fctgraph.cpp" // Draws an arbitrary function graph, given by a formula //#include "X/SURF/sealevel.cpp" // landscape with lakes ! //#include "X/SURF/bend1.cpp" // shows how to create parametrized surfaces //#include "X/SURF/bend2.cpp" // parametrized surface (bending helicoid --> catenoid) //#include "X/SURF/sweep.cpp" // spiral surface swept by a circle (snail, Open Geometry logo) //#include "X/SURF/sweep2.cpp" // shows how to sweep a surface by means of a curve (tub. helical surf.) --- 78,124 ---- //#include "X/3D/paramsurf.cpp" // parametrized surface (e.g., a torus) //#include "X/SURF/dini_surface.cpp" // parametrized surface //#include "X/SURF/klein_bottle.cpp" // parametrized surface (klein bottle) ! //#include "X/SURF/boy_surface.cpp" // parametrized surface //#include "X/3D/fuhsspir.cpp" // helical motion of a 'tear-drop-curve' //#include "X/2D/texture2d.cpp" // Shows how to attach textures to 2D-polygons //#include "X/3D/texture3d.cpp" // Shows how to attach a texture onto a cylinder ! //#include "X/3D/opengeom.cpp" // a cube with some textures //#include "X/3D/nice.cpp" // another Open Geometry logo (textures) //#include "X/3D/trees.cpp" // some trees in a scene (may have bugs) //#include "X/3D/IMPORT/house.cpp" // Reads the data for a house with textures //#include "X/3D/IMPORT/drill.cpp" // Reads the data for a drill (no textures) //#include "X/3D/IMPORT/pot_and_skeleton2.cpp" // skeleton picks up a teapot ! //#include "X/3D/IMPORT/b737.cpp" // A Boing 737 flies over the alps ! //#include "X/3D/IMPORT/dinohead.cpp" // Two dinos in water //#include "X/3D/IMPORT/skeleton.cpp" // A skeleton bends knees //#include "X/3D/IMPORT/dome.cpp" // St.Stephen's cathedral in Vienna //#include "X/3D/IMPORT/teapot.cpp" // The famous Utah teapot //#include "X/3D/IMPORT/stego_family.cpp" // Stego-saurus ! //#include "X/3D/ROTOIDS/torus_normals.cpp" // torus normals along Villarceau-circles //#include "X/3D/ROTOIDS/rotoid_surf.cpp" // generation of ruled rotoid surfaces //#include "X/3D/ROTOIDS/non_trivial_rotoids.cpp" // shows non-trivial rotoids on a rotoid surfaces //#include "X/3D/ROTOIDS/con_rotoid_surf.cpp" // generation of conoidal ruled rotoid surfaces //#include "X/3D/ROTOIDS/con_rotoid_surf2.cpp" // special conoidal ruled rotoid surfaces ! // At first some more general 3D - examples ! //#include "X/3D/prism.cpp" // draws prism, cone, frustum, sphere //#include "X/3D/spiral2.cpp" // various spiral surfaces. Change #define to get new surfs //#include "X/MORE3D/dupin1.cpp" // DUPIN surface //#include "X/MORE3D/tor_cyl.cpp" // DUPIN cyclids that intersect a torus //#include "X/MORE3D/focal.cpp" // four views of focal conics in space //#include "X/MORE3D/ocircle.cpp" // Cyclid + circles ! //#include "X/SURF/ruledspiral.cpp" //#include "X/3D/nurbs.cpp" // an OpenGL-example (pure OpenGL code) //#include "X/SURF/mathsurf.cpp" // Draws a mathematical surface with given parametrized equation //#include "X/SURF/fctgraph.cpp" // Draws an arbitrary function graph, given by a formula //#include "X/SURF/sealevel.cpp" // landscape with lakes ! //#include "X/SURF/bend1.cpp" // shows how to create parametrized surfaces //#include "X/SURF/bend2.cpp" // parametrized surface (bending helicoid --> catenoid) //#include "X/SURF/sweep.cpp" // spiral surface swept by a circle (snail, Open Geometry logo) //#include "X/SURF/sweep2.cpp" // shows how to sweep a surface by means of a curve (tub. helical surf.) *************** *** 130,204 **** //#include "X/3D/glider.cpp" // A glider does loopings (object grouping, cast shadows!) //#include "X/3D/umbrella.cpp" // speaker's desk ! //#include "X/3D/cones.cpp" // a cones rolls on another one //#include "X/3D/KINEMAT/table.cpp" // a flexible table (Julia AIGNER) ! //#include "X/3D/KINEMAT/chair.cpp" // a flexible chair (Karin ISOPP) ! //#include "X/3D/KINEMAT/spinning_wheels.cpp" // Lorenz Thaler //#include "X/2D/simple2d.cpp" //#include "X/2D/ellipse.cpp" // elliptical motion //#include "X/2D/antipar.cpp" // a kinematical 2D-application (Anti-parallelogram) //#include "X/2D/fourbar.cpp" // four-bar-linkage ! //#include "X/2D/step_neg.cpp" // another 4-bar-linkage //#include "X/2D/roberts.cpp" // ROBERT's theorem ! //#include "X/2D/conchoid.cpp" // chonchoid motion //#include "X/2D/ellipse2.cpp" // general elliptic motion //#include "X/2D/ell_slider_crank.cpp" // general elliptic motion //#include "X/2D/approx_straight.cpp" // approximated straight line guidance //#include "X/2D/osc_center.cpp" // osculating center //#include "X/2D/astroid.cpp" // hull of straight line ! //#include "X/2D/simpson.cpp" // Calculates the integral of a function //#include "X/2D/runge.cpp" // How to solve a differential equation //#include "X/2D/runge2.cpp" // How to solve a differential equation //TODO //#include "X/3D/runge3d.cpp" // Loxodromes on a torus as solution of a diff.equation //#include "X/2D/clothoid.cpp" // Clothoid curve by means of integrals //#include "X/2D/clothoid2.cpp" // clothoids as integral curves of a vector field //#include "X/2D/troch2d.cpp" // Trochoids ! //#include "X/2D/otto_engine.cpp" ! //#include "X/2D/gears.cpp" //#include "X/MORE2D/parallel_curve.cpp" // parallel curves to a given 2D-curve ! //#include "X/MORE3D/babylon.cpp" // "Tower of Babylon" (P.Breughel) ! //#include "X/MORE3D/stacone1.cpp" // Spherical tripod //#include "X/3D/gif_animation.cpp" // Bouncing ball //#include "X/MORE3D/sun.cpp" // shows sun positions on the horizon during a certain time period //#include "X/3D/sunrise.cpp" // calculate sunrise and sunset ! //#include "X/MORE3D/cubic_circle.cpp" //#include "X/MORE3D/cloth3d.cpp" // Clothoid curve by means of integrals ! //#include "X/PROJ/1.cpp" //#include "X/PROJ/2.cpp" //#include "X/PROJ/8.cpp" ! //#include "X/PROJ/10.cpp" //#include "X/3D/quatern.cpp" // test quaternions ! //#include "X/2D/complex_poly2d.cpp" ! //#include "X/BOOLE/cad3logo2.cpp" ! //#include "X/BOOLE/maggi.cpp" ! //#include "X/BOOLE/cyl_x_cube.cpp" ! //#include "X/BOOLE/cyl_x_plane.cpp" ! //#include "X/BOOLE/tree_house.cpp" ! //#include "X/BOOLE/tube2.cpp" ! //#include "X/BOOLE/tubes.cpp" ! //#include "X/BOOLE/cylinders.cpp" ! //#include "X/BOOLE/torus_x_cube.cpp" ! //#include "X/BOOLE/torus_x_plane.cpp" ! //#include "X/BOOLE/wildbool.cpp" ! //#include "X/BOOLE/graph_x_cyl.cpp" //#include "X/3D/proj_3space.cpp" // fakes a central projection onto a plane //#include "X/MORE3D/table.cpp" // a table with 3 legs //#include "X/MORE3D/triang_sphere.cpp" // shows how to triangulate a sphere ! // The following include files were used for diverse // projects and demonstations ! //#include "DATA/PROJECTS/demo_sep30_98.h" ! //#include "DATA/PROJECTS/demo_may29_98.h" //#include "DATA/PROJECTS/helispirals.h" // helispiral motion //#include "DATA/PROJECTS/students.h" // some nice student works //#include "DATA/PROJECTS/milling.h" // Simulation of milling processes --- 130,204 ---- //#include "X/3D/glider.cpp" // A glider does loopings (object grouping, cast shadows!) //#include "X/3D/umbrella.cpp" // speaker's desk ! //#include "X/3D/cones.cpp" // a cones rolls on another one //#include "X/3D/KINEMAT/table.cpp" // a flexible table (Julia AIGNER) ! //#include "X/3D/KINEMAT/chair.cpp" // a flexible chair (Karin ISOPP) ! //#include "X/3D/KINEMAT/spinning_wheels.cpp" // Lorenz Thaler //#include "X/2D/simple2d.cpp" //#include "X/2D/ellipse.cpp" // elliptical motion //#include "X/2D/antipar.cpp" // a kinematical 2D-application (Anti-parallelogram) //#include "X/2D/fourbar.cpp" // four-bar-linkage ! //#include "X/2D/step_neg.cpp" // another 4-bar-linkage //#include "X/2D/roberts.cpp" // ROBERT's theorem ! //#include "X/2D/conchoid.cpp" // chonchoid motion //#include "X/2D/ellipse2.cpp" // general elliptic motion //#include "X/2D/ell_slider_crank.cpp" // general elliptic motion //#include "X/2D/approx_straight.cpp" // approximated straight line guidance //#include "X/2D/osc_center.cpp" // osculating center //#include "X/2D/astroid.cpp" // hull of straight line ! //#include "X/2D/simpson.cpp" // Calculates the integral of a function //#include "X/2D/runge.cpp" // How to solve a differential equation //#include "X/2D/runge2.cpp" // How to solve a differential equation //TODO //#include "X/3D/runge3d.cpp" // Loxodromes on a torus as solution of a diff.equation //#include "X/2D/clothoid.cpp" // Clothoid curve by means of integrals //#include "X/2D/clothoid2.cpp" // clothoids as integral curves of a vector field //#include "X/2D/troch2d.cpp" // Trochoids ! //#include "X/2D/otto_engine.cpp" ! //#include "X/2D/gears.cpp" //#include "X/MORE2D/parallel_curve.cpp" // parallel curves to a given 2D-curve ! //#include "X/MORE3D/babylon.cpp" // "Tower of Babylon" (P.Breughel) ! //#include "X/MORE3D/stacone1.cpp" // Spherical tripod //#include "X/3D/gif_animation.cpp" // Bouncing ball //#include "X/MORE3D/sun.cpp" // shows sun positions on the horizon during a certain time period //#include "X/3D/sunrise.cpp" // calculate sunrise and sunset ! //#include "X/MORE3D/cubic_circle.cpp" //#include "X/MORE3D/cloth3d.cpp" // Clothoid curve by means of integrals ! //#include "X/PROJ/1.cpp" //#include "X/PROJ/2.cpp" //#include "X/PROJ/8.cpp" ! //#include "X/PROJ/10.cpp" //#include "X/3D/quatern.cpp" // test quaternions ! //#include "X/2D/complex_poly2d.cpp" ! //#include "X/BOOLE/cad3logo2.cpp" ! //#include "X/BOOLE/maggi.cpp" ! //#include "X/BOOLE/cyl_x_cube.cpp" ! //#include "X/BOOLE/cyl_x_plane.cpp" ! //#include "X/BOOLE/tree_house.cpp" ! //#include "X/BOOLE/tube2.cpp" ! //#include "X/BOOLE/tubes.cpp" ! //#include "X/BOOLE/cylinders.cpp" ! //#include "X/BOOLE/torus_x_cube.cpp" ! //#include "X/BOOLE/torus_x_plane.cpp" ! //#include "X/BOOLE/wildbool.cpp" ! //#include "X/BOOLE/graph_x_cyl.cpp" //#include "X/3D/proj_3space.cpp" // fakes a central projection onto a plane //#include "X/MORE3D/table.cpp" // a table with 3 legs //#include "X/MORE3D/triang_sphere.cpp" // shows how to triangulate a sphere ! // The following include files were used for diverse // projects and demonstations ! //#include "DATA/PROJECTS/demo_sep30_98.h" ! //#include "DATA/PROJECTS/demo_may29_98.h" //#include "DATA/PROJECTS/helispirals.h" // helispiral motion //#include "DATA/PROJECTS/students.h" // some nice student works //#include "DATA/PROJECTS/milling.h" // Simulation of milling processes *************** *** 207,210 **** // Maybe it is a good idea for you to include your CPP files there... ! //#include "DATA/PROJECTS/my_projects.h" --- 207,210 ---- // Maybe it is a good idea for you to include your CPP files there... ! //#include "DATA/PROJECTS/my_projects.h" Index: UNIX/C/d.cpp diff -c UNIX/C/d.cpp:1.1.1.1 UNIX/C/d.cpp:1.2 *** UNIX/C/d.cpp:1.1.1.1 Mon Jul 9 22:31:25 2007 --- UNIX/C/d.cpp Mon Apr 14 23:20:10 2008 *************** *** 2,8 **** #define FULL_ENVIRONMENT ! #include "lc.h" TypeOfConic ParamSurface::GetSpecialTangents( Real u, Real v, V3d &main1, V3d &main2, --- 2,9 ---- #define FULL_ENVIRONMENT ! #include "H/lc.h" ! #include "H/sg.h" TypeOfConic ParamSurface::GetSpecialTangents( Real u, Real v, V3d &main1, V3d &main2, *************** *** 55,61 **** return ( fv( u, v + eps ) - fv( u, v - eps ) ) / ( 2 * eps ); } ! Real Sqrt( Real x, char *txt ) { if ( x < 0 ) Write( "Illegal sqrt: ", DUMMY, x, txt ); --- 56,62 ---- return ( fv( u, v + eps ) - fv( u, v - eps ) ) / ( 2 * eps ); } ! Real Sqrt( Real x, const char *txt ) { if ( x < 0 ) Write( "Illegal sqrt: ", DUMMY, x, txt ); *************** *** 241,247 **** Boolean hyp = false; for ( int i = 0; i < 3; i++ ) { ! for ( int m = 0; m < mmax; m++ ) { P[i] = SurfacePoint( u + du[i], v + dv[i] ); d[i] = tg.OrientedDistance( P[i] ); --- 242,249 ---- Boolean hyp = false; for ( int i = 0; i < 3; i++ ) { ! int m; ! for ( m = 0; m < mmax; m++ ) { P[i] = SurfacePoint( u + du[i], v + dv[i] ); d[i] = tg.OrientedDistance( P[i] ); *************** *** 256,262 **** } else { ! for ( int k = 0; k < i; k++ ) if ( P[k].Distance( P[i] ) < 0.05 * eps ) break; if ( k == i ) --- 258,265 ---- } else { ! int k; ! for ( k = 0; k < i; k++ ) if ( P[k].Distance( P[i] ) < 0.05 * eps ) break; if ( k == i ) *************** *** 293,299 **** else // for sure hyperbolic { col = PureMagenta; ! for ( i = 0; i < 3; i++ ) { if ( r[i] < 0 ) { --- 296,302 ---- else // for sure hyperbolic { col = PureMagenta; ! for ( int i = 0; i < 3; i++ ) { if ( r[i] < 0 ) { *************** *** 320,326 **** P3d C[5]; int j = 0; Real rho; ! for ( i = 0; i < 3; i++ ) { t[i].Def( M, P[i] ); rho = Sqrt( scale * fabs( r[i] ) ); --- 323,329 ---- P3d C[5]; int j = 0; Real rho; ! for ( int i = 0; i < 3; i++ ) { t[i].Def( M, P[i] ); rho = Sqrt( scale * fabs( r[i] ) ); *************** *** 719,725 **** for ( int i = 1; i <= n; i++ ) x1[ i ]( x[i].x, x[i].y, z_min ); RealArray s( n ); ! for ( i = 1; i < n; i++ ) { q[1] = x[i]; q[2] = x1[i]; --- 722,728 ---- for ( int i = 1; i <= n; i++ ) x1[ i ]( x[i].x, x[i].y, z_min ); RealArray s( n ); ! for ( int i = 1; i < n; i++ ) { q[1] = x[i]; q[2] = x1[i]; *************** *** 730,736 **** V3d nrm = Zdir ^( q[3] - q[2] ), p = TheCamera.GetProjRay( q[1] ); s[i] = nrm * p; } ! for ( i = 1; i < n - 1; i++ ) if ( s[i] * s[i + 1] < 0 ) StraightLine3d( c, x[i + 1], x1[ i + 1], style ); --- 733,739 ---- V3d nrm = Zdir ^( q[3] - q[2] ), p = TheCamera.GetProjRay( q[1] ); s[i] = nrm * p; } ! for ( int i = 1; i < n - 1; i++ ) if ( s[i] * s[i + 1] < 0 ) StraightLine3d( c, x[i + 1], x1[ i + 1], style ); *************** *** 793,803 **** --- 796,809 ---- Boolean i_closed = false; PL3d u1, u2; uLine( 1, u1, false ); uLine( n2, u2, false ); + { + int k; for ( k = 1; k <= u1.size; k++ ) if ( *u1[k] != *u2[k] ) break; if ( k > u1.size ) i_closed = true; + } for ( int i = 1; i < n2; i++ ) { int i1 = i + 1; *************** *** 831,836 **** --- 837,843 ---- // No.1 uLine( 1, c, true ); + int k; for ( k = 0; k < c.size; k++ ) pp[k] = x( c[c.size - k] ); pp[k++] = Add[0]; *************** *** 916,922 **** } int L3d::PointWithDistance( const StrL3d &g, Real dist ) { ! for ( int i = 1; i <= nPoints; i++ ) if ( g.Distance( pPoints[i] ) > dist ) break; if ( i > nPoints ) { Write("MinimalDistance should be smaller"); --- 923,930 ---- } int L3d::PointWithDistance( const StrL3d &g, Real dist ) { ! int i; ! for ( i = 1; i <= nPoints; i++ ) if ( g.Distance( pPoints[i] ) > dist ) break; if ( i > nPoints ) { Write("MinimalDistance should be smaller"); *************** *** 1867,1873 **** Q = D->pp[j + 1]; if ( edges->Add( P, Q ) ) { ! for ( int k = 0; k < D->n; k++ ) { N = D->Neighbor[k]; if ( !N ) --- 1875,1882 ---- Q = D->pp[j + 1]; if ( edges->Add( P, Q ) ) { ! int k; ! for ( k = 0; k < D->n; k++ ) { N = D->Neighbor[k]; if ( !N ) *************** *** 2124,2130 **** for ( int i = 0; i < n; i++ ) { D->Def( D0->n, D0->pp ); ! for ( int j = 0; j < D->n; j++ ) { D->pp[j] = pPoints + ( D0->pp[j] - p.pPoints ); if ( D->pp[j] -pPoints < 0 || D->pp[j] - pPoints> 10000 ) --- 2133,2140 ---- for ( int i = 0; i < n; i++ ) { D->Def( D0->n, D0->pp ); ! int j; ! for ( j = 0; j < D->n; j++ ) { D->pp[j] = pPoints + ( D0->pp[j] - p.pPoints ); if ( D->pp[j] -pPoints < 0 || D->pp[j] - pPoints> 10000 ) *************** *** 2217,2223 **** void Polyhedron::Contour( Color f, ThinOrThick style, Real offset ) { ! static recalc = true; TheScene.Offset( offset ); PossiblyThickLine( style ); static P3d P[MAX_POLY_SIZE][2]; --- 2227,2233 ---- void Polyhedron::Contour( Color f, ThinOrThick style, Real offset ) { ! static Boolean recalc = true; TheScene.Offset( offset ); PossiblyThickLine( style ); static P3d P[MAX_POLY_SIZE][2]; *************** *** 2615,2621 **** if ( k[i].nPoints == 0 ) { if ( i == nCurves ) { nCurves--; goto done; } else { ! for ( int j = i + 1; j <= nCurves; j++ ) if ( k[j].nPoints ) break; if ( j > nCurves ) { nCurves = i - 1; goto done; } else { --- 2625,2632 ---- if ( k[i].nPoints == 0 ) { if ( i == nCurves ) { nCurves--; goto done; } else { ! int j; ! for ( j = i + 1; j <= nCurves; j++ ) if ( k[j].nPoints ) break; if ( j > nCurves ) { nCurves = i - 1; goto done; } else { *************** *** 2660,2666 **** D->Next = new Face; D = D->Next; } ! for ( i = 1; i <= max; i++ ) E[max - i] = &P[i]; D->Def( max, E ); P.n++; --- 2671,2677 ---- D->Next = new Face; D = D->Next; } ! for ( int i = 1; i <= max; i++ ) E[max - i] = &P[i]; D->Def( max, E ); P.n++; *************** *** 2782,2788 **** void WildSurf::Jump( IntArray &S ) { ComplexL3d *w = &w1[1], *hi_w = w + n1; ! for ( int m = 0; w < hi_w; w++ ) m += w->nCurves - 1; S.Def( m ); if ( m == 0 ) return; --- 2793,2800 ---- void WildSurf::Jump( IntArray &S ) { ComplexL3d *w = &w1[1], *hi_w = w + n1; ! int m; ! for ( m = 0; w < hi_w; w++ ) m += w->nCurves - 1; S.Def( m ); if ( m == 0 ) return; *************** *** 2799,2805 **** } void ComplexL3d::Draw( Color f, ThinOrThick style, Real offset ) { ! if ( f == NULL ) f = Gray; for ( int i = 1; i <= nCurves; i++ ) { k[i].ChangeColor( f ); --- 2811,2817 ---- } void ComplexL3d::Draw( Color f, ThinOrThick style, Real offset ) { ! if ( f == 0 /* NULL */) f = Gray; for ( int i = 1; i <= nCurves; i++ ) { k[i].ChangeColor( f ); *************** *** 2825,2831 **** } P3d * ComplexL3d::SetPoint( int j ) { ! for ( int i = 1; i <= nCurves; i++ ) if ( j > k[i].nPoints ) j-= k[i].nPoints; else break; if ( i > nCurves ) SafeExit("wrong point index"); --- 2837,2844 ---- } P3d * ComplexL3d::SetPoint( int j ) { ! int i; ! for ( i = 1; i <= nCurves; i++ ) if ( j > k[i].nPoints ) j-= k[i].nPoints; else break; if ( i > nCurves ) SafeExit("wrong point index"); *************** *** 2859,2865 **** for ( int i = 1; i <= nn1; i++ ) w1[i].Draw( col, style, offset ); if (!bothLineSets ) return; ! for ( i = 1; i <= n2; i++ ) w2[i].Draw( col, style, offset ); } void WildSurf::AssignColor( Color f ) --- 2872,2878 ---- for ( int i = 1; i <= nn1; i++ ) w1[i].Draw( col, style, offset ); if (!bothLineSets ) return; ! for ( int i = 1; i <= n2; i++ ) w2[i].Draw( col, style, offset ); } void WildSurf::AssignColor( Color f ) *************** *** 2892,2898 **** FREE_ARRAY( ComplexL3d, w2, n2 + 1, "wlinien3d"); ALLOC_ARRAY( PComplexL3d, w2, n2 + 1, "wlinien3d"); int n[3]; n[1] = n1; ! for ( i = 1; i <= n2; i++ ) { w2[i].Def( 1 ); w2[i].k[1].Def( n1 ); register P3d **p = &w2[i].k[1].p[1]; --- 2905,2911 ---- FREE_ARRAY( ComplexL3d, w2, n2 + 1, "wlinien3d"); ALLOC_ARRAY( PComplexL3d, w2, n2 + 1, "wlinien3d"); int n[3]; n[1] = n1; ! for ( int i = 1; i <= n2; i++ ) { w2[i].Def( 1 ); w2[i].k[1].Def( n1 ); register P3d **p = &w2[i].k[1].p[1]; *************** *** 2984,2990 **** Boolean i_closed = false; PL3d u1, u2; uLine( 1, u1, false ); uLine( n2, u2, false ); ! for ( int k = 1; k <= u1.size; k++ ) if ( *u1[k] != *u2[k] ) break; if ( k > u1.size ) --- 2997,3004 ---- Boolean i_closed = false; PL3d u1, u2; uLine( 1, u1, false ); uLine( n2, u2, false ); ! int k; ! for ( k = 1; k <= u1.size; k++ ) if ( *u1[k] != *u2[k] ) break; if ( k > u1.size ) *************** *** 3035,3041 **** Boolean i_closed = false; PL3d u1, u2; uLine( 1, u1, false ); uLine( n2, u2, false ); ! for ( int k = 1; k <= u1.size; k++ ) if ( *u1[k] != *u2[k] ) break; if ( k > u1.size ) --- 3049,3056 ---- Boolean i_closed = false; PL3d u1, u2; uLine( 1, u1, false ); uLine( n2, u2, false ); ! int k; ! for ( k = 1; k <= u1.size; k++ ) if ( *u1[k] != *u2[k] ) break; if ( k > u1.size ) Index: UNIX/C/e.cpp diff -c UNIX/C/e.cpp:1.1.1.1 UNIX/C/e.cpp:1.2 *** UNIX/C/e.cpp:1.1.1.1 Mon Jul 9 22:31:25 2007 --- UNIX/C/e.cpp Mon Apr 14 23:20:10 2008 *************** *** 5,12 **** #include "vecletter.h" ! ! inline int StrCmp( char *bu, char *sc, int le ) { for ( int i = 0; i < le; i++ ) if ( *bu++ ^ *sc++ ) return(1); --- 5,11 ---- #include "vecletter.h" ! inline int StrCmp( char *bu, const char *sc, int le ) { for ( int i = 0; i < le; i++ ) if ( *bu++ ^ *sc++ ) return(1); *************** *** 14,20 **** } // This procedure searches for a string ( scanbuffer ) in the ASCII file ! inline void Scan( FILE *stream, char *buff , char *scanbuffer) { int len = strlen( scanbuffer ); while ( StrCmp( buff, scanbuffer, len ) ) --- 13,19 ---- } // This procedure searches for a string ( scanbuffer ) in the ASCII file ! inline void Scan( FILE *stream, char *buff , const char *scanbuffer) { int len = strlen( scanbuffer ); while ( StrCmp( buff, scanbuffer, len ) ) *************** *** 41,54 **** D = D->Next; } GLfloat *c = coord_pool; ! for ( i = 1; i <= number_of_vertices; i++, c += 3 ) P[i].Def( c[0], c[1], c[2] ); P3d *E[3]; Face *H; D = P.F; GLint *f = face_pool; P3d *p = &P.pPoints[1]; ! for ( i = 1; i <= P.n; i++, f += 3 ) { H = D->Next; E[0] = p + f[0]; --- 40,53 ---- D = D->Next; } GLfloat *c = coord_pool; ! for ( int i = 1; i <= number_of_vertices; i++, c += 3 ) P[i].Def( c[0], c[1], c[2] ); P3d *E[3]; Face *H; D = P.F; GLint *f = face_pool; P3d *p = &P.pPoints[1]; ! for ( int i = 1; i <= P.n; i++, f += 3 ) { H = D->Next; E[0] = p + f[0]; *************** *** 328,334 **** for (int i = 0; i < TotalLetters; i++ ) Ch[i].Restore( ); } ! void Alphabet::WriteToBinaryFile( char *name ) { FILE *stream = fopen( name,"wb"); if ( !stream ) --- 327,333 ---- for (int i = 0; i < TotalLetters; i++ ) Ch[i].Restore( ); } ! void Alphabet::WriteToBinaryFile( const char *name ) { FILE *stream = fopen( name,"wb"); if ( !stream ) *************** *** 341,347 **** Ch[i].WriteBinary( stream ); fclose( stream ); } ! void Alphabet::ReadFromBinaryFile( char *name ) { TotalLetters = TOTAL_LETTERS; if ( !size ) --- 340,346 ---- Ch[i].WriteBinary( stream ); fclose( stream ); } ! void Alphabet::ReadFromBinaryFile( const char *name ) { TotalLetters = TOTAL_LETTERS; if ( !size ) *************** *** 364,370 **** { Global.Characters->RestoreChars( ); } ! void Alphabet::ReadFromASCIIFile( char *name ) { int N = TOTAL_LETTERS; Global.Characters->TotalLetters = 0; --- 363,369 ---- { Global.Characters->RestoreChars( ); } ! void Alphabet::ReadFromASCIIFile( const char *name ) { int N = TOTAL_LETTERS; Global.Characters->TotalLetters = 0; *************** *** 482,488 **** Plane TxtPlane; ! void WriteNice( Color col, char *Text, Real x, Real y, Real rot_deg, Real size, Real opacity, const Plane &TextPlane ) { --- 481,487 ---- Plane TxtPlane; ! void WriteNice( Color col, const char *Text, Real x, Real y, Real rot_deg, Real size, Real opacity, const Plane &TextPlane ) { *************** *** 783,789 **** GLint *tf = face_pool; // read faces long dummy; ! for( i = 0; i < number_of_faces ; i++, tf += 3 ) { fscanf(stream,"%s",buff); Scan( stream, buff ,"Face" ); --- 782,788 ---- GLint *tf = face_pool; // read faces long dummy; ! for( int i = 0; i < number_of_faces ; i++, tf += 3 ) { fscanf(stream,"%s",buff); Scan( stream, buff ,"Face" ); *************** *** 980,986 **** opt = &h; if ( ++akt_kurve <= n1 ) Wf->w1[akt_kurve].Def( Wf->col, n, size ); ! for ( i = 1; i <= n; i++ ) { if ( akt_kurve <= n1 ) opt = &Wf->w1[akt_kurve].k[i]; curveOnSurface[i - 1].Optimize(*opt, size[i] ); --- 979,985 ---- opt = &h; if ( ++akt_kurve <= n1 ) Wf->w1[akt_kurve].Def( Wf->col, n, size ); ! for ( int i = 1; i <= n; i++ ) { if ( akt_kurve <= n1 ) opt = &Wf->w1[akt_kurve].k[i]; curveOnSurface[i - 1].Optimize(*opt, size[i] ); *************** *** 1656,1662 **** } } ! #include "fstream.h" void GammaBuffer::StoreInFile( const char *name ) { --- 1655,1664 ---- } } ! // #include "fstream.h" ! #include ! #include ! using namespace std; void GammaBuffer::StoreInFile( const char *name ) { Index: UNIX/C/f.cpp diff -c UNIX/C/f.cpp:1.1.1.1 UNIX/C/f.cpp:1.2 *** UNIX/C/f.cpp:1.1.1.1 Mon Jul 9 22:31:25 2007 --- UNIX/C/f.cpp Mon Apr 14 23:20:10 2008 *************** *** 445,451 **** uLine( 1, u1 ); uLine( n2, u2 ); int imax = u1.size; ! for ( int i = 1; i <= imax; i++ ) if ( *u1[i] != *u2[i] ) break; return i <= imax ? false : true; --- 445,452 ---- uLine( 1, u1 ); uLine( n2, u2 ); int imax = u1.size; ! int i; ! for ( i = 1; i <= imax; i++ ) if ( *u1[i] != *u2[i] ) break; return i <= imax ? false : true; *************** *** 456,462 **** vLine( 1, v1 ); vLine( n1, v2 ); int imax = v1.size; ! for ( int i = 1; i <= imax; i++ ) if ( *v1[i] != *v2[i] ) break; return i <= imax ? false : true; --- 457,464 ---- vLine( 1, v1 ); vLine( n1, v2 ); int imax = v1.size; ! int i; ! for ( i = 1; i <= imax; i++ ) if ( *v1[i] != *v2[i] ) break; return i <= imax ? false : true; *************** *** 537,543 **** if ( c < 0 || c > 100 ) SafeExit("Wrong color. Probably bad parameters in 'VLines'"); PL3d k; ! for ( int i = 1; i <= n1; i += n ) { vLine( i, k ); k.Draw( c, thick, offset, -1 ); --- 539,546 ---- if ( c < 0 || c > 100 ) SafeExit("Wrong color. Probably bad parameters in 'VLines'"); PL3d k; ! int i; ! for ( i = 1; i <= n1; i += n ) { vLine( i, k ); k.Draw( c, thick, offset, -1 ); *************** *** 758,764 **** int size[10]; int factor = 2; for ( int i = 1; i < 10; i++ ) size[i] = ( factor * 30 ) /* / n */; ! for ( i = 1; i <= n; i++ ) { curveOnSurface[i - 1].Optimize( opt, size[i] ); //curveOnSurface[i - 1].MarkPoints( f, 0.1 ); --- 761,767 ---- int size[10]; int factor = 2; for ( int i = 1; i < 10; i++ ) size[i] = ( factor * 30 ) /* / n */; ! for ( int i = 1; i <= n; i++ ) { curveOnSurface[i - 1].Optimize( opt, size[i] ); //curveOnSurface[i - 1].MarkPoints( f, 0.1 ); *************** *** 794,800 **** Boolean Plane::CarrierPlane( PO3d &o, Real tol ) const { GetTolerance( tol ); ! for ( int i = 1; i <= o.size; i++ ) if ( fabs( OrientedDistance(*o[i] ) ) > tol ) break; return i <= o.size ? false : true; } --- 797,804 ---- Boolean Plane::CarrierPlane( PO3d &o, Real tol ) const { GetTolerance( tol ); ! int i; ! for ( i = 1; i <= o.size; i++ ) if ( fabs( OrientedDistance(*o[i] ) ) > tol ) break; return i <= o.size ? false : true; } *************** *** 1092,1098 **** extern "C" { ! void gg_start( char *logfile ); void gg_ende( ); void gg_section( char *name1, char *name2, char *section ); void gg_union( char *name1, char *name2, char *united ); --- 1096,1102 ---- extern "C" { ! void gg_start( const char *logfile ); void gg_ende( ); void gg_section( char *name1, char *name2, char *section ); void gg_union( char *name1, char *name2, char *united ); *************** *** 1238,1244 **** P3d H; SwapElements( box[4], box[2], H ); } ! for ( i = 5; i <= 8; i++ ) box[i] = box[i - 4] + n; box.Rotate( Zaxis, 0.0001 ); return BooleOp( Total, Solid( box ), '*' ); --- 1242,1248 ---- P3d H; SwapElements( box[4], box[2], H ); } ! for ( int i = 5; i <= 8; i++ ) box[i] = box[i - 4] + n; box.Rotate( Zaxis, 0.0001 ); return BooleOp( Total, Solid( box ), '*' ); *************** *** 1447,1453 **** unsigned short idx[MAX_POLY_SIZE]; int count = 0; do { // read until c = '-' ! for ( int loop_anzahl = 1; loop_anzahl < max_loops; loop_anzahl++ ) { PL3d &cur_poly = p[loop_anzahl - 1]; int j = 0; do { --- 1451,1458 ---- unsigned short idx[MAX_POLY_SIZE]; int count = 0; do { // read until c = '-' ! int loop_anzahl; ! for ( loop_anzahl = 1; loop_anzahl < max_loops; loop_anzahl++ ) { PL3d &cur_poly = p[loop_anzahl - 1]; int j = 0; do { *************** *** 1459,1465 **** //fprintf( Output, "%d%c", (int) idx[j], c ); } while ( c != ')'); cur_poly.Def( j ); ! for ( i = 1; i <= j; i++ ) cur_poly[i] = &pPoints[idx[i]]; //fprintf( Output, "c = %c\n", c ); mehr_von_eingabe( &c, 1 ); --- 1464,1470 ---- //fprintf( Output, "%d%c", (int) idx[j], c ); } while ( c != ')'); cur_poly.Def( j ); ! for ( int i = 1; i <= j; i++ ) cur_poly[i] = &pPoints[idx[i]]; //fprintf( Output, "c = %c\n", c ); mehr_von_eingabe( &c, 1 ); *************** *** 1651,1657 **** BinOut = BinIn; rewind( BinOut ); mehr_nach_ausgabe( &n, 2 ); ! for ( i = 1; i <= n; i++ ) { if ( rot ) T[i].Rotate( ); --- 1656,1662 ---- BinOut = BinIn; rewind( BinOut ); mehr_nach_ausgabe( &n, 2 ); ! for ( int i = 1; i <= n; i++ ) { if ( rot ) T[i].Rotate( ); *************** *** 1683,1689 **** P3d P = (*Phdr)[i]; rna( P.x, P.y, P.z ); } ! for ( i = 0; i < 2; i++ ) { rna( 0, 0, 0 ); rna( 1, 0, 0 ); --- 1688,1694 ---- P3d P = (*Phdr)[i]; rna( P.x, P.y, P.z ); } ! for ( int i = 0; i < 2; i++ ) { rna( 0, 0, 0 ); rna( 1, 0, 0 ); *************** *** 1701,1706 **** --- 1706,1712 ---- // write faces Face *D; + int i; unsigned short idx; for ( i = 0, D = Phdr->F; i < Phdr->n; i++, D = D->Next ) { *************** *** 1723,1729 **** GetEdgeInfo( ); EdgeInfo *e = Phdr->e_info; int imax = Phdr->edges->m; ! for ( i = 0; i < imax; i++, e++ ) { if ( e->u ) fprintf( BinOut, "U%u,%u,%u,%u,", e->i1, e->i2, e->f1, e->f2 ); --- 1729,1735 ---- GetEdgeInfo( ); EdgeInfo *e = Phdr->e_info; int imax = Phdr->edges->m; ! for ( int i = 0; i < imax; i++, e++ ) { if ( e->u ) fprintf( BinOut, "U%u,%u,%u,%u,", e->i1, e->i2, e->f1, e->f2 ); Index: UNIX/C/g.cpp diff -c UNIX/C/g.cpp:1.1.1.1 UNIX/C/g.cpp:1.2 *** UNIX/C/g.cpp:1.1.1.1 Mon Jul 9 22:31:25 2007 --- UNIX/C/g.cpp Mon Apr 14 23:20:10 2008 *************** *** 656,666 **** Global.AlphaValue = alpha; } ! void GraphInfo::SetRGB( Color f, char *name, Real r, Real g, Real b ) { Palette( f, name, 1, r, g, b, r, g, b ); } ! void GraphInfo::Palette( Color c, char * /* name */ , int size, Real r1, Real g1, Real b1, Real r2, Real g2, Real b2 ) { if ( c > MAX_PALETTES ) --- 656,666 ---- Global.AlphaValue = alpha; } ! void GraphInfo::SetRGB( Color f, const char *name, Real r, Real g, Real b ) { Palette( f, name, 1, r, g, b, r, g, b ); } ! void GraphInfo::Palette( Color c, const char * /* name */ , int size, Real r1, Real g1, Real b1, Real r2, Real g2, Real b2 ) { if ( c > MAX_PALETTES ) *************** *** 1015,1021 **** { RotMatrix R; R.Def( axis.GetDir( ) ); ! for ( i = 1; i <= nPoints; i++ ) { pPoints[i].MatrixMult( R, pPoints[i] ); nrm[i].MatrixMult( R, nrm[i] ); --- 1015,1021 ---- { RotMatrix R; R.Def( axis.GetDir( ) ); ! for ( int i = 1; i <= nPoints; i++ ) { pPoints[i].MatrixMult( R, pPoints[i] ); nrm[i].MatrixMult( R, nrm[i] ); *************** *** 1843,1849 **** } return true; } ! Boolean Bestaetigt( LongWord abfr ) { return WinDialog( abfr ); } --- 1843,1849 ---- } return true; } ! Boolean Bestaetigt( const LongWord abfr ) { return WinDialog( abfr ); } *************** *** 2070,2077 **** { Real *x = &e[0][0]; for ( int i = 0; i < 3; i++, x++ ) *x = *zeile1++; ! for ( i = 0; i < 3; i++, x++ ) *x = *zeile2++; ! for ( i = 0; i < 3; i++, x++ ) *x = *zeile3++; } Real Matrix33::Det( ) { --- 2070,2077 ---- { Real *x = &e[0][0]; for ( int i = 0; i < 3; i++, x++ ) *x = *zeile1++; ! for ( int i = 0; i < 3; i++, x++ ) *x = *zeile2++; ! for ( int i = 0; i < 3; i++, x++ ) *x = *zeile3++; } Real Matrix33::Det( ) { Index: UNIX/C/h.cpp diff -c UNIX/C/h.cpp:1.1.1.1 UNIX/C/h.cpp:1.2 *** UNIX/C/h.cpp:1.1.1.1 Mon Jul 9 22:31:25 2007 --- UNIX/C/h.cpp Mon Apr 14 23:20:10 2008 *************** *** 273,281 **** Global.aura = style; } ! void G_zbuffer( Boolean bool ) { ! if ( bool ) { glEnable( GL_DEPTH_TEST ); glDepthFunc( GL_LEQUAL ); --- 273,281 ---- Global.aura = style; } ! void G_zbuffer( Boolean b ) { ! if ( b ) { glEnable( GL_DEPTH_TEST ); glDepthFunc( GL_LEQUAL ); *************** *** 690,696 **** d[n] = d[0]; int found = 0; P3d *S[2] = { &S1, &S2 }; ! for ( i = 0; i < n; i++ ) { if ( d[i] * d[i + 1] < 0 ) { --- 690,696 ---- d[n] = d[0]; int found = 0; P3d *S[2] = { &S1, &S2 }; ! for ( int i = 0; i < n; i++ ) { if ( d[i] * d[i + 1] < 0 ) { *************** *** 1188,1194 **** if ( ok ) { // undo move of conic ! for ( i = 0; i < 5; i++ ) { P[i].x -= 1; //P[i].y -= 1; --- 1188,1194 ---- if ( ok ) { // undo move of conic ! for ( int i = 0; i < 5; i++ ) { P[i].x -= 1; //P[i].y -= 1; *************** *** 1226,1232 **** size[i + 1] = branch[i].Size( ); c.Def( col, n, size ); int j, jmax; ! for ( i = 0; i < n; i++ ) { jmax = branch[i].nPoints; for ( j = 1; j <= jmax; j++ ) --- 1226,1232 ---- size[i + 1] = branch[i].Size( ); c.Def( col, n, size ); int j, jmax; ! for ( int i = 0; i < n; i++ ) { jmax = branch[i].nPoints; for ( j = 1; j <= jmax; j++ ) *************** *** 1300,1306 **** for ( int i = 0; i < 5; i++ ) P2[i] = T1( P3[i] ); Conic::Def( color, numPoints, P2 ); ! for ( i = 3; i < 5; i++ ) P3[i] = T2( P2[i] ); } void L2d::DrawPartInsideCircle( const P2d &M, Real rad, ThinOrThick style) --- 1300,1306 ---- for ( int i = 0; i < 5; i++ ) P2[i] = T1( P3[i] ); Conic::Def( color, numPoints, P2 ); ! for ( int i = 3; i < 5; i++ ) P3[i] = T2( P2[i] ); } void L2d::DrawPartInsideCircle( const P2d &M, Real rad, ThinOrThick style) Index: UNIX/C/o.cpp diff -c UNIX/C/o.cpp:1.1.1.1 UNIX/C/o.cpp:1.2 *** UNIX/C/o.cpp:1.1.1.1 Mon Jul 9 22:31:25 2007 --- UNIX/C/o.cpp Mon Apr 14 23:20:10 2008 *************** *** 173,179 **** if ( parallel ) { nu.Def( Origin, g[0].GetDir( ) ); ! for ( i = 0; i < 3; i++ ) H[i] = nu * g[i]; Circ3d c( Gray, H[0], H[1], H[2], 150 ); axis = c.axis; --- 173,179 ---- if ( parallel ) { nu.Def( Origin, g[0].GetDir( ) ); ! for ( int i = 0; i < 3; i++ ) H[i] = nu * g[i]; Circ3d c( Gray, H[0], H[1], H[2], 150 ); axis = c.axis; *************** *** 184,190 **** nu.Def( H[0], H[1], H[2] ); V3d n[3]; Plane p[3]; ! for ( i = 0; i < 3; i++ ) { n[i] = g[i].GetDir( ) ^ nu.n( ); p[i].Def( g[i].point, n[i] ); --- 184,190 ---- nu.Def( H[0], H[1], H[2] ); V3d n[3]; Plane p[3]; ! for ( int i = 0; i < 3; i++ ) { n[i] = g[i].GetDir( ) ^ nu.n( ); p[i].Def( g[i].point, n[i] ); *************** *** 207,213 **** V3d common_normal[3]; P3d F[3], Fg[3]; Real d[3], z[3]; ! for ( i = 0; i < 3; i++ ) { axis.CommonNormal( g[i], common_normal[i], F[i], Fg[i] ); d[i] = F[i].Distance( Fg[i] ); --- 207,213 ---- V3d common_normal[3]; P3d F[3], Fg[3]; Real d[3], z[3]; ! for ( int i = 0; i < 3; i++ ) { axis.CommonNormal( g[i], common_normal[i], F[i], Fg[i] ); d[i] = F[i].Distance( Fg[i] ); *************** *** 274,280 **** // Step 2: Calculate the vectors tri1[i]-->tri2[i]. // Their end-points define a plane perpendicular to the screw axis P3d v[3]; ! for ( i = 0; i < 3; i++ ) v[i] = tri2[i] - tri1[i]; Plane eps; eps.Def( v[0], v[1], v[2] ); --- 274,280 ---- // Step 2: Calculate the vectors tri1[i]-->tri2[i]. // Their end-points define a plane perpendicular to the screw axis P3d v[3]; ! for ( int i = 0; i < 3; i++ ) v[i] = tri2[i] - tri1[i]; Plane eps; eps.Def( v[0], v[1], v[2] ); *************** *** 287,293 **** // each other. V3d t = ( axis_dir * v[0] ) * axis_dir; P3d moved_tri1[3]; ! for ( i = 0; i < 3; i++ ) moved_tri1[i] = tri1[i] + t; Rot3d::Def( moved_tri1, tri2 ); Real len = t.Length( ); --- 287,293 ---- // each other. V3d t = ( axis_dir * v[0] ) * axis_dir; P3d moved_tri1[3]; ! for ( int i = 0; i < 3; i++ ) moved_tri1[i] = tri1[i] + t; Rot3d::Def( moved_tri1, tri2 ); Real len = t.Length( ); *************** *** 557,563 **** vereinigung.Def( col, nPoints + zusaetzlich.nPoints ); for ( int i = 1; i <= nPoints; i++ ) vereinigung.pPoints[i] = pPoints[i]; ! for ( i = 1; i <= zusaetzlich.nPoints; i++ ) vereinigung.pPoints[nPoints + i] = zusaetzlich.pPoints[i]; } void O23d::MarkPoints( Color f, Real r1, Real r2, int step ) --- 557,563 ---- vereinigung.Def( col, nPoints + zusaetzlich.nPoints ); for ( int i = 1; i <= nPoints; i++ ) vereinigung.pPoints[i] = pPoints[i]; ! for ( int i = 1; i <= zusaetzlich.nPoints; i++ ) vereinigung.pPoints[nPoints + i] = zusaetzlich.pPoints[i]; } void O23d::MarkPoints( Color f, Real r1, Real r2, int step ) *************** *** 570,576 **** { Real d0 = 0; GetTolerance( tol ); ! for ( int i = 1; i <= nPoints; i++ ) { d0 = e.OrientedDistance( pPoints[i] ); if ( fabs( d0 ) > tol ) --- 570,577 ---- { Real d0 = 0; GetTolerance( tol ); ! int i; ! for ( i = 1; i <= nPoints; i++ ) { d0 = e.OrientedDistance( pPoints[i] ); if ( fabs( d0 ) > tol ) *************** *** 895,901 **** paintInterior = filled; isARing = false; Texture = NULL; } ! void P2d::AttachString( Color f, Real dx, Real dy, String80 text, int /* size */ ) { Real t = TheWindow.ScaleFactor( ); PrintString( f, x + t * dx, y + t * dy, "%s", text ); --- 896,902 ---- paintInterior = filled; isARing = false; Texture = NULL; } ! void P2d::AttachString( Color f, Real dx, Real dy, const String80 text, int /* size */ ) { Real t = TheWindow.ScaleFactor( ); PrintString( f, x + t * dx, y + t * dy, "%s", text ); *************** *** 1061,1067 **** } ! void P2d::Write( Color f, Real xx, Real yy, String80 text, int size ) { P2d P( xx, yy ); char t[80]; --- 1062,1068 ---- } ! void P2d::Write( Color f, Real xx, Real yy, const String80 text, int size ) { P2d P( xx, yy ); char t[80]; *************** *** 1375,1381 **** memcpy( &pPoints[1], &prev[1], n * sizeof( P3d ) ); delete [] prev; P3d *P = &pPoints[n + 1]; ! for ( i = 1; i <= obj.nPoints; i++ ) { if ( new_point[i] ) { --- 1376,1382 ---- memcpy( &pPoints[1], &prev[1], n * sizeof( P3d ) ); delete [] prev; P3d *P = &pPoints[n + 1]; ! for ( int i = 1; i <= obj.nPoints; i++ ) { if ( new_point[i] ) { *************** *** 1489,1495 **** if ( nrm ) { V3d adir = a.GetDir( ); ! for ( i = 1; i <= nPoints; i++ ) nrm[i].Rotate( adir, w ); } if ( Phdr ) --- 1490,1496 ---- if ( nrm ) { V3d adir = a.GetDir( ); ! for ( int i = 1; i <= nPoints; i++ ) nrm[i].Rotate( adir, w ); } if ( Phdr ) *************** *** 2410,2416 **** CalcMatrices( ); } ! #include "fstream.h" void Projection::SaveEyeAndLight( ) { --- 2411,2420 ---- CalcMatrices( ); } ! // #include "fstream.h" ! #include ! #include ! using namespace std; void Projection::SaveEyeAndLight( ) { *************** *** 2686,2692 **** cross_prd( PolyKonst.n, a, b ); if ( PolyKonst.n.Length( ) < EPS ) { ! for ( int j = 4; j <= n; j++ ) { subt_vec( b, pPoints[j], pPoints[1] ); cross_prd( PolyKonst.n, a, b ); --- 2690,2697 ---- cross_prd( PolyKonst.n, a, b ); if ( PolyKonst.n.Length( ) < EPS ) { ! int j; ! for ( j = 4; j <= n; j++ ) { subt_vec( b, pPoints[j], pPoints[1] ); cross_prd( PolyKonst.n, a, b ); *************** *** 2735,2741 **** V3d reflektiert = n0 + h; Real cos_w = dot_prd( ProjRay, reflektiert ); if ( true || !normal_is_oriented || cos_w >= 0 ) { ! for ( i = 0; i < Refl_factor; i++ ) cos_w *= cos_w * cos_w; const Real specular[ ] = { 0.2, 0.4, 3, 50}; Highlight = specular[Refl_factor]; --- 2740,2746 ---- V3d reflektiert = n0 + h; Real cos_w = dot_prd( ProjRay, reflektiert ); if ( true || !normal_is_oriented || cos_w >= 0 ) { ! for ( int i = 0; i < Refl_factor; i++ ) cos_w *= cos_w * cos_w; const Real specular[ ] = { 0.2, 0.4, 3, 50}; Highlight = specular[Refl_factor]; *************** *** 2880,2888 **** #define SLASH '/' ! void safe_open( FILE **f, char *name, char *mode, char *possible_path ) { ! char *n = name, *c; *f = fopen( name, mode ); if (*f ) { Alloc_string( n, strlen( name ) ); --- 2885,2894 ---- #define SLASH '/' ! void safe_open( FILE **f, const char *name, const char *mode, const char *possible_path ) { ! char *n, *c; ! n= strdup (name); *f = fopen( name, mode ); if (*f ) { Alloc_string( n, strlen( name ) ); Index: UNIX/C/s.cpp diff -c UNIX/C/s.cpp:1.1.1.1 UNIX/C/s.cpp:1.2 *** UNIX/C/s.cpp:1.1.1.1 Mon Jul 9 22:31:25 2007 --- UNIX/C/s.cpp Mon Apr 14 23:20:10 2008 *************** *** 241,247 **** } p_on_Face = Face; ! for ( i = 0; i < Faces; i++ ) { strcpy( St_text, "VERTEX" ); Write_Group( 0, TEXT ); --- 241,247 ---- } p_on_Face = Face; ! for ( int i = 0; i < Faces; i++ ) { strcpy( St_text, "VERTEX" ); Write_Group( 0, TEXT ); *************** *** 606,612 **** Global.printer->SetViewport( w, h ); } #include "vecletter.h" ! void P3d::AttachString( Color col, Real dx, Real dy, String80 text , int size ) const { if ( Global.HiQuality ) { --- 606,612 ---- Global.printer->SetViewport( w, h ); } #include "vecletter.h" ! void P3d::AttachString( Color col, Real dx, Real dy, const String80 text , int size ) const { if ( Global.HiQuality ) { *************** *** 753,759 **** #include "vecletter.h" ! void PrintString( Color col, Real x, Real y, char *s, ... ) { if ( Global.DXF->Active( ) ) return; --- 753,759 ---- #include "vecletter.h" ! void PrintString( Color col, Real x, Real y, const char *s, ... ) { if ( Global.DXF->Active( ) ) return; *************** *** 1098,1103 **** --- 1098,1104 ---- #endif Boolean inc = false; int a = Global.Autorot; + if ( Global.RelevantChange == -1 ) { Global.frame++; *************** *** 1152,1158 **** return Buffer[i]; } ! void SafeExit( char *txt ) { Write( StrCat( "exit program:\n", txt ) ); //Global.Delete( ); --- 1153,1159 ---- return Buffer[i]; } ! void SafeExit( const char *txt ) { Write( StrCat( "exit program:\n", txt ) ); //Global.Delete( ); *************** *** 1497,1508 **** return ( fabs( x-v.x ) > tol || fabs( y-v.y ) > tol || fabs( z-v.z ) > tol ? false : true ); } ! void V2d::Print( char *text ) const { V23d::Print( text, 2 ); } ! void V23d::Print( char *str, int dim ) const { char s[100]; if ( str[0] != '@') --- 1498,1509 ---- return ( fabs( x-v.x ) > tol || fabs( y-v.y ) > tol || fabs( z-v.z ) > tol ? false : true ); } ! void V2d::Print( const char *text ) const { V23d::Print( text, 2 ); } ! void V23d::Print( const char *str, int dim ) const { char s[100]; if ( str[0] != '@') *************** *** 1521,1527 **** } Write( s ); } ! void V23d::PrintOnce( char *str, int dim ) const { static int i = 0; if ( i++ == 1 ) --- 1522,1528 ---- } Write( s ); } ! void V23d::PrintOnce( const char *str, int dim ) const { static int i = 0; if ( i++ == 1 ) *************** *** 1532,1538 **** { Global.HiQuality = on_off; } ! void Write( const char *s1, int i, Real f, char *s2 ) { if ( !GlobVarInitialized ) { --- 1533,1539 ---- { Global.HiQuality = on_off; } ! void Write( const char *s1, int i, Real f, const char *s2 ) { if ( !GlobVarInitialized ) { *************** *** 1593,1599 **** int NAddr = 0; ! void StoreArrayInfo( void *ram, int size, char *str) { #ifdef DEBUG char s[100]; --- 1594,1600 ---- int NAddr = 0; ! void StoreArrayInfo( void *ram, int size, const char *str) { #ifdef DEBUG char s[100]; *************** *** 1762,1768 **** } // check if this is a real BMP file ! if ( header.bfType != 'MB' ) { fclose( BmpFile ); BmpFile = NULL; SafeExit( StrCat( filename, " is not a bitmap-file") ); --- 1763,1769 ---- } // check if this is a real BMP file ! if ( strcmp (header.bfType, "MB" )) { fclose( BmpFile ); BmpFile = NULL; SafeExit( StrCat( filename, " is not a bitmap-file") ); *************** *** 1936,1942 **** size = size_of_Bitmapfileheader + size_Bitmapinfo + 1024 + ( data->bmiHeader.biWidth * data->bmiHeader.biHeight ); ! header.bfType = 'MB'; header.bfSize = size; header.bfReserved1 = 0; header.bfReserved2 = 0; --- 1937,1943 ---- size = size_of_Bitmapfileheader + size_Bitmapinfo + 1024 + ( data->bmiHeader.biWidth * data->bmiHeader.biHeight ); ! strncpy (header.bfType, "MB", 2); header.bfSize = size; header.bfReserved1 = 0; header.bfReserved2 = 0; *************** *** 2102,2108 **** { int w0 = bitmap.data->bmiHeader.biWidth; int h0 = bitmap.data->bmiHeader.biHeight; ! for ( int p = 0; p < 20; p++ ) { if ( ( 1 << p ) > w0 ) break; --- 2103,2110 ---- { int w0 = bitmap.data->bmiHeader.biWidth; int h0 = bitmap.data->bmiHeader.biHeight; ! int p; ! for ( p = 0; p < 20; p++ ) { if ( ( 1 << p ) > w0 ) break; *************** *** 2250,2256 **** P2d origin( 0, 0 ); d.Rotate( origin, -w ); V3d min = d[1], max = d[1]; ! for ( i = 2; i <= nPoints; i++ ) { minmax2d( min, max, d[i] ); } --- 2252,2258 ---- P2d origin( 0, 0 ); d.Rotate( origin, -w ); V3d min = d[1], max = d[1]; ! for ( int i = 2; i <= nPoints; i++ ) { minmax2d( min, max, d[i] ); } Index: UNIX/C/time.c diff -c UNIX/C/time.c:1.1.1.1 UNIX/C/time.c:1.2 *** UNIX/C/time.c:1.1.1.1 Mon Jul 9 22:31:25 2007 --- UNIX/C/time.c Mon Apr 14 23:20:10 2008 *************** *** 44,50 **** Time_at_start = clock(); No_of_repetitions = 0; } ! double TotalTime = 0; void repeat_task() { if (Time_at_start != -1) --- 44,50 ---- Time_at_start = clock(); No_of_repetitions = 0; } ! double TotalTime = 0.; void repeat_task() { if (Time_at_start != -1) Index: UNIX/H/bitmap.h diff -c UNIX/H/bitmap.h:1.1.1.1 UNIX/H/bitmap.h:1.2 *** UNIX/H/bitmap.h:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/H/bitmap.h Mon Apr 14 23:20:10 2008 *************** *** 35,41 **** typedef struct tagOG_BITMAPFILEHEADER { // bmfh ! WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; --- 35,41 ---- typedef struct tagOG_BITMAPFILEHEADER { // bmfh ! char bfType[2]; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; Index: UNIX/H/fptr.h diff -c UNIX/H/fptr.h:1.1.1.1 UNIX/H/fptr.h:1.2 *** UNIX/H/fptr.h:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/H/fptr.h Mon Apr 14 23:20:10 2008 *************** *** 96,99 **** #endif // DO_NOT_OVERWRITE_OPENGL_FUNCTIONS ! #endif __FPTR_H__ --- 96,99 ---- #endif // DO_NOT_OVERWRITE_OPENGL_FUNCTIONS ! #endif // __FPTR_H__ Index: UNIX/H/gbuffer.h diff -c UNIX/H/gbuffer.h:1.1.1.1 UNIX/H/gbuffer.h:1.2 *** UNIX/H/gbuffer.h:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/H/gbuffer.h Mon Apr 14 23:20:10 2008 *************** *** 67,74 **** 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 ); public: GammaBuffer( ) { }; --- 67,74 ---- 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 ); public: GammaBuffer( ) { }; Index: UNIX/H/globals.h diff -c UNIX/H/globals.h:1.1.1.1 UNIX/H/globals.h:1.2 *** UNIX/H/globals.h:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/H/globals.h Mon Apr 14 23:20:10 2008 *************** *** 12,18 **** #define INIT( var, value ) var #endif ! void SafeExit( char *txt ); char *StrCat( const char *s1, const char *s2 ); GLOBAL int INIT( GlobVarInitialized, false); --- 12,18 ---- #define INIT( var, value ) var #endif ! void SafeExit( const char *txt ); char *StrCat( const char *s1, const char *s2 ); GLOBAL int INIT( GlobVarInitialized, false); Index: UNIX/H/graphinf.h diff -c UNIX/H/graphinf.h:1.1.1.1 UNIX/H/graphinf.h:1.2 *** UNIX/H/graphinf.h:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/H/graphinf.h Mon Apr 14 23:20:10 2008 *************** *** 13,21 **** void BildaufbauZeigen( ); void ZeichnungZeigen( Boolean mit_esc ); void StandardColors( ); ! void SetRGB( Color f, char *name, Real r, Real g, Real b ); ! void Palette( Color f, char *name, int size, ! Real r1, Real g1, Real b1, Real r2, Real g2, Real b2 ); void make_spectrum( Vector rgb1, Vector rgb2, int start_idx, int size ); ~GraphInfo( ); }; --- 13,20 ---- void BildaufbauZeigen( ); void ZeichnungZeigen( Boolean mit_esc ); void StandardColors( ); ! void SetRGB( Color f, const char *name, Real r, Real g, Real b ); ! void Palette( Color f, const char *name, int size, Real r1, Real g1, Real b1, Real r2, Real g2, Real b2 ); void make_spectrum( Vector rgb1, Vector rgb2, int start_idx, int size ); ~GraphInfo( ); }; Index: UNIX/H/o23d.h diff -c UNIX/H/o23d.h:1.1.1.1 UNIX/H/o23d.h:1.2 *** UNIX/H/o23d.h:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/H/o23d.h Mon Apr 14 23:20:10 2008 *************** *** 23,29 **** void ChangeColor( Color new_color ) { col = new_color; } Color GetColor( ) { return col; } void MarkPoints( Color f, Real r1 = 0.2, Real r2 = 0, int step = 1 ); ! void Check( char *txt) const { if ( !pPoints ) SafeExit(StrCat( txt, " not defined") ); } int IsPoint( P3d &X, Real tol = 1e-4 ); void Melt( O23d &theAddition, int inWhichOrder = 1 ); P3d * FirstPoint( ) { return &pPoints[1]; } --- 23,29 ---- void ChangeColor( Color new_color ) { col = new_color; } Color GetColor( ) { return col; } void MarkPoints( Color f, Real r1 = 0.2, Real r2 = 0, int step = 1 ); ! void Check( const char *txt) const { if ( !pPoints ) SafeExit(StrCat( txt, " not defined") ); } int IsPoint( P3d &X, Real tol = 1e-4 ); void Melt( O23d &theAddition, int inWhichOrder = 1 ); P3d * FirstPoint( ) { return &pPoints[1]; } *************** *** 31,37 **** Boolean AddPoints( O23d &obj ); void Poly( int i ); void Copy( O23d &result, int n1 = -1, int n2 = -1 ) const; ! Color F( Color f ) { return f == NULL ? col : f; } void SwapOrderOfPoints( ); void Transform( PO3d &k ); P23d GetBaryCenter( ) const; --- 31,37 ---- Boolean AddPoints( O23d &obj ); void Poly( int i ); void Copy( O23d &result, int n1 = -1, int n2 = -1 ) const; ! Color F( Color f ) { return f == 0 /* NULL */ ? col : f; } void SwapOrderOfPoints( ); void Transform( PO3d &k ); P23d GetBaryCenter( ) const; Index: UNIX/H/points.h diff -c UNIX/H/points.h:1.1.1.1 UNIX/H/points.h:1.2 *** UNIX/H/points.h:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/H/points.h Mon Apr 14 23:20:10 2008 *************** *** 27,35 **** void Translate( Real dx, Real dy ) { x += dx; y += dy; } void Translate( const V2d &v ) { x += v.x; y += v.y; } void Scale( Real kx, Real ky ) { x *= kx; y *= ky; } ! void Write( Color f, Real xx, Real yy, String80 text, int size ); ! void AttachString( Color f, Real dx, Real dy, ! String80 text, int size = 1 ); inline friend P2d operator + ( const P2d &v, const V2d &w ) { return P2d( v.x + w.x, v.y + w.y ); } inline friend P2d operator - ( const P2d &v, const V2d &w ) --- 27,34 ---- void Translate( Real dx, Real dy ) { x += dx; y += dy; } void Translate( const V2d &v ) { x += v.x; y += v.y; } void Scale( Real kx, Real ky ) { x *= kx; y *= ky; } ! void Write( Color f, Real xx, Real yy, const String80 text, int size ); ! void AttachString( Color f, Real dx, Real dy, const String80 text, int size = 1 ); inline friend P2d operator + ( const P2d &v, const V2d &w ) { return P2d( v.x + w.x, v.y + w.y ); } inline friend P2d operator - ( const P2d &v, const V2d &w ) *************** *** 102,108 **** void Mark( Color f, Real r1, Real r2 = 0, int Dim = 3 ) const { P23d::Mark( f, r1, r2, Dim ); } void MarkPixel( Color f ) const; ! void AttachString( Color f, Real dx, Real dy, String80 text, int size = 1 ) const; void Inversion( const Sphere &sphere ); }; #define __POINTS_H__ --- 101,107 ---- void Mark( Color f, Real r1, Real r2 = 0, int Dim = 3 ) const { P23d::Mark( f, r1, r2, Dim ); } void MarkPixel( Color f ) const; ! void AttachString( Color f, Real dx, Real dy, const String80 text, int size = 1 ) const; void Inversion( const Sphere &sphere ); }; #define __POINTS_H__ Index: UNIX/H/poly3d.h diff -c UNIX/H/poly3d.h:1.1.1.1 UNIX/H/poly3d.h:1.2 *** UNIX/H/poly3d.h:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/H/poly3d.h Mon Apr 14 23:20:10 2008 *************** *** 78,87 **** struct Poly3dS: public Poly3d { ! Poly3dS::Poly3dS( ) { } void Shadow( Poly3d &plane, Real offset ); }; #define __POLY3D_H__ ! #endif __POLY3D_H__ --- 78,87 ---- struct Poly3dS: public Poly3d { ! /* Poly3dS:: */ Poly3dS( ) { } void Shadow( Poly3d &plane, Real offset ); }; #define __POLY3D_H__ ! #endif // __POLY3D_H__ Index: UNIX/H/sg.h diff -c UNIX/H/sg.h:1.1.1.1 UNIX/H/sg.h:1.2 *** UNIX/H/sg.h:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/H/sg.h Mon Apr 14 23:20:10 2008 *************** *** 64,70 **** void SetFrameNum( int n ); void Zoomfaktor( Real k ); void Aufblinken( Color f, char *text ); ! Boolean Bestaetigt( LongWord abfrage ); Boolean WinDialog( const char *pszMsg ); void Warte( int millisec ); void RGB_speichern( int, int, int, int ); --- 64,70 ---- void SetFrameNum( int n ); void Zoomfaktor( Real k ); void Aufblinken( Color f, char *text ); ! Boolean Bestaetigt( const LongWord abfrage ); Boolean WinDialog( const char *pszMsg ); void Warte( int millisec ); void RGB_speichern( int, int, int, int ); *************** *** 86,92 **** */ #define DUMMY -83561207 // some weared number (real or int) ! void Write( const char *s1, int i = DUMMY, Real f = DUMMY, char *s2 = NULL ); #include "alloc_mem.h" #include"intarray.h" --- 86,92 ---- */ #define DUMMY -83561207 // some weared number (real or int) ! void Write( const char *s1, int i = DUMMY, Real f = DUMMY, const char *s2 = NULL ); #include "alloc_mem.h" #include"intarray.h" *************** *** 158,164 **** PO3d( int n ) { p = NULL; Def( n ); } P3d * &operator [ ] ( int i ) { return p[i]; } void Def( int n ); ! void Check( char *txt ) const { if ( !p ) SafeExit( StrCat( txt, "....ptr-object not defined") ); } void SetPoint( int i, P3d *q ) { p[i] = q; } void Copy( PO3d &result, int n1 = -1, int n2 = -1 ); void Transform( O23d &k ); --- 158,164 ---- PO3d( int n ) { p = NULL; Def( n ); } P3d * &operator [ ] ( int i ) { return p[i]; } void Def( int n ); ! void Check( const char *txt ) const { if ( !p ) SafeExit( StrCat( txt, "....ptr-object not defined") ); } void SetPoint( int i, P3d *q ) { p[i] = q; } void Copy( PO3d &result, int n1 = -1, int n2 = -1 ); void Transform( O23d &k ); *************** *** 257,264 **** virtual ~SpiralMotion( ) { } }; #define MAX_LINES 20 ! void TextBox( char * ); ! Boolean YesNoBox( char * ); struct Message { String80 Zeileninhalt[MAX_LINES]; --- 257,264 ---- virtual ~SpiralMotion( ) { } }; #define MAX_LINES 20 ! void TextBox( const char * ); ! Boolean YesNoBox( const char * ); struct Message { String80 Zeileninhalt[MAX_LINES]; *************** *** 331,338 **** { max = n; v = NULL; ALLOC_ARRAY( Vector, v, max, "vpool"); m = 0; } Vector * Add( P3d &P, Real tol = 0 ) { GetTolerance( tol ); ! for ( int i = 0; i < m; i++ ) if ( fabs( P.x - v[i][0] ) < tol && fabs( P.y - v[i][1] ) < tol && fabs( P.z - v[i][2] ) < tol ) break; --- 331,339 ---- { max = n; v = NULL; ALLOC_ARRAY( Vector, v, max, "vpool"); m = 0; } Vector * Add( P3d &P, Real tol = 0 ) { + int i; GetTolerance( tol ); ! for ( i = 0; i < m; i++ ) if ( fabs( P.x - v[i][0] ) < tol && fabs( P.y - v[i][1] ) < tol && fabs( P.z - v[i][2] ) < tol ) break; Index: UNIX/H/splines.h diff -c UNIX/H/splines.h:1.1.1.1 UNIX/H/splines.h:1.2 *** UNIX/H/splines.h:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/H/splines.h Mon Apr 14 23:20:10 2008 *************** *** 63,66 **** #define __SPLINES_H__ ! #endif __SPLINES_H__ --- 63,66 ---- #define __SPLINES_H__ ! #endif // __SPLINES_H__ Index: UNIX/H/stdafx.h diff -c UNIX/H/stdafx.h:1.1.1.1 UNIX/H/stdafx.h:1.2 *** UNIX/H/stdafx.h:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/H/stdafx.h Mon Apr 14 23:20:10 2008 *************** *** 26,29 **** #endif // _AFX_NO_AFXCMN_SUPPORT ! #endif --- 26,29 ---- #endif // _AFX_NO_AFXCMN_SUPPORT ! #endif // IRIS Index: UNIX/H/useful.h diff -c UNIX/H/useful.h:1.1.1.1 UNIX/H/useful.h:1.2 *** UNIX/H/useful.h:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/H/useful.h Mon Apr 14 23:20:10 2008 *************** *** 3,13 **** void ShowString( const char *text ); void ShowInteger( const char *text, int value ); void ShowReal( const char *text, Real value ); ! void WriteNice( Color col, char *Text, Real x, Real y, Real rot_deg, Real size, Real opacity = 1, const Plane &TextPlane = XYplane ); void HiQuality( Boolean on_off = true ); ! void PrintString( Color col, Real x, Real y, char *s, ...); void SetOpacity( Real alpha ); Real GetOpacity( ); void ScaleLetters( Real tx, Real ty = 0 ); --- 3,13 ---- void ShowString( const char *text ); void ShowInteger( const char *text, int value ); void ShowReal( const char *text, Real value ); ! void WriteNice( Color col, const char *Text, Real x, Real y, Real rot_deg, Real size, Real opacity = 1, const Plane &TextPlane = XYplane ); void HiQuality( Boolean on_off = true ); ! void PrintString( Color col, Real x, Real y, const char *s, ...); void SetOpacity( Real alpha ); Real GetOpacity( ); void ScaleLetters( Real tx, Real ty = 0 ); Index: UNIX/H/vecletter.h diff -c UNIX/H/vecletter.h:1.1.1.1 UNIX/H/vecletter.h:1.2 *** UNIX/H/vecletter.h:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/H/vecletter.h Mon Apr 14 23:20:10 2008 *************** *** 27,35 **** public: Alphabet( ); void Def( int number_of_chars ); ! void ReadFromASCIIFile( char *name ); ! void WriteToBinaryFile( char *name ); ! void ReadFromBinaryFile( char *name ); void RestoreChars( ); void Check_3DS_FILE( ); VectorLetter & operator ( ) ( int i ) { return Ch[i]; } --- 27,35 ---- public: Alphabet( ); void Def( int number_of_chars ); ! void ReadFromASCIIFile( const char *name ); ! void WriteToBinaryFile( const char *name ); ! void ReadFromBinaryFile( const char *name ); void RestoreChars( ); void Check_3DS_FILE( ); VectorLetter & operator ( ) ( int i ) { return Ch[i]; } Index: UNIX/H/vector.h diff -c UNIX/H/vector.h:1.1.1.1 UNIX/H/vector.h:1.2 *** UNIX/H/vector.h:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/H/vector.h Mon Apr 14 23:20:10 2008 *************** *** 27,37 **** Boolean operator != ( const V23d &v ); void operator = ( const V23d &v ); void operator = ( Vector v ); ! void Print( char *str = "@", int dim = 3 ) const; void Normalize( V23d &norm ) const; void Normalize( ); private: ! void PrintOnce( char *str = "@", int dim = 3 ) const; }; // Now we derive V2d and V3d and add operators --- 27,37 ---- Boolean operator != ( const V23d &v ); void operator = ( const V23d &v ); void operator = ( Vector v ); ! void Print( const char *str = "@", int dim = 3 ) const; void Normalize( V23d &norm ) const; void Normalize( ); private: ! void PrintOnce( const char *str = "@", int dim = 3 ) const; }; // Now we derive V2d and V3d and add operators *************** *** 56,62 **** V2d NormalVector( ) const; Boolean Collinear( const V2d &v, Real tol = 0 ) const; void Reflect( const StrL2d &g ); ! void Print( char *str = "@" ) const; void Rotate( Real angle_in_deg ); }; class V3d: public V23d --- 56,62 ---- V2d NormalVector( ) const; Boolean Collinear( const V2d &v, Real tol = 0 ) const; void Reflect( const StrL2d &g ); ! void Print( const char *str = "@" ) const; void Rotate( Real angle_in_deg ); }; class V3d: public V23d Index: UNIX/SYS/Authors.h diff -c /dev/null UNIX/SYS/Authors.h:1.1 *** /dev/null Fri Apr 18 17:55:55 2008 --- UNIX/SYS/Authors.h Mon Apr 14 23:19:34 2008 *************** *** 0 **** --- 1,35 ---- + // Authors.h : header file + // + + ///////////////////////////////////////////////////////////////////////////// + // Authors dialog + + class Authors : public CDialog + { + // Construction + public: + Authors( CWnd* pParent = NULL ); // standard constructor + + // Dialog Data + //{{AFX_DATA( authors ) + enum { IDD = IDD_ABOUT_THE_AUTHORS }; + // NOTE: the ClassWizard will add data members here + //}}AFX_DATA + + + // Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL( authors ) + protected: + virtual void DoDataExchange( CDataExchange* pDX ); // DDX/DDV support + //}}AFX_VIRTUAL + + // Implementation + protected: + + // Generated message map functions + //{{AFX_MSG( authors ) + // NOTE: the ClassWizard will add member functions here + //}}AFX_MSG + DECLARE_MESSAGE_MAP( ) + }; Index: UNIX/SYS/authors.cpp diff -c UNIX/SYS/authors.cpp:1.1.1.1 UNIX/SYS/authors.cpp:1.2 *** UNIX/SYS/authors.cpp:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/SYS/authors.cpp Mon Apr 14 23:20:02 2008 *************** *** 2,7 **** --- 2,9 ---- // #include "stdafx.h" + + #ifndef __GNUC__ #include "mfcgl.h" #include "Authors.h" *************** *** 41,43 **** --- 43,46 ---- ///////////////////////////////////////////////////////////////////////////// // Authors message handlers + #endif Index: UNIX/SYS/authors.h diff -c UNIX/SYS/authors.h:1.1.1.1 UNIX/SYS/authors.h:removed *** UNIX/SYS/authors.h:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/SYS/authors.h Fri Apr 18 17:55:55 2008 *************** *** 1,35 **** - // Authors.h : header file - // - - ///////////////////////////////////////////////////////////////////////////// - // Authors dialog - - class Authors : public CDialog - { - // Construction - public: - Authors( CWnd* pParent = NULL ); // standard constructor - - // Dialog Data - //{{AFX_DATA( authors ) - enum { IDD = IDD_ABOUT_THE_AUTHORS }; - // NOTE: the ClassWizard will add data members here - //}}AFX_DATA - - - // Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL( authors ) - protected: - virtual void DoDataExchange( CDataExchange* pDX ); // DDX/DDV support - //}}AFX_VIRTUAL - - // Implementation - protected: - - // Generated message map functions - //{{AFX_MSG( authors ) - // NOTE: the ClassWizard will add member functions here - //}}AFX_MSG - DECLARE_MESSAGE_MAP( ) - }; --- 0 ---- Index: UNIX/SYS/fps_dlg.cpp diff -c UNIX/SYS/fps_dlg.cpp:1.1.1.1 UNIX/SYS/fps_dlg.cpp:1.2 *** UNIX/SYS/fps_dlg.cpp:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/SYS/fps_dlg.cpp Mon Apr 14 23:20:02 2008 *************** *** 47,53 **** { if ( m_dFramesPerSecond == 0.0 ) { ! extern void TextBox( char * ); TextBox("0.0 frames per second ist not allowed"); return; } --- 47,53 ---- { if ( m_dFramesPerSecond == 0.0 ) { ! extern void TextBox( const char * ); TextBox("0.0 frames per second ist not allowed"); return; } Index: UNIX/SYS/kbdxplai.cpp diff -c UNIX/SYS/kbdxplai.cpp:1.1.1.1 UNIX/SYS/kbdxplai.cpp:1.2 *** UNIX/SYS/kbdxplai.cpp:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/SYS/kbdxplai.cpp Mon Apr 14 23:20:02 2008 *************** *** 1,6 **** --- 1,7 ---- // KbdXplain.cpp : implementation file // + #ifndef __GNUC__ #include "stdafx.h" #include "mfcgl.h" #include "KbdXplain.h" *************** *** 41,43 **** --- 42,45 ---- ///////////////////////////////////////////////////////////////////////////// // KbdXplain message handlers + #endif Index: UNIX/SYS/main.cpp diff -c UNIX/SYS/main.cpp:1.1.1.1 UNIX/SYS/main.cpp:1.2 *** UNIX/SYS/main.cpp:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/SYS/main.cpp Mon Apr 14 23:20:02 2008 *************** *** 1,175 **** ! //#include "stdafx.h" ! #include ! #include ! #define SYSTEM_DEPENDENT_FUNCTIONS ! #define DEF_LOCALS ! #define GG_ENVIRONMENT ! #include "lc.h" ! ! ! unsigned int gg_uLastVirtualKeyPressed; ! #include "GL/glx.h" ! #include "key_react.h" ! ! extern "C" ! { ! #include "GL/aux.h" ! void delay( long millisecs); ! void start_time_measuring(FILE *fp); ! void interrupt_time_measuring(FILE *fp); ! void continue_time_measuring(); ! void stop_time_measuring(FILE *fp); ! void repeat_task(); ! double TotalTime; ! } ! ! Boolean YesNoBox( char *txt ) ! { ! printf("\a%s y/n? ", txt); ! char c; ! do { ! scanf("%c", &c); ! c = tolower( c ); ! if ( c == 'y' ) ! return true; ! else if ( c == 'n' ) ! return false; ! } while ( true ); ! } ! ! void TextBox( char *txt ) ! { ! printf("\a%s\n", txt); ! } ! ! #include ! #include ! #include ! ! void GraphicsSwapBuffers() ! { ! repeat_task( ); ! PrintString( PureRed, TheWindow.x_, 0.8 * TheWindow.y_, ! "%s", Global.TimerString ); ! glFlush(); ! glXSwapBuffers (auxXDisplay(), auxXWindow()); ! //TheCamera.RotateHorizontally( 1 ); ! } ! ! void stopIdleFunc (AUX_EVENTREC * /*event*/ ) ! { ! auxIdleFunc(0); ! } ! ! void change_auto (AUX_EVENTREC */* event*/ ) ! { ! Global.Autorot = 1 - Global.Autorot; ! } ! void change_auto2 ( ) ! { ! Global.Autorot = 1 - Global.Autorot; ! } ! void top_view( ) { KeyReact('1'); } ! void front_view( ) { KeyReact('2'); } ! void right_side_view( ) { KeyReact('3'); } ! void bottom_view( ) { KeyReact('4'); } ! void back_view( ) { KeyReact( '5' ); } ! void left_side_view( ) { KeyReact('6'); } ! void show_revious_persp( ) { KeyReact( '7' ); } ! void switch_projection( ) { KeyReact( '8' ); } ! void rot_pos_hor( ) { KeyReact( 'h' ); } ! void rot_pos_45( ) { KeyReact( '>' ); } ! void rot_neg_45( ) { KeyReact( '<' ); } ! void rot_neg_hor( ) { KeyReact( 'H' ); } ! void rot_pos_vert( ) { KeyReact( 'v' ); } ! void rot_neg_vert( ) { KeyReact( 'V' ); } ! void move_closer( ) { KeyReact( 'D' ); } ! void move_away( ) { KeyReact( 'd' ); } ! void zoom_in( ) { KeyReact( 'z' ); } ! void zoom_out( ) { KeyReact( 'Z' ); } ! void say_keys( ) { KeyReact( HELP ); } ! void full_speed( ) { KeyReact( 'f' ); } ! void next_frame( ) { KeyReact( 'F' ); } ! void move_up( ) { KeyReact( UPARROW ); } ! void move_down( ) { KeyReact( DOWNARROW ); } ! void move_left( ) { KeyReact( LEFTARROW ); } ! void move_right( ) { KeyReact( RIGHTARROW ); } ! void roll_pos( ) { KeyReact( 'r' ); } ! void roll_neg( ) { KeyReact( 'R' ); } ! void save_eye( ) { KeyReact( 's' ); } ! void rot_light_pos( ) { KeyReact( 'l' ); } ! void rot_light_neg( ) { KeyReact( 'L' ); } ! //void show_light( ) { KeyReact( 's' ); } ! ! extern void DrawCurrentFrame (void); ! ! void startIdleFunc (AUX_EVENTREC * /* event */ ) ! { ! auxIdleFunc(DrawCurrentFrame); ! } ! ! ! void enable_mouse_and_keys( ) ! { ! auxKeyFunc (AUX_1, top_view); ! auxKeyFunc (AUX_2, front_view); ! auxKeyFunc (AUX_3, right_side_view); ! auxKeyFunc (AUX_4, bottom_view); ! auxKeyFunc (AUX_5, back_view); ! auxKeyFunc (AUX_6, left_side_view); ! auxKeyFunc (AUX_7, show_revious_persp); ! auxKeyFunc (AUX_8, switch_projection); ! auxKeyFunc (AUX_d, move_away); ! auxKeyFunc (AUX_D, move_closer); ! auxKeyFunc (AUX_f, full_speed ); ! auxKeyFunc (AUX_F, next_frame ); ! auxKeyFunc (AUX_h, rot_pos_hor); ! auxKeyFunc (AUX_H, rot_neg_hor); ! auxKeyFunc (AUX_k, say_keys ); ! auxKeyFunc (AUX_l, rot_light_pos ); ! auxKeyFunc (AUX_L, rot_light_pos ); ! auxKeyFunc (AUX_r, roll_pos ); ! auxKeyFunc (AUX_R, roll_neg ); ! auxKeyFunc (AUX_s, save_eye ); ! auxKeyFunc (AUX_t, change_auto2); ! auxKeyFunc (AUX_v, rot_pos_vert); ! auxKeyFunc (AUX_V, rot_neg_vert); ! auxKeyFunc (AUX_y, rot_pos_45 ); ! auxKeyFunc (AUX_Y, rot_neg_45 ); ! auxKeyFunc (AUX_z, zoom_in); ! auxKeyFunc (AUX_Z, zoom_out); ! auxKeyFunc (AUX_LEFT, move_left ); ! auxKeyFunc (AUX_RIGHT, move_right ); ! auxKeyFunc (AUX_UP, move_up ); ! auxKeyFunc (AUX_DOWN, move_down ); ! auxMouseFunc (AUX_LEFTBUTTON, AUX_MOUSEDOWN, startIdleFunc); ! auxMouseFunc (AUX_LEFTBUTTON, AUX_MOUSEDOWN, startIdleFunc); ! auxMouseFunc (AUX_MIDDLEBUTTON, AUX_MOUSEDOWN, stopIdleFunc); ! auxMouseFunc (AUX_RIGHTBUTTON, AUX_MOUSEDOWN, change_auto); ! } ! void open_graphics() ! { ! auxInitDisplayMode (AUX_DOUBLE | AUX_RGB); ! auxInitPosition (0, 0, gg_MaxX(), gg_MaxY()); ! auxInitWindow ( "Open Geometry = OpenGL + Advanced Geometry"); ! extern void GLResize(GLsizei w, GLsizei h); ! GLResize( gg_MaxX(), gg_MaxY() ); ! auxReshapeFunc ( GLResize ); ! enable_mouse_and_keys( ); ! start_time_measuring( Output ); ! extern void InitAll( ); ! InitAll( ); ! Write( "Klick into drawing window\nand type 'k' for keyboard-information" ); ! } ! void show_graphics( ) ! { ! auxIdleFunc (DrawCurrentFrame); ! auxMainLoop(DrawCurrentFrame); ! } ! ! int main( ) ! { ! open_graphics(); ! show_graphics( ); ! return 0; ! } --- 1,280 ---- ! //#include "stdafx.h" ! #include ! #include ! #define SYSTEM_DEPENDENT_FUNCTIONS ! #define DEF_LOCALS ! #define GG_ENVIRONMENT ! #include "lc.h" ! ! ! unsigned int gg_uLastVirtualKeyPressed; ! #include "GL/glx.h" ! #include "key_react.h" ! ! extern "C" ! { ! #include "GL/glut.h" ! void delay( long millisecs); ! void start_time_measuring(FILE *fp); ! void interrupt_time_measuring(FILE *fp); ! void continue_time_measuring(); ! void stop_time_measuring(FILE *fp); ! void repeat_task(); ! } ! ! Boolean YesNoBox( const char *txt ) ! { ! printf("\a%s y/n? ", txt); ! char c; ! do { ! scanf("%c", &c); ! c = tolower( c ); ! if ( c == 'y' ) ! return true; ! else if ( c == 'n' ) ! return false; ! } while ( true ); ! } ! ! void TextBox( const char *txt ) ! { ! printf("\a%s\n", txt); ! } ! ! #include ! #include ! #include ! ! int winIdMain; ! ! void GraphicsSwapBuffers() ! { ! repeat_task( ); ! PrintString( PureRed, TheWindow.x_, 0.8 * TheWindow.y_, ! "%s", Global.TimerString ); ! glFlush(); ! glutSwapBuffers(); ! //TheCamera.RotateHorizontally( 1 ); ! } ! ! void stopIdleFunc ( int button, int state, int x, int y ) ! { ! // auxIdleFunc(0); ! } ! ! void change_auto ( int button, int state, int x, int y ) ! { ! Global.Autorot = 1 - Global.Autorot; ! } ! ! void change_auto2 ( ) ! { ! Global.Autorot = 1 - Global.Autorot; ! } ! ! void top_view( ) { KeyReact('1'); } ! void front_view( ) { KeyReact('2'); } ! void right_side_view( ) { KeyReact('3'); } ! void bottom_view( ) { KeyReact('4'); } ! void back_view( ) { KeyReact( '5' ); } ! void left_side_view( ) { KeyReact('6'); } ! void show_revious_persp( ) { KeyReact( '7' ); } ! void switch_projection( ) { KeyReact( '8' ); } ! void rot_pos_hor( ) { KeyReact( 'h' ); } ! void rot_pos_45( ) { KeyReact( '>' ); } ! void rot_neg_45( ) { KeyReact( '<' ); } ! void rot_neg_hor( ) { KeyReact( 'H' ); } ! void rot_pos_vert( ) { KeyReact( 'v' ); } ! void rot_neg_vert( ) { KeyReact( 'V' ); } ! void move_closer( ) { KeyReact( 'D' ); } ! void move_away( ) { KeyReact( 'd' ); } ! void zoom_in( ) { KeyReact( 'z' ); } ! void zoom_out( ) { KeyReact( 'Z' ); } ! void say_keys( ) { KeyReact( HELP ); } ! void full_speed( ) { KeyReact( 'f' ); } ! void next_frame( ) { KeyReact( 'F' ); } ! void move_up( ) { KeyReact( UPARROW ); } ! void move_down( ) { KeyReact( DOWNARROW ); } ! void move_left( ) { KeyReact( LEFTARROW ); } ! void move_right( ) { KeyReact( RIGHTARROW ); } ! void roll_pos( ) { KeyReact( 'r' ); } ! void roll_neg( ) { KeyReact( 'R' ); } ! void save_eye( ) { KeyReact( 's' ); } ! void rot_light_pos( ) { KeyReact( 'l' ); } ! void rot_light_neg( ) { KeyReact( 'L' ); } ! //void show_light( ) { KeyReact( 's' ); } ! ! extern void DrawCurrentFrame (void); ! ! void startIdleFunc ( int button, int state, int x, int y ) ! { ! DrawCurrentFrame(); ! } ! ! ! void wKey (unsigned char key, int x, int y) { ! /* fprintf (stderr, "== key[%c] at x/y %d/%d\n", key, x, y); */ ! switch (key) { ! case 27: /* ESC */ ! case 'q': ! exit(0); ! break; ! case '1': ! top_view(); ! break; ! case '2': ! front_view(); ! break; ! case '3': ! right_side_view(); ! break; ! case '4': ! bottom_view(); ! break; ! case '5': ! back_view(); ! break; ! case '6': ! left_side_view(); ! break; ! case '7': ! show_revious_persp(); ! break; ! case '8': ! switch_projection(); ! break; ! case 'd': ! move_away(); ! break; ! case 'D': ! move_closer(); ! break; ! case 'f': ! full_speed(); ! break; ! case 'F': ! next_frame(); ! break; ! case 'h': ! rot_pos_hor(); ! break; ! case 'H': ! rot_neg_hor(); ! break; ! case 'k': ! say_keys(); ! break; ! case 'l': ! rot_light_pos(); ! break; ! case 'L': ! rot_light_neg(); ! break; ! case 'r': ! roll_pos(); ! break; ! case 'R': ! roll_neg(); ! break; ! case 's': ! save_eye(); ! break; ! case 't': ! change_auto2(); ! break; ! case 'v': ! rot_pos_vert(); ! break; ! case 'V': ! rot_neg_vert(); ! break; ! case 'y': ! rot_pos_45(); ! break; ! case 'Y': ! rot_neg_45(); ! break; ! case 'z': ! zoom_in(); ! break; ! case 'Z': ! zoom_out(); ! break; ! default: ! fprintf (stderr, "Key <%c> ignored\n", key); ! return; ! } ! } ! ! void wSpecialKey (int key, int x, int y) { ! ! /* static int gsf = 0; */ ! /* fprintf (stderr, "glutSpecialFunc %d\n", ++gsf); */ ! ! switch (key) { ! case GLUT_KEY_UP: ! move_up(); ! break; ! case GLUT_KEY_DOWN: ! move_down(); ! break; ! case GLUT_KEY_LEFT: ! move_left(); ! break; ! case GLUT_KEY_RIGHT: ! move_right(); ! break; ! default: ! fprintf (stderr, "SpecialKey <%c> ignored\n", key); ! return; ! } ! // glutPostWindowRedisplay (winIdMain); ! } ! ! void wMouse (int button, int state, int x, int y) { ! glutMouseFunc (startIdleFunc); ! glutMouseFunc (stopIdleFunc); ! glutMouseFunc (change_auto); ! } ! ! void wIdle (void) { ! glutPostWindowRedisplay (winIdMain); ! } ! ! void open_graphics() ! { ! start_time_measuring( Output ); ! extern void InitAll( ); ! InitAll( ); ! Write( "Klick into drawing window\nand type 'k' for keyboard-information" ); ! } ! ! void show_graphics( ) ! { ! glutDisplayFunc (DrawCurrentFrame); ! glutMainLoop (); ! } ! ! int main(int argc, char **argv) ! { ! glutInit (&argc, argv); ! glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); ! ! glutInitWindowSize (gg_MaxX(), gg_MaxY()); ! ! winIdMain = glutCreateWindow ("Open Geometry = OpenGL + Advanced Geometry"); ! ! extern void GLResize(GLsizei w, GLsizei h); ! GLResize( gg_MaxX(), gg_MaxY() ); ! ! glutReshapeFunc ( GLResize ); ! ! glutKeyboardFunc (wKey); ! glutSpecialFunc (wSpecialKey); ! glutMouseFunc (wMouse); ! glutIdleFunc (wIdle); ! ! open_graphics(); ! show_graphics( ); ! return 0; ! } Index: UNIX/SYS/mfcgl.h diff -c UNIX/SYS/mfcgl.h:1.1.1.1 UNIX/SYS/mfcgl.h:1.2 *** UNIX/SYS/mfcgl.h:1.1.1.1 Mon Jul 9 22:31:27 2007 --- UNIX/SYS/mfcgl.h Mon Apr 14 23:20:02 2008 *************** *** 1,6 **** --- 1,7 ---- // mfcgl.h : main header file for the MFCGL application // + #ifndef __GNUC__ #ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH #endif *************** *** 36,38 **** --- 37,40 ---- ///////////////////////////////////////////////////////////////////////////// + #endif Index: UNIX/X/2D/first2d.cpp diff -c UNIX/X/2D/first2d.cpp:1.1.1.1 UNIX/X/2D/first2d.cpp:1.2 *** UNIX/X/2D/first2d.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/2D/first2d.cpp Mon Apr 14 23:20:10 2008 *************** *** 33,36 **** xyCoordinates( -12.0, 12.0, -10.0, 10.0 ); } } -  \ No newline at end of file --- 33,35 ---- Index: UNIX/X/FUHS/4.cpp diff -c UNIX/X/FUHS/4.cpp:1.1.1.1 UNIX/X/FUHS/4.cpp:1.2 *** UNIX/X/FUHS/4.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/FUHS/4.cpp Thu Apr 17 00:31:32 2008 *************** *** 146,152 **** // D1p in aehnliche Lage bringen D1p.Rotate( a0, w ); StrL3d h; ! for ( i = 1; i < 3; i++ ) { D1p.pPoints[i].z = Dz[1][i]; D2p.pPoints[i].z = Dz[2][i]; v1 = D1p.pPoints[i] - D2p.pPoints[i]; --- 146,152 ---- // D1p in aehnliche Lage bringen D1p.Rotate( a0, w ); StrL3d h; ! for ( int i = 1; i < 3; i++ ) { D1p.pPoints[i].z = Dz[1][i]; D2p.pPoints[i].z = Dz[2][i]; v1 = D1p.pPoints[i] - D2p.pPoints[i]; *************** *** 173,179 **** else PolyLine.FrontFaces( ); // SpiralMotion oft ausfuehren... ! for ( i = 0; i < 45; i++ ) { Oben.pPoints[1] = D1.pPoints[2]; Oben.pPoints[2] = D2.pPoints[2]; Oben.pPoints[3] = D2.pPoints[3]; --- 173,179 ---- else PolyLine.FrontFaces( ); // SpiralMotion oft ausfuehren... ! for ( int i = 0; i < 45; i++ ) { Oben.pPoints[1] = D1.pPoints[2]; Oben.pPoints[2] = D2.pPoints[2]; Oben.pPoints[3] = D2.pPoints[3]; Index: UNIX/X/HELISPIRALS/2.cpp diff -c UNIX/X/HELISPIRALS/2.cpp:1.1.1.1 UNIX/X/HELISPIRALS/2.cpp:1.2 *** UNIX/X/HELISPIRALS/2.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/HELISPIRALS/2.cpp Thu Apr 17 00:31:32 2008 *************** *** 42,48 **** basePlane.Def( PureWhite, 20, 20, FILLED ); basePlane.Translate( -10, -10, MinZ ); P3d *E[4]; ! for (int j = 0; j < 4; j++ ) E[j] = &basePlane[j + 1]; bP.Def( 4, E ); AnArc *arc = new AnArc; --- 42,49 ---- basePlane.Def( PureWhite, 20, 20, FILLED ); basePlane.Translate( -10, -10, MinZ ); P3d *E[4]; ! int j; ! for ( j = 0; j < 4; j++ ) E[j] = &basePlane[j + 1]; bP.Def( 4, E ); AnArc *arc = new AnArc; Index: UNIX/X/HELISPIRALS/eland2.cpp diff -c UNIX/X/HELISPIRALS/eland2.cpp:1.1.1.1 UNIX/X/HELISPIRALS/eland2.cpp:1.2 *** UNIX/X/HELISPIRALS/eland2.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/HELISPIRALS/eland2.cpp Thu Apr 17 00:31:32 2008 *************** *** 77,83 **** } Horn[1]( ).Reflect( YZplane ); Axis[1].Reflect( YZplane ); ! for ( i = 0; i < 2; i++ ) { Horn[i]( ).Rotate( Yaxis, 25 ); Axis[i].Rotate( Yaxis, 25 ); --- 77,83 ---- } Horn[1]( ).Reflect( YZplane ); Axis[1].Reflect( YZplane ); ! for ( int i = 0; i < 2; i++ ) { Horn[i]( ).Rotate( Yaxis, 25 ); Axis[i].Rotate( Yaxis, 25 ); Index: UNIX/X/HELISPIRALS/fig7.cpp diff -c UNIX/X/HELISPIRALS/fig7.cpp:1.1.1.1 UNIX/X/HELISPIRALS/fig7.cpp:1.2 *** UNIX/X/HELISPIRALS/fig7.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/HELISPIRALS/fig7.cpp Thu Apr 17 00:31:32 2008 *************** *** 81,87 **** basePlane.Def( PureWhite, 20, 20, FILLED ); basePlane.Translate( -10, -10, MinZ ); P3d *E[4]; ! for (int j = 0; j < 4; j++ ) E[j] = &basePlane[j + 1]; bP.Def( 4, E ); AnArc *arc = new AnArc; --- 81,88 ---- basePlane.Def( PureWhite, 20, 20, FILLED ); basePlane.Translate( -10, -10, MinZ ); P3d *E[4]; ! int j; ! for ( j = 0; j < 4; j++ ) E[j] = &basePlane[j + 1]; bP.Def( 4, E ); AnArc *arc = new AnArc; *************** *** 192,195 **** } void Scene::CleanUp ( ) { ! } \ No newline at end of file --- 193,196 ---- } void Scene::CleanUp ( ) { ! } Index: UNIX/X/MILLING/fgraph2d_.cpp diff -c UNIX/X/MILLING/fgraph2d_.cpp:1.1.1.1 UNIX/X/MILLING/fgraph2d_.cpp:1.2 *** UNIX/X/MILLING/fgraph2d_.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/fgraph2d_.cpp Thu Apr 17 00:31:32 2008 *************** *** 33,39 **** x += 0.5 * y; return -0.4 * x * x + y * y - sin( 1.5 * x ); } ! #include "X/Milling/milling.h" class Graph2_5d: public ParamCurve3d --- 33,39 ---- x += 0.5 * y; return -0.4 * x * x + y * y - sin( 1.5 * x ); } ! #include "X/MILLING/milling.h" class Graph2_5d: public ParamCurve3d Index: UNIX/X/MILLING/gen_offset.cpp diff -c UNIX/X/MILLING/gen_offset.cpp:1.1.1.1 UNIX/X/MILLING/gen_offset.cpp:1.2 *** UNIX/X/MILLING/gen_offset.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/gen_offset.cpp Thu Apr 17 00:31:32 2008 *************** *** 5,11 **** //0const Real u0 = 0.04, v0 = 0.97; const Real u1 = -1.5, u2 = 1.5, v1 = -1.5, v2 = 1.5; ! #include "X/Milling/milling.h" Real f( Real x, Real y ) { --- 5,11 ---- //0const Real u0 = 0.04, v0 = 0.97; const Real u1 = -1.5, u2 = 1.5, v1 = -1.5, v2 = 1.5; ! #include "X/MILLING/milling.h" Real f( Real x, Real y ) { *************** *** 39,45 **** G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.062 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 39,45 ---- G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.062 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MILLING/gen_offset2.cpp diff -c UNIX/X/MILLING/gen_offset2.cpp:1.1.1.1 UNIX/X/MILLING/gen_offset2.cpp:1.2 *** UNIX/X/MILLING/gen_offset2.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/gen_offset2.cpp Thu Apr 17 00:31:32 2008 *************** *** 157,163 **** G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 157,163 ---- G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MILLING/iso2.cpp diff -c UNIX/X/MILLING/iso2.cpp:1.1.1.1 UNIX/X/MILLING/iso2.cpp:1.2 *** UNIX/X/MILLING/iso2.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/iso2.cpp Thu Apr 17 00:31:32 2008 *************** *** 100,106 **** { c.Def( Gray, Size( ) + 1 ); int w = 180 / Size( ); ! for ( int i = 0; i < Size( ); i++ ) c[i + 1]( r[i] * SinCosTan.c[w * i], r[i] * SinCosTan.s[w * i] ); c[ i + 1]( -c[1].x, -c[1].y, c[1].z ); } --- 100,107 ---- { c.Def( Gray, Size( ) + 1 ); int w = 180 / Size( ); ! int i; ! for ( i = 0; i < Size( ); i++ ) c[i + 1]( r[i] * SinCosTan.c[w * i], r[i] * SinCosTan.s[w * i] ); c[ i + 1]( -c[1].x, -c[1].y, c[1].z ); } *************** *** 134,140 **** StrL2d s( Origin2d, Xdir2d ); P2d S1, S2; int w = 180 / Size( ); ! for ( i = 0; i < Size( ); i++ ) { if ( c2.SectionWithStraightLine( s, S1, S2 ) ) BufferRadius( i, S1.Length( ) ); --- 135,141 ---- StrL2d s( Origin2d, Xdir2d ); P2d S1, S2; int w = 180 / Size( ); ! for ( int i = 0; i < Size( ); i++ ) { if ( c2.SectionWithStraightLine( s, S1, S2 ) ) BufferRadius( i, S1.Length( ) ); *************** *** 163,169 **** } Conic c2; P2d P[5]; ! for ( i = 1; i <= 3; i++ ) P[i-1] = c[1][10 * i]; P[3] = -1 * P[0]; P[4] = -1 * P[1]; --- 164,170 ---- } Conic c2; P2d P[5]; ! for ( int i = 1; i <= 3; i++ ) P[i-1] = c[1][10 * i]; P[3] = -1 * P[0]; P[4] = -1 * P[1]; *************** *** 173,179 **** StrL2d s( Origin2d, Xdir2d ); P2d S1, S2; int w = 180 / Size( ); ! for ( i = 0; i < Size( ); i++ ) { if ( c2.SectionWithStraightLine( s, S1, S2 ) ) BufferRadius( i, S1.Length( ) ); --- 174,180 ---- StrL2d s( Origin2d, Xdir2d ); P2d S1, S2; int w = 180 / Size( ); ! for ( int i = 0; i < Size( ); i++ ) { if ( c2.SectionWithStraightLine( s, S1, S2 ) ) BufferRadius( i, S1.Length( ) ); *************** *** 245,251 **** Q.z = F.z( Q.x, Q.y ) - c; if ( Q.z > 0.1 ) { ! static first = true; if ( first ) ShowReal( "Q.z = ", Q.z ); first = false; --- 246,252 ---- Q.z = F.z( Q.x, Q.y ) - c; if ( Q.z > 0.1 ) { ! static Boolean first = true; if ( first ) ShowReal( "Q.z = ", Q.z ); first = false; Index: UNIX/X/MILLING/local_millability.cpp diff -c UNIX/X/MILLING/local_millability.cpp:1.1.1.1 UNIX/X/MILLING/local_millability.cpp:1.2 *** UNIX/X/MILLING/local_millability.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/local_millability.cpp Thu Apr 17 00:31:32 2008 *************** *** 5,11 **** const Real u0 = 0.04, v0 = 0.97; const Real u1 = -1.5, u2 = 1.50, v1 = -1.5, v2 = 1.5; ! #include "X/Milling/milling.h" Real f( Real x, Real y ) { --- 5,11 ---- const Real u0 = 0.04, v0 = 0.97; const Real u1 = -1.5, u2 = 1.50, v1 = -1.5, v2 = 1.5; ! #include "X/MILLING/milling.h" Real f( Real x, Real y ) { *************** *** 38,44 **** G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 38,44 ---- G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MILLING/mill2.cpp diff -c UNIX/X/MILLING/mill2.cpp:1.1.1.1 UNIX/X/MILLING/mill2.cpp:1.2 *** UNIX/X/MILLING/mill2.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/mill2.cpp Thu Apr 17 00:31:32 2008 *************** *** 86,92 **** for (int i = 0; i <= size + 1; i++) if (!defined[i]) SafeExit("not all axes defined"); ! for (i = 1; i <= size; i++) screw[i].Def(axis[i - 1], axis[i], axis[i + 1]); screws_defined = true; } --- 86,92 ---- for (int i = 0; i <= size + 1; i++) if (!defined[i]) SafeExit("not all axes defined"); ! for (int i = 1; i <= size; i++) screw[i].Def(axis[i - 1], axis[i], axis[i + 1]); screws_defined = true; } Index: UNIX/X/MILLING/milling.cpp diff -c UNIX/X/MILLING/milling.cpp:1.1.1.1 UNIX/X/MILLING/milling.cpp:1.3 *** UNIX/X/MILLING/milling.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/milling.cpp Fri Apr 18 17:55:27 2008 *************** *** 337,343 **** } Circ3d c( Black, A[0], A[1], A[2], 2, EMPTY ); Real rho = 0; ! for ( i = 0; i < 3; i++ ) { v[i] = A[i] - c.Middle; if ( i == 0 ) rho = v[i].Length( ); --- 337,343 ---- } Circ3d c( Black, A[0], A[1], A[2], 2, EMPTY ); Real rho = 0; ! for ( int i = 0; i < 3; i++ ) { v[i] = A[i] - c.Middle; if ( i == 0 ) rho = v[i].Length( ); *************** *** 372,378 **** //mer.Draw(PureBlue, true ); mer.Reflect( mu ); mer.SwapOrderOfPoints( ); ! for ( j = 1 + fine ; j <= mer.nPoints; j += fine, P++ ) *P = mer[j]; //mer.Draw(PureBlue, true ); w1->Draw( PureBlue, MEDIUM ); --- 372,378 ---- //mer.Draw(PureBlue, true ); mer.Reflect( mu ); mer.SwapOrderOfPoints( ); ! for ( int j = 1 + fine ; j <= mer.nPoints; j += fine, P++ ) *P = mer[j]; //mer.Draw(PureBlue, true ); w1->Draw( PureBlue, MEDIUM ); *************** *** 393,406 **** { Buffer.PutPolyhedron( W.T, 1 + NumOfPaths % 5 ); //Buffer.Show( ); ! static is_stored = true;//false; if ( !is_stored ) { CString c; c.Format( "junk%d.buf", NumOfPaths ); Buffer.StoreInFile( ( const char * ) c ); is_stored = true; ! } IncreaseNumOfPaths = true; //first = false; } --- 393,411 ---- { Buffer.PutPolyhedron( W.T, 1 + NumOfPaths % 5 ); //Buffer.Show( ); ! static Boolean is_stored = true;//false; if ( !is_stored ) { + #ifdef __MSVC__ CString c; c.Format( "junk%d.buf", NumOfPaths ); + #else + char c[20]; + sprintf( c, "junk%d.buf", NumOfPaths ); + #endif Buffer.StoreInFile( ( const char * ) c ); is_stored = true; ! } IncreaseNumOfPaths = true; //first = false; } Index: UNIX/X/MILLING/milling.h diff -c UNIX/X/MILLING/milling.h:1.1.1.1 UNIX/X/MILLING/milling.h:1.2 *** UNIX/X/MILLING/milling.h:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/milling.h Thu Apr 17 00:31:32 2008 *************** *** 145,148 **** } #define __MILLING_H__ ! #endif __MILLING_H__ --- 145,148 ---- } #define __MILLING_H__ ! #endif /* __MILLING_H__ */ Index: UNIX/X/MILLING/millingp.cpp diff -c UNIX/X/MILLING/millingp.cpp:1.1.1.1 UNIX/X/MILLING/millingp.cpp:1.2 *** UNIX/X/MILLING/millingp.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/millingp.cpp Thu Apr 17 00:31:32 2008 *************** *** 1,4 **** ! #include "openGEOM.h" // This is the magic include file class SetOfAxes; CubicSpline3d *PathA, *PathB; --- 1,4 ---- ! #include "opengeom.h" // This is the magic include file class SetOfAxes; CubicSpline3d *PathA, *PathB; Index: UNIX/X/MILLING/millingpath.cpp diff -c UNIX/X/MILLING/millingpath.cpp:1.1.1.1 UNIX/X/MILLING/millingpath.cpp:1.2 *** UNIX/X/MILLING/millingpath.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/millingpath.cpp Thu Apr 17 00:31:32 2008 *************** *** 1,4 **** ! #include "openGEOM.h" // This is the magic include file class SetOfAxes; CubicSpline3d *PathA, *PathB; --- 1,4 ---- ! #include "opengeom.h" // This is the magic include file class SetOfAxes; CubicSpline3d *PathA, *PathB; Index: UNIX/X/MILLING/offset.cpp diff -c UNIX/X/MILLING/offset.cpp:1.1.1.1 UNIX/X/MILLING/offset.cpp:1.2 *** UNIX/X/MILLING/offset.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/offset.cpp Thu Apr 17 00:31:33 2008 *************** *** 157,163 **** G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 157,163 ---- G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MILLING/offset1.cpp diff -c UNIX/X/MILLING/offset1.cpp:1.1.1.1 UNIX/X/MILLING/offset1.cpp:1.2 *** UNIX/X/MILLING/offset1.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/offset1.cpp Thu Apr 17 00:31:33 2008 *************** *** 6,12 **** //const Real u0 = -1, v0 = 1; const Real u1 = -1.5, u2 = 1.5, v1 = -0.51, v2 = -0.5; ! #include "X/Milling/milling.h" Real f( Real x, Real y ) { --- 6,12 ---- //const Real u0 = -1, v0 = 1; const Real u1 = -1.5, u2 = 1.5, v1 = -0.51, v2 = -0.5; ! #include "X/MILLING/milling.h" Real f( Real x, Real y ) { *************** *** 39,45 **** G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 39,45 ---- G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MILLING/offset_cyl.cpp diff -c UNIX/X/MILLING/offset_cyl.cpp:1.1.1.1 UNIX/X/MILLING/offset_cyl.cpp:1.2 *** UNIX/X/MILLING/offset_cyl.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/offset_cyl.cpp Thu Apr 17 00:31:33 2008 *************** *** 150,156 **** //G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 150,156 ---- //G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MILLING/offset_ell.cpp diff -c UNIX/X/MILLING/offset_ell.cpp:1.1.1.1 UNIX/X/MILLING/offset_ell.cpp:1.2 *** UNIX/X/MILLING/offset_ell.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/offset_ell.cpp Thu Apr 17 00:31:33 2008 *************** *** 155,161 **** G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 155,161 ---- G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MILLING/offset_hyp.cpp diff -c UNIX/X/MILLING/offset_hyp.cpp:1.1.1.1 UNIX/X/MILLING/offset_hyp.cpp:1.2 *** UNIX/X/MILLING/offset_hyp.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/offset_hyp.cpp Thu Apr 17 00:31:33 2008 *************** *** 168,174 **** G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 168,174 ---- G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MILLING/protecting_cutter.cpp diff -c UNIX/X/MILLING/protecting_cutter.cpp:1.1.1.1 UNIX/X/MILLING/protecting_cutter.cpp:1.2 *** UNIX/X/MILLING/protecting_cutter.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/protecting_cutter.cpp Thu Apr 17 00:31:33 2008 *************** *** 138,144 **** //G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 138,144 ---- //G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MILLING/relative_curv1.cpp diff -c UNIX/X/MILLING/relative_curv1.cpp:1.1.1.1 UNIX/X/MILLING/relative_curv1.cpp:1.2 *** UNIX/X/MILLING/relative_curv1.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/relative_curv1.cpp Thu Apr 17 00:31:33 2008 *************** *** 6,12 **** Real u0 = 0.04, v0 = 0.97; const Real u1 = -5, u2 = 5, v1 = -4, v2 = 4; ! #include "X/Milling/milling.h" Real f( Real x, Real y ) { --- 6,12 ---- Real u0 = 0.04, v0 = 0.97; const Real u1 = -5, u2 = 5, v1 = -4, v2 = 4; ! #include "X/MILLING/milling.h" Real f( Real x, Real y ) { *************** *** 139,145 **** G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 139,145 ---- G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MILLING/relative_curv2.cpp diff -c UNIX/X/MILLING/relative_curv2.cpp:1.1.1.1 UNIX/X/MILLING/relative_curv2.cpp:1.2 *** UNIX/X/MILLING/relative_curv2.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/relative_curv2.cpp Thu Apr 17 00:31:33 2008 *************** *** 6,12 **** Real u0, v0, u1, v1, u2, v2; int Version = 3; ! #include "X/Milling/milling.h" Real f( Real x, Real y ) { --- 6,12 ---- Real u0, v0, u1, v1, u2, v2; int Version = 3; ! #include "X/MILLING/milling.h" Real f( Real x, Real y ) { *************** *** 79,84 **** --- 79,85 ---- }; void Curve::Draw( Color c, ThinOrThick style ) { + #define DEFAULT_OFFSET 0 QuickLineMode( style, DEFAULT_OFFSET ); for ( int i = 1; i < nPoints; i++ ) { *************** *** 110,116 **** Rot.Def( tau.n( ) ); Rot.Invert( Inv ); P3d Q[5]; ! static count = 0; Boolean show = type == 1 && ++count % 3 == 0 && inside ? true : false; for ( int i = 0; i < 5; i++, P3++ ) { --- 111,117 ---- Rot.Def( tau.n( ) ); Rot.Invert( Inv ); P3d Q[5]; ! static int count = 0; Boolean show = type == 1 && ++count % 3 == 0 && inside ? true : false; for ( int i = 0; i < 5; i++, P3++ ) { *************** *** 240,246 **** G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 241,247 ---- G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MILLING/sculpt_surf.cpp diff -c UNIX/X/MILLING/sculpt_surf.cpp:1.1.1.1 UNIX/X/MILLING/sculpt_surf.cpp:1.2 *** UNIX/X/MILLING/sculpt_surf.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/sculpt_surf.cpp Thu Apr 17 00:31:33 2008 *************** *** 41,47 **** for ( int i = 1; i <= n; i++ ) x1[ i ]( x[i].x, x[i].y, ZMIN ); RealArray s( n ); ! for ( i = 1; i < n; i++ ) { q[1] = x[i]; q[2] = x1[i]; --- 41,47 ---- for ( int i = 1; i <= n; i++ ) x1[ i ]( x[i].x, x[i].y, ZMIN ); RealArray s( n ); ! for ( int i = 1; i < n; i++ ) { q[1] = x[i]; q[2] = x1[i]; *************** *** 51,57 **** V3d nrm = Zdir ^( q[3] - q[2] ), p = TheCamera.GetProjRay( q[1] ); s[i] = nrm * p; } ! for ( i = 1; i < n - 1; i++ ) if ( s[i] * s[i + 1] < 0 ) StraightLine3d( Black, x[i + 1], x1[ i + 1], MEDIUM ); --- 51,57 ---- V3d nrm = Zdir ^( q[3] - q[2] ), p = TheCamera.GetProjRay( q[1] ); s[i] = nrm * p; } ! for ( int i = 1; i < n - 1; i++ ) if ( s[i] * s[i + 1] < 0 ) StraightLine3d( Black, x[i + 1], x1[ i + 1], MEDIUM ); Index: UNIX/X/MILLING/tmp.cpp diff -c UNIX/X/MILLING/tmp.cpp:1.1.1.1 UNIX/X/MILLING/tmp.cpp:1.2 *** UNIX/X/MILLING/tmp.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MILLING/tmp.cpp Thu Apr 17 00:31:33 2008 *************** *** 5,11 **** const Real u0 = 0.04, v0 = 0.97; const Real u1 = -1.5, u2 = 1.5, v1 = -1.5, v2 = 1.5; ! #include "X/Milling/milling.h" Real f( Real x, Real y ) { --- 5,11 ---- const Real u0 = 0.04, v0 = 0.97; const Real u1 = -1.5, u2 = 1.5, v1 = -1.5, v2 = 1.5; ! #include "X/MILLING/milling.h" Real f( Real x, Real y ) { *************** *** 38,44 **** G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; --- 38,44 ---- G.PrepareContour( ); Real P[20][3]; Real alpha = 0.0001; ! for ( int i = 0; i < 20; i++, alpha += 0.065 ) { rz( alpha, P[i][0], P[i][2] ); P[i][1] = 0; Index: UNIX/X/MORE3D/cloth3d.cpp diff -c UNIX/X/MORE3D/cloth3d.cpp:1.1.1.1 UNIX/X/MORE3D/cloth3d.cpp:1.2 *** UNIX/X/MORE3D/cloth3d.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MORE3D/cloth3d.cpp Thu Apr 17 00:31:33 2008 *************** *** 24,30 **** Real t = -2 * PI, dt = 4 * PI / ( n - 1 ); for ( int i = 1; i <= n; i++, t += dt ) Curve[i]( Integral( Cos2, 0, t ), Integral( Sin2, 0, t ), EarthRadius ); ! for ( i = 1; i <= n; i++ ) Curve[i].Normalize( ); Curve.Scale( EarthRadius ); SetBackgroundColor( 0, 0, 0 ); // black --- 24,30 ---- Real t = -2 * PI, dt = 4 * PI / ( n - 1 ); for ( int i = 1; i <= n; i++, t += dt ) Curve[i]( Integral( Cos2, 0, t ), Integral( Sin2, 0, t ), EarthRadius ); ! for ( int i = 1; i <= n; i++ ) Curve[i].Normalize( ); Curve.Scale( EarthRadius ); SetBackgroundColor( 0, 0, 0 ); // black Index: UNIX/X/MORE3D/sun.cpp diff -c UNIX/X/MORE3D/sun.cpp:1.1.1.1 UNIX/X/MORE3D/sun.cpp:1.2 *** UNIX/X/MORE3D/sun.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MORE3D/sun.cpp Thu Apr 17 00:31:33 2008 *************** *** 65,80 **** E[2] = F.pPoints[i1 * J0 + j2 - 3]; E[3] = F.pPoints[i2 * J0 + j2 - 3]; E[4] = F.pPoints[i2 * J0 + j1]; ! for ( i = 1; i <= 4; i++ ) StrLine( Red, Origin, E[i], THIN, 1e-4 ); SetColor( Yellow ); ! for ( i = I0 - 1; i >= 0; i-- ) { ptr = &F.pPoints[i * J0 + 1]; for ( int j = 1; j <= m; j++, ptr++ ) if ( ptr->z > 0 ) PolyLine.p3d( *ptr ); PolyLine.Outline( false, (i == 0 ? THICK:THIN), 1e-4 ); } ! for ( i = i1; i >= i2; i-- ) { SetColor( Red ); for ( int j = j1; j >= j2; j -= 3 ) { PolyLine.p3d( F.pPoints[i * J0 + j] ); --- 65,80 ---- E[2] = F.pPoints[i1 * J0 + j2 - 3]; E[3] = F.pPoints[i2 * J0 + j2 - 3]; E[4] = F.pPoints[i2 * J0 + j1]; ! for ( int i = 1; i <= 4; i++ ) StrLine( Red, Origin, E[i], THIN, 1e-4 ); SetColor( Yellow ); ! for ( int i = I0 - 1; i >= 0; i-- ) { ptr = &F.pPoints[i * J0 + 1]; for ( int j = 1; j <= m; j++, ptr++ ) if ( ptr->z > 0 ) PolyLine.p3d( *ptr ); PolyLine.Outline( false, (i == 0 ? THICK:THIN), 1e-4 ); } ! for ( int i = i1; i >= i2; i-- ) { SetColor( Red ); for ( int j = j1; j >= j2; j -= 3 ) { PolyLine.p3d( F.pPoints[i * J0 + j] ); *************** *** 85,91 **** } } V3d e[5]; ! for ( i = 1; i <= 4; i++ ) e[i].Def( E[i].x, E[i].y, E[i].z ); P3d P1( -7.5, 6.5, 0 ), P2 = P1; P2.z = 3.5; Xaxis.Draw( Gray, 0, -10, THIN ); ThinLine( ); --- 85,91 ---- } } V3d e[5]; ! for ( int i = 1; i <= 4; i++ ) e[i].Def( E[i].x, E[i].y, E[i].z ); P3d P1( -7.5, 6.5, 0 ), P2 = P1; P2.z = 3.5; Xaxis.Draw( Gray, 0, -10, THIN ); ThinLine( ); *************** *** 104,123 **** P3d S[5]; Real t[5]; StraightLine g[5]; ! for ( i = 1; i <= 4; i++ ) { g[i].Def(P2, e[i] ); XYplane.SectionWithStraightLine( g[i], S[i], t[i] ); } StraightLine gh; V3d h; Real th; P3d Sh; ! for ( int j = j1; j >= j2; j -= 3 ) { H = F.pPoints[i1 * J0 + j]; h.Def( H.x, H.y, H.z ); gh.Def(P2, h ); XYplane.SectionWithStraightLine( gh, Sh, th ); PolyLine.p3d( Sh ); } ! for ( i = i1; i >= i2; i-- ) { H = F.pPoints[i * J0 + j]; h.Def( H.x, H.y, H.z ); gh.Def(P2, h ); --- 104,124 ---- P3d S[5]; Real t[5]; StraightLine g[5]; ! for ( int i = 1; i <= 4; i++ ) { g[i].Def(P2, e[i] ); XYplane.SectionWithStraightLine( g[i], S[i], t[i] ); } StraightLine gh; V3d h; Real th; P3d Sh; ! int j; ! for ( j = j1; j >= j2; j -= 3 ) { H = F.pPoints[i1 * J0 + j]; h.Def( H.x, H.y, H.z ); gh.Def(P2, h ); XYplane.SectionWithStraightLine( gh, Sh, th ); PolyLine.p3d( Sh ); } ! for ( int i = i1; i >= i2; i-- ) { H = F.pPoints[i * J0 + j]; h.Def( H.x, H.y, H.z ); gh.Def(P2, h ); *************** *** 125,138 **** PolyLine.p3d( Sh ); } //PolyLine.p3d(&P1 ); ! for ( j = j2; j <= j1; j += 3 ) { H = F.pPoints[i2 * J0 + j]; h.Def( H.x, H.y, H.z ); gh.Def(P2, h ); XYplane.SectionWithStraightLine( gh, Sh, th ); PolyLine.p3d( Sh ); } ! for ( i = i2; i <= i1; i++ ) { H = F.pPoints[i * J0 + j1]; h.Def( H.x, H.y, H.z ); gh.Def(P2, h ); --- 126,139 ---- PolyLine.p3d( Sh ); } //PolyLine.p3d(&P1 ); ! for ( int j = j2; j <= j1; j += 3 ) { H = F.pPoints[i2 * J0 + j]; h.Def( H.x, H.y, H.z ); gh.Def(P2, h ); XYplane.SectionWithStraightLine( gh, Sh, th ); PolyLine.p3d( Sh ); } ! for ( int i = i2; i <= i1; i++ ) { H = F.pPoints[i * J0 + j1]; h.Def( H.x, H.y, H.z ); gh.Def(P2, h ); *************** *** 143,149 **** TheScene.Offset( 0.01 ); PolyLine.Shade( ); NoOffset( ); ! for ( i = 1; i <= 4; i++ ) { g[i].Draw( Red, 0, t[i], THIN ); StrLine( DarkGray, P1, S[i], THIN ); } --- 144,150 ---- TheScene.Offset( 0.01 ); PolyLine.Shade( ); NoOffset( ); ! for ( int i = 1; i <= 4; i++ ) { g[i].Draw( Red, 0, t[i], THIN ); StrLine( DarkGray, P1, S[i], THIN ); } Index: UNIX/X/MORE3D/table.cpp diff -c UNIX/X/MORE3D/table.cpp:1.1.1.1 UNIX/X/MORE3D/table.cpp:1.2 *** UNIX/X/MORE3D/table.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MORE3D/table.cpp Thu Apr 17 00:31:33 2008 *************** *** 33,39 **** CubicSpline3d meridian; meridian.O3d::Def( Gray, 10 ); int j; ! for ( i = ell.nPoints - 5, j = 1; i <= ell.nPoints; i++, j++ ) meridian[j] = ell[i]; meridian[7]( meridian[6].x - 0.5, 0, meridian[6].z - 1 ); meridian[8]( meridian[6].x - 1, 0, meridian[6].z - 1.7 ); --- 33,39 ---- CubicSpline3d meridian; meridian.O3d::Def( Gray, 10 ); int j; ! for ( int i = ell.nPoints - 5, j = 1; i <= ell.nPoints; i++, j++ ) meridian[j] = ell[i]; meridian[7]( meridian[6].x - 0.5, 0, meridian[6].z - 1 ); meridian[8]( meridian[6].x - 1, 0, meridian[6].z - 1.7 ); *************** *** 49,55 **** { border[j].Def( Blue, ell.nPoints - 5 ); } ! for ( i = 0; i < ell.nPoints- 5; i++ ) { if ( i > 0 ) { --- 49,55 ---- { border[j].Def( Blue, ell.nPoints - 5 ); } ! for ( int i = 0; i < ell.nPoints- 5; i++ ) { if ( i > 0 ) { *************** *** 105,113 **** D = D->Next; } int k; ! for ( j = 0, k = 1; j < circ.nPoints; j++ ) { ! for ( i = 1; i <= border[j].nPoints; i++, k++ ) { surf2[k] = border[j][i]; } --- 105,113 ---- D = D->Next; } int k; ! for ( int j = 0, k = 1; j < circ.nPoints; j++ ) { ! for ( int i = 1; i <= border[j].nPoints; i++, k++ ) { surf2[k] = border[j][i]; } *************** *** 121,129 **** k0++;\ } D = surf2.F; ! for ( j = 0, k = 1; j < circ.nPoints; j++ ) { ! for ( i = 1; i <= border[j].nPoints; i++, k++ ) { if ( j == circ.nPoints - 1 || i == border[j].nPoints ) continue; --- 121,129 ---- k0++;\ } D = surf2.F; ! for ( int j = 0, k = 1; j < circ.nPoints; j++ ) { ! for ( int i = 1; i <= border[j].nPoints; i++, k++ ) { if ( j == circ.nPoints - 1 || i == border[j].nPoints ) continue; *************** *** 152,158 **** //top_circle->Draw( ); //upper_border->Draw( ); Boolean shade = 1;//false; ! for ( i = 0; i < 3; i++ ) { if ( shade ) surf2.Shade( Cyan, REFLECTING ); --- 152,158 ---- //top_circle->Draw( ); //upper_border->Draw( ); Boolean shade = 1;//false; ! for ( int i = 0; i < 3; i++ ) { if ( shade ) surf2.Shade( Cyan, REFLECTING ); Index: UNIX/X/MORE3D/tmp.cpp diff -c UNIX/X/MORE3D/tmp.cpp:1.1.1.1 UNIX/X/MORE3D/tmp.cpp:1.2 *** UNIX/X/MORE3D/tmp.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/MORE3D/tmp.cpp Thu Apr 17 00:31:33 2008 *************** *** 41,47 **** for ( int i = 1; i <= n; i++ ) x1[ i ]( x[i].x, x[i].y, ZMIN ); RealArray s( n ); ! for ( i = 1; i < n; i++ ) { q[1] = x[i]; q[2] = x1[i]; --- 41,47 ---- for ( int i = 1; i <= n; i++ ) x1[ i ]( x[i].x, x[i].y, ZMIN ); RealArray s( n ); ! for ( int i = 1; i < n; i++ ) { q[1] = x[i]; q[2] = x1[i]; *************** *** 51,57 **** V3d nrm = Zdir ^( q[3] - q[2] ), p = TheCamera.GetProjRay( q[1] ); s[i] = nrm * p; } ! for ( i = 1; i < n - 1; i++ ) if ( s[i] * s[i + 1] < 0 ) StraightLine3d( Black, x[i + 1], x1[ i + 1], MEDIUM ); --- 51,57 ---- V3d nrm = Zdir ^( q[3] - q[2] ), p = TheCamera.GetProjRay( q[1] ); s[i] = nrm * p; } ! for ( int i = 1; i < n - 1; i++ ) if ( s[i] * s[i + 1] < 0 ) StraightLine3d( Black, x[i + 1], x1[ i + 1], MEDIUM ); Index: UNIX/X/PROJ/1.cpp diff -c UNIX/X/PROJ/1.cpp:1.1.1.1 UNIX/X/PROJ/1.cpp:1.2 *** UNIX/X/PROJ/1.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/PROJ/1.cpp Thu Apr 17 00:31:33 2008 *************** *** 42,50 **** r.Translate( t ); Sector3d s; L3d c0[4]; ! for ( k = 0; k < 4; k++ ) c0[k].Def(Black, 100); ! for ( k = 1; k <= 100; k++ ) { t = H.ScrewTangent( c[k] ); StrL3d tg( c[k], t ); --- 42,50 ---- r.Translate( t ); Sector3d s; L3d c0[4]; ! for ( int k = 0; k < 4; k++ ) c0[k].Def(Black, 100); ! for ( int k = 1; k <= 100; k++ ) { t = H.ScrewTangent( c[k] ); StrL3d tg( c[k], t ); Index: UNIX/X/PROJ/12.cpp diff -c UNIX/X/PROJ/12.cpp:1.1.1.1 UNIX/X/PROJ/12.cpp:1.2 *** UNIX/X/PROJ/12.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/PROJ/12.cpp Thu Apr 17 00:31:33 2008 *************** *** 77,80 **** } void Scene::CleanUp() { ! } \ No newline at end of file --- 77,80 ---- } void Scene::CleanUp() { ! } Index: UNIX/X/STUDENTS/ahmed.cpp diff -c UNIX/X/STUDENTS/ahmed.cpp:1.1.1.1 UNIX/X/STUDENTS/ahmed.cpp:1.2 *** UNIX/X/STUDENTS/ahmed.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/STUDENTS/ahmed.cpp Thu Apr 17 00:31:33 2008 *************** *** 11,21 **** void Scene::Init( ) { B0(Steg_L,0); ! c1.Def(PureGreen,B0,arm1_L,FALSE); ! c2.Def(PureGreen,A0,arm2_L,FALSE); line.Def(B0,V2d(-1,0)); B=line.InBetweenPoint(arm1_L); ! c3.Def(Red,B,coup_L,FALSE); P2d P; c3.SectionWithCircle(c2,P,A); Path.Def( PureBlue, 1000 ); --- 11,21 ---- void Scene::Init( ) { B0(Steg_L,0); ! c1.Def(PureGreen,B0,arm1_L,false); ! c2.Def(PureGreen,A0,arm2_L,false); line.Def(B0,V2d(-1,0)); B=line.InBetweenPoint(arm1_L); ! c3.Def(Red,B,coup_L,false); P2d P; c3.SectionWithCircle(c2,P,A); Path.Def( PureBlue, 1000 ); *************** *** 38,44 **** X.Mark(PureBlue,0.2,0.1); X.AttachString( PureBlue, -0.2, -0.7, "X" ); Poly2d po; ! po.Def(Green,3,TRUE); po[1]=A;po[2]=B;po[3]=X; po.Draw(); arm1.Def(PureGreen,B0,B); --- 38,44 ---- X.Mark(PureBlue,0.2,0.1); X.AttachString( PureBlue, -0.2, -0.7, "X" ); Poly2d po; ! po.Def(Green,3,true); po[1]=A;po[2]=B;po[3]=X; po.Draw(); arm1.Def(PureGreen,B0,B); *************** *** 48,54 **** arm2.Draw(THICK); couplar.Draw(THICK); B.Rotate(B0,w); ! c4.Def(PureRed,B,coup_L,FALSE); P2d P1,P2; if (c4.SectionWithCircle(c2,P1,P2)>0){ V2d d1=A-P1,d2=A-P2; --- 48,54 ---- arm2.Draw(THICK); couplar.Draw(THICK); B.Rotate(B0,w); ! c4.Def(PureRed,B,coup_L,false); P2d P1,P2; if (c4.SectionWithCircle(c2,P1,P2)>0){ V2d d1=A-P1,d2=A-P2; Index: UNIX/X/STUDENTS/four_bar.cpp diff -c UNIX/X/STUDENTS/four_bar.cpp:1.1.1.1 UNIX/X/STUDENTS/four_bar.cpp:1.2 *** UNIX/X/STUDENTS/four_bar.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/STUDENTS/four_bar.cpp Thu Apr 17 00:31:33 2008 *************** *** 12,22 **** void Scene::Init( ) { B0(Steg_L,0); ! c1.Def(PureGreen,B0,arm1_L,FALSE); ! c2.Def(PureGreen,A0,arm2_L,FALSE); line.Def(B0,V2d(-1,0)); B=line.InBetweenPoint(arm1_L); ! c3.Def(Red,B,coup_L,FALSE); P2d P; c3.SectionWithCircle(c2,P,A); Path.Def( PureBlue, 1000 ); --- 12,22 ---- void Scene::Init( ) { B0(Steg_L,0); ! c1.Def(PureGreen,B0,arm1_L,false); ! c2.Def(PureGreen,A0,arm2_L,false); line.Def(B0,V2d(-1,0)); B=line.InBetweenPoint(arm1_L); ! c3.Def(Red,B,coup_L,false); P2d P; c3.SectionWithCircle(c2,P,A); Path.Def( PureBlue, 1000 ); *************** *** 40,46 **** E.Mark(PureBlue,0.2,0.1); E.AttachString( PureBlue, -0.2, -0.7, "X" ); Poly2d po; ! po.Def(Green,3,TRUE); po[1]=A;po[2]=B;po[3]=E; po.Draw(); arm1.Def(PureGreen,B0,B); --- 40,46 ---- E.Mark(PureBlue,0.2,0.1); E.AttachString( PureBlue, -0.2, -0.7, "X" ); Poly2d po; ! po.Def(Green,3,true); po[1]=A;po[2]=B;po[3]=E; po.Draw(); arm1.Def(PureGreen,B0,B); *************** *** 49,55 **** arm1.Draw(THICK); arm2.Draw(THICK); couplar.Draw(THICK); ! c4.Def(PureRed,B,coup_L,FALSE); P2d P1,P2; if (c4.SectionWithCircle(c2,P1,P2)>0){ V2d d1=A-P1,d2=A-P2; --- 49,55 ---- arm1.Draw(THICK); arm2.Draw(THICK); couplar.Draw(THICK); ! c4.Def(PureRed,B,coup_L,false); P2d P1,P2; if (c4.SectionWithCircle(c2,P1,P2)>0){ V2d d1=A-P1,d2=A-P2; Index: UNIX/X/STUDENTS/AHMED/cylsphmo.cpp diff -c UNIX/X/STUDENTS/AHMED/cylsphmo.cpp:1.1.1.1 UNIX/X/STUDENTS/AHMED/cylsphmo.cpp:1.2 *** UNIX/X/STUDENTS/AHMED/cylsphmo.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/STUDENTS/AHMED/cylsphmo.cpp Thu Apr 17 00:31:33 2008 *************** *** 1,6 **** ! #include "OpenGEOM.h" // This is the magic include file P3d P(5,0,11),Q(5,0,0),P1,Q1; Real w1=2.0; --- 1,6 ---- ! #include "opengeom.h" // This is the magic include file P3d P(5,0,11),Q(5,0,0),P1,Q1; Real w1=2.0; *************** *** 8,14 **** int max=1000; Real radius; Sphere sphere; ! Boolean back=FALSE; Real PktTranslation(P3d &P) { --- 8,14 ---- int max=1000; Real radius; Sphere sphere; ! Boolean back=false; Real PktTranslation(P3d &P) { *************** *** 72,81 **** P.Rotate(Zaxis,w1); Real dz=PktTranslation(P); ! if (back==TRUE) dz=-dz; P.Translate(0,0,-dz); j++; ! if (j>=no){w1=-w1;j=1;if (back==FALSE) back=TRUE; else back=false;} }//if fram } --- 72,81 ---- P.Rotate(Zaxis,w1); Real dz=PktTranslation(P); ! if (back==true) dz=-dz; P.Translate(0,0,-dz); j++; ! if (j>=no){w1=-w1;j=1;if (back==false) back=true; else back=false;} }//if fram } Index: UNIX/X/STUDENTS/AHMED/four_bar.cpp diff -c UNIX/X/STUDENTS/AHMED/four_bar.cpp:1.1.1.1 UNIX/X/STUDENTS/AHMED/four_bar.cpp:1.2 *** UNIX/X/STUDENTS/AHMED/four_bar.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/STUDENTS/AHMED/four_bar.cpp Thu Apr 17 00:31:33 2008 *************** *** 42,48 **** Poly2d po; po.Def(Green,3,FILLED); po[1]=A;po[2]=B;po[3]=E; ! po.Draw(); arm1.Def(PureGreen,B0,B); arm2.Def(PureGreen,A0,A); couplar.Def(PureGreen,A,B); --- 42,48 ---- Poly2d po; po.Def(Green,3,FILLED); po[1]=A;po[2]=B;po[3]=E; ! po.Draw(THIN); arm1.Def(PureGreen,B0,B); arm2.Def(PureGreen,A0,A); couplar.Def(PureGreen,A,B); *************** *** 58,64 **** if (dl1>dl2) A=P2; }else w*=-1; Path[FrameNum()] = E; ! Path.nPoints++; Path.MarkPoints( PureBlue, 0.05 ); PrintString(Black,-8,8,"Couplar mechanism"); } --- 58,64 ---- if (dl1>dl2) A=P2; }else w*=-1; Path[FrameNum()] = E; ! Path.nPoDrawints++; Path.MarkPoints( PureBlue, 0.05 ); PrintString(Black,-8,8,"Couplar mechanism"); } Index: UNIX/X/STUDENTS/AHMED/sphmo.cpp diff -c UNIX/X/STUDENTS/AHMED/sphmo.cpp:1.1.1.1 UNIX/X/STUDENTS/AHMED/sphmo.cpp:1.2 *** UNIX/X/STUDENTS/AHMED/sphmo.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/STUDENTS/AHMED/sphmo.cpp Thu Apr 17 00:31:33 2008 *************** *** 1,6 **** // The name of the program sphmo.cpp Ma 17.05.97 ! #include "OpenGEOM.h" // This is the magic include file P3d Mo,M1,A,P,H; Circ3d s1,s2; --- 1,6 ---- // The name of the program sphmo.cpp Ma 17.05.97 ! #include "opengeom.h" // This is the magic include file P3d Mo,M1,A,P,H; Circ3d s1,s2; Index: UNIX/X/STUDENTS/AHMED/syklmo.cpp diff -c UNIX/X/STUDENTS/AHMED/syklmo.cpp:1.1.1.1 UNIX/X/STUDENTS/AHMED/syklmo.cpp:1.2 *** UNIX/X/STUDENTS/AHMED/syklmo.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/STUDENTS/AHMED/syklmo.cpp Thu Apr 17 00:31:33 2008 *************** *** 1,6 **** ! #include "OpenGEOM.h" // This is the magic include file P3d M0(0,0,3),A(0,0,8);; Circ3d c; --- 1,6 ---- ! #include "opengeom.h" // This is the magic include file P3d M0(0,0,3),A(0,0,8);; Circ3d c; *************** *** 28,34 **** axis.Def(M0,x); axis.LineDotted(Red,0,4,12,THICK); V3d n(1,0,0); ! c.Def(Blue,M0,n,radius,100,FALSE); c.Draw(); A.Mark(Black,.2,0,3); M0.Mark(Blue,.2,.1,3); --- 28,34 ---- axis.Def(M0,x); axis.LineDotted(Red,0,4,12,THICK); V3d n(1,0,0); ! c.Def(Blue,M0,n,radius,100,false); c.Draw(); A.Mark(Black,.2,0,3); M0.Mark(Blue,.2,.1,3); Index: UNIX/X/STUDENTS/AHMED/trochmo.cpp diff -c UNIX/X/STUDENTS/AHMED/trochmo.cpp:1.1.1.1 UNIX/X/STUDENTS/AHMED/trochmo.cpp:1.2 *** UNIX/X/STUDENTS/AHMED/trochmo.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/STUDENTS/AHMED/trochmo.cpp Thu Apr 17 00:31:33 2008 *************** *** 1,6 **** ! #include "OpenGEOM.h" // This is the magic include file P3d M0(0,0,0),M1,A; Circ3d c1,c2; --- 1,6 ---- ! #include "opengeom.h" // This is the magic include file P3d M0(0,0,0),M1,A; Circ3d c1,c2; Index: UNIX/X/STUDENTS/AHMED/tub_ah1.cpp diff -c UNIX/X/STUDENTS/AHMED/tub_ah1.cpp:1.1.1.1 UNIX/X/STUDENTS/AHMED/tub_ah1.cpp:1.2 *** UNIX/X/STUDENTS/AHMED/tub_ah1.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/STUDENTS/AHMED/tub_ah1.cpp Thu Apr 17 00:31:33 2008 *************** *** 1,4 **** ! #include "openGEOM.h" #include "tubular.h" TubSurf *Surf; --- 1,4 ---- ! #include "opengeom.h" #include "tubular.h" TubSurf *Surf; Index: UNIX/X/STUDENTS/AHMED/tub_ah2.cpp diff -c UNIX/X/STUDENTS/AHMED/tub_ah2.cpp:1.1.1.1 UNIX/X/STUDENTS/AHMED/tub_ah2.cpp:1.2 *** UNIX/X/STUDENTS/AHMED/tub_ah2.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/STUDENTS/AHMED/tub_ah2.cpp Thu Apr 17 00:31:33 2008 *************** *** 1,4 **** ! #include "openGEOM.h" #include "tubular.h" // by Michael Schrott, April 1997 --- 1,4 ---- ! #include "opengeom.h" #include "tubular.h" // by Michael Schrott, April 1997 Index: UNIX/X/SURF/sweep2.cpp diff -c UNIX/X/SURF/sweep2.cpp:1.1.1.1 UNIX/X/SURF/sweep2.cpp:1.2 *** UNIX/X/SURF/sweep2.cpp:1.1.1.1 Mon Jul 9 22:31:26 2007 --- UNIX/X/SURF/sweep2.cpp Thu Apr 17 00:31:33 2008 *************** *** 65,71 **** } c.LineDotted( 20, MEDIUM ); Sphere kappa; ! for ( k = 10; k < c.nPoints; k += 10 ) { kappa.Def( Black, c[k], 0.98, 100); kappa.Draw( Black, THIN ); --- 65,71 ---- } c.LineDotted( 20, MEDIUM ); Sphere kappa; ! for ( int k = 10; k < c.nPoints; k += 10 ) { kappa.Def( Black, c[k], 0.98, 100); kappa.Draw( Black, THIN );