http://www.jwz.org/xscreensaver/xscreensaver-5.07.tar.gz
authorZygo Blaxell <zblaxell@hungrycats.org>
Mon, 2 Mar 2009 05:43:54 +0000 (00:43 -0500)
committerZygo Blaxell <zblaxell@faye.furryterror.org>
Fri, 8 Feb 2013 17:54:51 +0000 (12:54 -0500)
-rw-r--r-- 1 zblaxell zblaxell 5513131 Aug 11  2008 xscreensaver-5.07.tar.gz
82c611ab271807ad871aa46a3a7f6b95706d31aa  xscreensaver-5.07.tar.gz

707 files changed:
OSX/._PrefsReader.m [new file with mode: 0644]
OSX/._jwxyz.m [new file with mode: 0644]
OSX/AppController.h [deleted file]
OSX/AppController.m [deleted file]
OSX/English.lproj/MainMenu.nib/classes.nib [deleted file]
OSX/English.lproj/MainMenu.nib/info.nib [deleted file]
OSX/English.lproj/MainMenu.nib/keyedobjects.nib [deleted file]
OSX/English.lproj/SaverTester.nib/classes.nib [new file with mode: 0644]
OSX/English.lproj/SaverTester.nib/info.nib [new file with mode: 0644]
OSX/English.lproj/SaverTester.nib/keyedobjects.nib [new file with mode: 0644]
OSX/PrefsReader.m
OSX/SaverTester.h [new file with mode: 0644]
OSX/SaverTester.m [new file with mode: 0644]
OSX/SaverTester.plist
OSX/XScreenSaver.plist
OSX/XScreenSaverConfigSheet.m
OSX/XScreenSaverGLView.m
OSX/XScreenSaverView.h
OSX/XScreenSaverView.m
OSX/bindist.rtf
OSX/jwxyz.m
OSX/update-info-plist.pl
README
README.hacking
configure
configure.in
driver/Makefile.in
driver/XScreenSaver.ad.in
driver/XScreenSaver_ad.h
driver/demo-Gtk-conf.c
driver/demo-Gtk-conf.h
driver/demo-Gtk-stubs.h
driver/demo-Gtk-widgets.c
driver/demo-Gtk.c
driver/screens.c
driver/test-screens.c
driver/xscreensaver-demo.glade2
driver/xscreensaver.c
driver/xscreensaver.h
driver/xset.c
hacks/Makefile.in
hacks/abstractile.c
hacks/abstractile.man
hacks/analogtv.c
hacks/analogtv.h
hacks/anemone.man
hacks/anemotaxis.man
hacks/ant.c
hacks/apollonian.c
hacks/apollonian.man
hacks/apple2.man
hacks/attraction.c
hacks/attraction.man
hacks/barcode.c
hacks/barcode.man
hacks/blaster.c
hacks/blaster.man
hacks/blitspin.c
hacks/blitspin.man
hacks/bouboule.c
hacks/bouboule.man
hacks/boxfit.c
hacks/boxfit.man
hacks/braid.c
hacks/braid.man
hacks/bsod.man
hacks/bubbles.c
hacks/bubbles.man
hacks/bumps.c
hacks/bumps.h [deleted file]
hacks/bumps.man
hacks/ccurve.c
hacks/ccurve.man
hacks/celtic.c
hacks/celtic.man
hacks/check-configs.pl [new file with mode: 0755]
hacks/cloudlife.c
hacks/cloudlife.man
hacks/compass.man
hacks/compile_axp.com
hacks/compile_decc.com
hacks/config/README
hacks/config/abstractile.xml
hacks/config/anemone.xml
hacks/config/anemotaxis.xml
hacks/config/ant.xml
hacks/config/antinspect.xml
hacks/config/antmaze.xml
hacks/config/antspotlight.xml
hacks/config/apollonian.xml
hacks/config/apple2.xml
hacks/config/atlantis.xml
hacks/config/attraction.xml
hacks/config/atunnel.xml
hacks/config/barcode.xml
hacks/config/blaster.xml
hacks/config/blinkbox.xml
hacks/config/blitspin.xml
hacks/config/blocktube.xml
hacks/config/boing.xml
hacks/config/bouboule.xml
hacks/config/bouncingcow.xml
hacks/config/boxed.xml
hacks/config/boxfit.xml
hacks/config/braid.xml
hacks/config/bsod.xml
hacks/config/bubble3d.xml
hacks/config/bubbles.xml
hacks/config/bumps.xml
hacks/config/cage.xml
hacks/config/carousel.xml
hacks/config/ccurve.xml
hacks/config/celtic.xml
hacks/config/circuit.xml
hacks/config/cloudlife.xml
hacks/config/compass.xml
hacks/config/coral.xml
hacks/config/cosmos.xml [deleted file]
hacks/config/crackberg.xml
hacks/config/critical.xml
hacks/config/crystal.xml
hacks/config/cube21.xml
hacks/config/cubenetic.xml
hacks/config/cubestorm.xml
hacks/config/cubicgrid.xml
hacks/config/cwaves.xml
hacks/config/cynosure.xml
hacks/config/dangerball.xml
hacks/config/decayscreen.xml
hacks/config/deco.xml
hacks/config/deluxe.xml
hacks/config/demon.xml
hacks/config/discrete.xml
hacks/config/distort.xml
hacks/config/dnalogo.xml
hacks/config/drift.xml
hacks/config/electricsheep.xml [deleted file]
hacks/config/endgame.xml
hacks/config/engine.xml
hacks/config/epicycle.xml
hacks/config/eruption.xml
hacks/config/euler2d.xml
hacks/config/extrusion.xml
hacks/config/fadeplot.xml
hacks/config/fiberlamp.xml
hacks/config/fireflies.xml [deleted file]
hacks/config/fireworkx.xml
hacks/config/flag.xml
hacks/config/flame.xml
hacks/config/flipflop.xml
hacks/config/flipscreen3d.xml
hacks/config/fliptext.xml
hacks/config/flow.xml
hacks/config/fluidballs.xml
hacks/config/flurry.xml
hacks/config/flyingtoasters.xml
hacks/config/fontglide.xml
hacks/config/forest.xml
hacks/config/fuzzyflakes.xml
hacks/config/galaxy.xml
hacks/config/gears.xml
hacks/config/gflux.xml
hacks/config/glblur.xml
hacks/config/glcells.xml
hacks/config/gleidescope.xml
hacks/config/glforestfire.xml
hacks/config/glhanoi.xml
hacks/config/glknots.xml
hacks/config/glmatrix.xml
hacks/config/glplanet.xml
hacks/config/glschool.xml
hacks/config/glslideshow.xml
hacks/config/glsnake.xml
hacks/config/gltext.xml
hacks/config/goban.xml [deleted file]
hacks/config/goop.xml
hacks/config/grav.xml
hacks/config/greynetic.xml
hacks/config/halftone.xml
hacks/config/halo.xml
hacks/config/helix.xml
hacks/config/hopalong.xml
hacks/config/hyperball.xml
hacks/config/hypercube.xml
hacks/config/hypertorus.xml
hacks/config/hypnowheel.xml
hacks/config/ifs.xml
hacks/config/imsmap.xml
hacks/config/interaggregate.xml
hacks/config/interference.xml
hacks/config/intermomentary.xml
hacks/config/jigglypuff.xml
hacks/config/jigsaw.xml
hacks/config/juggle.xml
hacks/config/juggler3d.xml
hacks/config/julia.xml
hacks/config/kaleidescope.xml
hacks/config/klein.xml
hacks/config/kumppa.xml
hacks/config/lament.xml
hacks/config/laser.xml
hacks/config/lavalite.xml
hacks/config/lcdscrub.xml
hacks/config/lightning.xml
hacks/config/lisa.xml
hacks/config/lissie.xml
hacks/config/lmorph.xml
hacks/config/lockward.xml
hacks/config/loop.xml
hacks/config/m6502.xml
hacks/config/maze.xml
hacks/config/memscroller.xml
hacks/config/menger.xml
hacks/config/metaballs.xml
hacks/config/mirrorblob.xml
hacks/config/mismunch.xml
hacks/config/moebius.xml
hacks/config/moebiusgears.xml
hacks/config/moire.xml
hacks/config/moire2.xml
hacks/config/molecule.xml
hacks/config/morph3d.xml
hacks/config/mountain.xml
hacks/config/munch.xml
hacks/config/nerverot.xml
hacks/config/noof.xml
hacks/config/noseguy.xml
hacks/config/pacman.xml
hacks/config/pedal.xml
hacks/config/penetrate.xml
hacks/config/penrose.xml
hacks/config/petri.xml
hacks/config/phosphor.xml
hacks/config/piecewise.xml
hacks/config/pinion.xml
hacks/config/pipes.xml
hacks/config/polyhedra.xml
hacks/config/polyominoes.xml
hacks/config/polytopes.xml
hacks/config/pong.xml
hacks/config/popsquares.xml
hacks/config/providence.xml
hacks/config/pulsar.xml
hacks/config/pyro.xml
hacks/config/qix.xml
hacks/config/queens.xml
hacks/config/rd-bomb.xml
hacks/config/rdbomb.xml
hacks/config/ripples.xml
hacks/config/rocks.xml
hacks/config/rorschach.xml
hacks/config/rotor.xml
hacks/config/rotzoomer.xml
hacks/config/rubik.xml
hacks/config/sballs.xml
hacks/config/shadebobs.xml
hacks/config/sierpinski.xml
hacks/config/sierpinski3d.xml
hacks/config/skytentacles.xml
hacks/config/slidescreen.xml
hacks/config/slip.xml
hacks/config/sonar.xml
hacks/config/speedmine.xml
hacks/config/sphere.xml
hacks/config/sphereeversion.xml [deleted file]
hacks/config/spheremonics.xml
hacks/config/spiral.xml
hacks/config/spotlight.xml
hacks/config/sproingies.xml
hacks/config/squiral.xml
hacks/config/stairs.xml
hacks/config/starfish.xml
hacks/config/starwars.xml
hacks/config/stonerview.xml
hacks/config/strange.xml
hacks/config/substrate.xml
hacks/config/superquadrics.xml
hacks/config/swirl.xml
hacks/config/t3d.xml
hacks/config/tangram.xml
hacks/config/thornbird.xml
hacks/config/timetunnel.xml
hacks/config/topblock.xml
hacks/config/triangle.xml
hacks/config/truchet.xml
hacks/config/twang.xml
hacks/config/vermiculate.xml
hacks/config/vidwhacker.xml
hacks/config/vines.xml
hacks/config/voronoi.xml
hacks/config/wander.xml
hacks/config/webcollage.xml
hacks/config/whirlwindwarp.xml
hacks/config/whirlygig.xml
hacks/config/worm.xml
hacks/config/wormhole.xml
hacks/config/xanalogtv.xml
hacks/config/xaos.xml [deleted file]
hacks/config/xdaliclock.xml [deleted file]
hacks/config/xflame.xml
hacks/config/xjack.xml
hacks/config/xlyap.xml
hacks/config/xmatrix.xml
hacks/config/xmountains.xml [deleted file]
hacks/config/xplanet.xml [deleted file]
hacks/config/xrayswarm.xml
hacks/config/xsnow.xml [deleted file]
hacks/config/xspirograph.xml
hacks/config/xteevee.xml [deleted file]
hacks/config/zoom.xml
hacks/coral.c
hacks/coral.man
hacks/critical.c
hacks/critical.man
hacks/crystal.c
hacks/crystal.man
hacks/cwaves.man
hacks/cynosure.c
hacks/cynosure.man
hacks/decayscreen.c
hacks/decayscreen.man
hacks/deco.man
hacks/deluxe.c
hacks/deluxe.man
hacks/demon.c
hacks/demon.man
hacks/discrete.c
hacks/discrete.man
hacks/distort.c
hacks/distort.man
hacks/drift.c
hacks/drift.man
hacks/epicycle.c
hacks/epicycle.man
hacks/eruption.c
hacks/eruption.man
hacks/euler2d.c
hacks/euler2d.man
hacks/fadeplot.c
hacks/fadeplot.man
hacks/fiberlamp.c
hacks/fiberlamp.man
hacks/fireworkx.man
hacks/flag.c
hacks/flag.man
hacks/flame.c
hacks/flame.man
hacks/flow.c
hacks/flow.man
hacks/fluidballs.c
hacks/fluidballs.man
hacks/fontglide.man
hacks/forest.c
hacks/forest.man
hacks/fps.c [new file with mode: 0644]
hacks/fps.h [new file with mode: 0644]
hacks/fpsI.h [new file with mode: 0644]
hacks/fuzzyflakes.man
hacks/galaxy.c
hacks/galaxy.man
hacks/glx/Makefile.in
hacks/glx/antinspect.c
hacks/glx/antinspect.man
hacks/glx/antmaze.c
hacks/glx/antmaze.man
hacks/glx/antspotlight.c
hacks/glx/antspotlight.man
hacks/glx/atlantis.c
hacks/glx/atlantis.man
hacks/glx/atunnel.c
hacks/glx/atunnel.man
hacks/glx/blinkbox.c
hacks/glx/blinkbox.man
hacks/glx/blocktube.c
hacks/glx/blocktube.man
hacks/glx/boing.c
hacks/glx/boing.man
hacks/glx/bouncingcow.man
hacks/glx/boxed.c
hacks/glx/boxed.man
hacks/glx/bubble3d.man
hacks/glx/cage.c
hacks/glx/cage.man
hacks/glx/carousel.c
hacks/glx/carousel.man
hacks/glx/circuit.c
hacks/glx/circuit.man
hacks/glx/crackberg.c
hacks/glx/crackberg.man
hacks/glx/cube21.c
hacks/glx/cube21.man
hacks/glx/cubenetic.c
hacks/glx/cubenetic.man
hacks/glx/cubestorm.man
hacks/glx/cubicgrid.c
hacks/glx/cubicgrid.man
hacks/glx/dangerball.man
hacks/glx/dnalogo.c
hacks/glx/dolphin.c
hacks/glx/endgame.c
hacks/glx/endgame.man
hacks/glx/engine.c
hacks/glx/engine.man
hacks/glx/extrusion.man
hacks/glx/flipflop.c
hacks/glx/flipflop.man
hacks/glx/flipscreen3d.c
hacks/glx/flipscreen3d.man
hacks/glx/fliptext.c
hacks/glx/fliptext.man
hacks/glx/flurry.man
hacks/glx/flyingtoasters.man
hacks/glx/fps-gl.c [new file with mode: 0644]
hacks/glx/fps.c [deleted file]
hacks/glx/gears.man
hacks/glx/gflux.c
hacks/glx/gflux.man
hacks/glx/glblur.c
hacks/glx/glblur.man
hacks/glx/glcells.c
hacks/glx/glcells.man
hacks/glx/gleidescope.c
hacks/glx/gleidescope.man
hacks/glx/glforestfire.c
hacks/glx/glforestfire.man
hacks/glx/glhanoi.c
hacks/glx/glhanoi.man
hacks/glx/glknots.man
hacks/glx/glmatrix.man
hacks/glx/glplanet.man
hacks/glx/glschool.c
hacks/glx/glschool.man
hacks/glx/glslideshow.c
hacks/glx/glslideshow.man
hacks/glx/glsnake.c
hacks/glx/glsnake.man
hacks/glx/gltext.c
hacks/glx/gltext.man
hacks/glx/gltrackball.c
hacks/glx/gltrackball.h
hacks/glx/glxfonts.c
hacks/glx/glxfonts.h
hacks/glx/hypertorus.c
hacks/glx/hypertorus.man
hacks/glx/hypnowheel.man
hacks/glx/jigglypuff.c
hacks/glx/jigglypuff.man
hacks/glx/juggler3d.c
hacks/glx/juggler3d.man
hacks/glx/klein.c
hacks/glx/klein.man
hacks/glx/lament.man
hacks/glx/lavalite.man
hacks/glx/lockward.c
hacks/glx/lockward.man
hacks/glx/menger.man
hacks/glx/mirrorblob.c
hacks/glx/mirrorblob.man
hacks/glx/moebius.c
hacks/glx/moebius.man
hacks/glx/moebiusgears.man
hacks/glx/molecule.c
hacks/glx/molecule.man
hacks/glx/morph3d.c
hacks/glx/morph3d.man
hacks/glx/noof.c
hacks/glx/noof.man
hacks/glx/pinion.c
hacks/glx/pinion.man
hacks/glx/pipeobjs.c
hacks/glx/pipes.c
hacks/glx/pipes.man
hacks/glx/polyhedra-gl.c
hacks/glx/polyhedra.c
hacks/glx/polyhedra.man
hacks/glx/polytopes.man
hacks/glx/providence.man
hacks/glx/pulsar.c
hacks/glx/pulsar.man
hacks/glx/queens.c
hacks/glx/queens.man
hacks/glx/rubik.c
hacks/glx/rubik.man
hacks/glx/s1_1.c
hacks/glx/s1_2.c
hacks/glx/s1_3.c
hacks/glx/s1_4.c
hacks/glx/s1_5.c
hacks/glx/s1_6.c
hacks/glx/sballs.man
hacks/glx/shark.c
hacks/glx/sierpinski3d.c
hacks/glx/sierpinski3d.man
hacks/glx/skytentacles.c
hacks/glx/skytentacles.man
hacks/glx/spheremonics.c
hacks/glx/spheremonics.man
hacks/glx/sproingies.man
hacks/glx/stairs.c
hacks/glx/stairs.man
hacks/glx/starwars.c
hacks/glx/starwars.man
hacks/glx/stonerview-move.h
hacks/glx/stonerview-view.c
hacks/glx/stonerview.c
hacks/glx/stonerview.h
hacks/glx/stonerview.man
hacks/glx/superquadrics.c
hacks/glx/superquadrics.man
hacks/glx/tangram.c
hacks/glx/tangram.man
hacks/glx/teapot.c [new file with mode: 0644]
hacks/glx/teapot.h [new file with mode: 0644]
hacks/glx/texfont.c
hacks/glx/timetunnel.man
hacks/glx/topblock.c
hacks/glx/topblock.man
hacks/glx/voronoi.c
hacks/glx/voronoi.man
hacks/glx/whale.c
hacks/glx/xlock-gl-utils.c
hacks/goop.c
hacks/goop.man
hacks/grav.c
hacks/grav.man
hacks/greynetic.c
hacks/greynetic.man
hacks/halftone.man
hacks/halo.man
hacks/helix.c
hacks/helix.man
hacks/hopalong.c
hacks/hopalong.man
hacks/hyperball.c
hacks/hyperball.man
hacks/hypercube.c
hacks/hypercube.man
hacks/ifs.c
hacks/ifs.man
hacks/images/scales.xpm [new file with mode: 0644]
hacks/imsmap.c
hacks/imsmap.man
hacks/interaggregate.c
hacks/interaggregate.man
hacks/interference.c
hacks/interference.man
hacks/intermomentary.man
hacks/jigsaw.c
hacks/jigsaw.man
hacks/juggle.c
hacks/juggle.man
hacks/julia.c
hacks/julia.man
hacks/kaleidescope.c
hacks/kaleidescope.man
hacks/kumppa.c
hacks/kumppa.man
hacks/laser.c
hacks/laser.man
hacks/lcdscrub.c
hacks/lcdscrub.man
hacks/lightning.c
hacks/lightning.man
hacks/lisa.c
hacks/lisa.man
hacks/lissie.c
hacks/lissie.man
hacks/lmorph.man
hacks/loop.c
hacks/loop.man
hacks/maze.c
hacks/maze.man
hacks/memscroller.c
hacks/memscroller.man
hacks/metaballs.c
hacks/metaballs.man
hacks/mismunch.c
hacks/mismunch.man
hacks/moire.c
hacks/moire.man
hacks/moire2.man
hacks/mountain.c
hacks/mountain.man
hacks/munch.c
hacks/munch.man
hacks/munge-ad.pl [new file with mode: 0755]
hacks/nerverot.man
hacks/noseguy.c
hacks/noseguy.man
hacks/pacman.c
hacks/pacman.man
hacks/pedal.c
hacks/pedal.man
hacks/penetrate.c
hacks/penetrate.man
hacks/penrose.c
hacks/penrose.man
hacks/petri.c
hacks/petri.man
hacks/phosphor.c
hacks/phosphor.man
hacks/piecewise.c
hacks/piecewise.man
hacks/polyominoes.c
hacks/polyominoes.man
hacks/pong.c
hacks/pong.man
hacks/pyro.c
hacks/pyro.man
hacks/qix.c
hacks/qix.man
hacks/rd-bomb.c
hacks/rd-bomb.man
hacks/ripples.c
hacks/ripples.man
hacks/rocks.c
hacks/rocks.man
hacks/rorschach.c
hacks/rorschach.man
hacks/rotor.c
hacks/rotor.man
hacks/rotzoomer.c
hacks/rotzoomer.man
hacks/screenhack.c
hacks/screenhack.h
hacks/screenhackI.h
hacks/shadebobs.c
hacks/shadebobs.man
hacks/sierpinski.c
hacks/sierpinski.man
hacks/slidescreen.c
hacks/slidescreen.man
hacks/slip.c
hacks/slip.man
hacks/sonar.c
hacks/sonar.man
hacks/speedmine.c
hacks/speedmine.man
hacks/sphere.c
hacks/sphere.man
hacks/spiral.c
hacks/spiral.man
hacks/spotlight.c
hacks/spotlight.man
hacks/squiral.c
hacks/squiral.man
hacks/starfish.c
hacks/starfish.man
hacks/strange.c
hacks/strange.man
hacks/substrate.c
hacks/substrate.man
hacks/swirl.c
hacks/swirl.man
hacks/t3d.c
hacks/t3d.man
hacks/thornbird.c
hacks/thornbird.man
hacks/triangle.c
hacks/triangle.man
hacks/truchet.c
hacks/truchet.man
hacks/twang.man
hacks/vermiculate.c
hacks/vermiculate.man
hacks/vidwhacker.man
hacks/vines.c
hacks/vines.man
hacks/wander.c
hacks/wander.man
hacks/webcollage
hacks/webcollage-cocoa.m
hacks/webcollage.man
hacks/whirlwindwarp.c
hacks/whirlwindwarp.man
hacks/whirlygig.c
hacks/whirlygig.man
hacks/worm.c
hacks/worm.man
hacks/wormhole.man
hacks/xanalogtv.man
hacks/xflame.c
hacks/xflame.man
hacks/xjack.c
hacks/xjack.man
hacks/xlockmore.c
hacks/xlockmore.h
hacks/xlockmoreI.h
hacks/xlyap.c
hacks/xlyap.man
hacks/xmatrix.c
hacks/xmatrix.man
hacks/xrayswarm.c
hacks/xrayswarm.man
hacks/xspirograph.c
hacks/xspirograph.man
hacks/xsublim.c
hacks/xsublim.man
hacks/zoom.c
hacks/zoom.man
po/POTFILES.in
setup.com
utils/ad2c [changed mode: 0644->0755]
utils/erase.c
utils/version.h
xscreensaver.spec
xscreensaver.xcodeproj/project.pbxproj

diff --git a/OSX/._PrefsReader.m b/OSX/._PrefsReader.m
new file mode 100644 (file)
index 0000000..3d666b3
Binary files /dev/null and b/OSX/._PrefsReader.m differ
diff --git a/OSX/._jwxyz.m b/OSX/._jwxyz.m
new file mode 100644 (file)
index 0000000..3281d46
Binary files /dev/null and b/OSX/._jwxyz.m differ
diff --git a/OSX/AppController.h b/OSX/AppController.h
deleted file mode 100644 (file)
index 98d9f82..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/* xscreensaver, Copyright (c) 2006 Jamie Zawinski <jwz@jwz.org>
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation.  No representations are made about the suitability of this
- * software for any purpose.  It is provided "as is" without express or 
- * implied warranty.
- */
-
-#import <Cocoa/Cocoa.h>
-#import <ScreenSaver/ScreenSaver.h>
-
-@interface AppController : NSObject
-{
-  ScreenSaverView *saverView0;
-  ScreenSaverView *saverView1;
-}
-
-@end
diff --git a/OSX/AppController.m b/OSX/AppController.m
deleted file mode 100644 (file)
index 76911b3..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/* xscreensaver, Copyright (c) 2006 Jamie Zawinski <jwz@jwz.org>
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation.  No representations are made about the suitability of this
- * software for any purpose.  It is provided "as is" without express or 
- * implied warranty.
- */
-
-/* This is just a test harness, really -- it makes a window with an
-   XScreenSaverGLView in it and a Preferences button, because I don't want
-   to have to debug these programs by installing them as screen savers
-   first!
- */
-
-#import "AppController.h"
-#import "XScreenSaverGLView.h"
-
-@implementation AppController
-
-- (ScreenSaverView *) makeSaverView
-{
-  const char *var = "SCREENSAVER_MODULE";
-  const char *s = getenv (var);
-  if (!s || !*s) {
-    NSAssert1 (0, @"set $%s to the name of the module to run", var);
-    exit(1);
-  }
-  NSString *module = [NSString stringWithCString:s
-                                        encoding:NSUTF8StringEncoding];
-  NSString *dir = [[[NSBundle mainBundle] bundlePath]
-                   stringByDeletingLastPathComponent];
-  NSString *name = [module stringByAppendingPathExtension:@"saver"];
-  NSString *path = [dir stringByAppendingPathComponent:name];
-  NSBundle *bundleToLoad = [NSBundle bundleWithPath:path];
-  Class new_class = [bundleToLoad principalClass];
-  NSAssert1 (new_class, @"unable to load \"%@\"", path);
-
-  NSRect rect;
-  rect.origin.x = rect.origin.y = 0;
-  rect.size.width = 320;
-  rect.size.height = 240;
-
-  id instance = [[new_class alloc] initWithFrame:rect isPreview:YES];
-  NSAssert1 (instance, @"unable to instantiate %@", new_class);
-  return (ScreenSaverView *) instance;
-}
-
-
-- (void) openPreferences: (int) which
-{
-  ScreenSaverView *sv = (which ? saverView1 : saverView0);
-  NSAssert (sv, @"no saver view");
-  NSWindow *prefs = [sv configureSheet];
-
-  [NSApp beginSheet:prefs
-     modalForWindow:[sv window]
-      modalDelegate:self
-     didEndSelector:@selector(preferencesClosed:returnCode:contextInfo:)
-        contextInfo:nil];
-  int code = [NSApp runModalForWindow:prefs];
-  
-  /* Restart the animation if the "OK" button was hit, but not if "Cancel".
-     We have to restart *both* animations, because the xlockmore-style
-     ones will blow up if one re-inits but the other doesn't.
-   */
-  if (code != NSCancelButton) {
-    if (saverView0) [saverView0 stopAnimation];
-    if (saverView1) [saverView1 stopAnimation];
-    if (saverView0) [saverView0 startAnimation];
-    if (saverView1) [saverView1 startAnimation];
-  }
-}
-
-- (void) openPreferences0: (NSObject *) button
-{
-  [self openPreferences:0];
-}
-
-- (void) openPreferences1: (NSObject *) button
-{
-  [self openPreferences:1];
-}
-
-- (void) preferencesClosed: (NSWindow *) sheet
-                returnCode: (int) returnCode
-               contextInfo: (void  *) contextInfo
-{
-  [NSApp stopModalWithCode:returnCode];
-}
-
-
-- (void) makeWindow: (ScreenSaverView *)sv which:(int)which
-{
-  NSRect rect;
-  
-  if (which)
-    saverView1 = sv;
-  else
-    saverView0 = sv;
-  
-  // make a "Preferences" button
-  //
-  rect.origin.x = rect.origin.y = 0;
-  rect.size.width = rect.size.height = 10;
-  NSButton *pb = [[NSButton alloc] initWithFrame:rect];
-  [pb setTitle:@"Preferences"];
-  [pb setBezelStyle:NSRoundedBezelStyle];
-  [pb sizeToFit];
-  rect.origin.x = ([sv frame].size.width -
-                   [pb frame].size.width) / 2;
-  [pb setFrameOrigin:rect.origin];
-  
-  // grab the click
-  //
-  [pb setTarget:self];
-  if (which)
-    [pb setAction:@selector(openPreferences1:)];
-  else
-    [pb setAction:@selector(openPreferences0:)];
-      
-  // make a box to wrap the saverView
-  //
-  rect = [sv frame];
-  rect.origin.x = 0;
-  rect.origin.y = [pb frame].origin.y + [pb frame].size.height;
-  NSBox *gbox = [[NSBox alloc] initWithFrame:rect];
-  rect.size.width = rect.size.height = 10;
-  [gbox setContentViewMargins:rect.size];
-  [gbox setTitlePosition:NSNoTitle];
-  [gbox addSubview:sv];
-  [gbox sizeToFit];
-
-  // make a box to wrap the other two boxes
-  //
-  rect.origin.x = rect.origin.y = 0;
-  rect.size.width  = [gbox frame].size.width;
-  rect.size.height = [gbox frame].size.height + [gbox frame].origin.y;
-  NSBox *pbox = [[NSBox alloc] initWithFrame:rect];
-  [pbox setTitlePosition:NSNoTitle];
-  [pbox setBorderType:NSNoBorder];
-  [pbox addSubview:gbox];
-  [pbox addSubview:pb];
-  [pbox sizeToFit];
-
-  // and make a window to hold that.
-  //
-  NSScreen *screen = [NSScreen mainScreen];
-  rect = [pbox frame];
-  rect.origin.x = ([screen frame].size.width  - rect.size.width)  / 2;
-  rect.origin.y = ([screen frame].size.height - rect.size.height) / 2;
-  
-  rect.origin.x += rect.size.width * (which ? 0.55 : -0.55);
-  
-  NSWindow *window = [[NSWindow alloc]
-                      initWithContentRect:rect
-                                styleMask:(NSTitledWindowMask |
-                                           NSClosableWindowMask |
-                                           NSMiniaturizableWindowMask |
-                                           NSResizableWindowMask)
-                                  backing:NSBackingStoreBuffered
-                                    defer:YES
-                                   screen:screen];
-  [window setTitle:@"XScreenSaver"];
-  [window setMinSize:[window frameRectForContentRect:rect].size];
-
-  [[window contentView] addSubview:pbox];
-
-  [sv setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
-  [pb setAutoresizingMask:NSViewMinXMargin|NSViewMaxXMargin];
-  [gbox setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
-  [pbox setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
-    
-  [window setFrameAutosaveName:(which
-                                ? @"SaverDebugWindow1"
-                                : @"SaverDebugWindow0")];
-  [window setFrameUsingName:[window frameAutosaveName]];
-  
-  [window makeKeyAndOrderFront:window];
-  
-  [sv startAnimation];
-}
-
-
-- (void)applicationDidFinishLaunching: (NSNotification *) n
-{
-  [self makeWindow:[self makeSaverView] which:0];
-  [self makeWindow:[self makeSaverView] which:1];
-}
-
-/* When the window closes, exit (even if prefs still open.)
-*/
-- (BOOL) applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) n
-{
-  return YES;
-}
-
-@end
diff --git a/OSX/English.lproj/MainMenu.nib/classes.nib b/OSX/English.lproj/MainMenu.nib/classes.nib
deleted file mode 100644 (file)
index cbc6c75..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-    IBClasses = (
-        {CLASS = AppController; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
-        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
-        {CLASS = InvertedSlider; LANGUAGE = ObjC; SUPERCLASS = NSSlider; }, 
-        {CLASS = PrefsReader; LANGUAGE = ObjC; SUPERCLASS = NSObject; }
-    ); 
-    IBVersion = 1; 
-}
\ No newline at end of file
diff --git a/OSX/English.lproj/MainMenu.nib/info.nib b/OSX/English.lproj/MainMenu.nib/info.nib
deleted file mode 100644 (file)
index a3bd34e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-       <key>IBDocumentLocation</key>
-       <string>135 107 356 240 0 0 1680 1028 </string>
-       <key>IBEditorPositions</key>
-       <dict>
-               <key>29</key>
-               <string>132 353 321 44 0 0 1680 1028 </string>
-       </dict>
-       <key>IBFramework Version</key>
-       <string>443.0</string>
-       <key>IBOpenObjects</key>
-       <array>
-               <integer>29</integer>
-       </array>
-       <key>IBSystem Version</key>
-       <string>8G32</string>
-</dict>
-</plist>
diff --git a/OSX/English.lproj/MainMenu.nib/keyedobjects.nib b/OSX/English.lproj/MainMenu.nib/keyedobjects.nib
deleted file mode 100644 (file)
index e6c5e48..0000000
Binary files a/OSX/English.lproj/MainMenu.nib/keyedobjects.nib and /dev/null differ
diff --git a/OSX/English.lproj/SaverTester.nib/classes.nib b/OSX/English.lproj/SaverTester.nib/classes.nib
new file mode 100644 (file)
index 0000000..15381b0
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>IBClasses</key>
+       <array>
+               <dict>
+                       <key>CLASS</key>
+                       <string>SaverTester</string>
+                       <key>LANGUAGE</key>
+                       <string>ObjC</string>
+                       <key>SUPERCLASS</key>
+                       <string>NSObject</string>
+               </dict>
+               <dict>
+                       <key>CLASS</key>
+                       <string>FirstResponder</string>
+                       <key>LANGUAGE</key>
+                       <string>ObjC</string>
+                       <key>SUPERCLASS</key>
+                       <string>NSObject</string>
+               </dict>
+       </array>
+       <key>IBVersion</key>
+       <string>1</string>
+</dict>
+</plist>
diff --git a/OSX/English.lproj/SaverTester.nib/info.nib b/OSX/English.lproj/SaverTester.nib/info.nib
new file mode 100644 (file)
index 0000000..235c169
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>IBFramework Version</key>
+       <string>670</string>
+       <key>IBLastKnownRelativeProjectPath</key>
+       <string>../../xscreensaver.xcodeproj</string>
+       <key>IBOldestOS</key>
+       <integer>5</integer>
+       <key>IBOpenObjects</key>
+       <array>
+               <integer>29</integer>
+       </array>
+       <key>IBSystem Version</key>
+       <string>9E17</string>
+       <key>targetFramework</key>
+       <string>IBCocoaFramework</string>
+</dict>
+</plist>
diff --git a/OSX/English.lproj/SaverTester.nib/keyedobjects.nib b/OSX/English.lproj/SaverTester.nib/keyedobjects.nib
new file mode 100644 (file)
index 0000000..929e2e9
Binary files /dev/null and b/OSX/English.lproj/SaverTester.nib/keyedobjects.nib differ
index 9ff55bba23692d2bad162209d6632cd80991dab3..e3be145696d796f25f9c84fb0f42bdc84646f315 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
            !strcmp(name, "font") ||
            !strcmp(name, "labelFont") ||  // grabclient.c
            !strcmp(name, "titleFont") ||
+           !strcmp(name, "fpsFont") ||    // fps.c
+           !strcmp(name, "foreground") || // fps.c
            !strcmp(name, "background")
            ))
       NSLog(@"warning: no preference \"%s\" [string]", name);
     return NULL;
   }
-#if 0
-  if (! [o isKindOfClass:[NSString class]]) {
-    NSAssert2(0, @"%s = \"%@\" but should have been an NSString", name, o);
-    abort();
-  }
-#else
   if (! [o isKindOfClass:[NSString class]]) {
     NSLog(@"asked for %s as a string, but it is a %@", name, [o class]);
     o = [(NSNumber *) o stringValue];
   }
-#endif
 
   NSString *os = (NSString *) o;
-  const char *result = [os cStringUsingEncoding:NSUTF8StringEncoding];
-  return strdup (result);
+  char *result = strdup ([os cStringUsingEncoding:NSUTF8StringEncoding]);
+
+  // Kludge: if the string is surrounded with single-quotes, remove them.
+  // This happens when the .xml file says things like arg="-foo 'bar baz'"
+  if (result[0] == '\'' && result[strlen(result)-1] == '\'') {
+    result[strlen(result)-1] = 0;
+    strcpy (result, result+1);
+  }
+
+  return result;
 }
 
 
            !strcmp(name, "mono") ||
            !strcmp(name, "count") ||
            !strcmp(name, "ncolors") ||
+           !strcmp(name, "doFPS") ||      // fps.c
            !strcmp(name, "eraseSeconds")  // erase.c
            ))
       NSLog(@"warning: no preference \"%s\" [float]", name);
 
 - (int) getIntegerResource: (const char *) name
 {
-  return (int) [self getFloatResource:name];
+  // Sliders might store float values for integral resources; round them.
+  float v = [self getFloatResource:name];
+  int i = (int) (v + (v < 0 ? -0.5 : 0.5)); // ignore sign or -1 rounds to 0
+  // if (i != v) NSLog(@"%s: rounded %.3f to %d", name, v, i);
+  return i;
 }
 
 
diff --git a/OSX/SaverTester.h b/OSX/SaverTester.h
new file mode 100644 (file)
index 0000000..7226b74
--- /dev/null
@@ -0,0 +1,21 @@
+/* xscreensaver, Copyright (c) 2006-2008 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation.  No representations are made about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or 
+ * implied warranty.
+ */
+
+#import <Cocoa/Cocoa.h>
+#import <ScreenSaver/ScreenSaver.h>
+
+@interface SaverTester : NSObject
+{
+  NSArray *saverNames;
+  NSArray *windows;
+}
+
+@end
diff --git a/OSX/SaverTester.m b/OSX/SaverTester.m
new file mode 100644 (file)
index 0000000..4ea79aa
--- /dev/null
@@ -0,0 +1,352 @@
+/* xscreensaver, Copyright (c) 2006-2008 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation.  No representations are made about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or 
+ * implied warranty.
+ */
+
+/* This is just a test harness, really -- it makes a window with an
+   XScreenSaverGLView in it and a Preferences button, because I don't want
+   to have to debug these programs by installing them as screen savers
+   first!
+ */
+
+#import "SaverTester.h"
+#import "XScreenSaverGLView.h"
+
+@implementation SaverTester
+
+- (ScreenSaverView *) makeSaverView: (NSString *) module
+{
+  NSString *dir = [[[NSBundle mainBundle] bundlePath]
+                   stringByDeletingLastPathComponent];
+  NSString *name = [module stringByAppendingPathExtension:@"saver"];
+  NSString *path = [dir stringByAppendingPathComponent:name];
+  NSBundle *bundleToLoad = [NSBundle bundleWithPath:path];
+  Class new_class = [bundleToLoad principalClass];
+  NSAssert1 (new_class, @"unable to load \"%@\"", path);
+
+  NSRect rect;
+  rect.origin.x = rect.origin.y = 0;
+  rect.size.width = 320;
+  rect.size.height = 240;
+
+  id instance = [[new_class alloc] initWithFrame:rect isPreview:YES];
+  NSAssert1 (instance, @"unable to instantiate %@", new_class);
+  return (ScreenSaverView *) instance;
+}
+
+
+static ScreenSaverView *
+find_saverView_child (NSView *v)
+{
+  NSArray *kids = [v subviews];
+  int nkids = [kids count];
+  int i;
+  for (i = 0; i < nkids; i++) {
+    NSObject *kid = [kids objectAtIndex:i];
+    if ([kid isKindOfClass:[ScreenSaverView class]]) {
+      return (ScreenSaverView *) kid;
+    } else {
+      ScreenSaverView *sv = find_saverView_child ((NSView *) kid);
+      if (sv) return sv;
+    }
+  }
+  return 0;
+}
+
+
+static ScreenSaverView *
+find_saverView (NSView *v)
+{
+  while (1) {
+    NSView *p = [v superview];
+    if (p) v = p;
+    else break;
+  }
+  return find_saverView_child (v);
+}
+
+
+- (void) openPreferences: (NSObject *) button
+{
+  ScreenSaverView *sv = find_saverView ((NSView *) button);
+  NSAssert (sv, @"no saver view");
+  NSWindow *prefs = [sv configureSheet];
+
+  [NSApp beginSheet:prefs
+     modalForWindow:[sv window]
+      modalDelegate:self
+     didEndSelector:@selector(preferencesClosed:returnCode:contextInfo:)
+        contextInfo:nil];
+  int code = [NSApp runModalForWindow:prefs];
+  
+  /* Restart the animation if the "OK" button was hit, but not if "Cancel".
+     We have to restart *both* animations, because the xlockmore-style
+     ones will blow up if one re-inits but the other doesn't.
+   */
+  if (code != NSCancelButton) {
+    [sv stopAnimation];
+    [sv startAnimation];
+  }
+}
+
+- (void) preferencesClosed: (NSWindow *) sheet
+                returnCode: (int) returnCode
+               contextInfo: (void  *) contextInfo
+{
+  [NSApp stopModalWithCode:returnCode];
+}
+
+
+- (void)selectedSaverDidChange:(NSDictionary *)change
+{
+  NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
+  NSString *module = [prefs stringForKey:@"selectedSaverName"];
+  int i;
+
+  if (! module) return;
+
+  for (i = 0; i < [windows count]; i++) {
+    NSView *cv = [[windows objectAtIndex:i] contentView];
+    ScreenSaverView *old_view = find_saverView (cv);
+    NSView *sup = [old_view superview];
+
+    [old_view stopAnimation];
+    [old_view removeFromSuperview];
+
+    ScreenSaverView *new_view = [self makeSaverView:module];
+    [new_view setFrame: [old_view frame]];
+    [sup addSubview: new_view];
+    [new_view setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
+    [new_view startAnimation];
+  }
+
+  NSUserDefaultsController *ctl =
+    [NSUserDefaultsController sharedUserDefaultsController];
+  [ctl save:self];
+}
+
+
+- (NSArray *) listSaverBundleNames
+{
+  NSString *dir = [[[NSBundle mainBundle] bundlePath]
+                   stringByDeletingLastPathComponent];
+  NSString *longest = 0;
+  NSArray *matches = 0;
+  NSArray *exts = [NSArray arrayWithObjects:@"saver", nil];
+  unsigned int n = [dir completePathIntoString: &longest
+                                 caseSensitive: NO
+                              matchesIntoArray: &matches
+                                   filterTypes: exts];
+  if (n <= 0) {
+    NSLog (@"no .saver bundles found in \"%@/\"!", dir);
+    exit (1);
+  }
+
+  int i;
+  NSMutableArray *result = [NSMutableArray arrayWithCapacity: n+1];
+  for (i = 0; i < n; i++)
+    [result addObject: [[[matches objectAtIndex: i] lastPathComponent]
+                         stringByDeletingPathExtension]];
+  return result;
+}
+
+
+- (NSPopUpButton *) makeMenu
+{
+  NSRect rect;
+  rect.origin.x = rect.origin.y = 0;
+  rect.size.width = 10;
+  rect.size.height = 10;
+  NSPopUpButton *popup = [[NSPopUpButton alloc] initWithFrame:rect
+                                                    pullsDown:NO];
+  int i;
+  float max_width = 0;
+  for (i = 0; i < [saverNames count]; i++) {
+    NSString *name = [saverNames objectAtIndex:i];
+    [popup addItemWithTitle:name];
+    [[popup itemWithTitle:name] setRepresentedObject:name];
+    [popup sizeToFit];
+    NSRect r = [popup frame];
+    if (r.size.width > max_width) max_width = r.size.width;
+  }
+
+  // Bind the menu to preferences, and trigger a callback when an item
+  // is selected.
+  //
+  NSString *key = @"values.selectedSaverName";
+  NSUserDefaultsController *prefs =
+    [NSUserDefaultsController sharedUserDefaultsController];
+  [prefs addObserver:self
+         forKeyPath:key
+            options:nil
+            context:@selector(selectedSaverDidChange:)];
+  [popup   bind:@"selectedObject"
+       toObject:prefs
+    withKeyPath:key
+        options:nil];
+  [prefs setAppliesImmediately:YES];
+
+  NSRect r = [popup frame];
+  r.size.width = max_width;
+  [popup setFrame:r];
+  return popup;
+}
+
+
+/* This is called when the "selectedSaverName" pref changes, e.g.,
+   when a menu selection is made.
+ */
+- (void)observeValueForKeyPath:(NSString *)keyPath
+                      ofObject:(id)object
+                        change:(NSDictionary *)change
+                       context:(void *)context
+{
+  SEL dispatchSelector = (SEL)context;
+  if (dispatchSelector != NULL) {
+    [self performSelector:dispatchSelector withObject:change];
+  } else {
+    [super observeValueForKeyPath:keyPath
+                         ofObject:object
+                           change:change
+                          context:context];
+  }
+}
+
+
+
+- (NSWindow *) makeWindow
+{
+  NSRect rect;
+  static int count = 0;
+
+  // make a "Preferences" button
+  //
+  rect.origin.x = rect.origin.y = 0;
+  rect.size.width = rect.size.height = 10;
+  NSButton *pb = [[NSButton alloc] initWithFrame:rect];
+  [pb setTitle:@"Preferences"];
+  [pb setBezelStyle:NSRoundedBezelStyle];
+  [pb sizeToFit];
+
+
+  NSRect sv_rect = rect;
+  sv_rect.size.width = 320;
+  sv_rect.size.height = 240;
+  ScreenSaverView *sv = [[ScreenSaverView alloc]  // dummy placeholder
+                          initWithFrame:sv_rect
+                          isPreview:YES];
+
+  rect.origin.x = ([sv frame].size.width -
+                   [pb frame].size.width) / 2;
+  [pb setFrameOrigin:rect.origin];
+  
+  // grab the click
+  //
+  [pb setTarget:self];
+  [pb setAction:@selector(openPreferences:)];
+
+  // Make a saver selection menu
+  //
+  NSPopUpButton *menu = [self makeMenu];
+  rect.origin.x = 2;
+  rect.origin.y = 2;
+  [menu setFrameOrigin:rect.origin];
+
+  // make a box to wrap the saverView
+  //
+  rect = [sv frame];
+  rect.origin.x = 0;
+  rect.origin.y = [pb frame].origin.y + [pb frame].size.height;
+  NSBox *gbox = [[NSBox alloc] initWithFrame:rect];
+  rect.size.width = rect.size.height = 10;
+  [gbox setContentViewMargins:rect.size];
+  [gbox setTitlePosition:NSNoTitle];
+  [gbox addSubview:sv];
+  [gbox sizeToFit];
+
+  // make a box to wrap the other two boxes
+  //
+  rect.origin.x = rect.origin.y = 0;
+  rect.size.width  = [gbox frame].size.width;
+  rect.size.height = [gbox frame].size.height + [gbox frame].origin.y;
+  NSBox *pbox = [[NSBox alloc] initWithFrame:rect];
+  [pbox setTitlePosition:NSNoTitle];
+  [pbox setBorderType:NSNoBorder];
+  [pbox addSubview:gbox];
+  [pbox addSubview:menu];
+  [pbox addSubview:pb];
+  [pbox sizeToFit];
+
+  // and make a window to hold that.
+  //
+  NSScreen *screen = [NSScreen mainScreen];
+  rect = [pbox frame];
+  rect.origin.x = ([screen frame].size.width  - rect.size.width)  / 2;
+  rect.origin.y = ([screen frame].size.height - rect.size.height) / 2;
+  
+  rect.origin.x += rect.size.width * (count ? 0.55 : -0.55);
+  
+  NSWindow *window = [[NSWindow alloc]
+                      initWithContentRect:rect
+                                styleMask:(NSTitledWindowMask |
+                                           NSClosableWindowMask |
+                                           NSMiniaturizableWindowMask |
+                                           NSResizableWindowMask)
+                                  backing:NSBackingStoreBuffered
+                                    defer:YES
+                                   screen:screen];
+  [window setTitle:@"XScreenSaver"];
+  [window setMinSize:[window frameRectForContentRect:rect].size];
+
+  [[window contentView] addSubview:pbox];
+
+  [sv   setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
+  [pb   setAutoresizingMask:NSViewMinXMargin|NSViewMaxXMargin];
+  [menu setAutoresizingMask:NSViewMinXMargin|NSViewMaxXMargin];
+  [gbox setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
+  [pbox setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
+    
+  char buf[100];
+  sprintf (buf, "SaverDebugWindow%d", count);
+  [window setFrameAutosaveName:
+            [NSString stringWithCString:buf encoding:NSUTF8StringEncoding]];
+  [window setFrameUsingName:[window frameAutosaveName]];
+  
+  [window makeKeyAndOrderFront:window];
+  
+  [sv startAnimation]; // this is the dummy saver
+
+  count++;
+
+  return window;
+}
+
+
+- (void)applicationDidFinishLaunching: (NSNotification *) notif
+{
+  saverNames = [[self listSaverBundleNames] retain];
+
+  int i, n = 2;
+  NSMutableArray *w = [[NSMutableArray arrayWithCapacity: n+1] retain];
+  windows = w;
+  for (i = 0; i < n; i++)
+    [w addObject: [self makeWindow]];
+
+  [self selectedSaverDidChange:nil];
+}
+
+
+/* When the window closes, exit (even if prefs still open.)
+*/
+- (BOOL) applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) n
+{
+  return YES;
+}
+
+@end
index 3a29f28bc40673a6f6f924c8561557bf32b60102..8cddccac7e6f70426b3c4f16900d412431bb3db4 100644 (file)
@@ -1,11 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
        <key>CFBundleDevelopmentRegion</key>
        <string>English</string>
        <key>CFBundleExecutable</key>
        <string>${EXECUTABLE_NAME}</string>
+       <key>CFBundleIconFile</key>
+       <string>XScreenSaver</string>
        <key>CFBundleIdentifier</key>
        <string>org.jwz.xscreensaver.${EXECUTABLE_NAME}</string>
        <key>CFBundleInfoDictionaryVersion</key>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.06</string>
+       <string>5.07</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.06</string>
+       <string>5.07</string>
        <key>LSMinimumSystemVersion</key>
        <string>10.4.0</string>
        <key>NSMainNibFile</key>
-       <string>MainMenu</string>
+       <string>SaverTester</string>
        <key>NSPrincipalClass</key>
        <string>NSApplication</string>
 </dict>
index cf398f13b17c0bb943c826c57ce3a5887a02da46..3d0c849adc8c8ebb670311cd6f16b31b43a791e5 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
        <key>CFBundleDevelopmentRegion</key>
        <key>CFBundlePackageType</key>
        <string>BNDL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.06</string>
+       <string>5.07</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.06</string>
+       <string>5.07</string>
        <key>LSMinimumSystemVersion</key>
        <string>10.4.0</string>
        <key>NSMainNibFile</key>
-       <string>MainMenu</string>
+       <string>SaverTester</string>
        <key>NSPrincipalClass</key>
        <string>XScreenSaver${EXECUTABLE_NAME}View</string>
 </dict>
index 9601eac42c1706c12aa63e1a9652d192c58b3ab6..06804c70429b915d84eb34dcbe30ad90fde0889c 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -606,12 +606,21 @@ make_number_selector (NSUserDefaultsController *prefs,
                label);
   }
     
+  // If either the min or max field contains a decimal point, then this
+  // option may have a floating point value; otherwise, it is constrained
+  // to be an integer.
+  //
+  NSCharacterSet *dot =
+    [NSCharacterSet characterSetWithCharactersInString:@"."];
+  BOOL float_p = ([low rangeOfCharacterFromSet:dot].location != NSNotFound ||
+                  [high rangeOfCharacterFromSet:dot].location != NSNotFound);
+
   if ([type isEqualToString:@"slider"]) {
 
     NSRect rect;
     rect.origin.x = rect.origin.y = 0;    
     rect.size.width = 150;
-    rect.size.height = 20;
+    rect.size.height = 23;  // apparent min height for slider with ticks...
     NSSlider *slider;
     if (cvt)
       slider = [[InvertedSlider alloc] initWithFrame:rect];
@@ -621,6 +630,31 @@ make_number_selector (NSUserDefaultsController *prefs,
     [slider setMaxValue:[high doubleValue]];
     [slider setMinValue:[low  doubleValue]];
     
+    int range = [slider maxValue] - [slider minValue] + 1;
+    int range2 = range;
+    int max_ticks = 21;
+    while (range2 > max_ticks)
+      range2 /= 10;
+
+    // If we have elided ticks, leave it at the max number of ticks.
+    if (range != range2 && range2 < max_ticks)
+      range2 = max_ticks;
+
+    // If it's a float, always display the max number of ticks.
+    if (float_p && range2 < max_ticks)
+      range2 = max_ticks;
+
+    [slider setNumberOfTickMarks:range2];
+
+    [slider setAllowsTickMarkValuesOnly:
+              (range == range2 &&  // we are showing the actual number of ticks
+               !float_p)];         // and we want integer results
+
+    // #### Note: when the slider's range is large enough that we aren't
+    //      showing all possible ticks, the slider's value is not constrained
+    //      to be an integer, even though it should be...
+    //      Maybe we need to use a value converter or something?
+
     if (label) {
       NSTextField *lab = make_label (label);
       place_child (parent, lab, NO);
@@ -711,8 +745,8 @@ make_number_selector (NSUserDefaultsController *prefs,
     [step sizeToFit];
     place_child (parent, step, YES);
     rect = [step frame];
-    rect.size.height = [txt frame].size.height;
     rect.origin.x -= COLUMN_SPACING;  // this one goes close
+    rect.origin.y += ([txt frame].size.height - rect.size.height) / 2;
     [step setFrame:rect];
     
     [step setMinValue:[low  doubleValue]];
@@ -728,6 +762,18 @@ make_number_selector (NSUserDefaultsController *prefs,
     else
       [step setIncrement:1.0];
 
+    NSNumberFormatter *fmt = [[[NSNumberFormatter alloc] init] autorelease];
+    [fmt setFormatterBehavior:NSNumberFormatterBehavior10_4];
+    [fmt setNumberStyle:NSNumberFormatterDecimalStyle];
+    [fmt setMinimum:[NSNumber numberWithDouble:[low  doubleValue]]];
+    [fmt setMaximum:[NSNumber numberWithDouble:[high doubleValue]]];
+    [fmt setMinimumFractionDigits: (float_p ? 1 : 0)];
+    [fmt setMaximumFractionDigits: (float_p ? 2 : 0)];
+
+    [fmt setGeneratesDecimalNumbers:float_p];
+    [[txt cell] setFormatter:fmt];
+
+
     bind_switch_to_preferences (prefs, step, arg, opts);
     bind_switch_to_preferences (prefs, txt,  arg, opts);
     
@@ -997,6 +1043,45 @@ unwrap (NSString *text)
 }
 
 
+static char *
+anchorize (const char *url)
+{
+  const char *wiki = "http://en.wikipedia.org/wiki/";
+  if (!strncmp (wiki, url, strlen(wiki))) {
+    char *anchor = (char *) malloc (strlen(url) * 3 + 10);
+    strcpy (anchor, "Wikipedia: \"");
+    const char *in = url + strlen(wiki);
+    char *out = anchor + strlen(anchor);
+    while (*in) {
+      if (*in == '_') {
+        *out++ = ' ';
+      } else if (*in == '#') {
+        *out++ = ':';
+        *out++ = ' ';
+      } else if (*in == '%') {
+        char hex[3];
+        hex[0] = in[1];
+        hex[1] = in[2];
+        hex[2] = 0;
+        int n = 0;
+        sscanf (hex, "%x", &n);
+        *out++ = (char) n;
+        in += 2;
+      } else {
+        *out++ = *in;
+      }
+      in++;
+    }
+    *out++ = '"';
+    *out = 0;
+    return anchor;
+
+  } else {
+    return strdup (url);
+  }
+}
+
+
 /* Converts any http: URLs in the given text field to clickable links.
  */
 static void
@@ -1040,15 +1125,24 @@ hreffify (NSText *nstext)
     NSString *nsurl = [text substringWithRange:r2];
     const char *url = [nsurl UTF8String];
 
-    // Construct the RTF corresponding to <A HREF="url">url</A>
+    // If this is a Wikipedia URL, make the linked text be prettier.
+    //
+    char *anchor = anchorize(url);
+
+    // Construct the RTF corresponding to <A HREF="url">anchor</A>
     //
     const char *fmt = "{\\field{\\*\\fldinst{HYPERLINK \"%s\"}}%s}";
-    char *rtf = malloc (strlen (fmt) + (strlen (url) * 2) + 10);
-    sprintf (rtf, fmt, url, url);
+    char *rtf = malloc (strlen (fmt) + strlen(url) + strlen(anchor) + 10);
+    sprintf (rtf, fmt, url, anchor);
+    free (anchor);
     NSData *rtfdata = [NSData dataWithBytesNoCopy:rtf length:strlen(rtf)];
 
     // Insert the RTF into the NSText.
     [nstext replaceCharactersInRange:r2 withRTF:rtfdata];
+
+    int L2 = [text length];  // might have changed
+    start.location -= (L - L2);
+    L = L2;
   }
 }
 
@@ -1147,7 +1241,7 @@ make_text_controls (NSUserDefaultsController *prefs,
 {
   /*
     Display Text:
-     (x)  Computer Name and Time
+     (x)  Computer name and time
      ( )  Text       [__________________________]
      ( )  Text file  [_________________] [Choose]
      ( )  URL        [__________________________]
@@ -1183,7 +1277,7 @@ make_text_controls (NSUserDefaultsController *prefs,
   [matrix setAllowsEmptySelection:NO];
 
   NSArrayController *cnames  = [[NSArrayController alloc] initWithContent:nil];
-  [cnames addObject:@"Computer Name and Time"];
+  [cnames addObject:@"Computer name and time"];
   [cnames addObject:@"Text"];
   [cnames addObject:@"File"];
   [cnames addObject:@"URL"];
@@ -1301,13 +1395,13 @@ make_image_controls (NSUserDefaultsController *prefs,
                      NSView *parent, NSXMLNode *node)
 {
   /*
-    [x]  Grab Desktop Images
-    [ ]  Choose Random Image:
+    [x]  Grab desktop images
+    [ ]  Choose random image:
          [__________________________]  [Choose]
 
-   <boolean id="grabDesktopImages" _label="Grab Desktop Images"
+   <boolean id="grabDesktopImages" _label="Grab desktop images"
        arg-unset="-no-grab-desktop"/>
-   <boolean id="chooseRandomImages" _label="Grab Desktop Images"
+   <boolean id="chooseRandomImages" _label="Grab desktop images"
        arg-unset="-choose-random-images"/>
    <file id="imageDirectory" _label="" arg-set="-image-directory %"/>
    */
@@ -1318,7 +1412,7 @@ make_image_controls (NSUserDefaultsController *prefs,
   [node2 setAttributesAsDictionary:
           [NSDictionary dictionaryWithObjectsAndKeys:
                         @"grabDesktopImages",   @"id",
-                        @"Grab Desktop Images", @"_label",
+                        @"Grab desktop images", @"_label",
                         @"-no-grab-desktop",    @"arg-unset",
                         nil]];
   make_checkbox (prefs, opts, parent, node2);
@@ -1328,7 +1422,7 @@ make_image_controls (NSUserDefaultsController *prefs,
   [node2 setAttributesAsDictionary:
           [NSDictionary dictionaryWithObjectsAndKeys:
                         @"chooseRandomImages",    @"id",
-                        @"Choose Random Images",  @"_label",
+                        @"Choose random images",  @"_label",
                         @"-choose-random-images", @"arg-set",
                         nil]];
   make_checkbox (prefs, opts, parent, node2);
@@ -1338,7 +1432,7 @@ make_image_controls (NSUserDefaultsController *prefs,
   [node2 setAttributesAsDictionary:
           [NSDictionary dictionaryWithObjectsAndKeys:
                         @"imageDirectory",     @"id",
-                        @"Images Directory:",  @"_label",
+                        @"Images directory:",  @"_label",
                         @"-image-directory %", @"arg",
                         nil]];
   make_file_selector (prefs, opts, parent, node2, YES, NO);
@@ -1654,9 +1748,16 @@ wrap_with_buttons (NSWindow *window, NSView *panel)
   [pbox setTitlePosition:NSNoTitle];
   [pbox setBorderType:NSBezelBorder];
 
+  // Enforce a max height on the dialog, so that it's obvious to me
+  // (on a big screen) when the dialog will fall off the bottom of
+  // a small screen (e.g., 1024x768 laptop with a huge bottom dock).
   {
     NSRect f = [panel frame];
-    int screen_height = 800 - 64;
+    int screen_height = (768    // shortest "modern" Mac display
+                         - 22   // menu bar
+                         - 56   // System Preferences toolbar
+                         - 140  // default magnified bottom dock icon
+                         );
     if (f.size.height > screen_height) {
       NSLog(@"%@ height was %.0f; clipping to %d", 
           [panel class], f.size.height, screen_height);
index 265654a1e9b95c54e62b2aa83a91f38f9241f6a3..b7ac9c1e49dad4b1e02251f4d27db94d84ab3c42 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006, 2007 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2008 Jamie Zawinski <jwz@jwz.org>
 *
 * Permission to use, copy, modify, distribute, and sell this software and its
 * documentation for any purpose is hereby granted without fee, provided that
index 5fe0895961b0fe83fca0fa45c932a5b700582efa..a201786c854a4c89f89b1c8c9e965278d69a99f0 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2008 Jamie Zawinski <jwz@jwz.org>
 *
 * Permission to use, copy, modify, distribute, and sell this software and its
 * documentation for any purpose is hereby granted without fee, provided that
@@ -34,6 +34,7 @@
   Display *xdpy;
   Window xwindow;
   void *xdata;
+  fps_state *fpst;
 }
 
 - (void) prepareContext;
index 2baf2c69f9e3575cc026671e2d44f2b5e8e5147d..932e7db776b680ca156010b03f4f4e295427f55b 100644 (file)
@@ -126,9 +126,12 @@ add_default_options (const XrmOptionDescRec *opts,
     { "-choose-random-images",   ".chooseRandomImages",XrmoptionNoArg, "True" },
     { "-no-choose-random-images",".chooseRandomImages",XrmoptionNoArg, "False"},
     { "-image-directory",        ".imageDirectory",    XrmoptionSepArg, 0 },
+    { "-fps",                    ".doFPS",             XrmoptionNoArg, "True" },
+    { "-no-fps",                 ".doFPS",             XrmoptionNoArg, "False"},
     { 0, 0, 0, 0 }
   };
   static const char *default_defaults [] = {
+    ".doFPS:              False",
     ".textMode:           date",
  // ".textLiteral:        ",
  // ".textFile:           ",
@@ -262,6 +265,13 @@ add_default_options (const XrmOptionDescRec *opts,
 
     [self lockFocus];       // in case something tries to draw from here
     [self prepareContext];
+
+    /* I considered just not even calling the free callback at all...
+       But webcollage-cocoa needs it, to kill the inferior webcollage
+       processes (since the screen saver framework never generates a
+       SIGPIPE for them...)  Instead, I turned off the free call in
+       xlockmore.c, which is where all of the bogus calls are anyway.
+     */
     xsft->free_cb (xdpy, xwindow, xdata);
     [self unlockFocus];
 
@@ -286,6 +296,15 @@ add_default_options (const XrmOptionDescRec *opts,
 {
 }
 
+
+static void
+screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure)
+{
+  fps_compute (fpst, 0);
+  fps_draw (fpst);
+}
+
+
 - (void) animateOneFrame
 {
   if (!initted_p) {
@@ -333,6 +352,11 @@ add_default_options (const XrmOptionDescRec *opts,
       (void *(*) (Display *, Window, void *)) xsft->init_cb;
     
     xdata = init_cb (xdpy, xwindow, xsft->setup_arg);
+
+    if (get_boolean_resource (xdpy, "doFPS", "DoFPS")) {
+      fpst = fps_init (xdpy, xwindow);
+      if (! xsft->fps_cb) xsft->fps_cb = screenhack_do_fps;
+    }
   }
 
   /* I don't understand why we have to do this *every frame*, but we do,
@@ -341,6 +365,18 @@ add_default_options (const XrmOptionDescRec *opts,
   if (![self isPreview])
     [NSCursor setHiddenUntilMouseMoves:YES];
 
+
+  if (fpst)
+    {
+      /* This is just a guess, but the -fps code wants to know how long
+         we were sleeping between frames.
+       */
+      unsigned long usecs = 1000000 * [self animationTimeInterval];
+      usecs -= 200;  // caller apparently sleeps for slightly less sometimes...
+      fps_slept (fpst, usecs);
+    }
+
+
   /* It turns out that [ScreenSaverView setAnimationTimeInterval] does nothing.
      This is bad, because some of the screen hacks want to delay for long 
      periods (like 5 seconds or a minute!) between frames, and running them
@@ -386,6 +422,7 @@ add_default_options (const XrmOptionDescRec *opts,
   //
   NSDisableScreenUpdates();
   unsigned long delay = xsft->draw_cb (xdpy, xwindow, xdata);
+  if (fpst) xsft->fps_cb (xdpy, xwindow, fpst, xdata);
   XSync (xdpy, 0);
   NSEnableScreenUpdates();
 
@@ -517,7 +554,7 @@ add_default_options (const XrmOptionDescRec *opts,
     case KeyRelease:
       {
         NSString *nss = [e characters];
-        const char *s = [nss cStringUsingEncoding:NSUTF8StringEncoding];
+        const char *s = [nss cStringUsingEncoding:NSISOLatin1StringEncoding];
         xe.xkey.keycode = (s && *s ? *s : 0);
         xe.xkey.state = state;
         break;
index dc18b3eab02b44062e6a979ba915a283d5d4de08..fbfe64d483e95d2d84e79f5ed4c2bff91ab135de 100644 (file)
@@ -15,7 +15,7 @@ XScreenSaver
 \f1\b0 \
 by Jamie Zawinski \uc0\u8232 and many others\
 \
-version 5.06 \uc0\u8232 16-Jul-2008\
+version 5.07 \uc0\u8232 10-Aug-2008\
 \
 {\field{\*\fldinst{HYPERLINK "http://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 http://www.jwz.org/xscreensaver/}}\
 \pard\pardeftab720\li720
@@ -38,6 +38,8 @@ If you want to install all of them, then drag all of the .saver files to the "Sc
 \cf0 \
 Open the "Screen Savers" folder in your "Library" folder, and drag any unwanted savers into the trash.\
 \
+If you've previously installed screen savers for "all users" instead of "current user", they might be in "/Library/Screen Savers/" or "/System/Library/Screen Savers/" instead.\
+\
 \pard\pardeftab720
 
 \f0\b \cf0 For More Information:\
index 559133804a75f9b3d4ea280f2d05eba526d3a82d..c1984c931f169fc661711fe8c233ffdf9aedab79 100644 (file)
@@ -1479,6 +1479,13 @@ XPutImage (Display *dpy, Drawable d, GC gc, XImage *ximage,
 {
   CGRect wr = d->frame;
 
+  Assert ((w < 65535), "improbably large width");
+  Assert ((h < 65535), "improbably large height");
+  Assert ((src_x  < 65535 && src_x  > -65535), "improbably large src_x");
+  Assert ((src_y  < 65535 && src_y  > -65535), "improbably large src_y");
+  Assert ((dest_x < 65535 && dest_x > -65535), "improbably large dest_x");
+  Assert ((dest_y < 65535 && dest_y > -65535), "improbably large dest_y");
+
   // Clip width and height to the bounds of the Drawable
   //
   if (dest_x + w > wr.size.width) {
@@ -1608,6 +1615,11 @@ XGetImage (Display *dpy, Drawable d, int x, int y,
   int depth, ibpp, ibpl;
   NSBitmapImageRep *bm = 0;
   
+  Assert ((width  < 65535), "improbably large width");
+  Assert ((height < 65535), "improbably large height");
+  Assert ((x < 65535 && x > -65535), "improbably large x");
+  Assert ((y < 65535 && y > -65535), "improbably large y");
+
   if (d->type == PIXMAP) {
     depth = d->pixmap.depth;
     ibpp = CGBitmapContextGetBitsPerPixel (d->cgc);
@@ -1628,10 +1640,11 @@ XGetImage (Display *dpy, Drawable d, int x, int y,
     ibpl = [bm bytesPerRow];
     data = [bm bitmapData];
     Assert (data, "NSBitmapImageRep initWithFocusedViewRect failed");
-
-    data += (y * ibpl) + (x * (ibpp/8));
   }
   
+  // data points at (x,y) with ibpl rowstride.  ignore x,y from now on.
+  data += (y * ibpl) + (x * (ibpp/8));
+  
   format = (depth == 1 ? XYPixmap : ZPixmap);
   XImage *image = XCreateImage (dpy, 0, depth, format, 0, 0, width, height,
                                 0, 0);
@@ -1646,10 +1659,10 @@ XGetImage (Display *dpy, Drawable d, int x, int y,
   int xx, yy;
   if (depth == 1) {
     const unsigned char *iline = data;
-    for (yy = y; yy < y+height; yy++) {
+    for (yy = 0; yy < height; yy++) {
 
       const unsigned char *iline2 = iline;
-      for (xx = x; xx < x+width; xx++) {
+      for (xx = 0; xx < width; xx++) {
 
         iline2++;                     // ignore b or a
         iline2++;                     // ignore g or r
@@ -1664,12 +1677,11 @@ XGetImage (Display *dpy, Drawable d, int x, int y,
     Assert (ibpp == 24 || ibpp == 32, "weird obpp");
     const unsigned char *iline = data;
     unsigned char *oline = (unsigned char *) image->data;
-    oline += (y * obpl);
-    for (yy = y; yy < y+height; yy++) {
+    for (yy = 0; yy < height; yy++) {
 
       const unsigned char *iline2 = iline;
       unsigned char *oline2 = oline;
-      for (xx = x; xx < x+width; xx++) {
+      for (xx = 0; xx < width; xx++) {
 
         unsigned char a = (ibpp == 32 ? (*iline2++) : 0xFF);
         unsigned char r = *iline2++;
@@ -1681,7 +1693,7 @@ XGetImage (Display *dpy, Drawable d, int x, int y,
                                (b <<  0));
         *((unsigned int *) oline2) = pixel;
         oline2 += 4;
-     }
+      }
       oline += obpl;
       iline += ibpl;
     }
@@ -2014,23 +2026,44 @@ try_font (BOOL fixed, BOOL bold, BOOL ital, BOOL serif, float size,
           char **name_ret)
 {
   Assert (size > 0, "zero font size");
-  const char *prefix = (fixed ? "Monaco" : (serif ? "Times" : "Helvetica"));
-  const char *suffix = (bold && ital
-                        ? (serif ? "-BoldItalic" : "-BoldOblique")
-                        : (bold ? "-Bold" :
-                           ital ? (serif ? "-Italic" : "-Oblique") : ""));
-  char *name = (char *) malloc (strlen(prefix) + strlen(suffix) + 1);
-  strcpy (name, prefix);
-  strcat (name, suffix);
+  const char *name;
+
+  if (fixed) {
+    // 
+    // "Monaco" only exists in plain.
+    // "LucidaSansTypewriterStd" gets an AGL bad value error.
+    // 
+    if (bold && ital) name = "Courier-BoldOblique";
+    else if (bold)    name = "Courier-Bold";
+    else if (ital)    name = "Courier-Oblique";
+    else              name = "Courier";
+
+  } else if (serif) {
+    // 
+    // "Georgia" looks better than "Times".
+    // 
+    if (bold && ital) name = "Georgia-BoldItalic";
+    else if (bold)    name = "Georgia-Bold";
+    else if (ital)    name = "Georgia-Italic";
+    else              name = "Georgia";
+
+  } else {
+    // 
+    // "Geneva" only exists in plain.
+    // "LucidaSansStd-BoldItalic" gets an AGL bad value error.
+    // "Verdana" renders smoother than "Helvetica" for some reason.
+    // 
+    if (bold && ital) name = "Verdana-BoldItalic";
+    else if (bold)    name = "Verdana-Bold";
+    else if (ital)    name = "Verdana-Italic";
+    else              name = "Verdana";
+  }
 
   NSString *nsname = [NSString stringWithCString:name
                                         encoding:NSUTF8StringEncoding];
   NSFont *f = [NSFont fontWithName:nsname size:size];
-  if (f) {
-    *name_ret = name;
-  } else {
-    free (name);
-  }
+  if (f)
+    *name_ret = strdup(name);
   return f;
 }
 
@@ -2065,8 +2098,8 @@ try_native_font (const char *name, char **name_ret, float *size_ret)
 static NSFont *
 random_font (BOOL bold, BOOL ital, float size, char **name_ret)
 {
-  NSFontTraitMask mask = ((bold ? NSUnboldFontMask   : NSBoldFontMask) |
-                          (ital ? NSUnitalicFontMask : NSItalicFontMask));
+  NSFontTraitMask mask = ((bold ? NSBoldFontMask   : NSUnboldFontMask) |
+                          (ital ? NSItalicFontMask : NSUnitalicFontMask));
   NSArray *fonts = [[NSFontManager sharedFontManager]
                      availableFontNamesWithTraits:mask];
   if (!fonts) return 0;
index 16a2bed0a444e00433f1a40710c39fec64b4e1ee..aac1f48c860694c8fc3944ccfec86c8fe3bd6d1a 100755 (executable)
@@ -23,7 +23,7 @@ require 5;
 use strict;
 
 my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.7 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 1.9 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
 
 my $verbose = 1;
 
@@ -113,17 +113,15 @@ sub update_saver_xml($$) {
     }
   }
 
-  my $cc = "\302\251";  # unicode "&copy;"
-
-  my $desc1 = ("$name, version $vers.\n\n" .
+  my $desc1 = ("$name, version $vers.\n\n" .           # savername.xml
                $desc . "\n" .
                "\n" . 
-               "From the XScreenSaver collection:\n" .
+               "From the XScreenSaver collection: " .
                "http://www.jwz.org/xscreensaver/\n" .
                "Copyright \251 $year by $authors.\n");
 
-  my $desc2 = ("$name $vers,\n" .
-               "$cc $year $authors.\n" .
+  my $desc2 = ("$name $vers,\n" .                      # Info.plist
+               "\302\251 $year $authors.\n" .
                "From the XScreenSaver collection:\n" .
                "http://www.jwz.org/xscreensaver/\n" .
                "\n" .
@@ -216,6 +214,11 @@ sub update($) {
   my $copyright = "$1";
   $copyright =~ s/\b\d{4}-(\d{4})\b/$1/;
 
+  # Lose the Wikipedia URLs.
+  $info_str =~ s@http:.*\bwikipedia\b[^\s]+[ \t]*\n?@@gm;
+
+  $info_str =~ s/(\n\n)\n+/$1/gs;
+  $info_str =~ s/(^\s+|\s+$)//gs;
   $plist = set_plist_key ($filename, $plist, 
                           "NSHumanReadableCopyright", $copyright);
   $plist = set_plist_key ($filename, $plist,
diff --git a/README b/README
index 5a0169241c96b7606315e65eff3b008ba4684ef5..f0bc5f86f5127b48207f6294b482dd6aa9e72092 100644 (file)
--- a/README
+++ b/README
@@ -38,6 +38,23 @@ XScreenSaver has an extensive manual -- please read it!
 
 ===============================================================================
 
+Changes since 5.06:   * Xinerama/RANDR tweaks for old-style multi-screen.
+                      * Fixed the bouncing ball in `stairs'.
+                      * `flipflop' can load images onto the tiles.
+                      * Improved layout of the preferences dialogs: they
+                        should all now be usable even on ridiculously tiny
+                        laptop screens.
+                      * MacOS preferences text fields now prevent you from
+                        entering numbers that are out of range.
+                      * Added "Reset to Defaults" button on X11.
+                      * Added relevant Wikipedia links to many of the screen
+                        saver descriptions.
+                      * All hacks support the `-fps' option, not just GL ones.
+                      * The `-fps' option now shows CPU load.
+                      * Added bumpy skin and cel shading to `skytentacles'.
+                      * Added the missing Utah Teapotahedron to `polyhedra'.
+                      * `blitspin' works with color images on OSX now.
+                      * Added transparency to `stonerview'.
 Changes since 5.05:   * Xinerama/RANDR fixes: this time for sure.  It should
                         now work to add/remove monitors or resize screens at
                         any time.
index 4e5170e450dc45a3552dd41d3bdbc6b81bfbb4c6..72489a2d5504c065180a4ba2bfd5858e1bd829d8 100644 (file)
@@ -98,7 +98,7 @@ The XLockMore API
   hacks like "Flag".  The XLockMore ones are the ones that begin with
   "#ifdef STANDALONE" and #include "xlockmore.h".
 
-  All of the OpenGL screen savers follow the XLockMore API.
+  But, all OpenGL screen savers have to follow the XLockMore API.
 
   The XLockMore API is similar to the XScreenSaver API, in that you define
   (roughly) the same set of functions, but the naming conventions are
index a6e9a4c3a9bf06a2561c4b59d15b0f7cb3b5816c..4e352b6095f7b297586a7b7526bdd9171af75998 100755 (executable)
--- a/configure
+++ b/configure
@@ -20218,16 +20218,16 @@ if test "$have_gl" = yes; then
   GL_EXES='$(GL_EXES)'
   GL_UTIL_EXES='$(GL_UTIL_EXES)'
   GL_MEN='$(GL_MEN)'
-  GL_KLUDGE="${tab}  "
+  GL_KLUDGE=" "
 else
-  GL_KLUDGE="-${tab}  "
+  GL_KLUDGE="-"
 fi
 
 if test "$have_gle" = yes; then
   GLE_EXES='$(GLE_EXES)'
-  GLE_KLUDGE="${tab}   "
+  GLE_KLUDGE=" "
 else
-  GLE_KLUDGE="-${tab}   "
+  GLE_KLUDGE="-"
 fi
 
 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
index ee131debdd500d1b85a4ba310424e984657139e5..c486f2a173f0048cd2fa203970e7fe5622a47cc5 100644 (file)
@@ -3592,16 +3592,16 @@ if test "$have_gl" = yes; then
   GL_EXES='$(GL_EXES)'
   GL_UTIL_EXES='$(GL_UTIL_EXES)'
   GL_MEN='$(GL_MEN)'
-  GL_KLUDGE="${tab}  "
+  GL_KLUDGE=" "
 else
-  GL_KLUDGE="-${tab}  "
+  GL_KLUDGE="-"
 fi
 
 if test "$have_gle" = yes; then
   GLE_EXES='$(GLE_EXES)'
-  GLE_KLUDGE="${tab}   "
+  GLE_KLUDGE=" "
 else
-  GLE_KLUDGE="-${tab}   "
+  GLE_KLUDGE="-"
 fi
 
 if test "$have_jpeg" = yes -a "$have_gdk_pixbuf" = yes; then
index 13504008e72025063df16ba8490c93f028d31ac8..746dd1a8955af970ce522f04b6eabf2d74e32ef8 100644 (file)
@@ -432,8 +432,8 @@ install-pam:
            $(INSTALL_DATA) $$src $$dir/$$dest ;                        \
          else                                                          \
            src="xscreensaver.pam.$$$$" ;                               \
-           echo "grep '^#%\|^auth' $$src2 > $$src" ;                   \
-                 grep '^#%\|^auth' $$src2 > $$src ;                    \
+           echo "grep '^#%\|^auth\|^@include' $$src2 > $$src" ;        \
+                 grep '^#%\|^auth\|^@include' $$src2 > $$src  ;        \
            echo $(INSTALL_DATA) $$src $$dir/$$dest ;                   \
                 $(INSTALL_DATA) $$src $$dir/$$dest ;                   \
            echo rm -f $$src ;                                          \
index a6d595450ae6dc3794f406ae50372b64ea827a25..43bb50f8be236f5cdde98ef471390860403ab59f 100644 (file)
@@ -4,8 +4,8 @@
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
-!                              version 5.06
-!                              16-Jul-2008
+!                              version 5.07
+!                              10-Aug-2008
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at http://www.jwz.org/xscreensaver/
@@ -150,273 +150,221 @@ GetViewPortIsFullOfLies: False
 ! screen savers interactively.
 !
 *programs:                                                                   \
-                "Qix (solid)"  qix -root -solid -segments 100              \n\
-          "Qix (transparent)"  qix -root -count 4 -solid -transparent      \n\
-               "Qix (linear)"  qix -root -count 5 -solid -transparent        \
-                                 -linear -segments 250 -size 100           \n\
-                                                                             \
-         "Attraction (balls)"  attraction -root -mode balls                \n\
-         "Attraction (lines)"  attraction -root -mode lines -points 3        \
-                                 -segments 200                             \n\
--      "Attraction (splines)"  attraction -root -mode splines -segments      \
-                                 300                                       \n\
--      "Attraction (orbital)"  attraction -root -mode lines -radius 300      \
-                                 -orbit -vmult 0.5                         \n\
-                                                                             \
-                               pyro -root                                  \n\
-                               rocks -root                                 \n\
+-                              sphere -root                                \n\
+@GL_KLUDGE@ GL:                                superquadrics -root                         \n\
+-                              worm -root                                  \n\
+                               attraction -root                            \n\
+                               blitspin -root                              \n\
+                               greynetic -root                             \n\
                                helix -root                                 \n\
-                               pedal -root                                 \n\
-                               rorschach -root                             \n\
                                hopalong -root                              \n\
-                               greynetic -root                             \n\
-                               imsmap -root                                \n\
-                               slidescreen -root                           \n\
-                               decayscreen -root                           \n\
-                               jigsaw -root                                \n\
-                               blitspin -root                              \n\
-                               slip -root                                  \n\
-                               distort -root                               \n\
-                               spotlight -root                             \n\
-             "Ripples (stir)"  ripples -root -oily -light 2 -stir          \n\
-          "Ripples (desktop)"  ripples -root -water -light 6               \n\
                                hypercube -root                             \n\
--                              hyperball -root                             \n\
-                               halo -root                                  \n\
+                               imsmap -root                                \n\
                                maze -root                                  \n\
                                noseguy -root                               \n\
+                               pyro -root                                  \n\
+                               qix -root                                   \n\
+                               rocks -root                                 \n\
+                               rorschach -root                             \n\
+                               decayscreen -root                           \n\
                                flame -root                                 \n\
+                               halo -root                                  \n\
+                               slidescreen -root                           \n\
 -                              lmorph -root                                \n\
+                               pedal -root                                 \n\
+                               bubbles -root                               \n\
+                               bouboule -root                              \n\
+                               braid -root                                 \n\
+                               coral -root                                 \n\
                                deco -root                                  \n\
-                               moire -root                                 \n\
-                               moire2 -root                                \n\
-                               lightning -root                             \n\
-                               strange -root                               \n\
--                              spiral -root                                \n\
-                               laser -root                                 \n\
-                               grav -root                                  \n\
                                drift -root                                 \n\
-                               ifs -root                                   \n\
-                               julia -root                                 \n\
-                               penrose -root                               \n\
--                              sierpinski -root                            \n\
-                               braid -root                                 \n\
-                               galaxy -root                                \n\
-                               bouboule -root                              \n\
-                               swirl -root                                 \n\
+                               fadeplot -root                              \n\
                                flag -root                                  \n\
-                               sphere -root                                \n\
                                forest -root                                \n\
+                               galaxy -root                                \n\
+                               goop -root                                  \n\
+                               grav -root                                  \n\
+                               ifs -root                                   \n\
+                               julia -root                                 \n\
+                               kaleidescope -root                          \n\
+-                              laser -root                                 \n\
+-                              lightning -root                             \n\
 -                              lisa -root                                  \n\
 -                              lissie -root                                \n\
-                               goop -root                                  \n\
-                               starfish -root                              \n\
-                               munch -root                                 \n\
-                               mismunch -root                              \n\
-                               fadeplot -root                              \n\
-                               coral -root                                 \n\
+@GL_KLUDGE@ GL:                                moebius -root                               \n\
+                               moire -root                                 \n\
+@GL_KLUDGE@ GL:                                morph3d -root                               \n\
                                mountain -root                              \n\
-                               triangle -root                              \n\
--                              worm -root                                  \n\
+                               munch -root                                 \n\
+                               penrose -root                               \n\
+@GL_KLUDGE@ GL:                                pipes -root                                 \n\
+                               rd-bomb -root                               \n\
 -                              rotor -root                                 \n\
--                              demon -root                                 \n\
--                              loop -root                                  \n\
+@GL_KLUDGE@ GL:                                rubik -root                                 \n\
+-                              sierpinski -root                            \n\
+                               slip -root                                  \n\
+-                              spiral -root                                \n\
+@GL_KLUDGE@ GL:                                sproingies -root                            \n\
+                               starfish -root                              \n\
+                               strange -root                               \n\
+                               swirl -root                                 \n\
+                               triangle -root                              \n\
 -                              vines -root                                 \n\
-                               kaleidescope -root                          \n\
                                xjack -root                                 \n\
                                xlyap -root                                 \n\
-                               cynosure -root                              \n\
-                               flow -root                                  \n\
-                               epicycle -root                              \n\
-                               interference -root                          \n\
-                               truchet -root                               \n\
+@GL_KLUDGE@ GL:                                atlantis -root                              \n\
                                bsod -root                                  \n\
+@GL_KLUDGE@ GL:                                bubble3d -root                              \n\
+@GL_KLUDGE@ GL:                                cage -root                                  \n\
                                crystal -root                               \n\
+                               cynosure -root                              \n\
                                discrete -root                              \n\
+                               distort -root                               \n\
+                               epicycle -root                              \n\
+                               flow -root                                  \n\
+@GL_KLUDGE@ GL:                                glplanet -root                              \n\
+                               interference -root                          \n\
+                               jigsaw -root                                \n\
                                kumppa -root                                \n\
-                               rd-bomb -root                               \n\
-           "RD-Bomb (mobile)"  rd-bomb -root -speed 1 -size 0.1            \n\
+@GL_KLUDGE@ GL:                                lament -root                                \n\
+                               moire2 -root                                \n\
                                sonar -root                                 \n\
-                               t3d -root                                   \n\
-                               penetrate -root                             \n\
-                               deluxe -root                                \n\
+@GL_KLUDGE@ GL:                                stairs -root                                \n\
+                               truchet -root                               \n\
+-                              vidwhacker -root                            \n\
+                               blaster -root                               \n\
+                               bumps -root                                 \n\
+                               ccurve -root                                \n\
                                compass -root                               \n\
-                               squiral -root                               \n\
-                               xflame -root                                \n\
-                               wander -root                                \n\
-             "Wander (spots)"  wander -root -advance 0 -size 10 -circles     \
-                                 -length 10000 -reset 100000               \n\
 -                              critical -root                              \n\
-                               phosphor -root                              \n\
-                               xmatrix -root                               \n\
+                               deluxe -root                                \n\
+-                              demon -root                                 \n\
+@GLE_KLUDGE@ GL:                               extrusion -root                             \n\
+-                              loop -root                                  \n\
+                               penetrate -root                             \n\
                                petri -root                                 \n\
-                    "Petri 2"  petri -root -minlifespeed 0.02                \
-                                 -maxlifespeed 0.03 -minlifespan 1           \
-                                 -maxlifespan 1 -instantdeathchan 0          \
-                                 -minorchan 0 -anychan 0.3                 \n\
+                               phosphor -root                              \n\
+@GL_KLUDGE@ GL:                                pulsar -root                                \n\
+                               ripples -root                               \n\
                                shadebobs -root                             \n\
-                               ccurve -root                                \n\
-                               blaster -root                               \n\
-                               bumps -root                                 \n\
-                               xanalogtv -root                             \n\
-                               xspirograph -root                           \n\
+@GL_KLUDGE@ GL:                                sierpinski3d -root                          \n\
+                               spotlight -root                             \n\
+                               squiral -root                               \n\
+                               t3d -root                                   \n\
+                               wander -root                                \n\
+-                              webcollage -root                            \n\
+                               xflame -root                                \n\
+                               xmatrix -root                               \n\
+@GL_KLUDGE@ GL:                                gflux -root                                 \n\
+-                              hyperball -root                             \n\
                                nerverot -root                              \n\
                                xrayswarm -root                             \n\
--             "Zoom (Fatbits)" zoom -root                                  \n\
-              "Zoom (Lenses)"  zoom -root -lenses                          \n\
+                               xspirograph -root                           \n\
+@GL_KLUDGE@ GL:                                circuit -root                               \n\
+@GL_KLUDGE@ GL:                                dangerball -root                            \n\
+- GL:                          dnalogo -root                               \n\
+@GL_KLUDGE@ GL:                                engine -root                                \n\
+@GL_KLUDGE@ GL:                                flipscreen3d -root                          \n\
+@GL_KLUDGE@ GL:                                gltext -root                                \n\
+@GL_KLUDGE@ GL:                                menger -root                                \n\
+@GL_KLUDGE@ GL:                                molecule -root                              \n\
                                rotzoomer -root                             \n\
+                               speedmine -root                             \n\
+@GL_KLUDGE@ GL:                                starwars -root                              \n\
+@GL_KLUDGE@ GL:                                stonerview -root                            \n\
+                               vermiculate -root                           \n\
                                whirlwindwarp -root                         \n\
-                               whirlygig -root                             \n\
-                               speedmine -root                             \n\
-                   "SpeedWorm" speedmine -root -worm                       \n\
-                               vermiculate -root                           \n\
-                               twang -root                                 \n\
-                               apollonian -root                            \n\
-                               euler2d -root                               \n\
-            "Euler2d (dense)"  euler2d -root -count 4000 -eulertail 400      \
-                                 -ncolors 230                              \n\
--                              juggle -root                                \n\
-                               polyominoes -root                           \n\
--                              thornbird -root                             \n\
-                               fluidballs -root                            \n\
-                               anemone -root                               \n\
-                               halftone -root                              \n\
-                               metaballs -root                             \n\
-                               eruption -root                              \n\
-                               popsquares -root                            \n\
-                               barcode -root                               \n\
-                               piecewise -root                             \n\
-                               cloudlife -root                             \n\
-                               fontglide -root                             \n\
+                               whirlygig -root                             \n\
+                               zoom -root                                  \n\
+                               anemone -root                               \n\
+                               apollonian -root                            \n\
+@GL_KLUDGE@ GL:                                boxed -root                                 \n\
+@GL_KLUDGE@ GL:                                cubenetic -root                             \n\
+@GL_KLUDGE@ GL:                                endgame -root                               \n\
+                               euler2d -root                               \n\
+                               fluidballs -root                            \n\
+@GL_KLUDGE@ GL:                                flurry -root                                \n\
+- GL:                          glblur -root                                \n\
+- GL:                          glforestfire -root                          \n\
+@GL_KLUDGE@ GL:                                glsnake -root                               \n\
+                               halftone -root                              \n\
+-                              juggle -root                                \n\
+@GL_KLUDGE@ GL:                                lavalite -root                              \n\
+                               polyominoes -root                           \n\
+@GL_KLUDGE@ GL:                                queens -root                                \n\
+- GL:                          sballs -root                                \n\
+@GL_KLUDGE@ GL:                                spheremonics -root                          \n\
+-                              thornbird -root                             \n\
+                               twang -root                                 \n\
+@GL_KLUDGE@ GL:                                antspotlight -root                          \n\
                                apple2 -root                                \n\
-                                bubbles -root                              \n\
+@GL_KLUDGE@ GL:                                atunnel -root                               \n\
+                               barcode -root                               \n\
+@GL_KLUDGE@ GL:                                blinkbox -root                              \n\
+@GL_KLUDGE@ GL:                                blocktube -root                             \n\
+@GL_KLUDGE@ GL:                                bouncingcow -root                           \n\
+                               cloudlife -root                             \n\
+@GL_KLUDGE@ GL:                                cubestorm -root                             \n\
+                               eruption -root                              \n\
+@GL_KLUDGE@ GL:                                flipflop -root                              \n\
+@GL_KLUDGE@ GL:                                flyingtoasters -root                        \n\
+                               fontglide -root                             \n\
+@GL_KLUDGE@ GL:                                gleidescope -root                           \n\
+@GL_KLUDGE@ GL:                                glknots -root                               \n\
+@GL_KLUDGE@ GL:                                glmatrix -root                              \n\
+- GL:                          glslideshow -root                           \n\
+@GL_KLUDGE@ GL:                                hypertorus -root                            \n\
+@GL_KLUDGE@ GL:                                jigglypuff -root                            \n\
+@GL_KLUDGE@ GL:                                klein -root                                 \n\
+                               metaballs -root                             \n\
+@GL_KLUDGE@ GL:                                mirrorblob -root                            \n\
+                               piecewise -root                             \n\
+@GL_KLUDGE@ GL:                                polytopes -root                             \n\
                                pong -root                                  \n\
-                               wormhole -root                              \n\
-                               pacman -root                                \n\
-                               fuzzyflakes -root                           \n\
+                               popsquares -root                            \n\
+                               xanalogtv -root                             \n\
+-                              abstractile -root                           \n\
                                anemotaxis -root                            \n\
+- GL:                          antinspect -root                            \n\
+                               fireworkx -root                             \n\
+                               fuzzyflakes -root                           \n\
+                               interaggregate -root                        \n\
+                               intermomentary -root                        \n\
                                memscroller -root                           \n\
+                               mismunch -root                              \n\
+@GL_KLUDGE@ GL:                                noof -root                                  \n\
+                               pacman -root                                \n\
+@GL_KLUDGE@ GL:                                pinion -root                                \n\
+@GL_KLUDGE@ GL:                                polyhedra -root                             \n\
+@GL_KLUDGE@ GL:                                providence -root                            \n\
                                substrate -root                             \n\
-                               intermomentary -root                        \n\
-                               interaggregate -root                        \n\
-                               fireworkx -root                             \n\
-                               fiberlamp -root                             \n\
+                               wormhole -root                              \n\
+- GL:                          antmaze -root                               \n\
+@GL_KLUDGE@ GL:                                boing -root                                 \n\
                                boxfit -root                                \n\
+- GL:                          carousel -root                              \n\
                                celtic -root                                \n\
+@GL_KLUDGE@ GL:                                crackberg -root                             \n\
+@GL_KLUDGE@ GL:                                cube21 -root                                \n\
+                               fiberlamp -root                             \n\
+@GL_KLUDGE@ GL:                                fliptext -root                              \n\
+@GL_KLUDGE@ GL:                                glhanoi -root                               \n\
+@GL_KLUDGE@ GL:                                juggler3d -root                             \n\
+@GL_KLUDGE@ GL:                                tangram -root                               \n\
+@GL_KLUDGE@ GL:                                timetunnel -root                            \n\
+@GL_KLUDGE@ GL:                                glschool -root                              \n\
+@GL_KLUDGE@ GL:                                topblock -root                              \n\
+@GL_KLUDGE@ GL:                                cubicgrid -root                             \n\
                                cwaves -root                                \n\
+@GL_KLUDGE@ GL:                                gears -root                                 \n\
+@GL_KLUDGE@ GL:                                glcells -root                               \n\
+@GL_KLUDGE@ GL:                                lockward -root                              \n\
                                m6502 -root                                 \n\
-                               abstractile -root                           \n\
+@GL_KLUDGE@ GL:                                moebiusgears -root                          \n\
+@GL_KLUDGE@ GL:                                voronoi -root                               \n\
+@GL_KLUDGE@ GL:                                hypnowheel -root                            \n\
 -                              lcdscrub -root                              \n\
-- default-n:                   webcollage -root                            \n\
-- default-n:  "WebCollage (whacked)"                                         \
-                               webcollage -root -filter                      \
-                                 'vidwhacker -stdin -stdout'               \n\
-- default-n:                   vidwhacker -root                            \n\
-                                                                             \
-@GL_KLUDGE@ GL:                        gears -root                                 \n\
-@GL_KLUDGE@ GL:                        superquadrics -root                         \n\
-@GL_KLUDGE@ GL:                        morph3d -root                               \n\
-@GL_KLUDGE@ GL:                        cage -root                                  \n\
-@GL_KLUDGE@ GL:                        moebius -root                               \n\
-@GL_KLUDGE@ GL:                        stairs -root                                \n\
-@GL_KLUDGE@ GL:                        pipes -root                                 \n\
-@GL_KLUDGE@ GL:                        sproingies -root                            \n\
-@GL_KLUDGE@ GL:                        rubik -root                                 \n\
-@GL_KLUDGE@ GL:                        atlantis -root                              \n\
-@GL_KLUDGE@ GL:                        lament -root                                \n\
-@GL_KLUDGE@ GL:                        bubble3d -root                              \n\
-@GL_KLUDGE@ GL:                        glplanet -root                              \n\
-@GL_KLUDGE@ GL:                        flurry -root                                \n\
-@GL_KLUDGE@ GL:                        pulsar -root                                \n\
--         GL:     "Pulsar (textures)"                                        \
-                                 pulsar -root -texture -mipmap               \
-                                 -texture_quality -light -fog              \n\
-@GLE_KLUDGE@GL:                        extrusion -root                             \n\
-@GL_KLUDGE@ GL:                        sierpinski3d -root                          \n\
-@GL_KLUDGE@ GL:                        menger -root                                \n\
-@GL_KLUDGE@ GL:                        gflux -root                                 \n\
-@GL_KLUDGE@ GL:         "GFlux (grab)" gflux -root -mode grab                      \n\
-@GL_KLUDGE@ GL:                        stonerview -root                            \n\
-@GL_KLUDGE@ GL:                        starwars -root                              \n\
-@GL_KLUDGE@ GL:                        gltext -root                                \n\
-@GL_KLUDGE@ GL:        "GLText (clock)" gltext -text "%A%n%d %b %Y%n%r" -root      \n\
-@GL_KLUDGE@ GL:                        molecule -root                              \n\
-@GL_KLUDGE@ GL:                        dangerball -root                            \n\
-@GL_KLUDGE@ GL:                        circuit -root                               \n\
-@GL_KLUDGE@ GL:                        engine -root                                \n\
-@GL_KLUDGE@ GL:                        flipscreen3d -root                          \n\
-@GL_KLUDGE@ GL:                        glsnake -root                               \n\
-@GL_KLUDGE@ GL:                        boxed -root                                 \n\
--         GL:                  glforestfire -root                          \n\
--         GL:  "GLForestFire (rain)"   glforestfire -root -count 0         \n\
--         GL:                  sballs -root                                \n\
-@GL_KLUDGE@ GL:                        cubenetic -root                             \n\
-@GL_KLUDGE@ GL:                        spheremonics -root                          \n\
-@GL_KLUDGE@ GL:                        lavalite -root                              \n\
-@GL_KLUDGE@ GL:                        queens -root                                \n\
-@GL_KLUDGE@ GL:                        endgame -root                               \n\
--         GL:                  glblur -root                                \n\
-@GL_KLUDGE@ GL:                        atunnel -root                               \n\
-@GL_KLUDGE@ GL:                        flyingtoasters -root                        \n\
-@GL_KLUDGE@ GL:                        bouncingcow -root                           \n\
-@GL_KLUDGE@ GL:                        jigglypuff -root                            \n\
-@GL_KLUDGE@ GL:                        klein -root                                 \n\
-@GL_KLUDGE@ GL:                        hypertorus -root                            \n\
-@GL_KLUDGE@ GL:                        glmatrix -root                              \n\
-@GL_KLUDGE@ GL:                        cubestorm -root                             \n\
-@GL_KLUDGE@ GL:                        glknots -root                               \n\
-@GL_KLUDGE@ GL:                        blocktube -root                             \n\
-@GL_KLUDGE@ GL:                        flipflop -root                              \n\
-@GL_KLUDGE@ GL:                        antspotlight -root                          \n\
--         GL:                  glslideshow -root                           \n\
-@GL_KLUDGE@ GL:                        polytopes -root                             \n\
-@GL_KLUDGE@ GL:                        gleidescope -root                           \n\
--         GL:                  mirrorblob -root                            \n\
-@GL_KLUDGE@ GL:            "MirrorBlob (color only)"                                 \
-                                mirrorblob -root -colour -no-texture       \n\
-@GL_KLUDGE@ GL:                        blinkbox -root                              \n\
-@GL_KLUDGE@ GL:                        noof -root                                  \n\
-@GL_KLUDGE@ GL:                        polyhedra -root                             \n\
--         GL:                  antinspect -root                            \n\
-@GL_KLUDGE@ GL:                        providence -root                            \n\
-@GL_KLUDGE@ GL:        "Pinion (large gears)"  pinion -root                        \n\
-@GL_KLUDGE@ GL:        "Pinion (small gears)"  pinion -root -size 0.2 -scroll 0.3  \n\
-@GL_KLUDGE@ GL:                        boing -root -lighting -smooth               \n\
--         GL:                  carousel -root                              \n\
-@GL_KLUDGE@ GL:                        fliptext -root                              \n\
--         GL:                  antmaze -root                               \n\
-@GL_KLUDGE@ GL:                        tangram -root                               \n\
-@GL_KLUDGE@ GL:                        crackberg -root                             \n\
-@GL_KLUDGE@ GL:                        glhanoi -root                               \n\
-@GL_KLUDGE@ GL:                        cube21 -root                                \n\
-@GL_KLUDGE@ GL:                        timetunnel -root                            \n\
-@GL_KLUDGE@ GL:                        juggler3d -root                             \n\
-@GL_KLUDGE@ GL:                        topblock -root                              \n\
-@GL_KLUDGE@ GL:                        glschool -root                              \n\
-@GL_KLUDGE@ GL:                        glcells -root                               \n\
-@GL_KLUDGE@ GL:                        voronoi -root                               \n\
-@GL_KLUDGE@ GL:                        moebiusgears -root                          \n\
-@GL_KLUDGE@ GL:                        lockward -root                              \n\
-@GL_KLUDGE@ GL:                        cubicgrid -root                             \n\
-@GL_KLUDGE@ GL:                        hypnowheel -root                            \n\
-@GL_KLUDGE@ GL:        "Hypnowheel (dense)"    hypnowheel -root -count 3 -layers 50 \n\
-@GL_KLUDGE@ GL:        "Hypnowheel (trifoil)"  hypnowheel -root -count 3 -layers 2 -speed 9 -twist 9 -wander \n\
-@GL_KLUDGE@ GL:                        skytentacles -root                          \n\
-                                                                             \
--                              xdaliclock -root -font BUILTIN3             \n\
--                              xplanet -vroot -wait 1 -timewarp 90000        \
-                                  -label -origin moon                      \n\
--                              xmountains -b -M -Z 0 -r 1                  \n\
--      "XMountains (top)"      xmountains -b -M -Z 0 -r 1 -m               \n\
--                               xaos -root -autopilot -nogui -delay 10000     \
-                                  -maxframerate 30                            \
-                                  -incoloring -1 -outcoloring -1            \n\
--                              xsnow -root                                 \n\
--                              goban -root                                 \n\
--                              electricsheep                               \n\
--                              cosmos -root                                \n\
--         GL:                  sphereEversion --root                       \n\
--         GL:                  fireflies -root                             \n
+@GL_KLUDGE@ GL:                                skytentacles -root                          \n
 
 
 
@@ -487,69 +435,72 @@ XScreenSaver.bourneShell:         /bin/sh
 !
 !=============================================================================
 
-*hacks.imsmap.name:         IMSmap
-*hacks.slidescreen.name:    SlideScreen
-*hacks.decayscreen.name:    DecayScreen
+*hacks.antinspect.name:     AntInspect
+*hacks.antmaze.name:        AntMaze
+*hacks.antspotlight.name:   AntSpotlight
+*hacks.blinkbox.name:       BlinkBox
 *hacks.blitspin.name:       BlitSpin
-*hacks.lmorph.name:         LMorph
-*hacks.ifs.name:            IFS
-*hacks.fadeplot.name:       FadePlot
+*hacks.blocktube.name:      BlockTube
+*hacks.bouncingcow.name:    BouncingCow
+*hacks.boxfit.name:         BoxFit
 *hacks.bsod.name:           BSOD
-*hacks.rd-bomb.name:        RD-Bomb
-*hacks.t3d.name:            T3D
-*hacks.shadebobs.name:      ShadeBobs
-*hacks.ccurve.name:         C Curve
-*hacks.xanalogtv.name:      XAnalogTV
-*hacks.xspirograph.name:    XSpiroGraph
-*hacks.nerverot.name:       NerveRot
-*hacks.webcollage.name:     WebCollage
-*hacks.vidwhacker.name:     VidWhacker
-*hacks.morph3d.name:        Morph3D
 *hacks.bubble3d.name:       Bubble3D
-*hacks.sierpinski3d.name:   Sierpinski3D
-*hacks.gflux.name:          GFlux
-*hacks.xrayswarm.name:      XRaySwarm
-*hacks.whirlwindwarp.name:  WhirlwindWarp
-*hacks.rotzoomer.name:      RotZoomer
-*hacks.stonerview.name:     StonerView
-*hacks.starwars.name:       StarWars
+*hacks.ccurve.name:         CCurve
+*hacks.cloudlife.name:      CloudLife
+*hacks.cubestorm.name:      CubeStorm
+*hacks.cubicgrid.name:      CubicGrid
+*hacks.cwaves.name:         CWaves
 *hacks.dangerball.name:     DangerBall
-*hacks.whirlygig.name:      WhirlyGig
-*hacks.speedmine.name:      SpeedMine
-*hacks.glforestfire.name:   GLForestFire
-*hacks.sballs.name:         SBalls
-*hacks.xdaliclock.name:     XDaliClock
-*hacks.xplanetbg.name:      XPlanet
-*hacks.xplanet.name:        XPlanet
-*hacks.xaos.name:           XaoS
-*hacks.xfishtank.name:      XFishTank
-*hacks.electricsheep.name:  ElectricSheep
-*hacks.sphereEversion.name: SphereEversion
+*hacks.decayscreen.name:    DecayScreen
+*hacks.dnalogo.name:        DNA Logo
+*hacks.euler2d.name:        Euler2D
+*hacks.fadeplot.name:       FadePlot
+*hacks.flipflop.name:       FlipFlop
+*hacks.flipscreen3d.name:   FlipScreen3D
+*hacks.fliptext.name:       FlipText
 *hacks.fluidballs.name:     FluidBalls
 *hacks.flyingtoasters.name: FlyingToasters
-*hacks.bouncingcow.name:    BouncingCow
-*hacks.jigglypuff.name:     JigglyPuff
-*hacks.hypertorus.name:     HyperTorus
-*hacks.cubestorm.name:      CubeStorm
-*hacks.blocktube.name:      BlockTube
-*hacks.flipflop.name:       FlipFlop
-*hacks.antspotlight.name:   AntSpotlight
 *hacks.fontglide.name:      FontGlide
-*hacks.mirrorblob.name:     MirrorBlob
-*hacks.blinkbox.name:       BlinkBox
 *hacks.fuzzyflakes.name:    FuzzyFlakes
+*hacks.gflux.name:          GFlux
+*hacks.gleidescope.name:    Gleidescope
+*hacks.glforestfire.name:   GLForestFire
+*hacks.hyperball.name:      HyperBall
+*hacks.hypercube.name:      HyperCube
+*hacks.ifs.name:            IFS
+*hacks.imsmap.name:         IMSMap
+*hacks.jigglypuff.name:     JigglyPuff
+*hacks.juggler3d.name:      Juggler3D
+*hacks.lcdscrub.name:       LCDscrub
+*hacks.lmorph.name:         LMorph
+*hacks.m6502.name:          m6502
 *hacks.memscroller.name:    MemScroller
-*hacks.boxfit.name:         BoxFit
-*hacks.fliptext.name:       FlipText
-*hacks.glhanoi.name:        GLHanoi
-*hacks.topblock.name:       TopBlock
-*hacks.glschool.name:       GLSchool
-*hacks.glcells.name:        GLCells
+*hacks.metaballs.name:      MetaBalls
+*hacks.mirrorblob.name:     MirrorBlob
 *hacks.moebiusgears.name:   MoebiusGears
-*hacks.cubicgrid.name:      CubicGrid
-*hacks.lcdscrub.name:       LCDscrub
-*hacks.hypnowheel.name:     HypnoWheel
+*hacks.morph3d.name:        Morph3D
+*hacks.nerverot.name:       NerveRot
+*hacks.noseguy.name:        NoseGuy
+*hacks.popsquares.name:     PopSquares
+*hacks.rd-bomb.name:        RDbomb
+*hacks.rdbomb.name:         RDbomb
+*hacks.rotzoomer.name:      RotZoomer
+*hacks.sballs.name:         SBalls
+*hacks.shadebobs.name:      ShadeBobs
+*hacks.sierpinski3d.name:   Sierpinski3D
 *hacks.skytentacles.name:   SkyTentacles
+*hacks.slidescreen.name:    SlideScreen
+*hacks.speedmine.name:      SpeedMine
+*hacks.starwars.name:       StarWars
+*hacks.stonerview.name:     StonerView
+*hacks.t3d.name:            T3D
+*hacks.timetunnel.name:     TimeTunnel
+*hacks.topblock.name:       TopBlock
+*hacks.vidwhacker.name:     VidWhacker
+*hacks.webcollage.name:     WebCollage
+*hacks.whirlwindwarp.name:  WhirlWindWarp
+*hacks.xanalogtv.name:      XAnalogTV
+*hacks.xrayswarm.name:      XRaySwarm
 
 ! obsolete, but still used by xscreensaver-demo-Xm.
 *hacks.documentation.isInstalled: True
index 26632eca59a864e4467c32d4f1b8817535757812..833a26a29079701437f192a5c15cc57bed683212 100644 (file)
 "*dateFormat:          %d-%b-%y (%a); %I:%M %p",
 "*installColormap:     True",
 "*programs:                                                                  \
-                \"Qix (solid)\"        qix -root -solid -segments 100              \\n\
-          \"Qix (transparent)\"        qix -root -count 4 -solid -transparent      \\n\
-               \"Qix (linear)\"        qix -root -count 5 -solid -transparent        \
-                                 -linear -segments 250 -size 100           \\n\
-                                                                             \
-         \"Attraction (balls)\"        attraction -root -mode balls                \\n\
-         \"Attraction (lines)\"        attraction -root -mode lines -points 3        \
-                                 -segments 200                             \\n\
--      \"Attraction (splines)\"        attraction -root -mode splines -segments      \
-                                 300                                       \\n\
--      \"Attraction (orbital)\"        attraction -root -mode lines -radius 300      \
-                                 -orbit -vmult 0.5                         \\n\
-                                                                             \
-                               pyro -root                                  \\n\
-                               rocks -root                                 \\n\
+-                              sphere -root                                \\n\
+  GL:                          superquadrics -root                         \\n\
+-                              worm -root                                  \\n\
+                               attraction -root                            \\n\
+                               blitspin -root                              \\n\
+                               greynetic -root                             \\n\
                                helix -root                                 \\n\
-                               pedal -root                                 \\n\
-                               rorschach -root                             \\n\
                                hopalong -root                              \\n\
-                               greynetic -root                             \\n\
-                               imsmap -root                                \\n\
-                               slidescreen -root                           \\n\
-                               decayscreen -root                           \\n\
-                               jigsaw -root                                \\n\
-                               blitspin -root                              \\n\
-                               slip -root                                  \\n\
-                               distort -root                               \\n\
-                               spotlight -root                             \\n\
-             \"Ripples (stir)\"        ripples -root -oily -light 2 -stir          \\n\
-          \"Ripples (desktop)\"        ripples -root -water -light 6               \\n\
                                hypercube -root                             \\n\
--                              hyperball -root                             \\n\
-                               halo -root                                  \\n\
+                               imsmap -root                                \\n\
                                maze -root                                  \\n\
                                noseguy -root                               \\n\
+                               pyro -root                                  \\n\
+                               qix -root                                   \\n\
+                               rocks -root                                 \\n\
+                               rorschach -root                             \\n\
+                               decayscreen -root                           \\n\
                                flame -root                                 \\n\
+                               halo -root                                  \\n\
+                               slidescreen -root                           \\n\
 -                              lmorph -root                                \\n\
+                               pedal -root                                 \\n\
+                               bubbles -root                               \\n\
+                               bouboule -root                              \\n\
+                               braid -root                                 \\n\
+                               coral -root                                 \\n\
                                deco -root                                  \\n\
-                               moire -root                                 \\n\
-                               moire2 -root                                \\n\
-                               lightning -root                             \\n\
-                               strange -root                               \\n\
--                              spiral -root                                \\n\
-                               laser -root                                 \\n\
-                               grav -root                                  \\n\
                                drift -root                                 \\n\
-                               ifs -root                                   \\n\
-                               julia -root                                 \\n\
-                               penrose -root                               \\n\
--                              sierpinski -root                            \\n\
-                               braid -root                                 \\n\
-                               galaxy -root                                \\n\
-                               bouboule -root                              \\n\
-                               swirl -root                                 \\n\
+                               fadeplot -root                              \\n\
                                flag -root                                  \\n\
-                               sphere -root                                \\n\
                                forest -root                                \\n\
+                               galaxy -root                                \\n\
+                               goop -root                                  \\n\
+                               grav -root                                  \\n\
+                               ifs -root                                   \\n\
+                               julia -root                                 \\n\
+                               kaleidescope -root                          \\n\
+-                              laser -root                                 \\n\
+-                              lightning -root                             \\n\
 -                              lisa -root                                  \\n\
 -                              lissie -root                                \\n\
-                               goop -root                                  \\n\
-                               starfish -root                              \\n\
-                               munch -root                                 \\n\
-                               mismunch -root                              \\n\
-                               fadeplot -root                              \\n\
-                               coral -root                                 \\n\
+  GL:                          moebius -root                               \\n\
+                               moire -root                                 \\n\
+  GL:                          morph3d -root                               \\n\
                                mountain -root                              \\n\
-                               triangle -root                              \\n\
--                              worm -root                                  \\n\
+                               munch -root                                 \\n\
+                               penrose -root                               \\n\
+  GL:                          pipes -root                                 \\n\
+                               rd-bomb -root                               \\n\
 -                              rotor -root                                 \\n\
--                              demon -root                                 \\n\
--                              loop -root                                  \\n\
+  GL:                          rubik -root                                 \\n\
+-                              sierpinski -root                            \\n\
+                               slip -root                                  \\n\
+-                              spiral -root                                \\n\
+  GL:                          sproingies -root                            \\n\
+                               starfish -root                              \\n\
+                               strange -root                               \\n\
+                               swirl -root                                 \\n\
+                               triangle -root                              \\n\
 -                              vines -root                                 \\n\
-                               kaleidescope -root                          \\n\
                                xjack -root                                 \\n\
                                xlyap -root                                 \\n\
-                               cynosure -root                              \\n\
-                               flow -root                                  \\n\
-                               epicycle -root                              \\n\
-                               interference -root                          \\n\
-                               truchet -root                               \\n\
+  GL:                          atlantis -root                              \\n\
                                bsod -root                                  \\n\
+  GL:                          bubble3d -root                              \\n\
+  GL:                          cage -root                                  \\n\
                                crystal -root                               \\n\
+                               cynosure -root                              \\n\
                                discrete -root                              \\n\
+                               distort -root                               \\n\
+                               epicycle -root                              \\n\
+                               flow -root                                  \\n\
+  GL:                          glplanet -root                              \\n\
+                               interference -root                          \\n\
+                               jigsaw -root                                \\n\
                                kumppa -root                                \\n\
-                               rd-bomb -root                               \\n\
-           \"RD-Bomb (mobile)\"        rd-bomb -root -speed 1 -size 0.1            \\n\
+  GL:                          lament -root                                \\n\
+                               moire2 -root                                \\n\
                                sonar -root                                 \\n\
-                               t3d -root                                   \\n\
-                               penetrate -root                             \\n\
-                               deluxe -root                                \\n\
+  GL:                          stairs -root                                \\n\
+                               truchet -root                               \\n\
+-                              vidwhacker -root                            \\n\
+                               blaster -root                               \\n\
+                               bumps -root                                 \\n\
+                               ccurve -root                                \\n\
                                compass -root                               \\n\
-                               squiral -root                               \\n\
-                               xflame -root                                \\n\
-                               wander -root                                \\n\
-             \"Wander (spots)\"        wander -root -advance 0 -size 10 -circles     \
-                                 -length 10000 -reset 100000               \\n\
 -                              critical -root                              \\n\
-                               phosphor -root                              \\n\
-                               xmatrix -root                               \\n\
+                               deluxe -root                                \\n\
+-                              demon -root                                 \\n\
+- GL:                          extrusion -root                             \\n\
+-                              loop -root                                  \\n\
+                               penetrate -root                             \\n\
                                petri -root                                 \\n\
-                    \"Petri 2\"        petri -root -minlifespeed 0.02                \
-                                 -maxlifespeed 0.03 -minlifespan 1           \
-                                 -maxlifespan 1 -instantdeathchan 0          \
-                                 -minorchan 0 -anychan 0.3                 \\n\
+                               phosphor -root                              \\n\
+  GL:                          pulsar -root                                \\n\
+                               ripples -root                               \\n\
                                shadebobs -root                             \\n\
-                               ccurve -root                                \\n\
-                               blaster -root                               \\n\
-                               bumps -root                                 \\n\
-                               xanalogtv -root                             \\n\
-                               xspirograph -root                           \\n\
+  GL:                          sierpinski3d -root                          \\n\
+                               spotlight -root                             \\n\
+                               squiral -root                               \\n\
+                               t3d -root                                   \\n\
+                               wander -root                                \\n\
+-                              webcollage -root                            \\n\
+                               xflame -root                                \\n\
+                               xmatrix -root                               \\n\
+  GL:                          gflux -root                                 \\n\
+-                              hyperball -root                             \\n\
                                nerverot -root                              \\n\
                                xrayswarm -root                             \\n\
--             \"Zoom (Fatbits)\"       zoom -root                                  \\n\
-              \"Zoom (Lenses)\"        zoom -root -lenses                          \\n\
+                               xspirograph -root                           \\n\
+  GL:                          circuit -root                               \\n\
+  GL:                          dangerball -root                            \\n\
+- GL:                          dnalogo -root                               \\n\
+  GL:                          engine -root                                \\n\
+  GL:                          flipscreen3d -root                          \\n\
+  GL:                          gltext -root                                \\n\
+  GL:                          menger -root                                \\n\
+  GL:                          molecule -root                              \\n\
                                rotzoomer -root                             \\n\
+                               speedmine -root                             \\n\
+  GL:                          starwars -root                              \\n\
+  GL:                          stonerview -root                            \\n\
+                               vermiculate -root                           \\n\
                                whirlwindwarp -root                         \\n\
-                               whirlygig -root                             \\n\
-                               speedmine -root                             \\n\
-                   \"SpeedWorm\"       speedmine -root -worm                       \\n\
-                               vermiculate -root                           \\n\
-                               twang -root                                 \\n\
-                               apollonian -root                            \\n\
-                               euler2d -root                               \\n\
-            \"Euler2d (dense)\"        euler2d -root -count 4000 -eulertail 400      \
-                                 -ncolors 230                              \\n\
--                              juggle -root                                \\n\
-                               polyominoes -root                           \\n\
--                              thornbird -root                             \\n\
-                               fluidballs -root                            \\n\
-                               anemone -root                               \\n\
-                               halftone -root                              \\n\
-                               metaballs -root                             \\n\
-                               eruption -root                              \\n\
-                               popsquares -root                            \\n\
-                               barcode -root                               \\n\
-                               piecewise -root                             \\n\
-                               cloudlife -root                             \\n\
-                               fontglide -root                             \\n\
+                               whirlygig -root                             \\n\
+                               zoom -root                                  \\n\
+                               anemone -root                               \\n\
+                               apollonian -root                            \\n\
+  GL:                          boxed -root                                 \\n\
+  GL:                          cubenetic -root                             \\n\
+  GL:                          endgame -root                               \\n\
+                               euler2d -root                               \\n\
+                               fluidballs -root                            \\n\
+  GL:                          flurry -root                                \\n\
+- GL:                          glblur -root                                \\n\
+- GL:                          glforestfire -root                          \\n\
+  GL:                          glsnake -root                               \\n\
+                               halftone -root                              \\n\
+-                              juggle -root                                \\n\
+  GL:                          lavalite -root                              \\n\
+                               polyominoes -root                           \\n\
+  GL:                          queens -root                                \\n\
+- GL:                          sballs -root                                \\n\
+  GL:                          spheremonics -root                          \\n\
+-                              thornbird -root                             \\n\
+                               twang -root                                 \\n\
+  GL:                          antspotlight -root                          \\n\
                                apple2 -root                                \\n\
-                                bubbles -root                              \\n\
+  GL:                          atunnel -root                               \\n\
+                               barcode -root                               \\n\
+  GL:                          blinkbox -root                              \\n\
+  GL:                          blocktube -root                             \\n\
+  GL:                          bouncingcow -root                           \\n\
+                               cloudlife -root                             \\n\
+  GL:                          cubestorm -root                             \\n\
+                               eruption -root                              \\n\
+  GL:                          flipflop -root                              \\n\
+  GL:                          flyingtoasters -root                        \\n\
+                               fontglide -root                             \\n\
+  GL:                          gleidescope -root                           \\n\
+  GL:                          glknots -root                               \\n\
+  GL:                          glmatrix -root                              \\n\
+- GL:                          glslideshow -root                           \\n\
+  GL:                          hypertorus -root                            \\n\
+  GL:                          jigglypuff -root                            \\n\
+  GL:                          klein -root                                 \\n\
+                               metaballs -root                             \\n\
+  GL:                          mirrorblob -root                            \\n\
+                               piecewise -root                             \\n\
+  GL:                          polytopes -root                             \\n\
                                pong -root                                  \\n\
-                               wormhole -root                              \\n\
-                               pacman -root                                \\n\
-                               fuzzyflakes -root                           \\n\
+                               popsquares -root                            \\n\
+                               xanalogtv -root                             \\n\
+-                              abstractile -root                           \\n\
                                anemotaxis -root                            \\n\
+- GL:                          antinspect -root                            \\n\
+                               fireworkx -root                             \\n\
+                               fuzzyflakes -root                           \\n\
+                               interaggregate -root                        \\n\
+                               intermomentary -root                        \\n\
                                memscroller -root                           \\n\
+                               mismunch -root                              \\n\
+  GL:                          noof -root                                  \\n\
+                               pacman -root                                \\n\
+  GL:                          pinion -root                                \\n\
+  GL:                          polyhedra -root                             \\n\
+  GL:                          providence -root                            \\n\
                                substrate -root                             \\n\
-                               intermomentary -root                        \\n\
-                               interaggregate -root                        \\n\
-                               fireworkx -root                             \\n\
-                               fiberlamp -root                             \\n\
+                               wormhole -root                              \\n\
+- GL:                          antmaze -root                               \\n\
+  GL:                          boing -root                                 \\n\
                                boxfit -root                                \\n\
+- GL:                          carousel -root                              \\n\
                                celtic -root                                \\n\
+  GL:                          crackberg -root                             \\n\
+  GL:                          cube21 -root                                \\n\
+                               fiberlamp -root                             \\n\
+  GL:                          fliptext -root                              \\n\
+  GL:                          glhanoi -root                               \\n\
+  GL:                          juggler3d -root                             \\n\
+  GL:                          tangram -root                               \\n\
+  GL:                          timetunnel -root                            \\n\
+  GL:                          glschool -root                              \\n\
+  GL:                          topblock -root                              \\n\
+  GL:                          cubicgrid -root                             \\n\
                                cwaves -root                                \\n\
+  GL:                          gears -root                                 \\n\
+  GL:                          glcells -root                               \\n\
+  GL:                          lockward -root                              \\n\
                                m6502 -root                                 \\n\
-                               abstractile -root                           \\n\
+  GL:                          moebiusgears -root                          \\n\
+  GL:                          voronoi -root                               \\n\
+  GL:                          hypnowheel -root                            \\n\
 -                              lcdscrub -root                              \\n\
-- default-n:                   webcollage -root                            \\n\
-- default-n:  \"WebCollage (whacked)\"                                       \
-                               webcollage -root -filter                      \
-                                 'vidwhacker -stdin -stdout'               \\n\
-- default-n:                   vidwhacker -root                            \\n\
-                                                                             \
-          GL:                  gears -root                                 \\n\
-          GL:                  superquadrics -root                         \\n\
-          GL:                  morph3d -root                               \\n\
-          GL:                  cage -root                                  \\n\
-          GL:                  moebius -root                               \\n\
-          GL:                  stairs -root                                \\n\
-          GL:                  pipes -root                                 \\n\
-          GL:                  sproingies -root                            \\n\
-          GL:                  rubik -root                                 \\n\
-          GL:                  atlantis -root                              \\n\
-          GL:                  lament -root                                \\n\
-          GL:                  bubble3d -root                              \\n\
-          GL:                  glplanet -root                              \\n\
-          GL:                  flurry -root                                \\n\
-          GL:                  pulsar -root                                \\n\
--         GL:     \"Pulsar (textures)\"                                              \
-                                 pulsar -root -texture -mipmap               \
-                                 -texture_quality -light -fog              \\n\
--         GL:                  extrusion -root                             \\n\
-          GL:                  sierpinski3d -root                          \\n\
-          GL:                  menger -root                                \\n\
-          GL:                  gflux -root                                 \\n\
-          GL:   \"GFlux (grab)\"       gflux -root -mode grab                      \\n\
-          GL:                  stonerview -root                            \\n\
-          GL:                  starwars -root                              \\n\
-          GL:                  gltext -root                                \\n\
-          GL:  \"GLText (clock)\" gltext -text \"%A%n%d %b %Y%n%r\" -root          \\n\
-          GL:                  molecule -root                              \\n\
-          GL:                  dangerball -root                            \\n\
-          GL:                  circuit -root                               \\n\
-          GL:                  engine -root                                \\n\
-          GL:                  flipscreen3d -root                          \\n\
-          GL:                  glsnake -root                               \\n\
-          GL:                  boxed -root                                 \\n\
--         GL:                  glforestfire -root                          \\n\
--         GL:  \"GLForestFire (rain)\" glforestfire -root -count 0         \\n\
--         GL:                  sballs -root                                \\n\
-          GL:                  cubenetic -root                             \\n\
-          GL:                  spheremonics -root                          \\n\
-          GL:                  lavalite -root                              \\n\
-          GL:                  queens -root                                \\n\
-          GL:                  endgame -root                               \\n\
--         GL:                  glblur -root                                \\n\
-          GL:                  atunnel -root                               \\n\
-          GL:                  flyingtoasters -root                        \\n\
-          GL:                  bouncingcow -root                           \\n\
-          GL:                  jigglypuff -root                            \\n\
-          GL:                  klein -root                                 \\n\
-          GL:                  hypertorus -root                            \\n\
-          GL:                  glmatrix -root                              \\n\
-          GL:                  cubestorm -root                             \\n\
-          GL:                  glknots -root                               \\n\
-          GL:                  blocktube -root                             \\n\
-          GL:                  flipflop -root                              \\n\
-          GL:                  antspotlight -root                          \\n\
--         GL:                  glslideshow -root                           \\n\
-          GL:                  polytopes -root                             \\n\
-          GL:                  gleidescope -root                           \\n\
--         GL:                  mirrorblob -root                            \\n\
-          GL:      \"MirrorBlob (color only)\"                               \
-                                mirrorblob -root -colour -no-texture       \\n\
-          GL:                  blinkbox -root                              \\n\
-          GL:                  noof -root                                  \\n\
-          GL:                  polyhedra -root                             \\n\
--         GL:                  antinspect -root                            \\n\
-          GL:                  providence -root                            \\n\
-          GL:  \"Pinion (large gears)\"        pinion -root                        \\n\
-          GL:  \"Pinion (small gears)\"        pinion -root -size 0.2 -scroll 0.3  \\n\
-          GL:                  boing -root -lighting -smooth               \\n\
--         GL:                  carousel -root                              \\n\
-          GL:                  fliptext -root                              \\n\
--         GL:                  antmaze -root                               \\n\
-          GL:                  tangram -root                               \\n\
-          GL:                  crackberg -root                             \\n\
-          GL:                  glhanoi -root                               \\n\
-          GL:                  cube21 -root                                \\n\
-          GL:                  timetunnel -root                            \\n\
-          GL:                  juggler3d -root                             \\n\
-          GL:                  topblock -root                              \\n\
-          GL:                  glschool -root                              \\n\
-          GL:                  glcells -root                               \\n\
-          GL:                  voronoi -root                               \\n\
-          GL:                  moebiusgears -root                          \\n\
-          GL:                  lockward -root                              \\n\
-          GL:                  cubicgrid -root                             \\n\
-          GL:                  hypnowheel -root                            \\n\
-          GL:  \"Hypnowheel (dense)\"  hypnowheel -root -count 3 -layers 50 \\n\
-          GL:  \"Hypnowheel (trifoil)\"        hypnowheel -root -count 3 -layers 2 -speed 9 -twist 9 -wander \\n\
-          GL:                  skytentacles -root                          \\n\
-                                                                             \
--                              xdaliclock -root -font BUILTIN3             \\n\
--                              xplanet -vroot -wait 1 -timewarp 90000        \
-                                  -label -origin moon                      \\n\
--                              xmountains -b -M -Z 0 -r 1                  \\n\
--      \"XMountains (top)\"    xmountains -b -M -Z 0 -r 1 -m               \\n\
--                               xaos -root -autopilot -nogui -delay 10000     \
-                                  -maxframerate 30                            \
-                                  -incoloring -1 -outcoloring -1            \\n\
--                              xsnow -root                                 \\n\
--                              goban -root                                 \\n\
--                              electricsheep                               \\n\
--                              cosmos -root                                \\n\
--         GL:                  sphereEversion --root                       \\n\
--         GL:                  fireflies -root                             \\n",
+  GL:                          skytentacles -root                          \\n",
 "XScreenSaver.pointerPollTime:         0:00:05",
 "XScreenSaver.pointerHysteresis:               10",
 "XScreenSaver.initialDelay:            0:00:00",
 "*splash.body2.label:          Jamie Zawinski <jwz@jwz.org>",
 "*splash.demo.label:           Settings",
 "*splash.help.label:           Help",
-"*hacks.imsmap.name:         IMSmap",
-"*hacks.slidescreen.name:    SlideScreen",
-"*hacks.decayscreen.name:    DecayScreen",
+"*hacks.antinspect.name:     AntInspect",
+"*hacks.antmaze.name:        AntMaze",
+"*hacks.antspotlight.name:   AntSpotlight",
+"*hacks.blinkbox.name:       BlinkBox",
 "*hacks.blitspin.name:       BlitSpin",
-"*hacks.lmorph.name:         LMorph",
-"*hacks.ifs.name:            IFS",
-"*hacks.fadeplot.name:       FadePlot",
+"*hacks.blocktube.name:      BlockTube",
+"*hacks.bouncingcow.name:    BouncingCow",
+"*hacks.boxfit.name:         BoxFit",
 "*hacks.bsod.name:           BSOD",
-"*hacks.rd-bomb.name:        RD-Bomb",
-"*hacks.t3d.name:            T3D",
-"*hacks.shadebobs.name:      ShadeBobs",
-"*hacks.ccurve.name:         C Curve",
-"*hacks.xanalogtv.name:      XAnalogTV",
-"*hacks.xspirograph.name:    XSpiroGraph",
-"*hacks.nerverot.name:       NerveRot",
-"*hacks.webcollage.name:     WebCollage",
-"*hacks.vidwhacker.name:     VidWhacker",
-"*hacks.morph3d.name:        Morph3D",
 "*hacks.bubble3d.name:       Bubble3D",
-"*hacks.sierpinski3d.name:   Sierpinski3D",
-"*hacks.gflux.name:          GFlux",
-"*hacks.xrayswarm.name:      XRaySwarm",
-"*hacks.whirlwindwarp.name:  WhirlwindWarp",
-"*hacks.rotzoomer.name:      RotZoomer",
-"*hacks.stonerview.name:     StonerView",
-"*hacks.starwars.name:       StarWars",
+"*hacks.ccurve.name:         CCurve",
+"*hacks.cloudlife.name:      CloudLife",
+"*hacks.cubestorm.name:      CubeStorm",
+"*hacks.cubicgrid.name:      CubicGrid",
+"*hacks.cwaves.name:         CWaves",
 "*hacks.dangerball.name:     DangerBall",
-"*hacks.whirlygig.name:      WhirlyGig",
-"*hacks.speedmine.name:      SpeedMine",
-"*hacks.glforestfire.name:   GLForestFire",
-"*hacks.sballs.name:         SBalls",
-"*hacks.xdaliclock.name:     XDaliClock",
-"*hacks.xplanetbg.name:      XPlanet",
-"*hacks.xplanet.name:        XPlanet",
-"*hacks.xaos.name:           XaoS",
-"*hacks.xfishtank.name:      XFishTank",
-"*hacks.electricsheep.name:  ElectricSheep",
-"*hacks.sphereEversion.name: SphereEversion",
+"*hacks.decayscreen.name:    DecayScreen",
+"*hacks.dnalogo.name:        DNA Logo",
+"*hacks.euler2d.name:        Euler2D",
+"*hacks.fadeplot.name:       FadePlot",
+"*hacks.flipflop.name:       FlipFlop",
+"*hacks.flipscreen3d.name:   FlipScreen3D",
+"*hacks.fliptext.name:       FlipText",
 "*hacks.fluidballs.name:     FluidBalls",
 "*hacks.flyingtoasters.name: FlyingToasters",
-"*hacks.bouncingcow.name:    BouncingCow",
-"*hacks.jigglypuff.name:     JigglyPuff",
-"*hacks.hypertorus.name:     HyperTorus",
-"*hacks.cubestorm.name:      CubeStorm",
-"*hacks.blocktube.name:      BlockTube",
-"*hacks.flipflop.name:       FlipFlop",
-"*hacks.antspotlight.name:   AntSpotlight",
 "*hacks.fontglide.name:      FontGlide",
-"*hacks.mirrorblob.name:     MirrorBlob",
-"*hacks.blinkbox.name:       BlinkBox",
 "*hacks.fuzzyflakes.name:    FuzzyFlakes",
+"*hacks.gflux.name:          GFlux",
+"*hacks.gleidescope.name:    Gleidescope",
+"*hacks.glforestfire.name:   GLForestFire",
+"*hacks.hyperball.name:      HyperBall",
+"*hacks.hypercube.name:      HyperCube",
+"*hacks.ifs.name:            IFS",
+"*hacks.imsmap.name:         IMSMap",
+"*hacks.jigglypuff.name:     JigglyPuff",
+"*hacks.juggler3d.name:      Juggler3D",
+"*hacks.lcdscrub.name:       LCDscrub",
+"*hacks.lmorph.name:         LMorph",
+"*hacks.m6502.name:          m6502",
 "*hacks.memscroller.name:    MemScroller",
-"*hacks.boxfit.name:         BoxFit",
-"*hacks.fliptext.name:       FlipText",
-"*hacks.glhanoi.name:        GLHanoi",
-"*hacks.topblock.name:       TopBlock",
-"*hacks.glschool.name:       GLSchool",
-"*hacks.glcells.name:        GLCells",
+"*hacks.metaballs.name:      MetaBalls",
+"*hacks.mirrorblob.name:     MirrorBlob",
 "*hacks.moebiusgears.name:   MoebiusGears",
-"*hacks.cubicgrid.name:      CubicGrid",
-"*hacks.lcdscrub.name:       LCDscrub",
-"*hacks.hypnowheel.name:     HypnoWheel",
+"*hacks.morph3d.name:        Morph3D",
+"*hacks.nerverot.name:       NerveRot",
+"*hacks.noseguy.name:        NoseGuy",
+"*hacks.popsquares.name:     PopSquares",
+"*hacks.rd-bomb.name:        RDbomb",
+"*hacks.rdbomb.name:         RDbomb",
+"*hacks.rotzoomer.name:      RotZoomer",
+"*hacks.sballs.name:         SBalls",
+"*hacks.shadebobs.name:      ShadeBobs",
+"*hacks.sierpinski3d.name:   Sierpinski3D",
 "*hacks.skytentacles.name:   SkyTentacles",
+"*hacks.slidescreen.name:    SlideScreen",
+"*hacks.speedmine.name:      SpeedMine",
+"*hacks.starwars.name:       StarWars",
+"*hacks.stonerview.name:     StonerView",
+"*hacks.t3d.name:            T3D",
+"*hacks.timetunnel.name:     TimeTunnel",
+"*hacks.topblock.name:       TopBlock",
+"*hacks.vidwhacker.name:     VidWhacker",
+"*hacks.webcollage.name:     WebCollage",
+"*hacks.whirlwindwarp.name:  WhirlWindWarp",
+"*hacks.xanalogtv.name:      XAnalogTV",
+"*hacks.xrayswarm.name:      XRaySwarm",
 "*hacks.documentation.isInstalled: True",
index d41b58577c2c524ca8429e8261660c3b70bdc063..787e15b8f4abb1d0598f8cfdb6c3a853974f11c3 100644 (file)
@@ -1,5 +1,5 @@
 /* demo-Gtk-conf.c --- implements the dynamic configuration dialogs.
- * xscreensaver, Copyright (c) 2001, 2003, 2004, 2006 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 2001-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -72,6 +72,11 @@ const char *hack_configuration_path = HACK_CONFIGURATION_PATH;
 static gboolean debug_p = FALSE;
 
 
+#define MIN_SLIDER_WIDTH     150
+#define MIN_SPINBUTTON_WIDTH  48
+#define MIN_LABEL_WIDTH       70
+
+
 typedef enum {
   COMMAND,
   FAKE,
@@ -127,8 +132,8 @@ typedef struct {
 
 
 static parameter *make_select_option (const char *file, xmlNodePtr);
-static void make_parameter_widget (const char *filename,
-                                   parameter *, GtkWidget *, int *);
+static void make_parameter_widget (const char *filename, 
+                                   parameter *, GtkWidget *);
 static void browse_button_cb (GtkButton *button, gpointer user_data);
 
 
@@ -668,8 +673,7 @@ sanity_check_parameters (const char *filename, GList *parms)
 /* Helper for make_parameters()
  */
 static GList *
-make_parameters_1 (const char *filename, xmlNodePtr node,
-                   GtkWidget *parent, int *row)
+make_parameters_1 (const char *filename, xmlNodePtr node, GtkWidget *parent)
 {
   GList *list = 0;
 
@@ -684,17 +688,9 @@ make_parameters_1 (const char *filename, xmlNodePtr node,
                             : gtk_vbox_new (FALSE, 0));
           GList *list2;
           gtk_widget_show (box);
+          gtk_box_pack_start (GTK_BOX (parent), box, FALSE, FALSE, 0);
 
-          if (row)
-            gtk_table_attach (GTK_TABLE (parent), box, 0, 3, *row, *row + 1,
-                              0, 0, 0, 0);
-          else
-            gtk_box_pack_start (GTK_BOX (parent), box, FALSE, FALSE, 0);
-
-          if (row)
-            (*row)++;
-
-          list2 = make_parameters_1 (filename, node->xmlChildrenNode, box, 0);
+          list2 = make_parameters_1 (filename, node->xmlChildrenNode, box);
           if (list2)
             list = g_list_concat (list, list2);
         }
@@ -704,7 +700,7 @@ make_parameters_1 (const char *filename, xmlNodePtr node,
           if (p)
             {
               list = g_list_append (list, p);
-              make_parameter_widget (filename, p, parent, row);
+              make_parameter_widget (filename, p, parent);
             }
         }
     }
@@ -719,13 +715,11 @@ make_parameters_1 (const char *filename, xmlNodePtr node,
 static GList *
 make_parameters (const char *filename, xmlNodePtr node, GtkWidget *parent)
 {
-  int row = 0;
   for (; node; node = node->next)
     {
       if (node->type == XML_ELEMENT_NODE &&
           !strcmp ((char *) node->name, "screensaver"))
-        return make_parameters_1 (filename, node->xmlChildrenNode,
-                                  parent, &row);
+        return make_parameters_1 (filename, node->xmlChildrenNode, parent);
     }
   return 0;
 }
@@ -793,14 +787,40 @@ make_adjustment (const char *filename, parameter *p)
 
 
 
+static void
+set_widget_min_width (GtkWidget *w, int width)
+{
+  GtkRequisition req;
+  gtk_widget_size_request (GTK_WIDGET (w), &req);
+  if (req.width < width)
+    gtk_widget_set_size_request (GTK_WIDGET (w), width, -1);
+}
+
+
+/* If we're inside a vbox, we need to put an hbox in it, or labels appear 
+   on top instead of to the left, and things stretch to the full width of
+   the window.
+ */
+static GtkWidget *
+insert_fake_hbox (GtkWidget *parent)
+{
+  if (GTK_IS_VBOX (parent))
+    {
+      GtkWidget *hbox = gtk_hbox_new (FALSE, 0);
+      gtk_box_pack_start (GTK_BOX (parent), hbox, FALSE, FALSE, 4);
+      gtk_widget_show (hbox);
+      return hbox;
+    }
+  return parent;
+}
+
+
 /* Given a `parameter' struct, allocates an appropriate GtkWidget for it,
    and stores it in `p->widget'.
-   `row' is used for keeping track of our position during table layout.
-   `parent' must be a GtkTable or a GtkBox.
+   `parent' must be a GtkBox.
  */
 static void
-make_parameter_widget (const char *filename,
-                       parameter *p, GtkWidget *parent, int *row)
+make_parameter_widget (const char *filename, parameter *p, GtkWidget *parent)
 {
   const char *label = (char *) p->label;
   if (p->widget) return;
@@ -809,28 +829,21 @@ make_parameter_widget (const char *filename,
     {
     case STRING:
       {
+        parent = insert_fake_hbox (parent);
         if (label)
           {
             GtkWidget *w = gtk_label_new (_(label));
             gtk_label_set_justify (GTK_LABEL (w), GTK_JUSTIFY_RIGHT);
             gtk_misc_set_alignment (GTK_MISC (w), 1.0, 0.5);
+            set_widget_min_width (GTK_WIDGET (w), MIN_LABEL_WIDTH);
             gtk_widget_show (w);
-            if (row)
-              gtk_table_attach (GTK_TABLE (parent), w, 0, 1, *row, *row + 1,
-                                GTK_FILL, 0, 0, 0);
-            else
-              gtk_box_pack_start (GTK_BOX (parent), w, FALSE, FALSE, 4);
+            gtk_box_pack_start (GTK_BOX (parent), w, FALSE, FALSE, 4);
           }
 
         p->widget = gtk_entry_new ();
         if (p->string)
           gtk_entry_set_text (GTK_ENTRY (p->widget), (char *) p->string);
-        if (row)
-          gtk_table_attach (GTK_TABLE (parent), p->widget, 1, 3,
-                            *row, *row + 1,
-                            GTK_FILL, 0, 0, 0);
-        else
-          gtk_box_pack_start (GTK_BOX (parent), p->widget, FALSE, FALSE, 4);
+        gtk_box_pack_start (GTK_BOX (parent), p->widget, FALSE, FALSE, 4);
         break;
       }
     case FILENAME:
@@ -848,29 +861,16 @@ make_parameter_widget (const char *filename,
 
         gtk_label_set_justify (GTK_LABEL (L), GTK_JUSTIFY_RIGHT);
         gtk_misc_set_alignment (GTK_MISC (L), 1.0, 0.5);
+        set_widget_min_width (GTK_WIDGET (L), MIN_LABEL_WIDTH);
         gtk_widget_show (L);
 
         if (p->string)
           gtk_entry_set_text (GTK_ENTRY (entry), (char *) p->string);
 
-        if (row)
-          {
-            gtk_table_attach (GTK_TABLE (parent), L, 0, 1,
-                              *row, *row + 1,
-                              GTK_FILL, 0, 0, 0);
-            gtk_table_attach (GTK_TABLE (parent), entry, 1, 2,
-                              *row, *row + 1,
-                              GTK_EXPAND | GTK_FILL, 0, 0, 0);
-            gtk_table_attach (GTK_TABLE (parent), button, 2, 3,
-                              *row, *row + 1,
-                              0, 0, 0, 0);
-          }
-        else
-          {
-            gtk_box_pack_start (GTK_BOX (parent), L,      FALSE, FALSE, 4);
-            gtk_box_pack_start (GTK_BOX (parent), entry,  TRUE,  TRUE,  4);
-            gtk_box_pack_start (GTK_BOX (parent), button, FALSE, FALSE, 4);
-          }
+        parent = insert_fake_hbox (parent);
+        gtk_box_pack_start (GTK_BOX (parent), L,      FALSE, FALSE, 4);
+        gtk_box_pack_start (GTK_BOX (parent), entry,  TRUE,  TRUE,  4);
+        gtk_box_pack_start (GTK_BOX (parent), button, FALSE, FALSE, 4);
         break;
       }
     case SLIDER:
@@ -884,79 +884,30 @@ make_parameter_widget (const char *filename,
             labelw = gtk_label_new (_(label));
             gtk_label_set_justify (GTK_LABEL (labelw), GTK_JUSTIFY_LEFT);
             gtk_misc_set_alignment (GTK_MISC (labelw), 0.0, 0.5);
+            set_widget_min_width (GTK_WIDGET (labelw), MIN_LABEL_WIDTH);
             gtk_widget_show (labelw);
+            gtk_box_pack_start (GTK_BOX (parent), labelw, FALSE, FALSE, 2);
           }
 
-        if (GTK_IS_VBOX (parent))
-          {
-            /* If we're inside a vbox, we need to put an hbox in it, to get
-               the low/high labels to be to the left/right of the slider.
-             */
-            GtkWidget *hbox = gtk_hbox_new (FALSE, 0);
-
-            /* But if we have a label, put that above the slider's hbox. */
-            if (labelw)
-              {
-                gtk_box_pack_start (GTK_BOX (parent), labelw, FALSE, TRUE, 2);
-                labelw = 0;
-              }
-
-            gtk_box_pack_start (GTK_BOX (parent), hbox, TRUE, TRUE, 6);
-            gtk_widget_show (hbox);
-            parent = hbox;
-          }
-
-        if (labelw)
-          {
-            if (row)
-              {
-                gtk_table_attach (GTK_TABLE (parent), labelw,
-                                  0, 3, *row, *row + 1,
-                                  GTK_EXPAND | GTK_FILL, 0, 0, 0);
-                (*row)++;
-              }
-            else
-              {
-                if (GTK_IS_HBOX (parent))
-                  {
-                    GtkWidget *box = gtk_vbox_new (FALSE, 0);
-                    gtk_box_pack_start (GTK_BOX (parent), box, FALSE, TRUE, 0);
-                    gtk_widget_show (box);
-                    gtk_box_pack_start (GTK_BOX (box), labelw, FALSE, TRUE, 4);
-                    parent = box;
-                    box = gtk_hbox_new (FALSE, 0);
-                    gtk_widget_show (box);
-                    gtk_box_pack_start (GTK_BOX (parent), box, TRUE, TRUE, 0);
-                    parent = box;
-                  }
-                else
-                  gtk_box_pack_start (GTK_BOX (parent), labelw,
-                                      FALSE, TRUE, 0);
-              }
-          }
+        /* Do this after 'labelw' so that it appears above, not to left. */
+        parent = insert_fake_hbox (parent);
 
         if (p->low_label)
           {
             GtkWidget *w = gtk_label_new (_((char *) p->low_label));
             gtk_label_set_justify (GTK_LABEL (w), GTK_JUSTIFY_RIGHT);
             gtk_misc_set_alignment (GTK_MISC (w), 1.0, 0.5);
+            set_widget_min_width (GTK_WIDGET (w), MIN_LABEL_WIDTH);
             gtk_widget_show (w);
-            if (row)
-              gtk_table_attach (GTK_TABLE (parent), w, 0, 1, *row, *row + 1,
-                                GTK_FILL, 0, 0, 0);
-            else
-              gtk_box_pack_start (GTK_BOX (parent), w, FALSE, FALSE, 4);
+            gtk_box_pack_start (GTK_BOX (parent), w, FALSE, FALSE, 4);
           }
 
         gtk_scale_set_value_pos (GTK_SCALE (scale), GTK_POS_BOTTOM);
         gtk_scale_set_draw_value (GTK_SCALE (scale), debug_p);
         gtk_scale_set_digits (GTK_SCALE (scale), (p->integer_p ? 0 : 2));
-        if (row)
-          gtk_table_attach (GTK_TABLE (parent), scale, 1, 2,
-                            *row, *row + 1,
-                            GTK_EXPAND | GTK_FILL, 0, 0, 0);
-        else
-          gtk_box_pack_start (GTK_BOX (parent), scale, TRUE, TRUE, 4);
+        set_widget_min_width (GTK_WIDGET (scale), MIN_SLIDER_WIDTH);
+
+        gtk_box_pack_start (GTK_BOX (parent), scale, FALSE, FALSE, 4);
 
         gtk_widget_show (scale);
 
@@ -965,12 +916,9 @@ make_parameter_widget (const char *filename,
             GtkWidget *w = gtk_label_new (_((char *) p->high_label));
             gtk_label_set_justify (GTK_LABEL (w), GTK_JUSTIFY_LEFT);
             gtk_misc_set_alignment (GTK_MISC (w), 0.0, 0.5);
+            set_widget_min_width (GTK_WIDGET (w), MIN_LABEL_WIDTH);
             gtk_widget_show (w);
-            if (row)
-              gtk_table_attach (GTK_TABLE (parent), w, 2, 3, *row, *row + 1,
-                                GTK_FILL, 0, 0, 0);
-            else
-              gtk_box_pack_start (GTK_BOX (parent), w, FALSE, FALSE, 4);
+            gtk_box_pack_start (GTK_BOX (parent), w, FALSE, FALSE, 4);
           }
 
         p->widget = scale;
@@ -983,32 +931,21 @@ make_parameter_widget (const char *filename,
         gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spin), TRUE);
         gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (spin), TRUE);
         gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin), adj->value);
+        set_widget_min_width (GTK_WIDGET (spin), MIN_SPINBUTTON_WIDTH);
 
         if (label)
           {
             GtkWidget *w = gtk_label_new (_(label));
             gtk_label_set_justify (GTK_LABEL (w), GTK_JUSTIFY_RIGHT);
             gtk_misc_set_alignment (GTK_MISC (w), 1.0, 0.5);
+            set_widget_min_width (GTK_WIDGET (w), MIN_LABEL_WIDTH);
             gtk_widget_show (w);
-            if (row)
-              gtk_table_attach (GTK_TABLE (parent), w, 0, 1, *row, *row + 1,
-                                GTK_FILL, 0, 0, 0);
-            else
-              gtk_box_pack_start (GTK_BOX (parent), w, TRUE, TRUE, 4);
+            parent = insert_fake_hbox (parent);
+            gtk_box_pack_start (GTK_BOX (parent), w, FALSE, FALSE, 4);
           }
 
         gtk_widget_show (spin);
-        if (row)
-          {
-            GtkWidget *hbox = gtk_hbox_new (FALSE, 0);
-            gtk_widget_show (hbox);
-            gtk_table_attach (GTK_TABLE (parent), hbox, 1, 3,
-                              *row, *row + 1,
-                              GTK_EXPAND | GTK_FILL, 0, 8, 0);
-            gtk_box_pack_start (GTK_BOX (hbox), spin, FALSE, FALSE, 0);
-          }
-        else
-          gtk_box_pack_start (GTK_BOX (parent), spin, FALSE, FALSE, 4);
+        gtk_box_pack_start (GTK_BOX (parent), spin, FALSE, FALSE, 4);
 
         p->widget = spin;
         break;
@@ -1016,12 +953,10 @@ make_parameter_widget (const char *filename,
     case BOOLEAN:
       {
         p->widget = gtk_check_button_new_with_label (_(label));
-        if (row)
-          gtk_table_attach (GTK_TABLE (parent), p->widget, 0, 3,
-                            *row, *row + 1,
-                            GTK_EXPAND | GTK_FILL, 0, 0, 0);
-        else
-          gtk_box_pack_start (GTK_BOX (parent), p->widget, FALSE, FALSE, 4);
+        /* Let these stretch -- doesn't hurt. 
+           parent = insert_fake_hbox (parent);
+         */
+        gtk_box_pack_start (GTK_BOX (parent), p->widget, FALSE, FALSE, 4);
         break;
       }
     case SELECT:
@@ -1030,17 +965,6 @@ make_parameter_widget (const char *filename,
         GtkWidget *menu = gtk_menu_new ();
         GList *opts;
 
-        if (label && row)
-          {
-            GtkWidget *w = gtk_label_new (_(label));
-            gtk_label_set_justify (GTK_LABEL (w), GTK_JUSTIFY_LEFT);
-            gtk_misc_set_alignment (GTK_MISC (w), 0.0, 0.5);
-            gtk_widget_show (w);
-            gtk_table_attach (GTK_TABLE (parent), w, 0, 3, *row, *row + 1,
-                              GTK_EXPAND | GTK_FILL, 0, 0, 0);
-            (*row)++;
-          }
-
         for (opts = p->options; opts; opts = opts->next)
           {
             parameter *s = (parameter *) opts->data;
@@ -1051,12 +975,8 @@ make_parameter_widget (const char *filename,
 
         gtk_option_menu_set_menu (GTK_OPTION_MENU (opt), menu);
         p->widget = opt;
-        if (row)
-          gtk_table_attach (GTK_TABLE (parent), p->widget, 0, 3,
-                            *row, *row + 1,
-                            GTK_EXPAND | GTK_FILL, 0, 0, 0);
-        else
-          gtk_box_pack_start (GTK_BOX (parent), p->widget, TRUE, TRUE, 4);
+        parent = insert_fake_hbox (parent);
+        gtk_box_pack_start (GTK_BOX (parent), p->widget, FALSE, FALSE, 4);
         break;
       }
 
@@ -1073,8 +993,6 @@ make_parameter_widget (const char *filename,
     {
       gtk_widget_set_name (p->widget, (char *) p->id);
       gtk_widget_show (p->widget);
-      if (row)
-        (*row)++;
     }
 }
 
@@ -1360,25 +1278,29 @@ parameter_to_switch (parameter *p)
    All arguments will be properly quoted.
  */
 static char *
-parameters_to_cmd_line (GList *parms)
+parameters_to_cmd_line (GList *parms, gboolean default_p)
 {
   int L = g_list_length (parms);
   int LL = 0;
   char **strs = (char **) calloc (sizeof (*parms), L);
   char *result;
   char *out;
-  int i;
+  int i, j;
 
-  for (i = 0; parms; parms = parms->next, i++)
+  for (i = 0, j = 0; parms; parms = parms->next, i++)
     {
-      char *s = parameter_to_switch ((parameter *) parms->data);
-      strs[i] = s;
-      LL += (s ? strlen(s) : 0) + 1;
+      parameter *p = (parameter *) parms->data;
+      if (!default_p || p->type == COMMAND)
+        {
+          char *s = parameter_to_switch (p);
+          strs[j++] = s;
+          LL += (s ? strlen(s) : 0) + 1;
+        }
     }
 
   result = (char *) malloc (LL + 10);
   out = result;
-  for (i = 0; i < L; i++)
+  for (i = 0; i < j; i++)
     if (strs[i])
       {
         strcpy (out, strs[i]);
@@ -1777,6 +1699,8 @@ get_description (GList *parms, gboolean verbose_p)
               s++;
             else if (s[1] == ' ' || s[1] == '\t')
               s++;                 /* next line is indented: leave newline */
+            else if (!strncmp(s+1, "http:", 5))
+              s++;                 /* next line begins a URL: leave newline */
             else
               s[0] = ' ';          /* delete newline to un-fold this line */
           }
@@ -1865,7 +1789,7 @@ load_configurator_1 (const char *program, const char *arguments,
       char chars[1024];
       xmlParserCtxtPtr ctxt;
       xmlDocPtr doc = 0;
-      GtkWidget *table;
+      GtkWidget *vbox0;
       GList *parms;
 
       if (verbose_p)
@@ -1889,13 +1813,10 @@ load_configurator_1 (const char *program, const char *arguments,
 
       /* Parsed the XML file.  Now make some widgets. */
 
-      table = gtk_table_new (1, 3, FALSE);
-      gtk_table_set_row_spacings (GTK_TABLE (table), 4);
-      gtk_table_set_col_spacings (GTK_TABLE (table), 4);
-      gtk_container_set_border_width (GTK_CONTAINER (table), 8);
-      gtk_widget_show (table);
+      vbox0 = gtk_vbox_new (FALSE, 0);
+      gtk_widget_show (vbox0);
 
-      parms = make_parameters (file, doc->xmlRootNode, table);
+      parms = make_parameters (file, doc->xmlRootNode, vbox0);
       sanity_check_parameters (file, parms);
 
       xmlFreeDoc (doc);
@@ -1904,7 +1825,7 @@ load_configurator_1 (const char *program, const char *arguments,
       if (arguments && *arguments)
         parse_command_line_into_parameters (program, arguments, parms);
 
-      data->widget = table;
+      data->widget = vbox0;
       data->parameters = parms;
       data->description = get_description (parms, verbose_p);
     }
@@ -1982,9 +1903,9 @@ load_configurator (const char *full_command_line, gboolean verbose_p)
 
 
 char *
-get_configurator_command_line (conf_data *data)
+get_configurator_command_line (conf_data *data, gboolean default_p)
 {
-  char *args = parameters_to_cmd_line (data->parameters);
+  char *args = parameters_to_cmd_line (data->parameters, default_p);
   char *result = (char *) malloc (strlen (data->progname) +
                                   strlen (args) + 2);
   strcpy (result, data->progname);
index 9292d810e0b0d410e6655c48de7d9240ce66493b..f462152c7b0413b8ce08a367d003bdc9cbe0b7aa 100644 (file)
@@ -1,5 +1,5 @@
 /* demo-Gtk-conf.c --- implements the dynamic configuration dialogs.
- * xscreensaver, Copyright (c) 2001, 2002 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 2001-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -22,7 +22,7 @@ typedef struct {
 } conf_data;
 
 extern conf_data *load_configurator (const char *cmd_line, gboolean verbose_p);
-extern char *get_configurator_command_line (conf_data *);
+extern char *get_configurator_command_line (conf_data *, gboolean default_p);
 extern void  set_configurator_command_line (conf_data *, const char *cmd_line);
 extern void free_conf_data (conf_data *);
 
index 65d65487f0a8e5f0a0f172fa77a7efc6194fc245..c897d3ed45eb0fb124a10116224bd43d9a74c102 100644 (file)
@@ -77,6 +77,10 @@ void
 settings_std_cb                        (GtkButton       *button,
                                         gpointer         user_data);
 
+void
+settings_reset_cb                      (GtkButton       *button,
+                                        gpointer         user_data);
+
 void
 settings_ok_cb                         (GtkButton       *button,
                                         gpointer         user_data);
index 3ac260ae8cdd909926744dc9e8a987f4cd462708..176eaf68da79b9158507f652a0b55329fb9e8311 100644 (file)
@@ -1431,6 +1431,7 @@ create_xscreensaver_settings_dialog (void)
   GtkWidget *dialog_hbuttonbox;
   GtkWidget *adv_button;
   GtkWidget *std_button;
+  GtkWidget *reset_button;
   GtkWidget *ok_cancel_hbuttonbox;
   GtkWidget *ok_button;
   GtkWidget *cancel_button;
@@ -1697,6 +1698,16 @@ create_xscreensaver_settings_dialog (void)
   STFU GTK_WIDGET_SET_FLAGS (std_button, GTK_CAN_DEFAULT);
   gtk_tooltips_set_tip (tooltips, std_button, _("Back to the graphical configuration options."), NULL);
 
+  reset_button = gtk_button_new_with_label (_("Reset to Defaults"));
+  gtk_widget_set_name (reset_button, "reset_button");
+  gtk_widget_ref (reset_button);
+  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "reset_button", reset_button,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (reset_button);
+  gtk_container_add (GTK_CONTAINER (dialog_hbuttonbox), reset_button);
+  STFU GTK_WIDGET_SET_FLAGS (reset_button, GTK_CAN_DEFAULT);
+  gtk_tooltips_set_tip (tooltips, reset_button, _("Reset this screen saver to the default settings."), NULL);
+
   ok_cancel_hbuttonbox = gtk_hbutton_box_new ();
   gtk_widget_set_name (ok_cancel_hbuttonbox, "ok_cancel_hbuttonbox");
   gtk_widget_ref (ok_cancel_hbuttonbox);
@@ -1736,6 +1747,9 @@ create_xscreensaver_settings_dialog (void)
   gtk_signal_connect (GTK_OBJECT (std_button), "clicked",
                       GTK_SIGNAL_FUNC (settings_std_cb),
                       NULL);
+  gtk_signal_connect (GTK_OBJECT (reset_button), "clicked",
+                      GTK_SIGNAL_FUNC (settings_reset_cb),
+                      NULL);
   gtk_signal_connect (GTK_OBJECT (ok_button), "clicked",
                       GTK_SIGNAL_FUNC (settings_ok_cb),
                       NULL);
index 9ab83cbc94f025ba1453f9b05b75faf2fafdd124..a62d0b77b79c86729757353cf4b617329e94b867 100644 (file)
@@ -267,6 +267,7 @@ void browse_text_program_cb (GtkButton *, gpointer user_data);
 void settings_cb (GtkButton *, gpointer user_data);
 void settings_adv_cb (GtkButton *, gpointer user_data);
 void settings_std_cb (GtkButton *, gpointer user_data);
+void settings_reset_cb (GtkButton *, gpointer user_data);
 void settings_switch_page_cb (GtkNotebook *, GtkNotebookPage *,
                               gint page_num, gpointer user_data);
 void settings_cancel_cb (GtkButton *, gpointer user_data);
@@ -2253,7 +2254,7 @@ settings_sync_cmd_text (state *s)
 {
 # ifdef HAVE_XML
   GtkWidget *cmd = GTK_WIDGET (name_to_widget (s, "cmd_text"));
-  char *cmd_line = get_configurator_command_line (s->cdata);
+  char *cmd_line = get_configurator_command_line (s->cdata, False);
   gtk_entry_set_text (GTK_ENTRY (cmd), cmd_line);
   gtk_entry_set_position (GTK_ENTRY (cmd), strlen (cmd_line));
   free (cmd_line);
@@ -2284,6 +2285,20 @@ settings_std_cb (GtkButton *button, gpointer user_data)
   gtk_notebook_set_page (notebook, 0);
 }
 
+G_MODULE_EXPORT void
+settings_reset_cb (GtkButton *button, gpointer user_data)
+{
+# ifdef HAVE_XML
+  state *s = global_state_kludge;  /* I hate C so much... */
+  GtkWidget *cmd = GTK_WIDGET (name_to_widget (s, "cmd_text"));
+  char *cmd_line = get_configurator_command_line (s->cdata, True);
+  gtk_entry_set_text (GTK_ENTRY (cmd), cmd_line);
+  gtk_entry_set_position (GTK_ENTRY (cmd), strlen (cmd_line));
+  free (cmd_line);
+  populate_popup_window (s);
+# endif /* HAVE_XML */
+}
+
 G_MODULE_EXPORT void
 settings_switch_page_cb (GtkNotebook *notebook, GtkNotebookPage *page,
                          gint page_num, gpointer user_data)
@@ -3223,7 +3238,7 @@ populate_demo_window (state *s, int list_elt)
   screenhack *hack;
   char *pretty_name;
   GtkFrame *frame1 = GTK_FRAME (name_to_widget (s, "preview_frame"));
-  GtkFrame *frame2 = GTK_FRAME (name_to_widget (s, "doc_frame"));
+  GtkFrame *frame2 = GTK_FRAME (name_to_widget (s, "opt_frame"));
   GtkEntry *cmd    = GTK_ENTRY (name_to_widget (s, "cmd_text"));
   GtkCombo *vis    = GTK_COMBO (name_to_widget (s, "visual_combo"));
   GtkWidget *list  = GTK_WIDGET (name_to_widget (s, "list"));
@@ -4047,6 +4062,13 @@ update_subproc_timer (gpointer data)
   return FALSE;  /* do not re-execute timer */
 }
 
+static int
+settings_timer (gpointer data)
+{
+  settings_cb (0, 0);
+  return FALSE;
+}
+
 
 /* Call this when you think you might want a preview process running.
    It will set a timer that will actually launch that program a second
@@ -4553,7 +4575,7 @@ static struct poptOption crapplet_options[] = {
 #endif /* HAVE_CRAPPLET */
 #endif /* 0 */
 
-const char *usage = "[--display dpy] [--prefs]"
+const char *usage = "[--display dpy] [--prefs | --settings]"
 # ifdef HAVE_CRAPPLET
                     " [--crapplet]"
 # endif
@@ -4654,7 +4676,8 @@ main (int argc, char **argv)
   XtAppContext app;
   state S, *s;
   saver_preferences *p;
-  Bool prefs = False;
+  Bool prefs_p = False;
+  Bool settings_p = False;
   int i;
   Display *dpy;
   Widget toplevel_shell;
@@ -4920,7 +4943,9 @@ main (int argc, char **argv)
       if (str[0] == '-' && str[1] == '-')
        str++;
       if (!strcmp (str, "-prefs"))
-       prefs = True;
+       prefs_p = True;
+      else if (!strcmp (str, "-settings"))
+       settings_p = True;
       else if (crapplet_p)
         /* There are lots of random args that we don't care about when we're
            started as a crapplet, so just ignore unknown args in that case. */
@@ -5026,6 +5051,8 @@ main (int argc, char **argv)
     gtk_widget_set_sensitive (std, False);
     std = GTK_WIDGET (name_to_widget (s, "adv_button"));
     gtk_widget_hide (std);
+    std = GTK_WIDGET (name_to_widget (s, "reset_button"));
+    gtk_widget_hide (std);
     page = 1;
 # endif /* !HAVE_XML */
 
@@ -5090,7 +5117,7 @@ main (int argc, char **argv)
 
 
   /* Handle the -prefs command-line argument. */
-  if (prefs)
+  if (prefs_p)
     {
       GtkNotebook *notebook =
         GTK_NOTEBOOK (name_to_widget (s, "notebook"));
@@ -5180,6 +5207,11 @@ main (int argc, char **argv)
   gtk_timeout_add (60 * 1000, check_blanked_timer, s);
 
 
+  /* Handle the --settings command-line argument. */
+  if (settings_p)
+    gtk_timeout_add (500, settings_timer, 0);
+
+
   /* Issue any warnings about the running xscreensaver daemon. */
   if (! s->debug_p)
     the_network_is_not_the_computer (s);
index cef66b782850ac9dcbef843c3eccbb4df488d6b2..6516ade7f55cdcfb4a96c03ccf4f7c7dca121baa 100644 (file)
  *      to put seperate savers on those duplicated-or-overlapping
  *      monitors, xscreensaver just ignores them (which allows them to
  *      display duplicates or overlaps).
+ *
+ *   5a) Nvidia fucks it up:
+ *
+ *      Nvidia drivers as of Aug 2008 running in "TwinView" mode
+ *      apparently report correct screen geometry via Xinerama, but
+ *      report one giant screen via RANDR.  The response from the
+ *      nvidia developers is, "we don't support RANDR, use Xinerama
+ *      instead."  Which is a seriously lame answer.  So, xscreensaver
+ *      has to query *both* extensions, and make a guess as to which
+ *      is to be believed.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -143,6 +153,9 @@ struct _monitor {
   int enemy;                   /* which monitor it overlaps or duplicates */
 };
 
+static Bool layouts_differ_p (monitor **a, monitor **b);
+
+
 static void
 free_monitors (monitor **monitors)
 {
@@ -342,7 +355,7 @@ randr_scan_monitors (Display *dpy)
 
   for (i = 0, j = 0; i < ScreenCount (dpy); i++)
     {
-      Screen *screen = ScreenOfDisplay (dpy, j);
+      Screen *screen = ScreenOfDisplay (dpy, i);
 
       if (! new_randr_p)  /* RANDR 1.0 */
         {
@@ -358,12 +371,17 @@ randr_scan_monitors (Display *dpy)
               SizeID size = -1;
               Rotation rot = ~0;
               XRRScreenSize *rrsizes;
-              int nsizes;
+              int nsizes = 0;
 
               size = XRRConfigCurrentConfiguration (rrc, &rot);
               rrsizes = XRRConfigSizes (rrc, &nsizes);
 
-              if (rot & (RR_Rotate_90|RR_Rotate_270))
+              if (nsizes <= 0)  /* WTF?  Shouldn't happen but does. */
+                {
+                  m->width  = DisplayWidth (dpy, i);
+                  m->height = DisplayHeight (dpy, i);
+                }
+              else if (rot & (RR_Rotate_90|RR_Rotate_270))
                 {
                   m->width  = rrsizes[size].height;
                   m->height = rrsizes[size].width;
@@ -454,6 +472,66 @@ basic_scan_monitors (Display *dpy)
 }
 
 
+#if defined(HAVE_RANDR) && defined(HAVE_XINERAMA)
+
+/*   From: Aaron Plattner <aplattner@nvidia.com>
+     Date: August 7, 2008 10:21:25 AM PDT
+     To: linux-bugs@nvidia.com
+
+     The NVIDIA X driver does not yet support RandR 1.2.  The X server has
+     a compatibility layer in it that allows RandR 1.2 clients to talk to
+     RandR 1.1 drivers through an RandR 1.2 pseudo-output called "default".
+     This reports the total combined resolution of the TwinView display,
+     since it doesn't have any visibility into TwinView metamodes.  There
+     is no way for the driver to prevent the server from turning on this
+     compatibility layer.
+
+     The intention is for X client applications to continue to use the
+     Xinerama extension to query the screen geometry.  RandR 1.2 reports
+     its own Xinerama info for this purpose.  I would recommend against
+     modifying xscreensaver to try to get this information from RandR.
+ */
+static monitor **
+randr_versus_xinerama_fight (Display *dpy, monitor **randr_monitors)
+{
+  monitor **xinerama_monitors;
+
+  if (!randr_monitors) 
+    return 0;
+
+  xinerama_monitors = xinerama_scan_monitors (dpy);
+  if (!xinerama_monitors)
+    return randr_monitors;
+
+  if (! layouts_differ_p (randr_monitors, xinerama_monitors))
+    {
+      free_monitors (xinerama_monitors);
+      return randr_monitors;
+    }
+  else if (   randr_monitors[0] &&   !randr_monitors[1] &&  /* 1 monitor */
+           xinerama_monitors[0] && xinerama_monitors[1])    /* >1 monitor */
+    {
+      fprintf (stderr,
+               "%s: WARNING: RANDR reports 1 screen but Xinerama\n"
+               "%s:          reports multiple.  Believing Xinerama.\n",
+               blurb(), blurb());
+      free_monitors (randr_monitors);
+      return xinerama_monitors;
+    }
+  else
+    {
+      fprintf (stderr,
+               "%s: WARNING: RANDR and Xinerama report different\n"
+               "%s:          screen layouts!  Believing RANDR.\n",
+               blurb(), blurb());
+      free_monitors (xinerama_monitors);
+      return randr_monitors;
+    }
+}
+
+#endif /* HAVE_RANDR && HAVE_XINERAMA */
+
+
 #ifdef DEBUG_MULTISCREEN
 
 /* If DEBUG_MULTISCREEN is defined, then in "-debug" mode, xscreensaver
@@ -557,13 +635,17 @@ scan_monitors (saver_info *si)
 # ifdef HAVE_RANDR
   if (! p->getviewport_full_of_lies_p)
     if (! monitors) monitors = randr_scan_monitors (si->dpy);
-# endif
+
+#  ifdef HAVE_XINERAMA
+   monitors = randr_versus_xinerama_fight (si->dpy, monitors);
+#  endif
+# endif /* HAVE_RANDR */
 
 # ifdef HAVE_XF86VMODE
   if (! monitors) monitors = vidmode_scan_monitors (si->dpy);
 # endif
 
-# ifdef HAVE_XF86VMODE
+# ifdef HAVE_XINERAMA
   if (! monitors) monitors = xinerama_scan_monitors (si->dpy);
 # endif
 
@@ -598,6 +680,38 @@ monitors_overlap_p (monitor *a, monitor *b)
 }
 
 
+static Bool
+plausible_aspect_ratio_p (monitor **monitors)
+{
+  /* Modern wide-screen monitors come in the following aspect ratios:
+
+            One monitor:        If you tack a 640x480 monitor
+                                onto the right, the ratio is:
+         16 x 9    --> 1.78
+        852 x 480  --> 1.77        852+640 x 480  --> 3.11      "SD 480p"
+       1280 x 720  --> 1.78       1280+640 x 720  --> 2.67      "HD 720p"
+       1280 x 920  --> 1.39       1280+640 x 920  --> 2.09
+       1366 x 768  --> 1.78       1366+640 x 768  --> 2.61      "HD 768p"
+       1440 x 900  --> 1.60       1440+640 x 900  --> 2.31
+       1680 x 1050 --> 1.60       1680+640 x 1050 --> 2.21
+       1690 x 1050 --> 1.61       1690+640 x 1050 --> 2.22
+       1920 x 1080 --> 1.78       1920+640 x 1080 --> 2.37      "HD 1080p"
+       1920 x 1200 --> 1.60       1920+640 x 1200 --> 2.13
+       2560 x 1600 --> 1.60       2560+640 x 1600 --> 2.00
+
+     So that implies that if we ever see an aspect ratio >= 2.0,
+     we can be pretty sure that the X server is lying to us, and
+     that's actually two monitors, not one.
+   */
+  if (monitors[0] && !monitors[1] &&    /* exactly 1 monitor */
+      monitors[0]->height &&
+      monitors[0]->width / (double) monitors[0]->height >= 1.9)
+    return False;
+  else
+    return True;
+}
+
+
 /* Mark the ones that overlap, etc.
  */
 static void
@@ -624,6 +738,7 @@ check_monitor_sanity (monitor **monitors)
       if (i != j &&
           monitors[i]->sanity == S_SANE &&
           monitors[j]->sanity == S_SANE &&
+          monitors[i]->screen == monitors[j]->screen &&
           X2 >= X1 &&
           Y2 >= Y1 &&
           (X2+W2) <= (X1+W1) &&
@@ -648,6 +763,7 @@ check_monitor_sanity (monitor **monitors)
       {
         if (monitors[i]->sanity != S_SANE) continue; /* already marked */
         if (monitors[j]->sanity != S_SANE) continue;
+        if (monitors[i]->screen != monitors[j]->screen) continue;
 
         if (monitors_overlap_p (monitors[i], monitors[j]))
           {
@@ -656,17 +772,15 @@ check_monitor_sanity (monitor **monitors)
           }
       }
 
-  /* Finally, make sure all monitors are enclosed by their X screen.
+  /* Finally, make sure all monitors have sane positions and sizes.
      Xinerama sometimes reports 1024x768 VPs at -1936862040, -1953705044.
    */
   for (i = 0; i < count; i++)
     {
-      int sw = WidthOfScreen (monitors[i]->screen)  * 2;
-      int sh = HeightOfScreen (monitors[i]->screen) * 2;
       if (monitors[i]->sanity != S_SANE) continue; /* already marked */
-      if (X1    <  0 || Y1    <  0 || 
-          W1    <= 0 || H1    <= 0 || 
-          X1+W1 > sw || Y1+H1 > sh)
+      if (X1    <  0      || Y1    <  0 || 
+          W1    <= 0      || H1    <= 0 || 
+          X1+W1 >= 0x7FFF || Y1+H1 >= 0x7FFF)
         {
           monitors[i]->sanity = S_OFFSCREEN;
           monitors[i]->enemy = 0;
@@ -715,6 +829,8 @@ describe_monitor_layout (saver_info *si)
   int count = 0;
   int good_count = 0;
   int bad_count = 0;
+  int implausible_p = !plausible_aspect_ratio_p (monitors);
+
   while (monitors[count])
     {
       if (monitors[count]->sanity == S_SANE)
@@ -778,6 +894,14 @@ describe_monitor_layout (saver_info *si)
                 }
             }
         }
+
+      if (implausible_p)
+        fprintf (stderr,
+                 "%s: WARNING: single screen aspect ratio is %dx%d = %.2f\n"
+                 "%s:          probable X server bug in Xinerama/RANDR!\n",
+                 blurb(), monitors[0]->width, monitors[0]->height,
+                 monitors[0]->width / (double) monitors[0]->height,
+                 blurb());
     }
 }
 
index 60bd569d7a1585913b92d3a5fa088c1c923abc61..2fb3e35d5e0abde8897c94eb05311f6271633154 100644 (file)
@@ -33,7 +33,7 @@
 #define HeightOfScreen(s) 10240
 
 #undef screen_number
-#define screen_number(s) (0)
+#define screen_number(s) ((int) s)
 
 #include "screens.c"   /* to get at static void check_monitor_sanity() */
 
@@ -57,6 +57,7 @@ failstr (monitor_sanity san)
   case S_OVERLAP:   return "OVR";
   case S_OFFSCREEN: return "OFF";
   case S_DISABLED:  return "DIS";
+  default: abort(); break;
   }
 }
 
@@ -74,8 +75,12 @@ test (int testnum, const char *screens, const char *desired)
       monitor *m = calloc (1, sizeof (monitor));
       char c;
       m->id = (testnum * 1000) + nscreens;
-      if (4 != sscanf (token, "%dx%d+%d+%d%c", 
-                      &m->width, &m->height, &m->x, &m->y, &c))
+      if (5 == sscanf (token, "%dx%d+%d+%d@%d%c", 
+                       &m->width, &m->height, &m->x, &m->y, 
+                       (int *) &m->screen, &c))
+        ;
+      else if (4 != sscanf (token, "%dx%d+%d+%d%c", 
+                            &m->width, &m->height, &m->x, &m->y, &c))
         {
           fprintf (stderr, "%s: unparsable geometry: %s\n", blurb(), token);
           exit (1);
@@ -94,7 +99,11 @@ test (int testnum, const char *screens, const char *desired)
       monitor *m = monitors[i];
       if (out != result) *out++ = ',';
       if (m->sanity == S_SANE)
-        sprintf (out, "%dx%d+%d+%d", m->width, m->height, m->x, m->y);
+        {
+          sprintf (out, "%dx%d+%d+%d", m->width, m->height, m->x, m->y);
+          if (m->screen)
+            sprintf (out + strlen(out), "@%d", (int) m->screen);
+        }
       else
         strcpy (out, failstr (m->sanity));
       out += strlen(out);
@@ -135,6 +144,7 @@ run_tests(void)
   A("1024x768+0+0,1024x768+1024+0");
   A("1024x768+0+0,1024x768+0+768");
   A("1024x768+0+0,1024x768+0+768,1024x768+1024+0");
+  A("800x600+0+0,800x600+0+0@1,800x600+10+0@2");
 
   B("1024x768+999999+0",
     "OFF");
@@ -174,6 +184,8 @@ run_tests(void)
     "800x600+0+0,DUP,800x600+800+0");
   B("1600x1200+0+0,1360x768+0+0",
     "1600x1200+0+0,ENC");
+  B("1600x1200+0+0,1360x768+0+0,1600x1200+0+0@1,1360x768+0+0@1",
+    "1600x1200+0+0,ENC,1600x1200+0+0@1,ENC");
 }
 
 
index 92078445ec7e00fbb2b5c0ebbd7e9e8bb44d515d..d1c782a00b4cded84e4cfc60727f946f6e82fcb7 100644 (file)
@@ -2,6 +2,7 @@
 <!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
 
 <glade-interface>
+<requires lib="gnome"/>
 
 <widget class="GtkWindow" id="xscreensaver_demo">
   <property name="title" translatable="yes">XScreenSaver</property>
@@ -15,6 +16,8 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
 
   <child>
     <widget class="GtkVBox" id="outer_vbox">
@@ -25,6 +28,8 @@
       <child>
        <widget class="GtkMenuBar" id="menubar">
          <property name="visible">True</property>
+         <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
+         <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
 
          <child>
            <widget class="GtkMenuItem" id="file">
                          <property name="xpad">8</property>
                          <property name="ypad">0</property>
                          <property name="mnemonic_widget">cycle_spinbutton</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
                        </widget>
                        <packing>
                          <property name="left_attach">1</property>
                          <property name="yalign">0.5</property>
                          <property name="xpad">8</property>
                          <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
                        </widget>
                        <packing>
                          <property name="left_attach">3</property>
                          <property name="yalign">0.5</property>
                          <property name="xpad">8</property>
                          <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
                        </widget>
                        <packing>
                          <property name="left_attach">3</property>
                          <property name="yalign">0.5</property>
                          <property name="xpad">8</property>
                          <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
                        </widget>
                        <packing>
                          <property name="left_attach">3</property>
                          <property name="xpad">8</property>
                          <property name="ypad">0</property>
                          <property name="mnemonic_widget">timeout_spinbutton</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
                        </widget>
                        <packing>
                          <property name="left_attach">1</property>
                              <property name="xpad">0</property>
                              <property name="ypad">0</property>
                              <property name="mnemonic_widget">mode_menu</property>
+                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                             <property name="width_chars">-1</property>
+                             <property name="single_line_mode">False</property>
+                             <property name="angle">0</property>
                            </widget>
                            <packing>
                              <property name="padding">0</property>
                              <property name="rules_hint">True</property>
                              <property name="reorderable">False</property>
                              <property name="enable_search">True</property>
+                             <property name="fixed_height_mode">False</property>
+                             <property name="hover_selection">False</property>
+                             <property name="hover_expand">False</property>
                            </widget>
                          </child>
                        </widget>
                              <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
                              <property name="xalign">0.5</property>
                              <property name="yalign">0.5</property>
-                             <property name="ratio">1.33</property>
+                             <property name="ratio">1.33000004292</property>
                              <property name="obey_child">False</property>
 
                              <child>
                              <property name="yalign">0.5</property>
                              <property name="xpad">0</property>
                              <property name="ypad">0</property>
+                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                             <property name="width_chars">-1</property>
+                             <property name="single_line_mode">False</property>
+                             <property name="angle">0</property>
                            </widget>
                            <packing>
                              <property name="type">tab</property>
@@ -749,6 +785,10 @@ Available</property>
                              <property name="yalign">0.5</property>
                              <property name="xpad">0</property>
                              <property name="ypad">0</property>
+                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                             <property name="width_chars">-1</property>
+                             <property name="single_line_mode">False</property>
+                             <property name="angle">0</property>
                            </widget>
                            <packing>
                              <property name="tab_expand">False</property>
@@ -769,6 +809,10 @@ Available</property>
                              <property name="yalign">0.5</property>
                              <property name="xpad">0</property>
                              <property name="ypad">0</property>
+                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                             <property name="width_chars">-1</property>
+                             <property name="single_line_mode">False</property>
+                             <property name="angle">0</property>
                            </widget>
                            <packing>
                              <property name="type">tab</property>
@@ -789,6 +833,10 @@ Installed</property>
                              <property name="yalign">0.5</property>
                              <property name="xpad">0</property>
                              <property name="ypad">0</property>
+                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                             <property name="width_chars">-1</property>
+                             <property name="single_line_mode">False</property>
+                             <property name="angle">0</property>
                            </widget>
                            <packing>
                              <property name="tab_expand">False</property>
@@ -809,6 +857,10 @@ Installed</property>
                              <property name="yalign">0.5</property>
                              <property name="xpad">0</property>
                              <property name="ypad">0</property>
+                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                             <property name="width_chars">-1</property>
+                             <property name="single_line_mode">False</property>
+                             <property name="angle">0</property>
                            </widget>
                            <packing>
                              <property name="type">tab</property>
@@ -831,6 +883,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                              <property name="yalign">0.5</property>
                              <property name="xpad">0</property>
                              <property name="ypad">0</property>
+                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                             <property name="width_chars">-1</property>
+                             <property name="single_line_mode">False</property>
+                             <property name="angle">0</property>
                            </widget>
                            <packing>
                              <property name="tab_expand">False</property>
@@ -851,6 +907,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                              <property name="yalign">0.5</property>
                              <property name="xpad">0</property>
                              <property name="ypad">0</property>
+                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                             <property name="width_chars">-1</property>
+                             <property name="single_line_mode">False</property>
+                             <property name="angle">0</property>
                            </widget>
                            <packing>
                              <property name="type">tab</property>
@@ -872,6 +932,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                          <property name="yalign">0.5</property>
                          <property name="xpad">0</property>
                          <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
                        </widget>
                        <packing>
                          <property name="type">label_item</property>
@@ -909,6 +973,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                  <property name="xpad">0</property>
                  <property name="ypad">0</property>
                  <property name="mnemonic_widget">notebook</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
                </widget>
                <packing>
                  <property name="type">tab</property>
@@ -1043,6 +1111,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                      <property name="yalign">0.5</property>
                                      <property name="xpad">8</property>
                                      <property name="ypad">0</property>
+                                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                     <property name="width_chars">-1</property>
+                                     <property name="single_line_mode">False</property>
+                                     <property name="angle">0</property>
                                    </widget>
                                    <packing>
                                      <property name="padding">0</property>
@@ -1061,7 +1133,7 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                      <property name="max_length">0</property>
                                      <property name="text" translatable="yes"></property>
                                      <property name="has_frame">True</property>
-                                     <property name="invisible_char" translatable="yes">*</property>
+                                     <property name="invisible_char">*</property>
                                      <property name="activates_default">False</property>
                                      <signal name="activate" handler="pref_changed_cb"/>
                                      <signal name="focus_out_event" handler="pref_changed_event_cb"/>
@@ -1119,6 +1191,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                          <property name="yalign">0.5</property>
                          <property name="xpad">0</property>
                          <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
                        </widget>
                        <packing>
                          <property name="type">label_item</property>
@@ -1307,7 +1383,7 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                  <property name="max_length">0</property>
                                  <property name="text" translatable="yes"></property>
                                  <property name="has_frame">True</property>
-                                 <property name="invisible_char" translatable="yes">*</property>
+                                 <property name="invisible_char">*</property>
                                  <property name="activates_default">False</property>
                                  <signal name="activate" handler="pref_changed_cb" last_modification_time="Sun, 20 Mar 2005 21:33:10 GMT"/>
                                  <signal name="focus_out_event" handler="pref_changed_event_cb" last_modification_time="Sun, 20 Mar 2005 21:34:26 GMT"/>
@@ -1351,7 +1427,7 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                  <property name="max_length">0</property>
                                  <property name="text" translatable="yes"></property>
                                  <property name="has_frame">True</property>
-                                 <property name="invisible_char" translatable="yes">*</property>
+                                 <property name="invisible_char">*</property>
                                  <property name="activates_default">False</property>
                                  <signal name="activate" handler="pref_changed_cb" last_modification_time="Sun, 20 Mar 2005 21:32:42 GMT"/>
                                  <signal name="focus_out_event" handler="pref_changed_event_cb" last_modification_time="Sun, 20 Mar 2005 21:33:43 GMT"/>
@@ -1375,7 +1451,7 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                  <property name="max_length">0</property>
                                  <property name="text" translatable="yes"></property>
                                  <property name="has_frame">True</property>
-                                 <property name="invisible_char" translatable="yes">*</property>
+                                 <property name="invisible_char">*</property>
                                  <property name="activates_default">False</property>
                                  <signal name="activate" handler="pref_changed_cb" last_modification_time="Sun, 20 Mar 2005 21:33:02 GMT"/>
                                  <signal name="focus_out_event" handler="pref_changed_event_cb" last_modification_time="Sun, 20 Mar 2005 21:34:15 GMT"/>
@@ -1419,7 +1495,7 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                  <property name="max_length">0</property>
                                  <property name="text" translatable="yes"></property>
                                  <property name="has_frame">True</property>
-                                 <property name="invisible_char" translatable="yes">*</property>
+                                 <property name="invisible_char">*</property>
                                  <property name="activates_default">False</property>
                                  <signal name="activate" handler="pref_changed_cb" last_modification_time="Sun, 20 Mar 2005 21:32:53 GMT"/>
                                  <signal name="focus_out_event" handler="pref_changed_event_cb" last_modification_time="Sun, 20 Mar 2005 21:33:55 GMT"/>
@@ -1455,6 +1531,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                          <property name="yalign">0.5</property>
                          <property name="xpad">0</property>
                          <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
                        </widget>
                        <packing>
                          <property name="type">label_item</property>
@@ -1551,6 +1631,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                      <property name="xpad">10</property>
                                      <property name="ypad">0</property>
                                      <property name="mnemonic_widget">dpms_standby_spinbutton</property>
+                                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                     <property name="width_chars">-1</property>
+                                     <property name="single_line_mode">False</property>
+                                     <property name="angle">0</property>
                                    </widget>
                                    <packing>
                                      <property name="left_attach">0</property>
@@ -1576,6 +1660,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                      <property name="xpad">10</property>
                                      <property name="ypad">0</property>
                                      <property name="mnemonic_widget">dpms_suspend_spinbutton</property>
+                                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                     <property name="width_chars">-1</property>
+                                     <property name="single_line_mode">False</property>
+                                     <property name="angle">0</property>
                                    </widget>
                                    <packing>
                                      <property name="left_attach">0</property>
@@ -1601,6 +1689,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                      <property name="xpad">10</property>
                                      <property name="ypad">0</property>
                                      <property name="mnemonic_widget">dpms_off_spinbutton</property>
+                                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                     <property name="width_chars">-1</property>
+                                     <property name="single_line_mode">False</property>
+                                     <property name="angle">0</property>
                                    </widget>
                                    <packing>
                                      <property name="left_attach">0</property>
@@ -1625,6 +1717,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                      <property name="yalign">0.5</property>
                                      <property name="xpad">0</property>
                                      <property name="ypad">0</property>
+                                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                     <property name="width_chars">-1</property>
+                                     <property name="single_line_mode">False</property>
+                                     <property name="angle">0</property>
                                    </widget>
                                    <packing>
                                      <property name="left_attach">2</property>
@@ -1649,6 +1745,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                      <property name="yalign">0.5</property>
                                      <property name="xpad">0</property>
                                      <property name="ypad">0</property>
+                                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                     <property name="width_chars">-1</property>
+                                     <property name="single_line_mode">False</property>
+                                     <property name="angle">0</property>
                                    </widget>
                                    <packing>
                                      <property name="left_attach">2</property>
@@ -1673,6 +1773,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                      <property name="yalign">0.5</property>
                                      <property name="xpad">0</property>
                                      <property name="ypad">0</property>
+                                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                     <property name="width_chars">-1</property>
+                                     <property name="single_line_mode">False</property>
+                                     <property name="angle">0</property>
                                    </widget>
                                    <packing>
                                      <property name="left_attach">2</property>
@@ -1791,6 +1895,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                          <property name="yalign">0.5</property>
                          <property name="xpad">0</property>
                          <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
                        </widget>
                        <packing>
                          <property name="type">label_item</property>
@@ -1904,6 +2012,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                      <property name="yalign">0.5</property>
                                      <property name="xpad">3</property>
                                      <property name="ypad">0</property>
+                                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                     <property name="width_chars">-1</property>
+                                     <property name="single_line_mode">False</property>
+                                     <property name="angle">0</property>
                                    </widget>
                                    <packing>
                                      <property name="padding">0</property>
@@ -1926,6 +2038,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                      <property name="xpad">0</property>
                                      <property name="ypad">0</property>
                                      <property name="mnemonic_widget">fade_spinbutton</property>
+                                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                     <property name="width_chars">-1</property>
+                                     <property name="single_line_mode">False</property>
+                                     <property name="angle">0</property>
                                    </widget>
                                    <packing>
                                      <property name="padding">14</property>
@@ -1970,6 +2086,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                      <property name="yalign">0.5</property>
                                      <property name="xpad">0</property>
                                      <property name="ypad">0</property>
+                                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                                     <property name="width_chars">-1</property>
+                                     <property name="single_line_mode">False</property>
+                                     <property name="angle">0</property>
                                    </widget>
                                    <packing>
                                      <property name="padding">2</property>
@@ -2039,6 +2159,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                          <property name="yalign">0.5</property>
                          <property name="xpad">0</property>
                          <property name="ypad">0</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
                        </widget>
                        <packing>
                          <property name="type">label_item</property>
@@ -2075,6 +2199,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                  <property name="xpad">0</property>
                  <property name="ypad">0</property>
                  <property name="mnemonic_widget">notebook</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
                </widget>
                <packing>
                  <property name="type">tab</property>
@@ -2150,6 +2278,8 @@ This probably means that the &quot;xscreensaver-extras&quot; and
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -2191,6 +2321,20 @@ This probably means that the &quot;xscreensaver-extras&quot; and
            </widget>
          </child>
 
+         <child>
+           <widget class="GtkButton" id="reset_button">
+             <property name="visible">True</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label" translatable="yes">_Reset to Defaults</property>
+             <property name="use_underline">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <property name="response_id">0</property>
+             <signal name="clicked" handler="settings_reset_cb"/>
+           </widget>
+         </child>
+
          <child>
            <widget class="GtkButton" id="cancel_button">
              <property name="visible">True</property>
@@ -2228,16 +2372,16 @@ This probably means that the &quot;xscreensaver-extras&quot; and
       </child>
 
       <child>
-       <widget class="GtkHBox" id="hbox1">
+       <widget class="GtkVBox" id="vbox1">
          <property name="visible">True</property>
          <property name="homogeneous">False</property>
-         <property name="spacing">8</property>
+         <property name="spacing">0</property>
 
          <child>
            <widget class="GtkFrame" id="opt_frame">
              <property name="visible">True</property>
              <property name="label_xalign">0</property>
-             <property name="label_yalign">0.5</property>
+             <property name="label_yalign">0</property>
              <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
 
              <child>
@@ -2263,8 +2407,9 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                      </child>
                    </widget>
                    <packing>
-                     <property name="tab_expand">False</property>
+                     <property name="tab_expand">True</property>
                      <property name="tab_fill">True</property>
+                     <property name="tab_pack">GTK_PACK_END</property>
                    </packing>
                  </child>
 
@@ -2281,6 +2426,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                      <property name="yalign">0.5</property>
                      <property name="xpad">0</property>
                      <property name="ypad">0</property>
+                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                     <property name="width_chars">-1</property>
+                     <property name="single_line_mode">False</property>
+                     <property name="angle">0</property>
                    </widget>
                    <packing>
                      <property name="type">tab</property>
@@ -2329,6 +2478,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                          <property name="xpad">0</property>
                          <property name="ypad">0</property>
                          <property name="mnemonic_widget">cmd_text</property>
+                         <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                         <property name="width_chars">-1</property>
+                         <property name="single_line_mode">False</property>
+                         <property name="angle">0</property>
                        </widget>
                        <packing>
                          <property name="left_attach">1</property>
@@ -2349,7 +2502,7 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                          <property name="max_length">0</property>
                          <property name="text" translatable="yes"></property>
                          <property name="has_frame">True</property>
-                         <property name="invisible_char" translatable="yes">*</property>
+                         <property name="invisible_char">*</property>
                          <property name="activates_default">False</property>
                        </widget>
                        <packing>
@@ -2381,6 +2534,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                              <property name="xpad">3</property>
                              <property name="ypad">0</property>
                              <property name="mnemonic_widget">visual_entry</property>
+                             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                             <property name="width_chars">-1</property>
+                             <property name="single_line_mode">False</property>
+                             <property name="angle">0</property>
                            </widget>
                            <packing>
                              <property name="padding">0</property>
@@ -2407,7 +2564,7 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                                  <property name="max_length">0</property>
                                  <property name="text" translatable="yes"></property>
                                  <property name="has_frame">True</property>
-                                 <property name="invisible_char" translatable="yes">*</property>
+                                 <property name="invisible_char">*</property>
                                  <property name="activates_default">False</property>
                                </widget>
                              </child>
@@ -2525,8 +2682,8 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                            </widget>
                            <packing>
                              <property name="padding">0</property>
-                             <property name="expand">True</property>
-                             <property name="fill">True</property>
+                             <property name="expand">False</property>
+                             <property name="fill">False</property>
                            </packing>
                          </child>
                        </widget>
@@ -2559,6 +2716,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                      <property name="yalign">0.5</property>
                      <property name="xpad">0</property>
                      <property name="ypad">0</property>
+                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                     <property name="width_chars">-1</property>
+                     <property name="single_line_mode">False</property>
+                     <property name="angle">0</property>
                    </widget>
                    <packing>
                      <property name="type">tab</property>
@@ -2580,6 +2741,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                  <property name="yalign">0.5</property>
                  <property name="xpad">0</property>
                  <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
                </widget>
                <packing>
                  <property name="type">label_item</property>
@@ -2597,8 +2762,8 @@ This probably means that the &quot;xscreensaver-extras&quot; and
            <widget class="GtkFrame" id="doc_frame">
              <property name="visible">True</property>
              <property name="label_xalign">0</property>
-             <property name="label_yalign">0.5</property>
-             <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
+             <property name="label_yalign">0</property>
+             <property name="shadow_type">GTK_SHADOW_NONE</property>
 
              <child>
                <widget class="GtkVBox" id="doc_vbox">
@@ -2617,31 +2782,14 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                      <property name="justify">GTK_JUSTIFY_LEFT</property>
                      <property name="wrap">True</property>
                      <property name="selectable">True</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0.5</property>
-                     <property name="xpad">0</property>
-                     <property name="ypad">0</property>
-                   </widget>
-                   <packing>
-                     <property name="padding">0</property>
-                     <property name="expand">False</property>
-                     <property name="fill">False</property>
-                   </packing>
-                 </child>
-
-                 <child>
-                   <widget class="GtkLabel" id="spacer">
-                     <property name="visible">True</property>
-                     <property name="label" translatable="yes"></property>
-                     <property name="use_underline">False</property>
-                     <property name="use_markup">False</property>
-                     <property name="justify">GTK_JUSTIFY_LEFT</property>
-                     <property name="wrap">False</property>
-                     <property name="selectable">False</property>
-                     <property name="xalign">0.5</property>
-                     <property name="yalign">0.5</property>
+                     <property name="xalign">0</property>
+                     <property name="yalign">0</property>
                      <property name="xpad">0</property>
                      <property name="ypad">0</property>
+                     <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                     <property name="width_chars">-1</property>
+                     <property name="single_line_mode">False</property>
+                     <property name="angle">0</property>
                    </widget>
                    <packing>
                      <property name="padding">0</property>
@@ -2651,14 +2799,28 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                  </child>
 
                  <child>
-                   <widget class="GtkButton" id="manual">
+                   <widget class="GtkHBox" id="hbox1">
                      <property name="visible">True</property>
-                     <property name="can_focus">True</property>
-                     <property name="label" translatable="yes">_Documentation...</property>
-                     <property name="use_underline">True</property>
-                     <property name="relief">GTK_RELIEF_NORMAL</property>
-                     <property name="focus_on_click">True</property>
-                     <signal name="clicked" handler="manual_cb"/>
+                     <property name="homogeneous">False</property>
+                     <property name="spacing">0</property>
+
+                     <child>
+                       <widget class="GtkButton" id="manual">
+                         <property name="visible">True</property>
+                         <property name="can_focus">True</property>
+                         <property name="label" translatable="yes">_Documentation...</property>
+                         <property name="use_underline">True</property>
+                         <property name="relief">GTK_RELIEF_NORMAL</property>
+                         <property name="focus_on_click">True</property>
+                         <signal name="clicked" handler="manual_cb"/>
+                       </widget>
+                       <packing>
+                         <property name="padding">0</property>
+                         <property name="expand">False</property>
+                         <property name="fill">False</property>
+                         <property name="pack_type">GTK_PACK_END</property>
+                       </packing>
+                     </child>
                    </widget>
                    <packing>
                      <property name="padding">0</property>
@@ -2672,7 +2834,7 @@ This probably means that the &quot;xscreensaver-extras&quot; and
              <child>
                <widget class="GtkLabel" id="label7">
                  <property name="visible">True</property>
-                 <property name="label" translatable="yes">Description</property>
+                 <property name="label" translatable="yes"></property>
                  <property name="use_underline">False</property>
                  <property name="use_markup">False</property>
                  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -2682,6 +2844,10 @@ This probably means that the &quot;xscreensaver-extras&quot; and
                  <property name="yalign">0.5</property>
                  <property name="xpad">0</property>
                  <property name="ypad">0</property>
+                 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+                 <property name="width_chars">-1</property>
+                 <property name="single_line_mode">False</property>
+                 <property name="angle">0</property>
                </widget>
                <packing>
                  <property name="type">label_item</property>
@@ -2690,8 +2856,8 @@ This probably means that the &quot;xscreensaver-extras&quot; and
            </widget>
            <packing>
              <property name="padding">0</property>
-             <property name="expand">True</property>
-             <property name="fill">True</property>
+             <property name="expand">False</property>
+             <property name="fill">False</property>
            </packing>
          </child>
        </widget>
index 2fb1ecd31727f6d4e2f191f0917c54770d9a17c6..1ac1d68c16da2ae8312631958807dd83b0c475a4 100644 (file)
 # include "xmu.h"
 #endif /* !HAVE_XMU */
 
+#ifdef HAVE_MIT_SAVER_EXTENSION
+#include <X11/extensions/scrnsaver.h>
+#endif /* HAVE_MIT_SAVER_EXTENSION */
+
 #ifdef HAVE_XIDLE_EXTENSION
 # include <X11/extensions/xidle.h>
 #endif /* HAVE_XIDLE_EXTENSION */
 
+#ifdef HAVE_SGI_VC_EXTENSION
+# include <X11/extensions/XSGIvc.h>
+#endif /* HAVE_SGI_VC_EXTENSION */
+
+#ifdef HAVE_READ_DISPLAY_EXTENSION
+# include <X11/extensions/readdisplay.h>
+#endif /* HAVE_READ_DISPLAY_EXTENSION */
+
+#ifdef HAVE_XSHM_EXTENSION
+# include <X11/extensions/XShm.h>
+#endif /* HAVE_XSHM_EXTENSION */
+
+#ifdef HAVE_DPMS_EXTENSION
+# include <X11/extensions/dpms.h>
+#endif /* HAVE_DPMS_EXTENSION */
+
+
+#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
+# include <X11/extensions/Xdbe.h>
+#endif /* HAVE_DOUBLE_BUFFER_EXTENSION */
+
+#ifdef HAVE_XF86VMODE
+# include <X11/extensions/xf86vmode.h>
+#endif /* HAVE_XF86VMODE */
+
+#ifdef HAVE_XF86MISCSETGRABKEYSSTATE
+# include <X11/extensions/xf86misc.h>
+#endif /* HAVE_XF86MISCSETGRABKEYSSTATE */
+
 #ifdef HAVE_XINERAMA
 # include <X11/extensions/Xinerama.h>
 #endif /* HAVE_XINERAMA */
 
+#ifdef HAVE_RANDR
+# include <X11/extensions/Xrandr.h>
+#endif /* HAVE_RANDR */
+
+
 #include "xscreensaver.h"
 #include "version.h"
 #include "yarandom.h"
@@ -827,13 +865,22 @@ initialize_server_extensions (saver_info *si)
   si->using_proc_interrupts = p->use_proc_interrupts;
 
 #ifdef HAVE_XIDLE_EXTENSION
-  server_has_xidle_extension_p = query_xidle_extension (si);
+  {
+    int ev, er;
+    server_has_xidle_extension_p = XidleQueryExtension (si->dpy, &ev, &er);
+  }
 #endif
 #ifdef HAVE_SGI_SAVER_EXTENSION
-  server_has_sgi_saver_extension_p = query_sgi_saver_extension (si);
+  server_has_sgi_saver_extension_p =
+    XScreenSaverQueryExtension (si->dpy,
+                                &si->sgi_saver_ext_event_number,
+                                &si->sgi_saver_ext_error_number);
 #endif
 #ifdef HAVE_MIT_SAVER_EXTENSION
-  server_has_mit_saver_extension_p = query_mit_saver_extension (si);
+  server_has_mit_saver_extension_p =
+    XScreenSaverQueryExtension (si->dpy,
+                                &si->mit_saver_ext_event_number,
+                                &si->mit_saver_ext_error_number);
 #endif
 #ifdef HAVE_PROC_INTERRUPTS
   system_has_proc_interrupts_p = query_proc_interrupts_available (si, &piwhy);
@@ -875,8 +922,23 @@ initialize_server_extensions (saver_info *si)
     }
 
 #ifdef HAVE_RANDR
-  query_randr_extension (si);
-#endif
+  if (XRRQueryExtension (si->dpy,
+                         &si->randr_event_number, &si->randr_error_number))
+    {
+      int nscreens = ScreenCount (si->dpy);  /* number of *real* screens */
+      int i;
+
+      if (p->verbose_p)
+       fprintf (stderr, "%s: selecting RANDR events\n", blurb());
+      for (i = 0; i < nscreens; i++)
+#  ifdef RRScreenChangeNotifyMask                 /* randr.h 1.5, 2002/09/29 */
+        XRRSelectInput (si->dpy, RootWindow (si->dpy, i),
+                        RRScreenChangeNotifyMask);
+#  else  /* !RRScreenChangeNotifyMask */          /* Xrandr.h 1.4, 2001/06/07 */
+        XRRScreenChangeSelectInput (si->dpy, RootWindow (si->dpy, i), True);
+#  endif /* !RRScreenChangeNotifyMask */
+    }
+# endif /* HAVE_RANDR */
 
   if (!system_has_proc_interrupts_p)
     {
@@ -1959,91 +2021,111 @@ analyze_display (saver_info *si)
 {
   int i, j;
   static struct {
-    const char *name; const char *desc; Bool useful_p;
+    const char *name; const char *desc; 
+    Bool useful_p;
+    Status (*version_fn) (Display *, int *majP, int *minP);
   } exts[] = {
 
    { "SCREEN_SAVER", /* underscore */           "SGI Screen-Saver",
 #     ifdef HAVE_SGI_SAVER_EXTENSION
-        True
+        True,  0
 #     else
-        False
+        False, 0
 #     endif
    }, { "SCREEN-SAVER", /* dash */              "SGI Screen-Saver",
 #     ifdef HAVE_SGI_SAVER_EXTENSION
-        True
+        True,  0
 #     else
-        False
+        False, 0
 #     endif
    }, { "MIT-SCREEN-SAVER",                     "MIT Screen-Saver",
 #     ifdef HAVE_MIT_SAVER_EXTENSION
-        True
+        True,  XScreenSaverQueryVersion
 #     else
-        False
+        False, 0
 #     endif
    }, { "XIDLE",                                "XIdle",           
 #     ifdef HAVE_XIDLE_EXTENSION
-        True
+        True,  0
 #     else
-        False
+        False, 0
 #     endif
    }, { "SGI-VIDEO-CONTROL",                    "SGI Video-Control",
 #     ifdef HAVE_SGI_VC_EXTENSION
-        True
+        True,  XSGIvcQueryVersion
 #     else
-        False
+        False, 0
 #     endif
    }, { "READDISPLAY",                          "SGI Read-Display",
 #     ifdef HAVE_READ_DISPLAY_EXTENSION
-        True
+        True,  XReadDisplayQueryVersion
 #     else
-        False
+        False, 0
 #     endif
    }, { "MIT-SHM",                              "Shared Memory",   
 #     ifdef HAVE_XSHM_EXTENSION
-        True
+        True, (Status (*) (Display*,int*,int*)) XShmQueryVersion /* 4 args */
 #     else
-        False
+        False, 0
 #     endif
    }, { "DOUBLE-BUFFER",                        "Double-Buffering",
 #     ifdef HAVE_DOUBLE_BUFFER_EXTENSION
-        True
+        True, XdbeQueryExtension
 #     else
-        False
+        False, 0
 #     endif
    }, { "DPMS",                                 "Power Management",
 #     ifdef HAVE_DPMS_EXTENSION
-        True
+        True,  DPMSGetVersion
 #     else
-        False
+        False, 0
 #     endif
    }, { "GLX",                                  "GLX",             
 #     ifdef HAVE_GL
-        True
+        True,  0
 #     else
-        False
+        False, 0
 #     endif
    }, { "XFree86-VidModeExtension",             "XF86 Video-Mode", 
 #     ifdef HAVE_XF86VMODE
-        True
+        True,  XF86VidModeQueryVersion
+#     else
+        False, 0
+#     endif
+   }, { "XC-VidModeExtension",                  "XC Video-Mode", 
+#     ifdef HAVE_XF86VMODE
+        True,  XF86VidModeQueryVersion
+#     else
+        False, 0
+#     endif
+   }, { "XFree86-MISC",                         "XF86 Misc", 
+#     ifdef HAVE_XF86MISCSETGRABKEYSSTATE
+        True,  XF86MiscQueryVersion
 #     else
-        False
+        False, 0
+#     endif
+   }, { "XC-MISC",                              "XC Misc", 
+#     ifdef HAVE_XF86MISCSETGRABKEYSSTATE
+        True,  XF86MiscQueryVersion
+#     else
+        False, 0
 #     endif
    }, { "XINERAMA",                             "Xinerama",
 #     ifdef HAVE_XINERAMA
-        True
+        True,  XineramaQueryVersion
 #     else
-        False
+        False, 0
 #     endif
    }, { "RANDR",                                "Resize-and-Rotate",
 #     ifdef HAVE_RANDR
-        True
+        True,  XRRQueryVersion
 #     else
-        False
+        False, 0
 #     endif
    }, { "DRI",                                 "DRI",
-        True
+        True,  0
    }, { "Apple-DRI",                            "Apple-DRI (XDarwin)",
-        True
+        True,  0
    },
   };
 
@@ -2057,12 +2139,31 @@ analyze_display (saver_info *si)
     {
       int op = 0, event = 0, error = 0;
       char buf [255];
+      int maj = 0, min = 0;
+      int dummy1, dummy2, dummy3;
       int j;
+
+      /* Most of the extension version functions take 3 args,
+         writing results into args 2 and 3, but some take more.
+         We only ever care about the first two results, but we
+         pass in three extra pointers just in case.
+       */
+      Status (*version_fn_2) (Display*,int*,int*,int*,int*,int*) =
+        (Status (*) (Display*,int*,int*,int*,int*,int*)) exts[i].version_fn;
+
       if (!XQueryExtension (si->dpy, exts[i].name, &op, &event, &error))
         continue;
       sprintf (buf, "%s:   ", blurb());
       j = strlen (buf);
       strcat (buf, exts[i].desc);
+
+      if (!version_fn_2)
+        ;
+      else if (version_fn_2 (si->dpy, &maj, &min, &dummy1, &dummy2, &dummy3))
+        sprintf (buf+strlen(buf), " (%d.%d)", maj, min);
+      else
+        strcat (buf, " (unavailable)");
+
       if (!exts[i].useful_p)
         strcat (buf, " (disabled at compile time)");
       fprintf (stderr, "%s\n", buf);
index 6c7e31749d43516483f9637518874ac465b7abf4..09f5ea9488fa701c5dd020cf2f30cb585389b12c 100644 (file)
@@ -42,18 +42,6 @@ extern Bool restore_real_vroot (saver_info *si);
 extern void disable_builtin_screensaver (saver_info *, Bool unblank_screen_p);
 extern Bool ensure_no_screensaver_running (Display *, Screen *);
 
-#ifdef HAVE_MIT_SAVER_EXTENSION
-extern Bool query_mit_saver_extension (saver_info *);
-#endif
-#ifdef HAVE_SGI_SAVER_EXTENSION
-extern Bool query_sgi_saver_extension (saver_info *);
-#endif
-#ifdef HAVE_XIDLE_EXTENSION
-extern Bool query_xidle_extension (saver_info *);
-#endif
-#ifdef HAVE_RANDR
-extern Bool query_randr_extension (saver_info *);
-#endif
 #ifdef HAVE_PROC_INTERRUPTS
 extern Bool query_proc_interrupts_available (saver_info *, const char **why);
 #endif
index 99d11c2f96a18ae79a65428cbbed2ba36a6adec6..8378e1cf8b0073b3ff172b62fddfb22f47aa8807 100644 (file)
@@ -1,5 +1,5 @@
 /* xset.c --- interacting with server extensions and the builtin screensaver.
- * xscreensaver, Copyright (c) 1991-2005 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1991-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -42,14 +42,6 @@ ERROR!  You must not include vroot.h in this file.
 
 # include <X11/extensions/scrnsaver.h>
 
-Bool
-query_mit_saver_extension (saver_info *si)
-{
-  return XScreenSaverQueryExtension (si->dpy,
-                                    &si->mit_saver_ext_event_number,
-                                    &si->mit_saver_ext_error_number);
-}
-
 static int
 ignore_all_errors_ehandler (Display *dpy, XErrorEvent *error)
 {
@@ -101,14 +93,6 @@ init_mit_saver_extension (saver_info *si)
 
 # include <X11/extensions/XScreenSaver.h>
 
-Bool
-query_sgi_saver_extension (saver_info *si)
-{
-  return XScreenSaverQueryExtension (si->dpy,
-                                    &si->sgi_saver_ext_event_number,
-                                    &si->sgi_saver_ext_error_number);
-}
-
 static void
 init_sgi_saver_extension (saver_info *si)
 {
@@ -137,62 +121,6 @@ init_sgi_saver_extension (saver_info *si)
 
 #endif /* HAVE_SGI_SAVER_EXTENSION */
 
-\f
-/* XIDLE server extension hackery.
- */
-
-#ifdef HAVE_XIDLE_EXTENSION
-
-# include <X11/extensions/xidle.h>
-
-Bool
-query_xidle_extension (saver_info *si)
-{
-  int event_number;
-  int error_number;
-  return XidleQueryExtension (si->dpy, &event_number, &error_number);
-}
-
-#endif /* HAVE_XIDLE_EXTENSION */
-
-
-\f
-/* Resize and Rotate server extension hackery.
- */
-
-#ifdef HAVE_RANDR
-
-# include <X11/extensions/Xrandr.h>
-
-Bool
-query_randr_extension (saver_info *si)
-{
-  saver_preferences *p = &si->prefs;
-  Bool ok = XRRQueryExtension (si->dpy,
-                               &si->randr_event_number,
-                               &si->randr_error_number);
-
-  if (ok)
-    {
-      int nscreens = ScreenCount (si->dpy);  /* number of *real* screens */
-      int i;
-
-      if (p->verbose_p)
-       fprintf (stderr, "%s: selecting RANDR events\n", blurb());
-      for (i = 0; i < nscreens; i++)
-# ifdef RRScreenChangeNotifyMask                 /* randr.h 1.5, 2002/09/29 */
-        XRRSelectInput (si->dpy, RootWindow (si->dpy, i),
-                        RRScreenChangeNotifyMask);
-# else  /* !RRScreenChangeNotifyMask */          /* Xrandr.h 1.4, 2001/06/07 */
-        XRRScreenChangeSelectInput (si->dpy, RootWindow (si->dpy, i), True);
-# endif /* !RRScreenChangeNotifyMask */
-    }
-
-  return ok;
-}
-
-#endif /* HAVE_RANDR */
-
 
 \f
 /* Figuring out what the appropriate XSetScreenSaver() parameters are
index 898853ca5d598fd96049d027cee70f546a8a336d..6c3954a16674505ad0284b0cdbb9d6d35a25f201 100644 (file)
@@ -92,7 +92,7 @@ SRCS          = attraction.c blitspin.c bouboule.c braid.c bubbles.c \
                  maze.c moire.c noseguy.c pedal.c penrose.c pyro.c qix.c \
                  rocks.c rorschach.c screenhack.c sierpinski.c slidescreen.c \
                  slip.c sphere.c spiral.c strange.c swirl.c xlockmore.c \
-                 goop.c starfish.c munch.c fadeplot.c \
+                 fps.c goop.c starfish.c munch.c fadeplot.c \
                  rd-bomb.c coral.c mountain.c triangle.c lissie.c worm.c \
                  rotor.c ant.c xjack.c xlyap.c jigsaw.c xscreensaver-sgigl.c \
                  cynosure.c moire2.c flow.c epicycle.c interference.c \
@@ -131,7 +131,7 @@ OBJS                = attraction.o blitspin.o bouboule.o braid.o bubbles.o \
                  maze.o moire.o noseguy.o pedal.o penrose.o pyro.o qix.o \
                  rocks.o rorschach.o screenhack.o sierpinski.o slidescreen.o \
                  slip.o sphere.o spiral.o strange.o swirl.o xlockmore.o \
-                 goop.o starfish.o munch.o fadeplot.o \
+                 fps.o goop.o starfish.o munch.o fadeplot.o \
                  rd-bomb.o coral.o mountain.o triangle.o lissie.o worm.o \
                  rotor.o ant.o xjack.o xlyap.o jigsaw.o xscreensaver-sgigl.o \
                  cynosure.o moire2.o flow.o epicycle.o interference.o \
@@ -165,7 +165,7 @@ NEXES               = attraction blitspin bouboule braid bubbles decayscreen deco \
                  interference truchet bsod crystal discrete distort kumppa \
                  demon loop t3d penetrate deluxe compass squiral xflame \
                  wander spotlight critical phosphor xmatrix petri shadebobs \
-                 xsublim ccurve blaster bumps ripples xspirograph \
+                 ccurve blaster bumps ripples xspirograph \
                  nerverot xrayswarm hyperball zoom whirlwindwarp rotzoomer \
                  whirlygig speedmine vermiculate twang apollonian euler2d \
                  juggle polyominoes thornbird  fluidballs anemone halftone \
@@ -179,7 +179,7 @@ SEXES               = sonar
 JPEG_EXES      = webcollage-helper
 EXES           = $(NEXES) $(SEXES)
 
-HACK_OBJS_1    = $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
+HACK_OBJS_1    = fps.o $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
                  $(UTILS_BIN)/usleep.o $(UTILS_BIN)/yarandom.o @XMU_OBJS@
 HACK_OBJS      = screenhack.o $(HACK_OBJS_1)
 XLOCK_OBJS     = screenhack.o xlockmore.o $(COLOR_OBJS) $(HACK_OBJS_1)
@@ -188,9 +188,10 @@ GRAB_OBJS  = $(UTILS_BIN)/grabclient.o
 XSHM_OBJS      = $(UTILS_BIN)/xshm.o
 XDBE_OBJS      = $(UTILS_BIN)/xdbe.o
 
-HDRS           = screenhack.h screenhackI.h xlockmore.h xlockmoreI.h \
-                 automata.h bubbles.h bumps.h xpm-pixmap.h apple2.h \
-                 analogtv.h pacman.h pacman_ai.h pacman_level.h asm6502.h
+HDRS           = screenhack.h screenhackI.h fps.h fpsI.h xlockmore.h \
+                 xlockmoreI.h automata.h bubbles.h xpm-pixmap.h \
+                 apple2.h analogtv.h pacman.h pacman_ai.h pacman_level.h \
+                 asm6502.h
 MEN            = anemone.man apollonian.man attraction.man \
                  blaster.man blitspin.man bouboule.man braid.man bsod.man \
                  bubbles.man bumps.man ccurve.man compass.man coral.man \
@@ -225,7 +226,7 @@ MEN         = anemone.man apollonian.man attraction.man \
                  lcdscrub.man
 STAR           = *
 EXTRAS         = README Makefile.in xml2man.pl m6502.sh .gdbinit \
-                 euler2d.tex \
+                 euler2d.tex check-configs.pl munge-ad.pl \
                  config/README \
                  config/$(STAR).xml \
                  config/$(STAR).dtd \
@@ -447,27 +448,13 @@ check_men:
           done ;                                                       \
         fi
 
-check_xml:
-       @badxml="" ;                                                    \
-        for exe in $(EXES) $(SCRIPTS); do                              \
-          if ! [ -f $(srcdir)/config/$$exe.xml                         \
-                 -o "$$exe" = webcollage-helper                        \
-                 -o "$$exe" = xsublim                                  \
-                 -o "$$exe" = ljlatest ]; then                         \
-            badxml="$$badxml $$exe" ;                                  \
-          fi ;                                                         \
-        done ;                                                         \
-        if [ -n "$$badxml" ]; then                                     \
-          echo "" ;                                                    \
-          echo "Warning: The following programs have no configurators:" ; \
-          echo "" ;                                                    \
-          for m in $$badxml ; do                                       \
-            echo "    $$m" ;                                           \
-          done ;                                                       \
-          echo "" ;                                                    \
-        fi
-
+validate_xml:
+       @echo "Validating XML..." ; \
+       cd $(srcdir) ; ./check-configs.pl $(EXES)
 
+munge_ad_file:
+       @echo "Updating hack list in XScreenSaver.ad.in..." ; \
+       cd $(srcdir) ; ./munge-ad.pl ../driver/XScreenSaver.ad.in
 
 
 # Rules for generating the VMS makefiles on Unix, so that it doesn't have to
@@ -518,7 +505,7 @@ $(srcdir)/../setup.com: Makefile.in
 distdepend:: compile_axp.com compile_decc.com
 distdepend:: link_axp.com link_decc.com
 distdepend:: $(srcdir)/../setup.com
-distdepend:: check_men check_xml
+distdepend:: check_men validate_xml munge_ad_file
 
 
 # Rules for noticing when the objects from the utils directory are out of
@@ -1009,6 +996,7 @@ webcollage-helper: webcollage-helper.o
 # DO NOT DELETE: updated by make distdepend
 
 abstractile.o: ../config.h
+abstractile.o: $(srcdir)/fps.h
 abstractile.o: $(srcdir)/screenhackI.h
 abstractile.o: $(srcdir)/screenhack.h
 abstractile.o: $(UTILS_SRC)/colors.h
@@ -1027,6 +1015,7 @@ analogtv.o: $(UTILS_SRC)/utils.h
 analogtv.o: $(UTILS_SRC)/xshm.h
 analogtv.o: $(UTILS_SRC)/yarandom.h
 anemone.o: ../config.h
+anemone.o: $(srcdir)/fps.h
 anemone.o: $(srcdir)/screenhackI.h
 anemone.o: $(srcdir)/screenhack.h
 anemone.o: $(UTILS_SRC)/colors.h
@@ -1038,6 +1027,7 @@ anemone.o: $(UTILS_SRC)/visual.h
 anemone.o: $(UTILS_SRC)/xdbe.h
 anemone.o: $(UTILS_SRC)/yarandom.h
 anemotaxis.o: ../config.h
+anemotaxis.o: $(srcdir)/fps.h
 anemotaxis.o: $(srcdir)/screenhackI.h
 anemotaxis.o: $(srcdir)/screenhack.h
 anemotaxis.o: $(UTILS_SRC)/colors.h
@@ -1050,6 +1040,7 @@ anemotaxis.o: $(UTILS_SRC)/xdbe.h
 anemotaxis.o: $(UTILS_SRC)/yarandom.h
 ant.o: $(srcdir)/automata.h
 ant.o: ../config.h
+ant.o: $(srcdir)/fps.h
 ant.o: $(srcdir)/screenhackI.h
 ant.o: $(UTILS_SRC)/colors.h
 ant.o: $(UTILS_SRC)/erase.h
@@ -1063,6 +1054,7 @@ ant.o: $(UTILS_SRC)/yarandom.h
 ant.o: $(srcdir)/xlockmoreI.h
 ant.o: $(srcdir)/xlockmore.h
 apollonian.o: ../config.h
+apollonian.o: $(srcdir)/fps.h
 apollonian.o: $(srcdir)/screenhackI.h
 apollonian.o: $(UTILS_SRC)/colors.h
 apollonian.o: $(UTILS_SRC)/erase.h
@@ -1078,6 +1070,7 @@ apollonian.o: $(srcdir)/xlockmore.h
 apple2-main.o: $(srcdir)/analogtv.h
 apple2-main.o: $(srcdir)/apple2.h
 apple2-main.o: ../config.h
+apple2-main.o: $(srcdir)/fps.h
 apple2-main.o: $(srcdir)/screenhackI.h
 apple2-main.o: $(srcdir)/screenhack.h
 apple2-main.o: $(UTILS_SRC)/colors.h
@@ -1091,6 +1084,7 @@ apple2-main.o: $(UTILS_SRC)/yarandom.h
 apple2.o: $(srcdir)/analogtv.h
 apple2.o: $(srcdir)/apple2.h
 apple2.o: ../config.h
+apple2.o: $(srcdir)/fps.h
 apple2.o: $(srcdir)/images/apple2font.xbm
 apple2.o: $(srcdir)/screenhackI.h
 apple2.o: $(UTILS_SRC)/colors.h
@@ -1103,6 +1097,7 @@ apple2.o: $(UTILS_SRC)/xshm.h
 apple2.o: $(UTILS_SRC)/yarandom.h
 asm6502.o: $(srcdir)/asm6502.h
 attraction.o: ../config.h
+attraction.o: $(srcdir)/fps.h
 attraction.o: $(srcdir)/screenhackI.h
 attraction.o: $(srcdir)/screenhack.h
 attraction.o: $(UTILS_SRC)/colors.h
@@ -1114,6 +1109,7 @@ attraction.o: $(UTILS_SRC)/usleep.h
 attraction.o: $(UTILS_SRC)/visual.h
 attraction.o: $(UTILS_SRC)/yarandom.h
 barcode.o: ../config.h
+barcode.o: $(srcdir)/fps.h
 barcode.o: $(srcdir)/screenhackI.h
 barcode.o: $(srcdir)/screenhack.h
 barcode.o: $(UTILS_SRC)/colors.h
@@ -1124,6 +1120,7 @@ barcode.o: $(UTILS_SRC)/usleep.h
 barcode.o: $(UTILS_SRC)/visual.h
 barcode.o: $(UTILS_SRC)/yarandom.h
 blaster.o: ../config.h
+blaster.o: $(srcdir)/fps.h
 blaster.o: $(srcdir)/screenhackI.h
 blaster.o: $(srcdir)/screenhack.h
 blaster.o: $(UTILS_SRC)/colors.h
@@ -1134,6 +1131,7 @@ blaster.o: $(UTILS_SRC)/usleep.h
 blaster.o: $(UTILS_SRC)/visual.h
 blaster.o: $(UTILS_SRC)/yarandom.h
 blitspin.o: ../config.h
+blitspin.o: $(srcdir)/fps.h
 blitspin.o: $(srcdir)/images/som.xbm
 blitspin.o: $(srcdir)/screenhackI.h
 blitspin.o: $(srcdir)/screenhack.h
@@ -1146,6 +1144,7 @@ blitspin.o: $(UTILS_SRC)/visual.h
 blitspin.o: $(UTILS_SRC)/yarandom.h
 blitspin.o: $(srcdir)/xpm-pixmap.h
 bouboule.o: ../config.h
+bouboule.o: $(srcdir)/fps.h
 bouboule.o: $(srcdir)/screenhackI.h
 bouboule.o: $(UTILS_SRC)/colors.h
 bouboule.o: $(UTILS_SRC)/grabscreen.h
@@ -1158,6 +1157,7 @@ bouboule.o: $(UTILS_SRC)/yarandom.h
 bouboule.o: $(srcdir)/xlockmoreI.h
 bouboule.o: $(srcdir)/xlockmore.h
 boxfit.o: ../config.h
+boxfit.o: $(srcdir)/fps.h
 boxfit.o: $(srcdir)/screenhackI.h
 boxfit.o: $(srcdir)/screenhack.h
 boxfit.o: $(UTILS_SRC)/colors.h
@@ -1169,6 +1169,7 @@ boxfit.o: $(UTILS_SRC)/visual.h
 boxfit.o: $(UTILS_SRC)/yarandom.h
 boxfit.o: $(srcdir)/xpm-pixmap.h
 braid.o: ../config.h
+braid.o: $(srcdir)/fps.h
 braid.o: $(srcdir)/screenhackI.h
 braid.o: $(UTILS_SRC)/colors.h
 braid.o: $(UTILS_SRC)/erase.h
@@ -1184,6 +1185,7 @@ braid.o: $(srcdir)/xlockmore.h
 bsod.o: $(srcdir)/analogtv.h
 bsod.o: $(srcdir)/apple2.h
 bsod.o: ../config.h
+bsod.o: $(srcdir)/fps.h
 bsod.o: $(srcdir)/images/amiga.xpm
 bsod.o: $(srcdir)/images/atari.xbm
 bsod.o: $(srcdir)/images/atm.xbm
@@ -1252,6 +1254,7 @@ bubbles-default.o: $(srcdir)/images/bubbles/jade9.xpm
 bubbles-default.o: $(UTILS_SRC)/yarandom.h
 bubbles.o: $(srcdir)/bubbles.h
 bubbles.o: ../config.h
+bubbles.o: $(srcdir)/fps.h
 bubbles.o: $(srcdir)/screenhackI.h
 bubbles.o: $(srcdir)/screenhack.h
 bubbles.o: $(UTILS_SRC)/colors.h
@@ -1262,8 +1265,8 @@ bubbles.o: $(UTILS_SRC)/usleep.h
 bubbles.o: $(UTILS_SRC)/visual.h
 bubbles.o: $(UTILS_SRC)/yarandom.h
 bubbles.o: $(srcdir)/xpm-pixmap.h
-bumps.o: $(srcdir)/bumps.h
 bumps.o: ../config.h
+bumps.o: $(srcdir)/fps.h
 bumps.o: $(srcdir)/screenhackI.h
 bumps.o: $(srcdir)/screenhack.h
 bumps.o: $(UTILS_SRC)/colors.h
@@ -1274,6 +1277,7 @@ bumps.o: $(UTILS_SRC)/usleep.h
 bumps.o: $(UTILS_SRC)/visual.h
 bumps.o: $(UTILS_SRC)/yarandom.h
 ccurve.o: ../config.h
+ccurve.o: $(srcdir)/fps.h
 ccurve.o: $(srcdir)/screenhackI.h
 ccurve.o: $(srcdir)/screenhack.h
 ccurve.o: $(UTILS_SRC)/colors.h
@@ -1285,6 +1289,7 @@ ccurve.o: $(UTILS_SRC)/usleep.h
 ccurve.o: $(UTILS_SRC)/visual.h
 ccurve.o: $(UTILS_SRC)/yarandom.h
 celtic.o: ../config.h
+celtic.o: $(srcdir)/fps.h
 celtic.o: $(srcdir)/screenhackI.h
 celtic.o: $(srcdir)/screenhack.h
 celtic.o: $(UTILS_SRC)/colors.h
@@ -1296,6 +1301,7 @@ celtic.o: $(UTILS_SRC)/usleep.h
 celtic.o: $(UTILS_SRC)/visual.h
 celtic.o: $(UTILS_SRC)/yarandom.h
 cloudlife.o: ../config.h
+cloudlife.o: $(srcdir)/fps.h
 cloudlife.o: $(srcdir)/screenhackI.h
 cloudlife.o: $(srcdir)/screenhack.h
 cloudlife.o: $(UTILS_SRC)/colors.h
@@ -1306,6 +1312,7 @@ cloudlife.o: $(UTILS_SRC)/usleep.h
 cloudlife.o: $(UTILS_SRC)/visual.h
 cloudlife.o: $(UTILS_SRC)/yarandom.h
 compass.o: ../config.h
+compass.o: $(srcdir)/fps.h
 compass.o: $(srcdir)/screenhackI.h
 compass.o: $(srcdir)/screenhack.h
 compass.o: $(UTILS_SRC)/colors.h
@@ -1317,6 +1324,7 @@ compass.o: $(UTILS_SRC)/visual.h
 compass.o: $(UTILS_SRC)/xdbe.h
 compass.o: $(UTILS_SRC)/yarandom.h
 coral.o: ../config.h
+coral.o: $(srcdir)/fps.h
 coral.o: $(srcdir)/screenhackI.h
 coral.o: $(srcdir)/screenhack.h
 coral.o: $(UTILS_SRC)/colors.h
@@ -1328,6 +1336,7 @@ coral.o: $(UTILS_SRC)/usleep.h
 coral.o: $(UTILS_SRC)/visual.h
 coral.o: $(UTILS_SRC)/yarandom.h
 critical.o: ../config.h
+critical.o: $(srcdir)/fps.h
 critical.o: $(srcdir)/screenhackI.h
 critical.o: $(srcdir)/screenhack.h
 critical.o: $(UTILS_SRC)/colors.h
@@ -1339,6 +1348,7 @@ critical.o: $(UTILS_SRC)/usleep.h
 critical.o: $(UTILS_SRC)/visual.h
 critical.o: $(UTILS_SRC)/yarandom.h
 crystal.o: ../config.h
+crystal.o: $(srcdir)/fps.h
 crystal.o: $(srcdir)/screenhackI.h
 crystal.o: $(UTILS_SRC)/colors.h
 crystal.o: $(UTILS_SRC)/grabscreen.h
@@ -1351,6 +1361,7 @@ crystal.o: $(UTILS_SRC)/yarandom.h
 crystal.o: $(srcdir)/xlockmoreI.h
 crystal.o: $(srcdir)/xlockmore.h
 cwaves.o: ../config.h
+cwaves.o: $(srcdir)/fps.h
 cwaves.o: $(srcdir)/screenhackI.h
 cwaves.o: $(srcdir)/screenhack.h
 cwaves.o: $(UTILS_SRC)/colors.h
@@ -1362,6 +1373,7 @@ cwaves.o: $(UTILS_SRC)/visual.h
 cwaves.o: $(UTILS_SRC)/yarandom.h
 cwaves.o: $(srcdir)/xpm-pixmap.h
 cynosure.o: ../config.h
+cynosure.o: $(srcdir)/fps.h
 cynosure.o: $(srcdir)/screenhackI.h
 cynosure.o: $(srcdir)/screenhack.h
 cynosure.o: $(UTILS_SRC)/colors.h
@@ -1372,6 +1384,7 @@ cynosure.o: $(UTILS_SRC)/usleep.h
 cynosure.o: $(UTILS_SRC)/visual.h
 cynosure.o: $(UTILS_SRC)/yarandom.h
 decayscreen.o: ../config.h
+decayscreen.o: $(srcdir)/fps.h
 decayscreen.o: $(srcdir)/screenhackI.h
 decayscreen.o: $(srcdir)/screenhack.h
 decayscreen.o: $(UTILS_SRC)/colors.h
@@ -1382,6 +1395,7 @@ decayscreen.o: $(UTILS_SRC)/usleep.h
 decayscreen.o: $(UTILS_SRC)/visual.h
 decayscreen.o: $(UTILS_SRC)/yarandom.h
 deco.o: ../config.h
+deco.o: $(srcdir)/fps.h
 deco.o: $(srcdir)/screenhackI.h
 deco.o: $(srcdir)/screenhack.h
 deco.o: $(UTILS_SRC)/colors.h
@@ -1392,6 +1406,7 @@ deco.o: $(UTILS_SRC)/usleep.h
 deco.o: $(UTILS_SRC)/visual.h
 deco.o: $(UTILS_SRC)/yarandom.h
 deluxe.o: ../config.h
+deluxe.o: $(srcdir)/fps.h
 deluxe.o: $(srcdir)/screenhackI.h
 deluxe.o: $(srcdir)/screenhack.h
 deluxe.o: $(UTILS_SRC)/alpha.h
@@ -1405,6 +1420,7 @@ deluxe.o: $(UTILS_SRC)/xdbe.h
 deluxe.o: $(UTILS_SRC)/yarandom.h
 demon.o: $(srcdir)/automata.h
 demon.o: ../config.h
+demon.o: $(srcdir)/fps.h
 demon.o: $(srcdir)/screenhackI.h
 demon.o: $(UTILS_SRC)/colors.h
 demon.o: $(UTILS_SRC)/grabscreen.h
@@ -1417,6 +1433,7 @@ demon.o: $(UTILS_SRC)/yarandom.h
 demon.o: $(srcdir)/xlockmoreI.h
 demon.o: $(srcdir)/xlockmore.h
 discrete.o: ../config.h
+discrete.o: $(srcdir)/fps.h
 discrete.o: $(srcdir)/screenhackI.h
 discrete.o: $(UTILS_SRC)/colors.h
 discrete.o: $(UTILS_SRC)/erase.h
@@ -1430,6 +1447,7 @@ discrete.o: $(UTILS_SRC)/yarandom.h
 discrete.o: $(srcdir)/xlockmoreI.h
 discrete.o: $(srcdir)/xlockmore.h
 distort.o: ../config.h
+distort.o: $(srcdir)/fps.h
 distort.o: $(srcdir)/screenhackI.h
 distort.o: $(srcdir)/screenhack.h
 distort.o: $(UTILS_SRC)/colors.h
@@ -1440,6 +1458,7 @@ distort.o: $(UTILS_SRC)/usleep.h
 distort.o: $(UTILS_SRC)/visual.h
 distort.o: $(UTILS_SRC)/yarandom.h
 drift.o: ../config.h
+drift.o: $(srcdir)/fps.h
 drift.o: $(srcdir)/screenhackI.h
 drift.o: $(UTILS_SRC)/colors.h
 drift.o: $(UTILS_SRC)/erase.h
@@ -1453,6 +1472,7 @@ drift.o: $(UTILS_SRC)/yarandom.h
 drift.o: $(srcdir)/xlockmoreI.h
 drift.o: $(srcdir)/xlockmore.h
 epicycle.o: ../config.h
+epicycle.o: $(srcdir)/fps.h
 epicycle.o: $(srcdir)/screenhackI.h
 epicycle.o: $(srcdir)/screenhack.h
 epicycle.o: $(UTILS_SRC)/colors.h
@@ -1464,6 +1484,7 @@ epicycle.o: $(UTILS_SRC)/usleep.h
 epicycle.o: $(UTILS_SRC)/visual.h
 epicycle.o: $(UTILS_SRC)/yarandom.h
 eruption.o: ../config.h
+eruption.o: $(srcdir)/fps.h
 eruption.o: $(srcdir)/screenhackI.h
 eruption.o: $(srcdir)/screenhack.h
 eruption.o: $(UTILS_SRC)/colors.h
@@ -1474,6 +1495,7 @@ eruption.o: $(UTILS_SRC)/usleep.h
 eruption.o: $(UTILS_SRC)/visual.h
 eruption.o: $(UTILS_SRC)/yarandom.h
 euler2d.o: ../config.h
+euler2d.o: $(srcdir)/fps.h
 euler2d.o: $(srcdir)/screenhackI.h
 euler2d.o: $(UTILS_SRC)/colors.h
 euler2d.o: $(UTILS_SRC)/grabscreen.h
@@ -1486,6 +1508,7 @@ euler2d.o: $(UTILS_SRC)/yarandom.h
 euler2d.o: $(srcdir)/xlockmoreI.h
 euler2d.o: $(srcdir)/xlockmore.h
 fadeplot.o: ../config.h
+fadeplot.o: $(srcdir)/fps.h
 fadeplot.o: $(srcdir)/screenhackI.h
 fadeplot.o: $(UTILS_SRC)/colors.h
 fadeplot.o: $(UTILS_SRC)/grabscreen.h
@@ -1498,6 +1521,7 @@ fadeplot.o: $(UTILS_SRC)/yarandom.h
 fadeplot.o: $(srcdir)/xlockmoreI.h
 fadeplot.o: $(srcdir)/xlockmore.h
 fiberlamp.o: ../config.h
+fiberlamp.o: $(srcdir)/fps.h
 fiberlamp.o: $(srcdir)/screenhackI.h
 fiberlamp.o: $(UTILS_SRC)/colors.h
 fiberlamp.o: $(UTILS_SRC)/grabscreen.h
@@ -1510,6 +1534,7 @@ fiberlamp.o: $(UTILS_SRC)/yarandom.h
 fiberlamp.o: $(srcdir)/xlockmoreI.h
 fiberlamp.o: $(srcdir)/xlockmore.h
 fireworkx.o: ../config.h
+fireworkx.o: $(srcdir)/fps.h
 fireworkx.o: $(srcdir)/screenhackI.h
 fireworkx.o: $(srcdir)/screenhack.h
 fireworkx.o: $(UTILS_SRC)/colors.h
@@ -1520,6 +1545,7 @@ fireworkx.o: $(UTILS_SRC)/usleep.h
 fireworkx.o: $(UTILS_SRC)/visual.h
 fireworkx.o: $(UTILS_SRC)/yarandom.h
 flag.o: ../config.h
+flag.o: $(srcdir)/fps.h
 flag.o: $(srcdir)/images/bob.xbm
 flag.o: $(srcdir)/screenhackI.h
 flag.o: $(UTILS_SRC)/colors.h
@@ -1534,6 +1560,7 @@ flag.o: $(srcdir)/xlockmoreI.h
 flag.o: $(srcdir)/xlockmore.h
 flag.o: $(srcdir)/xpm-pixmap.h
 flame.o: ../config.h
+flame.o: $(srcdir)/fps.h
 flame.o: $(srcdir)/screenhackI.h
 flame.o: $(srcdir)/screenhack.h
 flame.o: $(UTILS_SRC)/colors.h
@@ -1544,6 +1571,7 @@ flame.o: $(UTILS_SRC)/usleep.h
 flame.o: $(UTILS_SRC)/visual.h
 flame.o: $(UTILS_SRC)/yarandom.h
 flow.o: ../config.h
+flow.o: $(srcdir)/fps.h
 flow.o: $(srcdir)/screenhackI.h
 flow.o: $(UTILS_SRC)/colors.h
 flow.o: $(UTILS_SRC)/grabscreen.h
@@ -1556,6 +1584,7 @@ flow.o: $(UTILS_SRC)/yarandom.h
 flow.o: $(srcdir)/xlockmoreI.h
 flow.o: $(srcdir)/xlockmore.h
 fluidballs.o: ../config.h
+fluidballs.o: $(srcdir)/fps.h
 fluidballs.o: $(srcdir)/screenhackI.h
 fluidballs.o: $(srcdir)/screenhack.h
 fluidballs.o: $(UTILS_SRC)/colors.h
@@ -1567,6 +1596,7 @@ fluidballs.o: $(UTILS_SRC)/visual.h
 fluidballs.o: $(UTILS_SRC)/xdbe.h
 fluidballs.o: $(UTILS_SRC)/yarandom.h
 fontglide.o: ../config.h
+fontglide.o: $(srcdir)/fps.h
 fontglide.o: $(srcdir)/screenhackI.h
 fontglide.o: $(srcdir)/screenhack.h
 fontglide.o: $(UTILS_SRC)/colors.h
@@ -1578,6 +1608,7 @@ fontglide.o: $(UTILS_SRC)/visual.h
 fontglide.o: $(UTILS_SRC)/xdbe.h
 fontglide.o: $(UTILS_SRC)/yarandom.h
 forest.o: ../config.h
+forest.o: $(srcdir)/fps.h
 forest.o: $(srcdir)/screenhackI.h
 forest.o: $(UTILS_SRC)/colors.h
 forest.o: $(UTILS_SRC)/grabscreen.h
@@ -1589,7 +1620,19 @@ forest.o: $(UTILS_SRC)/xshm.h
 forest.o: $(UTILS_SRC)/yarandom.h
 forest.o: $(srcdir)/xlockmoreI.h
 forest.o: $(srcdir)/xlockmore.h
+fps.o: ../config.h
+fps.o: $(srcdir)/fpsI.h
+fps.o: $(srcdir)/fps.h
+fps.o: $(srcdir)/screenhackI.h
+fps.o: $(UTILS_SRC)/colors.h
+fps.o: $(UTILS_SRC)/grabscreen.h
+fps.o: $(UTILS_SRC)/hsv.h
+fps.o: $(UTILS_SRC)/resources.h
+fps.o: $(UTILS_SRC)/usleep.h
+fps.o: $(UTILS_SRC)/visual.h
+fps.o: $(UTILS_SRC)/yarandom.h
 fuzzyflakes.o: ../config.h
+fuzzyflakes.o: $(srcdir)/fps.h
 fuzzyflakes.o: $(srcdir)/screenhackI.h
 fuzzyflakes.o: $(srcdir)/screenhack.h
 fuzzyflakes.o: $(UTILS_SRC)/colors.h
@@ -1600,6 +1643,7 @@ fuzzyflakes.o: $(UTILS_SRC)/usleep.h
 fuzzyflakes.o: $(UTILS_SRC)/visual.h
 fuzzyflakes.o: $(UTILS_SRC)/yarandom.h
 galaxy.o: ../config.h
+galaxy.o: $(srcdir)/fps.h
 galaxy.o: $(srcdir)/screenhackI.h
 galaxy.o: $(UTILS_SRC)/colors.h
 galaxy.o: $(UTILS_SRC)/grabscreen.h
@@ -1612,6 +1656,7 @@ galaxy.o: $(UTILS_SRC)/yarandom.h
 galaxy.o: $(srcdir)/xlockmoreI.h
 galaxy.o: $(srcdir)/xlockmore.h
 goop.o: ../config.h
+goop.o: $(srcdir)/fps.h
 goop.o: $(srcdir)/screenhackI.h
 goop.o: $(srcdir)/screenhack.h
 goop.o: $(UTILS_SRC)/alpha.h
@@ -1624,6 +1669,7 @@ goop.o: $(UTILS_SRC)/usleep.h
 goop.o: $(UTILS_SRC)/visual.h
 goop.o: $(UTILS_SRC)/yarandom.h
 grav.o: ../config.h
+grav.o: $(srcdir)/fps.h
 grav.o: $(srcdir)/screenhackI.h
 grav.o: $(UTILS_SRC)/colors.h
 grav.o: $(UTILS_SRC)/grabscreen.h
@@ -1636,6 +1682,7 @@ grav.o: $(UTILS_SRC)/yarandom.h
 grav.o: $(srcdir)/xlockmoreI.h
 grav.o: $(srcdir)/xlockmore.h
 greynetic.o: ../config.h
+greynetic.o: $(srcdir)/fps.h
 greynetic.o: $(srcdir)/screenhackI.h
 greynetic.o: $(srcdir)/screenhack.h
 greynetic.o: $(UTILS_SRC)/colors.h
@@ -1646,6 +1693,7 @@ greynetic.o: $(UTILS_SRC)/usleep.h
 greynetic.o: $(UTILS_SRC)/visual.h
 greynetic.o: $(UTILS_SRC)/yarandom.h
 halftone.o: ../config.h
+halftone.o: $(srcdir)/fps.h
 halftone.o: $(srcdir)/screenhackI.h
 halftone.o: $(srcdir)/screenhack.h
 halftone.o: $(UTILS_SRC)/colors.h
@@ -1656,6 +1704,7 @@ halftone.o: $(UTILS_SRC)/usleep.h
 halftone.o: $(UTILS_SRC)/visual.h
 halftone.o: $(UTILS_SRC)/yarandom.h
 halo.o: ../config.h
+halo.o: $(srcdir)/fps.h
 halo.o: $(srcdir)/screenhackI.h
 halo.o: $(srcdir)/screenhack.h
 halo.o: $(UTILS_SRC)/colors.h
@@ -1666,6 +1715,7 @@ halo.o: $(UTILS_SRC)/usleep.h
 halo.o: $(UTILS_SRC)/visual.h
 halo.o: $(UTILS_SRC)/yarandom.h
 helix.o: ../config.h
+helix.o: $(srcdir)/fps.h
 helix.o: $(srcdir)/screenhackI.h
 helix.o: $(srcdir)/screenhack.h
 helix.o: $(UTILS_SRC)/colors.h
@@ -1677,6 +1727,7 @@ helix.o: $(UTILS_SRC)/usleep.h
 helix.o: $(UTILS_SRC)/visual.h
 helix.o: $(UTILS_SRC)/yarandom.h
 hopalong.o: ../config.h
+hopalong.o: $(srcdir)/fps.h
 hopalong.o: $(srcdir)/screenhackI.h
 hopalong.o: $(UTILS_SRC)/colors.h
 hopalong.o: $(UTILS_SRC)/erase.h
@@ -1690,6 +1741,7 @@ hopalong.o: $(UTILS_SRC)/yarandom.h
 hopalong.o: $(srcdir)/xlockmoreI.h
 hopalong.o: $(srcdir)/xlockmore.h
 hyperball.o: ../config.h
+hyperball.o: $(srcdir)/fps.h
 hyperball.o: $(srcdir)/screenhackI.h
 hyperball.o: $(srcdir)/screenhack.h
 hyperball.o: $(UTILS_SRC)/colors.h
@@ -1700,6 +1752,7 @@ hyperball.o: $(UTILS_SRC)/usleep.h
 hyperball.o: $(UTILS_SRC)/visual.h
 hyperball.o: $(UTILS_SRC)/yarandom.h
 hypercube.o: ../config.h
+hypercube.o: $(srcdir)/fps.h
 hypercube.o: $(srcdir)/screenhackI.h
 hypercube.o: $(srcdir)/screenhack.h
 hypercube.o: $(UTILS_SRC)/colors.h
@@ -1710,6 +1763,7 @@ hypercube.o: $(UTILS_SRC)/usleep.h
 hypercube.o: $(UTILS_SRC)/visual.h
 hypercube.o: $(UTILS_SRC)/yarandom.h
 ifs.o: ../config.h
+ifs.o: $(srcdir)/fps.h
 ifs.o: $(srcdir)/screenhackI.h
 ifs.o: $(srcdir)/screenhack.h
 ifs.o: $(UTILS_SRC)/colors.h
@@ -1720,6 +1774,7 @@ ifs.o: $(UTILS_SRC)/usleep.h
 ifs.o: $(UTILS_SRC)/visual.h
 ifs.o: $(UTILS_SRC)/yarandom.h
 imsmap.o: ../config.h
+imsmap.o: $(srcdir)/fps.h
 imsmap.o: $(srcdir)/screenhackI.h
 imsmap.o: $(srcdir)/screenhack.h
 imsmap.o: $(UTILS_SRC)/colors.h
@@ -1730,6 +1785,7 @@ imsmap.o: $(UTILS_SRC)/usleep.h
 imsmap.o: $(UTILS_SRC)/visual.h
 imsmap.o: $(UTILS_SRC)/yarandom.h
 interaggregate.o: ../config.h
+interaggregate.o: $(srcdir)/fps.h
 interaggregate.o: $(srcdir)/screenhackI.h
 interaggregate.o: $(srcdir)/screenhack.h
 interaggregate.o: $(UTILS_SRC)/colors.h
@@ -1740,6 +1796,7 @@ interaggregate.o: $(UTILS_SRC)/usleep.h
 interaggregate.o: $(UTILS_SRC)/visual.h
 interaggregate.o: $(UTILS_SRC)/yarandom.h
 interference.o: ../config.h
+interference.o: $(srcdir)/fps.h
 interference.o: $(srcdir)/screenhackI.h
 interference.o: $(srcdir)/screenhack.h
 interference.o: $(UTILS_SRC)/colors.h
@@ -1751,6 +1808,7 @@ interference.o: $(UTILS_SRC)/visual.h
 interference.o: $(UTILS_SRC)/xdbe.h
 interference.o: $(UTILS_SRC)/yarandom.h
 intermomentary.o: ../config.h
+intermomentary.o: $(srcdir)/fps.h
 intermomentary.o: $(srcdir)/screenhackI.h
 intermomentary.o: $(srcdir)/screenhack.h
 intermomentary.o: $(UTILS_SRC)/colors.h
@@ -1761,6 +1819,7 @@ intermomentary.o: $(UTILS_SRC)/usleep.h
 intermomentary.o: $(UTILS_SRC)/visual.h
 intermomentary.o: $(UTILS_SRC)/yarandom.h
 jigsaw.o: ../config.h
+jigsaw.o: $(srcdir)/fps.h
 jigsaw.o: $(srcdir)/screenhackI.h
 jigsaw.o: $(srcdir)/screenhack.h
 jigsaw.o: $(UTILS_SRC)/colors.h
@@ -1772,6 +1831,7 @@ jigsaw.o: $(UTILS_SRC)/usleep.h
 jigsaw.o: $(UTILS_SRC)/visual.h
 jigsaw.o: $(UTILS_SRC)/yarandom.h
 juggle.o: ../config.h
+juggle.o: $(srcdir)/fps.h
 juggle.o: $(srcdir)/screenhackI.h
 juggle.o: $(UTILS_SRC)/colors.h
 juggle.o: $(UTILS_SRC)/grabscreen.h
@@ -1784,6 +1844,7 @@ juggle.o: $(UTILS_SRC)/yarandom.h
 juggle.o: $(srcdir)/xlockmoreI.h
 juggle.o: $(srcdir)/xlockmore.h
 julia.o: ../config.h
+julia.o: $(srcdir)/fps.h
 julia.o: $(srcdir)/screenhackI.h
 julia.o: $(UTILS_SRC)/colors.h
 julia.o: $(UTILS_SRC)/grabscreen.h
@@ -1796,6 +1857,7 @@ julia.o: $(UTILS_SRC)/yarandom.h
 julia.o: $(srcdir)/xlockmoreI.h
 julia.o: $(srcdir)/xlockmore.h
 kaleidescope.o: ../config.h
+kaleidescope.o: $(srcdir)/fps.h
 kaleidescope.o: $(srcdir)/screenhackI.h
 kaleidescope.o: $(srcdir)/screenhack.h
 kaleidescope.o: $(UTILS_SRC)/colors.h
@@ -1807,6 +1869,7 @@ kaleidescope.o: $(UTILS_SRC)/usleep.h
 kaleidescope.o: $(UTILS_SRC)/visual.h
 kaleidescope.o: $(UTILS_SRC)/yarandom.h
 kumppa.o: ../config.h
+kumppa.o: $(srcdir)/fps.h
 kumppa.o: $(srcdir)/screenhackI.h
 kumppa.o: $(srcdir)/screenhack.h
 kumppa.o: $(UTILS_SRC)/colors.h
@@ -1818,6 +1881,7 @@ kumppa.o: $(UTILS_SRC)/visual.h
 kumppa.o: $(UTILS_SRC)/xdbe.h
 kumppa.o: $(UTILS_SRC)/yarandom.h
 laser.o: ../config.h
+laser.o: $(srcdir)/fps.h
 laser.o: $(srcdir)/screenhackI.h
 laser.o: $(UTILS_SRC)/colors.h
 laser.o: $(UTILS_SRC)/grabscreen.h
@@ -1830,6 +1894,7 @@ laser.o: $(UTILS_SRC)/yarandom.h
 laser.o: $(srcdir)/xlockmoreI.h
 laser.o: $(srcdir)/xlockmore.h
 lcdscrub.o: ../config.h
+lcdscrub.o: $(srcdir)/fps.h
 lcdscrub.o: $(srcdir)/screenhackI.h
 lcdscrub.o: $(srcdir)/screenhack.h
 lcdscrub.o: $(UTILS_SRC)/colors.h
@@ -1840,6 +1905,7 @@ lcdscrub.o: $(UTILS_SRC)/usleep.h
 lcdscrub.o: $(UTILS_SRC)/visual.h
 lcdscrub.o: $(UTILS_SRC)/yarandom.h
 lightning.o: ../config.h
+lightning.o: $(srcdir)/fps.h
 lightning.o: $(srcdir)/screenhackI.h
 lightning.o: $(UTILS_SRC)/colors.h
 lightning.o: $(UTILS_SRC)/grabscreen.h
@@ -1852,6 +1918,7 @@ lightning.o: $(UTILS_SRC)/yarandom.h
 lightning.o: $(srcdir)/xlockmoreI.h
 lightning.o: $(srcdir)/xlockmore.h
 lisa.o: ../config.h
+lisa.o: $(srcdir)/fps.h
 lisa.o: $(srcdir)/screenhackI.h
 lisa.o: $(UTILS_SRC)/colors.h
 lisa.o: $(UTILS_SRC)/grabscreen.h
@@ -1864,6 +1931,7 @@ lisa.o: $(UTILS_SRC)/yarandom.h
 lisa.o: $(srcdir)/xlockmoreI.h
 lisa.o: $(srcdir)/xlockmore.h
 lissie.o: ../config.h
+lissie.o: $(srcdir)/fps.h
 lissie.o: $(srcdir)/screenhackI.h
 lissie.o: $(UTILS_SRC)/colors.h
 lissie.o: $(UTILS_SRC)/grabscreen.h
@@ -1876,6 +1944,7 @@ lissie.o: $(UTILS_SRC)/yarandom.h
 lissie.o: $(srcdir)/xlockmoreI.h
 lissie.o: $(srcdir)/xlockmore.h
 lmorph.o: ../config.h
+lmorph.o: $(srcdir)/fps.h
 lmorph.o: $(srcdir)/screenhackI.h
 lmorph.o: $(srcdir)/screenhack.h
 lmorph.o: $(UTILS_SRC)/colors.h
@@ -1887,6 +1956,7 @@ lmorph.o: $(UTILS_SRC)/visual.h
 lmorph.o: $(UTILS_SRC)/yarandom.h
 loop.o: $(srcdir)/automata.h
 loop.o: ../config.h
+loop.o: $(srcdir)/fps.h
 loop.o: $(srcdir)/screenhackI.h
 loop.o: $(UTILS_SRC)/colors.h
 loop.o: $(UTILS_SRC)/grabscreen.h
@@ -1901,6 +1971,7 @@ loop.o: $(srcdir)/xlockmore.h
 m6502.o: $(srcdir)/analogtv.h
 m6502.o: $(srcdir)/asm6502.h
 m6502.o: ../config.h
+m6502.o: $(srcdir)/fps.h
 m6502.o: m6502.h
 m6502.o: $(srcdir)/screenhackI.h
 m6502.o: $(srcdir)/screenhack.h
@@ -1913,6 +1984,7 @@ m6502.o: $(UTILS_SRC)/visual.h
 m6502.o: $(UTILS_SRC)/xshm.h
 m6502.o: $(UTILS_SRC)/yarandom.h
 maze.o: ../config.h
+maze.o: $(srcdir)/fps.h
 maze.o: $(srcdir)/screenhackI.h
 maze.o: $(srcdir)/screenhack.h
 maze.o: $(UTILS_SRC)/colors.h
@@ -1924,6 +1996,7 @@ maze.o: $(UTILS_SRC)/usleep.h
 maze.o: $(UTILS_SRC)/visual.h
 maze.o: $(UTILS_SRC)/yarandom.h
 memscroller.o: ../config.h
+memscroller.o: $(srcdir)/fps.h
 memscroller.o: $(srcdir)/screenhackI.h
 memscroller.o: $(srcdir)/screenhack.h
 memscroller.o: $(UTILS_SRC)/colors.h
@@ -1934,6 +2007,7 @@ memscroller.o: $(UTILS_SRC)/usleep.h
 memscroller.o: $(UTILS_SRC)/visual.h
 memscroller.o: $(UTILS_SRC)/yarandom.h
 metaballs.o: ../config.h
+metaballs.o: $(srcdir)/fps.h
 metaballs.o: $(srcdir)/screenhackI.h
 metaballs.o: $(srcdir)/screenhack.h
 metaballs.o: $(UTILS_SRC)/colors.h
@@ -1944,6 +2018,7 @@ metaballs.o: $(UTILS_SRC)/usleep.h
 metaballs.o: $(UTILS_SRC)/visual.h
 metaballs.o: $(UTILS_SRC)/yarandom.h
 mismunch.o: ../config.h
+mismunch.o: $(srcdir)/fps.h
 mismunch.o: $(srcdir)/screenhackI.h
 mismunch.o: $(srcdir)/screenhack.h
 mismunch.o: $(UTILS_SRC)/colors.h
@@ -1954,6 +2029,7 @@ mismunch.o: $(UTILS_SRC)/usleep.h
 mismunch.o: $(UTILS_SRC)/visual.h
 mismunch.o: $(UTILS_SRC)/yarandom.h
 moire2.o: ../config.h
+moire2.o: $(srcdir)/fps.h
 moire2.o: $(srcdir)/screenhackI.h
 moire2.o: $(srcdir)/screenhack.h
 moire2.o: $(UTILS_SRC)/colors.h
@@ -1965,6 +2041,7 @@ moire2.o: $(UTILS_SRC)/visual.h
 moire2.o: $(UTILS_SRC)/xdbe.h
 moire2.o: $(UTILS_SRC)/yarandom.h
 moire.o: ../config.h
+moire.o: $(srcdir)/fps.h
 moire.o: $(srcdir)/screenhackI.h
 moire.o: $(srcdir)/screenhack.h
 moire.o: $(UTILS_SRC)/colors.h
@@ -1975,6 +2052,7 @@ moire.o: $(UTILS_SRC)/usleep.h
 moire.o: $(UTILS_SRC)/visual.h
 moire.o: $(UTILS_SRC)/yarandom.h
 mountain.o: ../config.h
+mountain.o: $(srcdir)/fps.h
 mountain.o: $(srcdir)/screenhackI.h
 mountain.o: $(UTILS_SRC)/colors.h
 mountain.o: $(UTILS_SRC)/grabscreen.h
@@ -1987,6 +2065,7 @@ mountain.o: $(UTILS_SRC)/yarandom.h
 mountain.o: $(srcdir)/xlockmoreI.h
 mountain.o: $(srcdir)/xlockmore.h
 munch.o: ../config.h
+munch.o: $(srcdir)/fps.h
 munch.o: $(srcdir)/screenhackI.h
 munch.o: $(srcdir)/screenhack.h
 munch.o: $(UTILS_SRC)/colors.h
@@ -1997,6 +2076,7 @@ munch.o: $(UTILS_SRC)/usleep.h
 munch.o: $(UTILS_SRC)/visual.h
 munch.o: $(UTILS_SRC)/yarandom.h
 nerverot.o: ../config.h
+nerverot.o: $(srcdir)/fps.h
 nerverot.o: $(srcdir)/screenhackI.h
 nerverot.o: $(srcdir)/screenhack.h
 nerverot.o: $(UTILS_SRC)/colors.h
@@ -2007,6 +2087,7 @@ nerverot.o: $(UTILS_SRC)/usleep.h
 nerverot.o: $(UTILS_SRC)/visual.h
 nerverot.o: $(UTILS_SRC)/yarandom.h
 noseguy.o: ../config.h
+noseguy.o: $(srcdir)/fps.h
 noseguy.o: $(srcdir)/images/noseguy/nose-f1.xpm
 noseguy.o: $(srcdir)/images/noseguy/nose-f2.xpm
 noseguy.o: $(srcdir)/images/noseguy/nose-f3.xpm
@@ -2026,6 +2107,7 @@ noseguy.o: $(UTILS_SRC)/visual.h
 noseguy.o: $(UTILS_SRC)/yarandom.h
 noseguy.o: $(srcdir)/xpm-pixmap.h
 pacman_ai.o: ../config.h
+pacman_ai.o: $(srcdir)/fps.h
 pacman_ai.o: $(srcdir)/pacman_ai.h
 pacman_ai.o: $(srcdir)/pacman.h
 pacman_ai.o: $(srcdir)/pacman_level.h
@@ -2041,6 +2123,7 @@ pacman_ai.o: $(UTILS_SRC)/yarandom.h
 pacman_ai.o: $(srcdir)/xlockmoreI.h
 pacman_ai.o: $(srcdir)/xpm-pixmap.h
 pacman_level.o: ../config.h
+pacman_level.o: $(srcdir)/fps.h
 pacman_level.o: $(srcdir)/pacman.h
 pacman_level.o: $(srcdir)/pacman_level.h
 pacman_level.o: $(srcdir)/screenhackI.h
@@ -2055,6 +2138,7 @@ pacman_level.o: $(UTILS_SRC)/yarandom.h
 pacman_level.o: $(srcdir)/xlockmoreI.h
 pacman_level.o: $(srcdir)/xpm-pixmap.h
 pacman.o: ../config.h
+pacman.o: $(srcdir)/fps.h
 pacman.o: $(srcdir)/images/pacman/eyes-d.xpm
 pacman.o: $(srcdir)/images/pacman/eyes-l.xpm
 pacman.o: $(srcdir)/images/pacman/eyes-r.xpm
@@ -2105,6 +2189,7 @@ pacman.o: $(srcdir)/xlockmoreI.h
 pacman.o: $(srcdir)/xlockmore.h
 pacman.o: $(srcdir)/xpm-pixmap.h
 pedal.o: ../config.h
+pedal.o: $(srcdir)/fps.h
 pedal.o: $(srcdir)/screenhackI.h
 pedal.o: $(srcdir)/screenhack.h
 pedal.o: $(UTILS_SRC)/colors.h
@@ -2116,6 +2201,7 @@ pedal.o: $(UTILS_SRC)/usleep.h
 pedal.o: $(UTILS_SRC)/visual.h
 pedal.o: $(UTILS_SRC)/yarandom.h
 penetrate.o: ../config.h
+penetrate.o: $(srcdir)/fps.h
 penetrate.o: $(srcdir)/screenhackI.h
 penetrate.o: $(srcdir)/screenhack.h
 penetrate.o: $(UTILS_SRC)/colors.h
@@ -2126,6 +2212,7 @@ penetrate.o: $(UTILS_SRC)/usleep.h
 penetrate.o: $(UTILS_SRC)/visual.h
 penetrate.o: $(UTILS_SRC)/yarandom.h
 penrose.o: ../config.h
+penrose.o: $(srcdir)/fps.h
 penrose.o: $(srcdir)/screenhackI.h
 penrose.o: $(UTILS_SRC)/colors.h
 penrose.o: $(UTILS_SRC)/grabscreen.h
@@ -2138,6 +2225,7 @@ penrose.o: $(UTILS_SRC)/yarandom.h
 penrose.o: $(srcdir)/xlockmoreI.h
 penrose.o: $(srcdir)/xlockmore.h
 petri.o: ../config.h
+petri.o: $(srcdir)/fps.h
 petri.o: $(srcdir)/screenhackI.h
 petri.o: $(srcdir)/screenhack.h
 petri.o: $(UTILS_SRC)/colors.h
@@ -2149,6 +2237,7 @@ petri.o: $(UTILS_SRC)/usleep.h
 petri.o: $(UTILS_SRC)/visual.h
 petri.o: $(UTILS_SRC)/yarandom.h
 phosphor.o: ../config.h
+phosphor.o: $(srcdir)/fps.h
 phosphor.o: $(srcdir)/images/6x10font.xbm
 phosphor.o: $(srcdir)/screenhackI.h
 phosphor.o: $(srcdir)/screenhack.h
@@ -2160,6 +2249,7 @@ phosphor.o: $(UTILS_SRC)/usleep.h
 phosphor.o: $(UTILS_SRC)/visual.h
 phosphor.o: $(UTILS_SRC)/yarandom.h
 piecewise.o: ../config.h
+piecewise.o: $(srcdir)/fps.h
 piecewise.o: $(srcdir)/screenhackI.h
 piecewise.o: $(srcdir)/screenhack.h
 piecewise.o: $(UTILS_SRC)/colors.h
@@ -2171,6 +2261,7 @@ piecewise.o: $(UTILS_SRC)/visual.h
 piecewise.o: $(UTILS_SRC)/xdbe.h
 piecewise.o: $(UTILS_SRC)/yarandom.h
 polyominoes.o: ../config.h
+polyominoes.o: $(srcdir)/fps.h
 polyominoes.o: $(srcdir)/screenhackI.h
 polyominoes.o: $(UTILS_SRC)/colors.h
 polyominoes.o: $(UTILS_SRC)/erase.h
@@ -2185,6 +2276,7 @@ polyominoes.o: $(srcdir)/xlockmoreI.h
 polyominoes.o: $(srcdir)/xlockmore.h
 pong.o: $(srcdir)/analogtv.h
 pong.o: ../config.h
+pong.o: $(srcdir)/fps.h
 pong.o: $(srcdir)/screenhackI.h
 pong.o: $(srcdir)/screenhack.h
 pong.o: $(UTILS_SRC)/colors.h
@@ -2196,6 +2288,7 @@ pong.o: $(UTILS_SRC)/visual.h
 pong.o: $(UTILS_SRC)/xshm.h
 pong.o: $(UTILS_SRC)/yarandom.h
 popsquares.o: ../config.h
+popsquares.o: $(srcdir)/fps.h
 popsquares.o: $(srcdir)/screenhackI.h
 popsquares.o: $(srcdir)/screenhack.h
 popsquares.o: $(UTILS_SRC)/colors.h
@@ -2207,6 +2300,7 @@ popsquares.o: $(UTILS_SRC)/visual.h
 popsquares.o: $(UTILS_SRC)/xdbe.h
 popsquares.o: $(UTILS_SRC)/yarandom.h
 pyro.o: ../config.h
+pyro.o: $(srcdir)/fps.h
 pyro.o: $(srcdir)/screenhackI.h
 pyro.o: $(srcdir)/screenhack.h
 pyro.o: $(UTILS_SRC)/colors.h
@@ -2217,6 +2311,7 @@ pyro.o: $(UTILS_SRC)/usleep.h
 pyro.o: $(UTILS_SRC)/visual.h
 pyro.o: $(UTILS_SRC)/yarandom.h
 qix.o: ../config.h
+qix.o: $(srcdir)/fps.h
 qix.o: $(srcdir)/screenhackI.h
 qix.o: $(srcdir)/screenhack.h
 qix.o: $(UTILS_SRC)/alpha.h
@@ -2228,6 +2323,7 @@ qix.o: $(UTILS_SRC)/usleep.h
 qix.o: $(UTILS_SRC)/visual.h
 qix.o: $(UTILS_SRC)/yarandom.h
 rd-bomb.o: ../config.h
+rd-bomb.o: $(srcdir)/fps.h
 rd-bomb.o: $(srcdir)/screenhackI.h
 rd-bomb.o: $(srcdir)/screenhack.h
 rd-bomb.o: $(UTILS_SRC)/colors.h
@@ -2238,6 +2334,7 @@ rd-bomb.o: $(UTILS_SRC)/usleep.h
 rd-bomb.o: $(UTILS_SRC)/visual.h
 rd-bomb.o: $(UTILS_SRC)/yarandom.h
 ripples.o: ../config.h
+ripples.o: $(srcdir)/fps.h
 ripples.o: $(srcdir)/screenhackI.h
 ripples.o: $(srcdir)/screenhack.h
 ripples.o: $(UTILS_SRC)/colors.h
@@ -2248,6 +2345,7 @@ ripples.o: $(UTILS_SRC)/usleep.h
 ripples.o: $(UTILS_SRC)/visual.h
 ripples.o: $(UTILS_SRC)/yarandom.h
 rocks.o: ../config.h
+rocks.o: $(srcdir)/fps.h
 rocks.o: $(srcdir)/screenhackI.h
 rocks.o: $(srcdir)/screenhack.h
 rocks.o: $(UTILS_SRC)/colors.h
@@ -2258,6 +2356,7 @@ rocks.o: $(UTILS_SRC)/usleep.h
 rocks.o: $(UTILS_SRC)/visual.h
 rocks.o: $(UTILS_SRC)/yarandom.h
 rorschach.o: ../config.h
+rorschach.o: $(srcdir)/fps.h
 rorschach.o: $(srcdir)/screenhackI.h
 rorschach.o: $(srcdir)/screenhack.h
 rorschach.o: $(UTILS_SRC)/colors.h
@@ -2269,6 +2368,7 @@ rorschach.o: $(UTILS_SRC)/usleep.h
 rorschach.o: $(UTILS_SRC)/visual.h
 rorschach.o: $(UTILS_SRC)/yarandom.h
 rotor.o: ../config.h
+rotor.o: $(srcdir)/fps.h
 rotor.o: $(srcdir)/screenhackI.h
 rotor.o: $(UTILS_SRC)/colors.h
 rotor.o: $(UTILS_SRC)/grabscreen.h
@@ -2281,6 +2381,7 @@ rotor.o: $(UTILS_SRC)/yarandom.h
 rotor.o: $(srcdir)/xlockmoreI.h
 rotor.o: $(srcdir)/xlockmore.h
 rotzoomer.o: ../config.h
+rotzoomer.o: $(srcdir)/fps.h
 rotzoomer.o: $(srcdir)/screenhackI.h
 rotzoomer.o: $(srcdir)/screenhack.h
 rotzoomer.o: $(UTILS_SRC)/colors.h
@@ -2291,6 +2392,7 @@ rotzoomer.o: $(UTILS_SRC)/usleep.h
 rotzoomer.o: $(UTILS_SRC)/visual.h
 rotzoomer.o: $(UTILS_SRC)/yarandom.h
 screenhack.o: ../config.h
+screenhack.o: $(srcdir)/fps.h
 screenhack.o: $(srcdir)/screenhackI.h
 screenhack.o: $(UTILS_SRC)/colors.h
 screenhack.o: $(UTILS_SRC)/grabscreen.h
@@ -2303,6 +2405,7 @@ screenhack.o: $(UTILS_SRC)/vroot.h
 screenhack.o: $(UTILS_SRC)/xmu.h
 screenhack.o: $(UTILS_SRC)/yarandom.h
 shadebobs.o: ../config.h
+shadebobs.o: $(srcdir)/fps.h
 shadebobs.o: $(srcdir)/screenhackI.h
 shadebobs.o: $(srcdir)/screenhack.h
 shadebobs.o: $(UTILS_SRC)/colors.h
@@ -2313,6 +2416,7 @@ shadebobs.o: $(UTILS_SRC)/usleep.h
 shadebobs.o: $(UTILS_SRC)/visual.h
 shadebobs.o: $(UTILS_SRC)/yarandom.h
 sierpinski.o: ../config.h
+sierpinski.o: $(srcdir)/fps.h
 sierpinski.o: $(srcdir)/screenhackI.h
 sierpinski.o: $(UTILS_SRC)/colors.h
 sierpinski.o: $(UTILS_SRC)/grabscreen.h
@@ -2325,6 +2429,7 @@ sierpinski.o: $(UTILS_SRC)/yarandom.h
 sierpinski.o: $(srcdir)/xlockmoreI.h
 sierpinski.o: $(srcdir)/xlockmore.h
 slidescreen.o: ../config.h
+slidescreen.o: $(srcdir)/fps.h
 slidescreen.o: $(srcdir)/screenhackI.h
 slidescreen.o: $(srcdir)/screenhack.h
 slidescreen.o: $(UTILS_SRC)/colors.h
@@ -2335,6 +2440,7 @@ slidescreen.o: $(UTILS_SRC)/usleep.h
 slidescreen.o: $(UTILS_SRC)/visual.h
 slidescreen.o: $(UTILS_SRC)/yarandom.h
 slip.o: ../config.h
+slip.o: $(srcdir)/fps.h
 slip.o: $(srcdir)/screenhackI.h
 slip.o: $(UTILS_SRC)/colors.h
 slip.o: $(UTILS_SRC)/grabscreen.h
@@ -2347,6 +2453,7 @@ slip.o: $(UTILS_SRC)/yarandom.h
 slip.o: $(srcdir)/xlockmoreI.h
 slip.o: $(srcdir)/xlockmore.h
 sonar.o: ../config.h
+sonar.o: $(srcdir)/fps.h
 sonar.o: $(srcdir)/screenhackI.h
 sonar.o: $(srcdir)/screenhack.h
 sonar.o: $(UTILS_SRC)/colors.h
@@ -2357,6 +2464,7 @@ sonar.o: $(UTILS_SRC)/usleep.h
 sonar.o: $(UTILS_SRC)/visual.h
 sonar.o: $(UTILS_SRC)/yarandom.h
 speedmine.o: ../config.h
+speedmine.o: $(srcdir)/fps.h
 speedmine.o: $(srcdir)/screenhackI.h
 speedmine.o: $(srcdir)/screenhack.h
 speedmine.o: $(UTILS_SRC)/colors.h
@@ -2368,6 +2476,7 @@ speedmine.o: $(UTILS_SRC)/usleep.h
 speedmine.o: $(UTILS_SRC)/visual.h
 speedmine.o: $(UTILS_SRC)/yarandom.h
 sphere.o: ../config.h
+sphere.o: $(srcdir)/fps.h
 sphere.o: $(srcdir)/screenhackI.h
 sphere.o: $(UTILS_SRC)/colors.h
 sphere.o: $(UTILS_SRC)/grabscreen.h
@@ -2380,6 +2489,7 @@ sphere.o: $(UTILS_SRC)/yarandom.h
 sphere.o: $(srcdir)/xlockmoreI.h
 sphere.o: $(srcdir)/xlockmore.h
 spiral.o: ../config.h
+spiral.o: $(srcdir)/fps.h
 spiral.o: $(srcdir)/screenhackI.h
 spiral.o: $(UTILS_SRC)/colors.h
 spiral.o: $(UTILS_SRC)/grabscreen.h
@@ -2392,6 +2502,7 @@ spiral.o: $(UTILS_SRC)/yarandom.h
 spiral.o: $(srcdir)/xlockmoreI.h
 spiral.o: $(srcdir)/xlockmore.h
 spotlight.o: ../config.h
+spotlight.o: $(srcdir)/fps.h
 spotlight.o: $(srcdir)/screenhackI.h
 spotlight.o: $(srcdir)/screenhack.h
 spotlight.o: $(UTILS_SRC)/colors.h
@@ -2402,6 +2513,7 @@ spotlight.o: $(UTILS_SRC)/usleep.h
 spotlight.o: $(UTILS_SRC)/visual.h
 spotlight.o: $(UTILS_SRC)/yarandom.h
 squiral.o: ../config.h
+squiral.o: $(srcdir)/fps.h
 squiral.o: $(srcdir)/screenhackI.h
 squiral.o: $(srcdir)/screenhack.h
 squiral.o: $(UTILS_SRC)/colors.h
@@ -2413,6 +2525,7 @@ squiral.o: $(UTILS_SRC)/usleep.h
 squiral.o: $(UTILS_SRC)/visual.h
 squiral.o: $(UTILS_SRC)/yarandom.h
 starfish.o: ../config.h
+starfish.o: $(srcdir)/fps.h
 starfish.o: $(srcdir)/screenhackI.h
 starfish.o: $(srcdir)/screenhack.h
 starfish.o: $(UTILS_SRC)/colors.h
@@ -2424,6 +2537,7 @@ starfish.o: $(UTILS_SRC)/usleep.h
 starfish.o: $(UTILS_SRC)/visual.h
 starfish.o: $(UTILS_SRC)/yarandom.h
 strange.o: ../config.h
+strange.o: $(srcdir)/fps.h
 strange.o: $(srcdir)/screenhackI.h
 strange.o: $(UTILS_SRC)/colors.h
 strange.o: $(UTILS_SRC)/grabscreen.h
@@ -2436,6 +2550,7 @@ strange.o: $(UTILS_SRC)/yarandom.h
 strange.o: $(srcdir)/xlockmoreI.h
 strange.o: $(srcdir)/xlockmore.h
 substrate.o: ../config.h
+substrate.o: $(srcdir)/fps.h
 substrate.o: $(srcdir)/screenhackI.h
 substrate.o: $(srcdir)/screenhack.h
 substrate.o: $(UTILS_SRC)/colors.h
@@ -2446,6 +2561,7 @@ substrate.o: $(UTILS_SRC)/usleep.h
 substrate.o: $(UTILS_SRC)/visual.h
 substrate.o: $(UTILS_SRC)/yarandom.h
 swirl.o: ../config.h
+swirl.o: $(srcdir)/fps.h
 swirl.o: $(srcdir)/screenhackI.h
 swirl.o: $(UTILS_SRC)/colors.h
 swirl.o: $(UTILS_SRC)/grabscreen.h
@@ -2458,6 +2574,7 @@ swirl.o: $(UTILS_SRC)/yarandom.h
 swirl.o: $(srcdir)/xlockmoreI.h
 swirl.o: $(srcdir)/xlockmore.h
 t3d.o: ../config.h
+t3d.o: $(srcdir)/fps.h
 t3d.o: $(srcdir)/screenhackI.h
 t3d.o: $(srcdir)/screenhack.h
 t3d.o: $(UTILS_SRC)/colors.h
@@ -2468,6 +2585,7 @@ t3d.o: $(UTILS_SRC)/usleep.h
 t3d.o: $(UTILS_SRC)/visual.h
 t3d.o: $(UTILS_SRC)/yarandom.h
 thornbird.o: ../config.h
+thornbird.o: $(srcdir)/fps.h
 thornbird.o: $(srcdir)/screenhackI.h
 thornbird.o: $(UTILS_SRC)/colors.h
 thornbird.o: $(UTILS_SRC)/grabscreen.h
@@ -2480,6 +2598,7 @@ thornbird.o: $(UTILS_SRC)/yarandom.h
 thornbird.o: $(srcdir)/xlockmoreI.h
 thornbird.o: $(srcdir)/xlockmore.h
 triangle.o: ../config.h
+triangle.o: $(srcdir)/fps.h
 triangle.o: $(srcdir)/screenhackI.h
 triangle.o: $(UTILS_SRC)/colors.h
 triangle.o: $(UTILS_SRC)/grabscreen.h
@@ -2492,6 +2611,7 @@ triangle.o: $(UTILS_SRC)/yarandom.h
 triangle.o: $(srcdir)/xlockmoreI.h
 triangle.o: $(srcdir)/xlockmore.h
 truchet.o: ../config.h
+truchet.o: $(srcdir)/fps.h
 truchet.o: $(srcdir)/screenhackI.h
 truchet.o: $(srcdir)/screenhack.h
 truchet.o: $(UTILS_SRC)/colors.h
@@ -2502,6 +2622,7 @@ truchet.o: $(UTILS_SRC)/usleep.h
 truchet.o: $(UTILS_SRC)/visual.h
 truchet.o: $(UTILS_SRC)/yarandom.h
 twang.o: ../config.h
+twang.o: $(srcdir)/fps.h
 twang.o: $(srcdir)/screenhackI.h
 twang.o: $(srcdir)/screenhack.h
 twang.o: $(UTILS_SRC)/colors.h
@@ -2512,6 +2633,7 @@ twang.o: $(UTILS_SRC)/usleep.h
 twang.o: $(UTILS_SRC)/visual.h
 twang.o: $(UTILS_SRC)/yarandom.h
 vermiculate.o: ../config.h
+vermiculate.o: $(srcdir)/fps.h
 vermiculate.o: $(srcdir)/screenhackI.h
 vermiculate.o: $(srcdir)/screenhack.h
 vermiculate.o: $(UTILS_SRC)/colors.h
@@ -2522,6 +2644,7 @@ vermiculate.o: $(UTILS_SRC)/usleep.h
 vermiculate.o: $(UTILS_SRC)/visual.h
 vermiculate.o: $(UTILS_SRC)/yarandom.h
 vines.o: ../config.h
+vines.o: $(srcdir)/fps.h
 vines.o: $(srcdir)/screenhackI.h
 vines.o: $(UTILS_SRC)/colors.h
 vines.o: $(UTILS_SRC)/erase.h
@@ -2535,6 +2658,7 @@ vines.o: $(UTILS_SRC)/yarandom.h
 vines.o: $(srcdir)/xlockmoreI.h
 vines.o: $(srcdir)/xlockmore.h
 wander.o: ../config.h
+wander.o: $(srcdir)/fps.h
 wander.o: $(srcdir)/screenhackI.h
 wander.o: $(srcdir)/screenhack.h
 wander.o: $(UTILS_SRC)/colors.h
@@ -2546,6 +2670,7 @@ wander.o: $(UTILS_SRC)/usleep.h
 wander.o: $(UTILS_SRC)/visual.h
 wander.o: $(UTILS_SRC)/yarandom.h
 webcollage-cocoa.o: ../config.h
+webcollage-cocoa.o: $(srcdir)/fps.h
 webcollage-cocoa.o: $(srcdir)/screenhackI.h
 webcollage-cocoa.o: $(srcdir)/screenhack.h
 webcollage-cocoa.o: $(UTILS_SRC)/colors.h
@@ -2557,6 +2682,7 @@ webcollage-cocoa.o: $(UTILS_SRC)/visual.h
 webcollage-cocoa.o: $(UTILS_SRC)/yarandom.h
 webcollage-helper.o: ../config.h
 whirlwindwarp.o: ../config.h
+whirlwindwarp.o: $(srcdir)/fps.h
 whirlwindwarp.o: $(srcdir)/screenhackI.h
 whirlwindwarp.o: $(srcdir)/screenhack.h
 whirlwindwarp.o: $(UTILS_SRC)/colors.h
@@ -2568,6 +2694,7 @@ whirlwindwarp.o: $(UTILS_SRC)/usleep.h
 whirlwindwarp.o: $(UTILS_SRC)/visual.h
 whirlwindwarp.o: $(UTILS_SRC)/yarandom.h
 whirlygig.o: ../config.h
+whirlygig.o: $(srcdir)/fps.h
 whirlygig.o: $(srcdir)/screenhackI.h
 whirlygig.o: $(srcdir)/screenhack.h
 whirlygig.o: $(UTILS_SRC)/colors.h
@@ -2579,6 +2706,7 @@ whirlygig.o: $(UTILS_SRC)/visual.h
 whirlygig.o: $(UTILS_SRC)/xdbe.h
 whirlygig.o: $(UTILS_SRC)/yarandom.h
 wormhole.o: ../config.h
+wormhole.o: $(srcdir)/fps.h
 wormhole.o: $(srcdir)/screenhackI.h
 wormhole.o: $(srcdir)/screenhack.h
 wormhole.o: $(UTILS_SRC)/colors.h
@@ -2589,6 +2717,7 @@ wormhole.o: $(UTILS_SRC)/usleep.h
 wormhole.o: $(UTILS_SRC)/visual.h
 wormhole.o: $(UTILS_SRC)/yarandom.h
 worm.o: ../config.h
+worm.o: $(srcdir)/fps.h
 worm.o: $(srcdir)/screenhackI.h
 worm.o: $(UTILS_SRC)/colors.h
 worm.o: $(UTILS_SRC)/grabscreen.h
@@ -2602,6 +2731,7 @@ worm.o: $(srcdir)/xlockmoreI.h
 worm.o: $(srcdir)/xlockmore.h
 xanalogtv.o: $(srcdir)/analogtv.h
 xanalogtv.o: ../config.h
+xanalogtv.o: $(srcdir)/fps.h
 xanalogtv.o: $(srcdir)/screenhackI.h
 xanalogtv.o: $(srcdir)/screenhack.h
 xanalogtv.o: $(UTILS_SRC)/colors.h
@@ -2615,6 +2745,7 @@ xanalogtv.o: $(UTILS_SRC)/xshm.h
 xanalogtv.o: $(UTILS_SRC)/yarandom.h
 xanalogtv.o: $(srcdir)/xpm-pixmap.h
 xflame.o: ../config.h
+xflame.o: $(srcdir)/fps.h
 xflame.o: $(srcdir)/images/bob.xbm
 xflame.o: $(srcdir)/screenhackI.h
 xflame.o: $(srcdir)/screenhack.h
@@ -2627,6 +2758,7 @@ xflame.o: $(UTILS_SRC)/visual.h
 xflame.o: $(UTILS_SRC)/yarandom.h
 xflame.o: $(srcdir)/xpm-pixmap.h
 xjack.o: ../config.h
+xjack.o: $(srcdir)/fps.h
 xjack.o: $(srcdir)/screenhackI.h
 xjack.o: $(srcdir)/screenhack.h
 xjack.o: $(UTILS_SRC)/colors.h
@@ -2637,6 +2769,7 @@ xjack.o: $(UTILS_SRC)/usleep.h
 xjack.o: $(UTILS_SRC)/visual.h
 xjack.o: $(UTILS_SRC)/yarandom.h
 xlockmore.o: ../config.h
+xlockmore.o: $(srcdir)/fps.h
 xlockmore.o: $(srcdir)/screenhackI.h
 xlockmore.o: $(srcdir)/screenhack.h
 xlockmore.o: $(UTILS_SRC)/colors.h
@@ -2649,6 +2782,7 @@ xlockmore.o: $(UTILS_SRC)/xshm.h
 xlockmore.o: $(UTILS_SRC)/yarandom.h
 xlockmore.o: $(srcdir)/xlockmoreI.h
 xlyap.o: ../config.h
+xlyap.o: $(srcdir)/fps.h
 xlyap.o: $(srcdir)/screenhackI.h
 xlyap.o: $(srcdir)/screenhack.h
 xlyap.o: $(UTILS_SRC)/colors.h
@@ -2659,6 +2793,7 @@ xlyap.o: $(UTILS_SRC)/usleep.h
 xlyap.o: $(UTILS_SRC)/visual.h
 xlyap.o: $(UTILS_SRC)/yarandom.h
 xmatrix.o: ../config.h
+xmatrix.o: $(srcdir)/fps.h
 xmatrix.o: $(srcdir)/images/matrix1b.xbm
 xmatrix.o: $(srcdir)/images/matrix1b.xpm
 xmatrix.o: $(srcdir)/images/matrix1.xbm
@@ -2681,6 +2816,7 @@ xpm-pixmap.o: ../config.h
 xpm-pixmap.o: $(UTILS_SRC)/visual.h
 xpm-pixmap.o: $(srcdir)/xpm-pixmap.h
 xrayswarm.o: ../config.h
+xrayswarm.o: $(srcdir)/fps.h
 xrayswarm.o: $(srcdir)/screenhackI.h
 xrayswarm.o: $(srcdir)/screenhack.h
 xrayswarm.o: $(UTILS_SRC)/colors.h
@@ -2692,6 +2828,7 @@ xrayswarm.o: $(UTILS_SRC)/visual.h
 xrayswarm.o: $(UTILS_SRC)/yarandom.h
 xscreensaver-sgigl.o: $(UTILS_SRC)/vroot.h
 xspirograph.o: ../config.h
+xspirograph.o: $(srcdir)/fps.h
 xspirograph.o: $(srcdir)/screenhackI.h
 xspirograph.o: $(srcdir)/screenhack.h
 xspirograph.o: $(UTILS_SRC)/colors.h
@@ -2707,6 +2844,7 @@ xsublim.o: $(UTILS_SRC)/usleep.h
 xsublim.o: $(UTILS_SRC)/vroot.h
 xsublim.o: $(UTILS_SRC)/yarandom.h
 zoom.o: ../config.h
+zoom.o: $(srcdir)/fps.h
 zoom.o: $(srcdir)/screenhackI.h
 zoom.o: $(srcdir)/screenhack.h
 zoom.o: $(UTILS_SRC)/colors.h
index 6053b7a94805a1343d2ee72d5139fd4a4f5bb2f4..56d42dfe7c9a2c63d63846aaeeb2b246066cb133 100644 (file)
@@ -1570,6 +1570,7 @@ abstractile_free (Display *dpy, Window window, void *closure)
 static const char *abstractile_defaults [] = {
   ".background:    black",
   ".foreground:    white",
+  "*fpsSolid:     true",
   "*sleep:             3",
   "*speed:             3",
   "*tile:         random",
index 889845b5575c8dd55521874cb1108caed528db5a..d043ce7a50c1bb8283a6273ad24743d1f6c9e470 100644 (file)
@@ -4,6 +4,7 @@ abstractile - draw abstract mosaic patterns of interlocking tiles
 .SH SYNOPSIS
 .B abstractile
 [\-sleep \fIseconds\fP] [\-speed \fIint\fP] [\-tile \fItile_mode\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIabstractile\fP program draws chaotic grids of randomly colored
 and shaped interlocking tiles.
@@ -21,6 +22,9 @@ A value between 0 and 5 used to specify the speed at which each screen is drawn.
 The type of tile that is drawn on each screen.  Legal values are
 \fIrandom\fP, \fIflat\fP, \fIthin\fP, \fIoutline\fP, 
 \fIblock\fP, \fIneon\fP, and \fItiled\fP
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index c7fb266de3214568dc2f52fe08370cf26392c4b1..f271d26b0682b7b8c4e635ccb118b42fcb553bb8 100644 (file)
@@ -388,6 +388,7 @@ analogtv_allocate(Display *dpy, Window window)
   analogtv_init();
 
   it=(analogtv *)calloc(1,sizeof(analogtv));
+  if (!it) return 0;
   it->dpy=dpy;
   it->window=window;
 
@@ -1189,6 +1190,7 @@ analogtv_draw(analogtv *it)
   float *raw_rgb_end=raw_rgb_start+3*it->subwidth;
   float *rrp;
 
+  if (! raw_rgb_start) return;
   analogtv_setup_frame(it);
   analogtv_set_demod(it);
 
index ad61b3d3def414610facf64a5e9b7f8e0222e9fd..9c03559ca23112f6b1b0d9c3a63dbf2b32346ee1 100644 (file)
@@ -290,6 +290,7 @@ int analogtv_handle_events (analogtv *it);
   "*Background:      Black", \
   "*use_cmap:        0",  \
   "*geometry:       800x600", \
+  "*fpsSolid:       True", \
   ANALOGTV_DEFAULTS_SHM
 
 #define ANALOGTV_OPTIONS \
index d26389eb1c47ff68c106ac0168703cba79e8908c..463a99905d26b304fc08ae2bcf18605154c2616e 100644 (file)
@@ -11,6 +11,7 @@ anemone - wiggling tentacles.
 [\-arms \fInumber\fP]
 [\-finpoints \fInumber\fP]
 [\-width \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Wiggling tentacles.
 .SH OPTIONS
@@ -46,7 +47,9 @@ which are very fast indeed.  Default: 50.
 .TP 8
 .B \-width \fInumber\fP
 Thickness.  1 - 10.  Default: 2.
-
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 388260827b3a236f0fb5cfb23927c113034c71bb..cf5c1eab7bc6c6d036dde73cc0bf15ca1d710227 100644 (file)
@@ -11,6 +11,7 @@ anemotaxis - directional search on a plane.
 [\-distance \fInumber\fP]
 [\-sources \fInumber\fP]
 [\-searchers \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 The program demonstrates a search algorithm designed for locating a
 source of odor in turbulent atmosphere. The odor is convected by wind
@@ -50,7 +51,9 @@ Max number of sources.  Default: 25.
 .TP 8
 .B \-searchers \fInumber\fP
 Max number of searchers. Default: 25.
-
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index bc18bb29cfe357011a997cff4f0e00fe056c9f9f..f9abb270546ff0a5d0fbfcf2d585b54ef37652a7 100644 (file)
@@ -53,16 +53,18 @@ static const char sccsid[] = "@(#)ant.c     5.00 2000/11/01 xlockmore";
 */
 
 #ifndef HAVE_COCOA
-# define DO_STIPPLE
+/*# define DO_STIPPLE*/
 #endif
 
 #ifdef STANDALONE
 # define MODE_ant
-# define DEFAULTS      "*delay:   1000  \n" \
+# define DEFAULTS      "*delay:   20000 \n" \
                                        "*count:   -3    \n" \
                                        "*cycles:  40000 \n" \
                                        "*size:    -12   \n" \
-                                       "*ncolors: 64    \n"
+                                       "*ncolors: 64    \n" \
+                                       "*fpsSolid: true    \n" \
+
 # define reshape_ant 0
 # define ant_handle_event 0
 # include "xlockmore.h"                /* in xscreensaver distribution */
@@ -173,7 +175,9 @@ typedef struct {
        antstruct  *ants;
        int         init_bits;
        unsigned char colors[NUMSTIPPLES - 1];
+# ifdef DO_STIPPLE
        GC          stippledGC;
+# endif /* DO_STIPPLE */
        Pixmap      pixmaps[NUMSTIPPLES - 1];
        union {
                XPoint      hexagon[7];         /* Need more than 6 for truchet */
@@ -641,24 +645,20 @@ drawcell(ModeInfo * mi, int col, int row, unsigned char color)
        if (!color) {
                XSetForeground(MI_DISPLAY(mi), MI_GC(mi), MI_BLACK_PIXEL(mi));
                gc = MI_GC(mi);
-       } else if (MI_NPIXELS(mi) > 2) {
-               XSetForeground(MI_DISPLAY(mi), MI_GC(mi),
-                              MI_PIXEL(mi, ap->colors[color - 1]));
-               gc = MI_GC(mi);
-       } else {
+# ifdef DO_STIPPLE
+       } else if (MI_NPIXELS(mi) <= 2) {
                XGCValues   gcv;
-
-#ifdef DO_STIPPLE
-          gcv.stipple = ap->pixmaps[color - 1];
-#endif /* DO_STIPPLE */
                gcv.foreground = MI_WHITE_PIXEL(mi);
                gcv.background = MI_BLACK_PIXEL(mi);
+        gcv.stipple = ap->pixmaps[color - 1];
                XChangeGC(MI_DISPLAY(mi), ap->stippledGC,
-#ifdef DO_STIPPLE
-                         GCStipple |
-#endif /* DO_STIPPLE */
-                          GCForeground | GCBackground, &gcv);
+                         GCStipple | GCForeground | GCBackground, &gcv);
                gc = ap->stippledGC;
+# endif /* !DO_STIPPLE */
+       } else {
+               XSetForeground(MI_DISPLAY(mi), MI_GC(mi),
+                              MI_PIXEL(mi, ap->colors[color - 1]));
+               gc = MI_GC(mi);
        }
        fillcell(mi, gc, col, row);
 }
@@ -980,10 +980,12 @@ free_ant(Display *display, antfarmstruct *ap)
 {
        int         shade;
 
+#ifdef DO_STIPPLE
        if (ap->stippledGC != None) {
                XFreeGC(display, ap->stippledGC);
                ap->stippledGC = None;
        }
+#endif /* DO_STIPPLE */
        for (shade = 0; shade < ap->init_bits; shade++) {
                XFreePixmap(display, ap->pixmaps[shade]);
        }
index bc3fcc4e10b904b7c058a4c488425c3ed2bad0b1..39a905afbfc4703cd5555c54543ae816f912b7db 100644 (file)
@@ -69,7 +69,10 @@ static const char sccsid[] = "@(#)apollonian.c       5.02 2001/07/01 xlockmore";
 # define DEFAULTS      "*delay:   1000000 \n" \
                                        "*count:   64      \n" \
                                        "*cycles:  20      \n" \
-                                       "*ncolors: 64      \n"
+                                       "*ncolors: 64      \n" \
+                                       "*fpsTop: true     \n" \
+                                       "*fpsSolid: true   \n" \
+
 # define refresh_apollonian 0
 # define reshape_apollonian 0
 # define apollonian_handle_event 0
@@ -621,7 +624,8 @@ f(ModeInfo *mi, circle c1, circle c2, circle c3, circle c4)
         c.h = 2*(c1.h+c2.h+c3.h) - c4.h;
         c.x = 2*(c1.x+c2.x+c3.x) - c4.x;
         c.y = 2*(c1.y+c2.y+c3.y) - c4.y;
-        if (c.e > cp->size * e || c.x / c.e > BIG || c.y / c.e > BIG ||
+        if (c.e == 0 ||
+            c.e > cp->size * e || c.x / c.e > BIG || c.y / c.e > BIG ||
             c.x / c.e < -BIG || c.y / c.e < -BIG)
                 return;
         p(mi, c);
index ae4e35600027b67372e183536c12eed7c8e2be00..157d109c1a9665e8c24b531b2bafd3beae879a7b 100644 (file)
@@ -12,6 +12,7 @@ apollonian - Descartes Circle Theorem.
 [\-cycles \fInumber\fP]
 [\-ncolors \fInumber\fP]
 [\-delay \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Packs a large circle with smaller circles, demonstrating the Descartes
 Circle Theorem.
@@ -41,6 +42,9 @@ Number of Colors.  Default: 64.
 .TP 8
 .B \-delay \fInumber\fP
 Per-frame delay, in microseconds.  Default: 1000000 (1.00 seconds.).
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 932c2b4c2760ee01e57332004f35508b257a0cd3..b0d6d5cbf63242901f89f4ea500dd90e986e0eec 100644 (file)
@@ -22,6 +22,7 @@ apple2 - Apple ][ display emulator
 [\-program \fIcommand to run\fP]
 [\-basic] [\-slideshow] [\-text]
 [\-meta] [\-esc] [\-bs] [\-del] [\-fast]
+[\-fps]
 .SH DESCRIPTION
 The
 .I apple2 
@@ -134,6 +135,9 @@ Normally, characters are printed at the speed of an original Apple][
 computer; however, when using this program as a terminal emulator,
 the novelty of those 300 baud characters might wear off.  You can use
 the \fI\-fast\fP option to speed things up a bit.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH TERMINAL EMULATION
 By default, \fIapple2\fP allocates a pseudo-tty for the \fI\-text\fP-mode
 sub-process to run under.  This has the desirable side effect that the
index 8e25d244f1d11aa3544de2c9a4cb7486be218637..ea85f9ad15066faa8f282cbfd7ae1bfc8187eaf9 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1995, 1996, 1997, 1998, 2001, 2006
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -991,6 +990,7 @@ attraction_free (Display *dpy, Window window, void *closure)
 static const char *attraction_defaults [] = {
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*mode:      balls",
   "*graphmode:  none",
   "*points:    0",
@@ -1004,7 +1004,7 @@ static const char *attraction_defaults [] = {
   "*maxspeed:  true",
   "*cbounce:   true",
   "*mouse:     false",
-  "*viscosity: 1",
+  "*viscosity: 1.0",
   "*orbit:     false",
   "*colorShift:        3",
   "*segments:  500",
index 0099a6274a771e98fa37c96031d1285dcdaa5fde..a0a9779a922a516b8ac32abab7043d70c43d3fff 100644 (file)
@@ -26,6 +26,7 @@ attraction - interactions of opposing forces
 [\-orbit] [\-viscosity \fIfloat\fP] [\-mouse] [\-no-mouse] [\-mouse-size]
 [\-walls] [\-nowalls] [\-maxspeed] [\-nomaxspeed]
 [\-correct-bounce] [\-fast-bounce]
+[\-fps]
 .SH DESCRIPTION
 The \fIattraction\fP program has several visually different modes of 
 operation, all of which are based on the interactions of a set of control
@@ -196,6 +197,9 @@ For "x", "y", and "both", displays the given velocities of each ball as a
 bar graph in the same window as the balls.  For "speed", displays the total
 speed of each ball.  Default is "none".
 .BR
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .B DISPLAY
 to get the default host and display number.
index cde87e40309db5b9a94ddc7d00c97da79447c4e7..61b0c237b76ceecd38452d84eaa3949857ff2473 100644 (file)
@@ -1911,6 +1911,7 @@ barcode_free (Display *dpy, Window window, void *closure)
 static const char *barcode_defaults [] = {
     ".background:      black",
     ".foreground:      green",
+    "*fpsSolid:        true",
     "*delay:           10000",
     "*mode:            scroll",
     0
index 4c3c4762addcfd6fe8a40467ada07847f64c0536..9074e1629c41655e04393e048ba0542629d30317 100644 (file)
@@ -10,6 +10,7 @@ barcode - draws a random sequence of barcodes for the products you enjoy
 [\-delay \fInumber\fP]
 [\-clock]
 [\-clock24]
+[\-fps]
 .SH DESCRIPTION
 This draws a random sequence of colorful barcodes scrolling across your
 screen.
@@ -33,6 +34,9 @@ Instead of drawing a stream of barcodes, draw a barcode-based digital clock.
 .TP 8
 .B \-clock24
 Same as \fI\-clock\fP, but display 24-hour time instead of 12-hour time.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index f2bc6f5920aa5be219e264ce97944335330a7093..1449e1153a8907de59e9f7f8e52ce8d4ff2ed499 100644 (file)
@@ -1098,6 +1098,7 @@ blaster_free (Display *dpy, Window window, void *closure)
 static const char *blaster_defaults [] = {
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*r_color0:  #FF00FF",
   "*r_color1:  #FFA500",
   "*r_color2:  #FFFF00",
index 088f04a718b4385e876031d52c9464d9bcfd04ec..6ac369f8539e4669d887b7bc48f6c5ab9fd6ea0f 100644 (file)
@@ -11,6 +11,7 @@ blaster - simulation of space combat
 [\-num_lasers \fInumber\fP]
 [\-num_stars \fInumber\fP]
 [\-delay \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Draws a simulation of flying space-combat robots (cleverly disguised as
 colored circles) doing battle in front of a moving star field.
@@ -37,6 +38,9 @@ Stars.        5 - 200.  Default: 50.
 .TP 8
 .B \-delay \fInumber\fP
 Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 0be3c96d2a5648d325391edb6789e4e797b02b61..1c18881c8fda0b8347fb31fb912dc9cdba287ad8 100644 (file)
 
 #include "images/som.xbm"
 
+/* Implementing this using XCopyArea doesn't work with color images on OSX.
+   This means that the Cocoa implementation of XCopyArea in jwxyz.m is 
+   broken with the GXor, GXand, and/or the GXxor GC operations.  This
+   probably means that (e.g.) "kCGBlendModeDarken" is not close enough 
+   to being "GXand" to use for that.  (It works with monochrome images,
+   just not color ones).
+
+   So, on OSX, we implement the blitter by hand.  It is correct, but
+   orders of magnitude slower.
+ */
+#ifndef HAVE_COCOA
+# define USE_XCOPYAREA
+#endif
+
 struct state {
   Display *dpy;
   Window window;
@@ -37,7 +51,9 @@ struct state {
   int width, height, size;
   Bool scale_up;
   Pixmap self, temp, mask;
-  GC SET, CLR, CPY, IOR, AND, XOR;
+# ifdef USE_XCOPYAREA
+  GC gc_set, gc_clear, gc_copy, gc_and, gc_or, gc_xor;
+# endif
   GC gc;
   int delay, delay2;
   int duration;
@@ -50,25 +66,85 @@ struct state {
 
   time_t start_time;
   Bool loaded_p;
+  Bool load_ext_p;
   async_load_state *img_loader;
 };
 
 static void display (struct state *, Pixmap);
 static void blitspin_init_2 (struct state *);
 
-#define copy_all_to(from, xoff, yoff, to, gc)                  \
-  XCopyArea (st->dpy, (from), (to), (gc), 0, 0,                        \
-            st->size-(xoff), st->size-(yoff), (xoff), (yoff))
+#define copy_to(from, xoff, yoff, to, op)                              \
+  bitblt (st, st->from, st->to, op, 0, 0,                              \
+         st->size-(xoff), st->size-(yoff), (xoff), (yoff))
+
+#define copy_from(to, xoff, yoff, from, op)                            \
+  bitblt (st, st->from, st->to, op, (xoff), (yoff),                    \
+         st->size-(xoff), st->size-(yoff), 0, 0)
+
+
+#ifdef USE_XCOPYAREA
+# define bitblt(st, from, to, op, src_x, src_y, w, h, dst_x, dst_y)    \
+         XCopyArea((st)->dpy, (from), (to), (st)->gc_##op,             \
+                  (src_x), (src_y), (w), (h), (dst_x), (dst_y))
+#else /* !USE_XCOPYAREA */
+
+# define bitblt(st, from, to, op, src_x, src_y, w, h, dst_x, dst_y)    \
+         do_bitblt((st)->dpy, (from), (to), st->gc, GX##op,            \
+                  (src_x), (src_y), (w), (h), (dst_x), (dst_y))
+
+static void
+do_bitblt (Display *dpy, Drawable src, Drawable dst, GC gc, int op,
+           int src_x, int src_y,
+           unsigned int width, unsigned int height,
+           int dst_x, int dst_y)
+{
+  if (op == GXclear)
+    {
+      XSetForeground (dpy, gc, 0xFF000000);  /* ARGB black for Cocoa */
+      XFillRectangle (dpy, dst, gc, dst_x, dst_y, width, height);
+    }
+  else if (op == GXset)
+    {
+      XSetForeground (dpy, gc, ~0L);
+      XFillRectangle (dpy, dst, gc, dst_x, dst_y, width, height);
+    }
+  else if (op == GXcopy)
+    {
+      XCopyArea (dpy, src, dst, gc, src_x, src_y, width, height, dst_x, dst_y);
+    }
+  else
+    {
+      XImage *srci = XGetImage (dpy, src, src_x, src_y, width, height,
+                                ~0L, ZPixmap);
+      XImage *dsti = XGetImage (dpy, dst, dst_x, dst_y, width, height,
+                                ~0L, ZPixmap);
+      unsigned long *out = (unsigned long *) dsti->data;
+      unsigned long *in  = (unsigned long *) srci->data;
+      unsigned long *end = (in + (height * srci->bytes_per_line
+                                  / sizeof(unsigned long)));
+      switch (op)
+        {
+        case GXor:  while (in < end) { *out++ |= *in++; } break;
+        case GXand: while (in < end) { *out++ &= *in++; } break;
+        case GXxor: while (in < end) { *out++ ^= *in++; } break;
+        default: abort();
+        }
+      XPutImage (dpy, dst, gc, dsti, 0, 0, dst_x, dst_y, width, height);
+      XDestroyImage (srci);
+      XDestroyImage (dsti);
+    }
+}
+
+#endif /* !USE_XCOPYAREA */
+
 
-#define copy_all_from(to, xoff, yoff, from, gc)                        \
-  XCopyArea (st->dpy, (from), (to), (gc), (xoff), (yoff),      \
-            st->size-(xoff), st->size-(yoff), 0, 0)
 
 static unsigned long
 blitspin_draw (Display *dpy, Window window, void *closure)
 {
   struct state *st = (struct state *) closure;
   int this_delay = st->delay;
+  int qwad;
 
   if (st->img_loader)   /* still loading */
     {
@@ -76,30 +152,30 @@ blitspin_draw (Display *dpy, Window window, void *closure)
 
       if (!st->img_loader) { /* just finished */
         st->first_time = 0;
-        st->loaded_p = False;
+        st->loaded_p = True;
         st->qwad = -1;
         st->start_time = time ((time_t) 0);
+        blitspin_init_2 (st);
       }
 
-      return this_delay;
+      /* Rotate nothing if the very first image is not yet loaded */
+      if (! st->loaded_p)
+        return this_delay;
     }
 
   if (!st->img_loader &&
+      st->load_ext_p &&
       st->start_time + st->duration < time ((time_t) 0)) {
-    /* Start it loading, but keep rotating the old image until it arrives. */
+    /* Start a new image loading, but keep rotating the old image 
+       until the new one arrives. */
     st->img_loader = load_image_async_simple (0, st->xgwa.screen, st->window,
                                               st->bitmap, 0, 0);
   }
 
-  if (! st->loaded_p) {
-    blitspin_init_2 (st);
-    st->loaded_p = True;
-  }
-
   if (st->qwad == -1) 
     {
-      XFillRectangle (st->dpy, st->mask, st->CLR, 0, 0, st->size, st->size);
-      XFillRectangle (st->dpy, st->mask, st->SET, 0, 0, st->size>>1, st->size>>1);
+      bitblt(st, st->mask, st->mask, clear,0,0, st->size,    st->size,    0,0);
+      bitblt(st, st->mask, st->mask, set,  0,0, st->size>>1, st->size>>1, 0,0);
       st->qwad = st->size>>1;
     }
 
@@ -112,22 +188,24 @@ blitspin_draw (Display *dpy, Window window, void *closure)
 
   /* for (st->qwad = st->size>>1; st->qwad > 0; st->qwad>>=1) */
 
-  copy_all_to  (st->mask, 0,        0,        st->temp, st->CPY);  /* 1 */
-  copy_all_to  (st->mask, 0,        st->qwad, st->temp, st->IOR);  /* 2 */
-  copy_all_to  (st->self, 0,        0,        st->temp, st->AND);  /* 3 */
-  copy_all_to  (st->temp, 0,        0,        st->self, st->XOR);  /* 4 */
-  copy_all_from(st->temp, st->qwad, 0,        st->self, st->XOR);  /* 5 */
-  copy_all_from(st->self, st->qwad, 0,        st->self, st->IOR);  /* 6 */
-  copy_all_to  (st->temp, st->qwad, 0,        st->self, st->XOR);  /* 7 */
-  copy_all_to  (st->self, 0,        0,        st->temp, st->CPY);  /* 8 */
-  copy_all_from(st->temp, st->qwad,           st->qwad, st->self,st->XOR);/*9*/
-  copy_all_to  (st->mask, 0,        0,        st->temp, st->AND);  /* A */
-  copy_all_to  (st->temp, 0,        0,        st->self, st->XOR);  /* B */
-  copy_all_to  (st->temp, st->qwad, st->qwad, st->self, st->XOR);  /* C */
-  copy_all_from(st->mask, st->qwad>>1,st->qwad>>1,st->mask,st->AND); /* D */
-  copy_all_to  (st->mask, st->qwad, 0,        st->mask, st->IOR);  /* E */
-  copy_all_to  (st->mask, 0,        st->qwad, st->mask, st->IOR);  /* F */
-  display (st, st->self);
+  qwad = st->qwad;
+
+  copy_to   (mask, 0,       0,       temp, copy);   /* 1 */
+  copy_to   (mask, 0,       qwad,    temp, or);     /* 2 */
+  copy_to   (self, 0,       0,       temp, and);    /* 3 */
+  copy_to   (temp, 0,       0,       self, xor);    /* 4 */
+  copy_from (temp, qwad,    0,       self, xor);    /* 5 */
+  copy_from (self, qwad,    0,       self, or);     /* 6 */
+  copy_to   (temp, qwad,    0,       self, xor);    /* 7 */
+  copy_to   (self, 0,       0,       temp, copy);   /* 8 */
+  copy_from (temp, qwad,    qwad,    self, xor);    /* 9 */
+  copy_to   (mask, 0,       0,       temp, and);    /* A */
+  copy_to   (temp, 0,       0,       self, xor);    /* B */
+  copy_to   (temp, qwad,    qwad,    self, xor);    /* C */
+  copy_from (mask, qwad>>1, qwad>>1, mask, and);    /* D */
+  copy_to   (mask, qwad,    0,       mask, or);     /* E */
+  copy_to   (mask, 0,       qwad,    mask, or);     /* F */
+  display   (st, st->self);
 
   st->qwad >>= 1;
   if (st->qwad == 0)  /* done with this round */
@@ -143,7 +221,6 @@ blitspin_draw (Display *dpy, Window window, void *closure)
 static int 
 to_pow2(struct state *st, int n, Bool up)
 {
-  /* sizeof(Dimension) == 2. */
   int powers_of_2[] = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024,
                        2048, 4096, 8192, 16384, 32768, 65536 };
   int i = 0;
@@ -185,14 +262,7 @@ blitspin_init (Display *d_arg, Window w_arg)
 
   if (!strcasecmp (bitmap_name, "(default)") ||
       !strcasecmp (bitmap_name, "default"))
-# ifdef HAVE_COCOA
-    /* I don't understand why it doesn't work with color images on OSX.
-       I guess "kCGBlendModeDarken" is not close enough to being "GXand".
-     */
-    bitmap_name = "(builtin)";
-# else
     bitmap_name = "(screen)";
-# endif
 
   if (!strcasecmp (bitmap_name, "(builtin)") ||
       !strcasecmp (bitmap_name, "builtin"))
@@ -205,6 +275,8 @@ blitspin_init (Display *d_arg, Window w_arg)
                                                 st->fg, st->bg, 
                                                 st->xgwa.depth);
       st->scale_up = True; /* definitely. */
+      st->loaded_p = True;
+      blitspin_init_2 (st);
     }
   else if (!strcasecmp (bitmap_name, "(screen)") ||
            !strcasecmp (bitmap_name, "screen"))
@@ -215,6 +287,7 @@ blitspin_init (Display *d_arg, Window w_arg)
       st->width = st->xgwa.width;
       st->height = st->xgwa.height;
       st->scale_up = True; /* maybe? */
+      st->load_ext_p = True;
       st->img_loader = load_image_async_simple (0, st->xgwa.screen, st->window,
                                             st->bitmap, 0, 0);
     }
@@ -245,40 +318,42 @@ blitspin_init_2 (struct state *st)
     if (st->size > h) st->size = h;
   }
 
-  st->self = XCreatePixmap (st->dpy, st->window, st->size, st->size, st->xgwa.depth);
-  st->temp = XCreatePixmap (st->dpy, st->window, st->size, st->size, st->xgwa.depth);
-  st->mask = XCreatePixmap (st->dpy, st->window, st->size, st->size, st->xgwa.depth);
+  if (st->self) XFreePixmap (st->dpy, st->self);
+  if (st->temp) XFreePixmap (st->dpy, st->temp);
+  if (st->mask) XFreePixmap (st->dpy, st->mask);
+
+  st->self = XCreatePixmap (st->dpy, st->window, st->size, st->size, 
+                            st->xgwa.depth);
+  st->temp = XCreatePixmap (st->dpy, st->window, st->size, st->size, 
+                            st->xgwa.depth);
+  st->mask = XCreatePixmap (st->dpy, st->window, st->size, st->size, 
+                            st->xgwa.depth);
   gcv.foreground = (st->xgwa.depth == 1 ? 1 : (~0));
-  gcv.function=GXset;  st->SET = XCreateGC(st->dpy,st->self,GCFunction|GCForeground,&gcv);
-  gcv.function=GXclear;st->CLR = XCreateGC(st->dpy,st->self,GCFunction|GCForeground,&gcv);
-  gcv.function=GXcopy; st->CPY = XCreateGC(st->dpy,st->self,GCFunction|GCForeground,&gcv);
-  gcv.function=GXor;   st->IOR = XCreateGC(st->dpy,st->self,GCFunction|GCForeground,&gcv);
-  gcv.function=GXand;  st->AND = XCreateGC(st->dpy,st->self,GCFunction|GCForeground,&gcv);
-  gcv.function=GXxor;  st->XOR = XCreateGC(st->dpy,st->self,GCFunction|GCForeground,&gcv);
+
+# ifdef USE_XCOPYAREA
+#  define make_gc(op) \
+    gcv.function=GX##op; \
+    if (st->gc_##op) XFreeGC (st->dpy, st->gc_##op); \
+    st->gc_##op = XCreateGC (st->dpy, st->self, GCFunction|GCForeground, &gcv)
+  make_gc(set);
+  make_gc(clear);
+  make_gc(copy);
+  make_gc(and);
+  make_gc(or);
+  make_gc(xor);
+# endif /* USE_XCOPYAREA */
 
   gcv.foreground = gcv.background = st->bg;
+  if (st->gc) XFreeGC (st->dpy, st->gc);
   st->gc = XCreateGC (st->dpy, st->window, GCForeground|GCBackground, &gcv);
-  /* Clear st->self to the background color (not to 0, which st->CLR does.) */
+  /* Clear st->self to the background color (not to 0, which 'clear' does.) */
   XFillRectangle (st->dpy, st->self, st->gc, 0, 0, st->size, st->size);
   XSetForeground (st->dpy, st->gc, st->fg);
 
-#if 0
-#ifdef HAVE_COCOA
-  jwxyz_XSetAntiAliasing (st->dpy, st->gc,  False);
-  jwxyz_XSetAntiAliasing (st->dpy, st->SET, False);
-  jwxyz_XSetAntiAliasing (st->dpy, st->CLR, False);
-  jwxyz_XSetAntiAliasing (st->dpy, st->CPY, False);
-  jwxyz_XSetAntiAliasing (st->dpy, st->IOR, False);
-  jwxyz_XSetAntiAliasing (st->dpy, st->AND, False);
-  jwxyz_XSetAntiAliasing (st->dpy, st->XOR, False);
-#endif /* HAVE_COCOA */
-#endif
-
-  XCopyArea (st->dpy, st->bitmap, st->self, st->CPY, 0, 0, 
+  XCopyArea (st->dpy, st->bitmap, st->self, st->gc, 0, 0, 
              st->width, st->height,
             (st->size - st->width)  >> 1,
              (st->size - st->height) >> 1);
-/*  XFreePixmap(st->dpy, st->bitmap);*/
 
   st->qwad = -1;
   st->first_time = 1;
@@ -334,6 +409,7 @@ blitspin_free (Display *dpy, Window window, void *closure)
 static const char *blitspin_defaults [] = {
   ".background:        black",
   ".foreground:        white",
+  ".fpsSolid:  true",
   "*delay:     500000",
   "*delay2:    500000",
   "*duration:  120",
index 17d28a6f65bd39507ffcb27b04b23a80d62b0deb..4a221dac5c63dd84ee7589b08d4aeaf981bc0fcd 100644 (file)
@@ -69,6 +69,9 @@ How long to delay between each 90-degree rotation, in microseconds.
 Default is 500000, one-half second.
 .B DISPLAY
 to get the default host and display number.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .B XENVIRONMENT
 to get the name of a resource file that overrides the global resources
index 143354b3d74d4a759d7c7098e14c03180f90a930..15bf2278441b01174e98bbb352c5f0cced89104d 100644 (file)
@@ -83,7 +83,8 @@ static const char sccsid[] = "@(#)bouboule.c  4.00 97/01/01 xlockmore";
                                        "*right3d:              red             \n"                     \
                                        "*left3d:               blue    \n"                     \
                                        "*both3d:               magenta \n"                     \
-                                       "*none3d:               black   \n"
+                                       "*none3d:               black   \n"                     \
+                                       "*fpsSolid:             true    \n"
 
 # define SMOOTH_COLORS
 # define reshape_bouboule 0
index b2a8df24d52d45e4248754f79032b0016e790a81..259490f5de76e3808a3cd468d2a0ce6f937edb8a 100644 (file)
@@ -5,6 +5,7 @@ bouboule - draws spinning 3D blobs
 .B bouboule
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP] [\-3d]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIbouboule\fP program draws spinning 3D blobs.
 .SH OPTIONS
@@ -41,6 +42,9 @@ the color wheel.
 .B \-3d
 Do red/blue 3d separations (for 3d glasses.)
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index ce1a4ad5429012795f62631b151f173ce63d4ea6..1fa42ca0e75d454d55e23bde6faf0965ec511683 100644 (file)
@@ -520,6 +520,7 @@ boxfit_free (Display *dpy, Window window, void *closure)
 static const char *boxfit_defaults [] = {
   ".background:                   black",
   ".foreground:                   #444444",
+  "*fpsSolid:             true",
   "*delay:                20000",
   "*mode:                 random",
   "*colors:               64",
@@ -553,4 +554,4 @@ static XrmOptionDescRec boxfit_options [] = {
 };
 
 
-XSCREENSAVER_MODULE ("Boxfit", boxfit)
+XSCREENSAVER_MODULE ("BoxFit", boxfit)
index ffd74419357d2ee9a4009aacd8aebfa687399904..ec157e3061499d1f8959a35ece3400a0194fb1da 100644 (file)
@@ -15,6 +15,7 @@ boxfit - fills space with a gradient of growing boxes or circles.
 [\-circles | \-squares | \-random]
 [\-grab]
 [\-peek]
+[\-fps]
 .SH DESCRIPTION
 Packs the screen with growing boxes or circles, colored according to a
 horizontal or vertical gradient.  The objects grow until they touch,
@@ -72,6 +73,9 @@ for more details.
 This option says to briefly show you the underlying image before
 beginning.  The default is not to show the unadulterated image at all.
 (This only has an effect when \fI\-grab\fP is used.)
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 1a802ff7fdbddb4a52fcdcaf9c2ec1df5e839aed..20eeed8ab66a858d42520f3ddb816f8fa7578964 100644 (file)
@@ -36,7 +36,9 @@ static const char sccsid[] = "@(#)braid.c     5.00 2000/11/01 xlockmore";
                                   "*count: 15 \n" \
                                   "*cycles: 100 \n" \
                                   "*size: -7 \n" \
-                                  "*ncolors: 64 \n"
+                                  "*ncolors: 64 \n" \
+                                  "*fpsSolid: true \n" \
+
 # define UNIFORM_COLORS
 # define reshape_braid 0
 # define braid_handle_event 0
@@ -49,8 +51,7 @@ static const char sccsid[] = "@(#)braid.c     5.00 2000/11/01 xlockmore";
 
 #ifdef MODE_braid
 
-ENTRYPOINT ModeSpecOpt braid_opts =
-{0, (XrmOptionDescRec *) NULL, 0, (argtype *) NULL, (OptionStruct *) NULL};
+ENTRYPOINT ModeSpecOpt braid_opts = {0, NULL, 0, NULL, NULL};
 
 #ifdef USE_MODULES
 ModStruct   braid_description =
index 65637afe87f8bca7f50530bd7b9a7ddb32666973..28f0c4d4662035a92fc613b3db31770f6ec0b376 100644 (file)
@@ -5,6 +5,7 @@ braid - draws random color-cycling braids around a circle
 .B braid
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIbraid\fP program draws random color-cycling braids around a circle.
 .SH OPTIONS
@@ -37,6 +38,9 @@ the color wheel.
 .TP 8
 .B \-count \fIinteger\fP
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 7800861bc47cbef1a320d4417bfcaa964e736210..0ad23e61b6e426e5c2424f400262eee9240f6a2e 100644 (file)
@@ -19,6 +19,7 @@ bsod - Blue Screen of Death emulator
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP]
 [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install]
 [\-visual \fIvisual\fP] [\-delay \fIseconds\fP]
+[\-fps]
 .SH DESCRIPTION
 The
 .I bsod
@@ -57,6 +58,9 @@ The delay between displaying one crash and another.
 .TP 8
 .B \-only \fIwhich\fP
 Tell it to run only one mode, e.g., \fI\-only HPUX\fP.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 50b54dac073e24339b80687d503723739c2e8554..54a0457432c189cbd44392c447708c26ee263e4c 100644 (file)
@@ -1,6 +1,6 @@
 /* bubbles.c - frying pan / soft drink in a glass simulation */
 
-/*$Id: bubbles.c,v 1.28 2006/03/13 11:41:31 jwz Exp $*/
+/*$Id: bubbles.c,v 1.30 2008/07/31 19:27:48 jwz Exp $*/
 
 /*
  *  Copyright (C) 1995-1996 James Macnicol
 static const char *bubbles_defaults [] = {
   ".background:                black",
   ".foreground:                white",
+  "*fpsSolid:          true",
   "*simple:            false",
   "*broken:            false",
-  "*delay:             800",
+  "*delay:             10000",
   "*quiet:             false", 
-  "*nodelay:           false",
   "*mode:              float",
   "*trails:            false",
   "*3D:                        false",
@@ -91,7 +91,6 @@ static XrmOptionDescRec bubbles_options [] = {
   { "-broken",          ".broken",      XrmoptionNoArg, "true" },
 #endif
   { "-quiet",           ".quiet",       XrmoptionNoArg, "true" },
-  { "-nodelay",         ".nodelay",     XrmoptionNoArg, "true" },
   { "-3D",          ".3D",      XrmoptionNoArg, "true" },
   { "-delay",           ".delay",       XrmoptionSepArg, 0 },
   { "-mode",            ".mode",        XrmoptionSepArg, 0 },
@@ -1245,7 +1244,7 @@ static void
 get_resources(struct state *st)
 /* Get the appropriate X resources and warn about any inconsistencies. */
 {
-  Bool nodelay, rise;
+  Bool rise;
   XWindowAttributes xgwa;
   Colormap cmap;
   char *s;
@@ -1263,11 +1262,6 @@ get_resources(struct state *st)
     st->simple = True;
   }
   st->delay = get_integer_resource(st->dpy, "delay", "Integer");
-  nodelay = get_boolean_resource(st->dpy, "nodelay", "Boolean");
-  if (nodelay)
-    st->delay = 0;
-  if (st->delay < 0)
-    st->delay = 0;
 
   s = get_string_resource (st->dpy, "mode", "Mode");
   rise = False;
@@ -1406,11 +1400,13 @@ static unsigned long
 bubbles_draw (Display *dpy, Window window, void *closure)
 {
   struct state *st = (struct state *) closure;
-  Bubble *tmp;
-
-  tmp = new_bubble(st);
-  add_to_mesh(st, tmp);
-  insert_new_bubble(st, tmp);
+  int i;
+  for (i = 0; i < 5; i++)
+    {
+      Bubble *tmp = new_bubble(st);
+      add_to_mesh(st, tmp);
+      insert_new_bubble(st, tmp);
+    }
   return st->delay;
 }
 
index 268929de91258b44231ba6e16e2c8082315d38d4..f9b892e62b38a0e90772daa335054443235f5f26 100644 (file)
@@ -17,6 +17,7 @@ bubbles - frying pan / soft drink simulation
 .SH SYNOPSIS
 .B bubbles
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-simple] [\-broken] [\-3D] [\-rise|\-drop] [-trails]
+[\-fps]
 .SH DESCRIPTION
 \fIBubbles\fP sprays lots of little random bubbles all over the window which
 then grow until they reach their maximum size and go pop.  The inspiration
@@ -85,6 +86,9 @@ were ignored.  This is disabled by default.
 .B \-rise | \-drop 
 .TP 8
 .B \-trails
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH NOTES
 If you find the pace of things too slow, remember that there is a delay
 even though you specify no \fI\-delay\fP option.  Try using \fI\-nodelay\fP
index 094d31306c95485df70edd3e947ab0f35a72dcf2..c65d46f0c507f73248e714d5a01a18b54d009e25 100644 (file)
  *                                                      for code optimization.
  */
 
-#include "bumps.h"
+
+#include <math.h>
+#include "screenhack.h"
+
+#ifdef HAVE_XSHM_EXTENSION
+#include "xshm.h"
+#endif /* HAVE_XSHM_EXTENSION */
+
+
+/* Defines: */
+/* #define VERBOSE */
+#define RANDOM() ((int) (random() & 0X7FFFFFFFL))
+
+typedef signed char            int8_;
+typedef unsigned char  uint8_;
+typedef short                  int16_;
+typedef unsigned short uint16_;
+typedef long                   int32_;
+typedef unsigned long  uint32_;
+typedef unsigned char  BOOL;
+
+
+/* Globals: */
+
+static const char *bumps_defaults [] = {
+  ".background: black",
+  ".foreground: white",
+  "*fpsSolid:  true",
+  "*color:             random",
+  "*colorcount:        64",
+  "*delay:             30000",
+  "*duration:  120",
+  "*soften:            1",
+  "*invert:            FALSE",
+#ifdef __sgi    /* really, HAVE_READ_DISPLAY_EXTENSION */
+  "*visualID:  Best",
+#endif
+#ifdef HAVE_XSHM_EXTENSION
+  "*useSHM:            True",
+#endif /* HAVE_XSHM_EXTENSION */
+  0
+};
+
+static XrmOptionDescRec bumps_options [] = {
+  { "-color",          ".color",               XrmoptionSepArg, 0 },
+  { "-colorcount",     ".colorcount",  XrmoptionSepArg, 0 },
+  { "-duration",       ".duration",    XrmoptionSepArg, 0 },
+  { "-delay",          ".delay",               XrmoptionSepArg, 0 },
+  { "-soften",         ".soften",              XrmoptionSepArg, 0 },
+  { "-invert",         ".invert",              XrmoptionNoArg, "TRUE" },
+#ifdef HAVE_XSHM_EXTENSION
+  { "-shm",                    ".useSHM",              XrmoptionNoArg, "True" },
+  { "-no-shm",         ".useSHM",              XrmoptionNoArg, "False" },
+#endif /* HAVE_XSHM_EXTENSION */
+
+  { 0, 0, 0, 0 }
+};
+
+
+/* This structure handles everything to do with the spotlight, and is designed to be
+ * a member of TBumps. */
+typedef struct
+{
+       uint8_ *aLightMap;
+       uint16_ nFalloffDiameter, nFalloffRadius;
+       uint16_ nLightDiameter, nLightRadius;
+       float nAccelX, nAccelY;
+       float nAccelMax;
+       float nVelocityX, nVelocityY;
+       float nVelocityMax;
+       float nXPos, nYPos;
+} SSpotLight;
+
+
+/* The entire program's operation is contained within this structure. */
+typedef struct
+{
+       /* XWindows specific variables. */
+       Display *dpy;
+       Window Win;
+       Screen *screen;
+        Pixmap source;
+       GC GraphicsContext;
+       XColor *xColors;
+       uint32_ *aColors;
+       XImage *pXImage;
+#ifdef HAVE_XSHM_EXTENSION
+       XShmSegmentInfo XShmInfo;
+       Bool    bUseShm;
+#endif /* HAVE_XSHM_EXTENSION */
+
+       uint8_ nColorCount;                             /* Number of colors used. */
+       uint8_ bytesPerPixel;
+       uint16_ iWinWidth, iWinHeight;
+       uint16_ *aBumpMap;                              /* The actual bump map. */
+       SSpotLight SpotLight;
+
+        int delay;
+        int duration;
+        time_t start_time;
+
+        async_load_state *img_loader;
+} SBumps;
+
 
 static void SetPalette(Display *, SBumps *, XWindowAttributes * );
 static void InitBumpMap(Display *, SBumps *, XWindowAttributes * );
diff --git a/hacks/bumps.h b/hacks/bumps.h
deleted file mode 100644 (file)
index afac1b1..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/* Bumps, Copyright (c) 2001 Shane Smit <CodeWeaver@DigitalLoom.org>
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation.  No representations are made about the suitability of this
- * software for any purpose.  It is provided "as is" without express or
- * implied warranty.
- *
- * Module: "Bumps.h"
- * Tab Size: 4
- *
- * Description:
- *  Header file for module "Bumps.c"
- *
- * Modification History:
- *  [10/01/99] - Shane Smit: Creation
- *  [10/08/99] - Shane Smit: Port to C. (Ick)
- *  [03/08/02] - Shane Smit: New movement code.
- *  [09/12/02] - Shane Smit: MIT-SHM XImages.
- *                                                      Thanks to Kennett Galbraith <http://www.Alpha-II.com/>
- *                                                      for code optimization.
- */
-
-
-#ifndef _BUMPS_H
-#define _BUMPS_H
-
-
-#include <math.h>
-#include "screenhack.h"
-
-#ifdef HAVE_XSHM_EXTENSION
-#include "xshm.h"
-#endif /* HAVE_XSHM_EXTENSION */
-
-
-/* Defines: */
-/* #define VERBOSE */
-#define RANDOM() ((int) (random() & 0X7FFFFFFFL))
-
-typedef signed char            int8_;
-typedef unsigned char  uint8_;
-typedef short                  int16_;
-typedef unsigned short uint16_;
-typedef long                   int32_;
-typedef unsigned long  uint32_;
-typedef unsigned char  BOOL;
-
-
-/* Globals: */
-
-static const char *bumps_defaults [] = {
-  ".background: black",
-  ".foreground: white",
-  "*color:             random",
-  "*colorcount:        64",
-  "*delay:             30000",
-  "*duration:  120",
-  "*soften:            1",
-  "*invert:            FALSE",
-#ifdef __sgi    /* really, HAVE_READ_DISPLAY_EXTENSION */
-  "*visualID:  Best",
-#endif
-#ifdef HAVE_XSHM_EXTENSION
-  "*useSHM:            True",
-#endif /* HAVE_XSHM_EXTENSION */
-  0
-};
-
-static XrmOptionDescRec bumps_options [] = {
-  { "-color",          ".color",               XrmoptionSepArg, 0 },
-  { "-colorcount",     ".colorcount",  XrmoptionSepArg, 0 },
-  { "-duration",       ".duration",    XrmoptionSepArg, 0 },
-  { "-delay",          ".delay",               XrmoptionSepArg, 0 },
-  { "-soften",         ".soften",              XrmoptionSepArg, 0 },
-  { "-invert",         ".invert",              XrmoptionNoArg, "TRUE" },
-#ifdef HAVE_XSHM_EXTENSION
-  { "-shm",                    ".useSHM",              XrmoptionNoArg, "True" },
-  { "-no-shm",         ".useSHM",              XrmoptionNoArg, "False" },
-#endif /* HAVE_XSHM_EXTENSION */
-
-  { 0, 0, 0, 0 }
-};
-
-
-/* This structure handles everything to do with the spotlight, and is designed to be
- * a member of TBumps. */
-typedef struct
-{
-       uint8_ *aLightMap;
-       uint16_ nFalloffDiameter, nFalloffRadius;
-       uint16_ nLightDiameter, nLightRadius;
-       float nAccelX, nAccelY;
-       float nAccelMax;
-       float nVelocityX, nVelocityY;
-       float nVelocityMax;
-       float nXPos, nYPos;
-} SSpotLight;
-
-void CreateTables( SSpotLight * );
-
-
-/* The entire program's operation is contained within this structure. */
-typedef struct
-{
-       /* XWindows specific variables. */
-       Display *dpy;
-       Window Win;
-       Screen *screen;
-        Pixmap source;
-       GC GraphicsContext;
-       XColor *xColors;
-       uint32_ *aColors;
-       XImage *pXImage;
-#ifdef HAVE_XSHM_EXTENSION
-       XShmSegmentInfo XShmInfo;
-       Bool    bUseShm;
-#endif /* HAVE_XSHM_EXTENSION */
-
-       uint8_ nColorCount;                             /* Number of colors used. */
-       uint8_ bytesPerPixel;
-       uint16_ iWinWidth, iWinHeight;
-       uint16_ *aBumpMap;                              /* The actual bump map. */
-       SSpotLight SpotLight;
-
-        int delay;
-        int duration;
-        time_t start_time;
-
-        async_load_state *img_loader;
-} SBumps;
-
-
-#endif /* _BUMPS_H */
-
-
-/* vim: ts=4
- */
index d6f80145b80863ca44b41fbadc4d612b8907eead..8e4718403ea9b50f85935360009cc32d0a8afa24 100644 (file)
@@ -13,6 +13,7 @@ bumps - move distorting spotlight around desktop
 [\-visual \fIvisual\fP]
 [\-delay \fIusecs\fP]
 [\-duration \fIsecs\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIbumps\fP program takes an image and exposes small, distorted
 sections of it as if through an odd wandering spotlight beam.
@@ -50,6 +51,9 @@ Slow it down.
 .TP 8
 .B \-duration \fIseconds\fP
 How long to run before loading a new image.  Default 120 seconds.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 02cb0ba329e87da2dd375f9c2f59b983384342b6..27645d7fa918a4a46aeab04e1771079b5f54840b 100644 (file)
@@ -178,7 +178,7 @@ realign (double    x1,
     }
 }
 
-static void
+static Bool
 self_similar_normalized (struct state *st,
                         int       iterations,
                         double    x1,
@@ -228,24 +228,36 @@ self_similar_normalized (struct state *st,
        assert (fabs ((replacement [segment_count - 1].x) - 1.0) < EPSILON);
        assert (fabs (replacement [segment_count - 1].y) < EPSILON);
        realign (x1, y1, x2, y2, segment_count, replacement);
-       assert (fabs (x2 - (replacement [segment_count - 1].x)) < EPSILON);
-       assert (fabs (y2 - (replacement [segment_count - 1].y)) < EPSILON);
+        /* jwz: I don't understand what these assertions are supposed to
+           be detecting, but let's just bail on the fractal instead of
+           crashing. */
+/*     assert (fabs (x2 - (replacement [segment_count - 1].x)) < EPSILON);
+       assert (fabs (y2 - (replacement [segment_count - 1].y)) < EPSILON);*/
+        if (fabs (x2 - (replacement [segment_count - 1].x)) >= EPSILON ||
+            fabs (y2 - (replacement [segment_count - 1].y)) >= EPSILON) {
+          free (replacement);
+          return False;
+        }
        x = x1;
        y = y1;
        for (index = 0; index < segment_count; ++index)
        {
            next_x = replacement [index].x;
            next_y = replacement [index].y;
-           self_similar_normalized (st, 
+           if (!self_similar_normalized (st, 
                                     iterations - 1, x, y, next_x, next_y,
                                     maximum_x, maximum_y,
                                     minimum_x, minimum_y,
-                                    segment_count, points);
+                                    segment_count, points)) {
+              free(replacement);
+              return False;
+            }
            x = next_x;
            y = next_y;
        }
-        free((void*)replacement);
+        free(replacement);
     }
+    return True;
 }
 
 static void
index c06dafe8234b38256b5afcee4a9c1ae2dd51be59..93b81fc15b04cb1d2f7d0c9344822148f70a2a1f 100644 (file)
@@ -10,6 +10,7 @@ ccurve - self-similar linear fractals.
 [\-delay \fInumber\fP]
 [\-pause \fInumber\fP]
 [\-limit \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Generates self-similar linear fractals, including the classic ``C Curve.''
 .SH OPTIONS
@@ -32,6 +33,9 @@ Duration.  1 - 60.  Default: 3.
 .TP 8
 .B \-limit \fInumber\fP
 Density.  3 - 300000.  Default: 200000.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 92cba9c87c041eefe2683fa51a1e42bcfd1b0250..a6094a42f55187639a0a185b9f57af6894333e78 100644 (file)
@@ -835,6 +835,7 @@ static void pattern_animate(struct state *st)
 static const char *celtic_defaults[] = {
     ".background: black",
     ".foreground: #333333",
+    "*fpsSolid:        true",
     "*ncolors: 20",
     "*delay: 10000",
     "*delay2: 5",
index 7f564fa917aba41a72dd96e8e6e185fe3821ac6e..9747cd5e48dcbc48ee15cebddd91594e5eec3dda 100644 (file)
@@ -11,6 +11,7 @@ celtic - draws celtic cross-stich patterns
 [\-delay2 \fInumber\fP]
 [\-ncolors \fInumber\fP]
 [\-graph \fImode\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIceltic\fP program repeatedly draws random cross-stitch patterns.
 .SH OPTIONS
@@ -36,6 +37,9 @@ Number of colours to use. Default: 20.
 .TP 8
 .B \-graph
 Whether to render the underlying graph.  Default: no.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
diff --git a/hacks/check-configs.pl b/hacks/check-configs.pl
new file mode 100755 (executable)
index 0000000..28beb6f
--- /dev/null
@@ -0,0 +1,340 @@
+#!/usr/bin/perl -w
+# Copyright Â© 2008 Jamie Zawinski <jwz@jwz.org>
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation.  No representations are made about the suitability of this
+# software for any purpose.  It is provided "as is" without express or 
+# implied warranty.
+#
+# This parses the .c and .xml files and makes sure they are in sync: that
+# options are spelled the same, and that all the numbers are in sync.
+#
+# Created:  1-Aug-2008.
+
+require 5;
+use diagnostics;
+use strict;
+
+my $progname = $0; $progname =~ s@.*/@@g;
+my $version = q{ $Revision: 1.2 $ }; $version =~ s/^[^\d]+([\d.]+).*/$1/;
+
+my $verbose = 0;
+
+
+my $xlockmore_default_opts = '';
+foreach (qw(count cycles delay ncolors size font)) {
+  $xlockmore_default_opts .= "{\"-$_\", \".$_\", XrmoptionSepArg, 0},\n";
+}
+$xlockmore_default_opts .= 
+ "{\"-wireframe\", \".wireframe\", XrmoptionNoArg, \"true\"},\n" .
+ "{\"-3d\", \".use3d\", XrmoptionNoArg, \"true\"},\n";
+
+
+# Returns two tables:
+# - A table of the default resource values.
+# - A table of "-switch" => "resource: value", or "-switch" => "resource: %"
+#
+sub parse_src($) {
+  my ($saver) = @_;
+  my $file = lc($saver) . ".c";
+
+  # kludge...
+  $file = 'apple2-main.c' if ($file eq 'apple2.c');
+  $file = 'sproingiewrap.c' if ($file eq 'sproingies.c');
+  $file = 'b_lockglue.c' if ($file eq 'bubble3d.c');
+  $file = 'polyhedra-gl.c' if ($file eq 'polyhedra.c');
+
+  $file = "glx/$file" unless (-f $file);
+  my $body = '';
+  local *IN;
+  open (IN, "<$file") || error ("$file: $!");
+  while (<IN>) { $body .= $_; }
+  close IN;
+  $file =~ s@^.*/@@;
+
+  $body =~ s@/\*.*?\*/@@gs;
+  $body =~ s@^#\s*(if|ifdef|ifndef|elif|else|endif).*$@@gm;
+  $body =~ s/ANALOGTV_(DEFAULTS|OPTIONS)//gs;
+
+  my $xlockmore_p = 0;
+
+  print STDERR "$progname: $file: defaults:\n" if ($verbose > 2);
+  my %res_to_val;
+  if ($body =~ m/_defaults\s*\[\]\s*=\s*{(.*?)}\s*;/s) {
+    foreach (split (/,\s*\n/, $1)) {
+      s/^\s*//s;
+      s/\s*$//s;
+      next if m/^0?$/s;
+      my ($key, $val) = m@^\"([^:\s]+)\s*:\s*(.*?)\s*\"$@;
+      print STDERR "$progname: $file: unparsable: $_\n" unless $key;
+      $key =~ s/^[.*]//s;
+      $res_to_val{$key} = $val;
+      print STDERR "$progname: $file:   $key = $val\n" if ($verbose > 2);
+    }
+  } elsif ($body =~ m/\#\s*define\s*DEFAULTS\s*\\?\s*(.*?)\n[\n#]/s) {
+    $xlockmore_p = 1;
+    my $str = $1;
+    $str =~ s/\"\s*\\\n\s*\"//gs;
+    $str =~ m/^\s*\"(.*?)\"\s*\\?\s*$/ || 
+      error ("$file: unparsable defaults: $str");
+    $str = $1;
+    $str =~ s/\s*\\n\s*/\n/gs;
+    foreach (split (/\n/, $str)) {
+      my ($key, $val) = m@^([^:\s]+)\s*:\s*(.*?)\s*$@;
+      print STDERR "$progname: $file: unparsable: $_\n" unless $key;
+      $key =~ s/^[.*]//s;
+      $res_to_val{$key} = $val;
+      print STDERR "$progname: $file:   $key = $val\n" if ($verbose > 2);
+    }
+
+    while ($body =~ s/^#\s*define\s+(DEF_([A-Z\d_]+))\s+\"([^\"]+)\"//m) {
+      my ($key1, $key2, $val) = ($1, lc($2), $3);
+      $key2 =~ s/_(.)/\U$1/gs;  # "foo_bar" -> "fooBar"
+      $key2 =~ s/Rpm/RPM/;      # kludge
+      $res_to_val{$key2} = $val;
+      print STDERR "$progname: $file:   $key1 ($key2) = $val\n" 
+        if ($verbose > 2);
+    }
+
+  } else {
+    error ("$file: no defaults");
+  }
+
+  $body =~ m/XSCREENSAVER_MODULE(_2)?\s*\(\s*\"([^\"]+)\"/ ||
+    error ("$file: no module name");
+  $res_to_val{progclass} = $2;
+  $res_to_val{doFPS} = 'false';
+  print STDERR "$progname: $file:   progclass = $2\n" if ($verbose > 2);
+
+  print STDERR "$progname: $file: switches to resources:\n"
+    if ($verbose > 2);
+  my %switch_to_res;
+  $switch_to_res{-fps}  = 'doFPS: true';
+
+  my ($ign, $opts) = ($body =~ m/(_options|\bopts)\s*\[\]\s*=\s*{(.*?)}\s*;/s);
+  if  ($xlockmore_p || $opts) {
+    $opts = '' unless $opts;
+    $opts .= ",\n$xlockmore_default_opts" if ($xlockmore_p);
+    foreach (split (/,\s*\n/, $opts)) {
+      s/^\s*//s;
+      s/\s*$//s;
+      next if m/^$/s;
+      next if m/^{\s*0\s*,/s;
+      my ($switch, $res, $type, $v0, $v1, $v2) =
+        m@^ \s* { \s * \"([^\"]+)\" \s* ,
+                  \s * \"([^\"]+)\" \s* ,
+                  \s * ([^\s]+)     \s* ,
+                  \s * (\"([^\"]*)\"|([a-zA-Z\d_]+)) \s* }@xi;
+      print STDERR "$progname: $file: unparsable: $_\n" unless $switch;
+      my $val = defined($v1) ? $v1 : $v2;
+      $val = '%' if ($type eq 'XrmoptionSepArg');
+      $res =~ s/^[.*]//s;
+      $res =~ s/^[a-z\d]+\.//si;
+      $switch =~ s/^\+/-no-/s;
+
+      $val = "$res: $val";
+      if (defined ($switch_to_res{$switch})) {
+        print STDERR "$progname: $file:   DUP! $switch = \"$val\"\n" 
+          if ($verbose > 2);
+      } else {
+        $switch_to_res{$switch} = $val;
+        print STDERR "$progname: $file:   $switch = \"$val\"\n" 
+          if ($verbose > 2);
+      }
+    }
+  } else {
+    error ("$file: no options");
+  }
+
+  return (\%res_to_val, \%switch_to_res);
+}
+
+# Returns a list of:
+#    "resource = default value"
+# or "resource != non-default value"
+#
+sub parse_xml($$) {
+  my ($saver, $switch_to_res) = @_;
+  my $file = "config/" . lc($saver) . ".xml";
+  my $body = '';
+  local *IN;
+  open (IN, "<$file") || error ("$file: $!");
+  while (<IN>) { $body .= $_; }
+  close IN;
+  $file =~ s@^.*/@@;
+
+  my @result = ();
+
+  $body =~ s/<!--.*?-->/ /gsi;
+
+  $body =~ s/\s+/ /gs;
+  $body =~ s/</\001</gs;
+  $body =~ s/\001(<option)/$1/gs;
+
+  print STDERR "$progname: $file: options:\n" if ($verbose > 2);
+  foreach (split (m/\001/, $body)) {
+    next if (m/^\s*$/s);
+    my ($type, $args) = m@^<([?/]?[-_a-z]+)\b\s*(.*)$@si;
+    error ("$progname: $file: unparsable: $_") unless $type;
+    next if ($type =~ m@^/@);
+
+    if ($type =~ m/^([hv]group|\?xml|command|string|file|_description|xscreensaver-(image|text))/s) {
+
+    } elsif ($type eq 'screensaver') {
+      my ($name) = ($args =~ m/\b_label\s*=\s*\"([^\"]+)\"/);
+      my $val = "progclass = $name";
+      push @result, $val;
+      print STDERR "$progname: $file:   name:    $name\n" if ($verbose > 2);
+
+    } elsif ($type eq 'number') {
+      my ($arg) = ($args =~ m/\barg\s*=\s*\"([^\"]+)\"/);
+      my ($val) = ($args =~ m/\bdefault\s*=\s*\"([^\"]+)\"/);
+      $val = '' unless defined($val);
+
+      my $switch = $arg;
+      $switch =~ s/\s+.*$//;
+      my ($res) = $switch_to_res->{$switch};
+      error ("$file: no resource for $type switch \"$arg\"") unless $res;
+      $res =~ s/: \%$//;
+      error ("$file: unparsable value: $res") if ($res =~ m/:/);
+      $val = "$res = $val";
+      push @result, $val;
+      print STDERR "$progname: $file:   number:  $val\n" if ($verbose > 2);
+
+    } elsif ($type eq 'boolean') {
+      my ($set)   = ($args =~ m/\barg-set\s*=\s*\"([^\"]+)\"/);
+      my ($unset) = ($args =~ m/\barg-unset\s*=\s*\"([^\"]+)\"/);
+      my ($arg) = $set || $unset || error ("$file: unparsable: $args");
+      my ($res) = $switch_to_res->{$arg};
+        error ("$file: no resource for boolean switch \"$arg\"") unless $res;
+      my ($res2, $val) = ($res =~ m/^(.*?): (.*)$/s);
+      error ("$file: unparsable boolean resource: $res") unless $res2;
+      $res = $res2;
+#      $val = ($set ? "$res != $val" : "$res = $val");
+      $val = "$res != $val";
+      push @result, $val;
+      print STDERR "$progname: $file:   boolean: $val\n" if ($verbose > 2);
+
+    } elsif ($type eq 'select') {
+      $args =~ s/</\001</gs;
+      my @opts = split (/\001/, $args);
+      shift @opts;
+      my $unset_p = 0;
+      my $this_res = undef;
+      foreach (@opts) {
+        error ("$file: unparsable: $_") unless (m/^<option\s/);
+        my ($set) = m/\barg-set\s*=\s*\"([^\"]+)\"/;
+        if ($set) {
+          my ($set2, $val) = ($set =~ m/^(.*?) (.*)$/s);
+          $set = $set2 if ($set2);
+          my ($res) = $switch_to_res->{$set};
+          error ("$file: no resource for select switch \"$set\"") unless $res;
+
+          my ($res2, $val2) = ($res =~ m/^(.*?): (.*)$/s);
+          error ("$file: unparsable select resource: $res") unless $res2;
+          $res = $res2;
+          $val = $val2 unless ($val2 eq '%');
+
+          error ("$file: mismatched resources: $res vs $this_res")
+            if (defined($this_res) && $this_res ne $res);
+          $this_res = $res;
+
+          $val = "$res != $val";
+          push @result, $val;
+          print STDERR "$progname: $file:   select:  $val\n" if ($verbose > 2);
+
+        } else {
+          error ("$file: multiple default options: $set") if ($unset_p);
+          $unset_p++;
+        }
+      }
+
+    } else {
+      error ("$file: unknown type \"$type\" for no arg");
+    }
+  }
+
+  return @result;
+}
+
+
+sub check_config($) {
+  my ($saver) = @_;
+
+  # kludge
+  return 0 if ($saver =~ m/(-helper|hypertorus|polytopes)$/);
+
+  my ($src_opts, $switchmap) = parse_src ($saver);
+  my (@xml_opts) = parse_xml ($saver, $switchmap);
+
+  my $failures = 0;
+  foreach my $claim (@xml_opts) {
+    my ($res, $compare, $xval) = ($claim =~ m/^(.*) (=|!=) (.*)$/s);
+    error ("$saver: unparsable xml claim: $_") unless $compare;
+
+    my $sval = $src_opts->{$res};
+    if (!defined($sval)) {
+      print STDERR "$progname: $saver: $res: not in source\n";
+    } elsif ($compare eq '!='
+             ? $sval eq $xval
+             : $sval ne $xval) {
+      print STDERR "$progname: $saver: " .
+        "src has \"$res = $sval\", xml has \"$claim\"\n";
+      $failures++;
+    } elsif ($verbose > 1) {
+      print STDERR "$progname: $saver: OK: \"$res = $sval\" vs \"$claim\"\n";
+    }
+  }
+
+  # Now make sure the progclass in the source and XML also matches
+  # the XCode target name.
+  #
+  my $obd = "../OSX/build/Debug";
+  if (-d $obd) {
+    my $progclass = $src_opts->{progclass};
+    my $f = (glob("$obd/$progclass.saver*"))[0];
+    if (!$f && $progclass ne 'Flurry') {
+      print STDERR "$progname: $progclass.saver does not exist\n";
+      $failures++;
+    }
+  }
+
+  print STDERR "$progname: $saver: OK\n"
+    if ($verbose == 1 && $failures == 0);
+
+  return $failures;
+}
+
+
+sub error($) {
+  my ($err) = @_;
+  print STDERR "$progname: $err\n";
+  exit 1;
+}
+
+sub usage() {
+  print STDERR "usage: $progname [--verbose] files ...\n";
+  exit 1;
+}
+
+sub main() {
+  my @files = ();
+  while ($#ARGV >= 0) {
+    $_ = shift @ARGV;
+    if (m/^--?verbose$/) { $verbose++; }
+    elsif (m/^-v+$/) { $verbose += length($_)-1; }
+    elsif (m/^-./) { usage; }
+    else { push @files, $_; }
+#    else { usage; }
+  }
+
+  usage unless ($#files >= 0);
+  my $failures = 0;
+  foreach (@files) { $failures += check_config($_); }
+  exit ($failures);
+}
+
+main();
index 8d898d8f35841208ab626cf2f608b6a037e4b76e..911b99be27bd8d2c6581a5e5e59d8faed492bed8 100644 (file)
@@ -390,6 +390,7 @@ cloudlife_free (Display *dpy, Window window, void *closure)
 static const char *cloudlife_defaults[] = {
     ".background:      black",
     ".foreground:      blue",
+    "*fpsSolid:        true",
     "*cycleDelay:      25000",
     "*cycleColors:      2",
     "*ncolors:          64",
@@ -412,4 +413,4 @@ static XrmOptionDescRec cloudlife_options[] = {
 };
 
 
-XSCREENSAVER_MODULE ("Cloudlife", cloudlife)
+XSCREENSAVER_MODULE ("CloudLife", cloudlife)
index 00cbfec2e01655c03393c2191e76cb04c10f1ade..35eae126cea453a7cd8e01f7a2131b20285976b8 100644 (file)
@@ -5,6 +5,7 @@ cloudlife - a cellular automaton based on Conway's Life
 .B cloudlife
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-cycle-delay \fImicroseconds\fP] [\-cycle-colors \fIinteger\fP][\-cell-size \fIinteger\fP] [\-initial-density \fIinteger\fP] [\-max-age \fIinteger\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIcloudlife\fP program draws a cellular
 automaton based on Conway's Life, except that
@@ -50,8 +51,9 @@ field is repopulated.  Default 30.
 .TP 8
 .B \-max-age \fIinteger\fP
 Maximum age for a cell.  Default 64.
-
-
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 86ea04433bd32d3f6d1fda7d82489bdc954a993d..8d7cc7e1ec8d0444b572e76a10ba958c748742ec 100644 (file)
@@ -9,6 +9,7 @@ compass - draws a spinning compass.
 [\-root]
 [\-delay \fInumber\fP]
 [\-no-db]
+[\-fps]
 .SH DESCRIPTION
 This draws a compass, with all elements spinning about randomly, for that
 ``lost and nauseous'' feeling.
@@ -29,6 +30,9 @@ Per-frame delay, in microseconds.  Default: 20000 (0.02 seconds.).
 .TP 8
 .B \-db | \-no-db
 Double Buffer. Boolean.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 2a59158cd2c9d6471fc9f28166ff25145b822412..96d04d69c4c95e60c2102d04b186a28bcd8ee251 100644 (file)
@@ -47,6 +47,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLUIDBALLS.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FONTGLIDE.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FOREST.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FPS.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FUZZYFLAKES.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GALAXY.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GOOP.C
index 2a59158cd2c9d6471fc9f28166ff25145b822412..96d04d69c4c95e60c2102d04b186a28bcd8ee251 100644 (file)
@@ -47,6 +47,7 @@ $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FLUIDBALLS.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FONTGLIDE.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FOREST.C
+$ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FPS.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) FUZZYFLAKES.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GALAXY.C
 $ CC/DECC/PREFIX=ALL/DEFINE=(VMS,HAVE_CONFIG_H,STANDALONE)/INCL=([],[-],[-.UTILS]) GOOP.C
index df490d302dbb1173cc38bca528a4641c2f9d9c09..ec3cb5f82994f6789c184afa790a410448383c75 100644 (file)
@@ -4,8 +4,8 @@
             a screen saver and locker for the X window system
                             by Jamie Zawinski
 
-                              version 5.06
-                               16-Jul-2008
+                              version 5.07
+                               10-Aug-2008
 
                      http://www.jwz.org/xscreensaver/
 
index 6e409e5510746c9b25dc9de330fdaa565595ccc9..879da91c270f6ca51baad46fe58fc68365279da7 100644 (file)
@@ -4,23 +4,26 @@
 
   <command arg="-root"/>
 
-  <number id="sleep" type="spinbutton" arg="-sleep %"
-            _label="Linger" low="0" high="60" default="2"/>
-
   <number id="speed" type="slider" arg="-speed %"
           _label="Speed" _low-label="Slow" _high-label="Fast"
           low="0" high="5" default="3"/>
 
+  <number id="sleep" type="slider" arg="-sleep %"
+            _label="Linger" _low-label="0 seconds" _high-label="60 seconds"
+            low="0" high="60" default="3"/>
+
   <select id="tile">
-    <option id="random" _label="Random"/>
-    <option id="random" _label="Flat"    arg-set="-tile flat"/>
-    <option id="random" _label="Thin"    arg-set="-tile thin"/>
-    <option id="random" _label="Outline" arg-set="-tile outline"/>
-    <option id="random" _label="Block"   arg-set="-tile block"/>
-    <option id="random" _label="Neon"    arg-set="-tile neon"/>
-    <option id="random" _label="Tiled"   arg-set="-tile tiled"/>
+    <option id="random" _label="Random tile layout"/>
+    <option id="random" _label="Flat tiles"    arg-set="-tile flat"/>
+    <option id="random" _label="Thin tiles"    arg-set="-tile thin"/>
+    <option id="random" _label="Outline tiles" arg-set="-tile outline"/>
+    <option id="random" _label="Block tiles"   arg-set="-tile block"/>
+    <option id="random" _label="Neon tiles"    arg-set="-tile neon"/>
+    <option id="random" _label="Tiled tiles"   arg-set="-tile tiled"/>
   </select>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Generates mosaic patterns of interlocking tiles.  
 
index d872b8b08e4dcb5af482543cac835476dea532a4..d951149ec7188257dd1b2e121cf41b784030629f 100644 (file)
 
 <!--
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="2" high="255" default="64"/>
 -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Wiggling tentacles.
 
index 7f49e8d38fe5358bf9f0f194e94a0bf5c9c5166e..2f5da19c0c0e1b134c6286fff540527efe23a55b 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="60000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <number id="distance" type="slider" arg="-distance %"
            _label="Searchers" _low-label="Few" _high-label="Many"
           low="1" high="100" default="25"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Anemotaxis demonstrates a search algorithm designed for locating a
 source of odor in turbulent atmosphere.  The searcher is able to sense
 the odor and determine local instantaneous wind direction.  The goal is
 to find the source in the shortest mean time.
 
+http://en.wikipedia.org/wiki/Anemotaxis
+
 Written by Eugene Balkovsky; 2004.
   </_description>
 </screensaver>
index 4e300e7b0163145826d9099a59f58c1c93338454..b2a59928985a96bb17e67795df78a5ae59b52312 100644 (file)
@@ -4,44 +4,47 @@
 
   <command arg="-root"/>
 
-  <boolean id="sharpturn" _label="Sharp Turns" arg-set="-sharpturn"/>
-
-  <boolean id="truchet" _label="Truchet Lines" arg-set="-truchet"/>
-
-  <boolean id="eyes" _label="Draw Eyes" arg-set="-eyes"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="1000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Timeout" _low-label="Small" _high-label="Large"
           low="0" high="800000" default="40000"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Ants Count" low="-20" high="20" default="-3"/>
+  <hgroup>
+   <boolean id="sharpturn" _label="Sharp turns" arg-set="-sharpturn"/>
+   <boolean id="truchet" _label="Truchet lines" arg-set="-truchet"/>
+   <boolean id="eyes" _label="Draw eyes" arg-set="-eyes"/>
+  </hgroup>
 
-  <number id="size" type="spinbutton" arg="-size %"
-           _label="Ant Size" low="-18" high="18" default="-12"/>
+  <hgroup>
+   <number id="count" type="spinbutton" arg="-count %"
+           _label="Ants count" low="-20" high="20" default="-3"/>
+   <number id="size" type="spinbutton" arg="-size %"
+            _label="Ant size" low="-18" high="18" default="-12"/>
+  </hgroup>
 
   <select id="neighbors">
-    <option id="rand" _label="Random Cell Shape"/>
-    <option id="three" _label="Three Sided Cells"
+    <option id="rand" _label="Random cell shape"/>
+    <option id="three" _label="Three sided cells"
             arg-set="-neighbors 3"/>
-    <option id="four" _label="Four Sided Cells"
+    <option id="four" _label="Four sided cells"
             arg-set="-neighbors 4"/>
-    <option id="six" _label="Six Sided Cells"
+    <option id="six" _label="Six sided cells"
             arg-set="-neighbors 6"/>
-    <option id="nine" _label="Nine Sided Cells"
+    <option id="nine" _label="Nine sided cells"
             arg-set="-neighbors 9"/>
-    <option id="twelve" _label="Twelve Sided Cells"
+    <option id="twelve" _label="Twelve sided cells"
             arg-set="-neighbors 12"/>
   </select>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="2" high="255" default="64"/>
+            _label="Number of colors" _low-label="Three" _high-label="Many"
+            low="3" high="255" default="64"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 A cellular automaton that is really a two-dimensional Turing machine:
@@ -49,6 +52,9 @@ as the heads ("ants") walk along the screen, they change pixel
 values in their path.  Then, as they pass over changed pixels, their
 behavior is influenced.
 
+http://en.wikipedia.org/wiki/Langton%27s_ant
+http://en.wikipedia.org/wiki/Turing_machine
+
 Written by David Bagley; 1997.
   </_description>
 </screensaver>
index 7b9bbf8e9b9a3393ef872cb17461aee14de3bdef..0583a8cee963b50fe975946448a32dbf3b699fbe 100644 (file)
@@ -5,13 +5,13 @@
   <command arg="-root"/>
 
   <number id="speed" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
-  <boolean id="shadows" _label="Draw Shadows" arg-set="-shadows"/>
+  <boolean id="shadows" _label="Draw shadows" arg-set="-shadows"/>
 
   <_description>
 Draws a trio of ants moving their spheres around a circle.
index 0fe1eb81dd745694557e3f20a368214d947c31b3..d1a79a079835f270423338226bfc96e9ae8cc490 100644 (file)
@@ -5,11 +5,11 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a few views of a few ants walking around in a simple maze. 
index 706cf441a9a057c3b4b30fcea393548712669368..f142b7b7359fe1af9d16263bc3925b79030ffca4 100644 (file)
@@ -5,13 +5,13 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <xscreensaver-image />
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws an ant (with a headlight) who walks on top of an
index e89ea98c0c820034219e91dd1dcb1c6c4469f84f..a563fcd530153e6f0426e4b9bf162637d5c2c5f7 100644 (file)
@@ -4,9 +4,9 @@
 
   <command arg="-root"/>
 
-  <boolean id="label" _label="Draw Labels" arg-unset="-no-label"/>
+  <boolean id="label" _label="Draw labels" arg-unset="-no-label"/>
 
-  <boolean id="altgeom" _label="Include Alternate Geometries"
+  <boolean id="altgeom" _label="Include alternate geometries"
            arg-unset="-no-altgeom"/>
 
 <!-- don't know what -count does -->
@@ -16,7 +16,7 @@
           low="1" high="20" default="20"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="2" high="255" default="64"/>
 
   <number id="delay" type="slider" arg="-delay %"
           low="0" high="1000000" default="1000000"
           convert="invert"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-Packs a large circle with smaller circles, demonstrating the 
-Descartes Circle Theorem.
+Draws an Apollonian gasket: a fractal packing of circles with
+smaller circles, demonstrating Descartes's theorem.
+
+http://en.wikipedia.org/wiki/Apollonian_gasket
+http://en.wikipedia.org/wiki/Descartes%27_theorem
 
 Written by Allan R. Wilks and David Bagley; 2002.
   </_description>
index 31938c9ecb1534f4de17dd930707b4de4bfbfb64..36b1c1afce8f4a5d1ce43a8ca7775e3a831c2b96 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="apple2" _label="Apple ][">
+<screensaver name="apple2" _label="Apple2">
 
  <command arg="-root"/>
 
@@ -8,16 +8,20 @@
   <option id="random"    _label="Choose display mode randomly"/>
   <option id="text"      _label="Display scrolling text" arg-set="-mode text"/>
   <option id="slideshow" _label="Display images"         arg-set="-mode slideshow"/>
-  <option id="basic"     _label="Run BASIC programs"     arg-set="-mode basic"/>
+  <option id="basic"     _label="Run basic programs"     arg-set="-mode basic"/>
  </select>
 
-<!-- <file id="program" _label="Text Program" arg="-program %"/> -->
-
- <xscreensaver-image />
- <xscreensaver-text />
+ <hgroup>
+  <vgroup>
+   <xscreensaver-text />
+  </vgroup>
+  <vgroup>
+   <xscreensaver-image />
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </vgroup>
+ </hgroup>
 
  <_description>
-
 Simulates an original Apple ][ Plus computer in all its 1979 glory.  It
 also reproduces the appearance of display on a color television set of
 the period.
@@ -28,6 +32,10 @@ the contents of a file or URL.  In "Slideshow Mode", it chooses random
 images and displays them within the limitations of the Apple ][
 display hardware.  (Six available colors in hi-res mode!)
 
+On X11 systems, This program is also a fully-functional VT100 emulator.
+
+http://en.wikipedia.org/wiki/Apple_II_series
+
 Written by Trevor Blackwell; 2003.
   </_description>
 </screensaver>
index 135f71eb033f405ef047c737fac44b0068454701..c31ba6da9bb1dba0bb78b5f1eed59f65b78d5db1 100644 (file)
@@ -4,34 +4,39 @@
 
   <command arg="-root"/>
 
-  <number id="whalespeed" type="slider" arg="-whalespeed %"
-           _label="Whale Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="1000" default="250"/>
-
   <number id="sharkspeed" type="slider" arg="-delay %"
-          _label="Shark Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="500000" default="25000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="25000"
           convert="invert"/>
 
+  <number id="whalespeed" type="slider" arg="-whalespeed %"
+           _label="Whale speed" _low-label="Slow" _high-label="Fast"
+          low="0" high="1000" default="250"/>
+
   <number id="sharkproximity" type="slider" arg="-size %"
-          _label="Shark Proximity" _low-label="Shy" _high-label="Agressive"
+          _label="Shark proximity" _low-label="Shy" _high-label="Agressive"
           low="100" high="10000" default="6000"/>
 
-  <number id="sharkcount" type="spinbutton" arg="-count %"
-          _label="Number of Sharks" low="0" high="20" default="4"/>
-
-  <select id="water">
-    <option id="shimmer" _label="Shimmering Water"/>
-    <option id="clear"   _label="Clear Water" arg-set="-no-texture"/>
-  </select>
-
-  <select id="bg">
-    <option id="flat"     _label="Flat Background" arg-set="-no-gradient"/>
-    <option id="gradient" _label="Gradient Background"/>
-  </select>
-
-  <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <number id="sharkcount" type="slider" arg="-count %"
+          _label="Number of sharks" _low-label="None" _high-label="20"
+          low="0" high="20" default="4"/>
+
+  <hgroup>
+   <select id="water">
+     <option id="shimmer" _label="Shimmering water"/>
+     <option id="clear"   _label="Clear water" arg-set="-no-texture"/>
+   </select>
+
+   <select id="bg">
+     <option id="flat"     _label="Flat background" arg-set="-no-gradient"/>
+     <option id="gradient" _label="Gradient background"/>
+   </select>
+  </hgroup>
+
+  <hgroup>
+   <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </hgroup>
 
   <_description>
 A 3D animation of a number of sharks, dolphins, and whales.
index 868f87aa94fb3f433fd30f6fb92e6772a4ea7602..c4f241be0cb1e1d83d0148c0f11549ddfa45dbc5 100644 (file)
@@ -6,67 +6,60 @@
 
   <hgroup>
   <select id="mode">
-    <option id="balls"    _label="Balls"    arg-set="-mode balls"/>
+    <option id="balls"    _label="Balls"/>
     <option id="lines"    _label="Lines"    arg-set="-mode lines"/>
     <option id="tails"    _label="Tails"    arg-set="-mode tails"/>
     <option id="polygons" _label="Polygons" arg-set="-mode polygons"/>
     <option id="splines"  _label="Splines"  arg-set="-mode splines"/>
-    <option id="fsplines" _label="Filled Splines"
+    <option id="fsplines" _label="Filled splines"
                                            arg-set="-mode filled-splines"/>
   </select>
 
   <select id="wallmode">
-    <option id="walls"   _label="Bounce Off Walls"/>
-    <option id="nowalls" _label="Ignore Screen Edges" arg-set="-nowalls"/>
+    <option id="walls"   _label="Bounce off walls"/>
+    <option id="nowalls" _label="Ignore screen edges" arg-set="-nowalls"/>
   </select>
 
   </hgroup>
 
   <hgroup>
+   <vgroup>
     <number id="points" type="spinbutton" arg="-points %"
-              _label="Ball Count" low="0" high="200" default="0"/>
+              _label="Ball count" low="0" high="200" default="0"/>
+    <number id="viscosity" type="slider" arg="-viscosity %"
+            _label="Environmental viscosity"
+            _low-label="Low" _high-label="High"
+            low="0.0" high="1.0" default="1.0"
+            convert="invert"/>
+    <number id="segments" type="slider" arg="-segments %"
+            _label="Trail length" _low-label="Short" _high-label="Long"
+            low="2" high="1000" default="500"/>
+    <number id="ncolors" type="slider" arg="-colors %"
+              _label="Number of colors" _low-label="Two" _high-label="Many"
+              low="1" high="255" default="200"/>
+   </vgroup>
+   <vgroup>
     <number id="size" type="slider" arg="-size %"
-              _low-label="Ball Mass" _high-label="High"
+              _low-label="Ball mass" _high-label="High"
               low="0" high="100" default="0"/>
+    <number id="threshold" type="slider" arg="-threshold %"
+            _label="Repulsion threshold"
+            _low-label="Small" _high-label="Large"
+            low="0" high="600" default="200"/>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Speed" _low-label="Slow" _high-label="Fast"
+            low="0" high="40000" default="10000"
+            convert="invert"/>
+   </vgroup>
   </hgroup>
 
-  <number id="viscosity" type="slider" arg="-viscosity %"
-          _label="Environmental Viscosity"
-          _low-label="Low" _high-label="High"
-          low="0.0" high="1.0" default="1.0"
-          convert="invert"/>
-
-  <number id="threshold" type="slider" arg="-threshold %"
-          _label="Repulsion Threshold"
-          _low-label="Small" _high-label="Large"
-          low="0" high="600" default="200"/>
-
-  <number id="segments" type="slider" arg="-segments %"
-          _label="Trail Length" _low-label="Short" _high-label="Long"
-          low="2" high="1000" default="500"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="40000" default="10000"
-          convert="invert"/>
-
-  <number id="ncolors" type="slider" arg="-colors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="200"/>
-
-<!--
-  <number id="color_contrast" type="slider" arg="-color-shift %"
-          _label="Color Contrast" _low-label="Low" _high-label="High"
-           low="0" high="25" default="3"/>
--->
-
   <hgroup>
-    <boolean id="orbit" _label="Orbital Mode" arg-set="-orbit"/>
+    <boolean id="orbit" _label="Orbital mode" arg-set="-orbit"/>
     <number id="radius" type="spinbutton" arg="-radius %"
               _label="Radius" low="0" high="1000" default="0"/>
     <number id="vmult" type="slider" arg="-vmult %"
             _low-label="Outward" _high-label="Inward"
-             low="-5.0" high="5.0" default="0.9"/>
+            low="-5.0" high="5.0" default="0.9"/>
   </hgroup>
 
   <!-- #### -vx [?] -->
@@ -76,6 +69,8 @@
   <!-- #### -correct-bounce -->
   <!-- #### -graphmode [none] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 
 Uses a simple simple motion model to generate many different display
index dbd0ccc054d65b85257301905af0c61d8eb72cd9..28cb1dd2f23190e88422d6e43aba6d8f6315c86d 100644 (file)
@@ -5,14 +5,14 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <boolean id="tex"     _label="Textured"    arg-unset="-no-texture"/>
   <boolean id="light"   _label="Lighting"    arg-set="-light"/>
   <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws an animation of a textured tunnel in GL.
index 6973946daeeed0a2970bad309c6a673be91c790a..13564ce61dc7d1f0e2ef4623fc7d32320bf15d79 100644 (file)
@@ -4,21 +4,28 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
+
   <select id="mode">
-    <option id="scroll"  _label="Scrolling Barcodes"/>
-    <option id="scroll"  _label="Barcode Grid"            arg-set="-mode grid"/>
-    <option id="clock12" _label="Barcode Clock (AM/PM)"   arg-set="-mode clock12"/>
-    <option id="clock24" _label="Barcode Clock (24 Hour)" arg-set="-mode clock24"/>
+    <option id="scroll"  _label="Scrolling barcodes"/>
+    <option id="scroll"  _label="Barcode grid"            arg-set="-mode grid"/>
+    <option id="clock12" _label="Barcode clock (AM/PM)"   arg-set="-mode clock12"/>
+    <option id="clock24" _label="Barcode clock (24 hour)" arg-set="-mode clock24"/>
   </select>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a random sequence of colorful barcodes scrolling across your
-screen.  CONSUME!  
+screen.  CONSUME!
+
+The barcodes follow the UPC-A, UPC-E, EAN-8 or EAN-13 standards.
+
+http://en.wikipedia.org/wiki/Universal_Product_Code
+http://en.wikipedia.org/wiki/European_Article_Number
 
 Written by Dan Bornstein; 2003.
   </_description>
index 44d0d26850ebdc5e5848468f79180e6019c87486..c03c135cff1c5796300f48d9c5f6f769c061f420 100644 (file)
@@ -4,6 +4,11 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
+
   <number id="num_robots" type="spinbutton" arg="-num_robots %"
           _label="Robots" low="2" high="50" default="5"/>
 
           _label="Stars" _low-label="Few" _high-label="Many"
           low="5" high="200" default="50"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
-
   <!-- #### -move_stars_x [2] -->
   <!-- #### -move_stars_y [1] -->
   <!-- #### -move_stars_random [0] -->
@@ -48,6 +48,8 @@
   <!-- #### -mother_ship_color0 [darkblue] -->
   <!-- #### -mother_ship_color1 [white] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws a simulation of flying space-combat robots (cleverly disguised
 as colored circles) doing battle in front of a moving star field.
index 270768e5fbe4a1efdb71603555dedb3b29220e2e..b86523346d2abc8271f30458bac35dad7018bb00 100644 (file)
@@ -5,24 +5,26 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Fast" _high-label="Slow"
-          low="0" high="50000" default="30000"/>
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
+          convert="invert"/>
 
-  <number id="boxsize" type="spinbutton" arg="-boxsize %"
-          _label="Box Size" low="1" high="8" default="2"/>
+  <number id="boxsize" type="slider" arg="-boxsize %"
+          _label="Box size" _low-label="Small" _high-label="Large"
+          low="1" high="8" default="2"/>
 
   <hgroup>
    <boolean id="fade"      _label="Fade"        arg-unset="-no-fade"/>
-   <boolean id="blur"      _label="Motion Blur" arg-unset="-no-blur"/>
-  </hgroup>
-  <hgroup>
+   <boolean id="blur"      _label="Motion blur" arg-unset="-no-blur"/>
    <boolean id="dissolve"  _label="Dissolve"    arg-set="-dissolve"/>
    <boolean id="wire"      _label="Wireframe"   arg-set="-wireframe"/>
   </hgroup>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Shows a ball contained inside of a bounding box.
-Colored blocks blink in when the ball hits the edges.
+Colored blocks blink in when the ball hits the sides.
 
 Written by Jeremy English; 2003.
   </_description>
index 0d838864f066ca717580f49c71749be0af82a3df..00cfacccb89407011f04cae6fbf5e4c4f2de0853 100644 (file)
@@ -5,12 +5,12 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Fuzzy Rotation Speed" _low-label="Slow" _high-label="Fast"
+          _label="Fuzzy rotation speed" _low-label="Slow" _high-label="Fast"
           low="1" high="800000" default="500000"
           convert="invert"/>
 
   <number id="delay2" type="slider" arg="-delay2 %"
-          _label="90 deg Rotation Speed" _low-label="Slow" _high-label="Fast"
+          _label="90 degree rotation speed" _low-label="Slow" _high-label="Fast"
           low="1" high="800000" default="500000"
           convert="invert"/>
 
@@ -22,6 +22,8 @@
 
   <xscreensaver-image />
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 
 Repeatedly rotates a bitmap by 90 degrees by using logical operations:
index 33bdd0540142038e3d8157f35e32102d86290d6c..89f617b5d232f1d9f6dce7d5af109479638c6ba5 100644 (file)
@@ -5,21 +5,21 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-           low="0" high="50000" default="40000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+           low="0" high="100000" default="40000"
           convert="invert"/>
 
   <number id="holdtime" type="slider" arg="-holdtime %"
-          _label="Color Hold Time" _low-label="Short" _high-label="Long"
+          _label="Color hold time" _low-label="Short" _high-label="Long"
           low="10" high="2000" default="1000"/>
 
   <number id="changetime" type="slider" arg="-changetime %"
-          _label="Color Change Time" _low-label="Short" _high-label="Long"
+          _label="Color change time" _low-label="Short" _high-label="Long"
           low="10" high="1000" default="200"/>
 
   <boolean id="tex"     _label="Textured"  arg-unset="-no-texture"/>
   <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a swirling, falling tunnel of reflective slabs. They fade from
index 98e8d1d93d5e9e4ae8aac22bf5d9c1cec404660b..64bcce29bb18393d810e8ec6f737e84feffec241 100644 (file)
@@ -26,7 +26,7 @@
    </hgroup>
    <hgroup>
     <boolean id="wire"      _label="Wireframe" arg-set="-wireframe"/>
-    <boolean id="showfps"   _label="Show Frames-per-Second" arg-set="-fps"/>
+    <boolean id="showfps"   _label="Show frame rate" arg-set="-fps"/>
    </hgroup>
   </vgroup>
 
@@ -37,7 +37,10 @@ This bouncing ball is a clone of the first graphics demo for the Amiga
 the 1984 Consumer Electronics Show (or so the legend goes.)
 
 This looks like the original Amiga demo if you turn off "smoothing"
-and "lighting" and turn on "scanlines".
+and "lighting" and turn on "scanlines", and is somewhat more modern
+otherwise.
+
+http://en.wikipedia.org/wiki/Amiga#Boing_Ball
 
 Written by Jamie Zawinski; 2005.
   </_description>
index 8a1ded1f9706e961aad1e2bbae62af0bc4fa4871..237646a316561365883e0cd79c284c3ad9619cc7 100644 (file)
@@ -5,20 +5,22 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
+          _label="Frame rate" _low-label="Low" _high-label="High"
           low="0" high="100000" default="20000"
           convert="invert"/>
 
   <number id="count" type="slider" arg="-count %"
-          _label="Number of Spots" _low-label="Few" _high-label="Many"
+          _label="Number of spots" _low-label="Few" _high-label="Many"
           low="1" high="400" default="100"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
   <boolean id="3d" _label="Do Red/Blue 3D separation" arg-set="-3d"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This draws what looks like a spinning, deforming balloon with
 varying-sized spots painted on its invisible surface.
index b25c7c79c5e6b316bc0848cb6b0eec98404391c3..c5ce4c555fdd84f640dc79c0767a8afc6bda749e 100644 (file)
@@ -4,21 +4,21 @@
 
   <command arg="-root"/>
 
-  <number id="speed" type="slider" arg="-speed %"
-          _label="Bounce Speed" _low-label="Slow" _high-label="Fast"
-          low="0.05" high="2.0" default="1.0"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
           convert="invert"/>
 
+  <number id="speed" type="slider" arg="-speed %"
+          _label="Bounce speed" _low-label="Slow" _high-label="Fast"
+          low="0.05" high="2.0" default="1.0"/>
+
   <number id="count" type="slider" arg="-count %"
-          _label="Number of Cows" _low-label="Moo" _high-label="Herd"
+          _label="Number of cows" _low-label="Moo" _high-label="Herd"
           low="1" high="9" default="1"/>
 
   <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 A Cow.  A Trampoline.  Together, they fight crime.
index c93bd2e9ba1cfbbf9becded728a7864d4dd643a7..cec1329704fdc3034f4a49afe6ac73698b6ee065 100644 (file)
@@ -4,40 +4,48 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="20000"
-          convert="invert"/>
+  <hgroup>
+   <vgroup>
 
-  <number id="speed" type="slider" arg="-speed %"
-          _label="Motion Speed" _low-label="Slow" _high-label="Fast"
-          low="0.001" high="4.0" default="0.5"/>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="20000"
+            convert="invert"/>
+    <number id="speed" type="slider" arg="-speed %"
+            _label="Speed" _low-label="Slow" _high-label="Fast"
+            low="0.001" high="4.0" default="0.5"/>
 
-  <number id="balls" type="slider" arg="-balls %"
-          _label="Number of Balls" _low-label="Few" _high-label="Lots"
-          low="3" high="40" default="10"/>
+    <number id="balls" type="slider" arg="-balls %"
+            _label="Number of balls" _low-label="Few" _high-label="Lots"
+            low="3" high="40" default="25"/>
 
-  <number id="ballsize" type="slider" arg="-ballsize %"
-          _label="Ball Size" _low-label="Tiny" _high-label="Huge"
-          low="1.0" high="5.0" default="3.0"/>
+    <number id="ballsize" type="slider" arg="-ballsize %"
+            _label="Ball size" _low-label="Tiny" _high-label="Huge"
+            low="1.0" high="5.0" default="2.0"/>
 
-  <number id="explosion" type="slider" arg="-explosion %"
-          _label="Explosion Force" _low-label="Popcorn" _high-label="Nuke"
-          low="1.0" high="50.0" default="15.0"/>
+   </vgroup>
 
-  <number id="decay" type="slider" arg="-decay %"
-          _label="Explosion Decay" _low-label="Linger" _high-label="Pop!"
-          low="0.0" high="1.0" default="0.07"/>
+   <vgroup>
 
-  <number id="momentum" type="slider" arg="-momentum %"
-          _label="Explosion Momentum" _low-label="None" _high-label="Full"
-          low="0.0" high="1.0" default="0.6"/>
+    <number id="explosion" type="slider" arg="-explosion %"
+            _label="Explosion force" _low-label="Popcorn" _high-label="Nuke"
+            low="1.0" high="50.0" default="15.0"/>
 
-  <hgroup>
-   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+    <number id="decay" type="slider" arg="-decay %"
+            _label="Explosion decay" _low-label="Linger" _high-label="Pop!"
+            low="0.0" high="1.0" default="0.07"/>
+
+    <number id="momentum" type="slider" arg="-momentum %"
+            _label="Explosion momentum" _low-label="None" _high-label="Full"
+            low="0.0" high="1.0" default="0.6"/>
+
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
    <boolean id="wire"    _label="Wireframe" arg-set="-wireframe"/>
+
+   </vgroup>
   </hgroup>
 
+
   <_description>
 Draws a box full of 3D bouncing balls that explode.
 
index 52560a2137c233baef4f449ff695d8cadfefcb40..19a1340a0386f2a250d107e0bf6bcb2d50675076 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <hgroup>
@@ -14,7 +14,7 @@
            _label="Boxes" low="1" high="1000" default="50"/>
 
    <number id="growby" type="spinbutton" arg="-growby %"
-           _label="Grow By" low="1" high="10" default="1"/>
+           _label="Grow by" low="1" high="10" default="1"/>
   </hgroup>
 
   <hgroup>
            _label="Border" low="1" high="10" default="1"/>
   </hgroup>
 
-  <select id="mode">
-    <option id="random"  _label="Boxes or Circles"/>
-    <option id="boxes"   _label="Boxes Only"   arg-set="-mode squares"/>
-    <option id="circles" _label="Circles Only" arg-set="-mode circles"/>
-  </select>
-
-  <select id="mode2">
-    <option id="gradient" _label="Color Gradient"/>
-    <option id="image"    _label="Grab Images" arg-set="-grab"/>
-  </select>
+  <hgroup>
+   <select id="mode">
+     <option id="random"  _label="Boxes or circles"/>
+     <option id="boxes"   _label="Boxes only"   arg-set="-mode squares"/>
+     <option id="circles" _label="Circles only" arg-set="-mode circles"/>
+   </select>
+
+   <select id="mode2">
+     <option id="gradient" _label="Color gradient"/>
+     <option id="image"    _label="Grab images" arg-set="-grab"/>
+   </select>
+  </hgroup>
 
   <xscreensaver-image />
 
   <boolean id="peek" _label="Peek at underlying images" arg-set="-peek"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Packs the screen with growing squares or circles, colored according to a
 horizontal or vertical gradient, or according to the colors of the
index d347050951744227f53de196f3a4217cee27a01f..f9cfa54d85ead74aa6642832c0e9a60260c0d7a1 100644 (file)
@@ -4,25 +4,29 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Max Rings" low="3" high="15" default="15"/>
-
-  <number id="size" type="spinbutton" arg="-size %"
-           _label="Line Thickness" low="-20" high="20" default="-7"/>
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="1000"
+          convert="invert"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Duration" _low-label="Short" _high-label="Long"
           low="0" high="500" default="100"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="1000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
+  <hgroup>
+  <number id="count" type="spinbutton" arg="-count %"
+          _label="Number of rings" low="3" high="15" default="15"/>
+
+  <number id="size" type="spinbutton" arg="-size %"
+           _label="Line thickness" low="-20" high="20" default="-7"/>
+  </hgroup>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws random color-cycling inter-braided concentric circles.
 
index 24d2317367b32e90cf0630e09216bcf1f5aa87b4..7a604a762467e6e62dfe9f4073cf1a271d54692d 100644 (file)
@@ -4,9 +4,12 @@
 
  <command arg="-root"/>
 
- <number id="delay" type="slider" arg="-delay %"
-         _label="Duration" _low-label="5 seconds" _high-label="2 minutes"
-         low="5" high="120" default="30"/>
+ <hgroup>
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Duration" _low-label="5 seconds" _high-label="2 minutes"
+          low="5" high="120" default="30"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+ </hgroup>
 
  <hgroup>
   <vgroup>
    <boolean id="msdos"      _label="MS-DOS"         arg-unset="-no-msdos"/>
    <boolean id="amiga"      _label="AmigaDOS"       arg-unset="-no-amiga"/>
    <boolean id="atari"      _label="Atari"          arg-set="-atari"/>
-   <boolean id="apple2"     _label="Apple II"       arg-unset="-no-apple2"/>
-   <boolean id="nvidia"     _label="Nvidia"         arg-unset="-no-nvidia"/>
-   <boolean id="os2"        _label="OS/2"           arg-unset="-no-os2"/>
   </vgroup>
   <vgroup>
+   <boolean id="apple2"     _label="Apple ]["       arg-unset="-no-apple2"/>
+   <boolean id="nvidia"     _label="NVidia"         arg-unset="-no-nvidia"/>
+   <boolean id="os2"        _label="OS/2"           arg-unset="-no-os2"/>
    <boolean id="mac"        _label="Sad Mac"        arg-unset="-no-mac"/>
-   <boolean id="mac1"       _label="Mac Bomb"       arg-unset="-no-mac1"/>
+   <boolean id="mac1"       _label="Mac bomb"       arg-unset="-no-mac1"/>
    <boolean id="macsbug"    _label="MacsBug"        arg-unset="-no-macsbug"/>
+  </vgroup>
+  <vgroup>
    <boolean id="macx"       _label="MacOS X"        arg-unset="-no-macx"/>
    <boolean id="os390"      _label="OS/390"         arg-unset="-no-os390"/>
    <boolean id="vms"        _label="VMS"            arg-unset="-no-vms"/>
    <boolean id="hvx"        _label="HVX/GCOS6"      arg-unset="-no-hvx"/>
    <boolean id="blitdamage" _label="NCD X Terminal  " arg-unset="-no-blitdamage"/>
    <boolean id="atm"        _label="ATM"            arg-unset="-no-atm"/>
+   <boolean id="bsd"        _label="BSD"            arg-set="-bsd"/>
   </vgroup>
   <vgroup>
-   <boolean id="bsd"        _label="BSD"            arg-set="-bsd"/>
    <boolean id="linux"      _label="Linux (fsck)"   arg-unset="-no-linux"/>
    <boolean id="sparclinux" _label="Linux (sparc)"  arg-set="-sparclinux"/>
    <boolean id="hppalinux"  _label="Linux (hppa)"   arg-unset="-no-hppalinux"/>
@@ -47,7 +52,7 @@
 
  <_description>
 BSOD stands for "Blue Screen of Death".  The finest in personal
-computer emulation, this program simulates popular screen savers from a
+computer emulation, BSOD simulates popular screen savers from a
 number of less robust operating systems.
 
 Written by Jamie Zawinski; 1998.
index 68dab226929be5b012a53c241191b8a69d5144c0..81511320ad22de80282ad2c10def48258a096330 100644 (file)
@@ -5,13 +5,13 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="15000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
-  <boolean id="transp" _label="Transparent Bubbles" arg-unset="-no-transparent"/>
-  <string id="color"    _label="Bubble Color"      arg="-color %"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="transp" _label="Transparent bubbles" arg-unset="-no-transparent"/>
+  <string id="color"    _label="Bubble color"      arg="-color %"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   <_description>
 Draws a stream of rising, undulating 3D bubbles, rising toward the
 top of the screen, with transparency and specular reflections. 
index 61d87cf5e658e983672308867399e9fe9b2d8c26..d11935d61d42e592551b324168407e8acae76396 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="800"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <boolean id="simple" _label="Draw circles instead of bubble images"
   <boolean id="broken" _label="Don't hide bubbles when they pop"
            arg-set="-broken"/>
 
-<!--  <boolean id="3d" _label="Bubbles exist in three dimensions"
-           arg-set="-3D"/> -->
+  <boolean id="trails" _label="Leave trails" arg-set="-trails"/>
 
   <select id="gravity">
-    <option id="rise"     _label="Bubbles Rise"  arg-set="-mode rise"/>
-    <option id="float"    _label="Bubbles Float"/>
-    <option id="drop"     _label="Bubbles Fall"  arg-set="-mode drop"/>
+    <option id="rise"     _label="Bubbles rise"  arg-set="-mode rise"/>
+    <option id="float"    _label="Bubbles float"/>
+    <option id="drop"     _label="Bubbles fall"  arg-set="-mode drop"/>
   </select>
 
-  <boolean id="trails" _label="Leave Trails" arg-set="-trails"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 This simulates the kind of bubble formation that happens when water
index 67713de2fd6160a7b66f9a686f328a3c24b408ba..dc0c0f625c0fe70e6a958ebe0e2395d93227caf1 100644 (file)
@@ -9,7 +9,7 @@
   <!-- #### -colorcount [64] -->
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
+          _label="Frame rate" _low-label="Low" _high-label="High"
           low="0" high="100000" default="30000"
           convert="invert"/>
 
@@ -22,6 +22,8 @@
 
   <xscreensaver-image />
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 A spotlight roams across an embossed version of your desktop or
 other picture.
index 500de98bddccef13e9497b71813d490c50b9988b..b60d15fb4f64a54e34f7e8122c1e4223811cc362 100644 (file)
@@ -5,17 +5,19 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="30000" default="25000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="25000"
           convert="invert"/>
 
   <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 This draws Escher's "Impossible Cage", a 3d analog of a moebius
 strip, and rotates it in three dimensions.
 
+http://en.wikipedia.org/wiki/Maurits_Cornelis_Escher
+
 Written by Marcelo Vianna; 1998.
   </_description>
 </screensaver>
index 113d48465d0331cbf934dc78709e62e1299f1d32..96c7a65fc58cff0ed8f3481de3b162ebb20e52b5 100644 (file)
@@ -5,37 +5,44 @@
   <command arg="-root"/>
 
   <hgroup>
+   <vgroup>
+
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="speed" type="slider" arg="-speed %"
+            _label="Animation speed" _low-label="Slow" _high-label="Fast"
+            low="0.1" high="8.0" default="1.0"/>
+
+    <number id="duration" type="slider" arg="-duration %"
+            _label="Time until loading a new image"
+            _low-label="5 seconds" _high-label="1 minute"
+            low="5" high="60" default="20"/>
+
+   </vgroup>
+   <vgroup>
+
     <number id="count" type="spinbutton" arg="-count %"
-            _label="Number of Images:" low="1" high="20" default="7"/>
+            _label="Number of images" low="1" high="20" default="7"/>
+
     <select id="mode">
-      <option id="tiltxy"  _label="Tilt In/Out and Left/Right"/>
-      <option id="tiltx"   _label="Tilt In/Out Only"     arg-set="-tilt x"/>
-      <option id="tilty"   _label="Tilt Left/Right Only" arg-set="-tilt y"/>
-      <option id="notilt"  _label="No Tilting"           arg-set="-tilt 0"/>
+      <option id="tiltxy"  _label="Tilt in/out and left/right"/>
+      <option id="tiltx"   _label="Tilt in/out only"     arg-set="-tilt x"/>
+      <option id="tilty"   _label="Tilt left/right only" arg-set="-tilt y"/>
+      <option id="notilt"  _label="No tilting"           arg-set="-tilt 0"/>
     </select>
-  </hgroup>
-
-  <number id="duration" type="slider" arg="-duration %"
-          _label="Time until loading a new image:"
-          _low-label="5 Seconds" _high-label="1 Minute"
-          low="5" high="60" default="20"/>
 
-  <number id="speed" type="slider" arg="-speed %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0.1" high="8.0" default="1.0"/>
+    <boolean id="zoom" _label="Zoom in/out" arg-unset="-no-zoom"/>
+    <boolean id="titles" _label="Show file names" arg-unset="-no-titles"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Frame Rate" _low-label="Low" _high-label="High"
-          low="0" high="100000" default="20000"
-          convert="invert"/>
+   </vgroup>
+  </hgroup>
 
   <xscreensaver-image />
 
-  <boolean id="zoom" _label="Zoom In/Out" arg-unset="-no-zoom"/>
-  <boolean id="titles" _label="Show Image Titles" arg-unset="-no-titles"/>
-
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-
   <_description>
 Loads several random images, and displays them flying in a circular
 formation.  The formation changes speed and direction randomly, and
index 63507d74d1aa9de5f1baf11e360a02283a603b60..203e67460b49f5344086fa8236963c246e1318a7 100644 (file)
@@ -1,24 +1,28 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="ccurve" _label="C Curve">
+<screensaver name="ccurve" _label="CCurve">
 
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Change Image Every" _low-label="0 seconds" _high-label="30 seconds"
-          low="0" high="30" default="1"/>
+          _label="Change image every" _low-label="0 seconds" _high-label="30 seconds"
+          low="0" high="30" default="3"/>
 
   <number id="pause" type="slider" arg="-pause %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
+          _label="Animation speed" _low-label="Slow" _high-label="Fast"
           low="0.0" high="5.0" default="0.4" convert="invert"/>
 
   <number id="limit" type="slider" arg="-limit %"
           _label="Density" _low-label="Low" _high-label="High"
           low="3" high="300000" default="200000"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Generates self-similar linear fractals, including the classic "C Curve".
 
+http://en.wikipedia.org/wiki/Levy_C_curve
+
 Written by Rick Campbell; 1999.
   </_description>
 </screensaver>
index 3b4a6b845a0c0a1fac4e0ccf9a548d55a05afed1..1f14c93ca561101f747b0e4e1442f18e8f81e59d 100644 (file)
@@ -5,19 +5,23 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="delay2" type="slider" arg="-delay2 %"
-          _label="Pause" _low-label="Short" _high-label="Long"
+          _label="Linger" _low-label="Short" _high-label="Long"
           low="0" high="10" default="5"/>
 
-  <boolean id="graph" _label="Draw Graph" arg-set="-graph"/>
+  <boolean id="graph" _label="Draw graph" arg-set="-graph"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Repeatedly draws random Celtic cross-stitch patterns.
 
+http://en.wikipedia.org/wiki/Celtic_knot
+
 Written by Max Froumentin; 2005.
   </_description>
 </screensaver>
index 8e347b377d61f7aaab168b5ec13712f252bcc5c1..26130d364f1b0018a45e0070795f92793cc5b4e4 100644 (file)
@@ -5,27 +5,25 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
-  <number id="count" type="spinbutton" arg="-parts %"
-          _label="Parts" low="1" high="30" default="10"/>
-
-  <boolean id="spin"   _label="Spin" arg-unset="-no-spin"/>
-
-  <boolean id="rotate" _label="Rotate" arg-set="-rotate"/>
+  <number id="count" type="slider" arg="-parts %"
+          _label="Parts" _low-label="One" _high-label="Lots"
+          low="1" high="30" default="10"/>
 
   <number id="speed" type="slider" arg="-rotate-speed %"
-          _label="Rotation Speed" _low-label="Slow" _high-label="Fast"
+          _label="Rotation speed" _low-label="Slow" _high-label="Fast"
           low="0" high="100" default="1"/>
+  <boolean id="spin"   _label="Spin" arg-unset="-no-spin"/>
 
   <select id="render">
-    <option id="flat"  _label="Flat Coloring" arg-set="-no-light"/>
-    <option id="light" _label="Directional Lighting"/>
+    <option id="flat"  _label="Flat coloring" arg-set="-no-light"/>
+    <option id="light" _label="Directional lighting"/>
   </select>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Animates a number of 3D electronic components.
index 26588cd1c76d4259051a12d463a7442ec7eacec8..859d15f329318bae4f4a4435370b3b9d6a5926a1 100644 (file)
@@ -5,22 +5,24 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-cycle-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="25000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="25000"
           convert="invert"/>
 
   <number id="maxage" type="slider" arg="-max-age %"
-          _label="Max Age" _low-label="Young" _high-label="Old"
+          _label="Max age" _low-label="Young" _high-label="Old"
           low="2" high="255" default="64"/>
 
   <number id="density" type="slider" arg="-initial-density %"
-          _label="Initial Density" _low-label="Low" _high-label="High"
+          _label="Initial density" _low-label="Low" _high-label="High"
           low="1" high="99" default="30"/>
 
   <number id="cellsize" type="slider" arg="-cell-size %"
-          _label="Cell Size" _low-label="Small" _high-label="Large"
+          _label="Cell size" _low-label="Small" _high-label="Large"
           low="1" high="20" default="3"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 
 Generates cloud-like formations based on a variant of Conway's Life. The
@@ -28,6 +30,8 @@ difference is that cells have a maximum age, after which they count as
 3 for populating the next generation.  This makes long-lived formations
 explode instead of just sitting there.
 
+http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
+
 Written by Don Marti; 2003.
   </_description>
 </screensaver>
index 5966dd8a103083b408b3b0986792fbf871f5c1fb..4e903f0aab871f03b39a9635579cd5b533d10440 100644 (file)
@@ -5,11 +5,11 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
-<!--  <boolean id="db" _label="Double Buffer" arg-unset="-no-db"/> -->
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 This draws a compass, with all elements spinning about randomly, for
index b332bdaf42f8c7998c6b6f5f8e81e070a0222f1c..e918270234cdae9b84164e919fddac40f033ef78 100644 (file)
@@ -5,12 +5,12 @@
   <command arg="-root"/>
 
   <number id="delay2" type="slider" arg="-delay2 %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
+          _label="Frame rate" _low-label="Low" _high-label="High"
           low="1" high="500000" default="20000"
           convert="invert"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Linger" _low-label="1 Second" _high-label="1 Minute"
+          _label="Linger" _low-label="1 second" _high-label="1 minute"
           low="1" high="60" default="5"/>
 
   <number id="density" type="slider" arg="-density %"
@@ -22,6 +22,8 @@
           _label="Seeds" _low-label="Few" _high-label="Many"
           low="1" high="100" default="20"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Simulates coral growth, albeit somewhat slowly.
 
diff --git a/hacks/config/cosmos.xml b/hacks/config/cosmos.xml
deleted file mode 100644 (file)
index f8ad473..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<screensaver name="cosmos" _label="Cosmos">
-
-  <command arg="-root"/>
-
-  <_description>
-Draws fireworks and zooming, fading flares.
-You can find it at &lt;http://www.cosmosx.org/&gt;
-
-Written by Tom Campbell.
-  </_description>
-</screensaver>
\ No newline at end of file
index 73596bc3427db71a1e395dbec57b6e3ab8c30536..04ffb10b7e3d2b01a54dc63d2065b4a13839d563 100644 (file)
@@ -5,19 +5,20 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Frame Delay" _low-label="Short" _high-label="Long"
-          low="0" high="50000" default="20000" />
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
 
   <number id="visibility" type="slider" arg="-visibility %"
-          _label="Visibility" _low-label="Mouse Hole" _high-label="Eagle Nest"
+          _label="Visibility" _low-label="Mouse hole" _high-label="Eagle nest"
           low="0.2" high="1.0" default="0.6" />
-  <number id="nsubdivs" type="spinbutton" arg="-nsubdivs %"
-          _label="Subdivisions"
+  <number id="nsubdivs" type="slider" arg="-nsubdivs %"
+          _label="Subdivisions" _low-label="Few" _high-label="Hurt me"
           low="2" high="9" default="4" />
 
   <hgroup>
    <vgroup>
-    <boolean id="flat" _label="Flat Shading" arg-unset="-no-flat"/>
+    <boolean id="flat" _label="Flat shading" arg-unset="-no-flat"/>
     <boolean id="lit" _label="Lighting" arg-unset="-no-lit"/>
     <boolean id="water" _label="Water" arg-unset="-no-water"/>
     <boolean id="crack" _label="Confused" arg-unset="-no-crack"/>
     <boolean id="boring" _label="Immediate"   arg-set="-boring"/>
     <boolean id="letter" _label="Letterbox"   arg-set="-letterbox"/>
     <boolean id="wire"   _label="Wireframe"   arg-set="-wireframe"/>
-    <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
    </vgroup>
   </hgroup>
 
   <select id="color">
-    <option id="random" _label="Random" arg-set="-color random"/>
-    <option id="plain" _label="Plain"/>
-    <option id="ice" _label="Ice" arg-set="-color ice"/>
-    <option id="magma" _label="Swampy" arg-set="-color magma"/>
-    <option id="vomit" _label="Vomit" arg-set="-color vomit"/>
+    <option id="random" _label="Random coloration"/>
+    <option id="plain" _label="Earthy coloration" arg-set="-color plain"/>
+    <option id="ice" _label="Icy coloration" arg-set="-color ice"/>
+    <option id="magma" _label="Swampy coloration" arg-set="-color magma"/>
+    <option id="vomit" _label="Vomitous coloration" arg-set="-color vomit"/>
   </select>  
 
   <_description>
index 18fcf2da746b300ca9f3ee742c8a1d9f983678d4..55e092eecb1cd8ed1abb957061df9753bc681f1b 100644 (file)
@@ -4,14 +4,16 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
+
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="3" high="255" default="64"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a system of self-organizing lines.  It starts out as random
index 782d48db3f2f03365840074d8de9f51e55504300..2f2d972fe42cf0e070e3b0208bbf9d51274639a1 100644 (file)
@@ -4,36 +4,40 @@
 
   <command arg="-root"/>
 
-  <!-- #### -maxsize -->
-  <!-- #### -shift (color cycling) -->
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="60000"
+          convert="invert"/>
 
-  <boolean id="grid" _label="Draw Grid" arg-set="-grid"/>
+  <number id="ncolors" type="slider" arg="-ncolors %"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
+            low="1" high="255" default="100"/>
 
-  <boolean id="cells" _label="Draw Cell" arg-unset="-no-cell"/>
+  <!-- #### -maxsize -->
+  <!-- #### -shift (color cycling) -->
 
-  <boolean id="centre" _label="Center on Screen" arg-set="-centre"/>
+  <number id="count" type="spinbutton" arg="-count %"
+          _label="Number of crystals" low="-5000" high="5000" default="-500"/>
 
   <number id="nx" type="spinbutton" arg="-nx %"
-          _label="Horizontal Symmetries" low="-10" high="10" default="-3"/>
+          _label="Horizontal symmetries" low="-10" high="10" default="-3"/>
 
   <number id="ny" type="spinbutton" arg="-ny %"
-          _label="Vertical Symmetries" low="-10" high="10" default="-3"/>
-
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="-5000" high="5000" default="-500"/>
+          _label="Vertical symmetries" low="-10" high="10" default="-3"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="60000"
-          convert="invert"/>
+  <hgroup>
+   <boolean id="grid" _label="Draw grid" arg-set="-grid"/>
+   <boolean id="cells" _label="Draw cell" arg-unset="-no-cell"/>
+   <boolean id="centre" _label="Center on screen" arg-set="-centre"/>
+  </hgroup>
 
-  <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="100"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
-Moving polygons, similar to a kaleidescope (more like a kaleidescope
-than the one called `kaleid,' actually).
+Moving polygons, similar to a kaleidoscope.  See also the
+"Kaleidescope" and "GLeidescope" screen savers.
+
+http://en.wikipedia.org/wiki/Kaleidoscope
 
 Written by Jouk Jansen; 1998.
   </_description>
index 78ae0d2b08b5aff8eb46c31053258f91c5a5cbb4..74d7a1b1e35ebcecb67ac3599b00a22255fd6918 100644 (file)
@@ -1,60 +1,72 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="cube21" _label="Cube 21">
+<screensaver name="cube21" _label="Cube21">
 
   <command arg="-root"/>
 
-  <number id="cubesize" type="slider" arg="-cubesize %"
-    _label="Cube size" _low-label="Small" _high-label="Large"
-    low="0.4" high="1.0" default="0.7"/>  
-
-  <number id="speed" type="slider" arg="-delay %"
-    _label="Global speed" _low-label="Slow" _high-label="Fast"
-    low="0" high="30000" default="20000" convert="invert"/>
-
-  <number id="rotspeed" type="slider" arg="-rotspeed %"
-    _label="Rotation" _low-label="Slow" _high-label="Fast"
-    low="1.0" high="10.0" default="3.0"/>
-
-  <number id="wanderspeed" type="slider" arg="-wanderspeed %"
-    _label="Wandering" _low-label="Slow" _high-label="Fast"
-    low="0.3" high="3.0" default="1.0"/>  
-
-  <number id="spinspeed" type="slider" arg="-spinspeed %"
-    _label="Spinning" _low-label="Slow" _high-label="Fast"
-    low="0.5" high="4.0" default="1.0"/>  
-
-  <number id="wait" type="slider" arg="-wait %"
-    _label="Delay in ending position" _low-label="Short" _high-label="Long"
-    low="10.0" high="100.0" default="40.0"/>
-
-  <select id="start">
-    <option id="cube"    _label="Start as cube" arg-set="-no-randomize"/>
-    <option id="shuffle" _label="Start as random shape"/>
-  </select>
-
-  <select id="colors">
-    <option id="white" _label="White"  arg-set="-colormode white"/>
-    <option id="one"   _label="Random color" arg-set="-colormode rnd"/>
-    <option id="se"    _label="Silver Edition" arg-set="-colormode se"/>
-    <option id="two"   _label="Two random colors" arg-set="-colormode two"/>
-    <option id="ce"    _label="Classic Edition" arg-set="-colormode ce"/>
-    <option id="six"   _label="Six random colors"/>
-  </select>
-  
   <hgroup>
-  <boolean id="spin"    _label="Spin"                   arg-unset="-no-spin"/>
-  <boolean id="wander"  _label="Wander"                 arg-unset="-no-wander"/>
-  <boolean id="tex"     _label="Textured"               arg-unset="-no-texture"/>
-  </hgroup>
-  <hgroup>
-  <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+   <vgroup>
+
+    <number id="speed" type="slider" arg="-delay %"
+      _label="Frame rate" _low-label="Low" _high-label="High"
+      low="0" high="100000" default="20000" convert="invert"/>
+
+    <number id="cubesize" type="slider" arg="-cubesize %"
+      _label="Cube size" _low-label="Small" _high-label="Large"
+      low="0.4" high="1.0" default="0.7"/>  
+
+    <number id="rotspeed" type="slider" arg="-rotspeed %"
+      _label="Rotation" _low-label="Slow" _high-label="Fast"
+      low="1.0" high="10.0" default="3.0"/>
+
+    <select id="start">
+      <option id="cube"    _label="Start as cube" arg-set="-no-randomize"/>
+      <option id="shuffle" _label="Start as random shape"/>
+    </select>
+
+    <select id="colors">
+      <option id="white" _label="White"  arg-set="-colormode white"/>
+      <option id="one"   _label="Random color" arg-set="-colormode rnd"/>
+      <option id="se"    _label="Silver edition" arg-set="-colormode se"/>
+      <option id="two"   _label="Two random colors" arg-set="-colormode two"/>
+      <option id="ce"    _label="Classic edition" arg-set="-colormode ce"/>
+      <option id="six"   _label="Six random colors"/>
+    </select>
+
+   </vgroup>
+   <vgroup>
+
+    <number id="spinspeed" type="slider" arg="-spinspeed %"
+      _label="Spin" _low-label="Slow" _high-label="Fast"
+      low="0.5" high="4.0" default="1.0"/>  
+
+    <number id="wanderspeed" type="slider" arg="-wanderspeed %"
+      _label="Wander" _low-label="Slow" _high-label="Fast"
+      low="0.3" high="3.0" default="1.0"/>  
+
+    <number id="wait" type="slider" arg="-wait %"
+      _label="Linger" _low-label="Short" _high-label="Long"
+      low="10.0" high="100.0" default="40.0"/>
+
+    <hgroup>
+     <boolean id="spin"    _label="Spin"     arg-unset="-no-spin"/>
+     <boolean id="wander"  _label="Wander"   arg-unset="-no-wander"/>
+     <boolean id="tex"     _label="Outlines" arg-unset="-no-texture"/>
+    </hgroup>
+    <hgroup>
+     <boolean id="wire"    _label="Wireframe"      arg-set="-wireframe"/>
+     <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+    </hgroup>
+
+   </vgroup>
   </hgroup>
 
   <_description>
 Animates a Rubik-like puzzle known as Cube 21 or Square-1.
-The rotations are chosen randomly.
+The rotations are chosen randomly.  See also the "Rubik" and
+"GLSnake" screen savers.
+
+http://en.wikipedia.org/wiki/Square_One_%28puzzle%29
 
 Written by Vasek Potocek; 2005.
   </_description>
index ffe465bc3ece707e0ba92fee380efc8c93fe7ea0..3a9a3eb36800d3e725caa00f979a6ef8ae788f66 100644 (file)
@@ -5,44 +5,48 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <number id="count" type="slider" arg="-count %"
           _label="Boxes" _low-label="Few" _high-label="Many"
           low="1" high="20" default="5"/>
 
-  <boolean id="wander" _label="Wander" arg-unset="-no-wander"/>
-
-  <select id="rotation">
-    <option id="no"  _label="Don't Rotate"               arg-set="-spin 0"/>
-    <option id="x"   _label="Rotate around X axis"       arg-set="-spin X"/>
-    <option id="y"   _label="Rotate around Y axis"       arg-set="-spin Y"/>
-    <option id="z"   _label="Rotate around Z axis"       arg-set="-spin Z"/>
-    <option id="xy"  _label="Rotate around X and Y axes" arg-set="-spin XY"/>
-    <option id="xz"  _label="Rotate around X and Z axes" arg-set="-spin XZ"/>
-    <option id="yz"  _label="Rotate around Y and Z axes" arg-set="-spin YZ"/>
-    <option id="xyz" _label="Rotate around all three axes"/>
-  </select>
+  <hgroup>
+   <boolean id="wander" _label="Wander" arg-unset="-no-wander"/>
+
+   <select id="rotation">
+     <option id="no"  _label="Don't rotate"               arg-set="-spin 0"/>
+     <option id="x"   _label="Rotate around X axis"       arg-set="-spin X"/>
+     <option id="y"   _label="Rotate around Y axis"       arg-set="-spin Y"/>
+     <option id="z"   _label="Rotate around Z axis"       arg-set="-spin Z"/>
+     <option id="xy"  _label="Rotate around X and Y axes" arg-set="-spin XY"/>
+     <option id="xz"  _label="Rotate around X and Z axes" arg-set="-spin XZ"/>
+     <option id="yz"  _label="Rotate around Y and Z axes" arg-set="-spin YZ"/>
+     <option id="xyz" _label="Rotate around all three axes"/>
+   </select>
+  </hgroup>
 
   <number id="wave-speed" type="slider" arg="-wave-speed %"
-          _label="Surface Pattern Speed" _low-label="Slow" _high-label="Fast"
+          _label="Surface pattern speed" _low-label="Slow" _high-label="Fast"
           low="5" high="150" default="80"/>
 
   <number id="wave-radius" type="slider" arg="-wave-radius %"
-          _label="Surface Pattern Overlap"
+          _label="Surface pattern overlap"
           _low-label="Small" _high-label="Large"
           low="5" high="600" default="512"/>
 
   <number id="waves" type="slider" arg="-waves %"
-          _label="Surface Pattern Complexity"
+          _label="Surface pattern complexity"
           _low-label="Low" _high-label="High"
           low="1" high="20" default="3"/>
 
-  <boolean id="tex"     _label="Textured"  arg-unset="-no-texture"/>
-  <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <hgroup>
+   <boolean id="tex"     _label="Textured"  arg-unset="-no-texture"/>
+   <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </hgroup>
 
   <_description>
 Draws a pulsating set of overlapping boxes with ever-chaning blobby
index 67966444d6b56dece028dbee02140a259f1d57d4..ae503c1d00d6ef093a75ebd22686586ee14d0813 100644 (file)
@@ -5,19 +5,20 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
           convert="invert"/>
 
   <number id="speed" type="slider" arg="-speed %"
-          _label="Motion Speed" _low-label="Slow" _high-label="Fast"
+          _label="Speed" _low-label="Slow" _high-label="Fast"
           low="0.01" high="5.0" default="1.0"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Number of Cubes" low="1" high="20" default="4"/>
+  <number id="count" type="slider" arg="-count %"
+          _label="Cubes" _low-label="Few" _high-label="Many"
+          low="1" high="20" default="4"/>
 
   <number id="thickness" type="slider" arg="-thickness %"
-          _label="Strut Thickness" _low-label="Thin" _high-label="Thick"
+          _label="Struts" _low-label="Thin" _high-label="Thick"
           low="0.01" high="1.0" default="0.06"/>
 
   <hgroup>
@@ -26,7 +27,7 @@
    <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
   </hgroup>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a series of rotating 3D boxes that intersect each other and
index b3b2a30bb721d686ef93f7a4bcdf007e40ff35a7..8467c056fba0c9a4f2331482c7adb5128021e11f 100644 (file)
@@ -4,20 +4,20 @@
 
   <command arg="-root"/>
 
-  <number id="zoom" type="slider" arg="-zoom %"
-    _label="Dot spacing" _low-label="Close" _high-label="Far"
-    low="15" high="100" default="20"/>  
-
   <number id="delay" type="slider" arg="-delay %"
-    _label="Animation speed" _low-label="Slow" _high-label="Fast"
-    low="0" high="30000" default="20000" convert="invert"/>
+    _label="Frame rate" _low-label="Low" _high-label="High"
+    low="0" high="100000" default="20000" convert="invert"/>
 
   <number id="speed" type="slider" arg="-speed %"
-    _label="Rotation speed" _low-label="Slow" _high-label="Fast"
+    _label="Speed" _low-label="Slow" _high-label="Fast"
     low="0.2" high="10.0" default="1.0"/>
 
-  <boolean id="bigdots" _label="Big Dots"            arg-unset="-no-bigdots"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <number id="zoom" type="slider" arg="-zoom %"
+    _label="Dot spacing" _low-label="Close" _high-label="Far"
+    low="15" high="100" default="20"/>  
+
+  <boolean id="bigdots" _label="Big dots"            arg-unset="-no-bigdots"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws the view of an observer located inside a rotating 3D lattice of colored 
index 33ddf36d7df9601c85ca529ea3192acbd4f67682..215d9fe8f0150d75ff8020757ba1557016758f31 100644 (file)
@@ -4,21 +4,21 @@
 
   <command arg="-root"/>
 
-<!--
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="30000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
--->
 
   <number id="waves" type="slider" arg="-waves %"
           _label="Complexity" _low-label="Low" _high-label="High"
           low="1" high="100" default="15"/>
 
   <number id="ncolors" type="slider" arg="-colors %"
-            _label="Color Transitions" _low-label="Rough" _high-label="Smooth"
+            _label="Color transitions" _low-label="Rough" _high-label="Smooth"
             low="2" high="1000" default="600"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This generates a languidly-scrolling vertical field of sinusoidal colors.
 
index 2f018e2959aa633460d08dad953670488053e567..ac1350e667f606ba4c2ca7db3edc77adfb3bb73c 100644 (file)
@@ -5,19 +5,21 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="800000" default="500000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="1000000" default="500000"
           convert="invert"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="128"/>
+            _label="Number of colors" _low-label="Two" _high-label="Many"
+            low="2" high="255" default="128"/>
 
   <number id="iterations" type="slider" arg="-iterations %"
           _label="Duration" _low-label="Short" _high-label="Long"
           low="2" high="200" default="100"/>
 
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Random dropshadowed rectangles pop onto the screen in lockstep.
 
index db8da5fd7902951a6eac2b6e3b4383bcf0b97da0..5375f831b49a0f77b555b91c4665d2ec82ef6541 100644 (file)
@@ -5,16 +5,17 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
           convert="invert"/>
 
   <number id="spikespeed" type="slider" arg="-speed %"
-          _label="Spike Growth" _low-label="Slow" _high-label="Fast"
+          _label="Spike growth" _low-label="Slow" _high-label="Fast"
           low="0.0" high="0.25" default="0.05"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Spike Count" low="1" high="200" default="30"/>
+  <number id="count" type="slider" arg="-count %"
+          _label="Number of spikes" _low-label="Few" _high-label="Ouch"
+          low="1" high="100" default="30"/>
 
   <hgroup>
    <boolean id="wander" _label="Wander"    arg-unset="-no-wander"/>
@@ -22,7 +23,7 @@
    <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
   </hgroup>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a ball that periodically extrudes many random spikes.  Ouch!
index 557924fcd46437d2cb09e8c78ed9605d0d7054c2..75cc762596e5253c82f26867e0fdadde94a887db 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="duration" type="slider" arg="-duration %"
           low="10" high="600" default="120"/>
 
   <select id="mode">
-    <option id="random" _label="Random Melt Style"/>
-    <option id="random" _label="Shuffle Melt" arg-set="-mode shuffle"/>
-    <option id="random" _label="Melt Up"    arg-set="-mode up"/>
-    <option id="random" _label="Melt Down"  arg-set="-mode down"/>
-    <option id="random" _label="Melt Left"  arg-set="-mode left"/>
-    <option id="random" _label="Melt Right" arg-set="-mode right"/>
-    <option id="random" _label="Melt Up, Left"    arg-set="-mode upleft"/>
-    <option id="random" _label="Melt Up, Right"   arg-set="-mode upright"/>
-    <option id="random" _label="Melt Down, Left"  arg-set="-mode downleft"/>
-    <option id="random" _label="Melt Down, Right" arg-set="-mode downright"/>
-    <option id="random" _label="Melt Towards Center" arg-set="-mode in"/>
-    <option id="random" _label="Melt Away From Center" arg-set="-mode out"/>
-    <option id="random" _label="Melty Melt" arg-set="-mode melt"/>
-    <option id="random" _label="Stretchy Melt" arg-set="-mode stretch"/>
-    <option id="random" _label="Fuzzy Melt" arg-set="-mode fuzz"/>
+    <option id="random" _label="Random melt style"/>
+    <option id="random" _label="Shuffle melt" arg-set="-mode shuffle"/>
+    <option id="random" _label="Melt up"    arg-set="-mode up"/>
+    <option id="random" _label="Melt down"  arg-set="-mode down"/>
+    <option id="random" _label="Melt left"  arg-set="-mode left"/>
+    <option id="random" _label="Melt right" arg-set="-mode right"/>
+    <option id="random" _label="Melt up, left"    arg-set="-mode upleft"/>
+    <option id="random" _label="Melt up, right"   arg-set="-mode upright"/>
+    <option id="random" _label="Melt down, left"  arg-set="-mode downleft"/>
+    <option id="random" _label="Melt down, right" arg-set="-mode downright"/>
+    <option id="random" _label="Melt towards center" arg-set="-mode in"/>
+    <option id="random" _label="Melt away from center" arg-set="-mode out"/>
+    <option id="random" _label="Melty melt" arg-set="-mode melt"/>
+    <option id="random" _label="Stretchy melt" arg-set="-mode stretch"/>
+    <option id="random" _label="Fuzzy melt" arg-set="-mode fuzz"/>
   </select>
 
   <xscreensaver-image />
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This takes an image and makes it melt.  You've no doubt seen this
 effect before, but no screensaver would really be complete without it.
index 8557cd2df33b882db34ecf872771c6f6bbb13680..87fd01648ca726f3967d22d2cbbf702474880898 100644 (file)
@@ -5,32 +5,38 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Duration" _low-label="1 Second" _high-label="1 Minute"
+          _label="Duration" _low-label="1 second" _high-label="1 minute"
           low="1" high="60" default="5"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
-  <number id="maxdepth" type="spinbutton" arg="-max-depth %"
-            _label="Max Depth" low="1" high="40" default="12"/>
-
-  <boolean id="smooth-colors" _label="Smooth Colors" arg-set="-smooth-colors"/>
-  <boolean id="golden-ratio" _label="Golden Ratio" arg-set="-golden-ratio"/>
-  <boolean id="mondrian" _label="Mondrian" arg-set="-mondrian"/>
-
   <hgroup>
-  <number id="minwidth" type="spinbutton" arg="-min-width %"
-            _label="Min Size" low="1" high="100" default="20"/>
-
-  <number id="minheight" type="spinbutton" arg="-min-height %"
-            _label="x" low="1" high="100" default="20"/>
+   <vgroup>
+    <number id="minwidth" type="spinbutton" arg="-min-width %"
+              _label="Minimum width" low="1" high="100" default="20"/>
+
+    <number id="minheight" type="spinbutton" arg="-min-height %"
+              _label="Minimum height" low="1" high="100" default="20"/>
+
+    <number id="maxdepth" type="spinbutton" arg="-max-depth %"
+              _label="Maximum depth" low="1" high="40" default="12"/>
+   </vgroup>
+   <vgroup>
+    <boolean id="smooth-colors" _label="Smooth colors" arg-set="-smooth-colors"/>
+    <boolean id="golden-ratio" _label="Golden ratio" arg-set="-golden-ratio"/>
+    <boolean id="mondrian" _label="Mondrian" arg-set="-mondrian"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
   </hgroup>
 
   <_description>
 Subdivides and colors rectangles randomly.  It looks kind of
 like Brady-Bunch-era rec-room wall paneling. 
 
+http://en.wikipedia.org/wiki/Piet_Mondrian#Paris_1919.E2.80.931938
+
 Written by Jamie Zawinski and Michael Bayne; 1997.
   </_description>
 </screensaver>
index 634e1216a3f96b452b49f169c32526eb814f521f..de3b49555db1fee6896cd7e7b9dfe16be590b0ef 100644 (file)
@@ -5,26 +5,27 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="5000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="50000" default="10000"
           convert="invert"/>
 
   <number id="thickness" type="slider" arg="-thickness %"
           _label="Lines" _low-label="Thin" _high-label="Thick"
           low="1" high="150" default="50"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="1" high="20" default="5"/>
+  <number id="count" type="slider" arg="-count %"
+          _label="Shapes" _low-label="1" _high-label="20"
+           low="1" high="20" default="5"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="20"/>
 
   <!-- #### -speed [15] -->
 
   <boolean id="transparent" _label="Transparency" arg-unset="-no-transparent"/>
 
-<!--  <boolean id="db" _label="Double Buffer" arg-unset="-no-db"/> -->
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a pulsing sequence of transparent stars, circles, and lines.
index ed08cc68c614f3e56cc97a9476795cf226422e29..c99799cf4b06574e7b951be0d587061c944f9f29 100644 (file)
@@ -4,29 +4,34 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="States" low="0" high="20" default="0"/>
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="50000"
+          convert="invert"/>
+
+  <number id="count" type="slider" arg="-count %"
+          _label="States" _low-label="0" _high-label="20"
+           low="0" high="20" default="0"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Timeout" _low-label="Small" _high-label="Large"
           low="0" high="800000" default="1000"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="100000" default="50000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
   <number id="size" type="spinbutton" arg="-size %"
-           _label="Cell Size" low="-20" high="20" default="-7"/>
+           _label="Cell size" low="-20" high="20" default="-7"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 A cellular automaton that starts with a random field, and organizes
 it into stripes and spirals.
 
+http://en.wikipedia.org/wiki/Maxwell%27s_demon
+
 Written by David Bagley; 1999.
   </_description>
 </screensaver>
index 98a5981b0a55c9f9f9eb7ad569ebff45a1b8f89d..9640a2c958db8543e2c8d08795cc296825ff86eb 100644 (file)
@@ -4,19 +4,21 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
+
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Timeout" _low-label="Small" _high-label="Large"
           low="100" high="10000" default="2500"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="1000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="100"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 More "discrete map" systems, including new variants of Hopalong and
 Julia, and a few others.
index c0af41d8b00c72c4d0d83e1f9745929cff5f16fe..e499132a2527df16f6801223bd2298ff82c94229 100644 (file)
@@ -5,7 +5,7 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
+          _label="Frame rate" _low-label="Low" _high-label="High"
           low="0" high="200000" default="20000"
           convert="invert"/>
 
   <!-- #### -slow -->
 
   <number id="radius" type="slider" arg="-radius %"
-          _label="Lens Size" _low-label="Small" _high-label="Large"
+          _label="Lens size" _low-label="Small" _high-label="Large"
           low="0" high="1000" default="0"/>
 
-  <number id="count" type="spinbutton" arg="-number %"
-          _label="Lens Count" low="0" high="10" default="0"/>
-
-  <select id="effect">
-   <option id="normal" _label="Normal"/>
-   <option id="swamp"  _label="Swamp Thing" arg-set="-effect swamp"/>
-   <option id="bounce" _label="Bounce"      arg-set="-effect bounce"/>
-  </select>
+  <hgroup>
+   <number id="count" type="spinbutton" arg="-number %"
+           _label="Lens count" low="0" high="10" default="0"/>
+
+   <select id="effect">
+    <option id="normal" _label="Normal"/>
+    <option id="swamp"  _label="Swamp thing" arg-set="-effect swamp"/>
+    <option id="bounce" _label="Bounce"      arg-set="-effect bounce"/>
+   </select>
+  </hgroup>
 
   <hgroup>
-   <vgroup>
-    <boolean id="reflect" _label="Reflect"      arg-set="-reflect"/>
-    <boolean id="magnify" _label="Magnify"      arg-set="-magnify"/>
-   </vgroup>
-   <vgroup>
-    <boolean id="blackhole" _label="Black Hole" arg-set="-blackhole"/>
-    <boolean id="vortex" _label="Vortex"        arg-set="-vortex"/>
-   </vgroup>
+   <boolean id="reflect" _label="Reflect"      arg-set="-reflect"/>
+   <boolean id="magnify" _label="Magnify"      arg-set="-magnify"/>
+   <boolean id="blackhole" _label="Black hole" arg-set="-blackhole"/>
+   <boolean id="vortex" _label="Vortex"        arg-set="-vortex"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
   <xscreensaver-image />
index a787017f499b3c05ca05ff739fc5adfa1dcb5595..dd182a318581503c329adb87883b02504bf880ff 100644 (file)
@@ -4,8 +4,13 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame Rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="25000"
+          convert="invert"/>
+
   <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 DNA Lounge
index 14ab6c18593d38723b8ec0b0517f65b7f2946654..aacfe0d262df48170a20351f3106a1a5c43147d1 100644 (file)
@@ -4,19 +4,21 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
+
   <number id="count" type="slider" arg="-count %"
           _label="Duration" _low-label="Short" _high-label="Long"
           low="1" high="200" default="30"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="200"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Drifting recursive fractal cosmic flames.
 
diff --git a/hacks/config/electricsheep.xml b/hacks/config/electricsheep.xml
deleted file mode 100644 (file)
index 26bd51d..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<screensaver name="electricsheep" _label="ElectricSheep">
-
-  <command arg="--root 1"/>
-
-  <hgroup>
-    <string id="nick" _label="Nickname" arg="--nick %"/>
-    <string id="url" _label="URL" arg="--url %"/>
-  </hgroup>
-
-  <hgroup>
-
-    <number id="framerate" type="spinbutton" arg="--frame-rate %"
-            _label="Frame Rate" low="1" high="100" default="23"/>
-
-    <number id="nrepeats" type="spinbutton" arg="--nrepeats %"
-            _label="Repititions of each Sheep"
-            low="0" high="10" default="2"/>
-
-  </hgroup>
-
-  <hgroup>
-    <boolean id="zoom" _label="Zoom" arg-set="--zoom 1" />
-    <boolean id="hide" _label="No Animation" arg-set="--display-anim 0" />
-    <boolean id="standalone" _label="No Network" arg-set="--standalone 1" />
-  </hgroup>
-
-  <hgroup>
-  <select id="maxmegs">
-     <option id="m100" _label="100 Mbyte cache" arg-set="--max-megabytes 100"/>
-     <option id="m300" _label="300 Mbyte cache" arg-set="--max-megabytes 300"/>
-     <option id="g1" _label="1 Gbyte cache" arg-set="--max-megabytes 1000"/>
-     <option id="g3" _label="3 Gbyte cache" arg-set="--max-megabytes 3000"/>
-     <option id="u" _label="Unlimited" arg-set="--max-megabytes 0"/>
-  </select>
-  </hgroup>
-
-
-  <_description>
-
-Displays mpeg video of an animated fractal flame.  In the background,
-it contributes render cycles to the next animation.  Periodically it
-uploades completed frames to the server, where they are compressed for
-distribution to all clients.
-
-This program is recommended only if you have a high bandwidth,
-always-on connection to the Internet.
-
-You can find it at &lt;http://www.electricsheep.org/&gt;.
-
-Written by By Scott Draves.
-  </_description>
-</screensaver>
index d26abffe0d1d012f7dbe8da511fceec3c0b29b73..abbea16b12052382feb1c039a0d24626f2c6259b 100644 (file)
@@ -5,16 +5,20 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
-  <boolean id="classic" _label="Low Resolution Chess Pieces" arg-set="-classic"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="classic" _label="Low resolution chess pieces" arg-set="-classic"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Black slips out of three mating nets, but the fourth one holds him tight!
-A brilliant composition!
+A brilliant composition! 
+
+See also the "Queens" screen saver.
+
+http://en.wikipedia.org/wiki/Chess_endgame
 
 Written by Blair Tennessy; 2002.
   </_description>
index 2698dc8953d4a1a2f6af2495582be0c2cf21ba8d..ed16447eb7953ba65b7a8b012059b95b7b851dbb 100644 (file)
@@ -5,12 +5,12 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="40000" default="30000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
           convert="invert"/>
 
   <select id="engine">
-   <option id="random" _label="Random Engine"/>
+   <option id="random" _label="Random engine"/>
    <option id="1" _label="Honda Insight (3 cylinders)"     arg-set="-engine honda_insight"/>
    <option id="2" _label="BMW M3 (4 cylinders)"            arg-set="-engine bmw_m3"/>
    <option id="3" _label="VW Beetle (4 cylinders, flat)"   arg-set="-engine vw_beetle"/>
    <option id="10" _label="Jaguar XKE (12 cylinders, V)"   arg-set="-engine jaguar_xke"/>
   </select>
 
-  <boolean id="titles" _label="Show Engine Name" arg-set="-titles"/>
+  <boolean id="titles" _label="Show engine name" arg-set="-titles"/>
   <hgroup>
     <boolean id="wander" _label="Wander" arg-unset="-no-move"/>
     <boolean id="spin" _label="Spin" arg-unset="-no-spin"/>
   </hgroup>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a simple model of an engine that floats around the screen.
 
+http://en.wikipedia.org/wiki/Internal_combustion_engine#Operation
+
 Written by Ben Buxton and Ed Beroset; 2001.
   </_description>
 </screensaver>
index cee38ff802dc432f73a1621c45e1442a4ad6df6b..0d5aecb24c61ccd88d86a513a87e1f0a04a8aee7 100644 (file)
@@ -4,24 +4,26 @@
 
   <command arg="-root"/>
 
-  <number id="ncolors" type="slider" arg="-colors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="100"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="200000" default="1000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
+  <number id="ncolors" type="slider" arg="-colors %"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
+            low="1" high="255" default="100"/>
+
   <number id="holdtime" type="slider" arg="-holdtime %"
-          _label="Duration" _low-label="1 second" _high-label="1 minute"
-          low="1" high="60" default="2"/>
+          _label="Linger" _low-label="1 second" _high-label="30 seconds"
+          low="1" high="30" default="2"/>
 
+  <hgroup>
   <number id="linewidth" type="spinbutton" arg="-linewidth %"
-          _label="Line Thickness" low="1" high="50" default="4"/>
+          _label="Line thickness" low="1" high="50" default="4"/>
 
   <number id="harmonics" type="spinbutton" arg="-harmonics %"
           _label="Harmonics" low="1" high="20" default="8"/>
+  </hgroup>
 
   <!-- #### -color0 [red] -->
   <!-- #### -colours [100] -->
   <!-- #### -size_factor_min [1.05] -->
   <!-- #### -size_factor_max [2.05] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-This program draws the path traced out by a point on the edge of a
+This draws the path traced out by a point on the edge of a
 circle.  That circle rotates around a point on the rim of another
 circle, and so on, several times. These were the basis for the
-pre-heliocentric model of planetary motion.  
+pre-heliocentric model of planetary motion.
+
+http://en.wikipedia.org/wiki/Deferent_and_epicycle
 
 Written by James Youngman; 1998.
   </_description>
index 44d0eecab60452f9237958ec4fbcf43569d3679a..86af1667c62e5b816515258b847fdc8903f5fdd5 100644 (file)
@@ -4,37 +4,45 @@
 
   <command arg="-root"/>
 
-  <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Few" _high-label="Many"
-            low="16" high="256" default="256"/>
-
-  <number id="nparticles" type="slider" arg="-particles %"
-            _label="Number of Particles" _low-label="Little" _high-label="Many"
-            low="100" high="2000" default="300"/>
-
-  <number id="cooloff" type="slider" arg="-cooloff %"
-            _label="Cooling factor" _low-label="Slow" _high-label="Fast"
-            low="0" high="10" default="2"/>
-
-  <number id="heat" type="slider" arg="-heat %"
-            _label="Heat" _low-label="Pleasant" _high-label="Inferno"
-            low="64" high="256" default="256"/>
-
-  <number id="gravity" type="slider" arg="-gravity %"
-            _label="Gravity" _low-label="Negative" _high-label="Positive"
-            low="-5" high="5" default="1"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="100000" default="10000"
-          convert="invert"/>
-
-  <number id="cycles" type="slider" arg="-cycles %"
-           _label="Duration" _low-label="Short" _high-label="Long"
-          low="10" high="3000" default="80"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="ncolors" type="slider" arg="-ncolors %"
+              _label="Number of colors" _low-label="Few" _high-label="Many"
+              low="16" high="256" default="256"/>
+
+    <number id="nparticles" type="slider" arg="-particles %"
+              _label="Number of particles" _low-label="Little" _high-label="Many"
+              low="100" high="2000" default="300"/>
+
+    <number id="cooloff" type="slider" arg="-cooloff %"
+              _label="Cooling factor" _low-label="Slow" _high-label="Fast"
+              low="0" high="10" default="2"/>
+   </vgroup>
+   <vgroup>
+    <number id="heat" type="slider" arg="-heat %"
+              _label="Heat" _low-label="Pleasant" _high-label="Inferno"
+              low="64" high="256" default="256"/>
+
+    <number id="gravity" type="slider" arg="-gravity %"
+              _label="Gravity" _low-label="Negative" _high-label="Positive"
+              low="-5" high="5" default="1"/>
+
+    <number id="cycles" type="slider" arg="-cycles %"
+             _label="Duration" _low-label="Short" _high-label="Long"
+            low="10" high="3000" default="80"/>
+
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+  </hgroup>
 
   <_description>
-Exploding fireworks.
+Exploding fireworks.  See also the "Fireworkx", "XFlame" and "Pyro"
+screen savers.
 
 Written by W.P. van Paassen; 2003.
   </_description>
index ee5cd681add1588f5ea9c6bf21fe4c11ddfd5ff3..f69b24a99423718766fda2315f692ddaf9aff3df 100644 (file)
@@ -1,15 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="euler2d" _label="Euler2d">
+<screensaver name="euler2d" _label="Euler2D">
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
+
   <number id="count" type="slider" arg="-count %"
            _label="Particles" _low-label="Few" _high-label="Many"
           low="2" high="5000" default="1024"/>
 
   <number id="eulertail" type="slider" arg="-eulertail %"
-           _label="Trail Length" _low-label="Short" _high-label="Long"
+           _label="Trail length" _low-label="Short" _high-label="Long"
           low="2" high="500" default="10"/>
 
 <!--
           low="100" high="5000" default="3000"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="2" high="255" default="64"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="300000" default="10000"
-          convert="invert"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
-Simulates two dimensional Incompressible Inviscid Fluid Flow.
+Simulates two dimensional incompressible inviscid fluid flow.
+
+http://en.wikipedia.org/wiki/Euler_equations_%28fluid_dynamics%29
+http://en.wikipedia.org/wiki/Inviscid_flow
 
 Written by Stephen Montgomery-Smith; 2002.
   </_description>
index be7fcfe985d2087a1cc90dee6459dd0762a48d6e..c66c89c640b97fbf7aea524de786f3a6a591bc32 100644 (file)
@@ -5,24 +5,24 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="40000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <select id="mode">
-    <option id="random"  _label="Random Object"/>
+    <option id="random"  _label="Random object"/>
     <option id="helix2" _label="Helix 2" arg-set="-name helix2"/>
     <option id="helix3" _label="Helix 3" arg-set="-name helix3"/>
     <option id="helix4" _label="Helix 4" arg-set="-name helix4"/>
-    <option id="joinoffset" _label="Join Offset" arg-set="-name joinoffset"/>
+    <option id="joinoffset" _label="Join offset" arg-set="-name joinoffset"/>
     <option id="screw" _label="Screw" arg-set="-name screw"/>
     <option id="taper" _label="Taper" arg-set="-name taper"/>
     <option id="twist" _label="Twistoid" arg-set="-name twistoid"/>
   </select>
 
   <select id="render">
-    <option id="flat"  _label="Use Flat Coloring" arg-set="-no-light"/>
-    <option id="light" _label="Use Lighting"/>
+    <option id="flat"  _label="Use flat coloring" arg-set="-no-light"/>
+    <option id="light" _label="Use lighting"/>
   </select>
 
   <!-- #### -texture -->
@@ -30,7 +30,7 @@
   <!-- #### -mipmap -->
 
   <boolean id="wire"    _label="Wireframe" arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws various rotating extruded shapes that twist around, lengthen,
index 77a619f3c03c5e3a766dcf711d27f2599ef6fb35..368224fd29259bbc949375958163c9cefb96143e 100644 (file)
@@ -4,22 +4,25 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="0" high="20" default="10"/>
-
-  <number id="cycles" type="slider" arg="-cycles %"
-           _label="Timeout" _low-label="Small" _high-label="Large"
-          low="0" high="800000" default="1500"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
           convert="invert"/>
 
+  <number id="count" type="slider" arg="-count %"
+          _label="Thickness" _low-label="Thin" _high-label="Thick"
+           low="0" high="30" default="10"/>
+
+  <number id="cycles" type="slider" arg="-cycles %"
+           _label="Cycles" _low-label="Small" _high-label="Large"
+          low="0" high="10000" default="1500"/>
+
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws what looks like a waving ribbon following a sinusoidal path.
 
index de40e44b95c61f3d06c635f5983fdf3ab3497d7f..9357730fbf628047a6b2b04ec34b034b0e0a4102 100644 (file)
@@ -4,14 +4,21 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
+
   <number id="count" type="slider" arg="-count %"
           _label="Fibers" _low-label="Few" _high-label="Many"
           low="10" high="500" default="500"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
-          _label="Time between Knocks" _low-label="Short" _high-label="Long"
+          _label="Time between knocks" _low-label="Short" _high-label="Long"
           low="100" high="10000" default="10000"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws a groovy rotating fiber optic lamp.  
 
diff --git a/hacks/config/fireflies.xml b/hacks/config/fireflies.xml
deleted file mode 100644 (file)
index ca92a9d..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<screensaver name="fireflies" _label="Fireflies">
-<command arg="-root" />
-
-<hgroup>
-<vgroup>
-<hgroup>
-    <number id="minbaits"
-       arg="-minbaits %"
-       type="spinbutton"
-       _label="Minimum baits"
-       low="1"
-       high="50"
-       default="2"
-    />
-    <number id="minflies"
-       arg="-minflies %"
-       type="spinbutton"
-       _label="Minimum flies"
-       low="1"
-       high="10000"
-       default="100"
-    />
-</hgroup>
-<hgroup>
-    <number id="maxbaits"
-       arg="-maxbaits %"
-       type="spinbutton"
-       _label="Maximum baits"
-       low="1"
-       high="50"
-       default="5"
-    />
-    <number id="maxflies"
-       arg="-maxflies %"
-       type="spinbutton"
-       _label="Maximum flies"
-       low="1"
-       high="10000"
-       default="175"
-    />
-</hgroup>
-
-<boolean id="draw"
-    _label="Draw baits"
-    arg-set="-drawbait"
-/>
-<hgroup>
-    <number id="bspeed"
-       arg="-bspeed %"
-       type="spinbutton"
-       _label="Bait speed"
-       low="0"
-       high="10000"
-       default="50"
-    />
-    <number id="baccel"
-       arg="-baccel %"
-       type="spinbutton"
-       _label="Bait accel"
-       low="0"
-       high="10000"
-       default="600"
-    />
-</hgroup>
-<hgroup>
-    <number id="fspeed"
-       arg="-fspeed %"
-       type="spinbutton"
-       _label="Firefly speed"
-       low="0"
-       high="10000"
-       default="100"
-    />
-    <number id="faccel"
-       arg="-faccel %"
-       type="spinbutton"
-       _label="Firefly accel"
-       low="0"
-       high="10000"
-       default="300"
-    />
-</hgroup>
-<number id="taillength"
-    arg="-taillength %"
-    type="slider"
-    _label="Tails"
-    _low-label="Short"
-    _high-label="Long"
-    low="0"
-    high="100"
-    default="22"
-/>
-<number id="tailwidth"
-    arg="-tailwidth %"
-    type="slider"
-    _low-label="Narrow"
-    _high-label="Wide"
-    low="0"
-    high="100"
-    default="25"
-/>
-<number id="tailopacity"
-    arg="-tailopacity %"
-    type="slider"
-    _low-label="Invisible"
-    _high-label="Opaque"
-    low="0"
-    high="100"
-    default="60"
-/>
-</vgroup>
-<vgroup>
-<hgroup>
-<number id="colorspeed"
-    arg="-colorspeed %"
-    type="spinbutton"
-    _label="Color cycle speed"
-    low="1"
-    high="100"
-    default="15"
-/>
-</hgroup>
-<number id="fps"
-    arg="-fps %"
-    type="spinbutton"
-    _label="Frames per sec"
-    low="1"
-    high="100"
-    default="20"
-/>
-<number id="fastforward"
-    arg="-fastforward %"
-    type="spinbutton"
-    _label="Fast Forward speed"
-    low="1"
-    high="100"
-    default="1"
-/>
-<number id="size"
-    arg="-size %"
-    type="slider"
-    _label="Firefly size"
-    _low-label="Tiny"
-    _high-label="Huge"
-    low="5"
-    high="100"
-    default="15"
-/>
-<number id="glowfactor"
-    arg="-glowfactor %"
-    type="slider"
-    _label="Glow factor"
-    _low-label="Half"
-    _high-label="10 times"
-    low="5"
-    high="100"
-    default="20"
-/>
-<number id="wind"
-    arg="-wind %"
-    type="slider"
-    _label="Wind"
-    _low-label="Still"
-    _high-label="Hurricane"
-    low="0"
-    high="100"
-    default="30"
-/>
-</vgroup>
-</hgroup>
-<hgroup>
-    <vgroup>
-       <number id="m0"
-           arg="-m0 %"
-           type="slider"
-           _label="Normal swarm motion"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="30"
-       />
-       <number id="m1"
-           arg="-m1 %"
-           type="slider"
-           _label="Swarm comes to a halt"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="10"
-       />
-       <number id="m2"
-           arg="-m2 %"
-           type="slider"
-           _label="Swarm does loops"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="10"
-       />
-       <number id="m3"
-           arg="-m3 %"
-           type="slider"
-           _label="Swarm bursts into rainbow               "
-           _low-label="Never"
-           _high-label="Often"
-           low="00"
-           high="100"
-           default="10"
-       />
-       <number id="m4"
-           arg="-m4 %"
-           type="slider"
-           _label="Swarm tails glow"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="15"
-       />
-       <number id="m5"
-           arg="-m5 %"
-           type="slider"
-           _label="Swarm hyperspeed"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="10"
-       />
-       <number id="m6"
-           arg="-m6 %"
-           type="slider"
-           _label="Faded colors"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="10"
-       />
-    </vgroup>
-    <vgroup>
-       <number id="M0"
-           arg="-M0 %"
-           type="slider"
-           _label="Make all swarms do something"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="5"
-       />
-       <number id="M1"
-           arg="-M1 %"
-           type="slider"
-           _label="Kill some fireflies"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="10"
-       />
-       <number id="M2"
-           arg="-M2 %"
-           type="slider"
-           _label="Add some fireflies"
-           _low-label="Never"
-           _high-label="Often"
-           low="00"
-           high="100"
-           default="10"
-       />
-       <number id="M3"
-           arg="-M3 %"
-           type="slider"
-           _label="Wind picks up"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="20"
-       />
-       <number id="M4"
-           arg="-M4 %"
-           type="slider"
-           _label="Matrix (pause and rotate)"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="20"
-       />
-       <number id="M5"
-           arg="-M5 %"
-           type="slider"
-           _label="Split a swarm"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="10"
-       />
-       <number id="M6"
-           arg="-M6 %"
-           type="slider"
-           _label="Merge two swarms"
-           _low-label="Never"
-           _high-label="Often"
-           low="0"
-           high="100"
-           default="10"
-       />
-    </vgroup>
-</hgroup>
-
-  <_description>
-A bunch of fireflies chase a few baits around the screen, leaving colorful
-tails which get blown around by the wind.
-This program is not included with the
-XScreenSaver package, but if you don't have it already, you can find it
-at &lt;http://somewhere.fscked.org/fireflies/&gt;.
-
-Written by Matt Perry.
-  </_description>
-</screensaver>
index 9c7c2db04003a60b5157c800806ed6e86a331e08..2a8f675ddb8175bcfb0804adaa82452c681a7dcd 100644 (file)
@@ -5,7 +5,7 @@
   <command arg="-root"/>
 
   <number id="Delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
+          _label="Frame rate" _low-label="Low" _high-label="High"
           low="0" high="100000" default="20000"
           convert="invert"/>
 
           _label="Activity" _low-label="Dense" _high-label="Sparse"
           low="250" high="5000" default="2000"/>
 
-  <boolean id="flash" _label="Light Flash" arg-unset="-no-flash"/>
-  <boolean id="glow"  _label="Self Glowing Smoke!" arg-unset="-no-glow"/>
-  <boolean id="shoot" _label="Shoot the Shells Up" arg-set="-shoot"/>
+  <boolean id="flash" _label="Light flash" arg-unset="-no-flash"/>
+  <boolean id="glow"  _label="Glowing smoke" arg-unset="-no-glow"/>
+  <boolean id="shoot" _label="Shells upward" arg-set="-shoot"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
-Exploding fireworks.
+Exploding fireworks.  See also the "Eruption", "XFlame" and "Pyro"
+screen savers.
 
 Written by Rony B Chandran; 2004.
   </_description>
index cd84a4f95dd2030a70b9e7f2bbd8c29adda899aa..cbce18b9fda8f5f573a72d2895e833529230a2a2 100644 (file)
@@ -4,13 +4,11 @@
 
   <command arg="-root"/>
 
-  <string id="text" _label="Text for Flag" arg="-text %"/>
-
-<!--  <file id="bitmap" _label="Bitmap for Flag" arg="-bitmap %"/> -->
+  <string id="text" _label="Text for flag" arg="-text %"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="60000" default="50000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="200000" default="50000"
           convert="invert"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
           low="0" high="800000" default="1000"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="200"/>
 
   <!-- #### -size [-7] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This draws a waving colored flag, that undulates its way around the
-screen.  The trick is the flag can contain arbitrary text and images.
-By default, it displays either the current system name and OS
-type, or a picture of "Bob".
+screen.  The flag can contain arbitrary text and images.  By default,
+it displays either the current system name and OS type, or a picture
+of "Bob".
 
 Written by Charles Vidal and Jamie Zawinski; 1997.
   </_description>
index 746966f593be4beb919c35ab1f5646b80237d773..8fce71c29b1aea8408f74cd005b6db499da2dc4c 100644 (file)
@@ -5,16 +5,16 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="50000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="50000"
           convert="invert"/>
 
   <number id="delay2" type="slider" arg="-delay2 %"
-          _label="Duration" _low-label="0 Seconds" _high-label="10 Seconds"
+          _label="Linger" _low-label="0 seconds" _high-label="10 seconds"
           low="1000" high="10000000" default="2000000"/>
 
   <number id="iterations" type="slider" arg="-iterations %"
-          _label="Number of Fractals" _low-label="Few" _high-label="Many"
+          _label="Number of fractals" _low-label="Few" _high-label="Many"
           low="1" high="250" default="25"/>
 
   <number id="points" type="slider" arg="-points %"
           low="100" high="80000" default="10000"/>
 
   <number id="ncolors" type="slider" arg="-colors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Iterative fractals.
 
index b6110873655d36365a3e9c10572c2ea6be39ae16..d8fffabecee90e837ed6fd16b160c754b68d6868 100644 (file)
@@ -4,26 +4,41 @@
 
   <command arg="-root"/>
 
-  <number id="size-x" type="spinbutton" arg="-size-x %"
-          _label="Width" low="3" high="20" default="9"/>
-  <number id="size-y" type="spinbutton" arg="-size-y %"
-          _label="Length" low="3" high="20" default="9"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
-          convert="invert"/>
-
-  <number id="spin" type="slider" arg="-spin %"
-          _label="Spin" _low-label="Stopped" _high-label="Whirlwind"
-          low="0" high="3.0" default="0.1"/>
-
-  <select id="mode">
-    <option id="tiles"  _label="Tiles"/>
-    <option id="sticks" _label="Sticks" arg-set="-mode sticks"/>
-  </select>
-  <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="20000"
+            convert="invert"/>
+
+    <number id="spin" type="slider" arg="-spin %"
+            _label="Spin" _low-label="Stopped" _high-label="Whirlwind"
+            low="0" high="3.0" default="0.1"/>
+   </vgroup>
+   <vgroup>
+
+    <select id="mode">
+      <option id="tiles"  _label="Draw Tiles"/>
+      <option id="sticks" _label="Draw Sticks" arg-set="-mode sticks"/>
+    </select>
+
+     <number id="size-x" type="spinbutton" arg="-size-x %"
+             _label="Width" low="3" high="20" default="9"/>
+     <number id="size-y" type="spinbutton" arg="-size-y %"
+             _label="Depth" low="3" high="20" default="9"/>
+   </vgroup>
+  </hgroup>
+
+  <hgroup>
+   <vgroup>
+    <boolean id="texture" _label="Load image"      arg-set="-texture" />
+    <boolean id="wire"    _label="Wireframe"       arg-set="-wireframe"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+   <vgroup>
+    <xscreensaver-image />
+   </vgroup>
+  </hgroup>
 
   <_description>
 Draws a grid of 3D colored tiles that change positions with each other.  
index 478a238ef8ac9781dcc429f60f2da3231f5fa54e..1009a74d40d6ed65e732e88232f57a6e07e328a3 100644 (file)
@@ -1,17 +1,17 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="flipscreen3d" _label="Flipscreen3d">
+<screensaver name="flipscreen3d" _label="FlipScreen3D">
 
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <boolean id="rotate" _label="Rotate" arg-unset="-no-rotate"/>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <xscreensaver-image />
 
index 60402843416665f544a9bed414af78d7f96459e6..ecaea69fda0e8f03c1ab49a703c31936983ff001 100644 (file)
@@ -4,36 +4,39 @@
 
   <command arg="-root"/>
 
-  <number id="speed" type="slider" arg="-speed %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0.1" high="10.0" default="1.0"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Frame Rate" _low-label="Low" _high-label="High"
+          _label="Frame rate" _low-label="Low" _high-label="High"
           low="0" high="100000" default="10000"
           convert="invert"/>
 
+  <number id="speed" type="slider" arg="-speed %"
+          _label="Speed" _low-label="Slow" _high-label="Fast"
+          low="0.1" high="10.0" default="1.0"/>
+
+  <hgroup>
+   <vgroup>
   <select id="align">
-    <option id="left"   _label="Random Text Alignment"/>
-    <option id="left"   _label="Flush Left Text"  arg-set="-alignment left"/>
-    <option id="center" _label="Centered Text"    arg-set="-alignment center"/>
-    <option id="right"  _label="Flush Right Text" arg-set="-alignment right"/>
+    <option id="left"   _label="Random text alignment"/>
+    <option id="left"   _label="Flush left text"  arg-set="-alignment left"/>
+    <option id="center" _label="Centered text"    arg-set="-alignment center"/>
+    <option id="right"  _label="Flush right text" arg-set="-alignment right"/>
   </select>
 
-  <number id="size" type="spinbutton" arg="-size %"
-           _label="Font Point Size" low="1" high="100" default="20"/>
-
-  <number id="columns" type="spinbutton" arg="-columns %"
-           _label="Text Columns" low="1" high="200" default="80"/>
-
-  <number id="lines" type="spinbutton" arg="-lines %"
-           _label="Text Lines" low="1" high="99" default="8"/>
+    <number id="size" type="spinbutton" arg="-size %"
+             _label="Font point size" low="1" high="100" default="20"/>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+    <number id="columns" type="spinbutton" arg="-columns %"
+             _label="Text columns" low="1" high="200" default="80"/>
 
-<!--   <file id="program" _label="Text Program" arg="-program %"/> -->
+    <number id="lines" type="spinbutton" arg="-lines %"
+             _label="Text lines" low="1" high="99" default="8"/>
 
-  <xscreensaver-text />
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+   <vgroup>
+    <xscreensaver-text />
+   </vgroup>
+  </hgroup>
 
   <_description>
 Draws successive pages of text.  The lines flip in and out in
index 24e12775732126cd9fc879f2f50f495ed370dab0..76d1bf4ca50aed56841c20989ce8321637640782 100644 (file)
@@ -4,35 +4,52 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="0" high="3000" default="3000"/>
-
-  <number id="cycles" type="slider" arg="-cycles %"
-           _label="Timeout" _low-label="Small" _high-label="Large"
-          low="0" high="800000" default="10000"/>
-
-  <number id="speed" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="1000"
-          convert="invert"/>
-
-  <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="200"/>
-
-  <number id="size" type="slider" arg="-size %"
-            _label="Length of trails" _low-label="Short" _high-label="Long"
-            low="-20" high="-2" default="-10" convert="invert"/>
-
-  <boolean id="rotate" _label="Rotating around attractor" arg-unset="-no-rotate"/>
-  <boolean id="ride"   _label="Ride in the flow" arg-unset="-no-ride"/>
-  <boolean id="box"    _label="Draw bounding box"  arg-unset="-no-box"/>
-  <boolean id="periodic" _label="Periodic attractors" arg-unset="-no-periodic"/>
-  <boolean id="search" _label="Search for new attractors" arg-unset="-no-search"/>
-<!--  <boolean id="dbuf" _label="Double Buffer" arg-unset="-no-dbuf"/> -->
+  <hgroup>
+   <vgroup>
+    <number id="speed" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="count" type="slider" arg="-count %"
+            _label="Count" _low-label="Few" _high-label="Many"
+             low="10" high="5000" default="3000"/>
+
+    <number id="cycles" type="slider" arg="-cycles %"
+             _label="Timeout" _low-label="Small" _high-label="Large"
+            low="0" high="800000" default="10000"/>
+   </vgroup>
+   <vgroup>
+    <number id="ncolors" type="slider" arg="-ncolors %"
+              _label="Number of colors" _low-label="Two" _high-label="Many"
+              low="1" high="255" default="200"/>
+
+    <number id="size" type="slider" arg="-size %"
+              _label="Length of trails" _low-label="Short" _high-label="Long"
+              low="-20" high="-2" default="-10" convert="invert"/>
+   </vgroup>
+  </hgroup>
+
+  <hgroup>
+   <vgroup>
+    <boolean id="rotate" _label="Rotating around attractor" arg-unset="-no-rotate"/>
+    <boolean id="ride"   _label="Ride in the flow" arg-unset="-no-ride"/>
+    <boolean id="box"    _label="Draw bounding box"  arg-unset="-no-box"/>
+   </vgroup>
+   <vgroup>
+    <boolean id="periodic" _label="Periodic attractors" arg-unset="-no-periodic"/>
+    <boolean id="search" _label="Search for new attractors" arg-unset="-no-search"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+  </hgroup>
 
   <_description>
-Strange attractors formed of flows in a 3D differential equation phase space.
+Strange attractors formed of flows in a 3D differential equation phase
+space.  Features the popular attractors described by Lorentz,
+Roessler, Birkhoff and Duffing, and can discover entirely new
+attractors by itself.
+
+http://en.wikipedia.org/wiki/Attractor#Strange_attractor
 
 Written by Tim Auckland; 1998.
   </_description>
index d9d0abc4ecbd3a032908c0429d314621e5dd5f14..10b342f2a781ead30e0d7646f0c4ae9eb9eceef0 100644 (file)
@@ -4,34 +4,39 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="slider" arg="-count %"
-           _label="Balls" _low-label="Few" _high-label="Many"
-          low="1" high="3000" default="300"/>
-
-  <number id="size" type="slider" arg="-size %"
-           _label="Ball Size" _low-label="Small" _high-label="Large"
-          low="3" high="200" default="25"/>
-
-  <number id="gravity" type="slider" arg="-gravity %"
-           _label="Gravity" _low-label="      Freefall" _high-label="Jupiter"
-          low="0.0" high="0.1" default="0.01"/>
-
-  <number id="wind" type="slider" arg="-wind %"
-           _label="Wind" _low-label="Still" _high-label="Hurricane"
-          low="0.0" high="0.1" default="0.00"/>
-
-  <number id="elasticity" type="slider" arg="-elasticity %"
-           _label="Friction" _low-label="Clay" _high-label="Rubber"
-          low="0.2" high="1.0" default="0.97"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="100000" default="10000"
-          convert="invert"/>
-
-  <boolean id="random" _label="Various Ball Sizes"    arg-unset="-no-random"/>
-  <boolean id="shake"  _label="Shake Box"             arg-unset="-no-shake"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="count" type="slider" arg="-count %"
+             _label="Number of balls" _low-label="Few" _high-label="Many"
+            low="1" high="3000" default="300"/>
+
+    <number id="size" type="slider" arg="-size %"
+             _label="Ball size" _low-label="Small" _high-label="Large"
+            low="3" high="200" default="25"/>
+   </vgroup>
+   <vgroup>
+    <number id="gravity" type="slider" arg="-gravity %"
+             _label="Gravity" _low-label="      Freefall" _high-label="Jupiter"
+            low="0.0" high="0.1" default="0.01"/>
+
+    <number id="wind" type="slider" arg="-wind %"
+             _label="Wind" _low-label="Still" _high-label="Hurricane"
+            low="0.0" high="0.1" default="0.00"/>
+
+    <number id="elasticity" type="slider" arg="-elasticity %"
+             _label="Friction" _low-label="Clay" _high-label="Rubber"
+            low="0.2" high="1.0" default="0.97"/>
+   </vgroup>
+  </hgroup>
+
+  <boolean id="random" _label="Various ball sizes"    arg-unset="-no-random"/>
+  <boolean id="shake"  _label="Shake box"             arg-unset="-no-shake"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Models the physics of bouncing balls, or of particles in a gas or
index 85b0cf8f80d9dedfe856d1ef25196ad65c9a2e18..5d99baf5f7cbc435ea9b48d607b8a60a001409a5 100644 (file)
@@ -4,7 +4,7 @@
 
   <command arg="-root"/>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <select id="preset">
     <option id="classic" _label="Classic"     arg-set="-preset classic"/>
index ca7a65b63032e58a488cc6ab7a211089da4309af..be57e4ea9c3b2037ca5c2b97965bcb630808f801 100644 (file)
@@ -1,34 +1,38 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="flyingtoasters" _label="Flying Toasters">
+<screensaver name="flyingtoasters" _label="FlyingToasters">
 
   <command arg="-root"/>
 
-  <number id="speed" type="slider" arg="-speed %"
-          _label="Air Speed" _low-label="Slow" _high-label="Fast"
-          low="0.01" high="8.0" default="1.0"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
           convert="invert"/>
 
+  <number id="speed" type="slider" arg="-speed %"
+          _label="Air speed" _low-label="Slow" _high-label="Fast"
+          low="0.01" high="8.0" default="1.0"/>
+
   <number id="ntoasters" type="slider" arg="-ntoasters %"
-          _label="Number of Toasters" _low-label="None" _high-label="Swarm"
+          _label="Number of toasters" _low-label="None" _high-label="Swarm"
           low="0" high="50" default="20"/>
 
   <number id="nslices" type="slider" arg="-nslices %"
-          _label="Number of Slices" _low-label="None" _high-label="Swarm"
+          _label="Number of slices" _low-label="None" _high-label="Swarm"
           low="0" high="50" default="25"/>
 
-  <boolean id="tex"     _label="Chrome"      arg-unset="-no-texture"/>
-  <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <hgroup>
+   <boolean id="tex"     _label="Chrome"      arg-unset="-no-texture"/>
+   <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </hgroup>
 
   <_description>
 A fleet of 3d space-age jet-powered flying toasters (and toast!)
 Inspired by the ancient Berkeley Systems After Dark flying toasters.
 
-Written by Jamie Zawinski and Baconmonkey; 2003.
+http://en.wikipedia.org/wiki/After_Dark_%28software%29#Flying_Toasters
+
+Written by Jamie Zawinski and Devon Dossett; 2003.
   </_description>
 </screensaver>
index df98e3c07fe75d0bca63fa4910107969d22e9978..58dadcbfe97c6d0e316b755e79b87ff439a1f8a3 100644 (file)
@@ -4,35 +4,33 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="10000"
-          convert="invert"/>
-
-  <number id="speed" type="slider" arg="-speed %"
-          _label="Motion Speed" _low-label="Slow" _high-label="Fast"
-          low="0.1" high="10" default="1"/>
-
-  <number id="linger" type="slider" arg="-linger %"
-          _label="Text Linger" _low-label="Brief" _high-label="Long"
-          low="0.1" high="10" default="1"/>
-
-  <number id="bw" type="spinbutton" arg="-bw %"
-           _label="Font Border Thickness" low="0" high="8" default="2"/>
-
- <hgroup>
-  <select id="mode">
-   <option id="page"   _label="Pages of text"  arg-set="-mode page"/>
-   <option id="scroll" _label="Horizontally scrolling text" arg-set="-mode scroll"/>
-   <option id="random" _label="Random display style"/>
-  </select>
-
-   <boolean id="trails" _label="Vapor Trails"    arg-set="-trails"/>
- </hgroup>
-
-<!--  <boolean id="db"     _label="Double Buffer" arg-unset="-no-db"/> -->
-
-<!--  <file id="program" _label="Text Program" arg="-program %"/> -->
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="speed" type="slider" arg="-speed %"
+            _label="Speed" _low-label="Slow" _high-label="Fast"
+            low="0.1" high="10.0" default="1.0"/>
+    <select id="mode">
+     <option id="page"   _label="Pages of text"  arg-set="-mode page"/>
+     <option id="scroll" _label="Horizontally scrolling text" arg-set="-mode scroll"/>
+     <option id="random" _label="Random display style"/>
+    </select>
+   </vgroup>
+   <vgroup>
+    <number id="linger" type="slider" arg="-linger %"
+            _label="Page linger" _low-label="Brief" _high-label="Long"
+            low="0.1" high="10.0" default="1.0"/>
+
+    <number id="bw" type="spinbutton" arg="-bw %"
+             _label="Font border thickness" low="0" high="8" default="2"/>
+    <boolean id="trails" _label="Vapor trails"    arg-set="-trails"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+  </hgroup>
 
   <xscreensaver-text />
 
index 5432f75ea363473d754beacf2219d64d586a8318..4bce9055eb959cfa68edc3a7cb80d0a70d166b1d 100644 (file)
@@ -5,14 +5,16 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="800000" default="500000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="3000000" default="500000"
           convert="invert"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="20" default="20"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Fractal trees.  
 
index 97fc8f7866942b4a56d33affd562ea9503183557..179c46a382227ea8732080b173b24b147cdaf54d 100644 (file)
@@ -4,31 +4,54 @@
 
   <command arg="-root"/>
 
-  <string id="color" _label="Color" arg="-color %"/>
-
-  <number id="arms" type="slider" arg="-arms %"
-          _label="Arms" _low-label="Few" _high-label="Many"
-          low="1" high="10" default="5"/>
-  <number id="thickness" type="slider" arg="-thickness %"
-          _label="Thickness" _low-label="Thin" _high-label="Thick"
-          low="1" high="50" default="10"/>
-  <number id="bthickness" type="slider" arg="-bthickness %"
-          _label="Border Thickness" _low-label="Thin" _high-label="Thick"
-          low="0" high="50" default="3"/>
-  <number id="radius" type="slider" arg="-radius %"
-          _label="Radius" _low-label="Small" _high-label="Large"
-          low="1" high="100" default="20"/>
-  <number id="layers" type="slider" arg="-layers %"
-          _label="Layers" _low-label="Few" _high-label="Many"
-          low="1" high="10" default="3"/>
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Delay" _low-label="Slow" _high-label="Fast"
-          low="0" high="250000" default="10000"/>
-  <number id="speed" type="slider" arg="-speed %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="1" high="50" default="10"/>
-<!--  <boolean id="db" _label="Double Buffer" arg-unset="-no-db"/> -->
-  <boolean id="rc" _label="Random Colors" arg-set="-random-colors"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="speed" type="slider" arg="-speed %"
+            _label="Speed" _low-label="Slow" _high-label="Fast"
+            low="1" high="50" default="10"/>
+
+    <number id="layers" type="slider" arg="-layers %"
+            _label="Layers" _low-label="Few" _high-label="Many"
+            low="1" high="10" default="3"/>
+
+    <hgroup>
+     <boolean id="rc" _label="Random colors" arg-set="-random-colors"/>
+     <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+    </hgroup>
+
+    <select id="color">
+     <option id="lred"     _label="Red"     arg-set="-color #FF0000"/>
+     <option id="pink"     _label="Pink"/>
+     <option id="lyellow"  _label="Yellow"  arg-set="-color #FFFF00"/>
+     <option id="lgreen"   _label="Green"   arg-set="-color #00FF00"/>
+     <option id="lcyan"    _label="Cyan"    arg-set="-color #00FFFF"/>
+     <option id="lblue"    _label="Blue"    arg-set="-color #0000FF"/>
+     <option id="lmagenta" _label="Magenta" arg-set="-color #FF00FF"/>
+    </select>
+
+   </vgroup>
+   <vgroup>
+    <number id="arms" type="slider" arg="-arms %"
+            _label="Arms" _low-label="Few" _high-label="Many"
+            low="1" high="10" default="5"/>
+    <number id="thickness" type="slider" arg="-thickness %"
+            _label="Thickness" _low-label="Thin" _high-label="Thick"
+            low="1" high="50" default="10"/>
+    <number id="bthickness" type="slider" arg="-bthickness %"
+            _label="Border thickness" _low-label="Thin" _high-label="Thick"
+            low="0" high="50" default="3"/>
+    <number id="radius" type="slider" arg="-radius %"
+            _label="Radius" _low-label="Small" _high-label="Large"
+            low="1" high="100" default="20"/>
+
+   </vgroup>
+  </hgroup>
+
   <_description>
 Falling colored snowflake/flower shapes.
 
index 45478e39802ac2400d881ec86197e7aac7ec2a77..bc116cd5627c358c8c96816b92bfb7f03b42cc6c 100644 (file)
@@ -4,6 +4,11 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
+
   <number id="count" type="spinbutton" arg="-count %"
           _label="Count" low="-20" high="20" default="-5"/>
 
            _label="Duration" _low-label="Short" _high-label="Long"
           low="10" high="1000" default="250"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="100000" default="10000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="10" high="255" default="64"/>
 
-  <boolean id="spin" _label="Rotate Viewpoint" arg-unset="-no-spin"/>
+  <boolean id="spin" _label="Rotate viewpoint" arg-unset="-no-spin"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 This draws spinning galaxies, which then collide and scatter their
index f9cc01ff1dc00580d7c5ea391b165e7eee486a0e..55aac9f04beba1c81734ae24b9a79715475383b0 100644 (file)
@@ -5,28 +5,31 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
           convert="invert"/>
 
   <number id="speed" type="slider" arg="-speed %"
-          _label="Motion Speed" _low-label="Slow" _high-label="Fast"
+          _label="Speed" _low-label="Slow" _high-label="Fast"
           low="0.01" high="5.0" default="1.0"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Gear Count" low="0" high="20" default="0"/>
+  <number id="count" type="slider" arg="-count %"
+          _label="Gear count" _low-label="0" _high-label="20"
+           low="0" high="20" default="0"/>
 
   <hgroup>
    <boolean id="wander" _label="Wander"    arg-unset="-no-wander"/>
    <boolean id="spin"   _label="Spin"      arg-unset="-no-spin"/>
    <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-
   <_description>
 This draws sets of turning, interlocking gears, rotating in three
-dimensions.
+dimensions.  See also the "Pinion" and "MoebiusGears" screen savers.
+
+http://en.wikipedia.org/wiki/Involute_gear
+http://en.wikipedia.org/wiki/Epicyclic_gearing
 
 Written by Jamie Zawinski; 2007.
   </_description>
index 35476cce14a26f0686edc141f563472e433ead73..a38c72965422f1565a23208d13c4590a7a08bd30 100644 (file)
@@ -4,32 +4,38 @@
 
   <command arg="-root"/>
 
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="20000"
+            convert="invert"/>
+
+    <number id="wave" type="slider" arg="-speed %"
+            _label="Wave speed" _low-label="Slow" _high-label="Fast"
+            low="0" high="0.50" default="0.05"
+            convert="invert"/>
+   </vgroup>
+   <vgroup>
+    <number id="squares" type="slider" arg="-squares %"
+             _label="Mesh density" _low-label="Sparse" _high-label="Dense"
+            low="2" high="40" default="19"/>
+
+    <number id="waves" type="slider" arg="-waves %"
+            _label="Waves" _low-label="1" _high-label="10"
+             low="1" high="10" default="3"/>
+   </vgroup>
+  </hgroup>
+
   <select id="mode">
-   <option id="wire"    _label="Wire Mesh"           arg-set="-mode wire"/>
-   <option id="solid"   _label="Flat Lighting"       arg-set="-mode solid"/>
-   <option id="light"   _label="Directional Lighting"/>
+   <option id="wire"    _label="Wire mesh"           arg-set="-mode wire"/>
+   <option id="solid"   _label="Flat lighting"       arg-set="-mode solid"/>
+   <option id="light"   _label="Directional lighting"/>
    <option id="checker" _label="Checkerboard"        arg-set="-mode checker"/>
    <option id="grab"    _label="Picture"             arg-set="-mode grab"/>
   </select>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
-          convert="invert"/>
-
-  <number id="wave" type="slider" arg="-speed %"
-          _label="Wave Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="0.50" default="0.05"
-          convert="invert"/>
-
-  <number id="squares" type="slider" arg="-squares %"
-           _label="Mesh Density" _low-label="Sparse" _high-label="Dense"
-          low="2" high="40" default="19"/>
-
-  <number id="waves" type="spinbutton" arg="-waves %"
-          _label="Waves" low="1" high="10" default="3"/>
-
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <!-- #### -resolution [4] -->
   <!-- #### -flat [0] -->
index 7a885098709d1e188b562556d005893dcf1be1e5..c655a16f76459744017954efab7805c8bd039b70 100644 (file)
@@ -5,18 +5,18 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="blursize" type="slider" arg="-blursize %"
-          _label="Blur Smoothness" _low-label="Sparse" _high-label="Dense"
+          _label="Blur smoothness" _low-label="Sparse" _high-label="Dense"
           low="1" high="100" default="15"/>
 
   <boolean id="wander" _label="Wander" arg-unset="-no-wander"/>
 
   <select id="rotation">
-    <option id="no"  _label="Don't Rotate"               arg-set="-spin 0"/>
+    <option id="no"  _label="Don't rotate"               arg-set="-spin 0"/>
     <option id="x"   _label="Rotate around X axis"       arg-set="-spin X"/>
     <option id="y"   _label="Rotate around Y axis"       arg-set="-spin Y"/>
     <option id="z"   _label="Rotate around Z axis"       arg-set="-spin Z"/>
     <option id="xyz" _label="Rotate around all three axes"/>
   </select>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
-This program draws a box and a few line segments, and generates a
+This draws a box and a few line segments, and generates a
 radial blur outward from it.  This creates flowing field effects.
 
 This is done by rendering the scene into a small texture, then
 repeatedly rendering increasingly-enlarged and increasingly-transparent
 versions of that texture onto the frame buffer.  As such, it's quite
-graphics intensive: don't bother trying to run this if you don't have
-hardware-accelerated OpenGL texture support.  It will hurt your
-machine bad.
+GPU-intensive: if you don't have a very good graphics card, it
+will hurt your machine bad.
 
 Written by Jamie Zawinski; 2002.
   </_description>
index 2c2c75e62c4f61fd7a3aa61c76e7b9e062685082..942c0aea48ee2cb3bd294c8f5dde8b6bf17778ff 100644 (file)
@@ -4,76 +4,54 @@
 
   <command arg="-root"/>
 
-  <number id="seeds" type="spinbutton" arg="-seeds %"
-          _label="Seeds" low="1" high="15" default="1"/>
-
-  <hgroup>
-  <number id="maxcells" type="slider" arg="-maxcells %"
-          _label="Max cells" _low-label="Few" _high-label="Many"
-          low="50" high="5000" default="800"/>
-  </hgroup>
-
   <hgroup>
-  <number id="radius" type="slider" arg="-radius %"
-          _label="Cell radius" _low-label="Small" _high-label="Huge"
-          low="5" high="80" default="40"/>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="20000"
+            convert="invert"/>
+    <number id="pause" type="slider" arg="-pause %"
+            _label="Linger" _low-label="Short" _high-label="Long"
+            low="0" high="400" default="50"/>
+    <number id="maxcells" type="slider" arg="-maxcells %"
+            _label="Max cells" _low-label="Few" _high-label="Many"
+            low="50" high="5000" default="800"/>
+    <number id="radius" type="slider" arg="-radius %"
+            _label="Cell radius" _low-label="Small" _high-label="Huge"
+            low="5" high="80" default="40"/>
+    <select id="quality">
+      <option id="q0" _label="Lowest sphere detail"  arg-set="-quality 0"/>
+      <option id="q1" _label="Medium sphere detail"  arg-set="-quality 1"/>
+      <option id="q2" _label="Normal sphere detail"  arg-set="-quality 2"/>
+      <option id="q3" _label="More sphere detail"/>
+      <option id="q4" _label="Highest sphere detail" arg-set="-quality 4"/>
+    </select>
+   </vgroup>
+   <vgroup>
+    <number id="minfood" type="slider" arg="-minfood %"
+            _label="Min food" _low-label="Starve" _high-label="Gorge"
+            low="0" high="100" default="5"/>
+    <number id="maxfood" type="slider" arg="-maxfood %"
+            _label="Max food" _low-label="Starve" _high-label="Gorge"
+            low="10" high="100" default="20"/>
+    <number id="divideage" type="slider" arg="-divideage %"
+            _label="Cell division" _low-label="Quick" _high-label="Slow"
+            low="1" high="100" default="20"/>
+    <number id="mindist" type="slider" arg="-mindist %"
+            _label="Min distance" _low-label="Small" _high-label="Large"
+            low="1.0" high="3.0" default="1.4"/>
+    <number id="seeds" type="slider" arg="-seeds %"
+            _label="Seeds" _low-label="1" _high-label="15"
+           low="1" high="15" default="1"/>
+   </vgroup>
+  </hgroup>
+
+  <hgroup>
+   <boolean id="keepold" _label="Keep dead cells" arg-set="-keepold"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   <boolean id="wireframe" _label="Wireframe" arg-set="-wireframe"/>
   </hgroup>
 
-  <hgroup>
-  <number id="minfood" type="slider" arg="-minfood %"
-          _label="Min food" _low-label="Starve" _high-label="Gorge"
-          low="0" high="100" default="5"/>
-  </hgroup>
-
-  <hgroup>
-  <number id="maxfood" type="slider" arg="-maxfood %"
-          _label="Max food" _low-label="Starve" _high-label="Gorge"
-          low="10" high="100" default="20"/>
-  </hgroup>
-
-  <hgroup>
-  <number id="divideage" type="slider" arg="-divideage %"
-          _label="Cell division" _low-label="Quick" _high-label="Slow"
-          low="1" high="100" default="20"/>
-  </hgroup>
-
-  <hgroup>
-  <number id="mindist" type="slider" arg="-mindist %"
-          _label="Min. distance" _low-label="Small" _high-label="Large"
-          low="1.0" high="3.0" default="1.4"/>
-  </hgroup>
-
-  <hgroup>
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
-          convert="invert"/>
-  </hgroup>
-
-  <hgroup>
-  <number id="pause" type="slider" arg="-pause %"
-          _label="Pause at end" _low-label="Short" _high-label="Long"
-          low="0" high="400" default="20"/>
-  </hgroup>
-
-  <select id="quality">
-    <option id="q0" _label="Lowest sphere detail"  arg-set="-quality 0"/>
-    <option id="q1" _label="Medium sphere detail"  arg-set="-quality 1"/>
-    <option id="q2" _label="Normal sphere detail"  arg-set="-quality 2"/>
-    <option id="q3" _label="More sphere detail"/>
-    <option id="q4" _label="Highest sphere detail" arg-set="-quality 4"/>
-  </select>
-
-  <hgroup>
-  <boolean id="keepold" _label="Keep dead cells" arg-set="-keepold"/>
-
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-
-  <boolean id="wireframe" _label="Wireframe" arg-set="-wireframe"/>
-  </hgroup>
-
-  <xscreensaver-image />
-
   <_description>
 Cells growing, dividing and dying on your screen.
 
index cb7b07b4e3eb609b10a5b52377b41b8856e22a1d..1e0f8bc0cdee567126b761d3a574200115c29986 100644 (file)
@@ -4,28 +4,35 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
+
+  <number id="size" _label="Size of tube" arg="-size %"
+         type="slider" _low-label="Small" _high-label="Large"
+         low="0" high="10" default="0" />
+
+  <number id="duration" type="slider" arg="-duration %"
+          _label="Image duration"
+          _low-label="10 seconds" _high-label="5 minutes"
+          low="10" high="300" default="30"/>
+
   <hgroup>
    <boolean id="move"  _label="Move"   arg-unset="-no-move"/>
    <boolean id="rotate"        _label="Rotate" arg-unset="-no-rotate"/>
    <boolean id="zoom"  _label="Zoom"   arg-set="-zoom"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
-  <number id="size"            _label="Size of tube" arg="-size %"
-         type="slider" _low-label="Small" _high-label="Large"
-         low="1" high="10" default="7" />
-  <number id="duration" type="slider" arg="-duration %"
-          _label="Image Duration"
-          _low-label="10 Seconds" _high-label="5 Minutes"
-          low="10" high="300" default="30"/>
-
   <xscreensaver-image />
 
-  <boolean id="showfps"        _label="Show Frames-per-Second" arg-set="-fps"/>
-
   <_description>
-A kaleidescope that operates on your desktop image, or on
+A kaleidoscope that operates on your desktop image, or on
 image files loaded from disk.  
 
+http://en.wikipedia.org/wiki/Kaleidoscope
+
 Written by Andrew Dean; 2003.
   </_description>
 </screensaver>
index 3d38d4f7e440bbe02db6dd5436819500651f61a0..844db120518ce3dc6dca15dc5629f6a4ff21e7b5 100644 (file)
@@ -5,24 +5,30 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="count" type="slider" arg="-count %"
-          _label="Count" _low-label="Rain" _high-label="Huge Fire"
+          _label="Count" _low-label="Rain" _high-label="Huge fire"
           low="0" high="8000" default="800"/>
 
   <number id="trees" type="slider" arg="-trees %"
           _label="Number of trees" _low-label="Desert" _high-label="Forest"
           low="0" high="20" default="5"/>
 
-  <boolean id="wander"  _label="Wander"    arg-unset="-no-wander"/>
-  <boolean id="tex"     _label="Textures"  arg-unset="-no-texture"/>
-  <boolean id="shadow"  _label="Shadows"   arg-unset="-no-shadows"/>
-  <boolean id="fog"     _label="Fog"         arg-set="-fog"/>
-  <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <hgroup>
+   <vgroup>
+    <boolean id="wander"  _label="Wander"    arg-unset="-no-wander"/>
+    <boolean id="tex"     _label="Textures"  arg-unset="-no-texture"/>
+    <boolean id="shadow"  _label="Shadows"   arg-unset="-no-shadows"/>
+   </vgroup>
+   <vgroup>
+    <boolean id="fog"     _label="Fog"         arg-set="-fog"/>
+    <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+  </hgroup>
 
   <_description>
 Draws an animation of sprinkling fire-like 3D triangles in a landscape
index d9b0f34b04f2156477c18ea9ed23f836b34743a4..c4405b7d2721b18409519e0218ccf58c54c1950b 100644 (file)
@@ -4,26 +4,29 @@
 
        <command arg="-root"/>
        
-       <number id="count" type="spinbutton" arg="-count %"
-         _label="Number of Disks" default="0" low="0" high="31"/>
+       <number id="delay" type="slider" arg="-delay %"
+         _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="15000" convert="invert"/>
+       
+       <number id="count" type="slider" arg="-count %"
+         _label="Number of disks" _low-label="0" _high-label="31"
+           default="0" low="0" high="31"/>
        
        <boolean id="fog" _label="Enable fog" arg-set="-fog"/>
 
        <boolean id="wire" _label="Wireframe" arg-set="-wireframe"/>
 
-       <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+       <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
        <boolean id="lighting" _label="Enable lighting" arg-unset="-no-light"/>
 
-       <number id="delay" type="slider" arg="-delay %"
-         _label="Frame Delay" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="40000" convert="invert"/>
-       
        <_description>
 Solves the Towers of Hanoi puzzle. Move N disks from one pole to
 another, one disk at a time, with no disk ever resting on a disk
 smaller than itself.
 
+http://en.wikipedia.org/wiki/Tower_of_Hanoi
+
 Written by Dave Atkinson; 2005.
        </_description>
 </screensaver>
index a8502fc5212c529b2ea122f94e277a3c547fdf52..766b2e0381393a76513f1af3dcd3aeb54eb1e197 100644 (file)
@@ -4,46 +4,56 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
-          convert="invert"/>
-
-  <number id="speed" type="slider" arg="-speed %"
-          _label="Motion Speed" _low-label="Slow" _high-label="Fast"
-          low="0.01" high="5.0" default="1.0"/>
-
-  <number id="segments" type="slider" arg="-segments %"
-          _label="Resolution" _low-label="Segmented" _high-label="Smooth"
-          low="100" high="2000" default="800"/>
-
-  <number id="thickness" type="slider" arg="-thickness %"
-          _label="Thickness" _low-label="Thin" _high-label="Thick"
-          low="0.05" high="1.0" default="0.3"/>
-
-  <select id="rotation">
-    <option id="no"  _label="Don't Rotate"               arg-set="-spin 0"/>
-    <option id="x"   _label="Rotate around X axis"       arg-set="-spin X"/>
-    <option id="y"   _label="Rotate around Y axis"       arg-set="-spin Y"/>
-    <option id="z"   _label="Rotate around Z axis"       arg-set="-spin Z"/>
-    <option id="xy"  _label="Rotate around X and Y axes" arg-set="-spin XY"/>
-    <option id="xz"  _label="Rotate around X and Z axes" arg-set="-spin XZ"/>
-    <option id="yz"  _label="Rotate around Y and Z axes" arg-set="-spin YZ"/>
-    <option id="xyz" _label="Rotate around all three axes"/>
-  </select>
-
   <hgroup>
-   <boolean id="wander" _label="Wander"    arg-unset="-no-wander"/>
-   <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
-  </hgroup>
-
-  <hgroup>
-    <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="30000"
+            convert="invert"/>
+
+    <number id="speed" type="slider" arg="-speed %"
+            _label="Speed" _low-label="Slow" _high-label="Fast"
+            low="0.01" high="5.0" default="1.0"/>
+
+    <select id="rotation">
+      <option id="no"  _label="Don't rotate"               arg-set="-spin 0"/>
+      <option id="x"   _label="Rotate around X axis"       arg-set="-spin X"/>
+      <option id="y"   _label="Rotate around Y axis"       arg-set="-spin Y"/>
+      <option id="z"   _label="Rotate around Z axis"       arg-set="-spin Z"/>
+      <option id="xy"  _label="Rotate around X and Y axes" arg-set="-spin XY"/>
+      <option id="xz"  _label="Rotate around X and Z axes" arg-set="-spin XZ"/>
+      <option id="yz"  _label="Rotate around Y and Z axes" arg-set="-spin YZ"/>
+      <option id="xyz" _label="Rotate around all three axes"/>
+    </select>
+
+   </vgroup>
+   <vgroup>
+
+    <number id="segments" type="slider" arg="-segments %"
+            _label="Resolution" _low-label="Segmented" _high-label="Smooth"
+            low="100" high="2000" default="800"/>
+
+    <number id="thickness" type="slider" arg="-thickness %"
+            _label="Thickness" _low-label="Thin" _high-label="Thick"
+            low="0.05" high="1.0" default="0.3"/>
+
+    <hgroup>
+     <boolean id="wander" _label="Wander"    arg-unset="-no-wander"/>
+     <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
+    </hgroup>
+
+    <hgroup>
+      <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+    </hgroup>
+
+   </vgroup>
   </hgroup>
 
   <_description>
 Generates some twisting 3d knot patterns.  Spins 'em around.
 
+http://en.wikipedia.org/wiki/Knot_theory
+
 Written by Jamie Zawinski; 2003.
   </_description>
 </screensaver>
index f882e2fb45acc9591b48aaf945a4c2bae758fec2..8ec8ac5cd9409bbaa73bf63447ceb43c5426424a 100644 (file)
@@ -4,24 +4,24 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
+          convert="invert"/>
+
   <number id="density" type="slider" arg="-density %"
-          _label="Glyph Density" _low-label="Sparse" _high-label="Dense"
+          _label="Glyph density" _low-label="Sparse" _high-label="Dense"
           low="0" high="100" default="20"/>
 
   <number id="speed" type="slider" arg="-speed %"
-          _label="Glyph Speed" _low-label="Slow" _high-label="Fast"
+          _label="Glyph speed" _low-label="Slow" _high-label="Fast"
           low="0.1" high="8.0" default="1.0"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
-          convert="invert"/>
-
   <select id="mode">
-    <option id="matrix" _label="Matrix Encoding"/>
-    <option id="binary" _label="Binary Encoding"      arg-set="-mode binary"/>
-    <option id="hex"    _label="Hexadecimal Encoding" arg-set="-mode hex"/>
-    <option id="dna"    _label="Genetic Encoding"     arg-set="-mode dna"/>
+    <option id="matrix" _label="Matrix encoding"/>
+    <option id="binary" _label="Binary encoding"      arg-set="-mode binary"/>
+    <option id="hex"    _label="Hexadecimal encoding" arg-set="-mode hex"/>
+    <option id="dna"    _label="Genetic encoding"     arg-set="-mode dna"/>
   </select>
 
   <hgroup>
@@ -33,7 +33,7 @@
   <hgroup>
    <boolean id="tex"     _label="Textured"  arg-unset="-no-texture"/>
    <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
-   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
   <_description>
index b58cd21d6049ec3ebf6854f39b3126d2dc14436b..2ad5eabf55c9f3465aa8f63f98e78e3d605c31c2 100644 (file)
@@ -4,20 +4,15 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
+
   <!-- #### -no-texture -->
   <!-- #### -no-stars -->
 
-  <select id="render">
-    <option id="flat"  _label="Use Flat Coloring" arg-set="-no-light"/>
-    <option id="light" _label="Use Lighting"/>
-  </select>
-
-  <file id="bitmap" _label="Image File" arg="-image %"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
-          convert="invert"/>
+  <file id="bitmap" _label="Image file" arg="-image %"/>
 
   <hgroup>
    <boolean id="wander" _label="Wander"    arg-unset="-no-wander"/>
    <boolean id="stars"  _label="Stars"     arg-unset="-no-stars"/>
   </hgroup>
 
-  <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <hgroup>
+   <boolean id="light"   _label="Lighting"               arg-unset="-no-light"/>
+   <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </hgroup>
 
   <_description>
 Draws a planet bouncing around in space.
index 47dbecbbff7eada842eb011642eae5c265afc0ea..0bbade81c8d258f07dcb0f4472a39172b9fb4f11 100644 (file)
@@ -2,33 +2,40 @@
 
 <screensaver name="glschool" _label="GLSchool">
 
-       <command arg="-root"/>
-
-       <number id="NFish" type="slider" arg="-nfish %"
-           _label="Fish Count" _low-label="Few" _high-label="Lots"
-           low="5" high="500" default="100"/>
-
-       <number id="delay" type="slider" arg="-delay %" _label="Speed" _low-label="Slow" _high-label="Fast" low="0" high="50000" default="20000" convert="invert"/>
-
-       <number id="AvoidFact" type="slider" arg="-avoidfact %" _label="Avoidance" _low-label="None" _high-label="High" low="0" high="10" default="1.5"/>
-       <number id="MatchFact" type="slider" arg="-matchfact %" _label="Velocity Matching" _low-label="None" _high-label="High" low="0" high="3" default="0.15"/>
-       <number id="CenterFact" type="slider" arg="-centerfact %" _label="Centering" _low-label="None" _high-label="High" low="0" high="1.0" default="0.1"/>
-       <number id="TargetFact" type="slider" arg="-targetfact %" _label="Goal Following" _low-label="None" _high-label="High" low="0" high="400" default="80"/>
-
-        <hgroup>
-       <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
-       <boolean id="fog"    _label="Fog" arg-set="-fog"/>
-       <boolean id="drawgoal" _label="Draw Goal" arg-set="-drawgoal"/>
-       <boolean id="drawbbox" _label="Draw Bounding Box" arg-set="-drawbbox"/>
-        </hgroup>
-       <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-
-       <_description>
-
+ <command arg="-root"/>
+
+  <hgroup>
+   <vgroup>
+ <number id="delay" type="slider" arg="-delay %"
+        _label="Frame rate" _low-label="Low" _high-label="High"
+         low="0" high="100000" default="20000" convert="invert"/>
+
+ <number id="NFish" type="slider" arg="-nfish %"
+    _label="Fish count" _low-label="Few" _high-label="Lots"
+    low="5" high="500" default="100"/>
+
+ <number id="AvoidFact" type="slider" arg="-avoidfact %" _label="Avoidance" _low-label="None" _high-label="High" low="0" high="10" default="1.5"/>
+   </vgroup>
+   <vgroup>
+ <number id="MatchFact" type="slider" arg="-matchfact %" _label="Velocity matching" _low-label="None" _high-label="High" low="0" high="3" default="0.15"/>
+ <number id="CenterFact" type="slider" arg="-centerfact %" _label="Centering" _low-label="None" _high-label="High" low="0" high="1.0" default="0.1"/>
+ <number id="TargetFact" type="slider" arg="-targetfact %" _label="Goal following" _low-label="None" _high-label="High" low="0" high="400" default="80"/>
+   </vgroup>
+  </hgroup>
+
+ <hgroup>
+ <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
+ <boolean id="fog"    _label="Fog" arg-set="-fog"/>
+ <boolean id="drawgoal" _label="Draw goal" arg-set="-drawgoal"/>
+ <boolean id="drawbbox" _label="Draw bounding box" arg-unset="-no-drawbbox"/>
+ <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+ </hgroup>
+
+ <_description>
 Uses Craig Reynolds' Boids algorithm to simulate a school of fish.
-Looks best with more fish, so raise the number of fish until the
-frame rate declines to 25-30 fps.
+
+http://en.wikipedia.org/wiki/Boids
 
 Written by David C. Lambert; 2006.
      </_description>
+ </_description>
 </screensaver>
index 92d8cdc9fe6503a82f28dba5f6c963b0c8e6ad78..bcd7acb31ec58c23b7945f824b914e19a9cd80cd 100644 (file)
@@ -4,38 +4,48 @@
 
   <command arg="-root"/>
 
-  <number id="duration" type="slider" arg="-duration %"
-          _label="Time until loading a new image:"
-          _low-label="10 Seconds" _high-label="5 Minutes"
-          low="10" high="300" default="30"/>
-
-  <number id="zoom" type="slider" arg="-zoom %"
-          _label="Always show at least this much of the image:"
-          _low-label="50%" _high-label="100%"
-          low="50" high="100" default="75"/>
-
-  <number id="pan" type="slider" arg="-pan %"
-          _label="Pan/Zoom Duration:"
-          _low-label="1 Second" _high-label="30 Seconds"
-          low="1" high="30" default="6"/>
-
-  <number id="fade" type="slider" arg="-fade %"
-          _label="Crossfade Duration:"
-          _low-label="None" _high-label="30 Seconds"
-          low="0" high="30" default="2"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Frame Rate:" _low-label="Low" _high-label="High"
-          low="0" high="100000" default="20000"
-          convert="invert"/>
-
-  <xscreensaver-image />
-
-  <boolean id="letterbox" _label="Letterbox" arg-unset="-no-letterbox"/>
-
-  <boolean id="titles" _label="Show Image Titles" arg-set="-titles"/>
-
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <hgroup>
+   <vgroup>
+   <number id="delay" type="slider" arg="-delay %"
+           _label="Frame rate" _low-label="Low" _high-label="High"
+           low="0" high="100000" default="20000"
+           convert="invert"/>
+
+   <number id="duration" type="slider" arg="-duration %"
+           _label="Time until loading a new image"
+           _low-label="10 seconds" _high-label="5 minutes"
+           low="10" high="300" default="30"/>
+
+   <number id="zoom" type="slider" arg="-zoom %"
+           _label="Always show at least this much of the image"
+           _low-label="50%" _high-label="100%"
+           low="50" high="100" default="75"/>
+
+   </vgroup>
+   <vgroup>
+   <number id="pan" type="slider" arg="-pan %"
+           _label="Pan/zoom duration"
+           _low-label="1 second" _high-label="30 seconds"
+           low="1" high="30" default="6"/>
+
+   <number id="fade" type="slider" arg="-fade %"
+           _label="Crossfade duration"
+           _low-label="None" _high-label="30 seconds"
+           low="0" high="30" default="2"/>
+
+   </vgroup>
+  </hgroup>
+
+  <hgroup>
+   <vgroup>
+    <boolean id="letterbox" _label="Letterbox" arg-unset="-no-letterbox"/>
+    <boolean id="titles" _label="Show file names" arg-set="-titles"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+   <vgroup>
+    <xscreensaver-image />
+   </vgroup>
+  </hgroup>
 
   <_description>
 Loads a random sequence of images and smoothly scans and zooms around
index ebca3a7c1e03b073c6e99e7c6b38337aeb46c260..33ab3ddefdc9367190fe876607f4e3c29dcfe9be 100644 (file)
@@ -1,37 +1,52 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="glsnake" _label="GlSnake">
+<screensaver name="glsnake" _label="GLSnake">
 
   <command arg="-root"/>
 
-  <number id="duration" type="slider" arg="-statictime %"
-          _label="Duration" _low-label="1" _high-label="30 Seconds"
-          low="1000" high="30000" default="5000"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="30000"
+            convert="invert"/>
 
-  <number id="angvel" type="slider" arg="-angvel %"
-          _label="Angular Velocity" _low-label="Slow" _high-label="Fast"
-          low="0.05" high="5.0" default="1.0"/>
+    <number id="duration" type="slider" arg="-statictime %"
+            _label="Duration" _low-label="1" _high-label="30 seconds"
+            low="1000" high="30000" default="5000"/>
 
-  <number id="yangvel" type="slider" arg="-yangvel %"
-          _label="Y Angular Velocity" _low-label="Slow" _high-label="Fast"
-          low="0.0" high="1.0" default="0.10"/>
+    <number id="packing" type="slider" arg="-explode %"
+            _label="Packing" _low-label="Tight" _high-label="Loose"
+            low="0.0" high="0.5" default="0.03"/>
+   </vgroup>
+   <vgroup>
 
-  <number id="zangvel" type="slider" arg="-zangvel %"
-          _label="Z Angular Velocity" _low-label="Slow" _high-label="Fast"
-          low="0.0" high="1.0" default="0.14"/>
+    <number id="angvel" type="slider" arg="-angvel %"
+            _label="Angular velocity" _low-label="Slow" _high-label="Fast"
+            low="0.05" high="5.0" default="1.0"/>
+    <number id="yangvel" type="slider" arg="-yangvel %"
+            _label="Y angular velocity" _low-label="Slow" _high-label="Fast"
+            low="0.0" high="1.0" default="0.10"/>
 
-  <number id="packing" type="slider" arg="-explode %"
-          _label="Packing" _low-label="Tight" _high-label="Loose"
-          low="0.0" high="0.5" default="0.03"/>
+    <number id="zangvel" type="slider" arg="-zangvel %"
+            _label="Z angular velocity" _low-label="Slow" _high-label="Fast"
+            low="0.0" high="1.0" default="0.14"/>
 
+   </vgroup>
+  </hgroup>
 
-  <boolean id="labels" _label="Show Titles" arg-unset="-no-titles"/>
 
-  <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <hgroup>
+   <boolean id="labels" _label="Show titles"      arg-set="-titles"/>
+   <boolean id="wire"    _label="Wireframe"       arg-set="-wireframe"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </hgroup>
 
   <_description>
-Draws a simulation of the Rubik's Snake puzzle.
+Draws a simulation of the Rubik's Snake puzzle.  See also the "Rubik"
+and "Cube21" screen savers.
+
+http://en.wikipedia.org/wiki/Rubik%27s_Snake
 
 Written by Jamie Wilkinson, Andrew Bennetts, and Peter Aylett; 2002.
   </_description>
index 30929faa6d7297dfb1aa7356c06cf910ba15459b..be1e6d7bea0ff71adca263217b34347185c05cb5 100644 (file)
@@ -5,14 +5,26 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="30000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
+  <select id="text">
+    <option id="uname"  _label="Display system information" />
+    <option id="clock"  _label="Display date and time"
+            arg-set="-text '%A%n%d %b %Y%n%r'"/>
+  </select>
+
+  <hgroup>
+  <select id="facing">
+    <option id="front"   _label="Always face front"/>
+    <option id="nofront" _label="Spin all the way around" arg-set="-no-front"/>
+  </select>
   <boolean id="wander" _label="Wander" arg-unset="-no-wander"/>
+  </hgroup>
 
   <select id="rotation">
-    <option id="no"  _label="Don't Rotate"               arg-set="-spin 0"/>
+    <option id="no"  _label="Don't rotate"               arg-set="-spin 0"/>
     <option id="x"   _label="Rotate around X axis"       arg-set="-spin X"/>
     <option id="y"   _label="Rotate around Y axis"       arg-set="-spin Y"/>
     <option id="z"   _label="Rotate around Z axis"       arg-set="-spin Z"/>
     <option id="xyz" _label="Rotate around all three axes"/>
   </select>
 
-  <select id="facing">
-    <option id="front"   _label="Always face front"/>
-    <option id="nofront" _label="Spin all the way around" arg-set="-no-front"/>
-  </select>
-
-  <string id="text"    _label="Text"    arg="-text %"/>
-<!--  <file   id="program" _label="Program" arg="-program %"/> -->
-
   <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Displays a few lines of text spinning around in a solid 3D font.
+The text can use strftime() escape codes to display the current 
+date and time.
 
 Written by Jamie Zawinski; 2001.
   </_description>
diff --git a/hacks/config/goban.xml b/hacks/config/goban.xml
deleted file mode 100644 (file)
index bedca54..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<screensaver name="goban" _label="Goban">
-
-  <command arg="-root"/>
-
-  <!-- #### write me -->
-
-  <_description>
-
-Replays historical games of go (aka wei-chi and baduk) on the screen.
-You can find it at &lt;http://www.draves.org/goban/&gt;.
-
-Written by Scott Draves.
-  </_description>
-</screensaver>
index ab87fa934c0c25183c559777ad870da2b21f7549..c3a71fbd7842a0a91d83984d4f8164763b6f67e5 100644 (file)
@@ -4,44 +4,56 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="12000"
-          convert="invert"/>
-
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Blob Count" low="0" high="100" default="12"/>
-
-  <select id="mode">
-    <option id="transparent" _label="Transparent Blobs"/>
-    <option id="opaque"      _label="Opaque Blobs" arg-set="-mode opaque"/>
-    <option id="xor"         _label="XOR Blobs"    arg-set="-mode xor"/>
-  </select>
-
-  <select id="color-mode">
-    <option id="additive" _label="Additive Colors (reflected light)"/>
-    <option id="subtractive" _label="Subtractive Colors (transmitted light)"
-            arg-set="-subtractive"/>
-  </select>
-
-  <number id="torque" type="slider" arg="-torque %"
-          _label="Rotational Speed" _low-label="Slow" _high-label="Fast"
-          low="0.0002" high="0.0500" default="0.0075"/>
-
-  <number id="elasticity" type="slider" arg="-elasticity %"
-          _label="Elasticity" _low-label="Low" _high-label="High"
-          low="0.1" high="5.0" default="0.9"/>
-
-  <number id="maxv" type="slider" arg="-max-velocity %"
-          _label="Speed Limit" _low-label="Slow" _high-label="Fast"
-          low="0.1" high="3.0" default="0.5"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="12000"
+            convert="invert"/>
+
+    <number id="torque" type="slider" arg="-torque %"
+            _label="Speed" _low-label="Slow" _high-label="Fast"
+            low="0.0002" high="0.0500" default="0.0075"/>
+
+    <number id="count" type="slider" arg="-planes %"
+            _label="Blobs" _low-label="Few" _high-label="Many"
+            low="1" high="50" default="12"/>
+
+   </vgroup>
+   <vgroup>
+    <number id="elasticity" type="slider" arg="-elasticity %"
+            _label="Elasticity" _low-label="Low" _high-label="High"
+            low="0.1" high="5.0" default="0.9"/>
+
+    <number id="maxv" type="slider" arg="-max-velocity %"
+            _label="Speed limit" _low-label="Low" _high-label="High"
+            low="0.1" high="3.0" default="0.5"/>
+
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
+   </vgroup>
+  </hgroup>
+
+  <hgroup>
+    <select id="mode">
+      <option id="transparent" _label="Transparent blobs"/>
+      <option id="opaque"      _label="Opaque blobs" arg-set="-mode opaque"/>
+      <option id="xor"         _label="XOR blobs"    arg-set="-mode xor"/>
+    </select>
+
+    <select id="color-mode">
+      <option id="additive" _label="Additive colors (reflected light)"/>
+      <option id="subtractive" _label="Subtractive colors (transmitted light)"
+              arg-set="-subtractive"/>
+    </select>
+  </hgroup>
 
   <_description>
 This draws set of animating, transparent, amoeba-like blobs.  The blobs
 change shape as they wander around the screen, and they are translucent,
 so you can see the lower blobs through the higher ones, and when one
 passes over another, their colors merge.  I got the idea for this from
-a cool mouse pad I have, which achieves the same kind of effect in real
+a mouse pad I had once, which achieved the same kind of effect in real
 life by having several layers of plastic with colored oil between them.
 
 Written by Jamie Zawinski; 1997.
index a719a95181da780b9ea0904eebfc2a1db0481ce6..915e00a215644e90c197e097526ceaa12b36d65b 100644 (file)
@@ -4,24 +4,28 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="0" high="20" default="12"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
-  <boolean id="decay" _label="Orbital Decay" arg-unset="-no-decay"/>
-  <boolean id="trail" _label="Object Trails" arg-unset="-no-trail"/>
+  <number id="count" type="slider" arg="-count %"
+          _label="Number of objects" _low-label="Few" _high-label="Many"
+          low="1" high="40" default="12"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
+  <hgroup>
+   <boolean id="decay" _label="Orbital decay" arg-unset="-no-decay"/>
+   <boolean id="trail" _label="Object trails" arg-unset="-no-trail"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </hgroup>
+
   <_description>
-This program draws a simple orbital simulation.  If you turn on
-trails, it looks kind of like a cloud-chamber photograph.
+This draws a simple orbital simulation.  With trails enabled,
+it looks kind of like a cloud-chamber photograph.
 
 Written by Greg Bowering; 1997.
   </_description>
index d3cde589ef2dc7d3961863552493953ac8ef4d5b..3604dba7dfd06617cf085d9d31774b23458bb626 100644 (file)
@@ -5,10 +5,14 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
+          _label="Frame rate" _low-label="Low" _high-label="High"
           low="0" high="250000" default="10000"
           convert="invert"/>
 
+  <boolean id="grey" _label="Grey" arg-set="-grey"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws random colored, stippled and transparent rectangles.
 
index 1729d84c5092053ec99b2b9d011ec0f90ae02a48..4eaef74ba7f2a3bd78775ee189dfb777a4fd1ac5 100644 (file)
@@ -4,43 +4,52 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-           _label="Gravity points" 
-          low="1" high="50" default="10"/>
-
-  <number id="size" type="spinbutton" arg="-spacing %"
-           _label="Dot size"
-          low="2" high="50" default="14"/>
-
-  <number id="dotfill" type="slider" arg="-sizefactor %"
-           _label="Dot fill factor" _low-label="Small" _high-label="Large"
-          low="0.1" high="3" default="1.5"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="100000" default="10000" convert="invert"/>
-
-  <number id="minspeed" type="slider" arg="-minspeed %"
-           _label="Minimum speed" _low-label="Low" _high-label="High"
-          low="0.001" high="0.09" default="0.001"/>
-
-  <number id="maxspeed" type="slider" arg="-maxspeed %"
-           _label="Maximum speed" _low-label="Low" _high-label="High"
-          low="0.001" high="0.09" default="0.02"/>
-
-  <number id="minmass" type="slider" arg="-minmass %"
-           _label="Minimum mass" _low-label="Small" _high-label="Large"
-          low="0.001" high="0.09" default="0.001"/>
-
-  <number id="maxmass" type="slider" arg="-maxmass %"
-           _label="Maximum mass" _low-label="Small" _high-label="Large"
-          low="0.001" high="0.09" default="0.02"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000" convert="invert"/>
+
+    <number id="count" type="slider" arg="-count %"
+             _label="Gravity points" _low-label="Few" _high-label="Many"
+            low="1" high="50" default="10"/>
+
+    <number id="size" type="slider" arg="-spacing %"
+             _label="Dot size" _low-label="Small" _high-label="Big"
+            low="2" high="50" default="14"/>
+
+    <number id="dotfill" type="slider" arg="-sizefactor %"
+             _label="Dot fill factor" _low-label="Small" _high-label="Large"
+            low="0.1" high="3" default="1.5"/>
+   </vgroup>
+   <vgroup>
+    <number id="minspeed" type="slider" arg="-minspeed %"
+             _label="Minimum speed" _low-label="Low" _high-label="High"
+            low="0.001" high="0.09" default="0.001"/>
+
+    <number id="maxspeed" type="slider" arg="-maxspeed %"
+             _label="Maximum speed" _low-label="Low" _high-label="High"
+            low="0.001" high="0.09" default="0.02"/>
+
+    <number id="minmass" type="slider" arg="-minmass %"
+             _label="Minimum mass" _low-label="Small" _high-label="Large"
+            low="0.001" high="0.09" default="0.001"/>
+
+    <number id="maxmass" type="slider" arg="-maxmass %"
+             _label="Maximum mass" _low-label="Small" _high-label="Large"
+            low="0.001" high="0.09" default="0.02"/>
+   </vgroup>
+  </hgroup>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws the gravity force in each point on the screen seen through a
 halftone dot pattern. The gravity force is calculated from a set of
 moving mass points. View it from a distance for best effect.
 
+http://en.wikipedia.org/wiki/Halftone
+
 Written by Peter Jaric; 2002.
   </_description>
 </screensaver>
index 115cda83b662ba74d0da57fcff6d2a13770eef3a..ba05e4f520e998765bb51cef8319fcdde722923d 100644 (file)
@@ -4,29 +4,35 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Number of Circles" low="0" high="20" default="0"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="120000" default="100000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="200000" default="100000"
           convert="invert"/>
 
-  <boolean id="animate" _label="Animate Circles" arg-set="-animate"/>
+  <number id="count" type="slider" arg="-count %"
+          _label="Number of circles" _low-label="Few" _high-label="Many"
+           low="0" high="20" default="0"/>
+
+  <number id="ncolors" type="slider" arg="-colors %"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
+            low="1" high="255" default="100"/>
 
   <select id="mode">
-    <option id="random"   _label="Random Mode"/>
-    <option id="seuss"    _label="Seuss Mode" arg-set="-mode seuss"/>
-    <option id="ramp"     _label="Ramp Mode"  arg-set="-mode ramp"/>
+    <option id="random"   _label="Random mode"/>
+    <option id="seuss"    _label="Seuss mode" arg-set="-mode seuss"/>
+    <option id="ramp"     _label="Ramp mode"  arg-set="-mode ramp"/>
   </select>
 
-  <number id="ncolors" type="slider" arg="-colors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="100"/>
+  <hgroup>
+  <boolean id="animate" _label="Animate circles" arg-set="-animate"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </hgroup>
 
   <_description>
 Draws trippy psychedelic circular patterns that hurt to look at.
 
+http://en.wikipedia.org/wiki/Moire_pattern
+
 Written by Jamie Zawinski; 1993.
   </_description>
 </screensaver>
index ba4cd0e7ba05ff394834d095f9b56824d848c5f0..b2eb11d240298ca13ee0d3afd635f8861028247a 100644 (file)
@@ -4,10 +4,17 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-subdelay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
+
   <number id="delay" type="slider" arg="-delay %"
-          _label="Duration" _low-label="1 Second" _high-label="1 Minute"
+          _label="Linger" _low-label="1 second" _high-label="1 minute"
           low="1" high="60" default="5"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Spirally string-art-ish patterns.
 
index 3c17679846d3fb489c017e9f85f80da58fc18a7e..4c91dbbafa89e2a65da13f56b7cd8d3fe22e119e 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
           low="0" high="800000" default="2500"/>
 
   <number id="count" type="slider" arg="-count %"
-          _label="Color Contrast" _low-label="Low" _high-label="High"
+          _label="Color contrast" _low-label="Low" _high-label="High"
           low="100" high="10000" default="1000"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="200"/>
 
   <hgroup>
       <boolean id="ejk5"    _label="EJK5"    arg-set="-ejk5"/>
       <boolean id="ejk6"    _label="EJK6"    arg-set="-ejk6"/>
     </vgroup>
+
+    <vgroup>
+     <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+    </vgroup>
   </hgroup>
 
   <_description>
-This draws lacy fractal patterns, based on iteration in the imaginary
-plane, from a 1986 Scientific American article.  
+This draws lacy fractal patterns based on iteration in the imaginary
+plane, from a 1986 Scientific American article.  See also the
+"Discrete" screen saver.
 
 Written by Patrick Naughton; 1992.
   </_description>
index 61e31f10de900ac5cdf10308669c6fce8364146d..b8ecd2c79323a20f8e8099a00c5afa95984b0849 100644 (file)
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="hyperball" _label="Hyperball">
+<screensaver name="hyperball" _label="HyperBall">
 
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
 <!--
   <hgroup>
     <vgroup>
       <number id="xw" type="slider" arg="-xw %"
-              _label="XW Rotation" _low-label="Low" _high-label="High"
+              _label="XW rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="0"/>
       <number id="xy" type="slider" arg="-xy %"
-              _label="XY Rotation" _low-label="Low" _high-label="High"
+              _label="XY rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="3"/>
       <number id="xz" type="slider" arg="-xz %"
-              _label="XZ Rotation" _low-label="Low" _high-label="High"
+              _label="XZ rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="5"/>
     </vgroup>
     <vgroup>
       <number id="yw" type="slider" arg="-yw %"
-              _label="YW Rotation" _low-label="Low" _high-label="High"
+              _label="YW rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="10"/>
       <number id="yz" type="slider" arg="-yz %"
-              _label="YZ Rotation" _low-label="Low" _high-label="High"
+              _label="YZ rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="0"/>
       <number id="zw" type="slider" arg="-zw %"
-              _label="ZW Rotation" _low-label="Low" _high-label="High"
+              _label="ZW rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="0"/>
     </vgroup>
   </hgroup>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Hyperball is to hypercube as dodecahedron is to cube: this displays
 a 2D projection of the sequence of 3D objects which are the projections
@@ -48,6 +50,9 @@ polytope".
 
 See also "polytopes" for a more general version of this using OpenGL.
 
+http://en.wikipedia.org/wiki/Hypercube
+http://en.wikipedia.org/wiki/Regular_polytope
+
 Written by Joe Keane; 2000.
   </_description>
 </screensaver>
index 3ad24e00f344d6fae7d7d04a573670948b912d38..178cd433bf034e068534d241d2149a2dd1ef67d9 100644 (file)
@@ -1,39 +1,39 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="hypercube" _label="Hypercube">
+<screensaver name="hypercube" _label="HyperCube">
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
-
-  <number id="z" type="slider" arg="-observer-z %"
-          _label="Zoom" _low-label="Near" _high-label="Far"
-          low="1.125" high="10.0" default="3.0"/>
-
   <hgroup>
     <vgroup>
+      <number id="delay" type="slider" arg="-delay %"
+              _label="Frame rate" _low-label="Low" _high-label="High"
+              low="0" high="100000" default="10000"
+              convert="invert"/>
+
       <number id="xw" type="slider" arg="-xw %"
-              _label="XW Rotation" _low-label="Low" _high-label="High"
+              _label="XW rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="0"/>
       <number id="xy" type="slider" arg="-xy %"
-              _label="XY Rotation" _low-label="Low" _high-label="High"
+              _label="XY rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="3"/>
       <number id="xz" type="slider" arg="-xz %"
-              _label="XZ Rotation" _low-label="Low" _high-label="High"
+              _label="XZ rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="5"/>
     </vgroup>
     <vgroup>
+      <number id="z" type="slider" arg="-observer-z %"
+              _label="Zoom" _low-label="Near" _high-label="Far"
+              low="1.125" high="10.0" default="3.0"/>
+
       <number id="yw" type="slider" arg="-yw %"
-              _label="YW Rotation" _low-label="Low" _high-label="High"
+              _label="YW rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="10"/>
       <number id="yz" type="slider" arg="-yz %"
-              _label="YZ Rotation" _low-label="Low" _high-label="High"
+              _label="YZ rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="0"/>
       <number id="zw" type="slider" arg="-zw %"
-              _label="ZW Rotation" _low-label="Low" _high-label="High"
+              _label="ZW rotation" _low-label="Slow" _high-label="Fast"
               low="0" high="20" default="0"/>
     </vgroup>
   </hgroup>
@@ -47,6 +47,8 @@
   <!-- #### -color6 [#00D0FF] -->
   <!-- #### -color7 [#00FFD0] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This displays 2D projections of the sequence of 3D objects which are
 the projections of the 4D analog to the cube: as a square is composed
@@ -58,6 +60,9 @@ each face.  Don't think about it too long, or your brain will melt.
 
 See also "polytopes" for a more general version of this using OpenGL.
 
+http://en.wikipedia.org/wiki/Hypercube
+http://en.wikipedia.org/wiki/Regular_polytope
+
 Written by Joe Keane, Fritz Mueller, and Jamie Zawinski; 1992.
   </_description>
 </screensaver>
index 6552857ba9bb305629213b134c6db00055e0d640..f32b240453360b1f4a123bd57ad3107e4c30b4f0 100644 (file)
@@ -4,45 +4,53 @@
 
   <command arg="-root"/>
 
+  <hgroup>
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="25000"
+          convert="invert"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </hgroup>
+
   <hgroup>
     <select id="display-mode">
-      <option id="wire"        _label="Wireframe Mesh" arg-set="-mode 0"/>
-      <option id="surface"     _label="Solid Surface"  arg-set="-mode 1"/>
-      <option id="transparent" _label="Transparent Surface"/>
+      <option id="wire"        _label="Wireframe mesh" arg-set="-mode 0"/>
+      <option id="surface"     _label="Solid surface"  arg-set="-mode 1"/>
+      <option id="transparent" _label="Transparent surface"/>
     </select>
 
     <select id="appearance">
-      <option id="solid" _label="Solid Object"
+      <option id="solid" _label="Solid object"
               arg-set="-appearance 0"/>
-      <option id="bands" _label="See-Through Bands"/>
-      <option id="bands" _label="See-Through Spirals (1 Spiral)"
+      <option id="bands" _label="See-through bands"/>
+      <option id="bands" _label="See-through spirals (1 spiral)"
               arg-set="-appearance 3"/>
-      <option id="bands" _label="See-Through Spirals (2 Spirals)"
+      <option id="bands" _label="See-through spirals (2 spirals)"
               arg-set="-appearance 4"/>
-      <option id="bands" _label="See-Through Spirals (4 Spirals)"
+      <option id="bands" _label="See-through spirals (4 spirals)"
               arg-set="-appearance 5"/>
-      <option id="bands" _label="See-Through Spirals (8 Spirals)"
+      <option id="bands" _label="See-through spirals (8 spirals)"
               arg-set="-appearance 6"/>
-      <option id="bands" _label="See-Through Spirals (16 Spirals)"
+      <option id="bands" _label="See-through spirals (16 spirals)"
               arg-set="-appearance 7"/>
     </select>
   </hgroup>
 
   <hgroup>
     <select id="colors">
-      <option id="twosided" _label="Two-Sided"/>
-      <option id="colorwheel" _label="Color Wheel" arg-set="-colorwheel"/>
+      <option id="twosided" _label="Two-sided"/>
+      <option id="colorwheel" _label="Color wheel" arg-set="-colorwheel"/>
     </select>
 
     <select id="projection3d">
-      <option id="perspective-3d" _label="Perspective 3d"/>
-      <option id="orthographic-3d" _label="Orthographic 3d"
+      <option id="perspective-3d" _label="Perspective 3D"/>
+      <option id="orthographic-3d" _label="Orthographic 3D"
               arg-set="-orthographic-3d"/>
     </select>
 
     <select id="projection4d">
-      <option id="perspective-4d" _label="Perspective 4d"/>
-      <option id="orthographic-4d" _label="Orthographic 4d"
+      <option id="perspective-4d" _label="Perspective 4D"/>
+      <option id="orthographic-4d" _label="Orthographic 4D"
               arg-set="-orthographic-4d"/>
     </select>
   </hgroup>
     <vgroup>
 
       <number id="speed-wx" type="slider" arg="-speed-wx %"
-              _label="WX Rotation Speed"
+              _label="WX rotation speed"
               _low-label="-4.0" _high-label="4.0"
               low="-4.0" high="4.0" default="1.1"/>
 
       <number id="speed-wy" type="slider" arg="-speed-wy %"
-              _label="WY Rotation Speed"
+              _label="WY rotation speed"
               _low-label="-4.0" _high-label="4.0"
               low="-4.0" high="4.0" default="1.3"/>
 
       <number id="speed-wz" type="slider" arg="-speed-wz %"
-              _label="WZ Rotation Speed"
+              _label="WZ rotation speed"
               _low-label="-4.0" _high-label="4.0"
               low="-4.0" high="4.0" default="1.5"/>
 
     <vgroup>
 
       <number id="speed-xy" type="slider" arg="-speed-xy %"
-              _label="XY Rotation Speed"
+              _label="XY rotation speed"
               _low-label="-4.0" _high-label="4.0"
               low="-4.0" high="4.0" default="1.7"/>
     
       <number id="speed-xz" type="slider" arg="-speed-xz %"
-              _label="XZ Rotation Speed"
+              _label="XZ rotation speed"
               _low-label="-4.0" _high-label="4.0"
               low="-4.0" high="4.0" default="1.9"/>
     
       <number id="speed-yz" type="slider" arg="-speed-yz %"
-              _label="YZ Rotation Speed"
+              _label="YZ rotation speed"
               _low-label="-4.0" _high-label="4.0"
               low="-4.0" high="4.0" default="2.1"/>
     
 
   </hgroup>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Display Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="40000" default="25000"
-          convert="invert"/>
-
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-
   <_description>
 
-This program shows a rotating Clifford Torus: a torus lying on the
+This shows a rotating Clifford Torus: a torus lying on the
 "surface" of a 4D hypersphere.  Inspired by Thomas Banchoff's book
 "Beyond the Third Dimension: Geometry, Computer Graphics, and Higher
 Dimensions", Scientific American Library, 1990.
 
+http://en.wikipedia.org/wiki/N-sphere
+http://en.wikipedia.org/wiki/Clifford_torus
+http://en.wikipedia.org/wiki/Regular_polytope
+
 Written by Carsten Steger; 2003.
   </_description>
 </screensaver>
index af4a7087ef2fe8f405026cb3fd756db6fe4fc68e..c5627c83b363f925c66bd69ec7a7f810501839ed 100644 (file)
@@ -4,38 +4,47 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Frame Rate" _low-label="Slow" _high-label="Fast"
-          low="0" high="100000" default="20000"
-          convert="invert"/>
-
-  <number id="speed" type="slider" arg="-speed %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0.1" high="20.0" default="1.0"/>
-
-  <number id="layers" type="slider" arg="-layers %"
-          _label="Layers" _low-label="1" _high-label="50"
-          low="1" high="50" default="4"/>
-
-  <number id="count" type="slider" arg="-count %"
-          _label="Arms" _low-label="2" _high-label="50"
-          low="2" high="50" default="13"/>
-
-  <number id="twistiness" type="slider" arg="-twistiness %"
-          _label="Twistiness" _low-label="Low" _high-label="High"
-          low="0.2" high="10" default="4"/>
-
   <hgroup>
-  <boolean id="wander"    _label="Wander"             arg-set="-wander"/>
-  <boolean id="symmetric" _label="Symmetric Twisting" arg-set="-symmetric"/>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Slow" _high-label="Fast"
+            low="0" high="100000" default="20000"
+            convert="invert"/>
+
+    <number id="speed" type="slider" arg="-speed %"
+            _label="Speed" _low-label="Slow" _high-label="Fast"
+            low="0.1" high="20.0" default="1.0"/>
+
+    <hgroup>
+    <boolean id="wander"    _label="Wander"             arg-set="-wander"/>
+    <boolean id="symmetric" _label="Symmetric twisting" arg-set="-symmetric"/>
+    </hgroup>
+
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
+   </vgroup>
+   <vgroup>
+
+    <number id="layers" type="slider" arg="-layers %"
+            _label="Layers" _low-label="1" _high-label="50"
+            low="1" high="50" default="4"/>
+
+    <number id="count" type="slider" arg="-count %"
+            _label="Arms" _low-label="2" _high-label="50"
+            low="2" high="50" default="13"/>
+
+    <number id="twistiness" type="slider" arg="-twistiness %"
+            _label="Twistiness" _low-label="Low" _high-label="High"
+            low="0.2" high="10.0" default="4.0"/>
+   </vgroup>
   </hgroup>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-
   <_description>
 Draws a series of overlapping, translucent spiral patterns.
 The tightness of their spirals fluctuates in and out.
 
+http://en.wikipedia.org/wiki/Moire_pattern
+
 Written by Jamie Zawinski; 2008.
   </_description>
 </screensaver>
index 78972e1c34ae7fad91552713697c70e91a559a3d..fa4a9f7cd75a37aeeec1b6308a0807224a801316 100644 (file)
@@ -5,27 +5,29 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-    _label="Speed" _low-label="Slow" _high-label="Fast"
-    low="0" high="40000" default="10000"
+    _label="Frame rate" _low-label="Low" _high-label="High"
+    low="0" high="100000" default="20000"
     convert="invert"/>
 
-  <number id="functions" type="spinbutton" arg="-functions %"
-    _label="Number of Functions" low="2" high="6" default="3"/>
+  <number id="functions" type="slider" arg="-functions %"
+    _label="Number of functions" _low-label="2" _high-label="6"
+           low="2" high="6" default="3"/>
 
   <number id="detail" type="slider" arg="-detail %"
     _label="Detail" _low-label="Low" _high-label="High"
     low="2" high="30" default="9"/>
 
-  <boolean id="translate" _label="Translate" arg-unset="-no-translate"/>
-  <boolean id="scale"     _label="Scale"     arg-unset="-no-scale"/>
-  <boolean id="rotate"    _label="Rotate"    arg-unset="-no-rotate"/>
-
   <number id="colors" type="slider" arg="-colors %"
-    _label="Number of Colours" _low-label="2" _high-label="Many"
+    _label="Number of colors" _low-label="2" _high-label="Many"
     low="2" high="255" default="200" />
 
-<!-- <boolean id="multi" _label="Multi-colored" arg-unset="-no-multi"/> -->
-  
+  <hgroup>
+   <boolean id="translate" _label="Translate" arg-unset="-no-translate"/>
+   <boolean id="scale"     _label="Scale"     arg-unset="-no-scale"/>
+   <boolean id="rotate"    _label="Rotate"    arg-unset="-no-rotate"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </hgroup>
+
   <_description>
 
 This one draws spinning, colliding iterated-function-system images.
@@ -33,6 +35,8 @@ This one draws spinning, colliding iterated-function-system images.
 Note that the "Detail" parameter is exponential.  Number of points
 drawn is functions^detail.
 
+http://en.wikipedia.org/wiki/Iterated_function_system
+
 Written by Chris Le Sueur and Robby Griffin; 1997.
   </_description>
 </screensaver>
index 85142e12f8d3d6df7bfc70a7d33c795501d52454..51adcfe7a4952115644db471094a966bc6823350 100644 (file)
@@ -1,32 +1,35 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="imsmap" _label="IMSmap">
+<screensaver name="imsmap" _label="IMSMap">
 
   <command arg="-root"/>
 
-  <select id="mode">
-    <option id="random" _label="Random Mode"/>
-    <option id="h"      _label="Hue Gradients" arg-set="-mode h"/>
-    <option id="s"      _label="Saturation Gradients" arg-set="-mode s"/>
-    <option id="v"      _label="Brightness Gradients" arg-set="-mode v"/>
-  </select>
-
-  <number id="iterations" type="slider" arg="-iterations %"
-          _label="Density" _low-label="Sparse" _high-label="Dense"
-          low="1" high="7" default="7"/>
-
   <number id="delay2" type="slider" arg="-delay2 %"
-          _label="Speed" _low-label="Fast" _high-label="Slow"
-          low="0" high="1000000" default="20000"/>
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Linger" _low-label="1 Second" _high-label="1 Minute"
-          low="1" high="60" default="10"/>
+          low="1" high="60" default="5"/>
+
+  <number id="iterations" type="slider" arg="-iterations %"
+          _label="Density" _low-label="Sparse" _high-label="Dense"
+          low="1" high="7" default="7"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="50"/>
 
+  <select id="mode">
+    <option id="random" _label="Random coloration"/>
+    <option id="h"      _label="Hue gradients" arg-set="-mode h"/>
+    <option id="s"      _label="Saturation gradients" arg-set="-mode s"/>
+    <option id="v"      _label="Brightness gradients" arg-set="-mode v"/>
+  </select>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This generates random cloud-like patterns.  The idea is to take four
 points on the edge of the image, and assign each a random "elevation".
index 40a44aa275d279a390f400cc0def9e1f5dbb0453..fd1a39da8a0db975496102c2318828d97ca8ddac 100644 (file)
@@ -4,12 +4,15 @@
 
   <command arg="-root"/>
 
-  <number id="init" type="spinbutton" arg="-num-circles %"
-          _label="Number of Discs" low="50" high="400" default="100"/>
-
   <number id="speed" type="slider" arg="-growth-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="60000" default="30000" convert="invert"/>
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="18000" convert="invert"/>
+
+  <number id="init" type="slider" arg="-num-circles %"
+          _label="Number of discs" _low-label="Few" _high-label="Many"
+           low="50" high="400" default="100"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 A surface is filled with a hundred medium to small sized circles.
index fe594ec71ac77287cf6a7376637b935d7d2d2c5f..eed84c44327d965feec90728f52cc0199d0eb6cb 100644 (file)
@@ -4,40 +4,46 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Number of Waves" low="0" high="20" default="3"/>
-
-  <number id="gridsize" type="spinbutton" arg="-gridsize %"
-          _label="Magnification" low="1" high="20" default="4"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Anim Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
-          convert="invert"/>
-
-  <number id="wspeed" type="slider" arg="-speed %"
-            _label="Wave Speed" _low-label="Slow" _high-label="Fast"
-            low="1" high="100" default="30"/>
-
-  <number id="radius" type="slider" arg="-radius %"
-            _label="Wave Size" _low-label="Small" _high-label="Large"
-            low="50" high="1500" default="800"/>
-
-  <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="128"/>
-
-  <number id="color_contrast" type="slider" arg="-color-shift %"
-          _label="Color Contrast" _low-label="Low" _high-label="High"
-           low="0" high="100" default="60"/>
-
-  <number id="hue" type="slider" arg="-hue %"
-          _label="Hue" _low-label="0" _high-label="360"
-           low="0" high="360" default="0"/>
-
-  <!-- #### -gray -->
-
-<!--  <boolean id="db" _label="Double Buffer" arg-unset="-no-db"/> -->
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="30000"
+            convert="invert"/>
+
+    <number id="wspeed" type="slider" arg="-speed %"
+              _label="Wave speed" _low-label="Slow" _high-label="Fast"
+              low="1" high="100" default="30"/>
+
+    <number id="radius" type="slider" arg="-radius %"
+              _label="Wave size" _low-label="Small" _high-label="Large"
+              low="50" high="1500" default="800"/>
+
+    <number id="count" type="slider" arg="-count %"
+            _label="Number of waves" _low-label="Few" _high-label="Many"
+           low="0" high="20" default="3"/>
+
+   </vgroup>
+   <vgroup>
+    <number id="gridsize" type="slider" arg="-gridsize %"
+            _label="Magnification" _low-label="Low" _high-label="High"
+            low="1" high="20" default="4"/>
+
+    <number id="ncolors" type="slider" arg="-ncolors %"
+              _label="Number of colors" _low-label="Two" _high-label="Many"
+              low="1" high="255" default="128"/>
+
+    <number id="color_contrast" type="slider" arg="-color-shift %"
+            _label="Color contrast" _low-label="Low" _high-label="High"
+             low="0" high="100" default="60"/>
+
+    <number id="hue" type="slider" arg="-hue %"
+            _label="Hue" _low-label="0" _high-label="360"
+             low="0" high="360" default="0"/>
+   </vgroup>
+  </hgroup>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Color field based on computing decaying sinusoidal waves.
index 1142bcdc8251f38dacb0461f2d3daed9de9e50ab..c58e3120d1f86186a411aa36be1e6655d62b8a17 100644 (file)
@@ -4,13 +4,15 @@
 
   <command arg="-root"/>
 
+  <number id="speed" type="slider" arg="-draw-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000" convert="invert"/>
+
   <number id="init" type="slider" arg="-num-discs %"
-          _label="Number of Discs" _low-label="50" _high-label="400"
+          _label="Number of discs" _low-label="50" _high-label="400"
           low="50" high="400" default="85"/>
 
-  <number id="speed" type="slider" arg="-draw-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="60000" default="30000" convert="invert"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 A surface is filled with a hundred medium to small sized circles.
index d88b93ee93c2a0a46842e0c3568570873150c72f..3597c0f17fd794c0234a28f3e601f152e4958ea2 100644 (file)
@@ -8,42 +8,40 @@
 
   <hgroup>
    <vgroup>
-
-      <number id="complexity" type="slider" arg="-complexity %"
-              _label="Complexity" _low-label="Low" _high-label="High"
-              low="1" high="3" default="2"/>
+      <number id="delay" type="slider" arg="-delay %"
+              _label="Frame rate" _low-label="Low" _high-label="High"
+              low="0" high="100000" default="20000"
+              convert="invert"/>
 
       <number id="speed" type="slider" arg="-speed %"
               _label="Rotation speed" _low-label="Slow" _high-label="Fast"
-              low="50" high="1000" default="250"/>
+              low="50" high="1000" default="500"/>
 
-      <number id="spherism" type="slider" arg="-spherism %"
-               _label="Sphere strength" _low-label="None" _high-label="Strong"
-               low="0" high="1000" default="200"/>
+      <number id="damping" type="slider" arg="-damping %"
+               _label="Inertial damping" _low-label="Low" _high-label="High"
+               low="10" high="1000" default="500" convert="invert"/>
 
       <number id="hold" type="slider" arg="-hold %"
                _label="Vertex-vertex force" _low-label="None" _high-label="Strong"
-               low="0" high="1000" default="700"/>
-
+               low="0" high="1000" default="800"/>
     </vgroup>
     <vgroup>
+      <number id="complexity" type="slider" arg="-complexity %"
+              _label="Complexity" _low-label="Low" _high-label="High"
+              low="1" high="3" default="2"/>
+
+      <number id="spherism" type="slider" arg="-spherism %"
+               _label="Sphere strength" _low-label="None" _high-label="Strong"
+               low="0" high="1000" default="75"/>
 
       <number id="distance" type="slider" arg="-distance %"
                _label="Vertex-vertex behavior" _low-label="Expand"
-               _high-label="Collapse" low="0" high="1000" default="300"/>
-
-      <number id="damping" type="slider" arg="-damping %"
-               _label="Inertial damping" _low-label="Low" _high-label="High"
-               low="10" high="1000" default="500" convert="invert"/>
+               _high-label="Collapse" low="0" high="1000" default="100"/>
 
       <number id="spooky" type="slider" arg="-spooky %"
                _label="Spookiness" _low-label="None" _high-label="Spoooooky"
                low="0" high="12" default="0"/>
 
-      <number id="delay" type="slider" arg="-delay %"
-              _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-              low="0" high="20000" default="20000"
-              convert="invert"/>
     </vgroup>
   </hgroup>
 
@@ -61,7 +59,7 @@
    </select>
 
    <boolean id="wireframe" _label="Wireframe" arg-set="-wireframe"/>
-   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   </hgroup>
 
@@ -71,11 +69,10 @@ This does bad things with quasi-spherical objects.
 You have a tetrahedron with tesselated faces.  The vertices on these
 faces have forces on them: one proportional to the distance from the
 surface of a sphere; and one proportional to the distance from the
-neighbors.  They also have inertia.
-
-The resulting effect can range from a shape that does nothing, to a
-frenetic polygon storm.  Somewhere in between there it usually
-manifests as a blob that jiggles in a kind of disturbing manner.
+neighbors.  They also have inertia.  The resulting effect can range
+from a shape that does nothing, to a frenetic polygon storm.
+Somewhere in between there it usually manifests as a blob that jiggles
+in a kind of disturbing manner.
 
 Written by Keith Macleod; 2003.
   </_description>
index 38ea921e6be5707357fe99a64b880a7c1479946e..e2661d186c3f2b920e3cef64bf58701f37f5fd7d 100644 (file)
@@ -5,17 +5,19 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="70000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="70000"
           convert="invert"/>
 
   <number id="delay2" type="slider" arg="-delay2 %"
-          _label="Solved Duration"
-          _low-label="0 Seconds" _high-label="1 Minute"
+          _label="Linger"
+          _low-label="0 seconds" _high-label="1 minute"
           low="0" high="60" default="5"/>
 
   <xscreensaver-image />
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This grabs a screen image, carves it up into a jigsaw puzzle,
 shuffles it, and then solves the puzzle.  This works especially well
index 6be4319dae4a0da55283a6daf99e438e5cecee86..f5f9a6022ff050730374fac335ece26dd01064be 100644 (file)
@@ -4,38 +4,54 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="slider" arg="-count %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="50" high="1000" default="200"
-          convert="invert"/>
-
-  <number id="cycles" type="slider" arg="-cycles %"
-          _label="Performance Length" _low-label="Short" _high-label="Long"
-          low="50" high="1000" default="1000"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="count" type="slider" arg="-count %"
+            _label="Speed" _low-label="Slow" _high-label="Fast"
+            low="50" high="1000" default="200"
+            convert="invert"/>
+   </vgroup>
+   <vgroup>
+    <number id="cycles" type="slider" arg="-cycles %"
+            _label="Performance length" _low-label="Short" _high-label="Long"
+            low="50" high="1000" default="1000"/>
 
-  <number id="tail" type="slider" arg="-tail %"
-          _label="Trail Length" _low-label="None" _high-label="Long"
-          low="0" high="100" default="1"/>
+    <number id="tail" type="slider" arg="-tail %"
+            _label="Trail length" _low-label="None" _high-label="Long"
+            low="0" high="100" default="1"/>
+   </vgroup>
+  </hgroup>
 
   <hgroup>
    <vgroup>
     <boolean id="balls" _label="Balls" arg-unset="-no-balls"/>
     <boolean id="clubs" _label="Clubs" arg-unset="-no-clubs"/>
-    <boolean id="torches" _label="Flaming Torches" arg-unset="-no-torches"/>
    </vgroup>
    <vgroup>
-    <boolean id="knives" _label="Knives" arg-unset="-no-knives"/>
     <boolean id="rings" _label="Rings" arg-unset="-no-rings"/>
-    <boolean id="bballs" _label="Bowling Balls" arg-unset="-no-bballs"/>
+    <boolean id="knives" _label="Knives" arg-unset="-no-knives"/>
+   </vgroup>
+   <vgroup>
+    <boolean id="torches" _label="Flaming torches" arg-unset="-no-torches"/>
+    <boolean id="bballs" _label="Bowling balls" arg-unset="-no-bballs"/>
    </vgroup>
   </hgroup>
 
-  <boolean id="describe" _label="Print Cambridge Juggling Pattern Descriptions" arg-unset="-no-describe"/>
-  <string id="pattern" _label="Juggle This Pattern" arg="-pattern %" />
+  <boolean id="describe" _label="Print Cambridge juggling pattern descriptions" arg-unset="-no-describe"/>
+  <string id="pattern" _label="Juggle this pattern" arg="-pattern %" />
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a juggling stick-man.  See also "Juggler3D".
 
+http://en.wikipedia.org/wiki/Siteswap
+
 Written by Tim Auckland; 2002.
   </_description>
 </screensaver>
index 39ec8b36e34cd369993e00924ea6f7e72d9678a1..bb7cf26fed0c49cee5883e2b3d85c996a1813196 100644 (file)
@@ -3,33 +3,52 @@
 <screensaver name="juggler3d" _label="Juggler3D">
   <command arg="-root"/>
 
-       <number id="speed" type="slider" arg="-speed %" _label="Juggling Speed"
-               _low-label="Slow" _high-label="Fast" low="0.5" high="5.0" default="2.2"/>
-                 
-       <number id="trans" type="slider" arg="-trans %" _label="Juggler Horizontal Speed"
-               _low-label="Slow" _high-label="Fast" low="0.05" high="2.0" default="0.1"/>
-
-       <number id="spin" type="slider" arg="-spin %" _label="Juggler Spin Speed"
-               _low-label="Slow" _high-label="Fast" low="3.0" high="50.0" default="20.0"/>
-
-       <number id="minobjs" type="spinbutton" arg="-minobjs %" _label="Min Objects"
-          low="3" high="35" default="8"/>
-
-       <number id="maxobjs" type="spinbutton" arg="-maxobjs %" _label="Max Objects"
-          low="3" high="35" default="8"/>                
-
-       <number id="minhinc" type="spinbutton" arg="-minhinc %" _label="Min Height"
-          low="1" high="31" default="2"/>
-                 
-       <number id="maxhinc" type="spinbutton" arg="-maxhinc %" _label="Max Height"
-          low="1" high="31" default="6"/>                
-
-       <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
-       <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-
-       <_description>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="20000"
+            convert="invert"/>
+
+    <number id="speed" type="slider" arg="-speed %" _label="Juggling speed"
+            _low-label="Slow" _high-label="Fast" low="0.5" high="5.0" default="2.2"/>
+   </vgroup>
+
+   <vgroup>
+    <number id="trans" type="slider" arg="-trans %" _label="Juggler horizontal speed"
+            _low-label="Slow" _high-label="Fast" low="0.05" high="2.0" default="0.1"/>
+
+    <number id="spin" type="slider" arg="-spin %" _label="Juggler spin speed"
+            _low-label="Slow" _high-label="Fast" low="3.0" high="50.0" default="20.0"/>
+   </vgroup>
+  </hgroup>
+
+  <hgroup>
+   <vgroup>
+    <number id="minobjs" type="spinbutton" arg="-minobjs %" _label="Min objects"
+      low="3" high="35" default="3"/>
+
+    <number id="maxobjs" type="spinbutton" arg="-maxobjs %" _label="Max objects"
+      low="3" high="35" default="8"/>            
+   </vgroup>
+   <vgroup>
+    <number id="minhinc" type="spinbutton" arg="-minhinc %" _label="Min height"
+      low="1" high="31" default="2"/>
+
+    <number id="maxhinc" type="spinbutton" arg="-maxhinc %" _label="Max height"
+      low="1" high="31" default="6"/>            
+   </vgroup>
+   <vgroup>
+    <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+  </hgroup>
+
+  <_description>
 3D simulation of a juggler performing with balls, clubs and rings.  
 
+http://en.wikipedia.org/wiki/Siteswap
+
 Written by Brian Apps; 2005.
-       </_description>
+  </_description>
 </screensaver>
index c7c0d6ef69441f108e2cc59de2ca2704866836ab..7213412e119db53fe488846ff2e4ef92ee24d1bb 100644 (file)
@@ -4,7 +4,10 @@
 
   <command arg="-root"/>
 
-  <!-- #### -mouse -->
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
 
   <number id="count" type="slider" arg="-count %"
            _label="Count" _low-label="Few" _high-label="Lots"
            _label="Iterations" _low-label="Small" _high-label="Large"
           low="1" high="100" default="20"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="200"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Animates the Julia set (a close relative of the Mandelbrot set).  The
 small moving dot indicates the control point from which the rest of
-the image was generated.
+the image was generated.  See also the "Discrete" screen saver.
+
+http://en.wikipedia.org/wiki/Julia_set
 
 Written by Sean McCullough; 1997.
   </_description>
index 08ef2397363b82ba2f0699db322caf26f97ca09a..a819370a582ddc141195d1de5274e36463ca5177 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <number id="nsegments" type="slider" arg="-nsegments %"
   <!-- #### -global_rotation [1] -->
   <!-- #### -spring_constant [5] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-A simple kaleidoscope.  See also "gleidescope".
+A simple kaleidoscope.  See also "GLeidescope".
+
+http://en.wikipedia.org/wiki/Kaleidoscope
 
 Written by Ron Tapia; 1997.
   </_description>
index b4a2b3f29e82c61037fb1401a1335bf3faa0e9c2..0cd83fa759519ce3247a1120b207ea4d7affd4cc 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <number id="descent" type="slider" arg="-speed %"
           low="2" high="500" default="150"
           convert="invert"/>
 
-  <boolean id="random" _label="Use Randomized Surfaces and Primitives" arg-unset="-no-random"/>
-  <boolean id="wander"  _label="Wander Around the Screen" arg-set="-wander"/>
+  <boolean id="random" _label="Use randomized surfaces and primitives" arg-unset="-no-random"/>
+  <boolean id="wander"  _label="Wander" arg-set="-wander"/>
   <boolean id="spin"    _label="Spin" arg-unset="-no-spin"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 This draws a visualization of a Klein bottle or some other interesting
 parametric surfaces.
 
+http://en.wikipedia.org/wiki/Klein_bottle
+
 Written by Andrey Mirtchovski; 2003.
   </_description>
 </screensaver>
index 1c67ebc5ada7e3ed1f519430bd23163b097eed19..192b4266bc7ace0b9414ba084f8d6258b188069d 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="density" type="slider" arg="-speed %"
           low="0.0001" high="0.2" default="0.1"/>
 
   <boolean id="random" _label="Randomize" arg-unset="-no-random"/>
-<!--  <boolean id="db" _label="Double Buffer" arg-set="-db"/> -->
+<!--  <boolean id="db" _label="Double buffer" arg-set="-db"/> -->
 
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Spiraling, spinning, and very, very fast splashes of color rush
 toward the screen.
index 2befffab78803620c1e9f8363c56d03ac66943ad..32a0e67623ed87098c3128d000a82bb80b8888d7 100644 (file)
@@ -5,13 +5,13 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="40000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <boolean id="tex"     _label="Textured"  arg-unset="-no-texture"/>
   <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Animates a simulation of Lemarchand's Box, the Lament Configuration,
@@ -19,6 +19,8 @@ repeatedly solving itself.
 
 Warning: occasionally opens doors.
 
+http://en.wikipedia.org/wiki/Lemarchand%27s_box
+
 Written by Jamie Zawinski; 1998.
   </_description>
 </screensaver>
index f2fb066e499803a53577cce5b8d78b4e2190d2cd..37e33d3aa4cc6cb6eedc16e566c6f472baadba0e 100644 (file)
@@ -4,6 +4,11 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="40000"
+          convert="invert"/>
+
   <number id="count" type="spinbutton" arg="-count %"
           _label="Count" low="0" high="20" default="10"/>
 
            _label="Duration" _low-label="Short" _high-label="Long"
           low="0" high="2000" default="200"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="60000" default="40000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Moving radiating lines, that look vaguely like scanning laser beams.
-(Frankie say: relax.)
+(Frankie say relax.)
 
 Written by Pascal Pensa; 1997.
   </_description>
index b2ee458a762587b3f072ed9313feef02ff1c5366..7787698a62798ed90fe9b533de0e995ec7d776cf 100644 (file)
@@ -1,25 +1,47 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="lavalite" _label="LavaLite">
+<screensaver name="lavalite" _label="Lavalite">
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
-          convert="invert"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="30000"
+            convert="invert"/>
 
-  <number id="speed" type="slider" arg="-speed %"
-          _label="Activity" _low-label="Sparse" _high-label="Dense"
-          low="0.001" high="0.01" default="0.003"/>
+    <number id="speed" type="slider" arg="-speed %"
+            _label="Activity" _low-label="Sparse" _high-label="Dense"
+            low="0.001" high="0.01" default="0.003"/>
+   </vgroup>
+   <vgroup>
+    <number id="count" type="slider" arg="-count %"
+            _label="Max blobs" _low-label="1" _high-label="10"
+            low="1" high="10" default="3"/>
 
-  <number id="count" type="slider" arg="-count %"
-          _label="Max Blobs" _low-label="1" _high-label="10"
-          low="1" high="10" default="3"/>
+    <number id="resolution" type="slider" arg="-resolution %"
+            _label="Resolution" _low-label="Low" _high-label="High"
+            low="10" high="120" default="40"/>
+   </vgroup>
+  </hgroup>
 
-  <number id="resolution" type="slider" arg="-resolution %"
-          _label="Resolution" _low-label="Low" _high-label="High"
-          low="10" high="120" default="40"/>
+  <hgroup>
+   <vgroup>
+
+ <hgroup>
+  <boolean id="impatient" _label="Impatient"   arg-set="-impatient"/>
+  <boolean id="smooth"    _label="Smooth"      arg-unset="-no-smooth"/>
+  <boolean id="wander"    _label="Wander" arg-set="-wander"/>
+ </hgroup>
+
+ <hgroup>
+  <boolean id="wire"      _label="Wireframe"   arg-set="-wireframe"/>
+  <boolean id="showfps"   _label="Show frame rate" arg-set="-fps"/>
+ </hgroup>
+
+   </vgroup>
+   <vgroup>
 
   <select id="style">
     <option id="classic" _label="Classic Lavalite" arg-set="-style classic"/>
 
   <select id="rotation">
     <option id="no"  _label="Don't Rotate"                 arg-set="-spin 0"/>
-    <option id="x"   _label="Rotate around X axis"/>
+    <option id="x"   _label="Rotate around X axis"         arg-set="-spin X"/>
     <option id="y"   _label="Rotate around Y axis"         arg-set="-spin Y"/>
-    <option id="z"   _label="Rotate around Z axis"         arg-set="-spin Z"/>
+    <option id="z"   _label="Rotate around Z axis"/>
     <option id="xy"  _label="Rotate around X and Y axes"   arg-set="-spin XY"/>
     <option id="xz"  _label="Rotate around X and Z axes"   arg-set="-spin XZ"/>
     <option id="yz"  _label="Rotate around Y and Z axes"   arg-set="-spin YZ"/>
     <option id="xyz" _label="Rotate around all three axes" arg-set="-spin XYZ"/>
   </select>
 
- <hgroup>
-  <boolean id="impatient" _label="Impatient"   arg-set="-impatient"/>
-  <boolean id="smooth"    _label="Smooth"      arg-unset="-no-smooth"/>
-  <boolean id="wander" _label="Wander" arg-set="-wander"/>
- </hgroup>
-
- <hgroup>
-  <boolean id="wire"      _label="Wireframe"   arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
- </hgroup>
+   </vgroup>
+  </hgroup>
 
   <_description>
-Draws a 3D Simulation a Lava Lite(r): odd-shaped blobs of a mysterious
+Draws a 3D Simulation a Lava Lite(r).  Odd-shaped blobs of a mysterious
 substance are heated, slowly rise to the top of the bottle, and then
-drop back down as they cool.  This program requires a fairly fast
+drop back down as they cool.  This simulation requires a fairly fast
 machine (both CPU and 3D performance.)
 
 "LAVA LITE(r) and the configuration of the LAVA(r) brand motion lamp are
@@ -63,6 +77,9 @@ of the globe and base of the motion lamp are registered trademarks of
 Haggerty Enterprises, Inc. in the U.S.A. and in other countries around
 the world."
 
+http://en.wikipedia.org/wiki/Lava_lamp
+http://en.wikipedia.org/wiki/Metaballs
+
 Written by Jamie Zawinski; 2002.
   </_description>
 </screensaver>
index ce8f203eb89d294dbe2dcea1d0f335359a3004b9..09206b6c9082edb8fccfeefadb296b8a1bb346f8 100644 (file)
@@ -5,16 +5,30 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="1500000" default="1000000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="5000000" default="100000"
           convert="invert"/>
 
   <hgroup>
-  <number id="spread" type="spinbutton" arg="-spread %"
-          _label="Spread" low="2" high="64" default="8"/>
-
-  <number id="cycles" type="spinbutton" arg="-cycles %"
-          _label="Cycles" low="1" high="600" default="60"/>
+   <vgroup>
+    <number id="spread" type="spinbutton" arg="-spread %"
+            _label="Line spread" low="2" high="64" default="8"/>
+    <number id="cycles" type="spinbutton" arg="-cycles %"
+            _label="Cycles" low="1" high="600" default="60"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+   <vgroup>
+    <boolean id="hw" _label="Horizontal white" arg-unset="-no-hw"/>
+    <boolean id="vw" _label="Vertical white"   arg-unset="-no-vw"/>
+    <boolean id="dw" _label="Diagonal white"   arg-unset="-no-dw"/>
+    <boolean id="w"  _label="Solid white"      arg-unset="-no-w"/>
+   </vgroup>
+   <vgroup>
+    <boolean id="hb" _label="Horizontal black" arg-unset="-no-hb"/>
+    <boolean id="vb" _label="Vertical black"   arg-unset="-no-vb"/>
+    <boolean id="db" _label="Diagonal black"   arg-unset="-no-db"/>
+    <boolean id="b"  _label="Solid black"      arg-unset="-no-b"/>
+   </vgroup>
   </hgroup>
 
   <_description>
@@ -27,10 +41,8 @@ However, leaving the screen on and displaying high contrast images
 can often repair the damage.  That's what this screen saver does.
 
 See also:
-
-       http://docs.info.apple.com/article.html?artnum=88343
-
-       http://toastycode.com/blog/2008/02/05/lcd-scrub/
+http://docs.info.apple.com/article.html?artnum=88343
+http://toastycode.com/blog/2008/02/05/lcd-scrub/
 
 Inspired by the like-named program by Daniel Sandler.
 
index 0abf9a2a318678456d5e72769ac274205ea2258f..3c932322a5dfca87bea2de151ee02d60ce6c7917 100644 (file)
@@ -5,14 +5,16 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Crackling fractal lightning bolts.
 
index 453be8c5dfb211d26f379d7aa391b51cfcc54fa3..e4ac8d0d2beddc386b4aa11c0a68f264efa99147 100644 (file)
@@ -4,29 +4,33 @@
 
   <command arg="-root"/>
 
-  <!-- #### -no-additive -->
-
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="0" high="20" default="1"/>
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="50000" default="17000"
+          convert="invert"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Steps" _low-label="Few" _high-label="Many"
           low="1" high="1000" default="768"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="17000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
-  <number id="size" type="spinbutton" arg="-size %"
-           _label="Size" low="-10" high="10" default="-1"/>
+  <number id="size" type="slider" arg="-size %"
+            _label="Size" _low-label="Small" _high-label="Large"
+            low="10" high="500" default="500"/>
+
+  <number id="count" type="slider" arg="-count %"
+          _label="Count" _low-label="1" _high-label="20"
+           low="0" high="20" default="1"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
-Lisajous loops.
+Lissajous loops.
+
+http://en.wikipedia.org/wiki/Lissajous_curve
 
 Written by Caleb Cullen; 1997.
   </_description>
index fea213e09416251813834c92ec6869372fe00f64..fe5b0eb2c22636e5b7d6ad758ca363cf0c5cce31 100644 (file)
@@ -4,27 +4,32 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="0" high="20" default="1"/>
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Timeout" _low-label="Small" _high-label="Large"
           low="0" high="80000" default="20000"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="200"/>
 
+  <number id="count" type="slider" arg="-count %"
+          _label="Count" _low-label="1" _high-label="20"
+           low="0" high="20" default="1"/>
+
   <number id="size" type="spinbutton" arg="-size %"
            _label="Size" low="-500" high="500" default="-200"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-This one draws the progress of circular shapes along a path.
+Lissajous loops.  This one draws the progress of circular shapes along a path.
+
+http://en.wikipedia.org/wiki/Lissajous_curve
 
 Written by Alexander Jolk; 1997.
   </_description>
index 3ee1ddb9879f0c80d98e79c88d2a9ea623083596..f1be07048ca7a32598da980a2e28a6f43b621bdd 100644 (file)
@@ -5,16 +5,16 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-        _label="Speed" _low-label="Slow" _high-label="Fast"
-        low="0" high="90000" default="70000"
+        _label="Frame rate" _low-label="Low" _high-label="High"
+        low="0" high="100000" default="70000"
         convert="invert"/>
 
-  <number id="points" type="spinbutton" arg="-points %"
-          _label="Control Points"
+  <number id="points" type="slider" arg="-points %"
+          _label="Control points" _low-label="Few" _high-label="Many"
           low="10" high="1000" default="200"/>
 
   <number id="steps" type="slider" arg="-steps %"
-          _label="Interpolation Steps" _low-label="Less" _high-label="More"
+          _label="Interpolation steps" _low-label="Less" _high-label="More"
           low="100" high="500" default="150"/>
 
   <number id="thickness" type="slider" arg="-linewidth %"
           low="1" high="50" default="5"/>
 
   <select id="type">
-    <option id="random" _label="Open and Closed Figures"/>
-    <option id="open" _label="Open Figures" arg-set="-figtype open"/>
-    <option id="closed" _label="Closed Figures" arg-set="-figtype closed"/>
+    <option id="random" _label="Open and closed figures"/>
+    <option id="open" _label="Open figures" arg-set="-figtype open"/>
+    <option id="closed" _label="Closed figures" arg-set="-figtype closed"/>
   </select>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This generates random spline-ish line drawings and morphs between
 them.  
index a5e79c84d0d52efa07b11446f7b5d88d33cf1883..efa5e1fe98ae1562f5495656d188ef0e32462c0a 100644 (file)
@@ -4,75 +4,60 @@
 
   <command arg="-root" />
 
-  <boolean id="blink"
-           _label="Blinking effects"
-           arg-unset="-no-blink" />
-
-  <number id="rotateidle-min"
-          type="slider"
-          _label="Rotator idle time, minimum (ms)"
-          _low-label="500"
-          _high-label="10000"
-          low="500"
-          high="10000"
-          default="1000"
-          arg="-rotateidle-min %" />
-
-  <number id="rotateidle-max"
-          type="slider"
-          _label="Rotator idle time, maximum (ms)"
-          _low-label="500"
-          _high-label="10000"
-          low="500"
-          high="10000"
-          default="6000"
-          arg="-rotateidle-max %" />
-
-  <number id="blinkidle-min"
-          type="slider"
-          _label="Blink idle time, minimum (ms)"
-          _low-label="500"
-          _high-label="20000"
-          low="500"
-          high="20000"
-          default="1000"
-          arg="-blinkidle-min %" />
-
-  <number id="blinkidle-max"
-          type="slider"
-          _label="Blink idle time, maximum (ms)"
-          _low-label="500"
-          _high-label="20000"
-          low="500"
-          high="20000"
-          default="9000"
-          arg="-blinkidle-max %" />
-
-  <number id="blinkdwell-min"
-          type="slider"
-          _label="Blink dwell time, minimum (ms)"
-          _low-label="50"
-          _high-label="1500"
-          low="50"
-          high="1500"
-          default="100"
-          arg="-blinkdwell-min %" />
-
-  <number id="blinkdwell-max"
-          type="slider"
-          _label="Blink dwell time, maximum (ms)"
-          _low-label="50"
-          _high-label="1500"
-          low="50"
-          high="1500"
-          default="600"
-          arg="-blinkdwell-max %" />
+    <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
+
+  <hgroup>
+   <vgroup>
+    <number id="rotateidle-min" type="slider"
+            _label="Miniumum rotator idle time"
+            _low-label="Low" _high-label="High"
+            low="500" high="10000" default="1000" arg="-rotateidle-min %" />
+
+    <number id="blinkidle-min" type="slider"
+            _label="Minimum blink idle time"
+            _low-label="Low" _high-label="High"
+            low="500" high="20000" default="1000" arg="-blinkidle-min %" />
+
+    <number id="blinkdwell-min" type="slider"
+            _label="Minimum blink dwell time"
+            _low-label="Low" _high-label="High"
+            low="50" high="1500" default="100" arg="-blinkdwell-min %" />
+
+   <hgroup>
+   <boolean id="blink"
+            _label="Blinking effects"
+            arg-unset="-no-blink" />
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </hgroup>
+
+   </vgroup>
+   <vgroup>
+
+    <number id="rotateidle-max" type="slider"
+            _label="Maximum rotator idle time"
+            _low-label="Low" _high-label="High"
+            low="500" high="10000" default="6000" arg="-rotateidle-max %" />
+
+    <number id="blinkidle-max" type="slider"
+            _label="Maximum blink idle time"
+            _low-label="Low" _high-label="High"
+            low="500" high="20000" default="9000" arg="-blinkidle-max %" />
+
+    <number id="blinkdwell-max" type="slider"
+            _label="Maximum blink dwell time"
+            _low-label="Low" _high-label="High"
+            low="50" high="1500" default="600" arg="-blinkdwell-max %" />
+   </vgroup>
+  </hgroup>
 
   <_description> 
 A translucent spinning, blinking thing.  Sort of a cross between the wards
 in an old combination lock and those old backlit information displays that
 animated and changed color via polarized light.
 
-Written by Leo L. Schwab; August, 2007.
+Written by Leo L. Schwab; 2007.
   </_description>
 </screensaver>
index 1776736d72aaf1d2eae6fe97188207989fc5f95a..028d1f7cbc6f1962b663db8e53e845dde76cd575 100644 (file)
@@ -4,25 +4,29 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="200000" default="100000"
+          convert="invert"/>
+
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Timeout" _low-label="Small" _high-label="Large"
           low="0" high="8000" default="1600"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="150000" default="100000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="15"/>
 
   <number id="size" type="spinbutton" arg="-size %"
            _label="Size" low="-50" high="50" default="-12"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Generates loop-shaped colonies that spawn, age, and eventually die.
 
+http://en.wikipedia.org/wiki/Langton%27s_loops
+
 Written by David Bagley; 1999.
   </_description>
 </screensaver>
index 26db9f961a0e01f0d46bbaba6ce4aa4e8a28d8e9..c54d2f8d1c121ac3dacad1f69ad803d90940418e 100644 (file)
@@ -1,18 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="m6502" _label="M6502">
+<screensaver name="m6502" _label="m6502">
 
   <command arg="-root" />
 
   <number id="displaytime" type="slider" arg="-displaytime %"
           _label="Display time for each program"
           _low-label="5 seconds" _high-label="2 minutes"
-         low="5" high="120" default="10" />
+         low="5" high="120" default="20" />
 
-  <file id="file" _label="Assembly File" arg="-file %"/>
+  <file id="file" _label="Assembly file" arg="-file %"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description> 
-The m6502 screensaver emulates a 6502 microprocessor.  The family
+This emulates a 6502 microprocessor.  The family
 of 6502 chips were used throughout the 70's and 80's in machines
 such as the Atari 2600, Commodore PET, VIC20 and C64, Apple ][,
 and the NES. Some example programs are included, and it can also
index c72ff7fd4a1f2aeb63c7e187467d75c70b4b881a..fbbb65c44c782f5968674e8f0bb2ad85eaee9dc4 100644 (file)
@@ -5,36 +5,36 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-solve-delay %"
-          _label="Solve Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="10000" default="5000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="pre-delay" type="slider" arg="-pre-delay %"
-          _label="Pre-Solve Delay"
-          _low-label="0 Seconds" _high-label="10 Seconds"
+          _label="Linger before solving"
+          _low-label="0 seconds" _high-label="10 seconds"
           low="0" high="10000000" default="2000000"/>
 
   <number id="post-delay" type="slider" arg="-post-delay %"
-          _label="Post-Solve Delay"
-          _low-label="0 Seconds" _high-label="10 Seconds"
+          _label="Linger after solving"
+          _low-label="0 seconds" _high-label="10 seconds"
           low="0" high="10000000" default="4000000"/>
 
   <number id="grid-size" type="spinbutton" arg="-grid-size %"
-          _label="Grid Size" low="0" high="100" default="0"/>
+          _label="Grid size" low="0" high="100" default="0"/>
 
   <select id="generator">
-    <option id="mrandom" _label="Random Generator"/>
-    <option id="m0"      _label="Backtracking Generator"
+    <option id="mrandom" _label="Random generator"/>
+    <option id="m0"      _label="Backtracking generator"
                          arg-set="-generator 0"/>
-    <option id="m1"      _label="Seeding Generator"
+    <option id="m1"      _label="Seeding generator"
                          arg-set="-generator 1"/>
-    <option id="m2"      _label="Joining Generator"
+    <option id="m2"      _label="Joining generator"
                          arg-set="-generator 2"/>
   </select>
 
   <select id="ignorance">
-    <option id="smart" _label="Head Toward Exit"/>
-    <option id="dumb"  _label="Ignorant of Exit Direction"
+    <option id="smart" _label="Head toward exit"/>
+    <option id="dumb"  _label="Ignorant of exit direction"
             arg-set="-ignorant"/>
   </select>
 
@@ -45,6 +45,8 @@
   <!-- #### -skip-color [orange] -->
   <!-- #### -surround-color [slateblue] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This generates random mazes (with various different algorithms), and
 then solves them.  Backtracking and look-ahead paths are displayed in
index c41b99748dfd12b2365c00f8d822802e96387575..bf56694ca2383fb5b78c602afbd198faa6dccbd1 100644 (file)
@@ -5,20 +5,22 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="30000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <select id="seedMode">
-    <option id="ram"    _label="Dump Memory"/>
-    <option id="random" _label="Draw Random Numbers" arg-set="-random"/>
+    <option id="ram"    _label="Dump memory"/>
+    <option id="random" _label="Draw random numbers" arg-set="-random"/>
   </select>
 
   <select id="drawMode">
     <option id="color" _label="Draw in RGB"/>
-    <option id="mono"  _label="Draw Green" arg-set="-mono"/>
+    <option id="mono"  _label="Draw green" arg-set="-mono"/>
   </select>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This draws a dump of its own process memory scrolling across the screen
 in three windows at three different rates.
index 66b7ee707e2e94aca0ea6560a2c703e6417a9d18..9eea5c83b093f291433211f7f030453a8ea06069 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
           convert="invert"/>
 
   <number id="descent" type="slider" arg="-speed %"
           convert="invert"/>
 
   <number id="depth" type="spinbutton" arg="-depth %"
-          _label="Max Depth" low="1" high="6" default="3"/>
+          _label="Max depth" low="1" high="6" default="3"/>
 
   <!-- #### -no-optimize -->
 
   <boolean id="wander" _label="Wander" arg-unset="-no-wander"/>
 
   <select id="rotation">
-    <option id="no"  _label="Don't Rotate"               arg-set="-spin 0"/>
+    <option id="no"  _label="Don't rotate"               arg-set="-spin 0"/>
     <option id="x"   _label="Rotate around X axis"       arg-set="-spin X"/>
     <option id="y"   _label="Rotate around Y axis"       arg-set="-spin Y"/>
     <option id="z"   _label="Rotate around Z axis"       arg-set="-spin Z"/>
   </select>
 
   <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 This draws the three-dimensional variant of the recursive Menger
 Gasket, a cube-based fractal object analagous to the Sierpinski
 Tetrahedron.
 
+http://en.wikipedia.org/wiki/Menger_sponge
+http://en.wikipedia.org/wiki/Sierpinski_carpet
+
 Written by Jamie Zawinski; 2001.
   </_description>
 </screensaver>
index df6a6020856bc8cdbcda1bfb6ccab6259a266725..899272af144531dc1476c67b16282b74c18e57e3 100644 (file)
@@ -6,34 +6,46 @@
 
  <!-- #### -color [random] -->
 
-  <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="2" high="256" default="256"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
 
-  <number id="count" type="slider" arg="-count %"
-          _label="Number of MetaBalls" _low-label="Two" _high-label="Many"
-         low="2" high="255" default="10"/>
+    <number id="cycles" type="slider" arg="-cycles %"
+             _label="Duration" _low-label="Short" _high-label="Long"
+            low="100" high="3000" default="1000"/>
 
-  <number id="radius" type="slider" arg="-radius %"
-          _label="MetaBall Radius" _low-label="Small" _high-label="Big" low="2" high="100" default="100"/>
+    <number id="ncolors" type="slider" arg="-ncolors %"
+              _label="Number of colors" _low-label="Two" _high-label="Many"
+              low="2" high="256" default="256"/>
 
-  <number id="delta" type="slider" arg="-delta %"
-          _label="MetaBall Movement" _low-label="Small" _high-label="Big" low="1" high="20" default="3"/>
+   </vgroup>
+   <vgroup>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="5000"
-          convert="invert"/>
+    <number id="count" type="slider" arg="-count %"
+            _label="Metaball count" _low-label="Two" _high-label="Many"
+            low="2" high="255" default="10"/>
 
-  <number id="cycles" type="slider" arg="-cycles %"
-           _label="Duration" _low-label="Short" _high-label="Long"
-          low="100" high="3000" default="1000"/>
+    <number id="radius" type="slider" arg="-radius %"
+            _label="MetaBall Radius" _low-label="Small" _high-label="Big" low="2" high="100" default="100"/>
+
+    <number id="delta" type="slider" arg="-delta %"
+            _label="MetaBall Movement" _low-label="Small" _high-label="Big" low="1" high="20" default="3"/>
+
+   </vgroup>
+  </hgroup>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 
 Draws two dimensional metaballs: overlapping and merging balls with
 fuzzy edges.
 
+http://en.wikipedia.org/wiki/Metaballs
+
 Written by W.P. van Paassen; 2003.
   </_description>
 </screensaver>
index 6ce60ddafe1eab5cbb1c6d33f31e331a8edee5c5..7b657f863a8d59ba1bf7cd5b30ff64b4a79fdb4d 100644 (file)
@@ -7,8 +7,8 @@
   <hgroup>
    <vgroup>
     <number id="delay" type="slider" arg="-delay %"
-            _label="Speed" _low-label="Slow" _high-label="Fast"
-            low="0" high="20000" default="10000"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
             convert="invert"/>
 
     <number id="zoom" type="slider" arg="-zoom %"
 
     <number id="hold_time" type="slider" arg="-hold-time %"
             _label="Time until loading a new image"
-            _low-label="5 Sec" _high-label="5 Min"
+            _low-label="5 sec" _high-label="5 min"
             low="5.0" high="300.0" default="30.0"/>
 
-    <select id="render">
-        <option id="wire"  _label="Wireframe" arg-set="-wire"/>
-        <option id="solid" _label="Solid Surface"/>
-    </select>
-
-   </vgroup>
-   <vgroup>
     <number id="fade_speed" type="slider" arg="-fade-time %"
-            _label="Transition Duration"
-            _low-label="None" _high-label="30 Sec"
+            _label="Transition duration"
+            _low-label="None" _high-label="30 sec"
             low="0.0" high="30.0" default="5.0"/>
-
+   </vgroup>
+   <vgroup>
     <number id="resolution" type="slider" arg="-resolution %"
              _low-label="Low" _high-label="High"
-             _label="Resolution" low="4" high="50" default="16"/>
+             _label="Resolution" low="4" high="50" default="30"/>
 
     <number id="bumps" type="slider" arg="-bumps %"
             _low-label="None" _high-label="50 bumps"
 
     <number id="blend" type="slider" arg="-blend %"
             _low-label="Clear" _high-label="Opaque"
-            _label="Transparency" low="0.1" high="1.0" default="0.0"/>
+            _label="Transparency" low="0.1" high="1.0" default="1.0"/>
    </vgroup>
   </hgroup>
 
    <hgroup>
    <vgroup>
-  <boolean id="walls" _label="Enable Walls" arg-set="-walls"/>
-  <boolean id="colour" _label="Enable Colouring" arg-set="-colour"/>
-  <boolean id="texture" _label="Enable Reflected Image" arg-unset="-no-texture"/>
+  <boolean id="walls" _label="Enable walls" arg-set="-walls"/>
+  <boolean id="colour" _label="Enable colouring" arg-set="-colour"/>
+  <boolean id="texture" _label="Enable reflected image" arg-unset="-no-texture"/>
    </vgroup>
    <vgroup>
   <boolean id="backgound" _label="Show image on background" arg-unset="-no-paint-background"/>
-  <boolean id="offset_texture" _label="Offset Texture Coordinates" arg-set="-offset-texture"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="offset_texture" _label="Offset texture coordinates" arg-set="-offset-texture"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+
+   <vgroup>
+    <select id="render">
+        <option id="wire"  _label="Wireframe" arg-set="-wire"/>
+        <option id="solid" _label="Solid surface"/>
+    </select>
    </vgroup>
+
   </hgroup>
 
   <_description>
 Draws a wobbly blob that distorts the image behind it.
-Requires OpenGL hardware acceleration for nice animation.
 Written by Jon Dowdall; 2003.
   </_description>
 </screensaver>
index 7d5a19c00baa92fa542060f05e862771c2107569..7963932c3edf6b216573854c5d356f55ed677800 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="25000" default="2500"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="duration" type="slider" arg="-clear %"
@@ -14,7 +14,7 @@
           low="1" high="200" default="65"/>
 
   <number id="simultaneous" type="slider" arg="-simul %"
-          _label="Simultaneous Squares" _low-label="One" _high-label="Many"
+          _label="Simultaneous squares" _low-label="One" _high-label="Many"
           low="1" high="20" default="5"/>
 
   <select id="mode">
     <option id="solid" _label="Solid" arg-set="-no-xor"/>
   </select>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Munching errors!  This is a creatively broken misimplementation of the
-classic munching squares graphics hack.
+classic munching squares graphics hack.  See the "Munch" screen saver
+for the original.
+
+http://en.wikipedia.org/wiki/HAKMEM
+http://en.wikipedia.org/wiki/Munching_square
 
 Written by Steven Hazel; 2004.
   </_description>
index dbb1be7ae040029982eaa92dc65710a635bbab3f..5ae906c7394b19e574e03412f3ca95f4965d3ae4 100644 (file)
@@ -5,18 +5,21 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
-  <boolean id="solid" _label="Solid Floor" arg-set="-solidmoebius"/>
-  <boolean id="ants" _label="Draw Ants" arg-unset="-no-ants"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="solid" _label="Solid floor" arg-set="-solidmoebius"/>
+  <boolean id="ants" _label="Draw ants" arg-unset="-no-ants"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 This animates a 3D rendition M.C. Escher's "Moebius Strip II",
 an image of ants walking along the surface of a moebius strip.
 
+http://en.wikipedia.org/wiki/Moebius_strip
+http://en.wikipedia.org/wiki/Maurits_Cornelis_Escher
+
 Written by Marcelo F. Vianna; 1997.
   </_description>
 </screensaver>
index 35008a9410b35afa978f24a31b51eb32569f340d..cfbaf76875b32ebbd673a15c8f29201d7385f445 100644 (file)
@@ -5,19 +5,21 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
           convert="invert"/>
 
   <number id="speed" type="slider" arg="-speed %"
-          _label="Motion Speed" _low-label="Slow" _high-label="Fast"
+          _label="Speed" _low-label="Slow" _high-label="Fast"
           low="0.01" high="5.0" default="1.0"/>
 
+  <hgroup>
   <number id="count" type="spinbutton" arg="-count %"
-          _label="Gear Count" low="13" high="99" default="15"/>
+          _label="Number of gears" low="13" high="99" default="17"/>
 
   <number id="teeth" type="spinbutton" arg="-teeth %"
-          _label="Tooth Count" low="7" high="49" default="15"/>
+          _label="Number of teeth" low="7" high="49" default="15"/>
+  </hgroup>
 
   <hgroup>
    <boolean id="wander" _label="Wander"    arg-unset="-no-wander"/>
    <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
   </hgroup>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a closed, interlinked chain of rotating gears.  The layout of
-the gears follows the path of a moebius strip.
+the gears follows the path of a moebius strip.  See also the "Pinion"
+and "Gears" screen savers.
+
+http://en.wikipedia.org/wiki/Involute_gear
+http://en.wikipedia.org/wiki/Moebius_strip
 
 Written by Jamie Zawinski; 2007.
   </_description>
index 54266965034e1998ff2f62e73e472ba94d8f6b4e..6e4c9b9d2b0893625c264f72135654fdeae5ba3b 100644 (file)
@@ -5,11 +5,11 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Duration" _low-label="1 Second" _high-label="1 Minute"
+          _label="Duration" _low-label="1 second" _high-label="1 minute"
           low="1" high="60" default="5"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
   <number id="offset" type="slider" arg="-offset %"
 
   <!-- #### -no-random -->
 
-<!--  <boolean id="shm" _label="Use Shared Memory" arg-unset="-no-shm"/> -->
+<!--  <boolean id="shm" _label="Use shared memory" arg-unset="-no-shm"/> -->
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
   When the lines on the screen
   Make more lines in between,
   That's a moire'!
 
+http://en.wikipedia.org/wiki/Moire_pattern
+
 Written by Jamie Zawinski and Michael Bayne; 1997.
   </_description>
 </screensaver>
index e87cf1958ab6af6e4d0058dc2a2e1c358791d666..1c5d7f14df0e3df4c99831e99be54f74947b843b 100644 (file)
@@ -5,22 +5,26 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="50000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="50000"
           convert="invert"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="150"/>
 
   <number id="thickness" type="spinbutton" arg="-thickness %"
             _label="Thickness" low="0" high="100" default="0"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Generates fields of concentric circles or ovals, and combines the
 planes with various operations.  The planes are moving independently
 of one another, causing the interference lines to spray.
 
+http://en.wikipedia.org/wiki/Moire_pattern
+
 Written by Jamie Zawinski; 1998.
   </_description>
 </screensaver>
index a5fcc5b3e757ab47fcf481d7d87891221b3b9efa..7c449ef06e4da40d8788a742f90bd2db3e40169c 100644 (file)
@@ -4,36 +4,35 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
+
   <number id="timeout" type="slider" arg="-timeout %"
           _label="Duration" _low-label="5 seconds" _high-label="2 minutes"
           low="5" high="120" default="20"/>
 
   <hgroup>
    <vgroup>
-    <boolean id="labels" _label="Label Atoms" arg-unset="-no-labels"/>
-    <boolean id="titles" _label="Describe Molecule" arg-unset="-no-titles"/>
-    <boolean id="bbox"   _label="Draw Bounding Box" arg-set="-bbox"/>
+    <boolean id="labels" _label="Label atoms" arg-unset="-no-labels"/>
+    <boolean id="titles" _label="Describe molecule" arg-unset="-no-titles"/>
+    <boolean id="bbox"   _label="Draw bounding box" arg-set="-bbox"/>
+    <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
    </vgroup>
    <vgroup>
-    <boolean id="atoms"  _label="Draw Atomic Nuclei" arg-unset="-no-atoms"/>
-    <boolean id="bonds"  _label="Draw Atomic Bonds" arg-unset="-no-bonds"/>
-    <boolean id="shells" _label="Draw Electron Shells" arg-unset="-no-shells"/>
+    <boolean id="atoms"  _label="Draw atomic nuclei" arg-unset="-no-atoms"/>
+    <boolean id="bonds"  _label="Draw atomic bonds" arg-unset="-no-bonds"/>
+    <boolean id="shells" _label="Draw electron shells" arg-unset="-no-shells"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
    </vgroup>
   </hgroup>
 
   <hgroup>
-   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-  </hgroup>
+   <boolean id="wander" _label="Wander" arg-set="-wander"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
-
-  <boolean id="wander" _label="Wander" arg-set="-wander"/>
-
-  <select id="rotation">
-    <option id="no"  _label="Don't Rotate"               arg-set="-spin 0"/>
+   <select id="rotation">
+    <option id="no"  _label="Don't rotate"               arg-set="-spin 0"/>
     <option id="x"   _label="Rotate around X axis"       arg-set="-spin X"/>
     <option id="y"   _label="Rotate around Y axis"       arg-set="-spin Y"/>
     <option id="z"   _label="Rotate around Z axis"       arg-set="-spin Z"/>
     <option id="xz"  _label="Rotate around X and Z axes" arg-set="-spin XZ"/>
     <option id="yz"  _label="Rotate around Y and Z axes" arg-set="-spin YZ"/>
     <option id="xyz" _label="Rotate around all three axes"/>
-  </select>
-
-  <file id="molecule" _label="PDB File or Directory" arg="-molecule %"/>
+   </select>
+  </hgroup>
 
-  <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <file id="molecule" _label="PDB file or directory" arg="-molecule %"/>
 
   <_description>
 Draws several different representations of molecules.  Some common
-molecules are built in, and it can also read PDB (Protein Data Base)
+molecules are built in, and it can also read PDB (Protein Data Bank)
 files as input.
 
+http://en.wikipedia.org/wiki/Protein_Data_Bank_%28file_format%29
+
 Written by Jamie Zawinski; 2001.
   </_description>
 </screensaver>
index 57d37e6e4463ae1dabf5dc3ba7d3b9e58ec0be5b..c4d2c5f871344b167f4ac6c09f7a3de3fbc2f06e 100644 (file)
@@ -4,8 +4,13 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="40000"
+          convert="invert"/>
+
   <select id="object">
-   <option id="random" _label="Random Object"/>
+   <option id="random" _label="Random object"/>
    <option id="tetra"  _label="Tetrahedron"  arg-set="-count 1"/>
    <option id="cube"   _label="Cube"         arg-set="-count 2"/>
    <option id="octa"   _label="Octahedron"   arg-set="-count 3"/>
    <option id="icosa"  _label="Icosahedron"  arg-set="-count 5"/>
   </select>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="40000"
-          convert="invert"/>
-
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Platonic solids that turn inside out and get spikey.
 
+http://en.wikipedia.org/wiki/Platonic_solid
+
 Written by Marcelo Vianna; 1997.
   </_description>
 </screensaver>
index b25cb5b664481637256ea37c810ac9d89e2de670..252a28d5846011afd08e239bcafde650e22b5014 100644 (file)
@@ -4,21 +4,23 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
+
   <number id="count" type="slider" arg="-count %"
           _label="Peaks" _low-label="One" _high-label="Lots"
           low="1" high="100" default="30"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="1000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-Generates random 3d plots that look vaguely mountainous.
+Generates random 3D plots that look vaguely mountainous.
 
 Written by Pascal Pensa; 1997.
   </_description>
index 0b09261e89e6685257db72220dc856dece1b093d..2a0a0b3110af2e7964b5c7ddd8fa969ba9092b56 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="5000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="duration" type="slider" arg="-clear %"
@@ -22,6 +22,8 @@
   <!-- #### -hold [100000] -->
   <!-- #### -logminwidth [7] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
         DATAI 2
         ADDB 1,2
         JRST .-4
 
 As reported by HAKMEM, in 1962, Jackson Wright wrote the above PDP-1
-code. That code still lives on in this program, some 44 years
-later.  The number of lines of enclosing code has increased
-substantially, however.
+code. That code still lives on here, some 46 years later.  The number
+of lines of enclosing code has increased substantially, however.
+
+http://en.wikipedia.org/wiki/HAKMEM
+http://en.wikipedia.org/wiki/Munching_square
 
 Written by Jackson Wright and Tim Showalter; 1997.
   </_description>
index 02d74d769c3b0f146a09c9cb58bc1c24e3e5c1cd..2b97b68941d90fbb23f6a061e2debff90e37bdad 100644 (file)
@@ -4,32 +4,45 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
-
-  <number id="iters" type="slider" arg="-max-iters %"
-          _label="Duration" _low-label="Short" _high-label="Long"
-          low="100" high="8000" default="1200"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="iters" type="slider" arg="-max-iters %"
+            _label="Duration" _low-label="Short" _high-label="Long"
+            low="100" high="8000" default="1200"/>
+
+    <number id="count" type="slider" arg="-count %"
+            _label="Blot count" _low-label="Few" _high-label="Many"
+            low="1" high="1000" default="250"/>
+
+    <number id="ncolors" type="slider" arg="-colors %"
+            _label="Colors" _low-label="Two" _high-label="Many"
+            low="1" high="255" default="4"/>
+   </vgroup>
+   <vgroup>
+    <number id="event" type="slider" arg="-event-chance %"
+            _label="Changes" _low-label="Seldom" _high-label="Frequent"
+             low="0.0" high="1.0" default="0.2"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Blot Count" low="0" high="1000" default="250"/>
+    <number id="nervous" type="slider" arg="-nervousness %"
+            _label="Nervousness" _low-label="Calm" _high-label="Spastic"
+             low="0.0" high="1.0" default="0.3"/>
 
-  <number id="linewidth" type="spinbutton" arg="-line-width %"
-          _label="Line Thickness" low="0" high="100" default="0"/>
+    <number id="mnr" type="slider" arg="-max-nerve-radius %"
+            _label="Crunchiness" _low-label="Low" _high-label="High"
+             low="0.0" high="1.0" default="0.7"/>
 
-  <number id="event" type="slider" arg="-event-chance %"
-          _label="Changes" _low-label="Seldom" _high-label="Frequent"
-           low="0.0" high="1.0" default="0.2"/>
+    <number id="linewidth" type="spinbutton" arg="-line-width %"
+            _label="Line thickness" low="0" high="100" default="0"/>
 
-  <number id="nervous" type="slider" arg="-nervousness %"
-          _label="Nervousness" _low-label="Calm" _high-label="Spastic"
-           low="0.0" high="1.0" default="0.3"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
-  <number id="mnr" type="slider" arg="-max-nerve-radius %"
-          _label="Crunchiness" _low-label="Low" _high-label="High"
-           low="0.0" high="1.0" default="0.7"/>
+   </vgroup>
+  </hgroup>
 
   <!-- #### -iter-amt [0.01] -->
   <!-- #### -min-scale [0.6] -->
   <!-- #### -min-radius [3] -->
   <!-- #### -max-radius [25] -->
 
-  <number id="ncolors" type="slider" arg="-colors %"
-            _label="Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="4"/>
-
-<!--  <boolean id="db" _label="Double Buffer" arg-set="-db"/> -->
-
   <_description>
 Draws different shapes composed of nervously vibrating squiggles,
 as if seen through a camera operated by a monkey on crack.
index 88aa2165147eeb1fd9aa12e2cf8e2df7dc7818d5..86a0ebf6860fe5afe0e455323b657038c54fd47f 100644 (file)
@@ -5,11 +5,11 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws some rotatey patterns, using OpenGL.
index e720894309e04f37bbcdd6d27fe7d859fd66f827..4ef79577782ead929b1f19ab202ad4ac3ebe6112 100644 (file)
@@ -1,12 +1,11 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="noseguy" _label="Noseguy">
+<screensaver name="noseguy" _label="NoseGuy">
 
   <command arg="-root"/>
 
-<!--  <file   id="program" _label="Text Program" arg="-program %"/> -->
-
   <xscreensaver-text />
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 A little man with a big nose wanders around your screen saying things.
index ace0d7a709711b029a74f352e187a7bd9314116d..c43daf96b0ed11eb2de7411d69a73301b7cb4e34 100644 (file)
@@ -4,17 +4,21 @@
 
   <command arg="-root"/>
 
-  <number id="size" type="spinbutton" arg="-size %"
-           _label="Player Size" low="0" high="200" default="0"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
+  <number id="size" type="spinbutton" arg="-size %"
+           _label="Player size" low="0" high="200" default="0"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Simulates a game of Pac-Man on a randomly-created level.
 
+http://en.wikipedia.org/wiki/Pac-Man
+
 Written by Edwin de Jong; 2004.
   </_description>
 </screensaver>
index cd67ed3e58d6ff020ca60d7a51d027d82b52acce..381d34df7a4b29af9f714fcbc3dc889250c030d4 100644 (file)
@@ -5,7 +5,7 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Duration" _low-label="1 Second" _high-label="1 Minute"
+          _label="Duration" _low-label="1 second" _high-label="1 minute"
           low="1" high="60" default="5"/>
 
   <number id="lines" type="slider" arg="-maxlines %"
@@ -16,6 +16,8 @@
   <!-- #### -foreground [white] -->
   <!-- #### -background [black] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This is sort of a combination spirograph/string-art.  It generates a
 large, complex polygon, and renders it by filling using an even/odd
index 67e7b015fc173489031f96ce69a9d0a5e236d8f1..23b545d2dbcb378193c6b4c91674d63eafdcc9b3 100644 (file)
     <option id="smart" _label="Always play well" arg-set="-smart"/>
   </select>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-Simulates the classic arcade game Missile Command.
+Simulates (something like) the classic arcade game Missile Command.
+
+http://en.wikipedia.org/wiki/Missile_Command
 
 Written by Adam Miller; 1999.
   </_description>
index 1559be386129c216f7ea86f95396c5b9fe4296a2..7ed67937398f33a32930068e5f0925bb10056ab8 100644 (file)
@@ -4,20 +4,27 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
-
-  <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="64"/>
-
-  <number id="size" type="slider" arg="-size %"
-           _label="Tile Size" _low-label="Small" _high-label="Large"
-           low="1" high="100" default="40"/>
-
-  <boolean id="ammann" _label="Draw Ammann Lines" arg-set="-ammann"/>
+   <hgroup>
+    <vgroup>
+     <number id="delay" type="slider" arg="-delay %"
+             _label="Frame rate" _low-label="Low" _high-label="High"
+             low="0" high="100000" default="10000"
+             convert="invert"/>
+
+     <number id="ncolors" type="slider" arg="-ncolors %"
+               _label="Number of colors" _low-label="Two" _high-label="Many"
+               low="1" high="255" default="64"/>
+    </vgroup>
+    <vgroup>
+     <number id="size" type="slider" arg="-size %"
+              _label="Tile size" _low-label="Small" _high-label="Large"
+              low="1" high="100" default="40"/>
+
+     <boolean id="ammann" _label="Draw ammann lines" arg-set="-ammann"/>
+     <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+    </vgroup>
+   </hgroup>
+  
 
   <_description>
 Draws quasiperiodic tilings; think of the implications on modern
@@ -35,7 +42,9 @@ Great Britain being invited by a multinational to wipe their bottoms
 on what appears to be the work of a Knight of the Realm, then a last
 stand must be taken."
 
-As reported by News of the Weird #491, 4-jul-1997.
+As reported by News of the Weird #491, 4-Jul-1997.
+
+http://en.wikipedia.org/wiki/Penrose_tiling
 
 Written by Timo Korvola; 1997.
   </_description>
index a2998f362f204af136028ed04a94762f6a77d4b6..a51b6c34e9dfe3c96c925dd92e6ddab5cb1ba6fd 100644 (file)
@@ -7,25 +7,26 @@
   <vgroup>
     <hgroup>
       <number id="delay" type="slider" arg="-delay %"
-              _label="Speed" _low-label="Slow" _high-label="Fast"
-              low="0" high="20000" default="10000"
+              _label="Frame rate" _low-label="Low" _high-label="High"
+              low="0" high="100000" default="10000"
               convert="invert"/>
+      <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
     </hgroup>
   </vgroup>
 
   <hgroup>
     <number id="size" type="spinbutton" arg="-size %"
-             _label="Cell Size" low="0" high="100" default="2"/>
+             _label="Cell size" low="0" high="100" default="2"/>
 
     <number id="count" type="spinbutton" arg="-count %"
-            _label="Mold Varieties" low="0" high="20" default="20"/>
+            _label="Mold varieties" low="0" high="20" default="20"/>
   </hgroup>
 
 <hgroup>
  <vgroup>
 
   <number id="diaglim" type="slider" arg="-diaglim %"
-          _label="Colony Shape" _low-label="Square" _high-label="Diamond"
+          _label="Colony shape" _low-label="Square" _high-label="Diamond"
           low="1.0" high="2.0" default="1.414"
           convert="invert"/>
 
           low="0.0" high="1.0" default="0.5"/>
 
   <number id="instantdeathchan" type="slider" arg="-instantdeathchan %"
-          _label="Death Comes" _low-label="Slowly" _high-label="Quickly"
+          _label="Death comes" _low-label="Slowly" _high-label="Quickly"
           low="0.0" high="1.0" default="0.2"/>
 
   <number id="minlifespeed" type="slider" arg="-minlifespeed %"
-          _label="Minimum Rate of Growth" _low-label="Slow" _high-label="Fast"
+          _label="Minimum rate of growth" _low-label="Slow" _high-label="Fast"
           low="0.0" high="1.0" default="0.04"/>
 
     </vgroup>
     <vgroup>
 
   <number id="maxlifespeed" type="slider" arg="-maxlifespeed %"
-          _label="Maximum Rate of Growth" _low-label="Slow" _high-label="Fast"
+          _label="Maximum rate of growth" _low-label="Slow" _high-label="Fast"
           low="0.0" high="1.0" default="0.13"/>
 
   <number id="mindeathspeed" type="slider" arg="-mindeathspeed %"
-          _label="Minimum Rate of Death" _low-label="Slow" _high-label="Fast"
+          _label="Minimum rate of death" _low-label="Slow" _high-label="Fast"
           low="0.0" high="1.0" default="0.42"/>
 
   <number id="maxdeathspeed" type="slider" arg="-maxdeathspeed %"
-          _label="Maximum Rate of Death" _low-label="Slow" _high-label="Fast"
+          _label="Maximum rate of death" _low-label="Slow" _high-label="Fast"
           low="0.0" high="1.0" default="0.46"/>
 
   <number id="minlifespan" type="slider" arg="-minlifespan %"
-          _label="Minimum Lifespan" _low-label="Short" _high-label="Long"
+          _label="Minimum lifespan" _low-label="Short" _high-label="Long"
           low="0" high="3000" default="500"/>
 
   <number id="maxlifespan" type="slider" arg="-maxlifespan %"
-          _label="Maximum Lifespan" _low-label="Short" _high-label="Long"
+          _label="Maximum lifespan" _low-label="Short" _high-label="Long"
           low="0" high="3000" default="1500"/>
 
     </vgroup>
index b7d26017a00c726ef735ffaa20cc80eeeaf4817f..02e393b814d83439a3aa94a96fa526650edead68 100644 (file)
@@ -5,33 +5,26 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="50000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="50000"
           convert="invert"/>
 
   <number id="scale" type="spinbutton" arg="-scale %"
-          _label="Font Scale" low="1" high="100" default="6"/>
+          _label="Font scale" low="1" high="100" default="6"/>
 
   <number id="fade" type="slider" arg="-ticks %"
           _label="Fade" _low-label="Slow" _high-label="Fast"
           low="1" high="100" default="20"
           convert="invert"/>
 
-<!--
-  <select id="mode">
-    <option id="dumb" _label="Text Only" arg-set="-pipe"/>
-    <option id="pty"  _label="Terminal Emulation"/>
-  </select>
- -->
-
-<!--  <file id="program" _label="Text Program" arg="-program %"/> -->
-
   <xscreensaver-text />
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws a simulation of an old terminal, with large pixels and
-long-sustain phosphor.  This program is also a fully-functional VT100
-emulator!  
+long-sustain phosphor.  On X11 systems, This program is also a
+fully-functional VT100 emulator!
 
 Written by Jamie Zawinski; 1999.
   </_description>
index 14dd1dd4a513b5cd18787591d9394cf2a5a0d79a..3cf4782900b32d0c75481cccc0031929dea1fd10 100644 (file)
@@ -4,28 +4,34 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="5000"
-          convert="invert"/>
-
-  <number id="count" type="slider" arg="-count %"
-          _label="Count" _low-label="Few" _high-label="Many"
-          low="4" high="100" default="32"/>
-
-  <number id="colorspeed" type="slider" arg="-colorspeed %"
-          _label="Color shifting speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="100" default="10"/>
-
-  <number id="minradius" type="slider" arg="-minradius %"
-          _label="Minimum radius" _low-label="Small" _high-label="Large"
-          low="0.01" high="0.5" default="0.05"/>
-
-  <number id="maxradius" type="slider" arg="-maxradius %"
-          _label="Maximum radius" _low-label="Small" _high-label="Large"
-          low="0.01" high="0.5" default="0.2"/>
-
-<!--  <boolean id="db" _label="Double Buffer" arg-unset="-no-db"/> -->
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="count" type="slider" arg="-count %"
+            _label="Count" _low-label="Few" _high-label="Many"
+            low="4" high="100" default="32"/>
+
+    <number id="colorspeed" type="slider" arg="-colorspeed %"
+            _label="Color shift" _low-label="Slow" _high-label="Fast"
+            low="0" high="100" default="10"/>
+   </vgroup>
+   <vgroup>
+
+    <number id="minradius" type="slider" arg="-minradius %"
+            _label="Minimum radius" _low-label="Small" _high-label="Large"
+            low="0.01" high="0.5" default="0.05"/>
+
+    <number id="maxradius" type="slider" arg="-maxradius %"
+            _label="Maximum radius" _low-label="Small" _high-label="Large"
+            low="0.01" high="0.5" default="0.2"/>
+   </vgroup>
+  </hgroup>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 This draws a bunch of moving circles which switch from visibility to
index 13a11779791cecf14ec1ae50c53fe6f6f50e4c8c..b39d0e803c84c6136f851006d6159060c724aaf3 100644 (file)
@@ -4,34 +4,41 @@
 
   <command arg="-root"/>
 
-  <number id="size" type="slider" arg="-size %"
-          _label="Gear Size" _low-label="Tiny" _high-label="Huge"
-          low="0.1" high="3.0" default="1.0"/>
-
-  <number id="spin" type="slider" arg="-spin %"
-          _label="Rotation Speed" _low-label="Slow" _high-label="Fast"
-          low="0.1" high="7.0" default="1.0"/>
-
-  <number id="scroll" type="slider" arg="-scroll %"
-          _label="Scrolling Speed" _low-label="Slow" _high-label="Fast"
-          low="0.1" high="8.0" default="1.0"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="15000"
-          convert="invert"/>
-
-  <number id="max-rpm" type="slider" arg="-max-rpm %"
-          _label="Max RPM" _low-label="100" _high-label="2000"
-          low="100" high="2000" default="900"/>
-
   <hgroup>
-   <boolean id="wire"    _label="Wireframe" arg-set="-wireframe"/>
-   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="15000"
+            convert="invert"/>
+
+    <number id="spin" type="slider" arg="-spin %"
+            _label="Rotation speed" _low-label="Slow" _high-label="Fast"
+            low="0.1" high="7.0" default="1.0"/>
+
+    <number id="scroll" type="slider" arg="-scroll %"
+            _label="Scrolling speed" _low-label="Slow" _high-label="Fast"
+            low="0.1" high="8.0" default="1.0"/>
+
+   </vgroup>
+   <vgroup>
+    <number id="size" type="slider" arg="-size %"
+            _label="Gear size" _low-label="Tiny" _high-label="Huge"
+            low="0.1" high="3.0" default="1.0"/>
+
+    <number id="max-rpm" type="slider" arg="-max-rpm %"
+            _label="Max RPM" _low-label="100" _high-label="2000"
+            low="100" high="2000" default="900"/>
+
+    <boolean id="wire"    _label="Wireframe" arg-set="-wireframe"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
   </hgroup>
 
   <_description>
 Draws an interconnected set of gears moving across the screen.
+See also the "Gears" and "MoebiusGears" screen savers.
+
+http://en.wikipedia.org/wiki/Involute_gear
 
 Written by Jamie Zawinski; 2004.
   </_description>
index f48a0de5a985687dd08d5132835e09aea53ceeba..24b1b0825f10ddc3a25e554abc9c2331a9d3cdc3 100644 (file)
@@ -4,34 +4,34 @@
 
   <command arg="-root"/>
 
-  <select id="style">
-    <option id="curves" _label="Curved Pipes"   arg-set="-count 0"/>
-    <option id="balls"  _label="Ball Joints"    arg-set="-count 1"/>
-    <option id="fit"    _label="Bolted Fittings"/>
-  </select>
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
-          _label="Number of Pipes" _low-label="One" _high-label="A Hundred"
-          low="1" high="100" default="10"/>
+          _label="Number of pipes" _low-label="One" _high-label="A hundred"
+          low="1" high="100" default="5"/>
 
   <number id="size" type="slider" arg="-size %"
-          _label="Pipe Length" _low-label="Short" _high-label="Long"
+          _label="Pipe length" _low-label="Short" _high-label="Long"
           low="0" high="3000" default="500"/>
 
   <number id="factory" type="slider" arg="-factory %"
           _label="Gadgetry" _low-label="None" _high-label="Lots"
           low="0" high="10" default="2"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="10000"
-          convert="invert"/>
-
   <hgroup>
-   <boolean id="fisheye" _label="Fisheye Lens" arg-unset="-no-fisheye"/>
-   <boolean id="tight"   _label="Allow Tight Turns" arg-set="-tightturns"/>
+   <boolean id="fisheye" _label="Fisheye lens" arg-unset="-no-fisheye"/>
+   <boolean id="tight"   _label="Allow tight turns" arg-set="-tightturns"/>
+  <select id="style">
+    <option id="curves" _label="Curved pipes"   arg-set="-count 0"/>
+    <option id="balls"  _label="Ball joints"    arg-set="-count 1"/>
+    <option id="fit"    _label="Bolted fittings"/>
+  </select>
+
   </hgroup>
-   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 A growing plumbing system, with bolts and valves.
index 17b08bec2864dedca0d76cf4bca55b61f92bbca8..d8d99897bdf1bbf86a8cac5c25e362415cb05f8a 100644 (file)
@@ -5,12 +5,12 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
           convert="invert"/>
 
   <number id="speed" type="slider" arg="-speed %"
-          _label="Motion Speed" _low-label="Slow" _high-label="Fast"
+          _label="Speed" _low-label="Slow" _high-label="Fast"
           low="0.01" high="5.0" default="1.0"/>
 
   <number id="duration" type="slider" arg="-duration %"
           low="1" high="30" default="12"/>
 
   <select id="object">
-<option id="random" _label="Display Random Polyhedron"/>
-<option _label="Pentagonal Prism" arg-set="-which pentagonal_prism"/>
-<option _label="Pentagonal Dipyramid" arg-set="-which pentagonal_dipyramid"/>
-<option _label="Pentagonal Antiprism" arg-set="-which pentagonal_antiprism"/>
-<option _label="Pentagonal Deltohedron" arg-set="-which pentagonal_deltohedron"/>
-<option _label="Pentagrammic Prism" arg-set="-which pentagrammic_prism"/>
-<option _label="Pentagrammic Dipyramid" arg-set="-which pentagrammic_dipyramid"/>
-<option _label="Pentagrammic Antiprism" arg-set="-which pentagrammic_antiprism"/>
-<option _label="Pentagrammic Deltohedron" arg-set="-which pentagrammic_deltohedron"/>
-<option _label="Pentagrammic Crossed Antiprism" arg-set="-which pentagrammic_crossed_antiprism"/>
-<option _label="Pentagrammic Concave Deltohedron" arg-set="-which pentagrammic_concave_deltohedron"/>
+<option id="random" _label="Display random polyhedron"/>
+<option _label="Pentagonal prism" arg-set="-which pentagonal_prism"/>
+<option _label="Pentagonal dipyramid" arg-set="-which pentagonal_dipyramid"/>
+<option _label="Pentagonal antiprism" arg-set="-which pentagonal_antiprism"/>
+<option _label="Pentagonal deltohedron" arg-set="-which pentagonal_deltohedron"/>
+<option _label="Pentagrammic prism" arg-set="-which pentagrammic_prism"/>
+<option _label="Pentagrammic dipyramid" arg-set="-which pentagrammic_dipyramid"/>
+<option _label="Pentagrammic antiprism" arg-set="-which pentagrammic_antiprism"/>
+<option _label="Pentagrammic deltohedron" arg-set="-which pentagrammic_deltohedron"/>
+<option _label="Pentagrammic crossed antiprism" arg-set="-which pentagrammic_crossed_antiprism"/>
+<option _label="Pentagrammic concave deltohedron" arg-set="-which pentagrammic_concave_deltohedron"/>
 <option _label="Tetrahedron" arg-set="-which tetrahedron"/>
-<option _label="Truncated Tetrahedron" arg-set="-which truncated_tetrahedron"/>
+<option _label="Truncated tetrahedron" arg-set="-which truncated_tetrahedron"/>
 <option _label="Triakistetrahedron" arg-set="-which triakistetrahedron"/>
 <option _label="Octahemioctahedron" arg-set="-which octahemioctahedron"/>
 <option _label="Octahemioctacron" arg-set="-which octahemioctacron"/>
 <option _label="Octahedron" arg-set="-which octahedron"/>
 <option _label="Cube" arg-set="-which cube"/>
 <option _label="Cuboctahedron" arg-set="-which cuboctahedron"/>
-<option _label="Rhombic Dodecahedron" arg-set="-which rhombic_dodecahedron"/>
-<option _label="Truncated Octahedron" arg-set="-which truncated_octahedron"/>
+<option _label="Rhombic dodecahedron" arg-set="-which rhombic_dodecahedron"/>
+<option _label="Truncated octahedron" arg-set="-which truncated_octahedron"/>
 <option _label="Tetrakishexahedron" arg-set="-which tetrakishexahedron"/>
-<option _label="Truncated Cube" arg-set="-which truncated_cube"/>
+<option _label="Truncated cube" arg-set="-which truncated_cube"/>
 <option _label="Triakisoctahedron" arg-set="-which triakisoctahedron"/>
 <option _label="Rhombicuboctahedron" arg-set="-which rhombicuboctahedron"/>
-<option _label="Deltoidal Icositetrahedron" arg-set="-which deltoidal_icositetrahedron"/>
-<option _label="Truncated Cuboctahedron" arg-set="-which truncated_cuboctahedron"/>
+<option _label="Deltoidal icositetrahedron" arg-set="-which deltoidal_icositetrahedron"/>
+<option _label="Truncated cuboctahedron" arg-set="-which truncated_cuboctahedron"/>
 <option _label="Disdyakisdodecahedron" arg-set="-which disdyakisdodecahedron"/>
-<option _label="Snub Cube" arg-set="-which snub_cube"/>
-<option _label="Pentagonal Icositetrahedron" arg-set="-which pentagonal_icositetrahedron"/>
-<option _label="Small Cubicuboctahedron" arg-set="-which small_cubicuboctahedron"/>
-<option _label="Small Hexacronic Icositetrahedron" arg-set="-which small_hexacronic_icositetrahedron"/>
-<option _label="Great Cubicuboctahedron" arg-set="-which great_cubicuboctahedron"/>
-<option _label="Great Hexacronic Icositetrahedron" arg-set="-which great_hexacronic_icositetrahedron"/>
+<option _label="Snub cube" arg-set="-which snub_cube"/>
+<option _label="Pentagonal icositetrahedron" arg-set="-which pentagonal_icositetrahedron"/>
+<option _label="Small cubicuboctahedron" arg-set="-which small_cubicuboctahedron"/>
+<option _label="Small hexacronic icositetrahedron" arg-set="-which small_hexacronic_icositetrahedron"/>
+<option _label="Great cubicuboctahedron" arg-set="-which great_cubicuboctahedron"/>
+<option _label="Great hexacronic icositetrahedron" arg-set="-which great_hexacronic_icositetrahedron"/>
 <option _label="Cubohemioctahedron" arg-set="-which cubohemioctahedron"/>
 <option _label="Hexahemioctacron" arg-set="-which hexahemioctacron"/>
-<option _label="Cubitruncated Cuboctahedron" arg-set="-which cubitruncated_cuboctahedron"/>
+<option _label="Cubitruncated cuboctahedron" arg-set="-which cubitruncated_cuboctahedron"/>
 <option _label="Tetradyakishexahedron" arg-set="-which tetradyakishexahedron"/>
-<option _label="Great Rhombicuboctahedron" arg-set="-which great_rhombicuboctahedron"/>
-<option _label="Great Deltoidal Icositetrahedron" arg-set="-which great_deltoidal_icositetrahedron"/>
-<option _label="Small Rhombihexahedron" arg-set="-which small_rhombihexahedron"/>
-<option _label="Small Rhombihexacron" arg-set="-which small_rhombihexacron"/>
-<option _label="Stellated Truncated Hexahedron" arg-set="-which stellated_truncated_hexahedron"/>
-<option _label="Great Triakisoctahedron" arg-set="-which great_triakisoctahedron"/>
-<option _label="Great Truncated Cuboctahedron" arg-set="-which great_truncated_cuboctahedron"/>
-<option _label="Great Disdyakisdodecahedron" arg-set="-which great_disdyakisdodecahedron"/>
-<option _label="Great Rhombihexahedron" arg-set="-which great_rhombihexahedron"/>
-<option _label="Great Rhombihexacron" arg-set="-which great_rhombihexacron"/>
+<option _label="Great rhombicuboctahedron" arg-set="-which great_rhombicuboctahedron"/>
+<option _label="Great deltoidal icositetrahedron" arg-set="-which great_deltoidal_icositetrahedron"/>
+<option _label="Small rhombihexahedron" arg-set="-which small_rhombihexahedron"/>
+<option _label="Small rhombihexacron" arg-set="-which small_rhombihexacron"/>
+<option _label="Stellated truncated hexahedron" arg-set="-which stellated_truncated_hexahedron"/>
+<option _label="Great triakisoctahedron" arg-set="-which great_triakisoctahedron"/>
+<option _label="Great truncated cuboctahedron" arg-set="-which great_truncated_cuboctahedron"/>
+<option _label="Great disdyakisdodecahedron" arg-set="-which great_disdyakisdodecahedron"/>
+<option _label="Great rhombihexahedron" arg-set="-which great_rhombihexahedron"/>
+<option _label="Great rhombihexacron" arg-set="-which great_rhombihexacron"/>
 <option _label="Icosahedron" arg-set="-which icosahedron"/>
 <option _label="Dodecahedron" arg-set="-which dodecahedron"/>
 <option _label="Icosidodecahedron" arg-set="-which icosidodecahedron"/>
-<option _label="Rhombic Triacontahedron" arg-set="-which rhombic_triacontahedron"/>
-<option _label="Truncated Icosahedron" arg-set="-which truncated_icosahedron"/>
+<option _label="Rhombic triacontahedron" arg-set="-which rhombic_triacontahedron"/>
+<option _label="Truncated icosahedron" arg-set="-which truncated_icosahedron"/>
 <option _label="Pentakisdodecahedron" arg-set="-which pentakisdodecahedron"/>
-<option _label="Truncated Dodecahedron" arg-set="-which truncated_dodecahedron"/>
+<option _label="Truncated dodecahedron" arg-set="-which truncated_dodecahedron"/>
 <option _label="Triakisicosahedron" arg-set="-which triakisicosahedron"/>
 <option _label="Rhombicosidodecahedron" arg-set="-which rhombicosidodecahedron"/>
-<option _label="Deltoidal Hexecontahedron" arg-set="-which deltoidal_hexecontahedron"/>
-<option _label="Truncated Icosidodechedon" arg-set="-which truncated_icosidodechedon"/>
+<option _label="Deltoidal hexecontahedron" arg-set="-which deltoidal_hexecontahedron"/>
+<option _label="Truncated icosidodechedon" arg-set="-which truncated_icosidodechedon"/>
 <option _label="Disdyakistriacontahedron" arg-set="-which disdyakistriacontahedron"/>
-<option _label="Snub Dodecahedron" arg-set="-which snub_dodecahedron"/>
-<option _label="Pentagonal Hexecontahedron" arg-set="-which pentagonal_hexecontahedron"/>
-<option _label="Small Ditrigonal Icosidodecahedron" arg-set="-which small_ditrigonal_icosidodecahedron"/>
-<option _label="Small Triambic Icosahedron" arg-set="-which small_triambic_icosahedron"/>
-<option _label="Small Icosicosidodecahedron" arg-set="-which small_icosicosidodecahedron"/>
-<option _label="Small Icosacronic Hexecontahedron" arg-set="-which small_icosacronic_hexecontahedron"/>
-<option _label="Small Snub Icosicosidodecahedron" arg-set="-which small_snub_icosicosidodecahedron"/>
-<option _label="Small Hexagonal Hexecontahedron" arg-set="-which small_hexagonal_hexecontahedron"/>
-<option _label="Small Dodecicosidodecahedron" arg-set="-which small_dodecicosidodecahedron"/>
-<option _label="Small Dodecacronic Hexecontahedron" arg-set="-which small_dodecacronic_hexecontahedron"/>
-<option _label="Small Stellated Dodecahedron" arg-set="-which small_stellated_dodecahedron"/>
-<option _label="Great Dodecahedron" arg-set="-which great_dodecahedron"/>
-<option _label="Great Dodecadodecahedron" arg-set="-which great_dodecadodecahedron"/>
-<option _label="Medial Rhombic Triacontahedron" arg-set="-which medial_rhombic_triacontahedron"/>
-<option _label="Truncated Great Dodecahedron" arg-set="-which truncated_great_dodecahedron"/>
-<option _label="Small Stellapentakisdodecahedron" arg-set="-which small_stellapentakisdodecahedron"/>
+<option _label="Snub dodecahedron" arg-set="-which snub_dodecahedron"/>
+<option _label="Pentagonal hexecontahedron" arg-set="-which pentagonal_hexecontahedron"/>
+<option _label="Small ditrigonal icosidodecahedron" arg-set="-which small_ditrigonal_icosidodecahedron"/>
+<option _label="Small triambic icosahedron" arg-set="-which small_triambic_icosahedron"/>
+<option _label="Small icosicosidodecahedron" arg-set="-which small_icosicosidodecahedron"/>
+<option _label="Small icosacronic hexecontahedron" arg-set="-which small_icosacronic_hexecontahedron"/>
+<option _label="Small snub icosicosidodecahedron" arg-set="-which small_snub_icosicosidodecahedron"/>
+<option _label="Small hexagonal hexecontahedron" arg-set="-which small_hexagonal_hexecontahedron"/>
+<option _label="Small dodecicosidodecahedron" arg-set="-which small_dodecicosidodecahedron"/>
+<option _label="Small dodecacronic hexecontahedron" arg-set="-which small_dodecacronic_hexecontahedron"/>
+<option _label="Small stellated dodecahedron" arg-set="-which small_stellated_dodecahedron"/>
+<option _label="Great dodecahedron" arg-set="-which great_dodecahedron"/>
+<option _label="Great dodecadodecahedron" arg-set="-which great_dodecadodecahedron"/>
+<option _label="Medial rhombic triacontahedron" arg-set="-which medial_rhombic_triacontahedron"/>
+<option _label="Truncated great dodecahedron" arg-set="-which truncated_great_dodecahedron"/>
+<option _label="Small stellapentakisdodecahedron" arg-set="-which small_stellapentakisdodecahedron"/>
 <option _label="Rhombidodecadodecahedron" arg-set="-which rhombidodecadodecahedron"/>
-<option _label="Medial Deltoidal Hexecontahedron" arg-set="-which medial_deltoidal_hexecontahedron"/>
-<option _label="Small Rhombidodecahedron" arg-set="-which small_rhombidodecahedron"/>
-<option _label="Small Rhombidodecacron" arg-set="-which small_rhombidodecacron"/>
-<option _label="Snub Dodecadodecahedron" arg-set="-which snub_dodecadodecahedron"/>
-<option _label="Medial Pentagonal Hexecontahedron" arg-set="-which medial_pentagonal_hexecontahedron"/>
-<option _label="Ditrigonal Dodecadodecahedron" arg-set="-which ditrigonal_dodecadodecahedron"/>
-<option _label="Medial Triambic Icosahedron" arg-set="-which medial_triambic_icosahedron"/>
-<option _label="Great Ditrigonal Dodecicosidodecahedron" arg-set="-which great_ditrigonal_dodecicosidodecahedron"/>
-<option _label="Great Ditrigonal Dodecacronic Hexecontahedron" arg-set="-which great_ditrigonal_dodecacronic_hexecontahedron"/>
-<option _label="Small Ditrigonal Dodecicosidodecahedron" arg-set="-which small_ditrigonal_dodecicosidodecahedron"/>
-<option _label="Small Ditrigonal Dodecacronic Hexecontahedron" arg-set="-which small_ditrigonal_dodecacronic_hexecontahedron"/>
+<option _label="Medial deltoidal hexecontahedron" arg-set="-which medial_deltoidal_hexecontahedron"/>
+<option _label="Small rhombidodecahedron" arg-set="-which small_rhombidodecahedron"/>
+<option _label="Small rhombidodecacron" arg-set="-which small_rhombidodecacron"/>
+<option _label="Snub dodecadodecahedron" arg-set="-which snub_dodecadodecahedron"/>
+<option _label="Medial pentagonal hexecontahedron" arg-set="-which medial_pentagonal_hexecontahedron"/>
+<option _label="Ditrigonal dodecadodecahedron" arg-set="-which ditrigonal_dodecadodecahedron"/>
+<option _label="Medial triambic icosahedron" arg-set="-which medial_triambic_icosahedron"/>
+<option _label="Great ditrigonal dodecicosidodecahedron" arg-set="-which great_ditrigonal_dodecicosidodecahedron"/>
+<option _label="Great ditrigonal dodecacronic hexecontahedron" arg-set="-which great_ditrigonal_dodecacronic_hexecontahedron"/>
+<option _label="Small ditrigonal dodecicosidodecahedron" arg-set="-which small_ditrigonal_dodecicosidodecahedron"/>
+<option _label="Small ditrigonal dodecacronic hexecontahedron" arg-set="-which small_ditrigonal_dodecacronic_hexecontahedron"/>
 <option _label="Icosidodecadodecahedron" arg-set="-which icosidodecadodecahedron"/>
-<option _label="Medial Icosacronic Hexecontahedron" arg-set="-which medial_icosacronic_hexecontahedron"/>
-<option _label="Icositruncated Dodecadodecahedron" arg-set="-which icositruncated_dodecadodecahedron"/>
+<option _label="Medial icosacronic hexecontahedron" arg-set="-which medial_icosacronic_hexecontahedron"/>
+<option _label="Icositruncated dodecadodecahedron" arg-set="-which icositruncated_dodecadodecahedron"/>
 <option _label="Tridyakisicosahedron" arg-set="-which tridyakisicosahedron"/>
-<option _label="Snub Icosidodecadodecahedron" arg-set="-which snub_icosidodecadodecahedron"/>
-<option _label="Medial Hexagonal Hexecontahedron" arg-set="-which medial_hexagonal_hexecontahedron"/>
-<option _label="Great Ditrigonal Icosidodecahedron" arg-set="-which great_ditrigonal_icosidodecahedron"/>
-<option _label="Great Triambic Icosahedron" arg-set="-which great_triambic_icosahedron"/>
-<option _label="Great Icosicosidodecahedron" arg-set="-which great_icosicosidodecahedron"/>
-<option _label="Great Icosacronic Hexecontahedron" arg-set="-which great_icosacronic_hexecontahedron"/>
-<option _label="Small Icosihemidodecahedron" arg-set="-which small_icosihemidodecahedron"/>
-<option _label="Small Icosihemidodecacron" arg-set="-which small_icosihemidodecacron"/>
-<option _label="Small Dodecicosahedron" arg-set="-which small_dodecicosahedron"/>
-<option _label="Small Dodecicosacron" arg-set="-which small_dodecicosacron"/>
-<option _label="Small Dodecahemidodecahedron" arg-set="-which small_dodecahemidodecahedron"/>
-<option _label="Small Dodecahemidodecacron" arg-set="-which small_dodecahemidodecacron"/>
-<option _label="Great Stellated Dodecahedron" arg-set="-which great_stellated_dodecahedron"/>
-<option _label="Great Icosahedron" arg-set="-which great_icosahedron"/>
-<option _label="Great Icosidodecahedron" arg-set="-which great_icosidodecahedron"/>
-<option _label="Great Rhombic Triacontahedron" arg-set="-which great_rhombic_triacontahedron"/>
-<option _label="Great Truncated Icosahedron" arg-set="-which great_truncated_icosahedron"/>
-<option _label="Great Stellapentakisdodecahedron" arg-set="-which great_stellapentakisdodecahedron"/>
+<option _label="Snub icosidodecadodecahedron" arg-set="-which snub_icosidodecadodecahedron"/>
+<option _label="Medial hexagonal hexecontahedron" arg-set="-which medial_hexagonal_hexecontahedron"/>
+<option _label="Great ditrigonal icosidodecahedron" arg-set="-which great_ditrigonal_icosidodecahedron"/>
+<option _label="Great triambic icosahedron" arg-set="-which great_triambic_icosahedron"/>
+<option _label="Great icosicosidodecahedron" arg-set="-which great_icosicosidodecahedron"/>
+<option _label="Great icosacronic hexecontahedron" arg-set="-which great_icosacronic_hexecontahedron"/>
+<option _label="Small icosihemidodecahedron" arg-set="-which small_icosihemidodecahedron"/>
+<option _label="Small icosihemidodecacron" arg-set="-which small_icosihemidodecacron"/>
+<option _label="Small dodecicosahedron" arg-set="-which small_dodecicosahedron"/>
+<option _label="Small dodecicosacron" arg-set="-which small_dodecicosacron"/>
+<option _label="Small dodecahemidodecahedron" arg-set="-which small_dodecahemidodecahedron"/>
+<option _label="Small dodecahemidodecacron" arg-set="-which small_dodecahemidodecacron"/>
+<option _label="Great stellated dodecahedron" arg-set="-which great_stellated_dodecahedron"/>
+<option _label="Great icosahedron" arg-set="-which great_icosahedron"/>
+<option _label="Great icosidodecahedron" arg-set="-which great_icosidodecahedron"/>
+<option _label="Great rhombic triacontahedron" arg-set="-which great_rhombic_triacontahedron"/>
+<option _label="Great truncated icosahedron" arg-set="-which great_truncated_icosahedron"/>
+<option _label="Great stellapentakisdodecahedron" arg-set="-which great_stellapentakisdodecahedron"/>
 <option _label="Rhombicosahedron" arg-set="-which rhombicosahedron"/>
 <option _label="Rhombicosacron" arg-set="-which rhombicosacron"/>
-<option _label="Great Snub Icosidodecahedron" arg-set="-which great_snub_icosidodecahedron"/>
-<option _label="Great Pentagonal Hexecontahedron" arg-set="-which great_pentagonal_hexecontahedron"/>
-<option _label="Small Stellated Truncated Dodecahedron" arg-set="-which small_stellated_truncated_dodecahedron"/>
-<option _label="Great Pentakisdodekahedron" arg-set="-which great_pentakisdodekahedron"/>
-<option _label="Truncated Dodecadodecahedron" arg-set="-which truncated_dodecadodecahedron"/>
-<option _label="Medial Disdyakistriacontahedron" arg-set="-which medial_disdyakistriacontahedron"/>
-<option _label="Inverted Snub Dodecadodecahedron" arg-set="-which inverted_snub_dodecadodecahedron"/>
-<option _label="Medial Inverted Pentagonal Hexecontahedron" arg-set="-which medial_inverted_pentagonal_hexecontahedron"/>
-<option _label="Great Dodecicosidodecahedron" arg-set="-which great_dodecicosidodecahedron"/>
-<option _label="Great Dodecacronic Hexecontahedron" arg-set="-which great_dodecacronic_hexecontahedron"/>
-<option _label="Small Dodecahemicosahedron" arg-set="-which small_dodecahemicosahedron"/>
-<option _label="Small Dodecahemicosacron" arg-set="-which small_dodecahemicosacron"/>
-<option _label="Great Dodecicosahedron" arg-set="-which great_dodecicosahedron"/>
-<option _label="Great Dodecicosacron" arg-set="-which great_dodecicosacron"/>
-<option _label="Great Snub Dodecicosidodecahedron" arg-set="-which great_snub_dodecicosidodecahedron"/>
-<option _label="Great Hexagonal Hexecontahedron" arg-set="-which great_hexagonal_hexecontahedron"/>
-<option _label="Great Dodecahemicosahedron" arg-set="-which great_dodecahemicosahedron"/>
-<option _label="Great Dodecahemicosacron" arg-set="-which great_dodecahemicosacron"/>
-<option _label="Great Stellated Truncated Dodecahedron" arg-set="-which great_stellated_truncated_dodecahedron"/>
-<option _label="Great Triakisicosahedron" arg-set="-which great_triakisicosahedron"/>
-<option _label="Great Rhombicosidodecahedron" arg-set="-which great_rhombicosidodecahedron"/>
-<option _label="Great Deltoidal Hexecontahedron" arg-set="-which great_deltoidal_hexecontahedron"/>
-<option _label="Great Truncated Icosidodecahedron" arg-set="-which great_truncated_icosidodecahedron"/>
-<option _label="Great Disdyakistriacontahedron" arg-set="-which great_disdyakistriacontahedron"/>
-<option _label="Great Inverted Snub Icosidodecahedron" arg-set="-which great_inverted_snub_icosidodecahedron"/>
-<option _label="Great Inverted Pentagonal Hexecontahedron" arg-set="-which great_inverted_pentagonal_hexecontahedron"/>
-<option _label="Great Dodecahemidodecahedron" arg-set="-which great_dodecahemidodecahedron"/>
-<option _label="Great Dodecahemidodecacron" arg-set="-which great_dodecahemidodecacron"/>
-<option _label="Great Icosihemidodecahedron" arg-set="-which great_icosihemidodecahedron"/>
-<option _label="Great Icosihemidodecacron" arg-set="-which great_icosihemidodecacron"/>
-<option _label="Small Retrosnub Icosicosidodecahedron" arg-set="-which small_retrosnub_icosicosidodecahedron"/>
-<option _label="Small Hexagrammic Hexecontahedron" arg-set="-which small_hexagrammic_hexecontahedron"/>
-<option _label="Great Rhombidodecahedron" arg-set="-which great_rhombidodecahedron"/>
-<option _label="Great Rhombidodecacron" arg-set="-which great_rhombidodecacron"/>
-<option _label="Great Retrosnub Icosidodecahedron" arg-set="-which great_retrosnub_icosidodecahedron"/>
-<option _label="Great Pentagrammic Hexecontahedron" arg-set="-which great_pentagrammic_hexecontahedron"/>
-<option _label="Great Dirhombicosidodecahedron" arg-set="-which great_dirhombicosidodecahedron"/>
-<option _label="Great Dirhombicosidodecacron" arg-set="-which great_dirhombicosidodecacron"/>
+<option _label="Great snub icosidodecahedron" arg-set="-which great_snub_icosidodecahedron"/>
+<option _label="Great pentagonal hexecontahedron" arg-set="-which great_pentagonal_hexecontahedron"/>
+<option _label="Small stellated truncated dodecahedron" arg-set="-which small_stellated_truncated_dodecahedron"/>
+<option _label="Great pentakisdodekahedron" arg-set="-which great_pentakisdodekahedron"/>
+<option _label="Truncated dodecadodecahedron" arg-set="-which truncated_dodecadodecahedron"/>
+<option _label="Medial disdyakistriacontahedron" arg-set="-which medial_disdyakistriacontahedron"/>
+<option _label="Inverted snub dodecadodecahedron" arg-set="-which inverted_snub_dodecadodecahedron"/>
+<option _label="Medial inverted pentagonal hexecontahedron" arg-set="-which medial_inverted_pentagonal_hexecontahedron"/>
+<option _label="Great dodecicosidodecahedron" arg-set="-which great_dodecicosidodecahedron"/>
+<option _label="Great dodecacronic hexecontahedron" arg-set="-which great_dodecacronic_hexecontahedron"/>
+<option _label="Small dodecahemicosahedron" arg-set="-which small_dodecahemicosahedron"/>
+<option _label="Small dodecahemicosacron" arg-set="-which small_dodecahemicosacron"/>
+<option _label="Great dodecicosahedron" arg-set="-which great_dodecicosahedron"/>
+<option _label="Great dodecicosacron" arg-set="-which great_dodecicosacron"/>
+<option _label="Great snub dodecicosidodecahedron" arg-set="-which great_snub_dodecicosidodecahedron"/>
+<option _label="Great hexagonal hexecontahedron" arg-set="-which great_hexagonal_hexecontahedron"/>
+<option _label="Great dodecahemicosahedron" arg-set="-which great_dodecahemicosahedron"/>
+<option _label="Great dodecahemicosacron" arg-set="-which great_dodecahemicosacron"/>
+<option _label="Great stellated truncated dodecahedron" arg-set="-which great_stellated_truncated_dodecahedron"/>
+<option _label="Great triakisicosahedron" arg-set="-which great_triakisicosahedron"/>
+<option _label="Great rhombicosidodecahedron" arg-set="-which great_rhombicosidodecahedron"/>
+<option _label="Great deltoidal hexecontahedron" arg-set="-which great_deltoidal_hexecontahedron"/>
+<option _label="Great truncated icosidodecahedron" arg-set="-which great_truncated_icosidodecahedron"/>
+<option _label="Great disdyakistriacontahedron" arg-set="-which great_disdyakistriacontahedron"/>
+<option _label="Great inverted snub icosidodecahedron" arg-set="-which great_inverted_snub_icosidodecahedron"/>
+<option _label="Great inverted pentagonal hexecontahedron" arg-set="-which great_inverted_pentagonal_hexecontahedron"/>
+<option _label="Great dodecahemidodecahedron" arg-set="-which great_dodecahemidodecahedron"/>
+<option _label="Great dodecahemidodecacron" arg-set="-which great_dodecahemidodecacron"/>
+<option _label="Great icosihemidodecahedron" arg-set="-which great_icosihemidodecahedron"/>
+<option _label="Great icosihemidodecacron" arg-set="-which great_icosihemidodecacron"/>
+<option _label="Small retrosnub icosicosidodecahedron" arg-set="-which small_retrosnub_icosicosidodecahedron"/>
+<option _label="Small hexagrammic hexecontahedron" arg-set="-which small_hexagrammic_hexecontahedron"/>
+<option _label="Great rhombidodecahedron" arg-set="-which great_rhombidodecahedron"/>
+<option _label="Great rhombidodecacron" arg-set="-which great_rhombidodecacron"/>
+<option _label="Great retrosnub icosidodecahedron" arg-set="-which great_retrosnub_icosidodecahedron"/>
+<option _label="Great pentagrammic hexecontahedron" arg-set="-which great_pentagrammic_hexecontahedron"/>
+<option _label="Great dirhombicosidodecahedron" arg-set="-which great_dirhombicosidodecahedron"/>
+<option _label="Great dirhombicosidodecacron" arg-set="-which great_dirhombicosidodecacron"/>
+<option _label="Utah teapotahedron" arg-set="-which utah_teapotahedron"/>
   </select>
 
   <hgroup>
    <boolean id="wire"    _label="Wireframe" arg-set="-wireframe"/>
   </hgroup>
   <hgroup>
-   <boolean id="titles"  _label="Show Description" arg-unset="-no-titles"/>
-   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+   <boolean id="titles"  _label="Show description" arg-unset="-no-titles"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
   <_description>
@@ -188,6 +189,8 @@ A new solid is chosen every few seconds.  There are 75 uniform
 polyhedra, plus 5 infinite sets of prisms and antiprisms;
 including their duals brings the total to 160.
 
+http://en.wikipedia.org/wiki/Uniform_polyhedra
+
 Written by Dr. Zvi Har'El and Jamie Zawinski; 2004.
   </_description>
 </screensaver>
index b9f2a63918e82e85b3a0f5ea5ef275df00193ea6..6601a218df9606762c9dba707d38baa3a2cd6700 100644 (file)
@@ -4,25 +4,29 @@
 
   <command arg="-root"/>
 
-  <boolean id="identical" _label="Identical Pieces" arg-set="-identical"/>
+  <boolean id="identical" _label="Identical pieces" arg-set="-identical"/>
+
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Duration" _low-label="Short" _high-label="Long"
           low="500" high="5000" default="2000"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="10000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="2" high="255" default="64"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Repeatedly attempts to completely fill a rectangle with
 irregularly-shaped puzzle pieces.
 
+http://en.wikipedia.org/wiki/Polyomino
+
 Written by Stephen Montgomery-Smith; 2002.
   </_description>
 </screensaver>
index da7d038cb11d2d1d352eefc3ede0cd605eed6686..258a81d0a74436e8f8b82c190e9b528dc76be5f3 100644 (file)
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="polytopes" _label="Regular 4D Polytopes">
-
-  <command arg="-root"/>
-
-  <hgroup>
-    <select id="display-mode">
-      <option id="wire" _label="Wireframe Mesh"   arg-set="-mode 0"/>
-      <option id="surface" _label="Solid Surface" arg-set="-mode 1"/>
-      <option id="transparent" _label="Transparent Surface"/>
-    </select>
-
-    <select id="polytope">
-      <option id="random" _label="Random Object"/>
-      <option id="cell-5" _label="5-Cell (Hyper-Tetrahedron)"
-              arg-set="-polytope 0"/>
-      <option id="cell-8" _label="8-Cell (Hypercube / Tesseract)"
-              arg-set="-polytope 1"/>
-      <option id="cell-16" _label="16-Cell (Hyper-Octahedron)"
-              arg-set="-polytope 2"/>
-      <option id="cell-24" _label="24-Cell"
-              arg-set="-polytope 3"/>
-      <option id="cell-120" _label="120-Cell"
-              arg-set="-polytope 4"/>
-      <option id="cell-600" _label="600-Cell"
-              arg-set="-polytope 5"/>
-    </select>
-  </hgroup>
-
-  <hgroup>
-    <select id="colors">
-      <option id="single" _label="Single Color"
-              arg-set="-single-color"/>
-      <option id="depth" _label="Colors By 4D Depth"/>
-    </select>
-
-    <select id="projection3d">
-      <option id="perspective-3d" _label="Perspective 3d"/>
-      <option id="orthographic-3d" _label="Orthographic 3d"
-              arg-set="-orthographic-3d"/>
-    </select>
-
-    <select id="projection4d">
-      <option id="perspective-4d" _label="Perspective 4d"/>
-      <option id="orthographic-4d" _label="Orthographic 4d"
-              arg-set="-orthographic-4d"/>
-    </select>
-  </hgroup>
-
-  <hgroup>
-
-    <vgroup>
-
-      <number id="speed-wx" type="slider" arg="-speed-wx %"
-              _label="WX Rotation Speed"
-              _low-label="-4.0" _high-label="4.0"
-              low="-4.0" high="4.0" default="1.1"/>
-
-      <number id="speed-wy" type="slider" arg="-speed-wy %"
-              _label="WY Rotation Speed"
-              _low-label="-4.0" _high-label="4.0"
-              low="-4.0" high="4.0" default="1.3"/>
-
-      <number id="speed-wz" type="slider" arg="-speed-wz %"
-              _label="WZ Rotation Speed"
-              _low-label="-4.0" _high-label="4.0"
-              low="-4.0" high="4.0" default="1.5"/>
-
-    </vgroup>
-
-    <vgroup>
-
-      <number id="speed-xy" type="slider" arg="-speed-xy %"
-              _label="XY Rotation Speed"
-              _low-label="-4.0" _high-label="4.0"
-              low="-4.0" high="4.0" default="1.7"/>
-    
-      <number id="speed-xz" type="slider" arg="-speed-xz %"
-              _label="XZ Rotation Speed"
-              _low-label="-4.0" _high-label="4.0"
-              low="-4.0" high="4.0" default="1.9"/>
-    
-      <number id="speed-yz" type="slider" arg="-speed-yz %"
-              _label="YZ Rotation Speed"
-              _low-label="-4.0" _high-label="4.0"
-              low="-4.0" high="4.0" default="2.1"/>
-    
-    </vgroup>
-
-  </hgroup>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Display Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="40000" default="25000"
-          convert="invert"/>
-
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-
-  <_description>
-
-This program shows one of the six regular 4D polytopes rotating in 4D.
+<screensaver name="polytopes" _label="Polytopes">
+
+ <command arg="-root"/>
+
+ <hgroup>
+  <select id="display-mode">
+   <option id="wire" _label="Wireframe mesh"   arg-set="-mode 0"/>
+   <option id="surface" _label="Solid surface" arg-set="-mode 1"/>
+   <option id="transparent" _label="Transparent surface"/>
+  </select>
+
+  <select id="polytope">
+   <option id="random" _label="Random object"/>
+   <option id="cell-5" _label="5-cell (hyper-tetrahedron)"
+           arg-set="-polytope 0"/>
+   <option id="cell-8" _label="8-cell (hypercube / tesseract)"
+           arg-set="-polytope 1"/>
+   <option id="cell-16" _label="16-cell (hyper-octahedron)"
+           arg-set="-polytope 2"/>
+   <option id="cell-24" _label="24-cell"
+           arg-set="-polytope 3"/>
+   <option id="cell-120" _label="120-cell"
+           arg-set="-polytope 4"/>
+   <option id="cell-600" _label="600-cell"
+           arg-set="-polytope 5"/>
+  </select>
+</hgroup>
+
+<hgroup>
+  <select id="colors">
+   <option id="single" _label="Single color"
+           arg-set="-single-color"/>
+   <option id="depth" _label="Colors By 4D Depth"/>
+  </select>
+
+  <select id="projection3d">
+   <option id="perspective-3d" _label="Perspective 3D"/>
+   <option id="orthographic-3d" _label="Orthographic 3D"
+           arg-set="-orthographic-3d"/>
+  </select>
+
+  <select id="projection4d">
+   <option id="perspective-4d" _label="Perspective 4D"/>
+   <option id="orthographic-4d" _label="Orthographic 4D"
+           arg-set="-orthographic-4d"/>
+  </select>
+</hgroup>
+
+<hgroup>
+  <vgroup>
+   <number id="speed-wx" type="slider" arg="-speed-wx %"
+           _label="WX rotation speed"
+           _low-label="-4.0" _high-label="4.0"
+           low="-4.0" high="4.0" default="1.1"/>
+
+   <number id="speed-wy" type="slider" arg="-speed-wy %"
+           _label="WY rotation speed"
+           _low-label="-4.0" _high-label="4.0"
+           low="-4.0" high="4.0" default="1.3"/>
+
+   <number id="speed-wz" type="slider" arg="-speed-wz %"
+           _label="WZ rotation speed"
+           _low-label="-4.0" _high-label="4.0"
+           low="-4.0" high="4.0" default="1.5"/>
+
+   <number id="delay" type="slider" arg="-delay %"
+           _label="Frame rate" _low-label="Low" _high-label="High"
+           low="0" high="100000" default="25000"
+           convert="invert"/>
+  </vgroup>
+  <vgroup>
+   <number id="speed-xy" type="slider" arg="-speed-xy %"
+           _label="XY rotation speed"
+           _low-label="-4.0" _high-label="4.0"
+           low="-4.0" high="4.0" default="1.7"/>
+
+   <number id="speed-xz" type="slider" arg="-speed-xz %"
+           _label="XZ rotation speed"
+           _low-label="-4.0" _high-label="4.0"
+           low="-4.0" high="4.0" default="1.9"/>
+
+   <number id="speed-yz" type="slider" arg="-speed-yz %"
+           _label="YZ rotation speed"
+           _low-label="-4.0" _high-label="4.0"
+           low="-4.0" high="4.0" default="2.1"/>
+
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </vgroup>
+ </hgroup>
+
+ <_description>
+
+This shows one of the six regular 4D polytopes rotating in 4D.
 Inspired by H.S.M Coxeter's book "Regular Polytopes", 3rd Edition,
 Dover Publications, Inc., 1973, and Thomas Banchoff's book "Beyond the
 Third Dimension: Geometry, Computer Graphics, and Higher Dimensions",
 Scientific American Library, 1990.
 
+http://en.wikipedia.org/wiki/Hypercube
+http://en.wikipedia.org/wiki/Regular_polytope
+
 Written by Carsten Steger; 2003.
   </_description>
 </screensaver>
index ea19c23d6c3809b84539c8f1a5ff5b6a9b2a76d8..15b1876b874d31eb6bd4a08e156bdc5784c3c0f5 100644 (file)
@@ -5,7 +5,7 @@
   <command arg="-root"/>
 
   <number id="speed" type="slider" arg="-speed %"
-          _label="Game Speed" _low-label="Slow" _high-label="Fast"
+          _label="Game speed" _low-label="Slow" _high-label="Fast"
           low="1" high="20" default="6"/>
 
  <number id="noise" type="slider" arg="-noise %"
 
   <boolean id="clock" _label="Clock mode" arg-set="-clock"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-The pong program simulates an ancient Pong home video game, as well as
+This simulates the 1971 Pong home video game, as well as
 various artifacts from displaying it on a color TV set.
 
 In clock mode, the score keeps track of the current time.
 
+http://en.wikipedia.org/wiki/Pong
+
 Written by Jeremy English and Trevor Blackwell; 2003.
   </_description>
 </screensaver>
index cea3d7b9d8d0cb73eded135e95297ccf03ad6b46..514a1808cd2ca56f2a2cf736d00cac02dbeec244 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="30000" default="25000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="25000"
           convert="invert"/>
 
   <number id="subdivision" type="spinbutton" arg="-subdivision %"
           low="0" high="5" default="1"/>
 
   <number id="ncolors" type="spinbutton" arg="-ncolors %"
-            _label="Number of Colors" low="1" high="512" default="128"/>
-
-  <string id="fg" _label="Start color" arg="-fg %"/>
-  <string id="bg" _label="End color" arg="-bg %"/>
+            _label="Number of colors" low="1" high="512" default="128"/>
+
+  <hgroup>
+   <select id="bg">
+    <option id="lred"     _label="Light red"     arg-set="-bg #FF0000"/>
+    <option id="lyellow"  _label="Light yellow"  arg-set="-bg #FFFF00"/>
+    <option id="lgreen"   _label="Light green"   arg-set="-bg #00FF00"/>
+    <option id="lcyan"    _label="Light cyan"    arg-set="-bg #00FFFF"/>
+    <option id="lblue"    _label="Light blue"/>
+    <option id="lmagenta" _label="Light magenta" arg-set="-bg #FF00FF"/>
+   </select>
+
+   <select id="fg">
+    <option id="dred"     _label="Dark red"     arg-set="-fg #8C0000"/>
+    <option id="dyellow"  _label="Dark yellow"  arg-set="-fg #8C8C00"/>
+    <option id="dgreen"   _label="Dark green"   arg-set="-fg #008C00"/>
+    <option id="dcyan"    _label="Dark cyan"    arg-set="-fg #008C8C"/>
+    <option id="dblue"    _label="Dark blue"/>
+    <option id="dmagenta" _label="Dark magenta" arg-set="-fg #8C008C"/>
+   </select>
+  </hgroup>
 
   <boolean id="twitch" _label="Twitch" arg-set="-twitch"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This draws a pop-art-ish looking grid of pulsing colors.
 
index 4e52c753b4939fb3d228c719dca3aaaccaf0005b..adc4aded23bd53a687b528b45036209edac2728d 100644 (file)
@@ -5,18 +5,20 @@
   <command arg="-root"/>
 
   <number id="speed" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
-  <boolean id="eye" _label="Draw Eye" arg-unset="-no-eye"/>
+  <boolean id="eye" _label="Draw eye" arg-unset="-no-eye"/>
 
   <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
-The providence code displays an eye, shrouded in glory, set upon the
-base of a pyramid.
+"A pyramid unfinished. In the zenith an eye in a triangle, surrounded
+by a glory, proper."
+
+http://en.wikipedia.org/wiki/Eye_of_Providence
 
 Written by Blair Tennessy; 2004.
   </_description>
index 0a8c99ea9130e1cb64b546b103706ff07920f158..d5d44fcd2157f3dbc5515232f1fae7a670121404 100644 (file)
@@ -5,30 +5,30 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
    <number id="quads" type="spinbutton" arg="-quads %"
-            _label="Quad Count" low="1" high="50" default="5"/>
+            _label="Quad count" low="1" high="50" default="5"/>
 
   <hgroup>
    <vgroup>
-     <boolean id="light"     _label="Enable Lighting" arg-set="-light"/>
-     <boolean id="fog"       _label="Enable Fog" arg-set="-fog"/>
-     <boolean id="texture"   _label="Enable Texturing" arg-set="-texture"/>
-     <boolean id="mipmap" _label="Enable Texture Mipmaps" arg-set="-mipmap"/>
+     <boolean id="light"     _label="Enable lighting" arg-set="-light"/>
+     <boolean id="fog"       _label="Enable fog" arg-set="-fog"/>
+     <boolean id="texture"   _label="Enable texturing" arg-set="-texture"/>
+     <boolean id="mipmap" _label="Enable texture mipmaps" arg-set="-mipmap"/>
    </vgroup>
    <vgroup>
-     <boolean id="no-blend"  _label="Enable Blending" arg-unset="-no-blend"/>
-     <boolean id="antialias" _label="Anti-alias Lines" arg-set="-antialias"/>
-     <boolean id="texture_quality" _label="Enable Texture Filtering"
+     <boolean id="no-blend"  _label="Enable blending" arg-unset="-no-blend"/>
+     <boolean id="antialias" _label="Anti-alias lines" arg-set="-antialias"/>
+     <boolean id="texture_quality" _label="Enable texture filtering"
                               arg-set="-texture_quality"/>
-     <boolean id="do_depth" _label="Enable Depth Buffer" arg-set="-do_depth"/>
+     <boolean id="do_depth" _label="Enable depth buffer" arg-set="-do_depth"/>
    </vgroup>
  </hgroup>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws some intersecting planes, making use of alpha blending, fog,
index c9bee43fa70094a1e252b4f4bdf800ff86f7a7b4..96983a4363f605bcf81cb70eec9db89618e93361 100644 (file)
@@ -5,25 +5,28 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="5000"
+          _label="Frame rate" _low-label="Slow" _high-label="Fast"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="count" type="slider" arg="-count %"
-          _label="Particle Density" _low-label="Sparse" _high-label="Dense"
+          _label="Particle density" _low-label="Sparse" _high-label="Dense"
           low="10" high="2000" default="600"/>
 
   <number id="launch" type="slider" arg="-frequency %"
-          _label="Launch Frequency" _low-label="Seldom" _high-label="Often"
+          _label="Launch frequency" _low-label="Seldom" _high-label="Often"
           low="1" high="100" default="30"
           convert="invert"/>
 
   <number id="scatter" type="slider" arg="-scatter %"
-          _label="Explosive Yield" _low-label="Low" _high-label="High"
+          _label="Explosive yield" _low-label="Low" _high-label="High"
           low="1" high="400" default="100"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-Pyro draws exploding fireworks.  Blah blah blah.
+Exploding fireworks.  See also the "Fireworkx", "Eruption", and
+"XFlame" screen savers.
 
 Written by Jamie Zawinski; 1992.
   </_description>
index deb483db504bbb29961e66e5e77cefac12387ff9..4a3ad75c4d32e3383d9fe8523092228059661909 100644 (file)
@@ -4,58 +4,57 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="0" high="20" default="1"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
-
-  <number id="segments" type="slider" arg="-segments %"
-          _label="Segments" _low-label="Few" _high-label="Many"
-          low="10" high="500" default="50"/>
-
-  <number id="spread" type="slider" arg="-spread %"
-          _label="Density" _low-label="Sparse" _high-label="Dense"
-          low="1" high="50" default="8"
-          convert="invert"/>
-
-  <number id="size" type="spinbutton" arg="-size %"
-           _label="Max Size" low="0" high="1000" default="0"/>
-
-  <number id="poly" type="spinbutton" arg="-poly %"
-           _label="Corners" low="2" high="100" default="2"/>
-
-  <select id="motion">
-    <option id="linear" _label="Linear Motion" arg-set="-linear"/>
-    <option id="random" _label="Random Motion"/>
-  </select>
-
   <hgroup>
-    <boolean id="transparent" _label="Transparent" arg-set="-transparent"/>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="segments" type="slider" arg="-segments %"
+            _label="Segments" _low-label="Few" _high-label="Many"
+            low="10" high="500" default="250"/>
+
+    <number id="spread" type="slider" arg="-spread %"
+            _label="Density" _low-label="Sparse" _high-label="Dense"
+            low="1" high="50" default="8"
+            convert="invert"/>
+
+    <number id="color_contrast" type="slider" arg="-color-shift %"
+            _label="Color contrast" _low-label="Low" _high-label="High"
+             low="0" high="25" default="3"/>
+   </vgroup>
+   <vgroup>
+    <select id="fill">
+      <option id="lines" _label="Line segments" arg-set="-hollow"/>
+      <option id="solid" _label="Solid objects"/>
+    </select>
+
+    <select id="motion">
+      <option id="linear" _label="Linear motion"/>
+      <option id="random" _label="Random motion" arg-set="-random"/>
+    </select>
 
     <select id="color-mode">
-      <option id="additive" _label="Additive Colors"/>
-      <option id="subtractive" _label="Subtractive Colors"
+      <option id="additive" _label="Additive colors"/>
+      <option id="subtractive" _label="Subtractive colors"
               arg-set="-subtractive"/>
     </select>
-  </hgroup>
 
-  <hgroup>
-  <number id="color_contrast" type="slider" arg="-color-shift %"
-          _label="Color Contrast" _low-label="Low" _high-label="High"
-           low="0" high="25" default="3"/>
+    <number id="count" type="spinbutton" arg="-count %"
+            _label="Count" low="0" high="20" default="4"/>
+    <number id="size" type="spinbutton" arg="-size %"
+             _label="Max size" low="200" high="1000" default="200"/>
+    <number id="poly" type="spinbutton" arg="-poly %"
+             _label="Poly corners" low="2" high="100" default="2"/>
+   </vgroup>
   </hgroup>
 
-  <select id="fill">
-    <option id="lines" _label="Line Segments"/>
-    <option id="solid" _label="Solid Objects" arg-set="-solid"/>
-  </select>
-
   <hgroup>
-    <boolean id="xor" _label="XOR" arg-set="-xor"/>
-    <boolean id="gravity" _label="Gravity" arg-set="-gravity"/>
+   <boolean id="transparent" _label="Transparent" arg-unset="-non-transparent"/>
+   <boolean id="xor" _label="XOR" arg-set="-xor"/>
+   <boolean id="gravity" _label="Gravity" arg-set="-gravity"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
   <_description>
@@ -64,6 +63,8 @@ variations on this basic motion pattern to produce all sorts of
 different presentations: line segments, filled polygons, and
 overlapping translucent areas.
 
+http://en.wikipedia.org/wiki/Qix
+
 Written by Jamie Zawinski; 1992.
   </_description>
 </screensaver>
index 3796855009446e7d6e9ab35d2acdc1e372ec8fef..8aad759af47b352e628aefc8b7ac2b2bac2480a0 100644 (file)
@@ -5,19 +5,21 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <hgroup>
    <boolean id="wire"    _label="Wireframe" arg-set="-wireframe"/>
-   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
   <_description>
-Solves the N-Queens problem (where, in this program, N is between 5 and
-10 queens.)  The problem is: how may one place N queens on an NxN
-chessboard such that no queen can attack a sister?
+Solves the N-Queens problem (where N is between 5 and 10 queens).  The
+problem is: how may one place N queens on an NxN chessboard such that
+no queen can attack a sister?  See also the "Endgame" screen saver.
+
+http://en.wikipedia.org/wiki/Eight_queens_puzzle
 
 Written by Blair Tennessy; 2002.
   </_description>
index 01888121899420492c3e5a76848f5df0cdae1e6a..be8e3de3ec58cc4541b9ccf08fe627ee2601e317 100644 (file)
@@ -1,55 +1,63 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="rd-bomb" _label="RD-Bomb">
+<screensaver name="rd-bomb" _label="RDbomb">
 
   <command arg="-root"/>
 
-  <number id="size" type="slider" arg="-size %"
-           _label="Fill Screen" _low-label="1%" _high-label="100%"
-           low="0.01" high="1.0" default="1.0"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="250000" default="20000"
-          convert="invert"/>
-
-  <number id="speed" type="slider" arg="-speed %"
-           _label="Wander Speed" _low-label="Slow" _high-label="Fast"
-           low="0.0" high="10.0" default="0.0"/>
-
   <hgroup>
-   <number id="width" type="spinbutton" arg="-width %"
-           _label="Tile Size" low="0" high="500" default="0"/>
-   <number id="pixheight" type="spinbutton" arg="-height %"
-           _label="x"         low="0" high="500" default="0"/>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Slow" _high-label="Fast"
+            low="0" high="250000" default="30000"
+            convert="invert"/>
+
+    <number id="speed" type="slider" arg="-speed %"
+             _label="Wander speed" _low-label="Slow" _high-label="Fast"
+             low="0.0" high="10.0" default="0.0"/>
+
+    <number id="size" type="slider" arg="-size %"
+             _label="Fill screen" _low-label="1%" _high-label="100%"
+             low="0.01" high="1.0" default="1.0"/>
+   </vgroup>
+   <vgroup>
+    <number id="epoch" type="slider" arg="-epoch %"
+             _label="Epoch" _low-label="Small" _high-label="Large"
+             low="1000" high="300000" default="40000"/>
+
+    <number id="ncolors" type="slider" arg="-ncolors %"
+              _label="Number of colors" _low-label="Two" _high-label="Many"
+              low="1" high="255" default="255"/>
+   </vgroup>
   </hgroup>
 
   <hgroup>
-   <number id="reaction" type="spinbutton" arg="-reaction %"
-           _label="Reaction/Diffusion" low="-1" high="2" default="-1"/>
-   <number id="diffusion" type="spinbutton" arg="-diffusion %"
-           _label="/" low="-1" high="2" default="-1"/>
-  </hgroup>
+   <vgroup>
+    <number id="width" type="spinbutton" arg="-width %"
+            _label="X tile size" low="0" high="500" default="0"/>
+    <number id="pixheight" type="spinbutton" arg="-height %"
+            _label="Y tile size" low="0" high="500" default="0"/>
+   </vgroup>
+   <vgroup>
+    <number id="reaction" type="spinbutton" arg="-reaction %"
+            _label="Reaction" low="-1" high="2" default="-1"/>
+    <number id="diffusion" type="spinbutton" arg="-diffusion %"
+            _label="Diffusion" low="-1" high="2" default="-1"/>
+
+    <!-- #### default is wrong -->
+    <number id="radius" type="spinbutton" arg="-radius %"
+           _label="Seed radius" low="-1" high="60" default="-1"/>
+
+   </vgroup>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
-  <!-- #### default is wrong -->
-  <number id="radius" type="spinbutton" arg="-radius %"
-          _label="Seed Radius" low="1" high="60" default="15"/>
-
-  <number id="epoch" type="slider" arg="-epoch %"
-           _label="Epoch" _low-label="Small" _high-label="Large"
-           low="1000" high="300000" default="40000"/>
-
-  <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="300" default="255"/>
-
-<!--  <boolean id="shm" _label="Use Shared Memory" arg-unset="-no-shm"/> -->
+  </hgroup>
 
   <_description>
 Draws a grid of growing square-like shapes that, once they overtake
 each other, react in unpredictable ways.  "RD" stands for
 reaction-diffusion.
 
-Written by Scott Draves.
+Written by Scott Draves; 1997.
   </_description>
 </screensaver>
index 01888121899420492c3e5a76848f5df0cdae1e6a..be8e3de3ec58cc4541b9ccf08fe627ee2601e317 100644 (file)
@@ -1,55 +1,63 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="rd-bomb" _label="RD-Bomb">
+<screensaver name="rd-bomb" _label="RDbomb">
 
   <command arg="-root"/>
 
-  <number id="size" type="slider" arg="-size %"
-           _label="Fill Screen" _low-label="1%" _high-label="100%"
-           low="0.01" high="1.0" default="1.0"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="250000" default="20000"
-          convert="invert"/>
-
-  <number id="speed" type="slider" arg="-speed %"
-           _label="Wander Speed" _low-label="Slow" _high-label="Fast"
-           low="0.0" high="10.0" default="0.0"/>
-
   <hgroup>
-   <number id="width" type="spinbutton" arg="-width %"
-           _label="Tile Size" low="0" high="500" default="0"/>
-   <number id="pixheight" type="spinbutton" arg="-height %"
-           _label="x"         low="0" high="500" default="0"/>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Slow" _high-label="Fast"
+            low="0" high="250000" default="30000"
+            convert="invert"/>
+
+    <number id="speed" type="slider" arg="-speed %"
+             _label="Wander speed" _low-label="Slow" _high-label="Fast"
+             low="0.0" high="10.0" default="0.0"/>
+
+    <number id="size" type="slider" arg="-size %"
+             _label="Fill screen" _low-label="1%" _high-label="100%"
+             low="0.01" high="1.0" default="1.0"/>
+   </vgroup>
+   <vgroup>
+    <number id="epoch" type="slider" arg="-epoch %"
+             _label="Epoch" _low-label="Small" _high-label="Large"
+             low="1000" high="300000" default="40000"/>
+
+    <number id="ncolors" type="slider" arg="-ncolors %"
+              _label="Number of colors" _low-label="Two" _high-label="Many"
+              low="1" high="255" default="255"/>
+   </vgroup>
   </hgroup>
 
   <hgroup>
-   <number id="reaction" type="spinbutton" arg="-reaction %"
-           _label="Reaction/Diffusion" low="-1" high="2" default="-1"/>
-   <number id="diffusion" type="spinbutton" arg="-diffusion %"
-           _label="/" low="-1" high="2" default="-1"/>
-  </hgroup>
+   <vgroup>
+    <number id="width" type="spinbutton" arg="-width %"
+            _label="X tile size" low="0" high="500" default="0"/>
+    <number id="pixheight" type="spinbutton" arg="-height %"
+            _label="Y tile size" low="0" high="500" default="0"/>
+   </vgroup>
+   <vgroup>
+    <number id="reaction" type="spinbutton" arg="-reaction %"
+            _label="Reaction" low="-1" high="2" default="-1"/>
+    <number id="diffusion" type="spinbutton" arg="-diffusion %"
+            _label="Diffusion" low="-1" high="2" default="-1"/>
+
+    <!-- #### default is wrong -->
+    <number id="radius" type="spinbutton" arg="-radius %"
+           _label="Seed radius" low="-1" high="60" default="-1"/>
+
+   </vgroup>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
-  <!-- #### default is wrong -->
-  <number id="radius" type="spinbutton" arg="-radius %"
-          _label="Seed Radius" low="1" high="60" default="15"/>
-
-  <number id="epoch" type="slider" arg="-epoch %"
-           _label="Epoch" _low-label="Small" _high-label="Large"
-           low="1000" high="300000" default="40000"/>
-
-  <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="300" default="255"/>
-
-<!--  <boolean id="shm" _label="Use Shared Memory" arg-unset="-no-shm"/> -->
+  </hgroup>
 
   <_description>
 Draws a grid of growing square-like shapes that, once they overtake
 each other, react in unpredictable ways.  "RD" stands for
 reaction-diffusion.
 
-Written by Scott Draves.
+Written by Scott Draves; 1997.
   </_description>
 </screensaver>
index 1f31af687111615c10f11ce3689d727f7b2c90e4..53e0e68f817ec5076ce5a4f7683f366f22bf7563 100644 (file)
@@ -4,48 +4,43 @@
 
   <command arg="-root"/>
 
-  <!-- #### -box [0] -->
-
-  <number id="delay" type="slider" arg="-delay %"
-          _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="50000"
-          convert="invert"/>
-
-  <number id="duration" type="slider" arg="-duration %"
-          _label="Duration" _low-label="10 seconds" _high-label="10 minutes"
-          low="10" high="600" default="120"/>
-
-  <number id="rate" type="slider" arg="-rate %"
-          _low-label="Drizzle" _high-label="Storm"
-          low="1" high="100" default="5"
-          convert="invert"/>
-
-  <number id="fluidity" type="slider" arg="-fluidity %"
-          _low-label="Small Drops" _high-label="Big Drops"
-          low="0" high="16" default="6"
-          convert="invert"/>
-
-  <number id="light" type="spinbutton" arg="-light %"
-          _label="Lighting Effect" low="0" high="8" default="0"/>
-
   <hgroup>
    <vgroup>
-    <boolean id="grab" _label="Grab Screen Image" arg-set="-water"/>
-    <boolean id="stir" _label="Moving Splashes" arg-set="-stir"/>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="50000"
+            convert="invert"/>
+
+    <number id="duration" type="slider" arg="-duration %"
+            _label="Duration" _low-label="10 seconds" _high-label="10 minutes"
+            low="10" high="600" default="120"/>
+
+    <number id="rate" type="slider" arg="-rate %"
+            _label="Drippiness" _low-label="Drizzle" _high-label="Storm"
+            low="1" high="100" default="5"
+            convert="invert"/>
+
+    <number id="fluidity" type="slider" arg="-fluidity %"
+            _label="Fluidity" _low-label="Small drops" _high-label="Big drops"
+            low="0" high="16" default="6"
+            convert="invert"/>
    </vgroup>
    <vgroup>
-    <boolean id="oily" _label="Psychedelic Colors" arg-set="-oily"/>
-    <boolean id="gray" _label="Grayscale" arg-set="-grayscale"/>
-   </vgroup>
-  </hgroup>
 
-  <number id="ncolors" type="slider" arg="-colors %"
-            _low-label="Colors    Two" _high-label="Many"
-            low="1" high="255" default="200"/>
+    <hgroup>
+     <boolean id="stir" _label="Moving splashes" arg-set="-stir"/>
+     <boolean id="oily" _label="Psychedelic colors" arg-set="-oily"/>
+     <boolean id="gray" _label="Grayscale" arg-set="-grayscale"/>
+    </hgroup>
+
+    <xscreensaver-image />
 
-<!--  <boolean id="shm" _label="Use Shared Memory" arg-unset="-no-shm"/> -->
+    <number id="light" type="spinbutton" arg="-light %"
+            _label="Magic lighting effect" low="0" high="8" default="4"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
-  <xscreensaver-image />
+   </vgroup>
+  </hgroup>
 
   <_description>
 This draws rippling interference patterns like splashing water.
index dd78444212340c763e2cf1a6a243201a2e25283d..3a253ae663fb3a139422e6497a87cf340ed8e8cc 100644 (file)
@@ -4,14 +4,15 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="0" high="200" default="100"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="50000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="50000"
           convert="invert"/>
 
+  <number id="count" type="slider" arg="-count %"
+          _label="Count" _low-label="Few" _high-label="Many"
+           low="0" high="200" default="100"/>
+
   <number id="speed" type="slider" arg="-speed %"
           _label="Velocity" _low-label="Slow" _high-label="Fast"
           low="1" high="100" default="100"/>
   <hgroup>
     <boolean id="rotate" _label="Rotation" arg-unset="-no-rotate"/>
     <boolean id="steer" _label="Steering" arg-unset="-no-move"/>
+    <boolean id="3d" _label="Do Red/Blue 3D separation" arg-set="-3d"/>
   </hgroup>
-  <boolean id="3d" _label="Do Red/Blue 3D separation" arg-set="-3d"/>
 
   <number id="ncolors" type="slider" arg="-colors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="5"/>
 
   <!-- #### -delta3d [1.5] -->
   <!-- #### -left3d [Blue] -->
   <!-- #### -right3d [Red] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This draws an animation of flight through an asteroid field, with
 changes in rotation and direction.
index f7bae3503164f4af36155baae9ba3d8ea8e8c96d..ad7051a8f05893952f88c32a19918aa461c211fe 100644 (file)
           _label="Offset" _low-label="Small" _high-label="Large"
           low="0" high="50" default="7"/>
 
-  <boolean id="xsymmetry" _label="With X Symmetry" arg-unset="-no-xsymmetry"/>
-  <boolean id="ysymmetry" _label="With Y Symmetry" arg-set="-ysymmetry"/>
+  <boolean id="xsymmetry" _label="With X symmetry" arg-unset="-no-xsymmetry"/>
+  <boolean id="ysymmetry" _label="With Y symmetry" arg-set="-ysymmetry"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Duration" _low-label="1 Second" _high-label="1 Minute"
+          _label="Linger" _low-label="1 second" _high-label="1 minute"
           low="1" high="60" default="5"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This generates random inkblot patterns via a reflected random walk.
 Any deep-seated neurotic tendencies which this program reveals
 are your own problem.
 
+http://en.wikipedia.org/wiki/Rorschach_inkblot_test
+http://en.wikipedia.org/wiki/Random_walk
+
 Written by Jamie Zawinski; 1992.
   </_description>
 </screensaver>
index fd7dddb2613c3d8ba4845bf636cebc8b085aaa02..35f7e17114e012cd3f0e489c0ca2d0d13eecae22 100644 (file)
@@ -4,25 +4,27 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="0" high="20" default="4"/>
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Length" _low-label="Short" _high-label="Long"
           low="2" high="100" default="20"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="200"/>
 
+  <number id="count" type="spinbutton" arg="-count %"
+          _label="Count" low="0" high="20" default="4"/>
+
   <number id="size" type="spinbutton" arg="-size %"
            _label="Size" low="-50" high="50" default="-6"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws a line segment moving along a complex spiraling curve.
 
index eebb1bc1c693212900049e0e2090adc7f132d0af..8669669910695807d0bfe40ab281a40874b5df8a 100644 (file)
@@ -5,28 +5,30 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Duration" _low-label="0" _high-label="60"
-          low="0" high="60" default="10"/>
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000" convert="invert"/>
 
   <number id="duration" type="slider" arg="-duration %"
           _label="Duration" _low-label="10 seconds" _high-label="10 minutes"
           low="10" high="600" default="120"/>
 
   <number id="n" type="spinbutton" arg="-n %"
-          _label="Rectangle Count" low="1" high="20" default="2"/>
+          _label="Rectangle count" low="1" high="20" default="2"/>
 
   <select id="mode">
-   <option id="stationary" _label="Stationary Rectangles"/>
-   <option id="move"       _label="Wandering Rectangles" arg-set="-mode move"/>
-   <option id="sweep"      _label="Sweeping Arcs"        arg-set="-mode sweep"/>
+   <option id="stationary" _label="Stationary rectangles"/>
+   <option id="move"       _label="Wandering rectangles" arg-set="-mode move"/>
+   <option id="sweep"      _label="Sweeping arcs"        arg-set="-mode sweep"/>
   </select>
 
   <boolean id="anim" _label="Animate" arg-unset="-no-anim"/>
 
-<!--  <boolean id="shm" _label="Use Shared Memory" arg-unset="-no-shm"/> -->
+<!--  <boolean id="shm" _label="Use shared memory" arg-unset="-no-shm"/> -->
 
   <xscreensaver-image />
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Creates a collage of rotated and scaled portions of the screen. 
 
index b8ade47aff6533ee47e1b40e0ce5c0f4c539f7dc..85b6c9b5d7406ebb02c4288b4b20da8a06922b1f 100644 (file)
@@ -4,6 +4,11 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="40000"
+          convert="invert"/>
+
   <number id="count" type="spinbutton" arg="-count %"
           _label="Count" low="-100" high="100" default="-30"/>
 
            _label="Timeout" _low-label="Small" _high-label="Large"
           low="0" high="60" default="5"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="40000"
-          convert="invert"/>
-
   <number id="size" type="spinbutton" arg="-size %"
            _label="Size" low="-20" high="20" default="-6"/>
 
-  <boolean id="shuffle" _label="Hide Shuffling" arg-set="-hideshuffling"/>
+  <boolean id="shuffle" _label="Hide shuffling" arg-set="-hideshuffling"/>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a Rubik's Cube that rotates in three dimensions and repeatedly
-shuffles and solves itself.  
+shuffles and solves itself.  See also the "GLSnake" and "Cube21"
+screen savers.
+
+http://en.wikipedia.org/wiki/Rubik%27s_Cube
 
 Written by Marcelo Vianna; 1997.
   </_description>
index 06c912da214818036562008b82ba35f831be57b4..546524fc1dd6fafe9514689405fc4fb54c4677cf 100644 (file)
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="sballs" _label="Sballs">
+<screensaver name="sballs" _label="SBalls">
 
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="60000" default="30000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
           convert="invert"/>
 
   <select id="object">
@@ -23,7 +23,7 @@
 
   <boolean id="tex"     _label="Textured"  arg-unset="-no-texture"/>
   <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws an animation of textured balls spinning like crazy.
index c012065f67b27de3a178588160fe2f2ef4b59792..9ed9ec11fbb56fe170e9757ff40e86efacc0f6b5 100644 (file)
@@ -4,28 +4,30 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="20000" default="10000"
+          convert="invert"/>
+
   <!-- #### -degrees [0] -->
   <!-- #### -color [random] -->
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
   <number id="count" type="slider" arg="-count %"
           _label="Count" _low-label="One" _high-label="Many"
           low="1" high="20" default="4"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="5000"
-          convert="invert"/>
-
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Duration" _low-label="Short" _high-label="Long"
           low="0" high="100" default="10"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-This draws smoothly-shaded oscillating oval patterns, that look
+This draws smoothly-shaded oscillating oval patterns that look
 something like vapor trails or neon tubes.
 
 Written by Shane Smit; 1999.
index f87ce28fdefeb6bc25fd17a316e3b35b48cbf03e..2d2431805e2bbd6620fb8f6ecfaa690e187910b8 100644 (file)
@@ -4,25 +4,30 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="10" high="10000" default="2000"/>
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="1000000" default="400000"
+          convert="invert"/>
+
+  <number id="count" type="slider" arg="-count %"
+          _label="Points" _low-label="Few" _high-label="Many"
+           low="10" high="10000" default="2000"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Timeout" _low-label="Small" _high-label="Large"
           low="0" high="1000" default="100"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="600000" default="400000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This draws the two-dimensional variant of the recursive Sierpinski
-triangle fractal.
+triangle fractal.  See also the "Sierpinski3D" screen saver.
+
+http://en.wikipedia.org/wiki/Sierpinski_triangle
 
 Written by Desmond Daignault; 1997.
   </_description>
index e4d5f7c4fd6176691add38a7ce75363f62a2482c..70ae366f06c9d81ce4eaf4b0c6269014403cb0ec 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <number id="descent" type="slider" arg="-speed %"
           convert="invert"/>
 
   <number id="depth" type="spinbutton" arg="-depth %"
-          _label="Max Depth" low="1" high="6" default="5"/>
+          _label="Max depth" low="1" high="6" default="5"/>
 
   <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
-This draws the three-dimensional variant of the recursive Sierpinski
-triangle fractal, using GL.
+This draws the Sierpinski tetrahedron fractal, the three-dimensional
+variant of the recursive Sierpinski triangle.
+
+http://en.wikipedia.org/wiki/Sierpinski_triangle#Analogs_in_higher_dimension
 
 Written by Tim Robinson and Jamie Zawinski; 1999.
   </_description>
index e6fd19f6c855244e5d4812d5634524371c1c9678..d26c1cda5c033ef11612738c9a2368f61c7fcf9b 100644 (file)
@@ -4,59 +4,64 @@
 
   <command arg="-root"/>
 
+ <hgroup>
+  <vgroup>
   <number id="count" type="slider" arg="-count %"
           _label="Tentacles" _low-label="1" _high-label="20"
           low="1" high="20" default="9"/>
 
- <hgroup>
-  <vgroup>
-   <number id="delay" type="slider" arg="-delay %"
-           _label="Frame Rate" _low-label="Slow" _high-label="Fast"
-           low="0" high="100000" default="30000"
-           convert="invert"/>
-
    <number id="length" type="slider" arg="-length %"
            _label="Length" _low-label="Short" _high-label="Long"
            low="1.0" high="20.0" default="9.0"/>
 
+   <number id="thickness" type="slider" arg="-thickness %"
+           _label="Thickness" _low-label="Thin" _high-label="Thick"
+           low="0.1" high="5.0" default="1.0"/>
+
+   <number id="flexibility" type="slider" arg="-flexibility %"
+           _label="Flexibility" _low-label="Low" _high-label="High"
+           low="0.1" high="1.0" default="0.35"/>
+
    <number id="wiggliness" type="slider" arg="-wiggliness %"
            _label="Wiggliness" _low-label="Low" _high-label="High"
            low="0.1" high="1.0" default="0.35"/>
 
-    <hgroup>
-     <number id="slices" type="spinbutton" arg="-slices %"
-             _label="Slices" low="1" high="50" default="32"/>
-     <number id="segments" type="spinbutton" arg="-segments %"
-             _label="Segments" low="1" high="50" default="32"/>
-    </hgroup>
-
   </vgroup>
 
   <vgroup>
+   <number id="delay" type="slider" arg="-delay %"
+           _label="Frame rate" _low-label="Slow" _high-label="Fast"
+           low="0" high="100000" default="30000"
+           convert="invert"/>
+
    <number id="speed" type="slider" arg="-speed %"
            _label="Speed" _low-label="Slow" _high-label="Fast"
-           low="0.1" high="20.0" default="1.0"/>
+           low="0.1" high="8.0" default="1.0"/>
+
+   <number id="slices" type="slider" arg="-slices %"
+           _label="X resolution" _low-label="Low" _high-label="High"
+           low="3" high="50" default="16"/>
+   <number id="segments" type="slider" arg="-segments %"
+           _label="Y resolution" _low-label="Low" _high-label="High"
+           low="2" high="50" default="24"/>
+
+   <hgroup>
+    <boolean id="skin" _label="Draw skin"           arg-unset="-no-texture"/>
+    <boolean id="cel"  _label="Cartoony"           arg-unset="-cel"/>
+    <boolean id="intersect" _label="Tentacles can intersect" arg-set="-intersect"/>
+   </hgroup>
+   <hgroup>
+    <boolean id="smooth" _label="Smooth"           arg-unset="-no-smooth"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </hgroup>
 
-   <number id="thickness" type="slider" arg="-thickness %"
-           _label="Thickness" _low-label="Thin" _high-label="Thick"
-           low="0.1" high="5.0" default="1.0"/>
-
-   <number id="flexibility" type="slider" arg="-flexibility %"
-           _label="Flexibility" _low-label="Low" _high-label="High"
-           low="0.1" high="1.0" default="0.35"/>
-
-    <hgroup>
-     <boolean id="smooth" _label="Smooth" arg-unset="-no-smooth"/>
-     <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-    </hgroup>
-
-   </vgroup>
-  </hgroup>
+  </vgroup>
+ </hgroup>
 
 
 <_description>
+ <_description>
 There is a tentacled abomination in the sky.   From above you it devours.
 
 Written by Jamie Zawinski; 2008.
 </_description>
+ </_description>
 </screensaver>
index 6cd3ccfe17caa80fb33610f598281fed7a3f0a9e..648ea36f582d004126ff203ba89df03bfa8b9064 100644 (file)
@@ -4,38 +4,47 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="50000"
-          convert="invert"/>
+  <hgroup>
+   <vgroup>
+   <number id="delay" type="slider" arg="-delay %"
+           _label="Frame rate" _low-label="Low" _high-label="High"
+           low="0" high="100000" default="50000"
+           convert="invert"/>
 
- <number id="delay2" type="slider" arg="-delay2 %"
-         _label="Pause" _low-label="Short" _high-label="Long"
-         low="0" high="2000000" default="1000000"/>
  <number id="delay2" type="slider" arg="-delay2 %"
+          _label="Pause" _low-label="Short" _high-label="Long"
+          low="0" high="2000000" default="1000000"/>
 
-  <number id="duration" type="slider" arg="-duration %"
-          _label="Duration" _low-label="10 seconds" _high-label="10 minutes"
-          low="10" high="600" default="120"/>
+   <number id="duration" type="slider" arg="-duration %"
+           _label="Duration" _low-label="10 seconds" _high-label="10 minutes"
+           low="10" high="600" default="120"/>
 
-  <number id="increment" type="slider" arg="-increment %"
-          _label="Slide Speed" _low-label="Slow" _high-label="Fast"
-          low="1" high="30" default="10"/>
+   </vgroup>
+   <vgroup>
+   <number id="increment" type="slider" arg="-increment %"
+           _label="Slide speed" _low-label="Slow" _high-label="Fast"
+           low="1" high="30" default="10"/>
 
- <number id="grid-size" type="slider" arg="-grid-size %"
-         _label="Cell Size" _low-label="Small" _high-label="Large" 
-         low="12" high="500" default="70"/>
  <number id="grid-size" type="slider" arg="-grid-size %"
+          _label="Cell size" _low-label="Small" _high-label="Large" 
+          low="12" high="500" default="70"/>
 
- <number id="ibw" type="spinbutton" arg="-ibw %"
-         _label="Gutter Size" low="0" high="50" default="4"/>
+   <number id="ibw" type="spinbutton" arg="-ibw %"
+          _label="Gutter size" low="0" high="50" default="4"/>
+
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
+   </vgroup>
+  </hgroup>
 
   <xscreensaver-image />
 
   <_description>
-This takes an image, divides it into a grid, and then randomly shuffles
-the squares around as if it was one of those annoying "16-puzzle"
-games, where there is a grid of squares, one of which is missing.
-I hate trying to solve those puzzles, but watching one permute itself
-is more amusing.
+This takes an image, divides it into a grid, and then randomly
+shuffles the squares around as if it was one of those "fifteen-puzzle"
+games where there is a grid of squares, one of which is missing.
+
+http://en.wikipedia.org/wiki/Fifteen_puzzle
 
 Written by Jamie Zawinski; 1994.
   </_description>
index f03492cd26f7fc2c2609b4977cb1d8400ae4a4b7..4eb704f2f00b3dd2b4a2dfc30e6e1f5dd1fa951f 100644 (file)
@@ -4,26 +4,35 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="0" high="100" default="35"/>
-
-  <number id="cycles" type="slider" arg="-cycles %"
-           _label="Timeout" _low-label="Small" _high-label="Large"
-          low="0" high="100" default="50"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="50000"
-          convert="invert"/>
-
-  <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="200"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="50000"
+            convert="invert"/>
+
+    <number id="count" type="slider" arg="-count %"
+            _label="Count" _low-label="Few" _high-label="Many"
+             low="0" high="100" default="35"/>
+   </vgroup>
+
+   <vgroup>
+    <number id="cycles" type="slider" arg="-cycles %"
+             _label="Timeout" _low-label="Small" _high-label="Large"
+            low="0" high="100" default="50"/>
+
+    <number id="ncolors" type="slider" arg="-ncolors %"
+              _label="Number of colors" _low-label="Two" _high-label="Many"
+              low="1" high="255" default="200"/>
+   </vgroup>
+  </hgroup>
 
   <xscreensaver-image />
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-This program throws some random bits on the screen, then sucks them
+This throws some random bits on the screen, then sucks them
 through a jet engine and spews them out the other side.  To avoid
 turning the image completely to mush, every now and then it will it
 interject some splashes of color into the scene, or go into a spin
index f1ca76993a3b354a8d024b53274cf36087ad6aa5..8a3265df04bb2a78f919c4d212f690336f2856c0 100644 (file)
@@ -4,38 +4,44 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+        _label="Frame rate" _low-label="Low" _high-label="High"
+        low="0" high="1000000" default="100000"
+        convert="invert"/>
+
   <select id="ping">
-   <option id="none" _label="Ping mode..."/>
    <option id="24" _label="Ping subnet/24 (254 hosts)" arg-set="-ping subnet/24"/>
    <option id="25" _label="Ping subnet/25 (126 hosts)" arg-set="-ping subnet/25"/>
    <option id="26" _label="Ping subnet/26 (62 hosts)"  arg-set="-ping subnet/26"/>
    <option id="27" _label="Ping subnet/27 (31 hosts)"  arg-set="-ping subnet/27"/>
-   <option id="28" _label="Ping subnet/28 (14 hosts)"  arg-set="-ping subnet/28"/>
+   <option id="28" _label="Ping subnet/28 (14 hosts)"/>
    <option id="29" _label="Ping subnet/29 (6 hosts)"   arg-set="-ping subnet/29"/>
    <option id="30" _label="Ping subnet/30 (2 hosts)"   arg-set="-ping subnet/30"/>
    <option id="ssh" _label="Ping known SSH hosts"      arg-set="-ping /etc/hosts,$HOME/.ssh/known_hosts,$HOME/.ssh/known_hosts2"/>
   </select>
 
   <hgroup>
+   <string id="aname" _label="Simulation team A name" arg="-team-a-name %"/>
     <number id="acount" type="spinbutton" arg="-team-a-count %"
-            _label="Simulation Team Members"
-            low="1" high="100" default="4"/>
-    <number id="bcount" type="spinbutton" arg="-team-b-count %"
-            _label="vs."
+            _label="A count"
             low="1" high="100" default="4"/>
   </hgroup>
 
-  <string id="aname" _label="Team A Name" arg="-team-a-name %"/>
-  <string id="bname" _label="Team B Name" arg="-team-b-name %"/>
-
-  <boolean id="dns"   _label="Resolve Host Names" arg-unset="-no-dns"/>
-  <boolean id="times" _label="Show Ping Times"    arg-unset="-no-times"/>
+  <hgroup>
+   <string id="bname" _label="Simulation team B name" arg="-team-b-name %"/>
+   <number id="bcount" type="spinbutton" arg="-team-b-count %"
+           _label="B count"
+           low="1" high="100" default="4"/>
+  </hgroup>
 
-  <!-- #### -ping-timeout [3000] -->
-  <!-- #### -ttl [90] -->
+  <hgroup>
+   <boolean id="dns"   _label="Resolve host names" arg-unset="-no-dns"/>
+   <boolean id="times" _label="Show ping times"    arg-unset="-no-times"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </hgroup>
 
   <_description>
-This program draws a sonar screen that pings (get it?) the hosts on
+This draws a sonar screen that pings (get it?) the hosts on
 your local network, and plots their distance (response time) from you.
 The three rings represent ping times of approximately 2.5, 70 and 2,000
 milliseconds respectively.
@@ -44,6 +50,8 @@ Alternately, it can run a simulation that doesn't involve hosts.
 
 (If pinging doesn't work, you may need to make the executable be setuid.)
 
+http://en.wikipedia.org/wiki/Ping#History
+
 Written by Stephen Martin and Jamie Zawinski; 1998.
   </_description>
 </screensaver>
index a3f03fd2852d3a09d3ddd8dcb6baecbb25108469..5da9e14efc2875c09ff822b972fe221038542b0f 100644 (file)
@@ -4,32 +4,41 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="30000"
-          convert="invert"/>
-
-  <select id="mode">
-    <option id="speedmine" _label="Tunnel"/>
-    <option id="speedworm" _label="Worm" arg-set="-worm"/>
-  </select>
-
-  <number id="velocity" type="slider" arg="-maxspeed %"
-          _label="Max Velocity" _low-label="Slow" _high-label="Fast"
-          low="1" high="1000" default="700"/>
-
-  <number id="thrust" type="slider" arg="-thrust %"
-          _label="Thrust" _low-label="Slow" _high-label="Fast"
-          low="0.0" high="4.0" default="1.0"/>
-
-  <number id="gravity" type="slider" arg="-gravity %"
-          _label="Gravity" _low-label="Low" _high-label="High"
-          low="0.0" high="25.0" default="9.8"/>
-
-  <boolean id="terrain" _label="Rocky Walls" arg-unset="-no-terrain"/>
-  <boolean id="bump"    _label="Allow Wall Collisions" arg-unset="-no-bumps"/>
-  <boolean id="bonus"   _label="Present Bonuses" arg-unset="-no-bonuses"/>
-  <boolean id="xhair"   _label="Display Crosshair" arg-unset="-no-crosshair"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="30000"
+            convert="invert"/>
+
+    <number id="velocity" type="slider" arg="-maxspeed %"
+            _label="Max velocity" _low-label="Slow" _high-label="Fast"
+            low="1" high="1000" default="700"/>
+
+    <number id="thrust" type="slider" arg="-thrust %"
+            _label="Thrust" _low-label="Slow" _high-label="Fast"
+            low="0.0" high="4.0" default="1.0"/>
+
+    <number id="gravity" type="slider" arg="-gravity %"
+            _label="Gravity" _low-label="Low" _high-label="High"
+            low="0.0" high="25.0" default="9.8"/>
+   </vgroup>
+   <vgroup>
+
+    <select id="mode">
+      <option id="speedmine" _label="Tunnel"/>
+      <option id="speedworm" _label="Worm" arg-set="-worm"/>
+    </select>
+
+    <boolean id="terrain" _label="Rocky walls" arg-unset="-no-terrain"/>
+    <boolean id="bump"    _label="Allow wall collisions" arg-unset="-no-bumps"/>
+    <boolean id="bonus"   _label="Present bonuses" arg-unset="-no-bonuses"/>
+    <boolean id="xhair"   _label="Display crosshair" arg-unset="-no-crosshair"/>
+    <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
+
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+  </hgroup>
 
   <!-- #### -vertigo [1.0] -->
   <!-- #### -darkground [#101010] -->
@@ -41,8 +50,6 @@
   <!-- #### -no-widening -->
   <!-- #### -psychedelic -->
 
-  <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-
   <_description>
 Simulates speeding down a rocky mineshaft, or a funky dancing worm.
 
index 033b1cb694adf778fd8b3d466ee74eb7a46ca74d..bc02b2936f4e1e7aaa45e45b098de1cc049f36f3 100644 (file)
@@ -5,14 +5,16 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="1000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws shaded spheres in multiple colors.
 
diff --git a/hacks/config/sphereeversion.xml b/hacks/config/sphereeversion.xml
deleted file mode 100644 (file)
index 6e52751..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<screensaver name="sphereEversion" _label="SphereEversion">
-
-  <command arg="--root"/>
-
-  <_description>
-SphereEversion draws an animation of a sphere being turned inside out.
-A sphere can be turned inside out, without any tears, sharp creases or
-discontinuities, if the surface of the sphere is allowed to intersect
-itself.  This program animates what is known as the Thurston Eversion.
-This program is not included with the XScreenSaver package, but if you
-don't have it already, you can find it at
-&lt;http://www.dgp.utoronto.ca/~mjmcguff/eversion/&gt;.
-
-Written by Nathaniel Thurston and Michael McGuffin; 2001.
-  </_description>
-</screensaver>
index f51db09fd34c9c7a1ef5a5b8e1c470b611a4cb1a..6346d465cca121e1c2017d0b228d8ce960ad7c73 100644 (file)
@@ -4,38 +4,44 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="30000"
-          convert="invert"/>
-
-  <number id="duration" type="slider" arg="-duration %"
-          _label="Duration" _low-label="Short" _high-label="Long"
-          low="5" high="1000" default="100"/>
-
-  <number id="resolution" type="slider" arg="-resolution %"
-          _label="Resolution" _low-label="Low" _high-label="High"
-          low="5" high="100" default="64"/>
-
-  <boolean id="wander" _label="Wander" arg-set="-wander"/>
-
-  <select id="rotation">
-    <option id="no"  _label="Don't Rotate"               arg-set="-spin 0"/>
-    <option id="x"   _label="Rotate around X axis"       arg-set="-spin X"/>
-    <option id="y"   _label="Rotate around Y axis"       arg-set="-spin Y"/>
-    <option id="z"   _label="Rotate around Z axis"       arg-set="-spin Z"/>
-    <option id="xy"  _label="Rotate around X and Y axes" arg-set="-spin XY"/>
-    <option id="xz"  _label="Rotate around X and Z axes" arg-set="-spin XZ"/>
-    <option id="yz"  _label="Rotate around Y and Z axes" arg-set="-spin YZ"/>
-    <option id="xyz" _label="Rotate around all three axes"/>
-  </select>
-
-  <boolean id="smooth" _label="Smoothed Lines"  arg-unset="-no-smooth"/>
-  <boolean id="grid" _label="Draw Grid"         arg-unset="-no-grid"/>
-  <boolean id="bbox" _label="Draw Bounding Box" arg-set="-bbox"/>
-
-  <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="30000"
+            convert="invert"/>
+
+    <number id="duration" type="slider" arg="-duration %"
+            _label="Duration" _low-label="Short" _high-label="Long"
+            low="5" high="1000" default="100"/>
+
+    <number id="resolution" type="slider" arg="-resolution %"
+            _label="Resolution" _low-label="Low" _high-label="High"
+            low="5" high="100" default="64"/>
+
+   </vgroup>
+   <vgroup>
+    <boolean id="wander" _label="Wander" arg-set="-wander"/>
+
+    <select id="rotation">
+      <option id="no"  _label="Don't rotate"               arg-set="-spin 0"/>
+      <option id="x"   _label="Rotate around X axis"       arg-set="-spin X"/>
+      <option id="y"   _label="Rotate around Y axis"       arg-set="-spin Y"/>
+      <option id="z"   _label="Rotate around Z axis"       arg-set="-spin Z"/>
+      <option id="xy"  _label="Rotate around X and Y axes" arg-set="-spin XY"/>
+      <option id="xz"  _label="Rotate around X and Z axes" arg-set="-spin XZ"/>
+      <option id="yz"  _label="Rotate around Y and Z axes" arg-set="-spin YZ"/>
+      <option id="xyz" _label="Rotate around all three axes"/>
+    </select>
+
+    <boolean id="smooth" _label="Smoothed lines"  arg-unset="-no-smooth"/>
+    <boolean id="grid" _label="Draw grid"         arg-unset="-no-grid"/>
+    <boolean id="bbox" _label="Draw bounding box" arg-set="-bbox"/>
+
+    <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+  </vgroup>
+  </hgroup>
 
   <_description>
 These closed objects are commonly called spherical harmonics,
@@ -43,6 +49,8 @@ although they are only remotely related to the mathematical
 definition found in the solution to certain wave functions, most
 notably the eigenfunctions of angular momentum operators.
 
+http://en.wikipedia.org/wiki/Spherical_harmonics#Visualization_of_the_spherical_harmonics
+
 Written by Paul Bourke and Jamie Zawinski; 2002.
   </_description>
 </screensaver>
index dfb09238fa0467bcd4a312ca44121a4be0fbfc8d..f9378f95a6c177ed9ffa62061ad46b54a4600d6c 100644 (file)
@@ -4,22 +4,25 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="0" high="100" default="40"/>
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="50000"
+          convert="invert"/>
+
+  <number id="count" type="slider" arg="-count %"
+          _label="Count" _low-label="Few" _high-label="Many"
+           low="0" high="100" default="40"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Cycles" _low-label="Low" _high-label="High"
           low="10" high="800" default="350"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="50000"
-          convert="invert"/>
-
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Moving circular moire patterns.
 
index 349c01de96e2b449b4f511f406201c25fe1f333f..e77480bd883d738c234372e9219251669dff2d35 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="duration" type="slider" arg="-duration %"
           low="10" high="600" default="120"/>
 
   <number id="radius" type="slider" arg="-radius %"
-          _label="Spotlight Size" _low-label="Small" _high-label="Large"
+          _label="Spotlight size" _low-label="Small" _high-label="Large"
           low="5" high="350" default="125"/>
 
   <xscreensaver-image />
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws a spotlight scanning across a black screen, illuminating the
 underlying desktop (or a picture) when it passes.
index 2e4c92fdbf1a8f5771b4a6590e3b004c0e131bc8..b70490182858c1f695ae150bcac3f83147398c84 100644 (file)
@@ -4,23 +4,28 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
+          convert="invert"/>
+
   <number id="count" type="slider" arg="-count %"
            _label="Sproingies" _low-label="One" _high-label="Lots"
           low="1" high="30" default="8"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="40000" default="30000"
-          convert="invert"/>
-
   <hgroup>
-   <boolean id="nofall" _label="Fall Off Edge" arg-set="-fall"/>
+   <boolean id="nofall" _label="Fall off edge" arg-set="-fall"/>
    <boolean id="wire" _label="Wireframe" arg-set="-wireframe"/>
-   <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
   <_description>
-Q-Bert meets Marble Madness!
+Slinky-like creatures walk down an infinite staircase and 
+occasionally explode!
+
+http://en.wikipedia.org/wiki/Slinky
+http://en.wikipedia.org/wiki/Q%2Abert
+http://en.wikipedia.org/wiki/Marble_Madness
 
 Written by Ed Mackey; 1997.
   </_description>
index add0420dc1f760d244df459850ed10f3db2a2b70..b302dadae9899a66c1414c56ac3f2706f18786cf 100644 (file)
@@ -4,32 +4,40 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Seeds" low="0" high="200" default="0"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="1000"
-          convert="invert"/>
-
-  <number id="disorder" type="slider" arg="-disorder %"
-          _label="Randomness" _low-label="Low" _high-label="High"
-          low="0.0" high="0.5" default="0.005"/>
-
-  <number id="handedness" type="slider" arg="-handedness %"
-          _label="Handedness" _low-label="Left" _high-label="Right"
-          low="0.0" high="1.0" default="0.5"/>
-
-  <number id="fill" type="slider" arg="-fill %"
-           _label="Density" _low-label="Sparse" _high-label="Dense"
-          low="0" high="100" default="75"/>
-
-  <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="100"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="disorder" type="slider" arg="-disorder %"
+            _label="Randomness" _low-label="Low" _high-label="High"
+            low="0.0" high="0.5" default="0.005"/>
+
+    <number id="count" type="spinbutton" arg="-count %"
+            _label="Seeds" low="0" high="200" default="0"/>
+
+   </vgroup>
+   <vgroup>
+    <number id="handedness" type="slider" arg="-handedness %"
+            _label="Handedness" _low-label="Left" _high-label="Right"
+            low="0.0" high="1.0" default="0.5"/>
+
+    <number id="fill" type="slider" arg="-fill %"
+             _label="Density" _low-label="Sparse" _high-label="Dense"
+            low="0" high="100" default="75"/>
+
+    <number id="ncolors" type="slider" arg="-ncolors %"
+              _label="Number of colors" _low-label="Two" _high-label="Many"
+              low="1" high="255" default="100"/>
+   </vgroup>
+  </hgroup>
 
   <!-- #### -cycle -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws a set of interacting, square-spiral-producing automata.  The
 spirals grow outward until they hit something, then they go around it.
index 40ffb628eea84444683534f0d79baa753a1a7a2b..97583e471f10abea28d3e839ef145a930b2ea968 100644 (file)
@@ -5,15 +5,17 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="20000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Escher's infinite staircase.
 
+http://en.wikipedia.org/wiki/Maurits_Cornelis_Escher
+
 Written by Marcelo Vianna; 1998.
   </_description>
 </screensaver>
index 530e4f13700637dd2b53794e5d5195f59cd94205..a98943f6097226ad1688a17a161d7e4728c77232 100644 (file)
@@ -4,28 +4,31 @@
 
   <command arg="-root"/>
 
+  <select id="mode">
+    <option id="random" _label="Random"/>
+    <option id="zoom"   _label="Color gradients" arg-set="-mode zoom"/>
+    <option id="blob"   _label="Pulsating blob"  arg-set="-mode blob"/>
+  </select>
+
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
-  <number id="duration" type="spinbutton" arg="-duration %"
-          _label="Duration" low="1" high="60" default="30"/>
+  <number id="duration" type="slider" arg="-duration %"
+          _label="Duration" _low-label="1 second" _high-label="30 seconds"
+          low="1" high="60" default="30"/>
 
   <number id="thickness" type="slider" arg="-thickness %"
           _label="Lines" _low-label="Thin" _high-label="Thick"
           low="0" high="150" default="0"/>
 
-  <select id="mode">
-    <option id="random" _label="Random"/>
-    <option id="zoom"   _label="Color Gradients" arg-set="-mode zoom"/>
-    <option id="blob"   _label="Pulsating Blob"  arg-set="-mode blob"/>
-  </select>
-
   <number id="ncolors" type="slider" arg="-colors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="200"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This generates a sequence of undulating, throbbing, star-like
 patterns which pulsate, rotate, and turn inside out.  Another display
index bd5407c907075bc8a36a14206341c786300e7d68..c32a07252a36e5155b888118de39f82c92baaad1 100644 (file)
@@ -7,53 +7,53 @@
   <hgroup>
    <vgroup>
     <number id="delay" type="slider" arg="-delay %"
-            _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-            low="0" high="80000" default="40000"
+            _low-label="  Frame rate      Low" _high-label="High"
+            low="0" high="100000" default="40000"
             convert="invert"/>
     <number id="steps" type="slider" arg="-steps %"
-            _label="Scroll Speed" _low-label="Slow" _high-label="Fast"
+            _low-label="Scroll speed     Slow" _high-label="Fast"
             low="1" high="100" default="35"
             convert="invert"/>
     <number id="spin" type="slider" arg="-spin %"
-            _label="Star Rotation Speed" _low-label="Slow" _high-label="Fast"
+            _low-label=" Stars speed     Slow" _high-label="Fast"
             low="0.0" high="0.2" default="0.03"/>
-    <number id="lines" type="spinbutton" arg="-lines %"
-             _label="Text Lines" low="4" high="1000" default="125"/>
+
+    <xscreensaver-text />
    </vgroup>
 
    <vgroup>
     <select id="align">
-      <option id="left"   _label="Flush Left Text"  arg-set="-alignment left"/>
-      <option id="center" _label="Centered Text"/>
-      <option id="right"  _label="Flush Right Text" arg-set="-alignment right"/>
+      <option id="left"   _label="Flush left text"  arg-set="-alignment left"/>
+      <option id="center" _label="Centered text"/>
+      <option id="right"  _label="Flush right text" arg-set="-alignment right"/>
     </select>
 
-    <boolean id="wrap"   _label="Wrap Long Lines" arg-unset="-no-wrap"/>
-   <boolean id="texture" _label="Texture-Mapped Font" arg-unset="-no-textures"/>
-    <boolean id="smooth" _label="Anti-aliased Lines" arg-unset="-no-smooth"/>
+    <boolean id="wrap"   _label="Wrap long lines" arg-unset="-no-wrap"/>
+   <boolean id="texture" _label="Texture-mapped font" arg-unset="-no-textures"/>
+    <boolean id="smooth" _label="Anti-aliased lines" arg-unset="-no-smooth"/>
     <hgroup>
-     <boolean id="thick"  _label="Thick Lines"        arg-unset="-no-thick"/>
-     <boolean id="fade"   _label="Fade Out"           arg-unset="-no-fade"/>
+     <boolean id="thick"  _label="Thick lines"        arg-unset="-no-thick"/>
+     <boolean id="fade"   _label="Fade out"           arg-unset="-no-fade"/>
     </hgroup>
-    <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-
-   </vgroup>
-  </hgroup>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
-  <hgroup>
+    <number id="lines" type="spinbutton" arg="-lines %"
+              _label="Text lines" low="4" high="1000" default="125"/>
     <number id="size" type="spinbutton" arg="-size %"
-             _label="Font Point Size" low="-1" high="10" default="-1"/>
+             _label="Font point size" low="-1" high="10" default="-1"/>
     <number id="columns" type="spinbutton" arg="-columns %"
-             _label="or, Text Columns" low="-1" high="200" default="-1"/>
-  </hgroup>
+             _label="or, Text columns" low="-1" high="200" default="-1"/>
 
-  <xscreensaver-text />
+   </vgroup>
+  </hgroup>
 
   <_description>
 Draws a stream of text slowly scrolling into the distance at an
 angle, over a star field, like at the beginning of the movie of the
 same name.  
 
+http://en.wikipedia.org/wiki/Star_Wars_opening_crawl
+
 Written by Jamie Zawinski and Claudio Matauoka; 2001.
   </_description>
 </screensaver>
index 394c079ec8d98e8ddf18d66e4ed688770586cf5d..321e76e6ce87b5f3fb848839ec5c34cdc258cab4 100644 (file)
@@ -4,12 +4,19 @@
 
   <command arg="-root"/>
 
-  <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
+
+  <boolean id="wire"    _label="Wireframe"         arg-set="-wireframe"/>
+  <boolean id="trans"   _label="Translucent"     arg-unset="-no-transparent"/>
+  <boolean id="showfps" _label="Show frame rate"   arg-set="-fps"/>
 
   <_description>
 Chains of colorful squares dance around each other in complex spiral
-patterns.  Inspired by SGI's `electropaint' screensaver.
+patterns.  Inspired by David Tristram's `electropaint' screen saver,
+originally written for SGI computers in the late 1980s or early 1990s.
 
 Written by Andrew Plotkin; 2001.
   </_description>
index 814746b5e7502ca024a621884501e56d5ae5d264..914d5f22c31c73344ba263123d4cccec7adfe76b 100644 (file)
@@ -5,17 +5,21 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="2000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="100"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-This draws strange attractors: it's a colorful,
-unpredictably-animating field of dots that swoops and twists around.
+This draws iterations to strange attractors: it's a colorful,
+unpredictably-animating swarm of dots that swoops and twists around.
+
+http://en.wikipedia.org/wiki/Attractor#Strange_attractor
 
 Written by Massimino Pascal; 1997.
   </_description>
index 5c4b725665fe30b94faf6d8df2c9714159048b47..7c9ac57addf0de621024a4ae59ee80462ab6d8b6 100644 (file)
@@ -4,29 +4,36 @@
 
   <command arg="-root"/>
 
-  <number id="init" type="spinbutton" arg="-initial-cracks %"
-          _label="Initial Cracks" low="3" high="15" default="3"/>
-
-  <number id="speed" type="slider" arg="-growth-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="30000" default="18000" convert="invert"/>
-
-  <number id="maxcyc" type="slider" arg="-max-cycles %"
-          _label="Duration"  _low-label="Short" _high-label="Long"
-          low="2000" high="25000" default="12000" />
-  
-  <number id="sandg" type="slider" arg="-sand-grains %"
-          _label="Sandgrains" _low-label="Few" _high-label="Lots"
-          low="16" high="128" default="64" />
-
-  <number id="curve" type="slider" arg="-circle-percent %"
-          _label="Circle Percentage" _low-label="0%" _high-label="100%"
-          low="0" high="100" default="33" />
-  
-  <boolean id="wire" _label="Wireframe only" arg-set="-wireframe" />
+  <hgroup>
+   <vgroup>
+    <number id="speed" type="slider" arg="-growth-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="18000" convert="invert"/>
+
+    <number id="maxcyc" type="slider" arg="-max-cycles %"
+            _label="Duration"  _low-label="Short" _high-label="Long"
+            low="2000" high="25000" default="10000" />
+
+    <number id="sandg" type="slider" arg="-sand-grains %"
+            _label="Sand grains" _low-label="Few" _high-label="Lots"
+            low="16" high="128" default="64" />
+
+    <number id="curve" type="slider" arg="-circle-percent %"
+            _label="Circle percentage" _low-label="0%" _high-label="100%"
+            low="0" high="100" default="33" />
+   </vgroup>
+   <vgroup>
+    <number id="init" type="spinbutton" arg="-initial-cracks %"
+            _label="Initial cracks" low="3" high="15" default="3"/>
+
+    <boolean id="wire" _label="Wireframe only" arg-set="-wireframe" />
+
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
+  </hgroup>
 
   <_description>
-Lines like crystals grow on a computational substrate.  A simple 
+Crystalline lines grow on a computational substrate.  A simple
 perpendicular growth rule creates intricate city-like structures.
 
 Written by J. Tarbell and Mike Kershaw; 2004.
index cda1df1634748e60e7498fc5baa422f9ef7e2cd6..a629b1c31a4c7b3ec491d69f21819f224bc804ed 100644 (file)
@@ -5,12 +5,12 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="40000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="40000"
           convert="invert"/>
 
   <number id="spinspeed" type="slider" arg="-spinspeed %"
-          _label="Spin Speed" _low-label="Slow" _high-label="Fast"
+          _label="Spin speed" _low-label="Slow" _high-label="Fast"
           low="0.1" high="15.0" default="5.0"/>
 
   <number id="count" type="slider" arg="-count %"
@@ -22,7 +22,7 @@
           low="0" high="100" default="40"/>
 
   <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Morphing 3D shapes.
index 7210a6db467c87ff5d1530ae732ba3c160a809c8..ec69fb52f64196d8ee64d3bbd25ee31ed227b5aa 100644 (file)
@@ -4,19 +4,22 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="0" high="20" default="5"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
+  <number id="count" type="slider" arg="-count %"
+          _label="Count" _low-label="Few" _high-label="Many"
+           low="0" high="20" default="5"/>
+
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="200"/>
 
-<!--  <boolean id="shm" _label="Use Shared Memory" arg-unset="-no-shm"/> -->
+<!--  <boolean id="shm" _label="Use shared memory" arg-unset="-no-shm"/> -->
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Flowing, swirly patterns.
index ff5191c1b83b19f1fa218c620baf1ee675bb4c52..9f67e921cf822e09e696f134817ac2a9471d8981 100644 (file)
@@ -5,20 +5,20 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="40000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="40000"
           convert="invert"/>
 
   <number id="move" type="slider" arg="-move %"
-          _label="Turn Side-to-Side" _low-label="0 deg" _high-label="90 deg"
-          low="0.0" high="3.0" default="2.0"/>
+          _label="Turn side-to-side" _low-label="0 deg" _high-label="90 deg"
+          low="0.0" high="3.0" default="0.5"/>
 
   <number id="wobble" type="slider" arg="-wobble %"
           _label="Wobbliness" _low-label="Low" _high-label="High"
           low="0.0" high="3.0" default="2.0"/>
 
   <number id="cycle" type="slider" arg="-cycle %"
-          _label="Cycle Seconds" _low-label="Low" _high-label="High"
+          _label="Cycle seconds" _low-label="Low" _high-label="High"
           low="0.0" high="60.0" default="10.0"/>
 
   <number id="mag" type="slider" arg="-mag %"
@@ -26,8 +26,8 @@
           low="0.1" high="4.0" default="1.0"/>
 
   <select id="mins">
-    <option id="min2" _label="Minute Tick Marks" arg-set="-minutes"/>
-    <option id="min5" _label="5 Minute Tick Marks"/>
+    <option id="min2" _label="Minute tick marks" arg-set="-minutes"/>
+    <option id="min5" _label="5 minute tick marks"/>
   </select>
 
   <!-- #### -fast [50] -->
@@ -36,6 +36,8 @@
   <!-- #### -rgb [?] -->
   <!-- #### -hsv [?] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws a working analog clock composed of floating, throbbing bubbles.
 
index 818deba331c5b0def81c751e309e914615b280e2..c135d9d460173ef9f94d44f94091b24abbae3821 100644 (file)
@@ -5,32 +5,37 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Fast" _high-label="Slow"
-          low="0" high="50000" default="10000"/>
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"/>
 
-  <number id="viewing_time" type="spinbutton" arg="-viewing_time %"
-          _label="Viewing Time" low="0" high="30" default="5" />
+  <number id="viewing_time" type="slider" arg="-viewing_time %"
+          _label="Linger" _low-label="Brief" _high-label="Long"
+          low="0" high="30" default="5" />
 
   <number id="x_camera_rotate" type="slider" arg="-x_camera_rotate %"
-          _label="X Camera Rotate" _low-label="Slow" _high-label="Fast"
+          _label="X rotation" _low-label="Slow" _high-label="Fast"
           low="0.0" high="1.0" default="0.2" />
 
   <number id="y_camera_rotate" type="slider" arg="-y_camera_rotate %"
-          _label="Y Camera Rotate" _low-label="Slow" _high-label="Fast"
+          _label="Y rotation" _low-label="Slow" _high-label="Fast"
           low="0.0" high="1.0" default="0.5" />
 
   <number id="z_camera_rotate" type="slider" arg="-z_camera_rotate %"
-          _label="Z Camera Rotate" _low-label="Slow" _high-label="Fast"
+          _label="Z rotation" _low-label="Slow" _high-label="Fast"
           low="0.0" high="1.0" default="0" />
 
   <hgroup>
-   <boolean id="wire"      _label="Wireframe"  arg-set="-wireframe"/>
-   <boolean id="rotate"    _label="Rotate"     arg-unset="-no-rotate"/>
+   <boolean id="labels"    _label="Draw labels" arg-unset="-no-labels"/>
+   <boolean id="wire"      _label="Wireframe"   arg-set="-wireframe"/>
+   <boolean id="rotate"    _label="Rotate"      arg-unset="-no-rotate"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
   <_description>
 Solves tangram puzzles.
 
+http://en.wikipedia.org/wiki/Tangram
+
 Written by Jeremy English; 2005.
   </_description>
 </screensaver>
index 001fbc39864cf9b43a5c97ff11cace20f5a88113..e3922874600733c91ff4cff902a7761b932d3196 100644 (file)
@@ -4,25 +4,27 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
+
   <number id="count" type="slider" arg="-count %"
            _label="Points" _low-label="Few" _high-label="Many"
-          low="10" high="1000" default="1000"/>
+          low="10" high="1000" default="100"/>
 
   <number id="cycles" type="slider" arg="-cycles %"
            _label="Thickness" _low-label="Thin" _high-label="Thick"
           low="2" high="1000" default="400"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="10000"
-          convert="invert"/>
-
 <!--
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="2" high="255" default="64"/>
 -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Displays a view of the "Bird in a Thornbush" fractal.
 
index 067ce7df3ce6ef9e11255ca42768a9e98ce8b44a..56a2389862c25c52da37b4086561bb373922645e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="timetunnel" _label="Timetunnel">
+<screensaver name="timetunnel" _label="TimeTunnel">
 
   <command arg="-root"/>
 
@@ -9,13 +9,13 @@
           low="0.00" high="30.00" default="0.00"/>
 
   <number id="changetime" type="slider" arg="-end %"
-          _label="Color Change Time" _low-label="Short" _high-label="Long"
-          low="0.00" high="30.00" default="30.00"/>
+          _label="Color change time" _low-label="Short" _high-label="Long"
+          low="0.00" high="30.00" default="27.79"/>
 
-  <boolean id="logo"    _label="Draw Logo" arg-unset="-no-logo"/>
-  <boolean id="reverse" _label="Run Backward" arg-set="-reverse"/>
+  <boolean id="logo"    _label="Draw logo" arg-unset="-no-logo"/>
+  <boolean id="reverse" _label="Run backward" arg-set="-reverse"/>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws an animation similar to the opening and closing effects on the
index 5579a168176e1413e0a5478cc9093436934d9303..abb47b9b32aa9f070b87267af1007f1e595587e0 100644 (file)
@@ -4,33 +4,41 @@
 
   <command arg="-root"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="10000"
-          convert="invert"/>
-
-  <number id="size" type="slider" arg="-size %"
-          _label="Carpet Size" _low-label="Small" _high-label="Large"
-          low="1" high="10" default="2"/>
-
-  <number id="spawn" type="slider" arg="-spawn %"
-          _label="Spawn Likelyhood" _low-label="Low" _high-label="High"
-          low="4" high="1000" default="50"
-          convert="invert"/>
-
-  <number id="dropspeed" type="slider" arg="-dropSpeed %"
-          _label="Drop Speed" _low-label="Slow" _high-label="Fast"
-          low="1" high="9" default="4"/>
-
-  <number id="resolution" type="slider" arg="-resolution %"
-          _label="Polygon Count" _low-label="Low" _high-label="High"
-          low="4" high="20" default="4"/>
-
-  <number id="maxColors" type="spinbutton" arg="-maxColors %"
-          _label="Different Colors" low="1" high="7" default="7"/>
-
-  <number id="rotatespeed" type="spinbutton" arg="-rotateSpeed %"
-          _label="Rotation Speed" low="1" high="1000" default="10"/>
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
+            convert="invert"/>
+
+    <number id="dropspeed" type="slider" arg="-dropSpeed %"
+            _label="Drop speed" _low-label="Slow" _high-label="Fast"
+            low="1" high="9" default="4"/>
+
+    <number id="size" type="slider" arg="-size %"
+            _label="Carpet size" _low-label="Small" _high-label="Large"
+            low="1" high="10" default="2"/>
+
+    <number id="spawn" type="slider" arg="-spawn %"
+            _label="Spawn likelyhood" _low-label="Low" _high-label="High"
+            low="4" high="1000" default="50"
+            convert="invert"/>
+
+   </vgroup>
+   <vgroup>
+    <number id="resolution" type="slider" arg="-resolution %"
+            _label="Polygon count" _low-label="Low" _high-label="High"
+            low="4" high="20" default="4"/>
+
+  <number id="maxColors" type="slider" arg="-maxColors %"
+          _label="Colors" _low-label="Few" _high-label="Many"
+          low="1" high="32" default="7"/>
+
+  <number id="rotatespeed" type="slider" arg="-rotateSpeed %"
+          _label="Rotation" _low-label="Slow" _high-label="Fast"
+          low="1" high="1000" default="10"/>
+   </vgroup>
+  </hgroup>
  
   <hgroup>
    <boolean id="rotate" _label="Rotate"    arg-unset="-no-rotate"/>
    <boolean id="blob"   _label="Blob mode" arg-set="-blob"/>
    <boolean id="override" _label="Tunnel mode" arg-set="-override"/>
    <boolean id="carpet" _label="Carpet"    arg-unset="-no-carpet"/>
+  </hgroup>
+  <hgroup>
    <boolean id="nipples" _label="Nipples"  arg-unset="-no-nipples"/>
    <boolean id="wire"   _label="Wireframe" arg-set="-wireframe"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
-  <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
-
   <_description>
 Creates a 3D world with dropping blocks that build up and up.
 Written by rednuht; 2006.
index 3e49c61ed96199db7f0a1122ddb92f00c0abd352..8e6ac967ec702415993a01d15c0793e9389b82e7 100644 (file)
@@ -5,14 +5,16 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="128"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Generates random mountain ranges using iterative subdivision of
 triangles.
index 82473b4e930a929abfe4bcc67f4f4610dfc8752c..af2e8814db4e5f24a4594425502b8b3f0dba1816 100644 (file)
@@ -3,11 +3,10 @@
 <screensaver name="truchet" _label="Truchet">
 
   <command arg="-root"/>
-  <command arg="-randomize"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="1000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="1000000" default="400000"
           convert="invert"/>
 
   <!-- #### -min-width [40] -->
   <!-- #### -anim-delay [100] -->
   <!-- #### -anim-step-size [3] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This draws line- and arc-based truchet patterns that tile the screen.
 
+http://en.wikipedia.org/wiki/Tessellation
+
 Written by Adrian Likins; 1998.
   </_description>
 </screensaver>
index 80a8cf57215ca2c3efd94cd3d73b53cd5fc18382..9beced7cbebf55d404b7fffadac202f922dd4069 100644 (file)
@@ -4,9 +4,12 @@
 
   <command arg="-root"/>
 
+  <hgroup>
+   <vgroup>
+
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="duration" type="slider" arg="-duration %"
@@ -21,6 +24,9 @@
           _label="Friction" _low-label="Low" _high-label="High"
           low="0.0" high="0.2" default="0.05"/>
 
+  </vgroup>
+  <vgroup>
+
   <number id="springiness" type="slider" arg="-springiness %"
           _label="Springiness" _low-label="Low" _high-label="High"
           low="0.0" high="1.0" default="0.1"/>
           low="0.0" high="0.1" default="0.025"/>
 
   <number id="tile-size" type="slider" arg="-tile-size %"
-         _label="Tile Size" _low-label="Small" _high-label="Large"
+         _label="Tile size" _low-label="Small" _high-label="Large"
          low="10" high="512" default="120"/>
 
   <number id="border-width" type="spinbutton" arg="-border-width %"
-         _label="Border Width" low="0" high="20" default="3"/>
+         _label="Border width" low="0" high="20" default="3"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
-<!--  <boolean id="shm" _label="Use Shared Memory" arg-unset="-no-shm"/> -->
+  </vgroup>
+  </hgroup>
 
   <xscreensaver-image />
 
index d85fe810633fc0df5ff6115e0d0a8c842401f5ae..a3c692f0844ed9ef93f7485f9c3a0517d1f7e909 100644 (file)
@@ -4,8 +4,11 @@
 
   <command arg="-root"/>
 
-  <!-- #### -speed [?] -->
-  <!-- #### -instring [?] -->
+  <number id="speed" type="slider" arg="-speed %"
+          _label="Duration" _low-label="Short" _high-label="Long"
+          low="0" high="1000" default="0" />
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws squiggly worm-like paths.
index 40d5f7e838ece85635c44b412f78675bb430583e..da36b834b610106bcd8a49b40b71b06f00e6bc74 100644 (file)
@@ -8,7 +8,9 @@
           _label="Duration" _low-label="2 seconds" _high-label="2 minutes"
           low="2" high="120" default="5"/>
 
-  <file id="directory" _label="Image Directory" arg="-directory %"/>
+  <file id="directory" _label="Image directory" arg="-directory %"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 This is a shell script that grabs a frame of video from the system's
index 9c87f72f7097dadc4c4c1cdb4a466c342ba946a9..e75db6a81134c020d43b467e372a64b76d1f7c8b 100644 (file)
@@ -5,14 +5,16 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
+          _label="Frame rate" _low-label="Low" _high-label="High"
           low="0" high="250000" default="200000"
           convert="invert"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="64"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Generates a continuous sequence of small, curvy geometric patterns.
 
index f65f223a1af50131f6941a3d3d8f00ce83746c8f..9e1af0be0ecde3a84d5ea09edc4c238c46ac9b97 100644 (file)
@@ -7,7 +7,7 @@
   <hgroup>
    <vgroup>
     <number id="delay" type="slider" arg="-delay %"
-            _label="Frame Rate" _low-label="Slow" _high-label="Fast"
+            _label="Frame rate" _low-label="Slow" _high-label="Fast"
             low="0" high="100000" default="20000"
             convert="invert"/>
 
             low="1" high="100" default="25"/>
 
     <number id="pointSize" type="slider" arg="-point-size %"
-            _label="Point Size" _low-label="0" _high-label="50 pixels"
+            _label="Point size" _low-label="0" _high-label="50 pixels"
             low="0" high="50" default="9"/>
 
-    <boolean id="showfps" _label="Show Frames-per-Second" arg-set="-fps"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
    </vgroup>
 
    <vgroup>
     <number id="pointSpeed" type="slider" arg="-point-speed %"
-            _label="Wander Speed" _low-label="Slow" _high-label="Fast"
+            _label="Wander speed" _low-label="Slow" _high-label="Fast"
             low="0.0" high="10.0" default="1.0"/>
 
     <number id="pointDelay" type="slider" arg="-point-delay %"
-            _label="Insertion Speed" _low-label="Slow" _high-label="Fast"
+            _label="Insertion speed" _low-label="Slow" _high-label="Fast"
             low="0.0" high="3.0" default="0.05"
             convert="invert"/>
 
     <number id="zoomSpeed" type="slider" arg="-zoom-speed %"
-            _label="Zoom Speed" _low-label="Slow" _high-label="Fast"
+            _label="Zoom speed" _low-label="Slow" _high-label="Fast"
             low="0.1" high="10.0" default="1.0"/>
 
     <number id="zoomDelay" type="slider" arg="-zoom-delay %"
-            _label="Zoom Frequency" _low-label="0" _high-label="60 Seconds"
+            _label="Zoom frequency" _low-label="0" _high-label="60 seconds"
             low="0" high="60" default="15"/>
    </vgroup>
   </hgroup>
@@ -51,6 +51,8 @@ a colored cell.  Every pixel within that cell is closer to that cell's
 control point than to any other control point.  That is what
 determines the cell's shapes.
 
+http://en.wikipedia.org/wiki/Voronoi_diagram
+
 Written by Jamie Zawinski; 2007.
   </_description>
 </screensaver>
index 8dda2dff58058516d901cf06f0c54c6afc717886..80a770dd6cf6036b673c93b0cc6faea2e72a2496 100644 (file)
@@ -4,6 +4,11 @@
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
+
   <number id="density" type="slider" arg="-density %"
           _label="Density" _low-label="Low" _high-label="High"
           low="1" high="30" default="2"
           _label="Length" _low-label="Short" _high-label="Long"
           low="100" high="100000" default="25000"/>
 
-  <number id="delay" type="slider" arg="-delay %"
-          _label="Sustain" _low-label="0 Seconds" _high-label="1 Minute"
-          low="0" high="60" default="1"/>
-
   <hgroup>
-    <boolean id="circles" _label="Draw Spots" arg-set="-circles"/>
+    <boolean id="circles" _label="Draw spots" arg-set="-circles"/>
 
     <number id="size" type="spinbutton" arg="-size %"
              _label="Size" low="0" high="100" default="1"/>
   </hgroup>
 
   <number id="advance" type="slider" arg="-advance %"
-          _label="Color Contrast" _low-label="Low" _high-label="High"
+          _label="Color contrast" _low-label="Low" _high-label="High"
           low="1" high="100" default="1"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws a colorful random-walk, in various forms.
 
+http://en.wikipedia.org/wiki/Random_walk
+
 Written by Rick Campbell; 1999.
   </_description>
 </screensaver>
index 7ed7cfcc0c9c1ae8ee5d2b2c5b4709f1ccb10ae1..ad3a0bc3b0e956b1979079245bc507303bf27feb 100644 (file)
@@ -4,29 +4,37 @@
 
   <command arg="-root"/>
 
-  <number id="timeout" type="slider" arg="-timeout %"
-          _low-label="URL Timeout:     2 secs" _high-label="2 min"
-          low="2" high="120" default="30"/>
-
-  <number id="delay" type="slider" arg="-delay %"
-          _low-label="Delay:                    None" _high-label="30 secs"
-          low="0" high="30" default="2"/>
-
-  <number id="opacity" type="slider" arg="-opacity %"
-          _low-label="Opacity:      Transparent" _high-label="Solid"
-          low="0.1" high="1.0" default="0.85"/>
-
-  <string id="filter"  _label="Per-Image Filter Program" arg="-filter %"/>
-
-  <string id="filter2" _label="Overall Filter Program" arg="-filter2 %"/>
-
-<!-- <file id="dictionary" _label="Dictionary File" arg="-dictionary %"/> -->
+  <hgroup>
+   <vgroup>
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Delay between images" _low-label="None" _high-label="30 secs"
+            low="0" high="30" default="2"/>
+
+    <number id="timeout" type="slider" arg="-timeout %"
+            _label="Network timeout" _low-label="2 secs" _high-label="2 min"
+            low="2" high="120" default="30"/>
+   </vgroup>
+   <vgroup>
+    <number id="opacity" type="slider" arg="-opacity %"
+            _label="Image opacity" _low-label="Transparent" _high-label="Opaque"
+            low="0.1" high="1.0" default="0.85"/>
+
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
+   </vgroup>
+  </hgroup>
+
+<!--
+  <string id="filter"  _label="Per-image filter program" arg="-filter %"/>
+  <string id="filter2" _label="Overall filter program" arg="-filter2 %"/>
+  <file id="dictionary" _label="Dictionary file" arg="-dictionary %"/>
+  <file id="dir" _label="Image directory" arg="-directory %"/>
+ -->
 
   <_description>
-This program makes collages out of random images pulled off of the
+This makes collages out of random images pulled off of the
 World Wide Web.  It finds these images by doing random web searches,
-and then extracting images from the returned pages.  It can also be
-set up to filter the images through the "VidWhacker" program.
+and then extracting images from the returned pages.
 
 WARNING: THE INTERNET SOMETIMES CONTAINS PORNOGRAPHY.
 
@@ -34,6 +42,8 @@ The Internet being what it is, absolutely anything might show up in the
 collage including -- quite possibly -- pornography, or even nudity.
 Please act accordingly.
 
+See also http://www.jwz.org/webcollage/
+
 Written by Jamie Zawinski; 1999.
   </_description>
 </screensaver>
index adae0193e92e9d32c0a7eb798c7a07f97a54347b..e40850e4cad044eab9c8162bf754df8faedfd9c0 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="whirlwindwarp" _label="WhirlwindWarp">
+<screensaver name="whirlwindwarp" _label="WhirlWindWarp">
 
   <command arg="-root"/>
 
@@ -9,9 +9,11 @@
           low="10" high="1000" default="400"/>
 
   <number id="tails" type="slider" arg="-tails %"
-          _label="Trail Size" _low-label="Short" _high-label="Long"
+          _label="Trail size" _low-label="Short" _high-label="Long"
           low="1" high="50" default="8"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Floating stars are acted upon by a mixture of simple 2D
 forcefields.  The strength of each forcefield changes
index 1c3c1df07a526dd97ed9346c820b78a4b9dcaa83..e821dc5f2e22919ca21de3153142d2ef49a1ddb8 100644 (file)
@@ -1,27 +1,35 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="whirlygig" _label="WhirlyGig">
+<screensaver name="whirlygig" _label="Whirlygig">
 
   <command arg="-root"/>
 
-  <number id="whirlies" type="spinbutton" arg="-whirlies %"
-          _label="Whirlies" low="1" high="50" default="40"/>
-
-  <number id="lines" type="spinbutton" arg="-nlines %"
-          _label="Lines" low="-1" high="50" default="-1"/>
-
   <hgroup>
-    <number id="xspeed" type="spinbutton" arg="-xspeed %"
-            _label="Speed" low="0.0" high="10.0" default="1.0"/>
-    <number id="yspeed" type="spinbutton" arg="-yspeed %"
-            _label="x" low="0.0" high="10.0" default="1.0"/>
+   <number id="whirlies" type="spinbutton" arg="-whirlies %"
+           _label="Whirlies" low="-1" high="50" default="-1"/>
+
+   <number id="lines" type="spinbutton" arg="-nlines %"
+           _label="Lines" low="-1" high="50" default="-1"/>
   </hgroup>
 
   <hgroup>
-    <number id="xamplitude" type="spinbutton" arg="-xamplitude %"
-            _label="Amplitude" low="0.0" high="10.0" default="1.0"/>
-    <number id="yamplitude" type="spinbutton" arg="-yamplitude %"
-            _label="x" low="0.0" high="10.0" default="1.0"/>
+   <vgroup>
+    <number id="xspeed" type="slider" arg="-xspeed %"
+            _label="X speed" _low-label="Low" _high-label="High"
+            low="0.0" high="10.0" default="1.0"/>
+    <number id="yspeed" type="slider" arg="-yspeed %"
+            _label="Y speed" _low-label="Low" _high-label="High"
+             low="0.0" high="10.0" default="1.0"/>
+   </vgroup>
+
+   <vgroup>
+    <number id="xamplitude" type="slider" arg="-xamplitude %"
+            _label="X amplitude" _low-label="Low" _high-label="High"
+             low="0.0" high="10.0" default="1.0"/>
+    <number id="yamplitude" type="slider" arg="-yamplitude %"
+            _label="Y amplitude" _low-label="Low" _high-label="High"
+             low="0.0" high="10.0" default="1.0"/>
+   </vgroup>
   </hgroup>
 
 
 
   <hgroup>
    <select id="xmode">
-    <option id="random" _label="Random" />
-    <option id="spin" _label="Spin" arg-set="-xmode spin"/>
-    <option id="funky" _label="Funky" arg-set="-xmode funky"/>
-    <option id="circle" _label="Circle" arg-set="-xmode circle"/>
-    <option id="linear" _label="Linear" arg-set="-xmode linear"/>
-    <option id="test" _label="Test" arg-set="-xmode test"/>
-    <option id="fun" _label="Fun" arg-set="-xmode fun"/>
-    <option id="innie" _label="Innie" arg-set="-xmode innie"/>
-    <option id="lissajous" _label="Lissajous" arg-set="-xmode lissajous"/>
+    <option id="randomx"    _label="X random" />
+    <option id="spinx"      _label="X spin" arg-set="-xmode spin"/>
+    <option id="funkyx"     _label="X funky" arg-set="-xmode funky"/>
+    <option id="circlex"    _label="X circle" arg-set="-xmode circle"/>
+    <option id="linearx"    _label="X linear" arg-set="-xmode linear"/>
+    <option id="testx"      _label="X test" arg-set="-xmode test"/>
+    <option id="funx"       _label="X fun" arg-set="-xmode fun"/>
+    <option id="inniex"     _label="X innie" arg-set="-xmode innie"/>
+    <option id="lissajousx" _label="X lissajous" arg-set="-xmode lissajous"/>
    </select>
 
    <select id="ymode">
-    <option id="randomy" _label="Random" />
-    <option id="spiny" _label="Spin" arg-set="-ymode spin"/>
-    <option id="funkyy" _label="Funky" arg-set="-ymode funky"/>
-    <option id="circley" _label="Circle" arg-set="-ymode circle"/>
-    <option id="lineary" _label="Linear" arg-set="-ymode linear"/>
-    <option id="testy" _label="Test" arg-set="-ymode test"/>
-    <option id="funy" _label="Fun" arg-set="-ymode fun"/>
-    <option id="inniey" _label="Innie" arg-set="-ymode innie"/>
-    <option id="lissajousy" _label="Lissajous" arg-set="-ymode lissajous"/>
+    <option id="randomy"    _label="Y random" />
+    <option id="spiny"      _label="Y spin" arg-set="-ymode spin"/>
+    <option id="funkyy"     _label="Y funky" arg-set="-ymode funky"/>
+    <option id="circley"    _label="Y circle" arg-set="-ymode circle"/>
+    <option id="lineary"    _label="Y linear" arg-set="-ymode linear"/>
+    <option id="testy"      _label="Y test" arg-set="-ymode test"/>
+    <option id="funy"       _label="Y fun" arg-set="-ymode fun"/>
+    <option id="inniey"     _label="Y innie" arg-set="-ymode innie"/>
+    <option id="lissajousy" _label="Y lissajous" arg-set="-ymode lissajous"/>
    </select>
  </hgroup>
 
   <!-- #### -offset_period [1] -->
 
   <hgroup>
-   <vgroup>
-    <boolean id="trail" _label="Leave a trail" arg-set="-trail 1"/>
-    <boolean id="explain" _label="Explain modes" arg-set="-explain"/>
-   </vgroup>
-   <vgroup>
-    <boolean id="wrap" _label="Wrap the screen" arg-unset="-no-wrap"/>
-<!--    <boolean id="db" _label="Use Double Buffering" arg-unset="-no-db"/> -->
-   </vgroup>
+   <boolean id="trail" _label="Leave a trail" arg-set="-trail"/>
+   <boolean id="explain" _label="Explain modes" arg-set="-explain"/>
+   <boolean id="wrap" _label="Wrap the screen" arg-set="-wrap"/>
+   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
   <_description>
index 1392604fe426d2d17d3721d0b8c0f782bebe29ac..084c27c3090b6dcd4c20720308d6c77967f93055 100644 (file)
@@ -4,24 +4,26 @@
 
   <command arg="-root"/>
 
-  <number id="count" type="spinbutton" arg="-count %"
-          _label="Count" low="-100" high="100" default="-20"/>
-
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="17000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="17000"
           convert="invert"/>
 
   <number id="ncolors" type="slider" arg="-ncolors %"
-            _label="Number of Colors" _low-label="Two" _high-label="Many"
+            _label="Number of colors" _low-label="Two" _high-label="Many"
             low="1" high="255" default="150"/>
 
+  <number id="count" type="spinbutton" arg="-count %"
+          _label="Count" low="-100" high="100" default="-20"/>
+
   <number id="size" type="spinbutton" arg="-size %"
            _label="Size" low="-20" high="20" default="-3"/>
 
   <!-- #### -cycles [10] -->
   <!-- #### -3d -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws multicolored worms that crawl around the screen.
 
index 61c16cc0b1073714b3d52abde8dcdfbfa2fb77c0..c137a0fd031d91f4da91f56b93bf91f106a9b3dc 100644 (file)
@@ -5,8 +5,8 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Animation Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="50000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="zspeed" type="slider" arg="-zspeed %"
           low="1" high="30" default="10"/>
 
   <number id="stars" type="slider" arg="-stars %"
-          _label="Stars Created" _low-label="Few" _high-label="Lots"
+          _label="Stars created" _low-label="Few" _high-label="Lots"
           low="1" high="100" default="20"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Flying through a colored wormhole in space. 
 
index 99de507840e396ccad1f9874b6f93f69ce0c84c8..48e7265d525523e73c74f631bdce2c0c43c83c9b 100644 (file)
@@ -6,6 +6,8 @@
 
   <xscreensaver-image />
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 
 XAnalogTV shows a detailed simulation of an old TV set showing various
diff --git a/hacks/config/xaos.xml b/hacks/config/xaos.xml
deleted file mode 100644 (file)
index f1ce989..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<screensaver name="xaos" _label="XaoS">
-
-  <command arg="-root"/>
-
-  <!-- #### write me -->
-
-  <command arg="-autopilot"/>
-  <command arg="-nogui"/>
-  <command arg="-delay 10000"/>
-  <command arg="-maxframerate 30"/>
-  <command arg="-incoloring -1"/>
-  <command arg="-outcoloring -1"/>
-
-  <_description>
-XaoS generates fast fly-through animations of the Mandelbrot and other
-fractal sets.  This is not included with the XScreenSaver package, but
-if you don't have it already, you can find it at
-&lt;http://wmi.math.u-szeged.hu/~kovzol/xaos/doku.php&gt;.
-
-Written by Thomas Marsh and Jan Hubicka.
-  </_description>
-</screensaver>
diff --git a/hacks/config/xdaliclock.xml b/hacks/config/xdaliclock.xml
deleted file mode 100644 (file)
index 5c253c8..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<screensaver name="xdaliclock" _label="XDaliClock">
-
-  <command arg="-root"/>
-
-  <select id="size">
-    <option id="font0" _label="Small Font"   arg-set="-font BUILTIN0"/>
-    <option id="font1" _label="Medium Font"  arg-set="-font BUILTIN1"/>
-    <option id="font2" _label="Large Font"/>
-    <option id="font2" _label="Huge Font"    arg-set="-font BUILTIN3"/>
-  </select>
-
-  <select id="style">
-    <option id="12" _label="12-Hour Time"/>
-    <option id="24" _label="24-Hour Time" arg-set="-24"/>
-  </select>
-
-  <boolean id="secs"  _label="Display Seconds" arg-unset="-noseconds"/>
-
-  <boolean id="cycle" _label="Cycle Colors" arg-set="-cycle"/>
-
-  <_description>
-XDaliClock draws a large digital clock, the numbers of which change by
-"melting" into their new shapes.  This is not included with the
-XScreenSaver package, but if you don't have it already, you can find it at
-&lt;http://www.jwz.org/xdaliclock/&gt;.
-
-Written by Jamie Zawinski; 1991.
-  </_description>
-</screensaver>
index a11c7ddc035554014c2a4bc82b4a1dda600f6adf..e9a4686f292b7832386e13135eaf28b2b350fbf2 100644 (file)
@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="xflame" _label="Xflame">
+<screensaver name="xflame" _label="XFlame">
 
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
-<!--  <file id="bitmap" _label="Bitmap File" arg="-bitmap %"/> -->
+<!--  <file id="bitmap" _label="Bitmap file" arg="-bitmap %"/> -->
 
   <!-- #### -baseline [20] -->
   <!-- #### -hspread [30] -->
@@ -18,7 +18,9 @@
   <!-- #### -variance [50] -->
   <!-- #### -vartrend [20] -->
 
-  <boolean id="bloom" _label="Enable Blooming" arg-unset="-no-bloom"/>
+  <boolean id="bloom" _label="Enable blooming" arg-unset="-no-bloom"/>
+
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <_description>
 Draws a simulation of pulsing fire.  It can also take an arbitrary
index 983b6e061f1e9bdb12dc0d5e9f86eeb3bfb15143..8d6f9c072710efb9fe0ac7b832defb8ce0e5b82e 100644 (file)
@@ -1,18 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="xjack" _label="Xjack">
+<screensaver name="xjack" _label="XJack">
 
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="80000" default="50000"
+          low="0" high="200000" default="50000"
           convert="invert"/>
 
   <!-- #### -font [] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
-This program behaves schizophrenically and makes a lot of typos.
+This behaves schizophrenically and makes a lot of typos.
 
 Written by Jamie Zawinski; 1997.
   </_description>
index 5c9d00279ecb054bed6762257336157c8d79671b..1d1218b22d1df1fdeeadfbdae589334be1c34873 100644 (file)
@@ -1,9 +1,17 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="xlyap" _label="Xlyap">
+<screensaver name="xlyap" _label="XLyap">
 
   <command arg="-root"/>
-  <command arg="-randomize"/>
+
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
+          convert="invert"/>
+
+  <number id="linger" type="slider" arg="-linger %"
+          _label="Linger" _low-label="Brief" _high-label="Long"
+          low="0" high="10" default="5" />
 
   <!-- #### -builtin [-1] -->
   <!-- #### -C [1] -->
   <!-- #### -v -->
   <!-- #### -w [] -->
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 This generates pretty fractal pictures via the Lyapunov exponent.
 
+http://en.wikipedia.org/wiki/Lyapunov_exponent
+
 Written by Ron Record; 1997.
   </_description>
 </screensaver>
index 31be04eab191a18613e1475e1824ebabad68e1da..231feccbc86121d5cbc48c759a27a9668e0ff55a 100644 (file)
@@ -6,36 +6,36 @@
 
   <hgroup>
    <select id="size">
-     <option id="font1" _label="Small Font"  arg-set="-small"/>
-     <option id="font2" _label="Large Font"/>
+     <option id="font1" _label="Small font"  arg-set="-small"/>
+     <option id="font2" _label="Large font"/>
    </select>
 
    <select id="mode">
-     <option id="matrix" _label="Matrix Encoding"/>
-     <option id="binary" _label="Binary Encoding"      arg-set="-mode binary"/>
-     <option id="hex"    _label="Hexadecimal Encoding" arg-set="-mode hex"/>
-     <option id="dna"    _label="Genetic Encoding"     arg-set="-mode dna"/>
-     <option id="pipe"   _label="Piped ASCII Text"     arg-set="-mode pipe"/>
+     <option id="matrix" _label="Matrix encoding"/>
+     <option id="binary" _label="Binary encoding"      arg-set="-mode binary"/>
+     <option id="hex"    _label="Hexadecimal encoding" arg-set="-mode hex"/>
+     <option id="dna"    _label="Genetic encoding"     arg-set="-mode dna"/>
+     <option id="pipe"   _label="Piped ASCII text"     arg-set="-mode pipe"/>
    </select>
 
    <select id="fill">
-     <option id="both"   _label="Synergistic Algorithm"/>
-     <option id="top"    _label="Slider Algorithm"    arg-set="-insert top"/>
-     <option id="bottom" _label="Expansion Algorithm" arg-set="-insert bottom"/>
+     <option id="both"   _label="Synergistic algorithm"/>
+     <option id="top"    _label="Slider algorithm"    arg-set="-insert top"/>
+     <option id="bottom" _label="Expansion algorithm" arg-set="-insert bottom"/>
    </select>
   </hgroup>
 
   <hgroup>
-   <boolean id="trace" _label="Run Trace Program" arg-unset="-no-trace"/>
-   <boolean id="knock" _label="Knock Knock"       arg-unset="-no-knock-knock"/>
-   <string id="phone" _label="Phone Number" arg="-phone %"/>
+   <boolean id="trace" _label="Run trace program" arg-unset="-no-trace"/>
+   <boolean id="knock" _label="Knock knock"       arg-unset="-no-knock-knock"/>
+   <string id="phone" _label="Phone number" arg="-phone %"/>
   </hgroup>
 
   <hgroup>
    <vgroup>
     <number id="delay" type="slider" arg="-delay %"
-            _label="Speed" _low-label="Slow" _high-label="Fast"
-            low="0" high="20000" default="10000"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="10000"
             convert="invert"/>
    </vgroup>
 
 
   <xscreensaver-text />
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws dropping characters similar to what is seen on the computer 
 monitors in "The Matrix".
 
-See also "glmatrix" for a 3D rendering of the similar effect that
-appeared in the title sequence of the movie.
+See also "GLMatrix" for a 3D rendering of the similar effect that
+appeared in the movie's title sequence.
 
 Written by Jamie Zawinski; 1999.
   </_description>
diff --git a/hacks/config/xmountains.xml b/hacks/config/xmountains.xml
deleted file mode 100644 (file)
index 7729734..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<screensaver name="xmountains" _label="Xmountains">
-
-  <command arg="-b"/>
-  <command arg="-r 1"/>
-
-  <hgroup>
-    <select id="mode">
-      <option id="side" _label="Side View"/>
-      <option id="top"  _label="Top View" arg-set="-m"/>
-    </select>
-
-    <boolean id="reflections" _label="Reflections" arg-unset="-M"/>
-  </hgroup>
-
-  <number id="speed" type="slider" arg="-Z %"
-          _low-label="Speed  Slow" _high-label="Fast"
-          low="0" high="10" default="10"
-          convert="invert"/>
-
-  <number id="vpalt" type="slider" arg="-a %"
-          _label="Viewpoint" _low-label="Altitude  Low" _high-label="High"
-          low="0.0" high="10.0" default="2.5"/>
-  <number id="vpdistance" type="slider" arg="-p %"
-          _low-label="Distance  Low" _high-label="High"
-          low="0.0" high="10.0" default="5.0"/>
-
-  <number id="vlight" type="slider" arg="-I %"
-          _label="Angle of Light" _low-label="Vertical  Low" _high-label="High"
-          low="0" high="90" default="40"/>
-  <number id="hlight" type="slider" arg="-A %"
-          _low-label="Horizontal  Low" _high-label="High"
-          low="0" high="90" default="0"/>
-
-  <number id="alight" type="slider" arg="-e %"
-          _label="Light Level" _low-label="Ambient  Low" _high-label="High"
-          low="0.0" high="1.0" default="0.3"/>
-  <number id="vlight2" type="slider" arg="-v %"
-          _low-label="Vertical  Low" _high-label="High"
-          low="0.0" high="1.0" default="0.6"/>
-  <number id="contrast" type="slider" arg="-c %"
-          _low-label="Contrast  Low" _high-label="High"
-          low="0.0" high="5.0" default="1.0"/>
-
-  <!-- #### -B int   [80] # shades in a colour band                    -->
-  <!-- #### -n int   [245] # number of colours                         -->
-
-
-  <number id="stretch" type="slider" arg="-S %"
-          _label="Terrain" _low-label="V. Stretch  Low" _high-label="High"
-          low="0.0" high="2.0" default="0.6"/>
-
-  <number id="shift" type="slider" arg="-T %"
-          _low-label="V. Shift  Low" _high-label="High"
-          low="0.0" high="2.0" default="0.5"/>
-
-  <number id="sealevel" type="slider" arg="-W %"
-          _low-label="Sea Level  Low" _high-label="High"
-          low="-150" high="300" default="0"/>
-
-  <number id="contour" type="slider" arg="-C %"
-          _low-label="Contour  Low" _high-label="High"
-          low="0.0" high="1.0" default="0.3"/>
-
-  <number id="fgheight" type="slider" arg="-G %"
-          _label="Foreground" _low-label="Height  Low" _high-label="High"
-          low="-3.0" high="3.0" default="-1.0"/>
-
-  <number id="fgvariance" type="slider" arg="-F %"
-          _low-label="Variance  Low" _high-label="High"
-          low="0" high="5" default="1"/>
-
-
-  <number id="fractal" type="slider" arg="-f %"
-          _label="Fractal Options" _low-label="Smooth" _high-label="Craggy"
-          low="0" high="1.0" default="0.65"
-          convert="invert"/>
-
-  <number id="recurs" type="slider" arg="-l %"
-          _low-label="Recursion  0" _high-label="14"
-          low="0" high="14" default="10"/>
-  <number id="iterate" type="slider" arg="-t %"
-          _low-label="Iteration  0" _high-label="10"
-          low="0" high="10" default="2"/>
-
-  <number id="smoothing" type="slider" arg="-s %"
-          _low-label="Smoothing  0" _high-label="7"
-          low="0" high="7" default="0"/>
-
-  <number id="xf" type="slider" arg="-X %"
-          _low-label="Xf  0.0" _high-label="1.0"
-          low="0.0" high="1.0" default="0.0"/>
-  <number id="yf" type="slider" arg="-Y %"
-          _low-label="Yf  0.0" _high-label="1.0"
-          low="0.0" high="1.0" default="0.0"/>
-
-  <boolean id="cross" _label="Cross Update" arg-unset="-x"/>
-
-  <_description>
-XMountains generates realistic-looking fractal terrains of snow-capped
-mountains near water, with either a top view or a side view.  This is not
-included with the XScreenSaver package, but if you don't have it already,
-you can find it at
-&lt;http://www.epcc.ed.ac.uk/~spb/xmountains/&gt;.
-(Make sure you have version 2.7 or newer!)
-
-Written by Stephen Booth.
-  </_description>
-</screensaver>
diff --git a/hacks/config/xplanet.xml b/hacks/config/xplanet.xml
deleted file mode 100644 (file)
index fa22f6d..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<screensaver name="xplanet" _label="Xplanet">
-
-  <command arg="-vroot"/>
-
-  <number id="wait" type="slider" arg="-wait %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="1" high="30" default="1"
-          convert="invert"/>
-
-  <number id="timewarp" type="slider" arg="-timewarp %"
-          _label="Time Warp" _low-label="Real Time" _high-label="Fast"
-          low="1" high="100000" default="1"/>
-
-  <hgroup>
-   <select id="body">
-    <option id="sun"       _label="View Sun"       arg-set="-body sun"/>
-    <option id="mercury"   _label="View Mercury"   arg-set="-body mercury"/>
-    <option id="venus"     _label="View Venus"     arg-set="-body venus"/>
-    <option id="earth"     _label="View Earth"/>
-    <option id="moon"      _label="View Moon"      arg-set="-body moon"/>
-    <option id="mars"      _label="View Mars"      arg-set="-body mars"/>
-    <option id="phobos"    _label="View Phobos"    arg-set="-body phobos"/>
-    <option id="deimos"    _label="View Deimos"    arg-set="-body deimos"/>
-    <option id="jupiter"   _label="View Jupiter"   arg-set="-body jupiter"/>
-    <option id="io"        _label="View Io"        arg-set="-body io"/>
-    <option id="europa"    _label="View Europa"    arg-set="-body europa"/>
-    <option id="ganymede"  _label="View Ganymede"  arg-set="-body ganymede"/>
-    <option id="callisto"  _label="View Callisto"  arg-set="-body callisto"/>
-    <option id="saturn"    _label="View Saturn"    arg-set="-body saturn"/>
-    <option id="mimas"     _label="View Mimas"     arg-set="-body mimas"/>
-    <option id="enceladus" _label="View Enceladus" arg-set="-body enceladus"/>
-    <option id="tethys"    _label="View Tethys"    arg-set="-body tethys"/>
-    <option id="dione"     _label="View Dione"     arg-set="-body dione"/>
-    <option id="rhea"      _label="View Rhea"      arg-set="-body rhea"/>
-    <option id="titan"     _label="View Titan"     arg-set="-body titan"/>
-    <option id="hyperion"  _label="View Hyperion"  arg-set="-body hyperion"/>
-    <option id="iapetus"   _label="View Iapetus"   arg-set="-body iapetus"/>
-    <option id="phoebe"    _label="View Phoebe"    arg-set="-body phoebe"/>
-    <option id="uranus"    _label="View Uranus"    arg-set="-body uranus"/>
-    <option id="miranda"   _label="View Miranda"   arg-set="-body miranda"/>
-    <option id="ariel"     _label="View Ariel"     arg-set="-body ariel"/>
-    <option id="umbriel"   _label="View Umbriel"   arg-set="-body umbriel"/>
-    <option id="titania"   _label="View Titania"   arg-set="-body titania"/>
-    <option id="oberon"    _label="View Oberon"    arg-set="-body oberon"/>
-    <option id="neptune"   _label="View Neptune"   arg-set="-body neptune"/>
-    <option id="triton"    _label="View Triton"    arg-set="-body triton"/>
-    <option id="nereid"    _label="View Nereid"    arg-set="-body nereid"/>
-    <option id="pluto"     _label="View Pluto"     arg-set="-body pluto"/>
-    <option id="charon"    _label="View Charon"    arg-set="-body charon"/>
-    <option id="random"    _label="View Random"    arg-set="-body random"/>
-    <option id="major"     _label="View Major"     arg-set="-body major"/>
-   </select> 
-
-   <select id="origin">
-    <option id="sun"       _label="From Sun"/>
-    <option id="mercury"   _label="From Mercury"   arg-set="-origin mercury"/>
-    <option id="venus"     _label="From Venus"     arg-set="-origin venus"/>
-    <option id="earth"     _label="From Earth"     arg-set="-origin earth"/>
-    <option id="moon"      _label="From Moon"      arg-set="-origin moon"/>
-    <option id="mars"      _label="From Mars"      arg-set="-origin mars"/>
-    <option id="phobos"    _label="From Phobos"    arg-set="-origin phobos"/>
-    <option id="deimos"    _label="From Deimos"    arg-set="-origin deimos"/>
-    <option id="jupiter"   _label="From Jupiter"   arg-set="-origin jupiter"/>
-    <option id="io"        _label="From Io"        arg-set="-origin io"/>
-    <option id="europa"    _label="From Europa"    arg-set="-origin europa"/>
-    <option id="ganymede"  _label="From Ganymede"  arg-set="-origin ganymede"/>
-    <option id="callisto"  _label="From Callisto"  arg-set="-origin callisto"/>
-    <option id="saturn"    _label="From Saturn"    arg-set="-origin saturn"/>
-    <option id="mimas"     _label="From Mimas"     arg-set="-origin mimas"/>
-    <option id="enceladus" _label="From Enceladus" arg-set="-origin enceladus"/>
-    <option id="tethys"    _label="From Tethys"    arg-set="-origin tethys"/>
-    <option id="dione"     _label="From Dione"     arg-set="-origin dione"/>
-    <option id="rhea"      _label="From Rhea"      arg-set="-origin rhea"/>
-    <option id="titan"     _label="From Titan"     arg-set="-origin titan"/>
-    <option id="hyperion"  _label="From Hyperion"  arg-set="-origin hyperion"/>
-    <option id="iapetus"   _label="From Iapetus"   arg-set="-origin iapetus"/>
-    <option id="phoebe"    _label="From Phoebe"    arg-set="-origin phoebe"/>
-    <option id="uranus"    _label="From Uranus"    arg-set="-origin uranus"/>
-    <option id="miranda"   _label="From Miranda"   arg-set="-origin miranda"/>
-    <option id="ariel"     _label="From Ariel"     arg-set="-origin ariel"/>
-    <option id="umbriel"   _label="From Umbriel"   arg-set="-origin umbriel"/>
-    <option id="titania"   _label="From Titania"   arg-set="-origin titania"/>
-    <option id="oberon"    _label="From Oberon"    arg-set="-origin oberon"/>
-    <option id="neptune"   _label="From Neptune"   arg-set="-origin neptune"/>
-    <option id="triton"    _label="From Triton"    arg-set="-origin triton"/>
-    <option id="nereid"    _label="From Nereid"    arg-set="-origin nereid"/>
-    <option id="pluto"     _label="From Pluto"     arg-set="-origin pluto"/>
-    <option id="charon"    _label="From Charon"    arg-set="-origin charon"/>
-    <option id="random"    _label="From Random"    arg-set="-origin random"/>
-    <option id="major"     _label="From Major"     arg-set="-origin major"/>
-   </select>
-  </hgroup>
-
-  <select id="proj">
-   <option id="none"         _label="Render as a Globe"/>
-   <option id="ancient"      _label="Ancient Projection"      arg-set="-projection ancient"/>
-   <option id="azimuthal"    _label="Azimuthal Projection"    arg-set="-projection azimuthal"/>
-   <option id="hemisphere"   _label="Hemisphere Projection"   arg-set="-projection hemisphere"/>
-   <option id="lambert"      _label="Lambert Projection"      arg-set="-projection lambert"/>
-   <option id="mercator"     _label="Mercator Projection"     arg-set="-projection mercator"/>
-   <option id="mollweide"    _label="Mollweide Projection"    arg-set="-projection mollweide"/>
-   <option id="peters"       _label="Peters Projection"       arg-set="-projection peters"/>
-   <option id="orthographic" _label="Orthographic Projection" arg-set="-projection orthographic"/>
-   <option id="rectangular"  _label="Rectangular Projection"  arg-set="-projection rectangular"/>
-  </select>
-
-  <hgroup>
-    <number id="lat" type="spinbutton" arg="-latitude %"
-            _label="Latitude" low="-90" high="90" default="0"/>
-    <number id="longitude" type="spinbutton" arg="-longitude %"
-            _label="Longitude" low="-180" high="180" default="0"/>
-  </hgroup>
-
-  <hgroup>
-    <boolean id="label" _label="Date/Time Stamp" arg-set="-label"/>
-
-    <select id="timestamp">
-      <option id="ul" _label="Upper Left"  arg-set="-labelpos +5+5"/>
-      <option id="ll" _label="Lower Left"  arg-set="-labelpos +5-5"/>
-      <option id="ur" _label="Upper Right"/>
-      <option id="lr" _label="Lower Right" arg-set="-labelpos -5+5"/>
-    </select>
-  </hgroup>
-
-  <number id="radius" type="slider" arg="-radius %"
-          _label="Radius" _low-label="0%" _high-label="100%"
-          low="1" high="100" default="45"/>
-
-  <_description>
-Xplanet draws an image of the Earth, as seen from your favorite vantage
-point in space, correctly shaded for the current position of the Sun.
-This is not included with the XScreenSaver package, but if you don't have
-it already, you can find it at
-&lt;http://xplanet.sourceforge.net/&gt;.
-
-Written by Hari Nair; 2001.
-  </_description>
-</screensaver>
index 03b737edb32df002cadc9e71ee71518fdcc6de93..7b791c64e436c134a43429d5bce4179fd28dc436 100644 (file)
@@ -5,10 +5,12 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="0"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
           convert="invert"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Draws a few swarms of critters flying around the screen, with
 faded color trails behind them.
diff --git a/hacks/config/xsnow.xml b/hacks/config/xsnow.xml
deleted file mode 100644 (file)
index 292c440..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<screensaver name="xsnow" _label="Xsnow">
-
-  <command arg="-root"/>
-
-  <!-- #### -sc          <snowcolor>                           -->
-  <!-- #### -tc          <tree color>                          -->
-  <!-- #### -bg          <background color>                    -->
-  <!-- #### -solidbg     (Performance improvement!)            -->
-  <!-- #### -slc         <sleigh color>                                -->
-  <!-- #### -snowflakes  <numsnowflakes>                       -->
-  <!-- #### -delay       <delay in milliseconds>               -->
-  <!-- #### -unsmooth                                          -->
-  <!-- #### -whirl       <whirlfactor>                         -->
-  <!-- #### -nowind                                            -->
-  <!-- #### -windtimer   <secs between windy periods>          -->
-  <!-- #### -xspeed      <max xspeed snowflakes>               -->
-  <!-- #### -yspeed      <max yspeed snowflakes>               -->
-  <!-- #### -wsnowdepth  <max snow depth on windows>           -->
-  <!-- #### -offset      <shift snow down>                     -->
-  <!-- #### -ssnowdepth  <max snow depth at bottom of display> -->
-  <!-- #### -notrees                                           -->
-  <!-- #### -nosanta                                           -->
-  <!-- #### -norudolf                                          -->
-  <!-- #### -santa       <santa>                               -->
-  <!-- #### -santaspeed  <santa_speed>                         -->
-  <!-- #### -nokeepsnow                                                -->
-  <!-- #### -nokeepsnowonwindows                               -->
-  <!-- #### -nokeepsnowonscreen                                        -->
-  <!-- #### -nonopopup                                         -->
-
-  <_description>
-Draws falling snow and the occasional tiny Santa.
-You can find it at &lt;http://www.euronet.nl/~rja/Xsnow/&gt;.
-
-Written by Rick Jansen.
-  </_description>
-</screensaver>
index 94ac61da02f715104d72e2a7b4c2b16d3e14c0b2..ab297adc194376da0c6e353873c698d85dcc75cc 100644 (file)
@@ -1,19 +1,28 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<screensaver name="xspirograph" _label="XSpiroGraph">
+<screensaver name="xspirograph" _label="XSpirograph">
 
   <command arg="-root"/>
 
+  <number id="delay" type="slider" arg="-subdelay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="20000"
+          convert="invert"/>
+
   <number id="delay" type="slider" arg="-delay %"
-          _label="Duration" _low-label="1 Second" _high-label="1 Minute"
+          _label="Linger" _low-label="1 second" _high-label="1 minute"
           low="1" high="60" default="5"/>
 
   <number id="layers" type="spinbutton" arg="-layers %"
           _label="Layers" low="1" high="10" default="2"/>
 
+  <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+
   <_description>
 Simulates that pen-in-nested-plastic-gears toy from your childhood.
 
+http://en.wikipedia.org/wiki/Spirograph
+
 Written by Rohit Singh; 2000.
   </_description>
 </screensaver>
diff --git a/hacks/config/xteevee.xml b/hacks/config/xteevee.xml
deleted file mode 100644 (file)
index aeaa71f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<screensaver name="xteevee" _label="XTeeVee">
-
-  <command arg="-root"/>
-
-  <boolean id="cycle"  _label="Cycle Through Modes" arg-unset="-no-cycle"/>
-  <boolean id="static" _label="Static Enabled"      arg-unset="-no-static"/>
-  <boolean id="roll"   _label="Rolling Enabled"     arg-unset="-no-roll"/>
-  <boolean id="bars"   _label="Color Bars Enabled"  arg-unset="-no-bars"/>
-
-
-  <_description>
-XTeeVee simulates various television problems, including static,
-loss of vertical hold, and a test pattern.
-
-See also "xanalogtv" for a much more accurate simulation.
-
-Written by Greg Knauss; 2000.
-  </_description>
-</screensaver>
index c0f11fb1b6151a4c2608f8cda62f49c5f8c310ce..a8375ffbfaab8f127e9e036435bf396c34b14fca 100644 (file)
@@ -5,35 +5,37 @@
   <command arg="-root"/>
 
   <number id="delay" type="slider" arg="-delay %"
-          _label="Speed" _low-label="Slow" _high-label="Fast"
-          low="0" high="20000" default="10000"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="10000"
           convert="invert"/>
 
   <number id="duration" type="slider" arg="-duration %"
           _label="Duration" _low-label="10 seconds" _high-label="10 minutes"
           low="10" high="600" default="120"/>
 
-  <boolean id="lenses" _label="Lenses" arg-set="-lenses"/>
-
-  <hgroup>
-   <number id="pixwidth" type="spinbutton" arg="-pixwidth %"
-           _label="Magnification" low="2" high="100" default="10"/>
-   <number id="pixheight" type="spinbutton" arg="-pixheight %"
-           _label="x" low="2" high="100" default="10"/>
-  </hgroup>
-
   <hgroup>
-   <number id="pixspacex" type="spinbutton" arg="-pixspacex %"
-           _label="Border Width" low="0" high="10" default="2"/>
-   <number id="pixspacey" type="spinbutton" arg="-pixspacey %"
-           _label="x" low="0" high="10" default="2"/>
-  </hgroup>
+   <vgroup>
+    <number id="pixwidth" type="spinbutton" arg="-pixwidth %"
+            _label="X magnification" low="2" high="100" default="10"/>
+    <number id="pixspacex" type="spinbutton" arg="-pixspacex %"
+            _label=" X border width" low="0" high="10" default="2"/>
+    <number id="lensoffsetx" type="spinbutton" arg="-lensoffsetx %"
+            _label="   X lens offset" low="1" high="100" default="5"/>
+   </vgroup>
+   <vgroup>
+    <number id="pixheight" type="spinbutton" arg="-pixheight %"
+            _label="Y magnification" low="2" high="100" default="10"/>
+    <number id="pixspacey" type="spinbutton" arg="-pixspacey %"
+            _label=" Y border width" low="0" high="10" default="2"/>
+    <number id="lensoffsety" type="spinbutton" arg="-lensoffsety %"
+            _label="    Y lens offset" low="1" high="100" default="5"/>
+   </vgroup>
+
+   <vgroup>
+    <boolean id="lenses" _label="Lenses" arg-unset="-no-lenses"/>
+    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
+   </vgroup>
 
-  <hgroup>
-   <number id="lensoffsetx" type="spinbutton" arg="-lensoffsetx %"
-           _label="Lens Offset" low="1" high="100" default="5"/>
-   <number id="lensoffsety" type="spinbutton" arg="-lensoffsety %"
-           _label="x" low="1" high="100" default="5"/>
   </hgroup>
 
   <xscreensaver-image />
index 9603455e42cef7866fb7f853beba7e5babf663eb..7b4e482063e2419bda07b761199f3265c2de014e 100644 (file)
@@ -282,6 +282,7 @@ coral_free (Display *dpy, Window window, void *closure)
 static const char *coral_defaults[] = {
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*density:   25",
   "*seeds:     20", /* too many for 640x480, too few for 1280x1024 */
   "*delay:     5",
index 26cb3314f599ffae9b0ae4df9e1ed2f8ba83eb9f..aaa497ee003fd594489476dd2de316082d0b8e4e 100644 (file)
@@ -11,6 +11,7 @@ coral - simulates coral growth, albeit somewhat slowly.
 [\-delay \fInumber\fP]
 [\-density \fInumber\fP]
 [\-seeds \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Simulates coral growth, albeit somewhat slowly.
 .SH OPTIONS
@@ -36,6 +37,9 @@ Density.  1 - 90.  Default: 25.
 .TP 8
 .B \-seeds \fInumber\fP
 Seeds. 1 - 100.  Default: 20.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index f151925cc19fca86327ad141cb7695243ace400a..6f9fa76061320a06e908cc47a3a003eef3083f5d 100644 (file)
@@ -438,6 +438,7 @@ static XrmOptionDescRec critical_options[] = {
 /* Default xrm resources. */
 static const char *critical_defaults[] = {
   ".background:                        black",
+  "*fpsSolid:                  true",
   "*colorscheme:               smooth",
   "*delay:                     10000", 
   "*ncolors:                   64",
index 4b4c22180e48532a43343e73a227398d8996738a..324c1164d9d7a66f906c6b4a8e2066755fb92d7b 100644 (file)
@@ -4,6 +4,7 @@ critical - Draw a system showing self-organizing criticality
 .SH SYNOPSIS
 .B critical
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-delay \fIseconds\fP] [\-random \fIboolean\fP] [\-ncolors \fIint\fP] [\-offset \fIint\fP] 
+[\-fps]
 .SH DESCRIPTION
 The \fIcritical\fP program displays a self-organizing critical system
 that gradually emerges from chaos.
@@ -61,6 +62,9 @@ value interacts with \fIoffset\fP.)
 .TP 8
 .B \-trail \fIinteger\fP
 Length of the trail: between 5 and 100 is nice.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 5ceb91f6f2a2f29d2b1a862c8fe2703fe3d14f9e..491577a2511944f2827768419f04c1dc35319d55 100644 (file)
@@ -73,7 +73,9 @@ static const char sccsid[] = "@(#)crystal.c   4.12 98/09/10 xlockmore";
                                                 "*count:                -500   \n" \
                                                 "*cycles:                200   \n" \
                                                 "*size:                  -15   \n" \
-                                                "*ncolors:               100   \n"
+                                                "*ncolors:               100   \n" \
+                                                "*fpsSolid:              true  \n" \
+
 # define reshape_crystal 0
 # define crystal_handle_event 0
 # include "xlockmore.h"                /* in xscreensaver distribution */
index d428bb946403aa2df060c7ac2f21ecf81744f5de..06bf6546fac0e1fe7b145071276777ffe00666bd 100644 (file)
@@ -15,6 +15,7 @@ crystal - kaleidescope.
 [\-count \fInumber\fP]
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Moving polygons, similar to a kaleidescope (more like a kaleidescope than
 the hack called `kaleid,' actually.)
@@ -53,6 +54,9 @@ Per-frame delay, in microseconds.  Default: 60000 (0.06 seconds.).
 .TP 8
 .B \-ncolors \fInumber\fP
 Number of Colors.  Default: 100.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index a7fd78b5aa08ba559ba00da7002a8a7ae9e413ea..57f3978dfc6e894b5004ab4038e922eec29163bc 100644 (file)
@@ -14,6 +14,7 @@ cwaves - languid sinusoidal colors
 [\-delay \fIusecs\fP]
 [\-waves \fIint\fP]
 [\-colors \fIint\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIcwaves\fP program draws a languidly-scrolling vertical field
 of sinusoidal colors.
@@ -48,6 +49,9 @@ the apparent motion.
 .B \-colors \fIint\fP
 How many colors to use.  Default 800.  The more colors, the smoother the
 blending will be.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 8fd2a94e8df4b62d0b4eebf19bec6b066a4622da..baf3be43562d6e8c0d1faad58ad6df254ac1d751 100644 (file)
@@ -409,6 +409,7 @@ cynosure_free (Display *dpy, Window window, void *closure)
 static const char *cynosure_defaults [] = {
   ".background:                black",
   ".foreground:                white",
+  "*fpsSolid:          true",
   "*delay:             500000",
   "*colors:            128",
   "*iterations:                100",
index da21ec6c0fdc9de4d606b3db017e56b2e031f525..b89eb81039651852226029a745a801377d38951b 100644 (file)
@@ -10,6 +10,7 @@ cynosure - gentle overlapping squares screen saver.
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
 [\-iterations \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 A hack similar to `greynetic', but less frenetic. The first implementation
 was by Stephen Linhart; then Ozymandias G. Desiderata wrote a Java applet
@@ -35,6 +36,9 @@ Number of Colors.  Default: 128.
 .TP 8
 .B \-iterations \fInumber\fP
 Duration.  2 - 200.  Default: 100.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index fc74672c7180c3a7cf5c0290e62a9f09269ecb57..cfb2a0a424d2e8d605c03ee48bcfe4be630dda25 100644 (file)
@@ -339,6 +339,7 @@ static const char *decayscreen_defaults [] = {
   ".background:                        Black",
   ".foreground:                        Yellow",
   "*dontClearRoot:             True",
+  "*fpsSolid:                  True",
 
 #ifdef __sgi   /* really, HAVE_READ_DISPLAY_EXTENSION */
   "*visualID:                  Best",
index 76823f3dd89b88a7e1e481a39f2979ab37452b68..7b0f81615babbd31fe06ef6070d74cbce587cd54 100644 (file)
@@ -12,6 +12,7 @@ decayscreen - make a screen meltdown.
 [\-delay \fIusecs\fP]
 [\-duration \fIsecs\fP]
 [\-mode \fImode\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIdecayscreen\fP program creates a melting effect by randomly
 shifting rectangles around the screen.
@@ -59,6 +60,9 @@ move things toward the center), \fIout\fP (meaning move things away
 from the center), \fImelt\fP (meaning melt straight 
 downward),  \fIstretch\fP (meaning stretch the screen downward),
 and \fIfuzz\fP (meaning go blurry instead of melty).
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 5dab105f07f81b8373907f4b4d4c3d7f1317d7ce..e62190c9c80f7822ec44b72b1d2e5eb2a8b63266 100644 (file)
@@ -19,6 +19,7 @@ deco - draw tacky 70s basement wall panelling
 [\-smooth\-colors]
 [\-golden\-ratio]
 [\-mondrian]
+[\-fps]
 .SH DESCRIPTION
 The \fIdeco\fP program subdivides and colors rectangles randomly.
 It looks kind of like Brady-Bunch-era rec-room wall paneling.
@@ -75,6 +76,9 @@ This ratio is supposed to be more aesthetically pleasing. Default false.
 .B \-no\-mondrian
 Whether to imitiate style of some famous paintings by Piet Mondrian.
 Overrides line-width and colormap options. Default false.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 7b0ac3b4f6ec427786df17f5a0cc670cf672d50a..09c59b37c8dab3e24a103095f4d566cde581a444 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1999-2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1999-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -120,25 +120,31 @@ draw_corners (struct state *st, Drawable w, struct throbber *t)
   int s = (t->size + t->thickness) / 2;
   XPoint points[3];
 
-  points[0].x = 0;        points[0].y = t->y - s;
-  points[1].x = t->x - s; points[1].y = t->y - s;
-  points[2].x = t->x - s; points[2].y = 0;
-  XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin);
-
-  points[0].x = 0;        points[0].y = t->y + s;
-  points[1].x = t->x - s; points[1].y = t->y + s;
-  points[2].x = t->x - s; points[2].y = t->max_size;
-  XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin);
-
-  points[0].x = t->x + s;    points[0].y = 0;
-  points[1].x = t->x + s;    points[1].y = t->y - s;
-  points[2].x = t->max_size; points[2].y = t->y - s;
-  XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin);
+  if (t->y > s)
+    {
+      points[0].x = 0;        points[0].y = t->y - s;
+      points[1].x = t->x - s; points[1].y = t->y - s;
+      points[2].x = t->x - s; points[2].y = 0;
+      XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin);
+
+      points[0].x = t->x + s;    points[0].y = 0;
+      points[1].x = t->x + s;    points[1].y = t->y - s;
+      points[2].x = t->max_size; points[2].y = t->y - s;
+      XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin);
+    }
 
-  points[0].x = t->x + s;    points[0].y = t->max_size;
-  points[1].x = t->x + s;    points[1].y = t->y + s;
-  points[2].x = t->max_size; points[2].y = t->y + s;
-  XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin);
+  if (t->x > s)
+    {
+      points[0].x = 0;        points[0].y = t->y + s;
+      points[1].x = t->x - s; points[1].y = t->y + s;
+      points[2].x = t->x - s; points[2].y = t->max_size;
+      XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin);
+
+      points[0].x = t->x + s;    points[0].y = t->max_size;
+      points[1].x = t->x + s;    points[1].y = t->y + s;
+      points[2].x = t->max_size; points[2].y = t->y + s;
+      XDrawLines (st->dpy, w, t->gc, points, countof(points), CoordModeOrigin);
+    }
 }
 
 
@@ -159,11 +165,6 @@ make_throbber (struct state *st, Drawable d, int w, int h, unsigned long pixel)
   t->speed += (((random() % t->speed) / 2) - (t->speed / 2));
   if (t->speed > 0) t->speed = -t->speed;
 
-  if (random() % 4)
-    t->size = t->max_size;
-  else
-    t->size = t->thickness, t->speed = -t->speed;
-
   flags = GCForeground;
 # ifndef HAVE_COCOA
   if (st->transparent_p)
@@ -208,6 +209,14 @@ make_throbber (struct state *st, Drawable d, int w, int h, unsigned long pixel)
   default: abort(); break;
   }
 
+  if (t->draw == draw_circle) 
+    t->max_size *= 1.5;
+
+  if (random() % 4)
+    t->size = t->max_size;
+  else
+    t->size = t->thickness, t->speed = -t->speed;
+
   return t;
 }
 
@@ -411,7 +420,7 @@ deluxe_free (Display *dpy, Window window, void *closure)
 static const char *deluxe_defaults [] = {
   ".background:                black",
   ".foreground:                white",
-  "*delay:             5000",
+  "*delay:             10000",
   "*count:             5",
   "*thickness:         50",
   "*speed:             15",
index 73de9a02aa087f9aa07085a29c1258c61a5b394a..380e7e5ad6c68d7a4d7f48cc0b885ab06744a486 100644 (file)
@@ -13,6 +13,7 @@ deluxe - pulsing sequence of stars, circles, and lines.
 [\-ncolors \fInumber\fP]
 [\-transparent]
 [\-no-db]
+[\-fps]
 .SH DESCRIPTION
 This draws a pulsing sequence of stars, circles, and lines.
 .SH OPTIONS
@@ -44,6 +45,9 @@ Whether to use transparency.
 .TP 8
 .B \-db | \-no-db
 Whether to double buffer.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 917f9a69c4755b753fd302c6e90648d5a52593ca..d48ce7274e06383a5ca3b1f95d2c5b5d6ccb5b0f 100644 (file)
@@ -56,7 +56,9 @@ static const char sccsid[] = "@(#)demon.c     5.00 2000/11/01 xlockmore";
                                        "*count:   0     \n" \
                                        "*cycles:  1000  \n" \
                                        "*size:    -7    \n" \
-                                       "*ncolors: 64    \n"
+                                       "*ncolors: 64    \n" \
+                                       "*fpsSolid: true    \n" \
+
 # define reshape_demon 0
 # define demon_handle_event 0
 # define UNIFORM_COLORS
index 2439c2856484e7ca90af5e33107e7b08ad04f094..43481bc85ffe411cb98dc03ac8fd10b9aa1b3dff 100644 (file)
@@ -12,6 +12,7 @@ demon - cellular automaton.
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
 [\-size \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 A cellular automaton that starts with a random field, and organizes it into
 stripes and spirals.
@@ -41,6 +42,9 @@ Number of Colors.  Default: 64.
 .TP 8
 .B \-size \fInumber\fP
 Cell Size.  -20 - 20.  Default: -7.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index db3838ff5fa0be75c73a89ec3ffe20425b09d9ff..34c17671cc9534901ad693620e42f1d57a45e543 100644 (file)
@@ -33,10 +33,12 @@ static const char sccsid[] = "@(#)discrete.c        5.00 2000/11/01 xlockmore";
 
 #ifdef STANDALONE
 # define MODE_discrete
-#define DEFAULTS       "*delay: 1000 \n" \
-                                       "*count: 4096 \n" \
+#define DEFAULTS       "*delay: 20000 \n" \
+                                       "*count:  4096 \n" \
                                        "*cycles: 2500 \n" \
-                                       "*ncolors: 100 \n"
+                                       "*ncolors: 100 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define SMOOTH_COLORS
 # define reshape_discrete 0
 # define discrete_handle_event 0
@@ -260,8 +262,8 @@ init_discrete (ModeInfo * mi)
 }
 
 
-ENTRYPOINT void
-draw_discrete (ModeInfo * mi)
+static void
+draw_discrete_1 (ModeInfo * mi)
 {
        Display    *dsp = MI_DISPLAY(mi);
        Window      win = MI_WINDOW(mi);
@@ -279,11 +281,6 @@ draw_discrete (ModeInfo * mi)
        if (hp->pointBuffer == NULL)
                return;
 
-    if (hp->eraser) {
-      hp->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), hp->eraser);
-      return;
-    }
-
        k = count;
        xp = hp->pointBuffer;
 
@@ -400,14 +397,32 @@ draw_discrete (ModeInfo * mi)
                xp++;
        }
        XDrawPoints(dsp, win, gc, hp->pointBuffer, count, CoordModeOrigin);
-       if (++hp->count > cycles) {
-#ifdef STANDALONE
-      hp->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), hp->eraser);
-#endif /* STANDALONE */
-               init_discrete(mi);
-       }
 }
 
+ENTRYPOINT void
+draw_discrete (ModeInfo * mi)
+{
+  discretestruct *hp = &discretes[MI_SCREEN(mi)];
+  int cycles = MI_CYCLES(mi);
+  int i;
+
+  if (hp->eraser) {
+    hp->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), hp->eraser);
+    return;
+  }
+
+  for (i = 0; i < 10; i++) {
+    draw_discrete_1 (mi);
+    hp->count++;
+  }
+
+  if (hp->count > cycles) {
+    hp->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), hp->eraser);
+    init_discrete(mi);
+  }
+}
+
+
 ENTRYPOINT void
 release_discrete(ModeInfo * mi)
 {
index abc6faa33f2ca9416f9e347f2b394ee8202fbe25..63e1787c173504352d8a0620300f3bacd1ef6045 100644 (file)
@@ -10,6 +10,7 @@ discrete - discrete map iterative function fractal systems.
 [\-cycles \fInumber\fP]
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 More ``discrete map'' systems, including new variants of Hopalong and
 Julia, and a few others.
@@ -33,6 +34,9 @@ Per-frame delay, in microseconds.  Default: 1000 (0.001 seconds.).
 .TP 8
 .B \-ncolors \fInumber\fP
 Number of Colors.  Default: 100.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 1653f24d9807220bb8a4fc360bdd6da27cd49208..4e4c809e63cf4a9fd23f05f673c5b23c93e27f33 100644 (file)
@@ -1,5 +1,5 @@
 /* -*- mode: C; tab-width: 4 -*-
- * xscreensaver, Copyright (c) 1992-2006 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -808,6 +808,7 @@ distort_free (Display *dpy, Window window, void *closure)
 static const char *distort_defaults [] = {
        "*dontClearRoot:                True",
        "*background:                   Black",
+    "*fpsSolid:                                true",
 #ifdef __sgi    /* really, HAVE_READ_DISPLAY_EXTENSION */
        "*visualID:                     Best",
 #endif
index ee97bca234cebe08727ffaa96be332211fab44f6..eedb924e80f41b6dc135da5f2f26d8f7c01fe8d5 100644 (file)
@@ -18,6 +18,7 @@ distort \- distort the content of the screen in interesting ways
 [\-blackhole]
 [\-slow]
 [\-shm] [\-no\-shm]
+[\-fps]
 .SH DESCRIPTION
 The \fIdistort\fP program takes an image and lets circular zones of
 distortion wander randomly around it, distorting what is under them.
@@ -105,6 +106,9 @@ Use shared memory extension.
 .TP 8
 .B \-no\-shm
 Don't use shared memory extension.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index e2c722895b64cbef4e452eea4a9bb91974ed4c85..56e89b0a1ef85aa61372448008d00dfb8bd7c198 100644 (file)
@@ -34,7 +34,9 @@ static const char sccsid[] = "@(#)drift.c     5.00 2000/11/01 xlockmore";
 # define MODE_drift
 # define DEFAULTS "*delay: 10000 \n" \
                                  "*count: 30 \n" \
-                                 "*ncolors: 200 \n"
+                                 "*ncolors: 200 \n" \
+                                 "*fpsSolid: true \n" \
+
 # define SMOOTH_COLORS
 # define reshape_drift 0
 # define drift_handle_event 0
index 884420c0358d3b730461ee3e811a67825d0fc812..f0a9be8811355913219a665bfdd29f8694c0e5ce 100644 (file)
@@ -5,6 +5,7 @@ drift - draws drifting recursive fractal cosmic flames
 .B drift
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-count \fIinteger\fP] [\-grow] [\-no\-grow] [\-liss] [\-no\-liss]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIdrift\fP program draws drifting recursive fractal cosmic flames
 .SH OPTIONS
@@ -46,6 +47,9 @@ Whether fractals should grow; otherwise, they are animated.
 .B \-no\-liss
 Whether we should use lissajous figures to get points.
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index c77cee690f0433fd1fb39dbef6d7a04755062509..4eae8c945d288618c45446b92b63d402e1c293ed 100644 (file)
 static const char *epicycle_defaults [] = {
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*colors:    100",
   "*color0:    red",
-  "*delay:     1000",
+  "*delay:     20000",
   "*holdtime:  2",
   "*lineWidth: 4",
   "*minCircles:  2",
index 3af0ed5f13b510b1de7281ac8169c98db7b73fd5..290884f88cb531d596bdbf0c89346d229723ef2e 100644 (file)
@@ -17,6 +17,7 @@ epicycle - draws a point moving around a circle which moves around a cicle which
 .SH SYNOPSIS
 .B epicycle 
 [\-display \fIhost:display.screen\fP] [\-root] [\-window] [\-mono] [\-install] [\-noinstall] [\-visual \fIviz\fP] [\-colors \fIN\fP] [\-foreground \fIname\fP] [\-color\-shift \fIN\fP] [\-delay \fImicroseconds\fP] [\-holdtime \fIseconds\fP] [\-linewidth \fIN\fP] [\-min_circles \fIN\fP] [\-max_circles \fIN\fP] [\-min_speed \fInumber\fP] [\-max_speed \fInumber\fP] [\-harmonics \fIN\fP] [\-timestep \fInumber\fP] [\-divisor_poisson \fIprobability\fP] [\-size_factor_min \fInumber\fP] [\-size_factor_max \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 The epicycle program draws the path traced out by a point on the edge
 of a circle.  That circle rotates around a point on the rim of another
@@ -136,6 +137,9 @@ parents.
 .TP 8
 .B \-size_factor_max \fInumber\fP
 Epicycles are never more than this factor smaller than their parents.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH RESOURCES
 .EX
 Option            Resource               Default Value
index 14809b9f7d80095788707c93001ed5b08b8da5eb..1674fbfc0be65dd743b306361ee0306c2ebc55ff 100644 (file)
@@ -478,6 +478,7 @@ eruption_free (Display *dpy, Window window, void *closure)
 static const char *eruption_defaults [] = {
   ".background: black",
   ".foreground: white",
+  "*fpsTop:    true",
   "*cycles:   80",
   "*ncolors:  256",
   "*delay:    10000",
index a0a848d0845b1df91b0141dcda455c0f10043e0d..a1f2d7a13443a10b6a238bdccc12828031636800 100644 (file)
@@ -14,6 +14,7 @@ Eruption.
 [\-Gravity \fInumber\fP]
 [\-delay \fInumber\fP]
 [\-cycles \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 This hack creates an eruption of pieces of hot volcanic rock. 
 Ported from the demo effects collection (http://demo-effects.sourceforge.net)
@@ -49,6 +50,9 @@ Per-frame delay, in microseconds.  Default: 5000 (0.01 seconds.).
 .TP 8
 .B \-cycles \fInumber\fP
 Duration.  10 - 3000.  Default: 80.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index da4cd795f52bf53b6b5fa29a310ed0608ea88b6c..bb3054d19be3c7e2f5ca630e14a8493c0052336b 100644 (file)
@@ -45,7 +45,9 @@ static const char sccsid[] = "@(#)euler2d.c   5.00 2000/11/01 xlockmore";
 # define DEFAULTS      "*delay:   10000 \n" \
                                        "*count:   1024  \n" \
                                        "*cycles:  3000  \n" \
-                                       "*ncolors: 64    \n"
+                                       "*ncolors: 64    \n" \
+                                       "*fpsSolid: true    \n" \
+
 # define reshape_euler2d 0
 # define euler2d_handle_event 0
 # define SMOOTH_COLORS
@@ -874,6 +876,6 @@ refresh_euler2d (ModeInfo * mi)
        MI_CLEARWINDOW(mi);
 }
 
-XSCREENSAVER_MODULE ("Euler2d", euler2d)
+XSCREENSAVER_MODULE ("Euler2D", euler2d)
 
 #endif /* MODE_euler2d */
index 2284a032bd0ff5d2abcd7047c6903ce6787a0c27..ddfd6192f969a9b34df107f796d23453c5cd3362 100644 (file)
@@ -12,6 +12,7 @@ euler2d - two dimensional incompressible inviscid fluid flow.
 [\-cycles \fInumber\fP]
 [\-ncolors \fInumber\fP]
 [\-delay \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Simulates two dimensional incompressible inviscid fluid flow.
 .SH OPTIONS
@@ -40,6 +41,9 @@ Number of Colors.  Default: 64.
 .TP 8
 .B \-delay \fInumber\fP
 Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 1239514fbddc7e8304116d59245ddcb1ec816a61..a44bdb3b60d2fa320b334e30b07fccc514add44a 100644 (file)
@@ -33,7 +33,9 @@ static const char sccsid[] = "@(#)fadeplot.c  5.00 2000/11/01 xlockmore";
 # define DEFAULTS      "*delay: 30000 \n" \
                                        "*count: 10 \n" \
                                        "*cycles: 1500 \n" \
-                                       "*ncolors: 64 \n"
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define BRIGHT_COLORS
 # define UNIFORM_COLORS
 # define reshape_fadeplot 0
@@ -229,6 +231,6 @@ release_fadeplot (ModeInfo * mi)
        }
 }
 
-XSCREENSAVER_MODULE ("Fadeplot", fadeplot)
+XSCREENSAVER_MODULE ("FadePlot", fadeplot)
 
 #endif /* MODE_fadeplot */
index 4ee0a034e6b85a0546a0dee80d9324ad811be5e9..d525afdb9c46fdc016dc7db4d3c1b31400003826 100644 (file)
@@ -11,6 +11,7 @@ fadeplot - draws a waving ribbon following a sinusoidal path.
 [\-cycles \fInumber\fP]
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Draws what looks like a waving ribbon following a sinusoidal path.
 .SH OPTIONS
@@ -36,6 +37,9 @@ Per-frame delay, in microseconds.  Default: 30000 (0.03 seconds.).
 .TP 8
 .B \-ncolors \fInumber\fP
 Number of colors.  Default: 64.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index db894da6e40250aae6b90ea2f3774ca79d8b68e8..062f62ffd3e65f83b304ef88d986d19aca272302 100644 (file)
@@ -34,7 +34,9 @@ static const char sccsid[] = "@(#)fiberlamp.c 5.00 2000/11/01 xlockmore";
 #define DEFAULTS       "*delay: 10000  \n" \
                                        "*count: 500    \n" \
                                        "*cycles: 10000 \n" \
-                                       "*ncolors: 64   \n"
+                                       "*ncolors: 64   \n" \
+                                       "*fpsTop: true  \n" \
+
 # define UNIFORM_COLORS
 # define fiberlamp_handle_event 0
 # include "xlockmore.h"                /* in xscreensaver distribution */
index c8d960ad270ec33866567de54b0693b377e3733e..da0d4f4e79dcdfb2214dbf3009060eeac60076e4 100644 (file)
@@ -11,6 +11,7 @@ fiberlamp - Fiber Optic Lamp
 [\-cycles \fInumber\fP]
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Displays a Fiber Optic Lamp.
 .SH OPTIONS
@@ -37,6 +38,9 @@ Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
 .TP 8
 .B \-ncolors \fInumber\fP
 Number of Colors.  Default: 64.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 55be254faad2510747b7504d14f247311a5071ac..ece881a8ad220c8ce1670c1d17dfe5c7956ddbea 100644 (file)
@@ -13,6 +13,7 @@ fireworkx - pyrotechnics simulation eye-candy.
 [\-shoot]
 [\-delay \fInumber\fP]
 [\-maxlife \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Simulates fireworks (pyrotechnics); explodes better on faster machines.
 .SH OPTIONS
@@ -44,6 +45,9 @@ Maximum decay period for an explosion. (Default: 2000)
 .TP 8
 .B \-verbose
 for scientific purposes..!
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index c0c33b271456c0870ab5d2296fbdb993ce9a1a71..fee5198770452b864534b46435577cfcf3cff828 100644 (file)
@@ -45,7 +45,9 @@ static const char sccsid[] = "@(#)flag.c      4.02 97/04/01 xlockmore";
                                        "*ncolors:              200     \n"             \
                                        "*bitmap:                               \n"             \
                                        "*font:         " DEF_FONT      "\n"    \
-                                       "*text:                                 \n"
+                                       "*text:                                 \n" \
+                                       "*fpsSolid:             true    \n" \
+
 # define BRIGHT_COLORS
 # define UNIFORM_COLORS
 # define reshape_flag 0
@@ -351,7 +353,9 @@ make_flag_bits(ModeInfo *mi)
          fp->image = XGetImage(dpy, bitmap, 0, 0, width, height, 1L, XYPixmap);
          XFreePixmap(dpy, bitmap);
        }
-  else
+
+
+  if (! fp->image)
        {
       char *bits = (char *) malloc (sizeof(bob_bits));
       memcpy (bits, bob_bits, sizeof(bob_bits));
index 1c7d93bfad1ce635f0c9c0120370744bf7c82f65..dcf93f7683c93c4d777022f8df4dee9d935343d5 100644 (file)
@@ -5,6 +5,7 @@ flag - draws a waving flag, containing text or an image
 .B flag
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-size \fIinteger\fP] [\-text \fIstring\fP] [\-font \fIfont\fP] [\-bitmap \fIxbm-file\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIflag\fP program draws a waving flag that contains text or a bitmap.
 .SH OPTIONS
@@ -59,6 +60,9 @@ the builtin text or the builtin bitmap will be chosen randomly.
 .B \-font \fIfont\fP
 The font in which to draw the text; the default is
 "-*-helvetica-bold-r-*-240-*".
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index fcc488e51c8f25e7c79e3c5411079ff597f62c7c..3b3293062c75bfc0d773d371dbc8b5e2631a0c3f 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1993, 1995, 1996, 1998
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1993-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -413,6 +412,7 @@ int matherr(x)
 static const char *flame_defaults [] = {
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*colors:    64",
   "*iterations:        25",
   "*delay:     50000",
index a64697377e61f42dad2e43512c5a55be8e1dc535..dae4d1b05b082119765642330f6c2ae97a1ea385 100644 (file)
@@ -4,6 +4,7 @@ flame - draw weird cosmic fractals
 .SH SYNOPSIS
 .B flame
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-colors \fIinteger\fP] [\-iterations \fIinteger\fP] [\-points \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-delay2 \fImicroseconds\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIflame\fP program generates colorful fractal displays.
 .SH OPTIONS
@@ -42,6 +43,9 @@ or about 1/20th second.
 .B \-delay2 \fImicroseconds\fP
 How long we should wait before clearing the screen when each run ends.
 Default 2000000, or two seconds.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 2461cb288fe3c4eec014bc5d8d3c6a953342b4e1..64347332f7b55d2a1df40ddb57b1180b94e8c93c 100644 (file)
@@ -103,6 +103,7 @@ static const char sccsid[] = "@(#)flow.c    5.00 2000/11/01 xlockmore";
                                        "*size:        -10   \n" \
                                        "*cycles:      10000 \n" \
                                        "*ncolors:     200   \n"
+
 # define reshape_flow 0
 # define flow_handle_event 0
 # include "xlockmore.h"                /* in xscreensaver distribution */
index d513fd3c427392f2ce15dba9279559fff54d5174..ea3a2956b6cb4bca036755930a5a835ab5f083d5 100644 (file)
@@ -17,10 +17,11 @@ flow - strange attractors.
 [\-dbuf|\-no\-dbuf]
 [\-ncolors \fInumber\fP]
 [\-delay \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Strange attractors formed of flows in a 3D differential equation phase
 space.  Features the popular attractors described by \fBLorentz\fP,
-\fBRoessler\fP, \fBBirkhoff\fP and \fBDuffing\fP, and can now discover
+\fBRoessler\fP, \fBBirkhoff\fP and \fBDuffing\fP, and can discover
 entirely new attractors by itself.
 .SH OPTIONS
 .TP 8
@@ -95,6 +96,9 @@ Number of Colors.  Default: 200.
 .TP 8
 .B \-delay \fInumber\fP
 Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index f0954fc2a55022e842f72298a5782d5a1f750536..958f7bc1b37272f34699143ef2380e9c572e1044 100644 (file)
@@ -94,10 +94,11 @@ static void
 draw_fps_string (b_state *state)
 {  
   XFillRectangle (state->dpy, state->b, state->erase_gc,
-                 0, state->xgwa.height - state->font_height,
-                 state->xgwa.width, state->font_height);
+                 0, state->xgwa.height - state->font_height*3 - 20,
+                 state->xgwa.width, state->font_height*3 + 20);
   XDrawImageString (state->dpy, state->b, state->font_gc,
-                   0, state->xgwa.height - state->font_baseline,
+                   10, state->xgwa.height - state->font_height*2 -
+                    state->font_baseline - 10,
                    state->fps_str, strlen(state->fps_str));
 }
 
@@ -132,7 +133,8 @@ check_window_moved (b_state *state)
   state->xmin = wx;
   state->ymin = wy;
   state->xmax = state->xmin + state->xgwa.width;
-  state->ymax = state->ymin + state->xgwa.height - state->font_height;
+  state->ymax = state->ymin + state->xgwa.height - (state->font_height*3) -
+    (state->font_height ? 22 : 0);
 
   if (state->dbuf && (state->ba))
     {
@@ -154,8 +156,8 @@ check_window_moved (b_state *state)
        XClearWindow (state->dpy, state->window);
       else if (state->fps_p && oymax != state->ymax)
        XFillRectangle (state->dpy, state->b, state->erase_gc,
-                       0, state->xgwa.height - state->font_height,
-                       state->xgwa.width, state->font_height);
+                       0, state->xgwa.height - state->font_height*3,
+                       state->xgwa.width, state->font_height*3);
     }
 }
 
@@ -331,11 +333,10 @@ fluidballs_init (Display *dpy, Window window)
   if (state->fps_p)
     {
       XFontStruct *font;
-      char *fontname = get_string_resource (dpy, "font", "Font");
-      const char *def_font = "fixed";
-      if (!fontname || !*fontname) fontname = (char *)def_font;
+      char *fontname = get_string_resource (dpy, "fpsFont", "Font");
+      if (!fontname) fontname = "-*-courier-bold-r-normal-*-180-*";
       font = XLoadQueryFont (dpy, fontname);
-      if (!font) font = XLoadQueryFont (dpy, def_font);
+      if (!font) font = XLoadQueryFont (dpy, "fixed");
       if (!font) exit(-1);
       gcv.font = font->fid;
       gcv.foreground = get_pixel_resource(state->dpy, state->xgwa.colormap,
@@ -449,9 +450,8 @@ check_wall_clock (b_state *state, float max_d)
          float fps = state->frame_count / elapsed;
          float cps = state->collision_count / elapsed;
          
-         sprintf (state->fps_str, 
-                  " FPS: %.2f  Collisions: %.3f/frame  Max motion: %.3f",
-                  fps, cps/fps, max_d);
+         sprintf (state->fps_str, "Collisions: %.3f/frame  Max motion: %.3f",
+                  cps/fps, max_d);
          
          draw_fps_string(state);
        }
@@ -763,9 +763,8 @@ fluidballs_free (Display *dpy, Window window, void *closure)
 static const char *fluidballs_defaults [] = {
   ".background:                black",
   ".foreground:                yellow",
-  ".textColor:         yellow",
+  ".textColor:         white",
   "*mouseForeground:   white",
-  ".font:              -*-helvetica-*-r-*-*-*-180-*-*-p-*-*-*",
   "*delay:             10000",
   "*count:             300",
   "*size:              25",
@@ -774,7 +773,6 @@ static const char *fluidballs_defaults [] = {
   "*wind:              0.00",
   "*elasticity:                0.97",
   "*timeScale:         1.0",
-  "*doFPS:             False",
   "*shake:             True",
   "*shakeThreshold:    0.015",
   "*doubleBuffer:      True",
@@ -793,8 +791,6 @@ static XrmOptionDescRec fluidballs_options [] = {
   { "-gravity",                ".gravity",     XrmoptionSepArg, 0 },
   { "-wind",           ".wind",        XrmoptionSepArg, 0 },
   { "-elasticity",     ".elasticity",  XrmoptionSepArg, 0 },
-  { "-fps",            ".doFPS",       XrmoptionNoArg, "True" },
-  { "-no-fps",         ".doFPS",       XrmoptionNoArg, "False" },
   { "-shake",          ".shake",       XrmoptionNoArg, "True" },
   { "-no-shake",       ".shake",       XrmoptionNoArg, "False" },
   { "-random",         ".random",      XrmoptionNoArg, "True" },
@@ -806,4 +802,4 @@ static XrmOptionDescRec fluidballs_options [] = {
 };
 
 
-XSCREENSAVER_MODULE ("Fluidballs", fluidballs)
+XSCREENSAVER_MODULE ("FluidBalls", fluidballs)
index b5bd25217e339163a60114b28f3afe7dc8fe3bd3..650fe63c7c27abcfe5e6556923bcc367a8d3f202 100644 (file)
@@ -62,8 +62,8 @@ Make the balls be random sizes.  Default.
 Whether to shake the box if the system seems to have settled down.
 "Shake" means "change the direction of Down."
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index b35178fc3690a62a2da3d58cca200d3459b8120e..f60d20d1d762ded5826c071ddad67b1a39821227 100644 (file)
@@ -17,6 +17,7 @@ fontglide - characters float onto the screen to form words
 [\-trails]
 [\-db]
 [\-debug]
+[\-fps]
 .SH DESCRIPTION
 The \fIfontglide\fP program reads text from a subprocess and puts it on
 the screen using large characters that glide in from the edges,
@@ -86,6 +87,9 @@ Turn off double-buffering.  It may be faster, but will flicker.
 .B \-debug\fP
 Draw some boxes showing character metrics, and print the name of the
 current font to stderr.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 07d96e6abc197023d9172ead4de45b5e605af767..23392c741da996ef2fc06d8d7f10baf0f6832b3e 100644 (file)
@@ -28,7 +28,9 @@
 
 #ifdef STANDALONE
 # define DEFAULTS   "*delay:            500000 \n"  \
-                    "*ncolors:          20     \n"
+                    "*ncolors:          20     \n" \
+                    "*fpsSolid:          true     \n" \
+
 # include "xlockmore.h"     /* from the xscreensaver distribution */
 # define refresh_trees 0
 # define reshape_trees 0
index 5fccac49b0b8d39d4d1ce481b48299abdaa03dca..44472215900d8f13967c667057cf1019661c5ada 100644 (file)
@@ -5,6 +5,7 @@ forest - draws a fractal forest
 .B forest
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIforest\fP program draws a fractal forest.
 .SH OPTIONS
@@ -30,6 +31,9 @@ or the id number (decimal or hex) of a specific visual.
 .B \-ncolors \fIinteger\fP
 How many colors should be used (if possible).  Default 20.
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
diff --git a/hacks/fps.c b/hacks/fps.c
new file mode 100644 (file)
index 0000000..2e1ba3f
--- /dev/null
@@ -0,0 +1,243 @@
+/* fps, Copyright (c) 2001-2008 Jamie Zawinski <jwz@jwz.org>
+ * Draw a frames-per-second display (Xlib and OpenGL).
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation.  No representations are made about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or 
+ * implied warranty.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include "screenhackI.h"
+#include "fpsI.h"
+
+fps_state *
+fps_init (Display *dpy, Window window)
+{
+  fps_state *st;
+  const char *font;
+  XFontStruct *f;
+  int first, last;
+
+  if (! get_boolean_resource (dpy, "doFPS", "DoFPS"))
+    return 0;
+
+  st = (fps_state *) calloc (1, sizeof(*st));
+
+  st->dpy = dpy;
+  st->window = window;
+  st->clear_p = get_boolean_resource (dpy, "fpsSolid", "FPSSolid");
+
+  font = get_string_resource (dpy, "fpsFont", "Font");
+
+  if (!font) font = "-*-courier-bold-r-normal-*-180-*";
+  f = XLoadQueryFont (dpy, font);
+  if (!f) f = XLoadQueryFont (dpy, "fixed");
+
+  first = f->min_char_or_byte2;
+  last = f->max_char_or_byte2;
+
+  {
+    XWindowAttributes xgwa;
+    XGCValues gcv;
+    XGetWindowAttributes (dpy, window, &xgwa);
+    gcv.font = f->fid;
+    gcv.foreground = 
+      get_pixel_resource (st->dpy, xgwa.colormap, "foreground", "Foreground");
+    st->draw_gc = XCreateGC (dpy, window, GCFont|GCForeground, &gcv);
+    gcv.foreground =
+      get_pixel_resource (st->dpy, xgwa.colormap, "background", "Background");
+    st->erase_gc = XCreateGC (dpy, window, GCFont|GCForeground, &gcv);
+  }
+
+  st->font = f;
+  st->x = 10;
+  st->y = 10;
+  if (get_boolean_resource (dpy, "fpsTop", "FPSTop"))
+    st->y = - (st->font->ascent + st->font->descent + 10);
+
+  strcpy (st->string, "FPS: ... ");
+
+  return st;
+}
+
+void
+fps_free (fps_state *st)
+{
+  if (st->draw_gc)  XFreeGC (st->dpy, st->draw_gc);
+  if (st->erase_gc) XFreeGC (st->dpy, st->erase_gc);
+  if (st->font) XFreeFont (st->dpy, st->font);
+  free (st);
+}
+
+
+void
+fps_slept (fps_state *st, unsigned long usecs)
+{
+  st->slept += usecs;
+}
+
+
+double
+fps_compute (fps_state *st, unsigned long polys)
+{
+  if (! st) return 0;  /* too early? */
+
+  /* Every N frames (where N is approximately one second's worth of frames)
+     check the wall clock.  We do this because checking the wall clock is
+     a slow operation.
+   */
+  if (st->frame_count++ >= st->last_ifps)
+    {
+# ifdef GETTIMEOFDAY_TWO_ARGS
+      struct timezone tzp;
+      gettimeofday(&st->this_frame_end, &tzp);
+# else
+      gettimeofday(&st->this_frame_end);
+# endif
+
+      if (st->prev_frame_end.tv_sec == 0)
+        st->prev_frame_end = st->this_frame_end;
+    }
+
+  /* If we've probed the wall-clock time, regenerate the string.
+   */
+  if (st->this_frame_end.tv_sec != st->prev_frame_end.tv_sec)
+    {
+      double uprev_frame_end = (st->prev_frame_end.tv_sec +
+                                ((double) st->prev_frame_end.tv_usec
+                                 * 0.000001));
+      double uthis_frame_end = (st->this_frame_end.tv_sec +
+                                ((double) st->this_frame_end.tv_usec
+                                 * 0.000001));
+      double fps = st->frame_count / (uthis_frame_end - uprev_frame_end);
+      double idle = (((double) st->slept * 0.000001) /
+                     (uthis_frame_end - uprev_frame_end));
+      double load = 100 * (1 - idle);
+
+      if (load < 0) load = 0;  /* well that's obviously nonsense... */
+
+      st->prev_frame_end = st->this_frame_end;
+      st->frame_count = 0;
+      st->slept       = 0;
+      st->last_ifps   = fps;
+      st->last_fps    = fps;
+
+      sprintf (st->string, (polys 
+                            ? "FPS:   %.1f \nLoad:  %.1f%% "
+                            : "FPS:  %.1f \nLoad: %.1f%% "),
+               fps, load);
+
+      if (polys > 0)
+        {
+          const char *s = "";
+# if 0
+          if      (polys >= (1024 * 1024)) polys >>= 20, s = "M";
+          else if (polys >= 2048)          polys >>= 10, s = "K";
+# endif
+
+          strcat (st->string, "\nPolys: ");
+          if (polys >= 1000000)
+            sprintf (st->string + strlen(st->string), "%lu,%03lu,%03lu%s ",
+                     (polys / 1000000), ((polys / 1000) % 1000),
+                     (polys % 1000), s);
+          else if (polys >= 1000)
+            sprintf (st->string + strlen(st->string), "%lu,%03lu%s ",
+                     (polys / 1000), (polys % 1000), s);
+          else
+            sprintf (st->string + strlen(st->string), "%lu%s ", polys, s);
+        }
+    }
+
+  return st->last_fps;
+}
+
+
+
+/* Width (and optionally height) of the string in pixels.
+ */
+static int
+string_width (XFontStruct *f, const char *c, int *height_ret)
+{
+  int x = 0;
+  int max_w = 0;
+  int h = f->ascent + f->descent;
+  while (*c)
+    {
+      int cc = *((unsigned char *) c);
+      if (*c == '\n')
+        {
+          if (x > max_w) max_w = x;
+          x = 0;
+          h += f->ascent + f->descent;
+        }
+      else
+        x += (f->per_char
+              ? f->per_char[cc-f->min_char_or_byte2].width
+              : f->min_bounds.rbearing);
+      c++;
+    }
+  if (x > max_w) max_w = x;
+  if (height_ret) *height_ret = h;
+
+  return max_w;
+}
+
+
+/* This function is used only in Xlib mode.  For GL mode, see glx/fps-glx.c.
+ */
+void
+fps_draw (fps_state *st)
+{
+  XWindowAttributes xgwa;
+  const char *string = st->string;
+  const char *s;
+  int x = st->x;
+  int y = st->y;
+  int lines = 1;
+  int lh = st->font->ascent + st->font->descent;
+
+  XGetWindowAttributes (st->dpy, st->window, &xgwa);
+
+  for (s = string; *s; s++) 
+    if (*s == '\n') lines++;
+
+  if (y < 0)
+    y = -y + (lines-1) * lh;
+  else
+    y = xgwa.height - y;
+
+  y -= lh * (lines-1) + st->font->descent;
+
+  /* clear the background */
+  if (st->clear_p)
+    {
+      int w, h;
+      int lh = st->font->ascent + st->font->descent;
+      w = string_width (st->font, string, &h);
+      XFillRectangle (st->dpy, st->window, st->erase_gc,
+                      x - st->font->descent,
+                      y - lh,
+                      w + 2*st->font->descent,
+                      h + 2*st->font->descent);
+    }
+
+  /* draw the text */
+  while (lines)
+    {
+      s = strchr (string, '\n');
+      if (! s) s = string + strlen(string);
+      XDrawString (st->dpy, st->window, st->draw_gc,
+                   x, y, string, s - string);
+      string = s;
+      string++;
+      lines--;
+      y += lh;
+    }
+}
diff --git a/hacks/fps.h b/hacks/fps.h
new file mode 100644 (file)
index 0000000..6f9559c
--- /dev/null
@@ -0,0 +1,28 @@
+/* fps, Copyright (c) 2001-2008 Jamie Zawinski <jwz@jwz.org>
+ * Draw a frames-per-second display (Xlib and OpenGL).
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation.  No representations are made about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or 
+ * implied warranty.
+ */
+
+#ifndef __XSCREENSAVER_FPS_H__
+# define __XSCREENSAVER_FPS_H__
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+typedef struct fps_state fps_state;
+
+extern fps_state *fps_init (Display *, Window);
+extern void fps_free (fps_state *);
+extern void fps_slept (fps_state *, unsigned long usecs);
+extern double fps_compute (fps_state *, unsigned long polys);
+extern void fps_draw (fps_state *);
+
+#endif /* __XSCREENSAVER_FPS_H__ */
diff --git a/hacks/fpsI.h b/hacks/fpsI.h
new file mode 100644 (file)
index 0000000..e656362
--- /dev/null
@@ -0,0 +1,36 @@
+/* fps, Copyright (c) 2001-2008 Jamie Zawinski <jwz@jwz.org>
+ * Draw a frames-per-second display (Xlib and OpenGL).
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation.  No representations are made about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or 
+ * implied warranty.
+ */
+
+#ifndef __XSCREENSAVER_FPSI_H__
+# define __XSCREENSAVER_FPSI_H__
+
+#include "fps.h"
+
+struct fps_state {
+  Display *dpy;
+  Window window;
+  int x, y;
+  XFontStruct *font;
+  unsigned long font_dlist;  /* for glx/fps-gl.c */
+  Bool clear_p;
+  char string[1024];
+
+  GC draw_gc, erase_gc;
+
+  int last_ifps;
+  double last_fps;
+  int frame_count;
+  unsigned long slept;
+  struct timeval prev_frame_end, this_frame_end;
+};
+
+#endif /* __XSCREENSAVER_FPSI_H__ */
index 9e625fc26ae3b5111afbb9b37f9b2ca7a4fd8b72..a85cf0e833762216cf02d3a32f2170b503046574 100644 (file)
@@ -17,6 +17,7 @@ fuzzyflakes - falling snowflakes/flower shapes
 [\-no-db]
 (\-color \fIstring\fP)
 (\-random-colors)
+[\-fps]
 .SH DESCRIPTION
 The
 .I fuzzyflakes
@@ -79,6 +80,9 @@ The default color is #efbea5
 .B \-random-colors
 This enables the random color generation.  It is disabled by default.
 It overrides anything from -color
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index f060591c0eed2a8b6d930d9d21db7caf57e1f63d..6a72738e508dda81b089ba216c6e082809ff7e97 100644 (file)
@@ -43,7 +43,9 @@ static const char sccsid[] = "@(#)galaxy.c 4.04 97/07/28 xlockmore";
 # define DEFAULTS      "*delay:  20000  \n"   \
                                        "*count:  -5     \n"   \
                                        "*cycles:  250   \n"   \
-                                       "*ncolors:  64   \n"
+                                       "*ncolors:  64   \n" \
+                                       "*fpsSolid:  true   \n" \
+
 # define UNIFORM_COLORS
 # define reshape_galaxy 0
 # define galaxy_handle_event 0
index e208de961e3abcf3c7a1b0f4072ef7c895a46b78..1a2a79da8666e47124b97acee54e4f639da1f956 100644 (file)
@@ -5,6 +5,7 @@ galaxy - draws spinning galaxies
 .B galaxy
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP] [\-size \fIinteger\fP] [\-tracks] [\-no\-tracks] [\-spin] [\-no\-spin]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIgalaxy\fP program draws spinning galaxies.
 .SH OPTIONS
@@ -45,6 +46,9 @@ the color wheel.
 .B \-spin
 .TP 8
 .B \-no\-spin
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 9a9f4b68d76275f71763c7fdb7c553a16604b96a..aecbaac8897a04f2a883b6ab9c30a3af5dd3da43 100644 (file)
@@ -73,13 +73,13 @@ UTIL_OBJS   = $(UTILS_SRC)/colors.o $(UTILS_SRC)/hsv.o \
                  $(UTILS_SRC)/visual.o $(UTILS_SRC)/visual-gl.o \
                   $(UTILS_SRC)/yarandom.o $(UTILS_SRC)/xshm.o
 
-SRCS           = xscreensaver-gl-helper.c normals.c glxfonts.c \
+SRCS           = xscreensaver-gl-helper.c normals.c glxfonts.c fps-gl.c \
                  atlantis.c b_draw.c b_lockglue.c b_sphere.c bubble3d.c \
                  buildlwo.c cage.c dolphin.c gears.c lament.c moebius.c \
                  morph3d.c pipeobjs.c pipes.c rubik.c s1_1.c s1_2.c s1_3.c \
                  s1_4.c s1_5.c s1_6.c s1_b.c shark.c sproingies.c \
                  sproingiewrap.c stairs.c superquadrics.c swim.c whale.c \
-                 xlock-gl-utils.c fps.c xpm-ximage.c glplanet.c pulsar.c \
+                 xlock-gl-utils.c xpm-ximage.c glplanet.c pulsar.c \
                  extrusion.c extrusion-helix2.c extrusion-helix3.c \
                  extrusion-helix4.c extrusion-joinoffset.c extrusion-screw.c \
                  extrusion-taper.c extrusion-twistoid.c sierpinski3d.c \
@@ -106,15 +106,15 @@ SRCS              = xscreensaver-gl-helper.c normals.c glxfonts.c \
                  timetunnel.c juggler3d.c topblock.c glschool.c \
                  glschool_gl.c glschool_alg.c glcells.c voronoi.c \
                  moebiusgears.c lockward.c cubicgrid.c hypnowheel.c \
-                 skytentacles.c
+                 skytentacles.c teapot.c
 
-OBJS           = xscreensaver-gl-helper.o normals.o glxfonts.o \
+OBJS           = xscreensaver-gl-helper.o normals.o glxfonts.o fps-gl.o \
                  atlantis.o b_draw.o b_lockglue.o b_sphere.o bubble3d.o \
                  buildlwo.o cage.o dolphin.o gears.o lament.o moebius.o \
                  morph3d.o pipeobjs.o pipes.o rubik.o s1_1.o s1_2.o s1_3.o \
                  s1_4.o s1_5.o s1_6.o s1_b.o shark.o sproingies.o \
                  sproingiewrap.o stairs.o superquadrics.o swim.o whale.o \
-                 xlock-gl-utils.o fps.o xpm-ximage.o glplanet.o pulsar.o \
+                 xlock-gl-utils.o xpm-ximage.o glplanet.o pulsar.o \
                  extrusion.o extrusion-helix2.o extrusion-helix3.o \
                  extrusion-helix4.o extrusion-joinoffset.o extrusion-screw.o \
                  extrusion-taper.o extrusion-twistoid.o sierpinski3d.o \
@@ -141,7 +141,7 @@ OBJS                = xscreensaver-gl-helper.o normals.o glxfonts.o \
                  timetunnel.o juggler3d.o topblock.o glschool.o \
                  glschool_gl.o glschool_alg.o glcells.o voronoi.o \
                  moebiusgears.o lockward.o cubicgrid.o hypnowheel.o \
-                 skytentacles.o
+                 skytentacles.o teapot.o
 
 GL_EXES                = cage gears moebius pipes sproingies stairs superquadrics \
                  morph3d rubik atlantis lament bubble3d glplanet pulsar \
@@ -163,8 +163,8 @@ XSHM_OBJS   = $(UTILS_BIN)/xshm.o
 GRAB_OBJS      = $(UTILS_BIN)/grabclient.o grab-ximage.o $(XSHM_OBJS)
 EXES           = @GL_UTIL_EXES@ $(HACK_EXES)
 
-HACK_OBJS      = $(HACK_BIN)/screenhack.o \
-                 xlockmore-gl.o xlock-gl-utils.o fps.o \
+HACK_OBJS      = $(HACK_BIN)/screenhack.o $(HACK_BIN)/fps.o \
+                 xlockmore-gl.o xlock-gl-utils.o glxfonts.o fps-gl.o \
                  $(UTILS_BIN)/resources.o $(UTILS_BIN)/visual.o \
                  $(UTILS_BIN)/visual-gl.o $(UTILS_BIN)/usleep.o \
                  $(UTILS_BIN)/yarandom.o $(UTILS_BIN)/hsv.o \
@@ -178,7 +178,7 @@ HDRS                = atlantis.h bubble3d.h buildlwo.h e_textures.h xpm-ximage.h \
                  tunnel_draw.h ants.h polyhedra.h normals.h glxfonts.h \
                  texfont.h tangram_shapes.h sproingies.h extrusion.h \
                  glschool.h glschool_gl.h glschool_alg.h topblock.h \
-                 involute.h
+                 involute.h teapot.h
 GL_MEN         = atlantis.man boxed.man bubble3d.man cage.man circuit.man \
                  cubenetic.man dangerball.man engine.man extrusion.man \
                  flipscreen3d.man gears.man gflux.man glforestfire.man \
@@ -385,26 +385,11 @@ check_men:
           done ;                                                       \
         fi
 
-check_xml:
-       @badxml="" ;                                                    \
-        for exe in $(EXES); do                                         \
-          if ! [ -f $(srcdir)/../config/$$exe.xml -o                   \
-                 "$$exe" = xscreensaver-gl-helper ]; then              \
-            badxml="$$badxml $$exe" ;                                  \
-          fi ;                                                         \
-        done ;                                                         \
-        if [ -n "$$badxml" ]; then                                     \
-          echo "" ;                                                    \
-          echo "Warning: The following programs have no configurators:" ; \
-          echo "" ;                                                    \
-          for m in $$badxml ; do                                       \
-            echo "    $$m" ;                                           \
-          done ;                                                       \
-          echo "" ;                                                    \
-        fi
-
-distdepend:: check_men check_xml
+validate_xml:
+       @echo "Validating XML..." ; \
+       cd $(HACK_SRC) ; ./check-configs.pl $(EXES)
 
+distdepend:: check_men validate_xml
 
 
 
@@ -482,8 +467,9 @@ gears:              gears.o         tube.o $(GEARS_OBJS)
 moebius:       moebius.o       $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-pipes:         pipes.o         pipeobjs.o buildlwo.o $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   pipeobjs.o buildlwo.o $(HACK_OBJS) $(HACK_LIBS)
+PIPE_OBJS=pipeobjs.o buildlwo.o teapot.o
+pipes:         pipes.o         $(PIPE_OBJS) $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(PIPE_OBJS) $(HACK_OBJS) $(HACK_LIBS)
 
 superquadrics: superquadrics.o $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
@@ -494,8 +480,8 @@ morph3d:    morph3d.o       $(HACK_OBJS)
 rubik:         rubik.o         $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
 
-stairs:                stairs.o        $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
+stairs:                stairs.o        sphere.o $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   sphere.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
 SPROINGIES = sproingiewrap.o gllist.o \
             s1_1.o s1_2.o s1_3.o s1_4.o s1_5.o s1_6.o s1_b.o
@@ -548,14 +534,14 @@ circuit:  circuit.o       font-ximage.o $(HACK_OBJS)
 menger:                menger.o        $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-engine:                engine.o        glxfonts.o $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   glxfonts.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+engine:                engine.o        $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
 flipscreen3d:  flipscreen3d.o  $(HACK_TRACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
 
-glsnake:       glsnake.o       glxfonts.o $(HACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   glxfonts.o $(HACK_OBJS) $(HACK_LIBS)
+glsnake:       glsnake.o       $(HACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
 
 boxed:         boxed.o         $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
@@ -569,8 +555,8 @@ sballs:             sballs.o        xpm-ximage.o $(HACK_TRACK_OBJS)
 cubenetic:     cubenetic.o     $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-spheremonics:  spheremonics.o  normals.o glxfonts.o $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   normals.o glxfonts.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+spheremonics:  spheremonics.o  normals.o $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
 LL_OBJS=marching.o xpm-ximage.o normals.o $(HACK_TRACK_OBJS)
 lavalite:      lavalite.o      $(LL_OBJS)
@@ -599,8 +585,8 @@ COW_OBJS=\
 bouncingcow:                   $(COW_OBJS)         
        $(CC_HACK) -o $@        $(COW_OBJS) $(XPM_LIBS)
 
-glslideshow:   glslideshow.o   glxfonts.o $(HACK_GRAB_OBJS)
-       $(CC_HACK) -o $@ $@.o   glxfonts.o $(HACK_GRAB_OBJS) $(HACK_LIBS)
+glslideshow:   glslideshow.o   $(HACK_GRAB_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_GRAB_OBJS) $(HACK_LIBS)
 
 jigglypuff:    jigglypuff.o    xpm-ximage.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_TRACK_OBJS) $(XPM_LIBS)
@@ -623,8 +609,8 @@ glknots:    glknots.o       tube.o $(HACK_TRACK_OBJS)
 blocktube:     blocktube.o     xpm-ximage.o $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   xpm-ximage.o $(HACK_OBJS) $(XPM_LIBS)
 
-flipflop:      flipflop.o      $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+flipflop:      flipflop.o      $(HACK_TRACK_GRAB_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
 
 antspotlight:  antspotlight.o  $(HACK_TRACK_GRAB_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_GRAB_OBJS) $(HACK_LIBS)
@@ -642,7 +628,7 @@ molecules.h:
        UTILS_SRC="$(UTILS_SRC)" \
        $(srcdir)/molecules.sh molecules.h $(HACK_SRC)/images/molecules/*.pdb
 
-MOLECULE_OBJS=sphere.o tube.o glxfonts.o $(HACK_TRACK_OBJS)
+MOLECULE_OBJS=sphere.o tube.o $(HACK_TRACK_OBJS)
 molecule:      molecule.o      $(MOLECULE_OBJS)
        $(CC_HACK) -o $@ $@.o   $(MOLECULE_OBJS) $(HACK_LIBS)
 
@@ -658,7 +644,7 @@ blinkbox:   blinkbox.o      sphere.o $(HACK_OBJS)
 noof:  noof.o                  $(HACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_OBJS) $(HACK_LIBS)
 
-PH_OBJS=polyhedra-gl.o normals.o glxfonts.o $(HACK_TRACK_OBJS)
+PH_OBJS=polyhedra-gl.o normals.o teapot.o $(HACK_TRACK_OBJS)
 polyhedra:     polyhedra.o     $(PH_OBJS)
        $(CC_HACK) -o $@ $@.o   $(PH_OBJS) $(HACK_LIBS)
 
@@ -668,8 +654,8 @@ antinspect: antinspect.o    $(HACK_TRACK_OBJS)
 providence:    providence.o    $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-pinion:                pinion.o        glxfonts.o $(GEARS_OBJS)
-       $(CC_HACK) -o $@ $@.o   glxfonts.o $(GEARS_OBJS) $(HACK_LIBS)
+pinion:                pinion.o        $(GEARS_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(GEARS_OBJS) $(HACK_LIBS)
 
 moebiusgears:  moebiusgears.o  $(GEARS_OBJS)
        $(CC_HACK) -o $@ $@.o   $(GEARS_OBJS) $(HACK_LIBS)
@@ -686,7 +672,7 @@ fliptext:   fliptext.o      texfont.o $(HACK_OBJS)
 antmaze:       antmaze.o       $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-TANGRAM_OBJS=tangram_shapes.o glxfonts.o $(HACK_OBJS)
+TANGRAM_OBJS=tangram_shapes.o $(HACK_OBJS)
 tangram:       tangram.o       $(TANGRAM_OBJS)
        $(CC_HACK) -o $@ $@.o   $(TANGRAM_OBJS) $(HACK_LIBS)
 
@@ -731,14 +717,16 @@ cubicgrid:        cubicgrid.o     $(HACK_TRACK_OBJS)
 hypnowheel:    hypnowheel.o    $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-skytentacles:  skytentacles.o normals.o $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o  normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
+TENTACLE_OBJS=normals.o xpm-ximage.o $(HACK_TRACK_OBJS)
+skytentacles:  skytentacles.o $(TENTACLE_OBJS)
+       $(CC_HACK) -o $@ $@.o  $(TENTACLE_OBJS) $(XPM_LIBS)
 
 ##############################################################################
 #
 # DO NOT DELETE: updated by make distdepend
 
 antinspect.o: ../../config.h
+antinspect.o: $(HACK_SRC)/fps.h
 antinspect.o: $(srcdir)/gltrackball.h
 antinspect.o: $(HACK_SRC)/screenhackI.h
 antinspect.o: $(UTILS_SRC)/colors.h
@@ -753,6 +741,7 @@ antinspect.o: $(HACK_SRC)/xlockmoreI.h
 antinspect.o: $(HACK_SRC)/xlockmore.h
 antmaze.o: $(srcdir)/ants.h
 antmaze.o: ../../config.h
+antmaze.o: $(HACK_SRC)/fps.h
 antmaze.o: $(srcdir)/gltrackball.h
 antmaze.o: $(srcdir)/rotator.h
 antmaze.o: $(HACK_SRC)/screenhackI.h
@@ -768,6 +757,7 @@ antmaze.o: $(HACK_SRC)/xlockmoreI.h
 antmaze.o: $(HACK_SRC)/xlockmore.h
 antspotlight.o: $(srcdir)/ants.h
 antspotlight.o: ../../config.h
+antspotlight.o: $(HACK_SRC)/fps.h
 antspotlight.o: $(srcdir)/gltrackball.h
 antspotlight.o: $(srcdir)/grab-ximage.h
 antspotlight.o: $(srcdir)/rotator.h
@@ -784,6 +774,7 @@ antspotlight.o: $(HACK_SRC)/xlockmoreI.h
 antspotlight.o: $(HACK_SRC)/xlockmore.h
 atlantis.o: $(srcdir)/atlantis.h
 atlantis.o: ../../config.h
+atlantis.o: $(HACK_SRC)/fps.h
 atlantis.o: $(HACK_SRC)/images/sea-texture.xpm
 atlantis.o: $(HACK_SRC)/screenhackI.h
 atlantis.o: $(UTILS_SRC)/colors.h
@@ -798,6 +789,7 @@ atlantis.o: $(HACK_SRC)/xlockmoreI.h
 atlantis.o: $(HACK_SRC)/xlockmore.h
 atlantis.o: $(srcdir)/xpm-ximage.h
 atunnel.o: ../../config.h
+atunnel.o: $(HACK_SRC)/fps.h
 atunnel.o: $(HACK_SRC)/images/tunnel0.xpm
 atunnel.o: $(HACK_SRC)/images/tunnel1.xpm
 atunnel.o: $(HACK_SRC)/images/tunnel2.xpm
@@ -819,6 +811,7 @@ atunnel.o: $(HACK_SRC)/xlockmore.h
 atunnel.o: $(srcdir)/xpm-ximage.h
 b_draw.o: $(srcdir)/bubble3d.h
 b_draw.o: ../../config.h
+b_draw.o: $(HACK_SRC)/fps.h
 b_draw.o: $(HACK_SRC)/screenhackI.h
 b_draw.o: $(UTILS_SRC)/colors.h
 b_draw.o: $(UTILS_SRC)/grabscreen.h
@@ -830,6 +823,7 @@ b_draw.o: $(UTILS_SRC)/xshm.h
 b_draw.o: $(UTILS_SRC)/yarandom.h
 b_draw.o: $(HACK_SRC)/xlockmoreI.h
 blinkbox.o: ../../config.h
+blinkbox.o: $(HACK_SRC)/fps.h
 blinkbox.o: $(HACK_SRC)/screenhackI.h
 blinkbox.o: $(srcdir)/sphere.h
 blinkbox.o: $(UTILS_SRC)/colors.h
@@ -844,6 +838,7 @@ blinkbox.o: $(HACK_SRC)/xlockmoreI.h
 blinkbox.o: $(HACK_SRC)/xlockmore.h
 b_lockglue.o: $(srcdir)/bubble3d.h
 b_lockglue.o: ../../config.h
+b_lockglue.o: $(HACK_SRC)/fps.h
 b_lockglue.o: $(HACK_SRC)/screenhackI.h
 b_lockglue.o: $(UTILS_SRC)/colors.h
 b_lockglue.o: $(UTILS_SRC)/grabscreen.h
@@ -856,6 +851,7 @@ b_lockglue.o: $(UTILS_SRC)/yarandom.h
 b_lockglue.o: $(HACK_SRC)/xlockmoreI.h
 b_lockglue.o: $(HACK_SRC)/xlockmore.h
 blocktube.o: ../../config.h
+blocktube.o: $(HACK_SRC)/fps.h
 blocktube.o: $(HACK_SRC)/images/blocktube.xpm
 blocktube.o: $(HACK_SRC)/screenhackI.h
 blocktube.o: $(UTILS_SRC)/colors.h
@@ -870,6 +866,7 @@ blocktube.o: $(HACK_SRC)/xlockmoreI.h
 blocktube.o: $(HACK_SRC)/xlockmore.h
 blocktube.o: $(srcdir)/xpm-ximage.h
 boing.o: ../../config.h
+boing.o: $(HACK_SRC)/fps.h
 boing.o: $(srcdir)/gltrackball.h
 boing.o: $(HACK_SRC)/screenhackI.h
 boing.o: $(UTILS_SRC)/colors.h
@@ -883,6 +880,7 @@ boing.o: $(UTILS_SRC)/yarandom.h
 boing.o: $(HACK_SRC)/xlockmoreI.h
 boing.o: $(HACK_SRC)/xlockmore.h
 bouncingcow.o: ../../config.h
+bouncingcow.o: $(HACK_SRC)/fps.h
 bouncingcow.o: $(srcdir)/gllist.h
 bouncingcow.o: $(srcdir)/gltrackball.h
 bouncingcow.o: $(srcdir)/rotator.h
@@ -900,6 +898,7 @@ bouncingcow.o: $(HACK_SRC)/xlockmore.h
 bouncingcow.o: $(srcdir)/xpm-ximage.h
 boxed.o: $(srcdir)/boxed.h
 boxed.o: ../../config.h
+boxed.o: $(HACK_SRC)/fps.h
 boxed.o: $(HACK_SRC)/screenhackI.h
 boxed.o: $(UTILS_SRC)/colors.h
 boxed.o: $(UTILS_SRC)/grabscreen.h
@@ -913,6 +912,7 @@ boxed.o: $(HACK_SRC)/xlockmoreI.h
 boxed.o: $(HACK_SRC)/xlockmore.h
 b_sphere.o: $(srcdir)/bubble3d.h
 b_sphere.o: ../../config.h
+b_sphere.o: $(HACK_SRC)/fps.h
 b_sphere.o: $(HACK_SRC)/screenhackI.h
 b_sphere.o: $(UTILS_SRC)/colors.h
 b_sphere.o: $(UTILS_SRC)/grabscreen.h
@@ -925,6 +925,7 @@ b_sphere.o: $(UTILS_SRC)/yarandom.h
 b_sphere.o: $(HACK_SRC)/xlockmoreI.h
 bubble3d.o: $(srcdir)/bubble3d.h
 bubble3d.o: ../../config.h
+bubble3d.o: $(HACK_SRC)/fps.h
 bubble3d.o: $(HACK_SRC)/screenhackI.h
 bubble3d.o: $(UTILS_SRC)/colors.h
 bubble3d.o: $(UTILS_SRC)/grabscreen.h
@@ -938,6 +939,7 @@ bubble3d.o: $(HACK_SRC)/xlockmoreI.h
 buildlwo.o: $(srcdir)/buildlwo.h
 cage.o: ../../config.h
 cage.o: $(srcdir)/e_textures.h
+cage.o: $(HACK_SRC)/fps.h
 cage.o: $(HACK_SRC)/screenhackI.h
 cage.o: $(UTILS_SRC)/colors.h
 cage.o: $(UTILS_SRC)/grabscreen.h
@@ -950,6 +952,7 @@ cage.o: $(UTILS_SRC)/yarandom.h
 cage.o: $(HACK_SRC)/xlockmoreI.h
 cage.o: $(HACK_SRC)/xlockmore.h
 carousel.o: ../../config.h
+carousel.o: $(HACK_SRC)/fps.h
 carousel.o: $(srcdir)/gltrackball.h
 carousel.o: $(srcdir)/grab-ximage.h
 carousel.o: $(srcdir)/rotator.h
@@ -968,6 +971,7 @@ carousel.o: $(HACK_SRC)/xlockmore.h
 chessmodels.o: $(srcdir)/chessmodels.h
 circuit.o: ../../config.h
 circuit.o: $(srcdir)/font-ximage.h
+circuit.o: $(HACK_SRC)/fps.h
 circuit.o: $(HACK_SRC)/screenhackI.h
 circuit.o: $(UTILS_SRC)/colors.h
 circuit.o: $(UTILS_SRC)/grabscreen.h
@@ -986,6 +990,7 @@ cow_horns.o: $(srcdir)/gllist.h
 cow_tail.o: $(srcdir)/gllist.h
 cow_udder.o: $(srcdir)/gllist.h
 crackberg.o: ../../config.h
+crackberg.o: $(HACK_SRC)/fps.h
 crackberg.o: $(HACK_SRC)/screenhackI.h
 crackberg.o: $(UTILS_SRC)/colors.h
 crackberg.o: $(UTILS_SRC)/grabscreen.h
@@ -998,6 +1003,7 @@ crackberg.o: $(UTILS_SRC)/yarandom.h
 crackberg.o: $(HACK_SRC)/xlockmoreI.h
 crackberg.o: $(HACK_SRC)/xlockmore.h
 cube21.o: ../../config.h
+cube21.o: $(HACK_SRC)/fps.h
 cube21.o: $(HACK_SRC)/screenhackI.h
 cube21.o: $(UTILS_SRC)/colors.h
 cube21.o: $(UTILS_SRC)/grabscreen.h
@@ -1010,6 +1016,7 @@ cube21.o: $(UTILS_SRC)/yarandom.h
 cube21.o: $(HACK_SRC)/xlockmoreI.h
 cube21.o: $(HACK_SRC)/xlockmore.h
 cubenetic.o: ../../config.h
+cubenetic.o: $(HACK_SRC)/fps.h
 cubenetic.o: $(srcdir)/gltrackball.h
 cubenetic.o: $(srcdir)/rotator.h
 cubenetic.o: $(HACK_SRC)/screenhackI.h
@@ -1024,6 +1031,7 @@ cubenetic.o: $(UTILS_SRC)/yarandom.h
 cubenetic.o: $(HACK_SRC)/xlockmoreI.h
 cubenetic.o: $(HACK_SRC)/xlockmore.h
 cubestorm.o: ../../config.h
+cubestorm.o: $(HACK_SRC)/fps.h
 cubestorm.o: $(srcdir)/gltrackball.h
 cubestorm.o: $(srcdir)/rotator.h
 cubestorm.o: $(HACK_SRC)/screenhackI.h
@@ -1038,6 +1046,7 @@ cubestorm.o: $(UTILS_SRC)/yarandom.h
 cubestorm.o: $(HACK_SRC)/xlockmoreI.h
 cubestorm.o: $(HACK_SRC)/xlockmore.h
 cubicgrid.o: ../../config.h
+cubicgrid.o: $(HACK_SRC)/fps.h
 cubicgrid.o: $(srcdir)/gltrackball.h
 cubicgrid.o: $(srcdir)/rotator.h
 cubicgrid.o: $(HACK_SRC)/screenhackI.h
@@ -1052,6 +1061,7 @@ cubicgrid.o: $(UTILS_SRC)/yarandom.h
 cubicgrid.o: $(HACK_SRC)/xlockmoreI.h
 cubicgrid.o: $(HACK_SRC)/xlockmore.h
 dangerball.o: ../../config.h
+dangerball.o: $(HACK_SRC)/fps.h
 dangerball.o: $(srcdir)/gltrackball.h
 dangerball.o: $(srcdir)/rotator.h
 dangerball.o: $(HACK_SRC)/screenhackI.h
@@ -1068,6 +1078,7 @@ dangerball.o: $(UTILS_SRC)/yarandom.h
 dangerball.o: $(HACK_SRC)/xlockmoreI.h
 dangerball.o: $(HACK_SRC)/xlockmore.h
 dnalogo.o: ../../config.h
+dnalogo.o: $(HACK_SRC)/fps.h
 dnalogo.o: $(srcdir)/gltrackball.h
 dnalogo.o: $(srcdir)/normals.h
 dnalogo.o: $(srcdir)/rotator.h
@@ -1085,6 +1096,7 @@ dnalogo.o: $(HACK_SRC)/xlockmoreI.h
 dnalogo.o: $(HACK_SRC)/xlockmore.h
 dolphin.o: $(srcdir)/atlantis.h
 dolphin.o: ../../config.h
+dolphin.o: $(HACK_SRC)/fps.h
 dolphin.o: $(HACK_SRC)/screenhackI.h
 dolphin.o: $(UTILS_SRC)/colors.h
 dolphin.o: $(UTILS_SRC)/grabscreen.h
@@ -1096,6 +1108,7 @@ dolphin.o: $(UTILS_SRC)/yarandom.h
 endgame.o: $(srcdir)/chessgames.h
 endgame.o: $(srcdir)/chessmodels.h
 endgame.o: ../../config.h
+endgame.o: $(HACK_SRC)/fps.h
 endgame.o: $(srcdir)/gltrackball.h
 endgame.o: $(HACK_SRC)/screenhackI.h
 endgame.o: $(UTILS_SRC)/colors.h
@@ -1109,6 +1122,7 @@ endgame.o: $(UTILS_SRC)/yarandom.h
 endgame.o: $(HACK_SRC)/xlockmoreI.h
 endgame.o: $(HACK_SRC)/xlockmore.h
 engine.o: ../../config.h
+engine.o: $(HACK_SRC)/fps.h
 engine.o: $(srcdir)/gltrackball.h
 engine.o: $(srcdir)/glxfonts.h
 engine.o: $(srcdir)/rotator.h
@@ -1133,6 +1147,7 @@ extrusion-joinoffset.o: ../../config.h
 extrusion-joinoffset.o: $(srcdir)/extrusion.h
 extrusion.o: ../../config.h
 extrusion.o: $(srcdir)/extrusion.h
+extrusion.o: $(HACK_SRC)/fps.h
 extrusion.o: $(srcdir)/gltrackball.h
 extrusion.o: $(srcdir)/rotator.h
 extrusion.o: $(HACK_SRC)/screenhackI.h
@@ -1154,7 +1169,9 @@ extrusion-taper.o: $(srcdir)/extrusion.h
 extrusion-twistoid.o: ../../config.h
 extrusion-twistoid.o: $(srcdir)/extrusion.h
 flipflop.o: ../../config.h
+flipflop.o: $(HACK_SRC)/fps.h
 flipflop.o: $(srcdir)/gltrackball.h
+flipflop.o: $(srcdir)/grab-ximage.h
 flipflop.o: $(HACK_SRC)/screenhackI.h
 flipflop.o: $(UTILS_SRC)/colors.h
 flipflop.o: $(UTILS_SRC)/grabscreen.h
@@ -1167,6 +1184,7 @@ flipflop.o: $(UTILS_SRC)/yarandom.h
 flipflop.o: $(HACK_SRC)/xlockmoreI.h
 flipflop.o: $(HACK_SRC)/xlockmore.h
 flipscreen3d.o: ../../config.h
+flipscreen3d.o: $(HACK_SRC)/fps.h
 flipscreen3d.o: $(srcdir)/gltrackball.h
 flipscreen3d.o: $(srcdir)/grab-ximage.h
 flipscreen3d.o: $(HACK_SRC)/screenhackI.h
@@ -1181,6 +1199,7 @@ flipscreen3d.o: $(UTILS_SRC)/yarandom.h
 flipscreen3d.o: $(HACK_SRC)/xlockmoreI.h
 flipscreen3d.o: $(HACK_SRC)/xlockmore.h
 fliptext.o: ../../config.h
+fliptext.o: $(HACK_SRC)/fps.h
 fliptext.o: $(HACK_SRC)/screenhackI.h
 fliptext.o: $(srcdir)/texfont.h
 fliptext.o: $(UTILS_SRC)/colors.h
@@ -1195,6 +1214,7 @@ fliptext.o: $(HACK_SRC)/xlockmoreI.h
 fliptext.o: $(HACK_SRC)/xlockmore.h
 flurry.o: ../../config.h
 flurry.o: $(srcdir)/flurry.h
+flurry.o: $(HACK_SRC)/fps.h
 flurry.o: $(srcdir)/gltrackball.h
 flurry.o: $(srcdir)/rotator.h
 flurry.o: $(HACK_SRC)/screenhackI.h
@@ -1229,6 +1249,7 @@ flurry-texture.o: $(srcdir)/gltrackball.h
 flurry-texture.o: $(srcdir)/rotator.h
 flurry-texture.o: $(UTILS_SRC)/yarandom.h
 flyingtoasters.o: ../../config.h
+flyingtoasters.o: $(HACK_SRC)/fps.h
 flyingtoasters.o: $(srcdir)/gllist.h
 flyingtoasters.o: $(srcdir)/gltrackball.h
 flyingtoasters.o: $(HACK_SRC)/images/chromesphere.xpm
@@ -1247,18 +1268,22 @@ flyingtoasters.o: $(HACK_SRC)/xlockmore.h
 flyingtoasters.o: $(srcdir)/xpm-ximage.h
 font-ximage.o: ../../config.h
 font-ximage.o: $(srcdir)/font-ximage.h
-fps.o: ../../config.h
-fps.o: $(HACK_SRC)/screenhackI.h
-fps.o: $(UTILS_SRC)/colors.h
-fps.o: $(UTILS_SRC)/grabscreen.h
-fps.o: $(UTILS_SRC)/hsv.h
-fps.o: $(UTILS_SRC)/resources.h
-fps.o: $(UTILS_SRC)/usleep.h
-fps.o: $(UTILS_SRC)/visual.h
-fps.o: $(UTILS_SRC)/xshm.h
-fps.o: $(UTILS_SRC)/yarandom.h
-fps.o: $(HACK_SRC)/xlockmoreI.h
+fps-gl.o: ../../config.h
+fps-gl.o: $(HACK_SRC)/fpsI.h
+fps-gl.o: $(HACK_SRC)/fps.h
+fps-gl.o: $(srcdir)/glxfonts.h
+fps-gl.o: $(HACK_SRC)/screenhackI.h
+fps-gl.o: $(UTILS_SRC)/colors.h
+fps-gl.o: $(UTILS_SRC)/grabscreen.h
+fps-gl.o: $(UTILS_SRC)/hsv.h
+fps-gl.o: $(UTILS_SRC)/resources.h
+fps-gl.o: $(UTILS_SRC)/usleep.h
+fps-gl.o: $(UTILS_SRC)/visual.h
+fps-gl.o: $(UTILS_SRC)/xshm.h
+fps-gl.o: $(UTILS_SRC)/yarandom.h
+fps-gl.o: $(HACK_SRC)/xlockmoreI.h
 gears.o: ../../config.h
+gears.o: $(HACK_SRC)/fps.h
 gears.o: $(srcdir)/gltrackball.h
 gears.o: $(srcdir)/involute.h
 gears.o: $(srcdir)/normals.h
@@ -1276,6 +1301,7 @@ gears.o: $(UTILS_SRC)/yarandom.h
 gears.o: $(HACK_SRC)/xlockmoreI.h
 gears.o: $(HACK_SRC)/xlockmore.h
 gflux.o: ../../config.h
+gflux.o: $(HACK_SRC)/fps.h
 gflux.o: $(srcdir)/gltrackball.h
 gflux.o: $(srcdir)/grab-ximage.h
 gflux.o: $(HACK_SRC)/screenhackI.h
@@ -1290,6 +1316,7 @@ gflux.o: $(UTILS_SRC)/yarandom.h
 gflux.o: $(HACK_SRC)/xlockmoreI.h
 gflux.o: $(HACK_SRC)/xlockmore.h
 glblur.o: ../../config.h
+glblur.o: $(HACK_SRC)/fps.h
 glblur.o: $(srcdir)/gltrackball.h
 glblur.o: $(srcdir)/rotator.h
 glblur.o: $(HACK_SRC)/screenhackI.h
@@ -1304,6 +1331,7 @@ glblur.o: $(UTILS_SRC)/yarandom.h
 glblur.o: $(HACK_SRC)/xlockmoreI.h
 glblur.o: $(HACK_SRC)/xlockmore.h
 glcells.o: ../../config.h
+glcells.o: $(HACK_SRC)/fps.h
 glcells.o: $(HACK_SRC)/screenhackI.h
 glcells.o: $(UTILS_SRC)/colors.h
 glcells.o: $(UTILS_SRC)/grabscreen.h
@@ -1316,6 +1344,7 @@ glcells.o: $(UTILS_SRC)/yarandom.h
 glcells.o: $(HACK_SRC)/xlockmoreI.h
 glcells.o: $(HACK_SRC)/xlockmore.h
 gleidescope.o: ../../config.h
+gleidescope.o: $(HACK_SRC)/fps.h
 gleidescope.o: $(srcdir)/grab-ximage.h
 gleidescope.o: $(HACK_SRC)/screenhackI.h
 gleidescope.o: $(UTILS_SRC)/colors.h
@@ -1330,6 +1359,7 @@ gleidescope.o: $(HACK_SRC)/xlockmoreI.h
 gleidescope.o: $(HACK_SRC)/xlockmore.h
 gleidescope.o: $(srcdir)/xpm-ximage.h
 glforestfire.o: ../../config.h
+glforestfire.o: $(HACK_SRC)/fps.h
 glforestfire.o: $(srcdir)/gltrackball.h
 glforestfire.o: $(HACK_SRC)/images/ground.xpm
 glforestfire.o: $(HACK_SRC)/images/tree.xpm
@@ -1346,6 +1376,7 @@ glforestfire.o: $(HACK_SRC)/xlockmoreI.h
 glforestfire.o: $(HACK_SRC)/xlockmore.h
 glforestfire.o: $(srcdir)/xpm-ximage.h
 glhanoi.o: ../../config.h
+glhanoi.o: $(HACK_SRC)/fps.h
 glhanoi.o: $(srcdir)/rotator.h
 glhanoi.o: $(HACK_SRC)/screenhackI.h
 glhanoi.o: $(UTILS_SRC)/colors.h
@@ -1359,6 +1390,7 @@ glhanoi.o: $(UTILS_SRC)/yarandom.h
 glhanoi.o: $(HACK_SRC)/xlockmoreI.h
 glhanoi.o: $(HACK_SRC)/xlockmore.h
 glknots.o: ../../config.h
+glknots.o: $(HACK_SRC)/fps.h
 glknots.o: $(srcdir)/gltrackball.h
 glknots.o: $(srcdir)/rotator.h
 glknots.o: $(HACK_SRC)/screenhackI.h
@@ -1375,6 +1407,7 @@ glknots.o: $(HACK_SRC)/xlockmoreI.h
 glknots.o: $(HACK_SRC)/xlockmore.h
 gllist.o: $(srcdir)/gllist.h
 glmatrix.o: ../../config.h
+glmatrix.o: $(HACK_SRC)/fps.h
 glmatrix.o: $(srcdir)/gllist.h
 glmatrix.o: $(HACK_SRC)/images/matrix3.xpm
 glmatrix.o: $(HACK_SRC)/screenhackI.h
@@ -1390,6 +1423,7 @@ glmatrix.o: $(HACK_SRC)/xlockmoreI.h
 glmatrix.o: $(HACK_SRC)/xlockmore.h
 glmatrix.o: $(srcdir)/xpm-ximage.h
 glplanet.o: ../../config.h
+glplanet.o: $(HACK_SRC)/fps.h
 glplanet.o: $(srcdir)/gltrackball.h
 glplanet.o: $(HACK_SRC)/images/earth.xpm
 glplanet.o: $(srcdir)/rotator.h
@@ -1414,6 +1448,7 @@ glschool_gl.o: $(srcdir)/glschool_gl.h
 glschool_gl.o: $(srcdir)/sphere.h
 glschool_gl.o: $(srcdir)/tube.h
 glschool.o: ../../config.h
+glschool.o: $(HACK_SRC)/fps.h
 glschool.o: $(srcdir)/glschool_alg.h
 glschool.o: $(srcdir)/glschool_gl.h
 glschool.o: $(srcdir)/glschool.h
@@ -1429,6 +1464,7 @@ glschool.o: $(UTILS_SRC)/yarandom.h
 glschool.o: $(HACK_SRC)/xlockmoreI.h
 glschool.o: $(HACK_SRC)/xlockmore.h
 glslideshow.o: ../../config.h
+glslideshow.o: $(HACK_SRC)/fps.h
 glslideshow.o: $(srcdir)/glxfonts.h
 glslideshow.o: $(srcdir)/grab-ximage.h
 glslideshow.o: $(HACK_SRC)/screenhackI.h
@@ -1443,6 +1479,7 @@ glslideshow.o: $(UTILS_SRC)/yarandom.h
 glslideshow.o: $(HACK_SRC)/xlockmoreI.h
 glslideshow.o: $(HACK_SRC)/xlockmore.h
 glsnake.o: ../../config.h
+glsnake.o: $(HACK_SRC)/fps.h
 glsnake.o: $(srcdir)/glxfonts.h
 glsnake.o: $(HACK_SRC)/screenhackI.h
 glsnake.o: $(UTILS_SRC)/colors.h
@@ -1456,6 +1493,7 @@ glsnake.o: $(UTILS_SRC)/yarandom.h
 glsnake.o: $(HACK_SRC)/xlockmoreI.h
 glsnake.o: $(HACK_SRC)/xlockmore.h
 gltext.o: ../../config.h
+gltext.o: $(HACK_SRC)/fps.h
 gltext.o: $(srcdir)/gltrackball.h
 gltext.o: $(srcdir)/glut_roman.h
 gltext.o: $(srcdir)/glutstroke.h
@@ -1489,6 +1527,7 @@ grab-ximage.o: $(UTILS_SRC)/resources.h
 grab-ximage.o: $(UTILS_SRC)/visual.h
 grab-ximage.o: $(UTILS_SRC)/xshm.h
 hypertorus.o: ../../config.h
+hypertorus.o: $(HACK_SRC)/fps.h
 hypertorus.o: $(srcdir)/gltrackball.h
 hypertorus.o: $(HACK_SRC)/screenhackI.h
 hypertorus.o: $(UTILS_SRC)/colors.h
@@ -1502,6 +1541,7 @@ hypertorus.o: $(UTILS_SRC)/yarandom.h
 hypertorus.o: $(HACK_SRC)/xlockmoreI.h
 hypertorus.o: $(HACK_SRC)/xlockmore.h
 hypnowheel.o: ../../config.h
+hypnowheel.o: $(HACK_SRC)/fps.h
 hypnowheel.o: $(srcdir)/rotator.h
 hypnowheel.o: $(HACK_SRC)/screenhackI.h
 hypnowheel.o: $(UTILS_SRC)/colors.h
@@ -1515,6 +1555,7 @@ hypnowheel.o: $(UTILS_SRC)/yarandom.h
 hypnowheel.o: $(HACK_SRC)/xlockmoreI.h
 hypnowheel.o: $(HACK_SRC)/xlockmore.h
 involute.o: ../../config.h
+involute.o: $(HACK_SRC)/fps.h
 involute.o: $(srcdir)/involute.h
 involute.o: $(srcdir)/normals.h
 involute.o: $(HACK_SRC)/screenhackI.h
@@ -1526,6 +1567,7 @@ involute.o: $(UTILS_SRC)/usleep.h
 involute.o: $(UTILS_SRC)/visual.h
 involute.o: $(UTILS_SRC)/yarandom.h
 jigglypuff.o: ../../config.h
+jigglypuff.o: $(HACK_SRC)/fps.h
 jigglypuff.o: $(srcdir)/gltrackball.h
 jigglypuff.o: $(HACK_SRC)/images/jigglymap.xpm
 jigglypuff.o: $(HACK_SRC)/screenhackI.h
@@ -1541,6 +1583,7 @@ jigglypuff.o: $(HACK_SRC)/xlockmoreI.h
 jigglypuff.o: $(HACK_SRC)/xlockmore.h
 jigglypuff.o: $(srcdir)/xpm-ximage.h
 juggler3d.o: ../../config.h
+juggler3d.o: $(HACK_SRC)/fps.h
 juggler3d.o: $(srcdir)/gltrackball.h
 juggler3d.o: $(HACK_SRC)/screenhackI.h
 juggler3d.o: $(UTILS_SRC)/colors.h
@@ -1554,6 +1597,7 @@ juggler3d.o: $(UTILS_SRC)/yarandom.h
 juggler3d.o: $(HACK_SRC)/xlockmoreI.h
 juggler3d.o: $(HACK_SRC)/xlockmore.h
 klein.o: ../../config.h
+klein.o: $(HACK_SRC)/fps.h
 klein.o: $(srcdir)/gltrackball.h
 klein.o: $(srcdir)/rotator.h
 klein.o: $(HACK_SRC)/screenhackI.h
@@ -1568,6 +1612,7 @@ klein.o: $(UTILS_SRC)/yarandom.h
 klein.o: $(HACK_SRC)/xlockmoreI.h
 klein.o: $(HACK_SRC)/xlockmore.h
 lament.o: ../../config.h
+lament.o: $(HACK_SRC)/fps.h
 lament.o: $(srcdir)/gltrackball.h
 lament.o: $(HACK_SRC)/images/lament.xpm
 lament.o: $(srcdir)/normals.h
@@ -1585,6 +1630,7 @@ lament.o: $(HACK_SRC)/xlockmoreI.h
 lament.o: $(HACK_SRC)/xlockmore.h
 lament.o: $(srcdir)/xpm-ximage.h
 lavalite.o: ../../config.h
+lavalite.o: $(HACK_SRC)/fps.h
 lavalite.o: $(srcdir)/gltrackball.h
 lavalite.o: $(srcdir)/marching.h
 lavalite.o: $(srcdir)/rotator.h
@@ -1601,6 +1647,7 @@ lavalite.o: $(HACK_SRC)/xlockmoreI.h
 lavalite.o: $(HACK_SRC)/xlockmore.h
 lavalite.o: $(srcdir)/xpm-ximage.h
 lockward.o: ../../config.h
+lockward.o: $(HACK_SRC)/fps.h
 lockward.o: $(HACK_SRC)/screenhackI.h
 lockward.o: $(UTILS_SRC)/colors.h
 lockward.o: $(UTILS_SRC)/grabscreen.h
@@ -1616,6 +1663,7 @@ marching.o: ../../config.h
 marching.o: $(srcdir)/marching.h
 marching.o: $(srcdir)/normals.h
 menger.o: ../../config.h
+menger.o: $(HACK_SRC)/fps.h
 menger.o: $(srcdir)/gltrackball.h
 menger.o: $(srcdir)/rotator.h
 menger.o: $(HACK_SRC)/screenhackI.h
@@ -1630,6 +1678,7 @@ menger.o: $(UTILS_SRC)/yarandom.h
 menger.o: $(HACK_SRC)/xlockmoreI.h
 menger.o: $(HACK_SRC)/xlockmore.h
 mirrorblob.o: ../../config.h
+mirrorblob.o: $(HACK_SRC)/fps.h
 mirrorblob.o: $(srcdir)/gltrackball.h
 mirrorblob.o: $(srcdir)/grab-ximage.h
 mirrorblob.o: $(HACK_SRC)/screenhackI.h
@@ -1644,6 +1693,7 @@ mirrorblob.o: $(UTILS_SRC)/yarandom.h
 mirrorblob.o: $(HACK_SRC)/xlockmoreI.h
 mirrorblob.o: $(HACK_SRC)/xlockmore.h
 moebiusgears.o: ../../config.h
+moebiusgears.o: $(HACK_SRC)/fps.h
 moebiusgears.o: $(srcdir)/gltrackball.h
 moebiusgears.o: $(srcdir)/involute.h
 moebiusgears.o: $(srcdir)/normals.h
@@ -1661,6 +1711,7 @@ moebiusgears.o: $(HACK_SRC)/xlockmoreI.h
 moebiusgears.o: $(HACK_SRC)/xlockmore.h
 moebius.o: ../../config.h
 moebius.o: $(srcdir)/e_textures.h
+moebius.o: $(HACK_SRC)/fps.h
 moebius.o: $(srcdir)/gltrackball.h
 moebius.o: $(srcdir)/rotator.h
 moebius.o: $(HACK_SRC)/screenhackI.h
@@ -1675,6 +1726,7 @@ moebius.o: $(UTILS_SRC)/yarandom.h
 moebius.o: $(HACK_SRC)/xlockmoreI.h
 moebius.o: $(HACK_SRC)/xlockmore.h
 molecule.o: ../../config.h
+molecule.o: $(HACK_SRC)/fps.h
 molecule.o: $(srcdir)/gltrackball.h
 molecule.o: $(srcdir)/glxfonts.h
 molecule.o: molecules.h
@@ -1693,6 +1745,7 @@ molecule.o: $(UTILS_SRC)/yarandom.h
 molecule.o: $(HACK_SRC)/xlockmoreI.h
 molecule.o: $(HACK_SRC)/xlockmore.h
 morph3d.o: ../../config.h
+morph3d.o: $(HACK_SRC)/fps.h
 morph3d.o: $(HACK_SRC)/screenhackI.h
 morph3d.o: $(UTILS_SRC)/colors.h
 morph3d.o: $(UTILS_SRC)/grabscreen.h
@@ -1705,6 +1758,7 @@ morph3d.o: $(UTILS_SRC)/yarandom.h
 morph3d.o: $(HACK_SRC)/xlockmoreI.h
 morph3d.o: $(HACK_SRC)/xlockmore.h
 noof.o: ../../config.h
+noof.o: $(HACK_SRC)/fps.h
 noof.o: $(HACK_SRC)/screenhackI.h
 noof.o: $(UTILS_SRC)/colors.h
 noof.o: $(UTILS_SRC)/grabscreen.h
@@ -1719,6 +1773,7 @@ noof.o: $(HACK_SRC)/xlockmore.h
 normals.o: ../../config.h
 normals.o: $(srcdir)/normals.h
 pinion.o: ../../config.h
+pinion.o: $(HACK_SRC)/fps.h
 pinion.o: $(srcdir)/gltrackball.h
 pinion.o: $(srcdir)/glxfonts.h
 pinion.o: $(srcdir)/involute.h
@@ -1737,7 +1792,9 @@ pinion.o: $(HACK_SRC)/xlockmore.h
 pipeobjs.o: $(srcdir)/buildlwo.h
 pipes.o: $(srcdir)/buildlwo.h
 pipes.o: ../../config.h
+pipes.o: $(HACK_SRC)/fps.h
 pipes.o: $(HACK_SRC)/screenhackI.h
+pipes.o: $(srcdir)/teapot.h
 pipes.o: $(UTILS_SRC)/colors.h
 pipes.o: $(UTILS_SRC)/grabscreen.h
 pipes.o: $(UTILS_SRC)/hsv.h
@@ -1749,12 +1806,14 @@ pipes.o: $(UTILS_SRC)/yarandom.h
 pipes.o: $(HACK_SRC)/xlockmoreI.h
 pipes.o: $(HACK_SRC)/xlockmore.h
 polyhedra-gl.o: ../../config.h
+polyhedra-gl.o: $(HACK_SRC)/fps.h
 polyhedra-gl.o: $(srcdir)/gltrackball.h
 polyhedra-gl.o: $(srcdir)/glxfonts.h
 polyhedra-gl.o: $(srcdir)/normals.h
 polyhedra-gl.o: $(srcdir)/polyhedra.h
 polyhedra-gl.o: $(srcdir)/rotator.h
 polyhedra-gl.o: $(HACK_SRC)/screenhackI.h
+polyhedra-gl.o: $(srcdir)/teapot.h
 polyhedra-gl.o: $(UTILS_SRC)/colors.h
 polyhedra-gl.o: $(UTILS_SRC)/grabscreen.h
 polyhedra-gl.o: $(UTILS_SRC)/hsv.h
@@ -1768,6 +1827,7 @@ polyhedra-gl.o: $(HACK_SRC)/xlockmore.h
 polyhedra.o: ../../config.h
 polyhedra.o: $(srcdir)/polyhedra.h
 polytopes.o: ../../config.h
+polytopes.o: $(HACK_SRC)/fps.h
 polytopes.o: $(srcdir)/gltrackball.h
 polytopes.o: $(HACK_SRC)/screenhackI.h
 polytopes.o: $(UTILS_SRC)/colors.h
@@ -1781,6 +1841,7 @@ polytopes.o: $(UTILS_SRC)/yarandom.h
 polytopes.o: $(HACK_SRC)/xlockmoreI.h
 polytopes.o: $(HACK_SRC)/xlockmore.h
 providence.o: ../../config.h
+providence.o: $(HACK_SRC)/fps.h
 providence.o: $(srcdir)/gltrackball.h
 providence.o: $(HACK_SRC)/screenhackI.h
 providence.o: $(UTILS_SRC)/colors.h
@@ -1794,6 +1855,7 @@ providence.o: $(UTILS_SRC)/yarandom.h
 providence.o: $(HACK_SRC)/xlockmoreI.h
 providence.o: $(HACK_SRC)/xlockmore.h
 pulsar.o: ../../config.h
+pulsar.o: $(HACK_SRC)/fps.h
 pulsar.o: $(HACK_SRC)/screenhackI.h
 pulsar.o: $(UTILS_SRC)/colors.h
 pulsar.o: $(UTILS_SRC)/grabscreen.h
@@ -1807,6 +1869,7 @@ pulsar.o: $(HACK_SRC)/xlockmoreI.h
 pulsar.o: $(HACK_SRC)/xlockmore.h
 pulsar.o: $(srcdir)/xpm-ximage.h
 queens.o: ../../config.h
+queens.o: $(HACK_SRC)/fps.h
 queens.o: $(srcdir)/gltrackball.h
 queens.o: $(HACK_SRC)/screenhackI.h
 queens.o: $(UTILS_SRC)/colors.h
@@ -1823,6 +1886,7 @@ rotator.o: ../../config.h
 rotator.o: $(srcdir)/rotator.h
 rotator.o: $(UTILS_SRC)/yarandom.h
 rubik.o: ../../config.h
+rubik.o: $(HACK_SRC)/fps.h
 rubik.o: $(HACK_SRC)/screenhackI.h
 rubik.o: $(UTILS_SRC)/colors.h
 rubik.o: $(UTILS_SRC)/grabscreen.h
@@ -1842,6 +1906,7 @@ s1_5.o: $(srcdir)/gllist.h
 s1_6.o: $(srcdir)/gllist.h
 s1_b.o: $(srcdir)/gllist.h
 sballs.o: ../../config.h
+sballs.o: $(HACK_SRC)/fps.h
 sballs.o: $(srcdir)/gltrackball.h
 sballs.o: $(HACK_SRC)/images/sball-bg.xpm
 sballs.o: $(HACK_SRC)/images/sball.xpm
@@ -1859,6 +1924,7 @@ sballs.o: $(HACK_SRC)/xlockmore.h
 sballs.o: $(srcdir)/xpm-ximage.h
 shark.o: $(srcdir)/atlantis.h
 shark.o: ../../config.h
+shark.o: $(HACK_SRC)/fps.h
 shark.o: $(HACK_SRC)/screenhackI.h
 shark.o: $(UTILS_SRC)/colors.h
 shark.o: $(UTILS_SRC)/grabscreen.h
@@ -1868,6 +1934,7 @@ shark.o: $(UTILS_SRC)/usleep.h
 shark.o: $(UTILS_SRC)/visual.h
 shark.o: $(UTILS_SRC)/yarandom.h
 sierpinski3d.o: ../../config.h
+sierpinski3d.o: $(HACK_SRC)/fps.h
 sierpinski3d.o: $(srcdir)/gltrackball.h
 sierpinski3d.o: $(srcdir)/rotator.h
 sierpinski3d.o: $(HACK_SRC)/screenhackI.h
@@ -1882,7 +1949,9 @@ sierpinski3d.o: $(UTILS_SRC)/yarandom.h
 sierpinski3d.o: $(HACK_SRC)/xlockmoreI.h
 sierpinski3d.o: $(HACK_SRC)/xlockmore.h
 skytentacles.o: ../../config.h
+skytentacles.o: $(HACK_SRC)/fps.h
 skytentacles.o: $(srcdir)/gltrackball.h
+skytentacles.o: $(HACK_SRC)/images/scales.xpm
 skytentacles.o: $(srcdir)/normals.h
 skytentacles.o: $(srcdir)/rotator.h
 skytentacles.o: $(HACK_SRC)/screenhackI.h
@@ -1896,7 +1965,9 @@ skytentacles.o: $(UTILS_SRC)/xshm.h
 skytentacles.o: $(UTILS_SRC)/yarandom.h
 skytentacles.o: $(HACK_SRC)/xlockmoreI.h
 skytentacles.o: $(HACK_SRC)/xlockmore.h
+skytentacles.o: $(srcdir)/xpm-ximage.h
 spheremonics.o: ../../config.h
+spheremonics.o: $(HACK_SRC)/fps.h
 spheremonics.o: $(srcdir)/gltrackball.h
 spheremonics.o: $(srcdir)/glxfonts.h
 spheremonics.o: $(srcdir)/normals.h
@@ -1915,6 +1986,7 @@ spheremonics.o: $(HACK_SRC)/xlockmore.h
 sphere.o: ../../config.h
 sphere.o: $(srcdir)/sphere.h
 sproingies.o: ../../config.h
+sproingies.o: $(HACK_SRC)/fps.h
 sproingies.o: $(srcdir)/gllist.h
 sproingies.o: $(HACK_SRC)/screenhackI.h
 sproingies.o: $(srcdir)/sproingies.h
@@ -1928,6 +2000,7 @@ sproingies.o: $(UTILS_SRC)/xshm.h
 sproingies.o: $(UTILS_SRC)/yarandom.h
 sproingies.o: $(HACK_SRC)/xlockmoreI.h
 sproingiewrap.o: ../../config.h
+sproingiewrap.o: $(HACK_SRC)/fps.h
 sproingiewrap.o: $(HACK_SRC)/screenhackI.h
 sproingiewrap.o: $(srcdir)/sproingies.h
 sproingiewrap.o: $(UTILS_SRC)/colors.h
@@ -1942,7 +2015,10 @@ sproingiewrap.o: $(HACK_SRC)/xlockmoreI.h
 sproingiewrap.o: $(HACK_SRC)/xlockmore.h
 stairs.o: ../../config.h
 stairs.o: $(srcdir)/e_textures.h
+stairs.o: $(HACK_SRC)/fps.h
+stairs.o: $(srcdir)/gltrackball.h
 stairs.o: $(HACK_SRC)/screenhackI.h
+stairs.o: $(srcdir)/sphere.h
 stairs.o: $(UTILS_SRC)/colors.h
 stairs.o: $(UTILS_SRC)/grabscreen.h
 stairs.o: $(UTILS_SRC)/hsv.h
@@ -1954,6 +2030,7 @@ stairs.o: $(UTILS_SRC)/yarandom.h
 stairs.o: $(HACK_SRC)/xlockmoreI.h
 stairs.o: $(HACK_SRC)/xlockmore.h
 starwars.o: ../../config.h
+starwars.o: $(HACK_SRC)/fps.h
 starwars.o: $(srcdir)/glut_roman.h
 starwars.o: $(srcdir)/glutstroke.h
 starwars.o: $(HACK_SRC)/screenhackI.h
@@ -1974,6 +2051,7 @@ stonerview-move.o: $(srcdir)/stonerview-move.h
 stonerview-move.o: $(srcdir)/stonerview-osc.h
 stonerview-move.o: $(UTILS_SRC)/yarandom.h
 stonerview.o: ../../config.h
+stonerview.o: $(HACK_SRC)/fps.h
 stonerview.o: $(srcdir)/gltrackball.h
 stonerview.o: $(HACK_SRC)/screenhackI.h
 stonerview.o: $(srcdir)/stonerview.h
@@ -1999,6 +2077,7 @@ stonerview-view.o: $(srcdir)/stonerview.h
 stonerview-view.o: $(srcdir)/stonerview-move.h
 stonerview-view.o: $(srcdir)/stonerview-osc.h
 superquadrics.o: ../../config.h
+superquadrics.o: $(HACK_SRC)/fps.h
 superquadrics.o: $(HACK_SRC)/screenhackI.h
 superquadrics.o: $(UTILS_SRC)/colors.h
 superquadrics.o: $(UTILS_SRC)/grabscreen.h
@@ -2012,6 +2091,7 @@ superquadrics.o: $(HACK_SRC)/xlockmoreI.h
 superquadrics.o: $(HACK_SRC)/xlockmore.h
 swim.o: $(srcdir)/atlantis.h
 swim.o: ../../config.h
+swim.o: $(HACK_SRC)/fps.h
 swim.o: $(HACK_SRC)/screenhackI.h
 swim.o: $(UTILS_SRC)/colors.h
 swim.o: $(UTILS_SRC)/grabscreen.h
@@ -2023,6 +2103,7 @@ swim.o: $(UTILS_SRC)/xshm.h
 swim.o: $(UTILS_SRC)/yarandom.h
 swim.o: $(HACK_SRC)/xlockmoreI.h
 tangram.o: ../../config.h
+tangram.o: $(HACK_SRC)/fps.h
 tangram.o: $(srcdir)/glxfonts.h
 tangram.o: $(HACK_SRC)/screenhackI.h
 tangram.o: $(srcdir)/tangram_shapes.h
@@ -2037,10 +2118,13 @@ tangram.o: $(UTILS_SRC)/yarandom.h
 tangram.o: $(HACK_SRC)/xlockmoreI.h
 tangram.o: $(HACK_SRC)/xlockmore.h
 tangram_shapes.o: $(srcdir)/tangram_shapes.h
+teapot.o: ../../config.h
+teapot.o: $(srcdir)/teapot.h
 texfont.o: ../../config.h
 texfont.o: $(srcdir)/texfont.h
 texfont.o: $(UTILS_SRC)/resources.h
 timetunnel.o: ../../config.h
+timetunnel.o: $(HACK_SRC)/fps.h
 timetunnel.o: $(srcdir)/gltrackball.h
 timetunnel.o: $(HACK_SRC)/images/timetunnel0.xpm
 timetunnel.o: $(HACK_SRC)/images/timetunnel1.xpm
@@ -2071,6 +2155,7 @@ toaster_slots.o: $(srcdir)/gllist.h
 toaster_wing.o: $(srcdir)/gllist.h
 toast.o: $(srcdir)/gllist.h
 topblock.o: ../../config.h
+topblock.o: $(HACK_SRC)/fps.h
 topblock.o: $(srcdir)/gltrackball.h
 topblock.o: $(HACK_SRC)/screenhackI.h
 topblock.o: $(srcdir)/sphere.h
@@ -2090,6 +2175,7 @@ trackball.o: $(srcdir)/trackball.h
 tube.o: ../../config.h
 tube.o: $(srcdir)/tube.h
 tunnel_draw.o: ../../config.h
+tunnel_draw.o: $(HACK_SRC)/fps.h
 tunnel_draw.o: $(HACK_SRC)/screenhackI.h
 tunnel_draw.o: $(srcdir)/tunnel_draw.h
 tunnel_draw.o: $(UTILS_SRC)/colors.h
@@ -2102,6 +2188,7 @@ tunnel_draw.o: $(UTILS_SRC)/xshm.h
 tunnel_draw.o: $(UTILS_SRC)/yarandom.h
 tunnel_draw.o: $(HACK_SRC)/xlockmoreI.h
 voronoi.o: ../../config.h
+voronoi.o: $(HACK_SRC)/fps.h
 voronoi.o: $(HACK_SRC)/screenhackI.h
 voronoi.o: $(UTILS_SRC)/colors.h
 voronoi.o: $(UTILS_SRC)/grabscreen.h
@@ -2115,6 +2202,7 @@ voronoi.o: $(HACK_SRC)/xlockmoreI.h
 voronoi.o: $(HACK_SRC)/xlockmore.h
 whale.o: $(srcdir)/atlantis.h
 whale.o: ../../config.h
+whale.o: $(HACK_SRC)/fps.h
 whale.o: $(HACK_SRC)/screenhackI.h
 whale.o: $(UTILS_SRC)/colors.h
 whale.o: $(UTILS_SRC)/grabscreen.h
@@ -2124,6 +2212,8 @@ whale.o: $(UTILS_SRC)/usleep.h
 whale.o: $(UTILS_SRC)/visual.h
 whale.o: $(UTILS_SRC)/yarandom.h
 xlock-gl-utils.o: ../../config.h
+xlock-gl-utils.o: $(HACK_SRC)/fps.h
+xlock-gl-utils.o: $(srcdir)/glxfonts.h
 xlock-gl-utils.o: $(HACK_SRC)/screenhackI.h
 xlock-gl-utils.o: $(UTILS_SRC)/colors.h
 xlock-gl-utils.o: $(UTILS_SRC)/grabscreen.h
index fb19cb081a44578077cd2413f0711dad43ace8a3..21bb1be90f4ee5bf3384caa4162176cfa7dbe602 100644 (file)
@@ -180,7 +180,7 @@ static Bool myCone2(float radius)
 }
 
 /* draw an ant */
-static Bool draw_antinspect_ant(antinspectstruct * mp, 
+static Bool draw_antinspect_ant(ModeInfo *mi, antinspectstruct * mp, 
                                 const float *Material, int mono,
                                 Bool (*sphere)(float), Bool (*cone)(float)) 
 {
@@ -235,6 +235,7 @@ static Bool draw_antinspect_ant(antinspectstruct * mp,
   glVertex3f(0.00, 0.30, 0.00);
   glColor3fv(MaterialGray);
   glVertex3f(0.40, 0.70, 0.40);
+  mi->polygon_count++;
   if (mono)
     glColor3fv(MaterialGray5);
   else
@@ -242,6 +243,7 @@ static Bool draw_antinspect_ant(antinspectstruct * mp,
   glVertex3f(0.00, 0.30, 0.00);
   glColor3fv(MaterialGray);
   glVertex3f(0.40, 0.70, -0.40);
+  mi->polygon_count++;
   glEnd();
   glBegin(GL_POINTS);
   if (mono)
@@ -249,7 +251,9 @@ static Bool draw_antinspect_ant(antinspectstruct * mp,
   else
     glColor3fv(Material);
   glVertex3f(0.40, 0.70, 0.40);
+  mi->polygon_count++;
   glVertex3f(0.40, 0.70, -0.40);
+  mi->polygon_count++;
   glEnd();
   
   /* LEFT-FRONT ARM */
@@ -260,8 +264,10 @@ static Bool draw_antinspect_ant(antinspectstruct * mp,
     glColor3fv(Material);
   glVertex3f(0.00, 0.05, 0.18);
   glVertex3f(0.35 + 0.05 * cos1, 0.15, 0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 + 0.05 * cos1, 0.25 + 0.1 * sin1, 0.45);
+  mi->polygon_count++;
   glEnd();
   
   /* LEFT-CENTER ARM */
@@ -272,9 +278,12 @@ static Bool draw_antinspect_ant(antinspectstruct * mp,
     glColor3fv(Material);
   glVertex3f(0.00, 0.00, 0.18);
   glVertex3f(0.35 + 0.05 * cos2, 0.00, 0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 + 0.05 * cos2, 0.00 + 0.1 * sin2, 0.45);
+  mi->polygon_count++;
   glEnd();
+  mi->polygon_count++;
   
   /* LEFT-BACK ARM */
   glBegin(GL_LINE_STRIP);
@@ -284,8 +293,10 @@ static Bool draw_antinspect_ant(antinspectstruct * mp,
     glColor3fv(Material);
   glVertex3f(0.00, -0.05, 0.18);
   glVertex3f(0.35 + 0.05 * cos3, -0.15, 0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 + 0.05 * cos3, -0.25 + 0.1 * sin3, 0.45);
+  mi->polygon_count++;
   glEnd();
   
   /* RIGHT-FRONT ARM */
@@ -296,8 +307,10 @@ static Bool draw_antinspect_ant(antinspectstruct * mp,
     glColor3fv(Material);
   glVertex3f(0.00, 0.05, -0.18);
   glVertex3f(0.35 - 0.05 * sin1, 0.15, -0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
+  mi->polygon_count++;
   glEnd();
   
   /* RIGHT-CENTER ARM */
@@ -308,8 +321,10 @@ static Bool draw_antinspect_ant(antinspectstruct * mp,
     glColor3fv(Material);
   glVertex3f(0.00, 0.00, -0.18);
   glVertex3f(0.35 - 0.05 * sin2, 0.00, -0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
+  mi->polygon_count++;
   glEnd();
   
   /* RIGHT-BACK ARM */
@@ -320,8 +335,10 @@ static Bool draw_antinspect_ant(antinspectstruct * mp,
     glColor3fv(Material);
   glVertex3f(0.00, -0.05, -0.18);
   glVertex3f(0.35 - 0.05 * sin3, -0.15, -0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+  mi->polygon_count++;
   glEnd();
     
   glEnable(GL_LIGHTING);
@@ -377,6 +394,7 @@ static Bool draw_antinspect_strip(ModeInfo * mi)
   glVertex3f(0.0, 0.0, -1.0);
   glVertex3f(-sqrt(3.0)/2.0, 0.0, 0.5);
   glVertex3f(sqrt(3.0)/2.0, 0.0, 0.5);
+  mi->polygon_count++;
   glEnd();
 
   /* rotate */
@@ -386,6 +404,7 @@ static Bool draw_antinspect_strip(ModeInfo * mi)
     glVertex3f(0.0, 0.0, 1.0 + 3.0);
     glVertex3f(sqrt(3.0)/2.0, 0.0, -0.5 + 3.0);
     glVertex3f(-sqrt(3.0)/2.0, 0.0, -0.5 + 3.0);
+    mi->polygon_count++;
     glEnd();
   }
 
@@ -429,7 +448,7 @@ static Bool draw_antinspect_strip(ModeInfo * mi)
 
       if(antposition[i] > 360.0)
        antposition[i] = 0.0;
-      draw_antinspect_ant(mp, MaterialShadow, mono, mySphere2, myCone2);
+      draw_antinspect_ant(mi, mp, MaterialShadow, mono, mySphere2, myCone2);
 
       glDisable(GL_BLEND);
       glDisable(GL_LIGHTING);
@@ -471,7 +490,7 @@ static Bool draw_antinspect_strip(ModeInfo * mi)
     if(antposition[i] > 360.0)
       antposition[i] = 0.0;
     glEnable(GL_BLEND);
-    draw_antinspect_ant(mp, antmaterial[i], mono, mySphere2, myCone2);
+    draw_antinspect_ant(mi, mp, antmaterial[i], mono, mySphere2, myCone2);
     glDisable(GL_BLEND);
     glPopMatrix();
 
@@ -635,6 +654,8 @@ ENTRYPOINT void draw_antinspect(ModeInfo * mi)
 
   glPushMatrix();
 
+  mi->polygon_count = 0;
+
   /* position camera --- this works well, we can peer inside 
      the antbubble */
   glTranslatef(0.0, 0.0, -10.0);
index f3127212ba2662a237d5ddaef2577e7ca2c67512..804d7a4e0e81cc87b682f75ebeb3f85e8fdc84e5 100644 (file)
@@ -28,9 +28,7 @@ Draw shadows on ground
 Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index e0ba5456cffafb0c6684fd61fec249eadeabe2a1..9c58b0ac862200c0b987b1e49146775fcf8e69da 100644 (file)
@@ -326,7 +326,7 @@ static void makeBrushedImage(antmazestruct *mp)
 }
 
 #if 0
-static void draw_wall(double x1, double z1, double x2, double z2) 
+static void draw_wall(ModeInfo *mi, double x1, double z1, double x2, double z2) 
 {
   float x = fabs(x2 - x1)/2.0;
 
@@ -342,6 +342,7 @@ static void draw_wall(double x1, double z1, double x2, double z2)
   glVertex3f(x2, 1.0, z2-0.25);
   glTexCoord2f(0.0, 0.25);
   glVertex3f(x1, 1.0, z1-0.25);
+  mi->polygon_count++;
 
   /* draw sides */
   glNormal3f(0.0, 0.0, 1.0);
@@ -353,6 +354,7 @@ static void draw_wall(double x1, double z1, double x2, double z2)
   glVertex3f(x2, 1.0, z2+0.25);
   glTexCoord2f(0.0, 0.5);
   glVertex3f(x1, 1.0, z1+0.25);
+  mi->polygon_count++;
 
   glNormal3f(0.0, 0.0, -1.0);
   glTexCoord2f(0.0, 0.0);
@@ -363,6 +365,7 @@ static void draw_wall(double x1, double z1, double x2, double z2)
   glVertex3f(x2, 1.0, z2-0.25);
   glTexCoord2f(0.0, 0.5);
   glVertex3f(x1, 1.0, z1-0.25);
+  mi->polygon_count++;
 
   /* draw ends */
   glNormal3f(1.0, 0.0, 0.0);
@@ -374,6 +377,7 @@ static void draw_wall(double x1, double z1, double x2, double z2)
   glVertex3f(x2, 1.0, z2-0.25);
   glTexCoord2f(0.0, 0.5);
   glVertex3f(x2, 1.0, z2+0.25);
+  mi->polygon_count++;
 
   glNormal3f(-1.0, 0.0, 0.0);
   glTexCoord2f(0.0, 0.0);
@@ -384,12 +388,13 @@ static void draw_wall(double x1, double z1, double x2, double z2)
   glVertex3f(x1, 1.0, z1+0.25);
   glTexCoord2f(0.0, 0.5);
   glVertex3f(x1, 1.0, z1-0.25);
+  mi->polygon_count++;
 
   glEnd();
 }
 #endif
 
-static void draw_board(antmazestruct *mp) 
+static void draw_board(ModeInfo *mi, antmazestruct *mp) 
 {
 
   int i, j;
@@ -425,6 +430,7 @@ static void draw_board(antmazestruct *mp)
        glVertex3f(i+0.5, h, j-0.5);
        glTexCoord2f(0.0 + stf, 1.0 + stf);
        glVertex3f(i-0.5, h, j-0.5);
+        mi->polygon_count++;
 
        /* draw south face */
        if(j == 9 || !mp->board[mp->currentboard][j+1][i]) {
@@ -437,6 +443,7 @@ static void draw_board(antmazestruct *mp)
          glVertex3f(i+0.5, h, j+0.5);
          glTexCoord2f(0.0 + stf, h + stf);
          glVertex3f(i-0.5, h, j+0.5);
+          mi->polygon_count++;
        }
 
        /* draw north face */
@@ -450,6 +457,7 @@ static void draw_board(antmazestruct *mp)
          glVertex3f(i-0.5, h, j-0.5);
          glTexCoord2f(0.0 + stf, h + stf);
          glVertex3f(i+0.5, h, j-0.5);
+          mi->polygon_count++;
        }
 
        /* draw east face */
@@ -463,6 +471,7 @@ static void draw_board(antmazestruct *mp)
          glVertex3f(i+0.5, h, j-0.5);
          glTexCoord2f(0.0 + stf, h + stf);
          glVertex3f(i+0.5, h, j+0.5);
+          mi->polygon_count++;
        }
 
        /* draw west face */
@@ -476,6 +485,7 @@ static void draw_board(antmazestruct *mp)
          glVertex3f(i-0.5, h, j+0.5);
          glTexCoord2f(0.0 + stf, h + stf);
          glVertex3f(i-0.5, h, j-0.5);
+          mi->polygon_count++;
        }
       }
       else {
@@ -489,6 +499,7 @@ static void draw_board(antmazestruct *mp)
        glVertex3f(i+0.5, 0.0, j-0.5);
        glTexCoord2f(0.0, tx);
        glVertex3f(i-0.5, 0.0, j-0.5);
+        mi->polygon_count++;
       }
     }
   glEnd();
@@ -510,6 +521,7 @@ static void draw_board(antmazestruct *mp)
 /*       glVertex3f(1.5, 0.0, BOARDSIZE + 1.0 + 0.2); */
 /*       glTexCoord2f(0.0, 1.5); */
 /*       glVertex3f(0.5, 0.0, BOARDSIZE + 1.0 + 0.2); */
+/*        mi->polygon_count++; */
 /*   } */
 
 /*   /\* destination *\/ */
@@ -521,6 +533,7 @@ static void draw_board(antmazestruct *mp)
 /*   glVertex3f(BOARDSIZE - 1.5, elevator, -0.5 - 0.2); */
 /*   glTexCoord2f(0.0, 1.5); */
 /*   glVertex3f(BOARDSIZE - 2.5, elevator, -0.5 - 0.2); */
+/*   mi->polygon_count++; */
 
 /*   glEnd(); */
 
@@ -538,6 +551,7 @@ static void draw_board(antmazestruct *mp)
 /*     glVertex3f(i+0.5 - stf, h+0.001, j-0.5 + stf); */
 /*     glTexCoord2f(0.0 + stf, 1.0 + stf); */
 /*     glVertex3f(i-0.5 + stf, h+0.001, j-0.5 + stf); */
+/*      mi->polygon_count++; */
 /*       } */
 /*     } */
   
@@ -626,7 +640,7 @@ static double min(double a, double b)
 }
 
 /* draw method for ant */
-static Bool draw_ant(antmazestruct *mp,
+static Bool draw_ant(ModeInfo *mi, antmazestruct *mp,
                      const float *Material, int mono, int shadow,
              float ant_step, Bool (*sphere)(float), Bool (*cone)(float)) 
 {
@@ -679,17 +693,21 @@ static Bool draw_ant(antmazestruct *mp,
   glVertex3f(0.00, 0.30, 0.00);
   glColor3fv(MaterialGray);
   glVertex3f(0.40, 0.70, 0.40);
+  mi->polygon_count++;
   glColor3fv(mono ? MaterialGray5 : Material);
   glVertex3f(0.00, 0.30, 0.00);
   glColor3fv(MaterialGray);
   glVertex3f(0.40, 0.70, -0.40);
+  mi->polygon_count++;
   glEnd();
 
   if(!shadow) {
     glBegin(GL_POINTS);
     glColor3fv(mono ? MaterialGray6 : MaterialRed);
     glVertex3f(0.40, 0.70, 0.40);
+    mi->polygon_count++;
     glVertex3f(0.40, 0.70, -0.40);
+    mi->polygon_count++;
     glEnd();
   }
 
@@ -698,8 +716,10 @@ static Bool draw_ant(antmazestruct *mp,
   glColor3fv(mono ? MaterialGray5 : Material);
   glVertex3f(0.00, 0.05, 0.18);
   glVertex3f(0.35 + 0.05 * cos1, 0.15, 0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 + 0.05 * cos1, 0.25 + 0.1 * sin1, 0.45);
+  mi->polygon_count++;
   glEnd();
 
   /* LEFT-CENTER ARM */
@@ -707,8 +727,10 @@ static Bool draw_ant(antmazestruct *mp,
   glColor3fv(mono ? MaterialGray5 : Material);
   glVertex3f(0.00, 0.00, 0.18);
   glVertex3f(0.35 + 0.05 * cos2, 0.00, 0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 + 0.05 * cos2, 0.00 + 0.1 * sin2, 0.45);
+  mi->polygon_count++;
   glEnd();
 
   /* LEFT-BACK ARM */
@@ -716,8 +738,10 @@ static Bool draw_ant(antmazestruct *mp,
   glColor3fv(mono ? MaterialGray5 : Material);
   glVertex3f(0.00, -0.05, 0.18);
   glVertex3f(0.35 + 0.05 * cos3, -0.15, 0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 + 0.05 * cos3, -0.25 + 0.1 * sin3, 0.45);
+  mi->polygon_count++;
   glEnd();
 
   /* RIGHT-FRONT ARM */
@@ -725,8 +749,10 @@ static Bool draw_ant(antmazestruct *mp,
   glColor3fv(mono ? MaterialGray5 : Material);
   glVertex3f(0.00, 0.05, -0.18);
   glVertex3f(0.35 - 0.05 * sin1, 0.15, -0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
+  mi->polygon_count++;
   glEnd();
 
   /* RIGHT-CENTER ARM */
@@ -734,8 +760,10 @@ static Bool draw_ant(antmazestruct *mp,
   glColor3fv(mono ? MaterialGray5 : Material);
   glVertex3f(0.00, 0.00, -0.18);
   glVertex3f(0.35 - 0.05 * sin2, 0.00, -0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
+  mi->polygon_count++;
   glEnd();
 
   /* RIGHT-BACK ARM */
@@ -743,8 +771,10 @@ static Bool draw_ant(antmazestruct *mp,
   glColor3fv(mono ? MaterialGray5 : Material);
   glVertex3f(0.00, -0.05, -0.18);
   glVertex3f(0.35 - 0.05 * sin3, -0.15, -0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+  mi->polygon_count++;
   glEnd();
 
   if(!shadow) {
@@ -756,6 +786,7 @@ static Bool draw_ant(antmazestruct *mp,
     glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
     glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
     glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+    mi->polygon_count += 6;
     glEnd();
   }
 
@@ -790,7 +821,7 @@ static Bool draw_antmaze_strip(ModeInfo * mi)
     glEnable(GL_TEXTURE_2D);
     glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray6);
     glTranslatef(-(BOARDSIZE-1)/2.0, 0.0, -(BOARDSIZE-1)/2.0);
-    draw_board(mp);
+    draw_board(mi, mp);
     glTranslatef(BOARDSIZE/2.0, 0.0, BOARDSIZE/2.0);
     glDisable(GL_TEXTURE_2D);
   }
@@ -823,9 +854,9 @@ static Bool draw_antmaze_strip(ModeInfo * mi)
 
     /* slow down first ant */
     if(i == 0 && mp->part[i] == mp->antpathlength[i])
-      draw_ant(mp, MaterialGrayB, mono, 1, mp->first_ant_step, mySphere, myCone);
+      draw_ant(mi, mp, MaterialGrayB, mono, 1, mp->first_ant_step, mySphere, myCone);
     else
-      draw_ant(mp, MaterialGrayB, mono, 1, mp->ant_step, mySphere, myCone);
+      draw_ant(mi, mp, MaterialGrayB, mono, 1, mp->ant_step, mySphere, myCone);
 
     glPopMatrix();
 
@@ -851,7 +882,7 @@ static Bool draw_antmaze_strip(ModeInfo * mi)
     if(i == 0 && mp->part[i] == mp->antpathlength[i] && mp->elevator > 0.0) {
       glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
       glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
-      draw_ant(mp, antmaterial[i], mono, 1, mp->first_ant_step, mySphere, myCone);
+      draw_ant(mi, mp, antmaterial[i], mono, 1, mp->first_ant_step, mySphere, myCone);
     }
     else {
 /*       glLightfv(GL_LIGHT0, GL_DIFFUSE, df); */
@@ -859,12 +890,12 @@ static Bool draw_antmaze_strip(ModeInfo * mi)
 
       glEnable(GL_TEXTURE_2D);
       glBindTexture(GL_TEXTURE_2D, mp->brushedtexture);
-      draw_ant(mp, antmaterial[i], mono, 1, mp->ant_step, mySphereTex, myCone);
+      draw_ant(mi, mp, antmaterial[i], mono, 1, mp->ant_step, mySphereTex, myCone);
       glDisable(GL_TEXTURE_2D);
     }
 
 
-/*     draw_ant(antmaterial[i], mono, 0, ant_step, mySphereTex, myCone); */
+/*     draw_ant(mi, antmaterial[i], mono, 0, ant_step, mySphereTex, myCone); */
 /*     glDisable(GL_TEXTURE_2D); */
     glPopMatrix();
   }
@@ -904,6 +935,7 @@ static Bool draw_antmaze_strip(ModeInfo * mi)
 /*     glVertex3f((sz*i)/BOARDSIZE, (sz*(j+1))/BOARDSIZE, 0.0); */
 /*     glVertex3f((sz*i)/BOARDSIZE, (sz*j)/BOARDSIZE, 0.0); */
 /*     glVertex3f((sz*(i+1))/BOARDSIZE, (sz*j)/BOARDSIZE, 0.0); */
+/*      mi->polygon_count++; */
 /*       } */
 /*   } */
 /*   glEnd(); */
@@ -1100,7 +1132,7 @@ static void update_ants(antmazestruct *mp)
 /*       glPushMatrix(); */
 /*       glTranslatef(-(-(BOARDSIZE-3.5)+(BOARDSIZE-1)/2.0), 0.0,  */
 /*                    -(2.4+BOARDSIZE+(BOARDSIZE-1)/2.0)); */
-/*       draw_board(); */
+/*       draw_board(mi, mp); */
 /*       glPopMatrix(); */
 /*       glDisable(GL_TEXTURE_2D); */
 /*     } */
@@ -1396,6 +1428,7 @@ ENTRYPOINT void draw_antmaze(ModeInfo * mi)
   if(!mp->glx_context)
        return;
   
+  mi->polygon_count = 0;
   glXMakeCurrent(display, window, *(mp->glx_context));
 
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -1495,7 +1528,7 @@ ENTRYPOINT void draw_antmaze(ModeInfo * mi)
   glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
   glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
   glBindTexture(GL_TEXTURE_2D, mp->brushedtexture);
-  draw_ant(mp, MaterialGray35, 0, 1, mp->ant_step/2.0, mySphereTex, myCone2);
+  draw_ant(mi, mp, MaterialGray35, 0, 1, mp->ant_step/2.0, mySphereTex, myCone2);
   glDisable(GL_TEXTURE_2D);
 
   glPopMatrix();
@@ -1524,6 +1557,7 @@ ENTRYPOINT void draw_antmaze(ModeInfo * mi)
 /*   glVertex3f(2.0, 3.0, 0.0); */
 /*   glVertex3f(2.0, -3.0, 0.0); */
 /*   glVertex3f(4.0, -3.0, 0.0); */
+/*   mi->polygon_count++; */
 /*   glEnd(); */
 
 /*   glEnable(GL_LIGHTING); */
index c1ab5b457a0065fc92262b88590bbb72753ab32d..4c4bec8c64345c260615689e74e50d269950aeb9 100644 (file)
@@ -24,9 +24,7 @@ Install a private colormap for the window.
 Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index c7f0c605b49c4ed0cf28caa0ad22018137e6660c..2598f5cf3bca36d5674e59f35e5ad2fc97f92051 100644 (file)
@@ -78,7 +78,7 @@ static antspotlightstruct *antspotlight = (antspotlightstruct *) NULL;
 #define NUM_SCENES      2
 
 /* draw method for ant */
-static Bool draw_ant(antspotlightstruct *mp,
+static Bool draw_ant(ModeInfo *mi, antspotlightstruct *mp,
                      const GLfloat *Material, int mono, int shadow, 
              float ant_step, Bool (*sphere)(float), Bool (*cone)(float))
 {
@@ -138,17 +138,21 @@ static Bool draw_ant(antspotlightstruct *mp,
   glVertex3f(0.00, 0.30, 0.00);
   glColor3fv(MaterialGray);
   glVertex3f(0.40, 0.70, 0.40);
+  mi->polygon_count++;
   glColor3fv(mp->mono ? MaterialGray5 : Material);
   glVertex3f(0.00, 0.30, 0.00);
   glColor3fv(MaterialGray);
   glVertex3f(0.40, 0.70, -0.40);
+  mi->polygon_count++;
   glEnd();
 
   if(!shadow) {
     glBegin(GL_POINTS);
     glColor3fv(mp->mono ? MaterialGray6 : MaterialGray5);
     glVertex3f(0.40, 0.70, 0.40);
+    mi->polygon_count++;
     glVertex3f(0.40, 0.70, -0.40);
+    mi->polygon_count++;
     glEnd();
   }
 
@@ -157,8 +161,10 @@ static Bool draw_ant(antspotlightstruct *mp,
   glColor3fv(mp->mono ? MaterialGray5 : Material);
   glVertex3f(0.00, 0.05, 0.18);
   glVertex3f(0.35 + 0.05 * cos1, 0.15, 0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 + 0.05 * cos1, 0.25 + 0.1 * sin1, 0.45);
+  mi->polygon_count++;
   glEnd();
 
   /* LEFT-CENTER ARM */
@@ -166,8 +172,10 @@ static Bool draw_ant(antspotlightstruct *mp,
   glColor3fv(mp->mono ? MaterialGray5 : Material);
   glVertex3f(0.00, 0.00, 0.18);
   glVertex3f(0.35 + 0.05 * cos2, 0.00, 0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 + 0.05 * cos2, 0.00 + 0.1 * sin2, 0.45);
+  mi->polygon_count++;
   glEnd();
 
   /* LEFT-BACK ARM */
@@ -175,8 +183,10 @@ static Bool draw_ant(antspotlightstruct *mp,
   glColor3fv(mp->mono ? MaterialGray5 : Material);
   glVertex3f(0.00, -0.05, 0.18);
   glVertex3f(0.35 + 0.05 * cos3, -0.15, 0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 + 0.05 * cos3, -0.25 + 0.1 * sin3, 0.45);
+  mi->polygon_count++;
   glEnd();
 
   /* RIGHT-FRONT ARM */
@@ -184,8 +194,10 @@ static Bool draw_ant(antspotlightstruct *mp,
   glColor3fv(mp->mono ? MaterialGray5 : Material);
   glVertex3f(0.00, 0.05, -0.18);
   glVertex3f(0.35 - 0.05 * sin1, 0.15, -0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
+  mi->polygon_count++;
   glEnd();
 
   /* RIGHT-CENTER ARM */
@@ -193,8 +205,10 @@ static Bool draw_ant(antspotlightstruct *mp,
   glColor3fv(mp->mono ? MaterialGray5 : Material);
   glVertex3f(0.00, 0.00, -0.18);
   glVertex3f(0.35 - 0.05 * sin2, 0.00, -0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
+  mi->polygon_count++;
   glEnd();
 
   /* RIGHT-BACK ARM */
@@ -202,8 +216,10 @@ static Bool draw_ant(antspotlightstruct *mp,
   glColor3fv(mp->mono ? MaterialGray5 : Material);
   glVertex3f(0.00, -0.05, -0.18);
   glVertex3f(0.35 - 0.05 * sin3, -0.15, -0.25);
+  mi->polygon_count++;
   glColor3fv(MaterialGray);
   glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+  mi->polygon_count++;
   glEnd();
 
   if(!shadow) {
@@ -215,6 +231,7 @@ static Bool draw_ant(antspotlightstruct *mp,
     glVertex3f(-0.20 - 0.05 * sin1, 0.25 + 0.1 * cos1, -0.45);
     glVertex3f(-0.20 - 0.05 * sin2, 0.00 + 0.1 * cos2, -0.45);
     glVertex3f(-0.20 - 0.05 * sin3, -0.25 + 0.1 * cos3, -0.45);
+    mi->polygon_count += 6;
     glEnd();
   }
 
@@ -255,7 +272,7 @@ static Bool mySphere2(float radius)
 /* no cone */
 static Bool myCone2(float radius) { return True; }
 
-static void draw_board(antspotlightstruct *mp)
+static void draw_board(ModeInfo *mi, antspotlightstruct *mp)
 {
   int i, j;
   double cutoff = Pi/3.0;
@@ -324,6 +341,7 @@ static void draw_board(antspotlightstruct *mp)
 
       glTexCoord2f(tex[0], tex[1]);
       glVertex3f(point[0], point[1], point[2]);
+      mi->polygon_count++;
     }
 
     glEnd();
@@ -391,7 +409,7 @@ static void reset_ant(antspotlightstruct *mp)
 }
 
 /* draw ant composed of skeleton and glass */
-static void show_ant(antspotlightstruct *mp)
+static void show_ant(ModeInfo *mi, antspotlightstruct *mp)
 {
 
   glPushMatrix();
@@ -402,14 +420,14 @@ static void show_ant(antspotlightstruct *mp)
   glRotatef(90.0, 0.0, 0.0, 1.0);
 
   /* draw skeleton */
-  draw_ant(mp, mp->ant->material, mp->mono, 0, mp->ant->step, mySphere2, myCone2);
+  draw_ant(mi, mp, mp->ant->material, mp->mono, 0, mp->ant->step, mySphere2, myCone2);
 
   /* draw glass */
   if(!mp->wire && !mp->mono) {
     glEnable(GL_BLEND);
     glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGrayB);
     glColor4fv(MaterialGrayB);
-    draw_ant(mp, MaterialGrayB, mp->mono, 0, mp->ant->step, mySphere, myCone2);
+    draw_ant(mi, mp, MaterialGrayB, mp->mono, 0, mp->ant->step, mySphere, myCone2);
     glDisable(GL_BLEND);
   }
 
@@ -443,14 +461,14 @@ static void draw_antspotlight_strip(ModeInfo *mi)
   if(mp->wire)
     ;
   else
-    draw_board(mp);
+    draw_board(mi, mp);
 
   glDisable(GL_LIGHT2);
   glEnable(GL_LIGHT0);
   glEnable(GL_LIGHT1);
   
   /* now modify ant */
-  show_ant(mp);
+  show_ant(mi, mp);
 
   /* near goal, bend path towards next step */
   if(distance(mp->ant->position, mp->ant->goal) < 0.2) {
@@ -724,6 +742,8 @@ ENTRYPOINT void draw_antspotlight(ModeInfo * mi)
   if(!mp->glx_context)
        return;
   
+  mi->polygon_count = 0;
+
   /* Just keep running before the texture has come in. */
   /* if (mp->waiting_for_image_p) return; */
 
index 2c3473db7dd4952c6200ecc29f5fa56d6f1720df..c5f8ed7cea693aa269ff030f46964bbf79e0c205 100644 (file)
@@ -25,13 +25,10 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-delay \fImicroseconds\fP
-The delay specified by this option affects the speed of the animation (and the
-computation workload on the machine).   You can use \fB\-delay 0\fP in 
-conjunction with \fB\-fps\fP, and this can be an interesting benchmark of 
-your GL performance.
+Per-frame delay.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 4b13c3217b1cb734c82911fce578ebdc2402318d..526c509a5963bf819c37e1e6276d3bb58a9f13e3 100644 (file)
@@ -540,6 +540,7 @@ draw_atlantis(ModeInfo * mi)
 ENTRYPOINT void
 release_atlantis(ModeInfo * mi)
 {
+#if 0
        int         screen;
 
        if (atlantis != NULL) {
@@ -553,6 +554,7 @@ release_atlantis(ModeInfo * mi)
                atlantis = NULL;
        }
        FreeAllGL(mi);
+#endif
 }
 
 ENTRYPOINT void
index e75770be009f5b9dbec40a3348c910eea4ec406e..0c2df5ab59f21610e70a75429ccd7920300d75b3 100644 (file)
@@ -51,8 +51,8 @@ Whether to draw a gradient on the background, making it darker at the bottom.
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index e13129cbbc52d19559f2b8fadd42177481f8c234..baea0ef85e885c12c88dee670d1a87bcded3b25e 100644 (file)
@@ -84,7 +84,7 @@ static const char sccsid[] = "@(#)atunnel.c   5.13 2004/05/25 xlockmore";
 #define countof(x) (sizeof((x))/sizeof((*x)))
 
 #define DEF_LIGHT      "True"
-#define DEF_WIRE       "False"
+#define DEF_WIRE    "False"
 #define DEF_TEXTURE    "True"
 
 static Bool do_light;
@@ -307,6 +307,7 @@ ENTRYPOINT void init_atunnel(ModeInfo * mi)
 /* all sorts of nice cleanup code should go here! */
 ENTRYPOINT void release_atunnel(ModeInfo * mi)
 {
+#if 0
   int screen;
   if (Atunnel != NULL) {
        for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) {
@@ -317,6 +318,7 @@ ENTRYPOINT void release_atunnel(ModeInfo * mi)
        Atunnel = NULL;
   }
   FreeAllGL(mi);
+#endif
 }
 
 XSCREENSAVER_MODULE ("Atunnel", atunnel)
index 8bf0b4b5041d3c1f3417db9d487677c5b9637c59..dc195829d310dff8275c9551908c694d70ea68ba 100644 (file)
@@ -21,7 +21,7 @@ atunnel - hypnotic GL tunnel journey
 [\-light] [\-no-light]
 [\-wire] [\-no-wire]
 [\-texture] [\-no-texture]
-[\-fps] [\-no-fps]
+[\-fps]
 .SH DESCRIPTION
 The \fIatunnel\fP program draws an animation of a journey in a GL tunnel.
 .SH OPTIONS
@@ -42,9 +42,7 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-texture
 Show a textured tunnel. This is the default.
index 23b2643783a2e4d9db47903f50072f7af6d043a8..de7d55e741b262ab40b0d2a2791bff964512f659 100644 (file)
@@ -31,7 +31,7 @@
 #define ALPHA_AMT 0.05
 
 /* this should be between 1 and 8 */
-#define DEF_WH       "2"
+#define DEF_BOXSIZE  "2"
 #define DEF_DISSOLVE "False"
 #define DEF_FADE     "True"
 #define DEF_BLUR     "True"
@@ -121,7 +121,7 @@ static XrmOptionDescRec opts[] = {
 };
 
 static argtype vars[] = {
-  {&bscale_wh,   "boxsize",   "Boxsize",  DEF_WH,       t_Float},
+  {&bscale_wh,   "boxsize",   "Boxsize",  DEF_BOXSIZE,  t_Float},
   {&do_dissolve, "dissolve",  "Dissolve", DEF_DISSOLVE, t_Bool},
   {&do_fade,     "fade",      "Fade",     DEF_FADE,     t_Bool},
   {&do_blur,     "blur",      "Blur",     DEF_BLUR,     t_Bool},
@@ -440,6 +440,7 @@ draw_ball (ModeInfo *mi)
 
    if (! bp->glx_context)
      return;
+   mi->polygon_count = 0;
    glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
 
    glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -466,6 +467,7 @@ draw_ball (ModeInfo *mi)
 
      glScalef(2,2,2);
      glCallList(bp->ballList);
+     mi->polygon_count += SPHERE_SLICES*SPHERE_STACKS;
 
    } else {
 
@@ -487,6 +489,7 @@ draw_ball (ModeInfo *mi)
 
        glScalef(2, 2, 2);
        glCallList(bp->ballList);
+       mi->polygon_count += SPHERE_SLICES*SPHERE_STACKS;
        glScalef(.5, .5, .5);
      }
      i = 0;
@@ -571,6 +574,7 @@ draw_ball (ModeInfo *mi)
         glScalef(bp->bscale.wh,bp->bscale.wh,bp->bscale.d);
       }
       glCallList(bp->boxList);
+      mi->polygon_count += 6;
       glPopMatrix();
       bp->sp->counter--;
       bp->sp->des_count++;
@@ -585,6 +589,7 @@ draw_ball (ModeInfo *mi)
 
 
    glPopMatrix();
+  if (mi->fps_p) do_fps (mi);
    glFinish();
    glXSwapBuffers(dpy, window);
 
index 5964093ecf8f75dae19d8dab4f6fee486c3fc12e..31f45d33dd7113391139a43cb62d7966df4486a6 100644 (file)
@@ -13,6 +13,7 @@ blinkbox
 [\-dissolve]
 [\-fade]
 [\-no\-blur]
+[\-fps]
 .SH DESCRIPTION
 Shows a ball contained inside of a bounding box. Colored blocks blink in
 when the ball hits the edges.
@@ -45,6 +46,9 @@ Boxes fade to transparency instead of just vanishing.
 .TP 8
 .B \-blur | \-no-blur
 Enable or disable motion blur on the ball.  Default: blurry.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index b38668b22ac2672e3f9b7515c0c59f34fe9dc30f..f62f3413c8b1c7e17d0cb14f05cf57e5986eed03 100644 (file)
@@ -71,6 +71,7 @@ typedef struct {
 
   GLfloat tunnelLength;
   GLfloat tunnelWidth;
+  int polys;
 
 } blocktube_configuration;
 
@@ -197,7 +198,7 @@ static void tick(blocktube_configuration *lp)
     }
 }
 
-static void cube_vertices(float x, float y, float z, int wire);
+static int cube_vertices(float x, float y, float z, int wire);
 
 ENTRYPOINT void reshape_blocktube (ModeInfo *mi, int width, int height);
 
@@ -234,7 +235,7 @@ ENTRYPOINT void init_blocktube (ModeInfo *mi)
 
     lp->block_dlist = glGenLists (1);
     glNewList (lp->block_dlist, GL_COMPILE);
-    cube_vertices(0.15, 1.2, 5.25, wire);
+    lp->polys = cube_vertices(0.15, 1.2, 5.25, wire);
     glEndList ();
 
 #if defined( I_HAVE_XPM )
@@ -322,8 +323,9 @@ ENTRYPOINT void reshape_blocktube (ModeInfo *mi, int width, int height)
     glMatrixMode(GL_MODELVIEW);
 }
 
-static void cube_vertices(float x, float y, float z, int wire)
+static int cube_vertices(float x, float y, float z, int wire)
 {
+    int polygon_count = 0;
     float x2, y2, z2, nv = 0.7;
     x2 = x/2;
     y2 = y/2;
@@ -337,6 +339,7 @@ static void cube_vertices(float x, float y, float z, int wire)
     glTexCoord2f(1.0, 0.0); glVertex3f( x2,  y2,  z2);
     glTexCoord2f(1.0, 1.0); glVertex3f( x2, -y2,  z2);
     glTexCoord2f(0.0, 1.0); glVertex3f(-x2, -y2,  z2);
+    polygon_count++;
     glEnd();
 
     glNormal3f(0, 0, -nv);
@@ -345,6 +348,7 @@ static void cube_vertices(float x, float y, float z, int wire)
     glTexCoord2f(1.0, 1.0); glVertex3f( x2, -y2, -z2);
     glTexCoord2f(0.0, 1.0); glVertex3f( x2,  y2, -z2);
     glTexCoord2f(0.0, 0.0); glVertex3f(-x2,  y2, -z2);
+    polygon_count++;
     glEnd();
 
     glNormal3f(0, nv, 0);
@@ -353,6 +357,7 @@ static void cube_vertices(float x, float y, float z, int wire)
     glTexCoord2f(0.0, 0.0); glVertex3f( x2,  y2, -z2);
     glTexCoord2f(1.0, 0.0); glVertex3f( x2,  y2,  z2);
     glTexCoord2f(1.0, 1.0); glVertex3f(-x2,  y2,  z2);
+    polygon_count++;
     glEnd();
 
     glNormal3f(0, -nv, 0);
@@ -361,9 +366,10 @@ static void cube_vertices(float x, float y, float z, int wire)
     glTexCoord2f(0.0, 1.0); glVertex3f(-x2, -y2,  z2);
     glTexCoord2f(0.0, 0.0); glVertex3f( x2, -y2,  z2);
     glTexCoord2f(1.0, 0.0); glVertex3f( x2, -y2, -z2);
+    polygon_count++;
     glEnd();
 
-    if (wire) return;
+    if (wire) return polygon_count;
 
     glNormal3f(nv, 0, 0);
     glBegin (wire ? GL_LINE_LOOP : GL_QUADS);
@@ -371,6 +377,7 @@ static void cube_vertices(float x, float y, float z, int wire)
     glTexCoord2f(1.0, 1.0); glVertex3f( x2, -y2,  z2);
     glTexCoord2f(0.0, 1.0); glVertex3f( x2,  y2,  z2);
     glTexCoord2f(0.0, 0.0); glVertex3f( x2,  y2, -z2);
+    polygon_count++;
     glEnd();
 
     glNormal3f(-nv, 0, 0);
@@ -379,13 +386,17 @@ static void cube_vertices(float x, float y, float z, int wire)
     glTexCoord2f(1.0, 0.0); glVertex3f(-x2,  y2, -z2);
     glTexCoord2f(1.0, 1.0); glVertex3f(-x2,  y2,  z2);
     glTexCoord2f(0.0, 1.0); glVertex3f(-x2, -y2,  z2);
+    polygon_count++;
     glEnd();
+
+    return polygon_count;
 }
 
 static void draw_block(ModeInfo *mi, entity *ent)
 {
     blocktube_configuration *lp = &lps[MI_SCREEN(mi)];
     glCallList (lp->block_dlist);
+    mi->polygon_count += lp->polys;
 }
 
 ENTRYPOINT void
@@ -400,6 +411,8 @@ draw_blocktube (ModeInfo *mi)
     if (!lp->glx_context)
       return;
 
+    mi->polygon_count = 0;
+
     glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(lp->glx_context));
 
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
index 825355f22ff7eca6f68a73aa035e8800059650a5..5d016e09ac0e84a60addf49795cbade24f7e952f 100644 (file)
@@ -47,8 +47,8 @@ Do not make blocks in the distance be darker.
 .B \-wireframe
 Only draw outlines.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index cb09a049d17e99f32e2b230b2aa6e90958e63ec8..55a3fb5a0d41ea71185b79560c21bd0354367454 100644 (file)
@@ -42,7 +42,7 @@
 #define DEF_SMOOTH      "False"
 #define DEF_SCANLINES   "True"
 #define DEF_SPEED       "1.0"
-#define DEF_SIZE        "0.5"
+#define DEF_BALL_SIZE   "0.5"
 #define DEF_ANGLE       "15"
 #define DEF_MERIDIANS   "16"
 #define DEF_PARALLELS   "8"
@@ -118,7 +118,7 @@ static argtype vars[] = {
   {&scanlines_p,"scanlines","Scanlines",  DEF_SCANLINES, t_Bool},
   {&speed,     "speed",     "Speed",      DEF_SPEED,     t_Float},
   {&angle,     "angle",     "Angle",      DEF_ANGLE,     t_Int},
-  {&ball_size, "ballSize",  "BallSize",   DEF_SIZE,      t_Float},
+  {&ball_size, "ballSize",  "BallSize",   DEF_BALL_SIZE, t_Float},
   {&meridians, "meridians", "meridians",  DEF_MERIDIANS, t_Int},
   {&parallels, "parallels", "parallels",  DEF_PARALLELS, t_Int},
   {&tiles,     "tiles",     "Tiles",      DEF_TILES,     t_Int},
index 46e07c6ac4cbe19d69ae85be9edfba5a90418370..1f00d723a5e64954bfc1bd6e179b6bc336578027 100644 (file)
@@ -78,9 +78,7 @@ The pattern of rectangles on the ball.  Default 8x16.
 Look crummy.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 98bea1168df71cdf9877ca36e892a93d3e50fec8..516d1de3da070d6cef486fd50c5824957bb17079 100644 (file)
@@ -45,8 +45,8 @@ power of two.
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 42f68c1c1970ffc4d86f1785063465f2c421dd94..59b1ce21d1ce39c95dd87b6ec492b1db794e12da 100644 (file)
@@ -193,6 +193,7 @@ typedef struct {
    GLXContext     *glx_context;
    GLuint         listobjects;
    GLuint         gllists[3];
+   int            list_polys[3];
    Window         window;
    BOOL           stop;
    char           *tex1;
@@ -686,12 +687,13 @@ static void setdefaultconfig(boxed_config *config)
 /*
  * draw bottom
  */ 
-static void drawfilledbox(boxedstruct *boxed, int wire)
+static int drawfilledbox(boxedstruct *boxed, int wire)
 {   
    /* draws texture filled box, 
       top is drawn using the entire texture, 
       the sides are drawn using the edge of the texture
     */
+  int polys = 0;
    
    /* front */
    glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
@@ -703,6 +705,7 @@ static void drawfilledbox(boxedstruct *boxed, int wire)
    glVertex3f(1.0,-1.0,1.0);
    glTexCoord2f(0,1);
    glVertex3f(-1.0,-1.0,1.0);
+   polys++;
    /* rear */
    glTexCoord2f(0,1);
    glVertex3f(1.0,1.0,-1.0);
@@ -712,6 +715,7 @@ static void drawfilledbox(boxedstruct *boxed, int wire)
    glVertex3f(-1.0,-1.0,-1.0);
    glTexCoord2f(0,1);
    glVertex3f(1.0,-1.0,-1.0);
+   polys++;
    /* left */
    glTexCoord2f(1,1);
    glVertex3f(-1.0,1.0,1.0);
@@ -721,6 +725,7 @@ static void drawfilledbox(boxedstruct *boxed, int wire)
    glVertex3f(-1.0,-1.0,-1.0);
    glTexCoord2f(0,1);
    glVertex3f(-1.0,1.0,-1.0);
+   polys++;
    /* right */
    glTexCoord2f(0,1);
    glVertex3f(1.0,1.0,1.0);
@@ -730,6 +735,7 @@ static void drawfilledbox(boxedstruct *boxed, int wire)
    glVertex3f(1.0,-1.0,-1.0);
    glTexCoord2f(0,1);
    glVertex3f(1.0,-1.0,1.0);
+   polys++;
    /* top */
    glTexCoord2f(0.0,0.0);
    glVertex3f(-1.0,1.0,1.0);
@@ -739,6 +745,7 @@ static void drawfilledbox(boxedstruct *boxed, int wire)
    glVertex3f(1.0,1.0,-1.0);
    glTexCoord2f(1.0,0.0);
    glVertex3f(1.0,1.0,1.0);
+   polys++;
    /* bottom */
    glTexCoord2f(0,0);
    glVertex3f(-1.0,-1.0,1.0);
@@ -748,42 +755,47 @@ static void drawfilledbox(boxedstruct *boxed, int wire)
    glVertex3f(1.0,-1.0,-1.0);
    glTexCoord2f(1,0);
    glVertex3f(1.0,-1.0,1.0);
+   polys++;
    glEnd();
+
+   return polys;
 }
 
 
 /*
  * Draw a box made of lines
  */ 
-static void drawbox(boxedstruct *boxed)
+static int drawbox(boxedstruct *boxed)
 {
+   int polys = 0;
    /* top */
    glBegin(GL_LINE_STRIP);
    glVertex3f(-1.0,1.0,1.0);
-   glVertex3f(-1.0,1.0,-1.0);
-   glVertex3f(1.0,1.0,-1.0);
-   glVertex3f(1.0,1.0,1.0);
-   glVertex3f(-1.0,1.0,1.0);
+   glVertex3f(-1.0,1.0,-1.0); polys++;
+   glVertex3f(1.0,1.0,-1.0); polys++;
+   glVertex3f(1.0,1.0,1.0); polys++;
+   glVertex3f(-1.0,1.0,1.0); polys++;
    glEnd();
    /* bottom */
    glBegin(GL_LINE_STRIP);
    glVertex3f(-1.0,-1.0,1.0);
-   glVertex3f(1.0,-1.0,1.0);
-   glVertex3f(1.0,-1.0,-1.0);
-   glVertex3f(-1.0,-1.0,-1.0);
-   glVertex3f(-1.0,-1.0,1.0);
+   glVertex3f(1.0,-1.0,1.0); polys++;
+   glVertex3f(1.0,-1.0,-1.0); polys++;
+   glVertex3f(-1.0,-1.0,-1.0); polys++;
+   glVertex3f(-1.0,-1.0,1.0); polys++;
    glEnd();
    /* connect top & bottom */
    glBegin(GL_LINES);
    glVertex3f(-1.0,1.0,1.0);
-   glVertex3f(-1.0,-1.0,1.0);
+   glVertex3f(-1.0,-1.0,1.0); polys++;
    glVertex3f(1.0,1.0,1.0);
-   glVertex3f(1.0,-1.0,1.0);
+   glVertex3f(1.0,-1.0,1.0); polys++;
    glVertex3f(1.0,1.0,-1.0);
-   glVertex3f(1.0,-1.0,-1.0);
+   glVertex3f(1.0,-1.0,-1.0); polys++;
    glVertex3f(-1.0,1.0,-1.0);
-   glVertex3f(-1.0,-1.0,-1.0);
+   glVertex3f(-1.0,-1.0,-1.0); polys++;
    glEnd();
+   return polys;
 }
 
 
@@ -791,8 +803,9 @@ static void drawbox(boxedstruct *boxed)
 /* 
  * Draw ball
  */
-static void drawball(boxedstruct *gp, ball *b, int wire)
+static int drawball(boxedstruct *gp, ball *b, int wire)
 {
+   int polys = 0;
    int i,pos,cnt;
    GLint *spherei = gp->spherei;
    vectorf *spherev = gp->spherev;
@@ -821,26 +834,31 @@ static void drawball(boxedstruct *gp, ball *b, int wire)
         glNormal3f(spherev[spherei[pos+0]].x,spherev[spherei[pos+0]].y,spherev[spherei[pos+0]].z);
         glVertex3f(spherev[spherei[pos+0]].x,spherev[spherei[pos+0]].y,spherev[spherei[pos+0]].z);
         glNormal3f(spherev[spherei[pos+1]].x,spherev[spherei[pos+1]].y,spherev[spherei[pos+1]].z);
+         gp->list_polys[GLL_BALL]++;
         glVertex3f(spherev[spherei[pos+1]].x,spherev[spherei[pos+1]].y,spherev[spherei[pos+1]].z);
         glNormal3f(spherev[spherei[pos+2]].x,spherev[spherei[pos+2]].y,spherev[spherei[pos+2]].z);
         glVertex3f(spherev[spherei[pos+2]].x,spherev[spherei[pos+2]].y,spherev[spherei[pos+2]].z);
+         gp->list_polys[GLL_BALL]++;
         glEnd();
       }
       glEndList();
       gp->gllists[GLL_BALL] = 1;
    } else {
       glCallList(gp->listobjects + GLL_BALL);
+      polys += gp->list_polys[GLL_BALL];
    }
    
    glPopMatrix();
+   return polys;
 }
 
     
 /* 
  * Draw all triangles in triman
  */
-static void drawtriman(triman *t, int wire) 
+static int drawtriman(triman *t, int wire) 
 {
+   int polys = 0;
    int i,pos;
    vectorf *spherev = t->vertices;
    GLfloat col[3];
@@ -866,66 +884,71 @@ static void drawtriman(triman *t, int wire)
       glVertex3f(spherev[pos+0].x,spherev[pos+0].y,spherev[pos+0].z);
       glVertex3f(spherev[pos+1].x,spherev[pos+1].y,spherev[pos+1].z);
       glVertex3f(spherev[pos+2].x,spherev[pos+2].y,spherev[pos+2].z);
+      polys++;
       glEnd();
       glPopMatrix();
    }   
    glPopMatrix();   
+   return polys;
 }
       
 /* 
  * draw floor pattern
  */   
-static void drawpattern(boxedstruct *gp)
+static int drawpattern(boxedstruct *gp)
 {
+   int polys = 0;
    if (!gp->gllists[GLL_PATTERN]) {
       glNewList(gp->listobjects + GLL_PATTERN, GL_COMPILE);
      
       glBegin(GL_LINE_STRIP);
       glVertex3f(-25.0f, 0.0f, 35.0f);
-      glVertex3f(-15.0f, 0.0f, 35.0f);
-      glVertex3f(-5.0f, 0.0f, 25.0f);
-      glVertex3f(5.0f, 0.0f, 25.0f);
-      glVertex3f(15.0f, 0.0f, 35.0f);
-      glVertex3f(25.0f, 0.0f, 35.0f);
-      glVertex3f(35.0f, 0.0f, 25.0f);
-      glVertex3f(35.0f, 0.0f, 15.0f);
-      glVertex3f(25.0f, 0.0f, 5.0f);
-      glVertex3f(25.0f, 0.0f, -5.0f);
-      glVertex3f(35.0f, 0.0f, -15.0f);
-      glVertex3f(35.0f, 0.0f, -25.0f);
-      glVertex3f(25.0f, 0.0f, -35.0f);
-      glVertex3f(15.0f, 0.0f,-35.0f);
-      glVertex3f(5.0f, 0.0f, -25.0f);
-      glVertex3f(-5.0f, 0.0f, -25.0f);
-      glVertex3f(-15.0f, 0.0f,-35.0f);
-      glVertex3f(-25.0f, 0.0f,-35.0f);
-      glVertex3f(-35.0f, 0.0f, -25.0f);
-      glVertex3f(-35.0f, 0.0f, -15.0f);
-      glVertex3f(-25.0f, 0.0f, -5.0f);
-      glVertex3f(-25.0f, 0.0f, 5.0f);
-      glVertex3f(-35.0f, 0.0f, 15.0f);
-      glVertex3f(-35.0f, 0.0f, 25.0f);
-      glVertex3f(-25.0f, 0.0f, 35.0f);
+      glVertex3f(-15.0f, 0.0f, 35.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-5.0f, 0.0f, 25.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(5.0f, 0.0f, 25.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(15.0f, 0.0f, 35.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(25.0f, 0.0f, 35.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(35.0f, 0.0f, 25.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(35.0f, 0.0f, 15.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(25.0f, 0.0f, 5.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(25.0f, 0.0f, -5.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(35.0f, 0.0f, -15.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(35.0f, 0.0f, -25.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(25.0f, 0.0f, -35.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(15.0f, 0.0f,-35.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(5.0f, 0.0f, -25.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-5.0f, 0.0f, -25.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-15.0f, 0.0f,-35.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-25.0f, 0.0f,-35.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-35.0f, 0.0f, -25.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-35.0f, 0.0f, -15.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-25.0f, 0.0f, -5.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-25.0f, 0.0f, 5.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-35.0f, 0.0f, 15.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-35.0f, 0.0f, 25.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-25.0f, 0.0f, 35.0f); gp->list_polys[GLL_PATTERN]++;
       glEnd();
       
       glBegin(GL_LINE_STRIP);
       glVertex3f(-5.0f, 0.0f, 15.0f);
-      glVertex3f(5.0f, 0.0f, 15.0f);
-      glVertex3f(15.0f, 0.0f, 5.0f);
-      glVertex3f(15.0f, 0.0f, -5.0f);
-      glVertex3f(5.0f, 0.0f, -15.0f);
-      glVertex3f(-5.0f, 0.0f, -15.0f);
-      glVertex3f(-15.0f, 0.0f, -5.0f);
-      glVertex3f(-15.0f, 0.0f, 5.0f);
-      glVertex3f(-5.0f, 0.0f, 15.0f);
+      glVertex3f(5.0f, 0.0f, 15.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(15.0f, 0.0f, 5.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(15.0f, 0.0f, -5.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(5.0f, 0.0f, -15.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-5.0f, 0.0f, -15.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-15.0f, 0.0f, -5.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-15.0f, 0.0f, 5.0f); gp->list_polys[GLL_PATTERN]++;
+      glVertex3f(-5.0f, 0.0f, 15.0f); gp->list_polys[GLL_PATTERN]++;
       glEnd();
 
       glEndList();
       gp->gllists[GLL_PATTERN] = 1;
    } else {
       glCallList(gp->listobjects + GLL_PATTERN);
-   }   
+      polys += gp->list_polys[GLL_PATTERN];
+   }
 
+   return polys;
 }
       
       
@@ -954,6 +977,8 @@ static void draw(ModeInfo * mi)
    GLfloat l1_diffuse[] =    {0.5, 0.5, 0.5, 1.0};
    GLfloat l1_position[] =  {0.0, 1.0, 0.0, 0.0}; /* w = 0 -> directional light */
    
+   mi->polygon_count = 0;
+
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    
@@ -1009,7 +1034,7 @@ static void draw(ModeInfo * mi)
    glColor3f(1.0,1.0,1.0);
    glScalef(20.0,0.25,20.0);
    glTranslatef(0.0,2.0,0.0);
-   drawfilledbox(gp, wire);
+   mi->polygon_count += drawfilledbox(gp, wire);
    glPopMatrix();
    glDisable(GL_TEXTURE_2D);
 
@@ -1017,28 +1042,28 @@ static void draw(ModeInfo * mi)
    glColor3f(0.2,0.5,0.2);
    glScalef(20.0,20.0,0.25);
    glTranslatef(0.0,1.0,81.0);
-   drawbox(gp);
+   mi->polygon_count += drawbox(gp);
    glPopMatrix();
 
    glPushMatrix();
    glColor3f(0.2,0.5,0.2);
    glScalef(20.0,20.0,0.25);
    glTranslatef(0.0,1.0,-81.0);
-   drawbox(gp);
+   mi->polygon_count += drawbox(gp);
    glPopMatrix();
 
    glPushMatrix();
    glColor3f(0.2,0.5,0.2);
    glScalef(.25,20.0,20.0);
    glTranslatef(-81.0,1.0,0.0);
-   drawbox(gp);
+   mi->polygon_count += drawbox(gp);
    glPopMatrix();
 
    glPushMatrix();
    glColor3f(0.2,0.5,0.2);
    glScalef(.25,20.0,20.0);
    glTranslatef(81.0,1.0,0.0);
-   drawbox(gp);
+   mi->polygon_count += drawbox(gp);
    glPopMatrix();
 
    if (!wire) {
@@ -1064,10 +1089,10 @@ static void draw(ModeInfo * mi)
            updatetris(&gp->tman[i]);
         }
         glDisable(GL_CULL_FACE);
-        drawtriman(&gp->tman[i], wire);
+        mi->polygon_count += drawtriman(&gp->tman[i], wire);
         if (!wire) glEnable(GL_CULL_FACE);
       } else {
-        drawball(gp, &gp->bman.balls[i], wire);
+         mi->polygon_count += drawball(gp, &gp->bman.balls[i], wire);
       }
    }
       
index 6faafe534ff7d6b2705ea15f3215014a9054120f..42334466b9c214aace2325d468c1c3b9691d8bf5 100644 (file)
@@ -30,8 +30,8 @@ Per-frame delay, in microseconds.  Default: 20000 (0.02 seconds.).
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index cf69ac8499f1523139a2083448f7ee75bc9e4dc1..f847e12de64d3dbf05bbf8d025d27340009e51a1 100644 (file)
@@ -36,8 +36,8 @@ for each bubble.
 .B \-delay \fInumber\fP
 Per-frame delay, in microseconds.  Default: 15000 (0.015 seconds.).
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 9b781c90ebcc0c4a7437918ea912adb81e656de3..becbec5bc3a0b066269dca3dc691ae35e011900f 100644 (file)
@@ -80,6 +80,7 @@ static const char sccsid[] = "@(#)cage.c      5.01 2001/03/01 xlockmore";
 # define DEFAULTS                      "*delay:                25000   \n"                     \
                                                        "*showFPS:      False   \n"                     \
                                                        "*wireframe:    False   \n"
+
 # define refresh_cage 0
 # define reshape_cage 0
 # define cage_handle_event 0
@@ -142,7 +143,7 @@ static cagestruct *cage = (cagestruct *) NULL;
 #define PlankThickness  0.15
 
 static Bool 
-draw_woodplank(cagestruct * cp, int wire)
+draw_woodplank(ModeInfo *mi, cagestruct * cp, int wire)
 {
        glBegin(wire ? GL_LINES : GL_QUADS);
        glNormal3f(0, 0, 1);
@@ -154,6 +155,7 @@ draw_woodplank(cagestruct * cp, int wire)
        glVertex3f(PlankWidth, PlankHeight, PlankThickness);
        glTexCoord2f(0, 1);
        glVertex3f(-PlankWidth, PlankHeight, PlankThickness);
+    mi->polygon_count++;
        glNormal3f(0, 0, -1);
        glTexCoord2f(0, 0);
        glVertex3f(-PlankWidth, PlankHeight, -PlankThickness);
@@ -163,6 +165,7 @@ draw_woodplank(cagestruct * cp, int wire)
        glVertex3f(PlankWidth, -PlankHeight, -PlankThickness);
        glTexCoord2f(0, 1);
        glVertex3f(-PlankWidth, -PlankHeight, -PlankThickness);
+    mi->polygon_count++;
        glNormal3f(0, 1, 0);
        glTexCoord2f(0, 0);
        glVertex3f(-PlankWidth, PlankHeight, PlankThickness);
@@ -172,6 +175,7 @@ draw_woodplank(cagestruct * cp, int wire)
        glVertex3f(PlankWidth, PlankHeight, -PlankThickness);
        glTexCoord2f(0, 1);
        glVertex3f(-PlankWidth, PlankHeight, -PlankThickness);
+    mi->polygon_count++;
        glNormal3f(0, -1, 0);
        glTexCoord2f(0, 0);
        glVertex3f(-PlankWidth, -PlankHeight, -PlankThickness);
@@ -181,6 +185,7 @@ draw_woodplank(cagestruct * cp, int wire)
        glVertex3f(PlankWidth, -PlankHeight, PlankThickness);
        glTexCoord2f(0, 1);
        glVertex3f(-PlankWidth, -PlankHeight, PlankThickness);
+    mi->polygon_count++;
        glNormal3f(1, 0, 0);
        glTexCoord2f(0, 0);
        glVertex3f(PlankWidth, -PlankHeight, PlankThickness);
@@ -190,6 +195,7 @@ draw_woodplank(cagestruct * cp, int wire)
        glVertex3f(PlankWidth, PlankHeight, -PlankThickness);
        glTexCoord2f(0, 1);
        glVertex3f(PlankWidth, PlankHeight, PlankThickness);
+    mi->polygon_count++;
        glNormal3f(-1, 0, 0);
        glTexCoord2f(0, 0);
        glVertex3f(-PlankWidth, PlankHeight, PlankThickness);
@@ -199,80 +205,81 @@ draw_woodplank(cagestruct * cp, int wire)
        glVertex3f(-PlankWidth, -PlankHeight, -PlankThickness);
        glTexCoord2f(0, 1);
        glVertex3f(-PlankWidth, -PlankHeight, PlankThickness);
+    mi->polygon_count++;
        glEnd();
 
        return True;
 }
 
 static Bool
-draw_impossiblecage(cagestruct * cp, int wire)
+draw_impossiblecage(ModeInfo *mi, cagestruct * cp, int wire)
 {
        glPushMatrix();
        glRotatef(90, 0, 1, 0);
        glTranslatef(0.0, PlankHeight - PlankWidth, -PlankThickness - PlankWidth);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        glPushMatrix();
        glRotatef(90, 0, 0, 1);
        glTranslatef(0.0, PlankHeight - PlankWidth, PlankWidth - PlankThickness);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        glPushMatrix();
        glRotatef(90, 0, 1, 0);
        glTranslatef(0.0, PlankWidth - PlankHeight, -PlankThickness - PlankWidth);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        glPushMatrix();
        glTranslatef(0.0, PlankWidth - PlankHeight, 3 * PlankThickness - PlankWidth);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        glPushMatrix();
        glRotatef(90, 0, 0, 1);
        glTranslatef(0.0, PlankWidth - PlankHeight, PlankWidth - PlankThickness);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        glPushMatrix();
        glTranslatef(0.0, PlankWidth - PlankHeight, PlankWidth - 3 * PlankThickness);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        glPushMatrix();
        glTranslatef(0.0, PlankHeight - PlankWidth, 3 * PlankThickness - PlankWidth);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        glPushMatrix();
        glRotatef(90, 0, 0, 1);
        glTranslatef(0.0, PlankHeight - PlankWidth, PlankThickness - PlankWidth);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        glPushMatrix();
        glTranslatef(0.0, PlankHeight - PlankWidth, PlankWidth - 3 * PlankThickness);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        glPushMatrix();
        glRotatef(90, 0, 1, 0);
        glTranslatef(0.0, PlankHeight - PlankWidth, PlankWidth + PlankThickness);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        glPushMatrix();
        glRotatef(90, 0, 0, 1);
        glTranslatef(0.0, PlankWidth - PlankHeight, PlankThickness - PlankWidth);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        glPushMatrix();
        glRotatef(90, 0, 1, 0);
        glTranslatef(0.0, PlankWidth - PlankHeight, PlankWidth + PlankThickness);
-       if (!draw_woodplank(cp, wire))
+       if (!draw_woodplank(mi, cp, wire))
                return False;
        glPopMatrix();
        return True;
@@ -412,6 +419,7 @@ draw_cage (ModeInfo * mi)
        if (!cp->glx_context)
                return;
 
+    mi->polygon_count = 0;
        glXMakeCurrent(display, window, *(cp->glx_context));
 
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -430,7 +438,7 @@ draw_cage (ModeInfo * mi)
        glRotatef(cp->step * 100, 0, 0, 1);
        glRotatef(25 + cos(cp->step * 5) * 6, 1, 0, 0);
        glRotatef(204.5 - sin(cp->step * 5) * 8, 0, 1, 0);
-       if (!draw_impossiblecage(cp, MI_IS_WIREFRAME(mi))) {
+       if (!draw_impossiblecage(mi, cp, MI_IS_WIREFRAME(mi))) {
                release_cage(mi);
                return;
        }
index 9416c50ae095ea7773d5446953da5f7901459fe7..dc5595b90354bf72d06179561fe068011836a875 100644 (file)
@@ -35,8 +35,8 @@ Render solid instead of textured.
 .B \-wireframe
 Render in wireframe instead of textured.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 464035b5c3260c2ed8c7bbbbda3269cbb61889c0..0c29253547ae9a6ece24e2cad223f69f52dbaebb 100644 (file)
@@ -12,7 +12,7 @@
  * Created: 21-Feb-2005
  */
 
-#define DEF_FONT "-*-times-bold-r-normal-*-240-*"
+#define DEF_FONT "-*-helvetica-bold-r-normal-*-240-*"
 #define DEFAULTS  "*count:           7         \n" \
                  "*delay:           10000     \n" \
                  "*wireframe:       False     \n" \
index 451a8a10b7c0191d2fd548a870663ed77e1caadf..eff805ffd75c3d873ab438d1586ea48e2de895fc 100644 (file)
@@ -72,7 +72,7 @@ default; 2.0 means twice as fast.
 Per-frame delay, in microseconds.  Default: 20000 (0.02 seconds.).
 .TP 8
 .B \-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-debug
 Prints debugging info to stderr.
index 123bc7e63e00ef62a78af35ed539b3f545e7b1eb..b7a0c256c9734b3c51a1e9bb36b238aa83324ab1 100644 (file)
@@ -26,8 +26,6 @@
  *
  * -seven option is dedicated to all the Slarkeners
  *
- * try "-rotate -rotate-speed 0"
- *
  * This hack uses lookup tables for sin, cos and tan - it can do a lot
  */
 
@@ -45,6 +43,8 @@
 #define DEF_SPIN        "True"
 #define DEF_SEVEN       "False"
 #define DEF_PARTS       "10"
+#define DEF_ROTATESPEED "1"
+#define DEF_LIGHT       "True"
 
 /* lifted from lament.c */
 #define RAND(n) ((long) ((random() & 0x7fffffff) % ((long) (n))))
@@ -62,7 +62,6 @@ static int maxparts;
 static char *font;
 static int rotatespeed;
 static int spin;
-static int rotate;
 static int uselight;
 static int seven;
 
@@ -70,26 +69,23 @@ static int seven;
 #define countof(x) (sizeof((x))/sizeof((*x)))
 
 static XrmOptionDescRec opts[] = {
-  {"-parts", ".circuit.parts", XrmoptionSepArg, "10" },
-  {"-font", ".circuit.font", XrmoptionSepArg, "fixed" },
-  {"-rotate-speed", ".circuit.rotatespeed", XrmoptionSepArg, "1" },
+  {"-parts", ".circuit.parts", XrmoptionSepArg, 0 },
+  {"-font", ".circuit.font", XrmoptionSepArg, 0 },
+  {"-rotate-speed", ".circuit.rotatespeed", XrmoptionSepArg, 0 },
   {"+spin", ".circuit.spin", XrmoptionNoArg, "false" },
   {"-spin", ".circuit.spin", XrmoptionNoArg, "true" },
   {"+light", ".circuit.light", XrmoptionNoArg, "false" },
   {"-light", ".circuit.light", XrmoptionNoArg, "true" },
   {"+seven", ".circuit.seven", XrmoptionNoArg, "false" },
   {"-seven", ".circuit.seven", XrmoptionNoArg, "true" },
-  {"+rotate", ".circuit.rotate", XrmoptionNoArg, "false" },
-  {"-rotate", ".circuit.rotate", XrmoptionNoArg, "true" },
 };
 
 static argtype vars[] = {
   {&maxparts, "parts", "Parts", DEF_PARTS, t_Int},
   {&font, "font", "Font", "fixed", t_String},
-  {&rotatespeed, "rotatespeed", "Rotatespeed", "1", t_Int},
+  {&rotatespeed, "rotatespeed", "Rotatespeed", DEF_ROTATESPEED, t_Int},
   {&spin, "spin", "Spin", DEF_SPIN, t_Bool},
-  {&rotate, "rotate", "Rotate", "False", t_Bool},
-  {&uselight, "light", "Light", "True", t_Bool},
+  {&uselight, "light", "Light", DEF_LIGHT, t_Bool},
   {&seven, "seven", "Seven", DEF_SEVEN, t_Bool},
 };
 
@@ -342,6 +338,7 @@ typedef struct {
 
   Component *components[MAX_COMPONENTS];
   int band_list[12];
+  int band_list_polys[12];
 
   GLfloat grid_col[3], grid_col2[3];
 
@@ -362,28 +359,28 @@ typedef struct {
 static Circuit *circuit = NULL;
 
 
-static void DrawResistor(Circuit *, Resistor *);
-static void DrawDiode(Circuit *, Diode *);
-static void DrawTransistor(Circuit *, Transistor *);
-static void DrawLED(Circuit *, LED *);
-static void DrawIC(Circuit *, IC *);
-static void DrawCapacitor(Circuit *, Capacitor *);
-static void DrawDisp(Circuit *, Disp *);
-static void DrawFuse(Circuit *, Fuse *);
-static void DrawRCA(Circuit *, RCA *);
-static void DrawThreeFive(Circuit *, ThreeFive *);
-static void DrawSwitch(Circuit *, Switch *);
+static int DrawResistor(Circuit *, Resistor *);
+static int DrawDiode(Circuit *, Diode *);
+static int DrawTransistor(Circuit *, Transistor *);
+static int DrawLED(Circuit *, LED *);
+static int DrawIC(Circuit *, IC *);
+static int DrawCapacitor(Circuit *, Capacitor *);
+static int DrawDisp(Circuit *, Disp *);
+static int DrawFuse(Circuit *, Fuse *);
+static int DrawRCA(Circuit *, RCA *);
+static int DrawThreeFive(Circuit *, ThreeFive *);
+static int DrawSwitch(Circuit *, Switch *);
 
 static void freetexture(Circuit *, GLuint);
 static void reorder(Component *[]);
-static void circle(Circuit *, float, int,int);
-static void bandedCylinder(Circuit *, 
+static int circle(Circuit *, float, int,int);
+static int bandedCylinder(Circuit *, 
                            float, float , GLfloat, GLfloat , GLfloat,  
                            Band **, int);
 static TexNum *fonttexturealloc(ModeInfo *, const char *, float *, float *);
-static void Rect(GLfloat , GLfloat , GLfloat, GLfloat , GLfloat ,GLfloat);
-static void ICLeg(GLfloat, GLfloat, GLfloat, int);
-static void HoledRectangle(Circuit *ci, 
+static int Rect(GLfloat , GLfloat , GLfloat, GLfloat , GLfloat ,GLfloat);
+static int ICLeg(GLfloat, GLfloat, GLfloat, int);
+static int HoledRectangle(Circuit *ci, 
                            GLfloat, GLfloat, GLfloat, GLfloat, int);
 static Resistor *NewResistor(void);
 static Diode *NewDiode(void);
@@ -419,9 +416,10 @@ float f;
 }
 
 
-static void createCylinder (Circuit *ci,
+static int createCylinder (Circuit *ci,
                             float length, float radius, int endcaps, int half) 
 {
+  int polys = 0;
   int a; /* current angle around cylinder */
   int angle, norm;
   float z1, y1, z2, y2,ex;
@@ -446,6 +444,7 @@ static void createCylinder (Circuit *ci,
       glNormal3f(0, y2, z2);
       glVertex3f(length,y2,z2);
       glVertex3f(0,y2,z2);
+      polys++;
     z1=z2;
     y1=y2;
   }
@@ -457,6 +456,7 @@ static void createCylinder (Circuit *ci,
       glVertex3f(length, 0, radius);
       glVertex3f(length, 0, 0 - radius);
       glVertex3f(0, 0, 0 - radius);
+      polys++;
     glEnd();
   }
   if (endcaps) {
@@ -471,6 +471,7 @@ static void createCylinder (Circuit *ci,
           glVertex3f(ex,0, 0);
           glVertex3f(ex,y1,z1);
           glVertex3f(ex,y2,z2);
+          polys++;
         z1=z2;
         y1=y2;
       }
@@ -478,10 +479,12 @@ static void createCylinder (Circuit *ci,
     }
   }
   glPopMatrix();
+  return polys;
 }
 
-static void circle(Circuit *ci, float radius, int segments, int half)
+static int circle(Circuit *ci, float radius, int segments, int half)
 {
+  int polys = 0;
   float x1 = 0, x2 = 0;
   float y1 = 0, y2 = 0;
   int i, t, s;
@@ -502,14 +505,17 @@ static void circle(Circuit *ci, float radius, int segments, int half)
     glVertex3f(0,0,0);
     glVertex3f(0,y1,x1);
     glVertex3f(0,y2,x2);
+    polys++;
     x1=x2;
     y1=y2;
   }
   glEnd();
+  return polys;
 }
 
-static void wire(Circuit *ci, float len)
+static int wire(Circuit *ci, float len)
 {
+  int polys = 0;
   GLfloat col[] = {0.3, 0.3, 0.3, 1.0};
   GLfloat spec[] = {0.9, 0.9, 0.9, 1.0};
   GLfloat nospec[] = {0.4, 0.4, 0.4, 1.0};
@@ -521,14 +527,16 @@ static void wire(Circuit *ci, float len)
   glMaterialfv(GL_FRONT, GL_SHININESS, &shin);
   n = glIsEnabled(GL_NORMALIZE);
   if (!n) glEnable(GL_NORMALIZE);
-  createCylinder(ci, len, 0.05, 1, 0);
+  polys += createCylinder(ci, len, 0.05, 1, 0);
   if (!n) glDisable(GL_NORMALIZE);
   glMaterialfv(GL_FRONT, GL_SPECULAR, nospec);
+  return polys;
 }
 
 #if 0
-static void ring(GLfloat inner, GLfloat outer, int nsegs)
+static int ring(GLfloat inner, GLfloat outer, int nsegs)
 {
+  int polys = 0;
   GLfloat z1, z2, y1, y2;
   GLfloat Z1, Z2, Y1, Y2;
   int i;
@@ -548,19 +556,22 @@ static void ring(GLfloat inner, GLfloat outer, int nsegs)
     glVertex3f(0, y1, z1);
     glVertex3f(0, y2, z2);
     glVertex3f(0, Y2, Z2);
+    polys++;
     z1=z2;
     y1=y2;
     Z1=Z2;
     Y1=Y2;
   }
   glEnd();
+  return polys;
 }
 #endif
 
-static void sphere(Circuit *ci, GLfloat r, float stacks, float slices,
+static int sphere(Circuit *ci, GLfloat r, float stacks, float slices,
              int startstack, int endstack, int startslice,
              int endslice)
 {
+  int polys = 0;
   GLfloat d, d1, dr, dr1, Dr, Dr1, D, D1, z1, z2, y1, y2, Y1, Z1, Y2, Z2;
   int a, a1, b, b1, c0, c1;
   GLfloat step, sstep;
@@ -595,6 +606,7 @@ static void sphere(Circuit *ci, GLfloat r, float stacks, float slices,
         glVertex3f(Dr1,Y2,Z2);
         glNormal3f(Dr1, Y1, Z1);
         glVertex3f(Dr1,Y1,Z1);
+        polys++;
       z1=z2;
       y1=y2;
       Z1=Z2;
@@ -603,10 +615,12 @@ static void sphere(Circuit *ci, GLfloat r, float stacks, float slices,
     a1 = a;
   }
   glEnd();
+  return polys;
 }
 
-static int DrawComponent(Circuit *ci, Component *c)
+static int DrawComponent(Circuit *ci, Component *c, unsigned long *polysP)
 {
+  int polys = *polysP;
   int ret = 0; /* return 1 if component is freed */
 
    glPushMatrix();
@@ -626,32 +640,32 @@ static int DrawComponent(Circuit *ci, Component *c)
 
  /* call object draw routine here */
    if (c->type == 0) {
-     DrawResistor(ci, c->c);
+     polys += DrawResistor(ci, c->c);
    } else if (c->type == 1) {
-     DrawDiode(ci, c->c);
+     polys += DrawDiode(ci, c->c);
    } else if (c->type == 2) {
-     DrawTransistor(ci, c->c);
+     polys += DrawTransistor(ci, c->c);
    } else if (c->type == 3) {
      if (((LED *)c->c)->light && ci->light) {
        GLfloat lp[] = {0.1, 0, 0, 1};
        glEnable(GL_LIGHT1);
        glLightfv(GL_LIGHT1, GL_POSITION, lp);
      }
-     DrawLED(ci, c->c);
+     polys += DrawLED(ci, c->c);
    } else if (c->type == 4) {
-     DrawCapacitor(ci, c->c);
+     polys += DrawCapacitor(ci, c->c);
    } else if (c->type == 5) {
-     DrawIC(ci, c->c);
+     polys += DrawIC(ci, c->c);
    } else if (c->type == 6) {
-     DrawDisp(ci, c->c);
+     polys += DrawDisp(ci, c->c);
    } else if (c->type == 7) {
-     DrawFuse(ci, c->c);
+     polys += DrawFuse(ci, c->c);
    } else if (c->type == 8) {
-     DrawRCA(ci, c->c);
+     polys += DrawRCA(ci, c->c);
    } else if (c->type == 9) {
-     DrawThreeFive(ci, c->c);
+     polys += DrawThreeFive(ci, c->c);
    } else if (c->type == 10) {
-     DrawSwitch(ci, c->c);
+     polys += DrawSwitch(ci, c->c);
    }
    c->x += c->dx * MOVE_MULT;
    c->y += c->dy * MOVE_MULT;
@@ -677,37 +691,42 @@ static int DrawComponent(Circuit *ci, Component *c)
 
    glPopMatrix();
    glDisable(GL_NORMALIZE);
+   *polysP = polys;
    return ret;
 }
 
 /* draw a resistor */
 
-static void DrawResistor(Circuit *ci, Resistor *r)
+static int DrawResistor(Circuit *ci, Resistor *r)
 {
+  int polys = 0;
   int i;
   GLfloat col[] = {0.74, 0.62, 0.46, 1.0};
   GLfloat spec[] = {0.8, 0.8, 0.8, 1.0};
   GLfloat shine = 30;
 
    glTranslatef(-4, 0, 0);
-   wire(ci, 3);
+   polys += wire(ci, 3);
    glTranslatef(3, 0, 0);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
    glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
    glMaterialfv(GL_FRONT, GL_SHININESS, &shine);
-   createCylinder(ci, 1.8, 0.4, 1, 0);
+   polys += createCylinder(ci, 1.8, 0.4, 1, 0);
    glPushMatrix();
    for (i = 0 ; i < 4 ; i++) {
      glTranslatef(0.35, 0, 0);
      glCallList(ci->band_list[r->b[i]]);
+     polys += ci->band_list_polys[r->b[i]];
    }
    glPopMatrix();
    glTranslatef(1.8, 0, 0);
-   wire(ci, 3);
+   polys += wire(ci, 3);
+   return polys;
 }
 
-static void DrawRCA(Circuit *ci, RCA *rca)
+static int DrawRCA(Circuit *ci, RCA *rca)
 {
+  int polys = 0;
   GLfloat col[] = {0.6, 0.6, 0.6, 1.0}; /* metal */
   GLfloat red[] = {1.0, 0.0, 0.0, 1.0}; /* red */
   GLfloat white[] = {1.0, 1.0, 1.0, 1.0}; /* white */
@@ -718,26 +737,28 @@ static void DrawRCA(Circuit *ci, RCA *rca)
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
    glMateriali(GL_FRONT, GL_SHININESS, 40);
    glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
-   createCylinder(ci, 0.7, 0.45, 0, 0);
+   polys += createCylinder(ci, 0.7, 0.45, 0, 0);
    glTranslatef(0.4, 0, 0);
-   createCylinder(ci, 0.9, 0.15, 1, 0);
+   polys += createCylinder(ci, 0.9, 0.15, 1, 0);
    glTranslatef(-1.9, 0, 0);
    glMateriali(GL_FRONT, GL_SHININESS, 20);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, rca->col ? white : red);
-   createCylinder(ci, 1.5, 0.6, 1, 0);
+   polys += createCylinder(ci, 1.5, 0.6, 1, 0);
    glTranslatef(-0.9, 0, 0);
-   createCylinder(ci, 0.9, 0.25, 0, 0);
+   polys += createCylinder(ci, 0.9, 0.25, 0, 0);
    glTranslatef(0.1, 0, 0);
-   createCylinder(ci, 0.2, 0.3, 0, 0);
+   polys += createCylinder(ci, 0.2, 0.3, 0, 0);
    glTranslatef(0.3, 0, 0);
-   createCylinder(ci, 0.2, 0.3, 1, 0);
+   polys += createCylinder(ci, 0.2, 0.3, 1, 0);
    glTranslatef(0.3, 0, 0);
-   createCylinder(ci, 0.2, 0.3, 1, 0);
+   polys += createCylinder(ci, 0.2, 0.3, 1, 0);
    glPopMatrix();
+   return polys;
 }
 
-static void DrawSwitch(Circuit *ci, Switch *f)
+static int DrawSwitch(Circuit *ci, Switch *f)
 {
+  int polys = 0;
   GLfloat col[] = {0.6, 0.6, 0.6, 0}; /* metal */
   GLfloat dark[] = {0.1, 0.1, 0.1, 1.0}; /* dark */
   GLfloat brown[] = {0.69, 0.32, 0, 1.0}; /* brown */
@@ -748,33 +769,35 @@ static void DrawSwitch(Circuit *ci, Switch *f)
    glMaterialfv(GL_FRONT, GL_AMBIENT, dark);
    glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
    glMateriali(GL_FRONT, GL_SHININESS, 90);
-   Rect(-0.25, 0, 0, 1.5, 0.5, 0.75);
-/* Rect(-0.5, 0.5, 0, 2, 0.1, 0.75); */
+   polys += Rect(-0.25, 0, 0, 1.5, 0.5, 0.75);
+/* polys += Rect(-0.5, 0.5, 0, 2, 0.1, 0.75); */
    glPushMatrix();
    glRotatef(90, 1, 0, 0);
    glTranslatef(-0.5, -0.4, -0.4);
-   HoledRectangle(ci, 0.5, 0.75, 0.1, 0.15, 8);
+   polys += HoledRectangle(ci, 0.5, 0.75, 0.1, 0.15, 8);
    glTranslatef(2, 0, 0);
-   HoledRectangle(ci, 0.5, 0.75, 0.1, 0.15, 8);
+   polys += HoledRectangle(ci, 0.5, 0.75, 0.1, 0.15, 8);
    glPopMatrix();
-   Rect(0.1, -0.4, -0.25, 0.1, 0.4, 0.05);
-   Rect(0.5, -0.4, -0.25, 0.1, 0.4, 0.05);
-   Rect(0.9, -0.4, -0.25, 0.1, 0.4, 0.05);
-   Rect(0.1, -0.4, -0.5, 0.1, 0.4, 0.05);
-   Rect(0.5, -0.4, -0.5, 0.1, 0.4, 0.05);
-   Rect(0.9, -0.4, -0.5, 0.1, 0.4, 0.05);
+   polys += Rect(0.1, -0.4, -0.25, 0.1, 0.4, 0.05);
+   polys += Rect(0.5, -0.4, -0.25, 0.1, 0.4, 0.05);
+   polys += Rect(0.9, -0.4, -0.25, 0.1, 0.4, 0.05);
+   polys += Rect(0.1, -0.4, -0.5, 0.1, 0.4, 0.05);
+   polys += Rect(0.5, -0.4, -0.5, 0.1, 0.4, 0.05);
+   polys += Rect(0.9, -0.4, -0.5, 0.1, 0.4, 0.05);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, dark);
    glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
-   Rect(0, 0.5, -0.1, 1, 0.05, 0.5);
-   Rect(0, 0.6, -0.1, 0.5, 0.6, 0.5);
+   polys += Rect(0, 0.5, -0.1, 1, 0.05, 0.5);
+   polys += Rect(0, 0.6, -0.1, 0.5, 0.6, 0.5);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, brown);
-   Rect(-0.2, -0.01, -0.1, 1.4, 0.1, 0.55);
+   polys += Rect(-0.2, -0.01, -0.1, 1.4, 0.1, 0.55);
    glPopMatrix();
+   return polys;
 }
 
 
-static void DrawFuse(Circuit *ci, Fuse *f)
+static int DrawFuse(Circuit *ci, Fuse *f)
 {
+  int polys = 0;
   GLfloat col[] = {0.5, 0.5, 0.5, 1.0}; /* endcaps */
   GLfloat glass[] = {0.4, 0.4, 0.4, 0.3}; /* glass */
   GLfloat spec[] = {1, 1, 1, 1}; /* glass */
@@ -784,14 +807,14 @@ static void DrawFuse(Circuit *ci, Fuse *f)
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
    glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
    glMateriali(GL_FRONT, GL_SHININESS, 40);
-   createCylinder(ci, 0.8, 0.45, 1, 0);
+   polys += createCylinder(ci, 0.8, 0.45, 1, 0);
    glTranslatef(0.8, 0, 0);
    glEnable(GL_BLEND);
    glDepthMask(GL_FALSE);
    glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, glass);
    glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 40);
-   createCylinder(ci, 2, 0.4, 0, 0);
-   createCylinder(ci, 2, 0.3, 0, 0);
+   polys += createCylinder(ci, 2, 0.4, 0, 0);
+   polys += createCylinder(ci, 2, 0.3, 0, 0);
    glDisable(GL_BLEND);
    glDepthMask(GL_TRUE);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
@@ -801,13 +824,15 @@ static void DrawFuse(Circuit *ci, Fuse *f)
    glVertex3f(2, 0. ,0);
    glEnd();
    glTranslatef(2, 0, 0);
-   createCylinder(ci, 0.8, 0.45, 1, 0);
+   polys += createCylinder(ci, 0.8, 0.45, 1, 0);
    glPopMatrix();
+   return polys;
 }
 
 
-static void DrawCapacitor(Circuit *ci, Capacitor *c)
+static int DrawCapacitor(Circuit *ci, Capacitor *c)
 {
+  int polys = 0;
   GLfloat col[] = {0, 0, 0, 0};
   GLfloat spec[] = {0.8, 0.8, 0.8, 0};
   GLfloat brown[] = {0.84, 0.5, 0};
@@ -816,14 +841,14 @@ static void DrawCapacitor(Circuit *ci, Capacitor *c)
   glPushMatrix();
   if (c->type) {
     glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, brown);
-    sphere(ci, c->width, 15, 15, 0, 4 ,0, 15);
+    polys += sphere(ci, c->width, 15, 15, 0, 4 ,0, 15);
     glTranslatef(1.35*c->width, 0, 0);
-    sphere(ci, c->width, 15, 15, 11, 15, 0, 15);
+    polys += sphere(ci, c->width, 15, 15, 11, 15, 0, 15);
     glRotatef(90, 0, 0, 1);
     glTranslatef(0, 0.7*c->width, 0.3*c->width);
-    wire(ci, 3*c->width);
+    polys += wire(ci, 3*c->width);
     glTranslatef(0, 0, -0.6*c->width);
-    wire(ci, 3*c->width);
+    polys += wire(ci, 3*c->width);
   } else {
     glTranslatef(0-c->length*2, 0, 0);
     glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
@@ -841,29 +866,31 @@ static void DrawCapacitor(Circuit *ci, Capacitor *c)
     glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
     glEnable(GL_POLYGON_OFFSET_FILL);
     glPolygonOffset(1.0, 1.0);
-    createCylinder(ci, 3.0*c->length, 0.8*c->width, 1, 0);
+    polys += createCylinder(ci, 3.0*c->length, 0.8*c->width, 1, 0);
     glDisable(GL_POLYGON_OFFSET_FILL);
     col[0] = 0.7;
     col[1] = 0.7;
     col[2] = 0.7;
     glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
-    circle(ci, 0.6*c->width, 30, 0);
+    polys += circle(ci, 0.6*c->width, 30, 0);
     col[0] = 0;
     col[1] = 0;
     col[2] = 0;
     glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
     glTranslatef(3.0*c->length, 0.0, 0);
-    circle(ci, 0.6*c->width, 30, 0);
+    polys += circle(ci, 0.6*c->width, 30, 0);
     glTranslatef(0, 0.4*c->width, 0);
-    wire(ci, 3*c->length);
+    polys += wire(ci, 3*c->length);
     glTranslatef(0.0, -0.8*c->width, 0);
-    wire(ci, 3.3*c->length);
+    polys += wire(ci, 3.3*c->length);
   }
   glPopMatrix();
+  return polys;
 }
 
-static void DrawLED(Circuit *ci, LED *l)
+static int DrawLED(Circuit *ci, LED *l)
 {
+  int polys = 0;
   GLfloat col[] = {0, 0, 0, 0.6};
   GLfloat black[] = {0, 0, 0, 0.6};
 
@@ -893,12 +920,12 @@ static void DrawLED(Circuit *ci, LED *l)
     glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA);
   }
   glTranslatef(-0.9, 0, 0);
-  createCylinder(ci, 1.2, 0.3, 0, 0);
+  polys += createCylinder(ci, 1.2, 0.3, 0, 0);
   if (l->light && ci->light) {
     glDisable(GL_LIGHTING);
     glColor3fv(col);
   }
-  sphere(ci, 0.3, 7, 7, 3, 7, 0, 7);
+  polys += sphere(ci, 0.3, 7, 7, 3, 7, 0, 7);
   if (l->light && ci->light) {
     glEnable(GL_LIGHTING);
   } else {
@@ -907,11 +934,11 @@ static void DrawLED(Circuit *ci, LED *l)
   }
 
   glTranslatef(1.2, 0, 0);
-  createCylinder(ci, 0.1, 0.38, 1, 0);
+  polys += createCylinder(ci, 0.1, 0.38, 1, 0);
   glTranslatef(-0.3, 0.15, 0);
-  wire(ci, 3);
+  polys += wire(ci, 3);
   glTranslatef(0, -0.3, 0);
-  wire(ci, 3.3);
+  polys += wire(ci, 3.3);
   if (random() % 50 == 25) {
     if (l->light) {
       l->light = 0; ci->light = 0; ci->lighton = 0;
@@ -921,11 +948,13 @@ static void DrawLED(Circuit *ci, LED *l)
       ci->light = 1;
     }
   }
+  return polys;
 }
 
 
-static void DrawThreeFive(Circuit *ci, ThreeFive *d)
+static int DrawThreeFive(Circuit *ci, ThreeFive *d)
 {
+  int polys = 0;
   GLfloat shine = 40;
   GLfloat const dark[] = {0.3, 0.3, 0.3, 0};
   GLfloat const light[] = {0.6, 0.6, 0.6, 0};
@@ -938,26 +967,28 @@ static void DrawThreeFive(Circuit *ci, ThreeFive *d)
    glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
    
    glTranslatef(-2.0, 0, 0);
-   createCylinder(ci, 0.7, 0.2, 0, 0);
+   polys += createCylinder(ci, 0.7, 0.2, 0, 0);
    glTranslatef(0.7, 0, 0);
-   createCylinder(ci, 1.3, 0.4, 1, 0);
+   polys += createCylinder(ci, 1.3, 0.4, 1, 0);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, light);
    glTranslatef(1.3, 0, 0);
-   createCylinder(ci, 1.3, 0.2, 0, 0);
+   polys += createCylinder(ci, 1.3, 0.2, 0, 0);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, dark);
    glTranslatef(0.65, 0, 0);
-   createCylinder(ci, 0.15, 0.21, 0, 0);
+   polys += createCylinder(ci, 0.15, 0.21, 0, 0);
    glTranslatef(0.3, 0, 0);
-   createCylinder(ci, 0.15, 0.21, 0, 0);
+   polys += createCylinder(ci, 0.15, 0.21, 0, 0);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, light);
    glTranslatef(0.4, 0, 0);
-   sphere(ci, 0.23, 7, 7, 0, 5, 0, 7);
+   polys += sphere(ci, 0.23, 7, 7, 0, 5, 0, 7);
 
    glPopMatrix();
+   return polys;
 }
 
-static void DrawDiode(Circuit *ci, Diode *d)
+static int DrawDiode(Circuit *ci, Diode *d)
 {
+  int polys = 0;
   GLfloat shine = 40;
   GLfloat col[] = {0.3, 0.3, 0.3, 0};
   GLfloat spec[] = {0.7, 0.7, 0.7, 0};
@@ -967,17 +998,19 @@ static void DrawDiode(Circuit *ci, Diode *d)
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
    glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
    glTranslatef(-4, 0, 0);
-   wire(ci, 3);
+   polys += wire(ci, 3);
    glTranslatef(3, 0, 0);
-   bandedCylinder(ci, 0.3, 1.5, d->r, d->g, d->b, &(d->band), 1);
+   polys += bandedCylinder(ci, 0.3, 1.5, d->r, d->g, d->b, &(d->band), 1);
    glTranslatef(1.5, 0, 0);
-   wire(ci, 3);
+   polys += wire(ci, 3);
    glPopMatrix();
+   return polys;
 }
 
-static void Rect(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h,
+static int Rect(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h,
             GLfloat t)
 {
+  int polys = 0;
   GLfloat yh;
   GLfloat xw;
   GLfloat zt;
@@ -990,58 +1023,67 @@ static void Rect(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h,
     glVertex3f(x, yh, z);
     glVertex3f(xw, yh, z);
     glVertex3f(xw, y, z);
+    polys++;
   /* back */
     glNormal3f(0, 0, -1);
     glVertex3f(x, y, zt);
     glVertex3f(x, yh, zt);
     glVertex3f(xw, yh, zt);
     glVertex3f(xw, y, zt);
+    polys++;
   /* top */
     glNormal3f(0, 1, 0);
     glVertex3f(x, yh, z);
     glVertex3f(x, yh, zt);
     glVertex3f(xw, yh, zt);
     glVertex3f(xw, yh, z);
+    polys++;
   /* bottom */
     glNormal3f(0, -1, 0);
     glVertex3f(x, y, z);
     glVertex3f(x, y, zt);
     glVertex3f(xw, y, zt);
     glVertex3f(xw, y, z);
+    polys++;
   /* left */
     glNormal3f(-1, 0, 0);
     glVertex3f(x, y, z);
     glVertex3f(x, y, zt);
     glVertex3f(x, yh, zt);
     glVertex3f(x, yh, z);
+    polys++;
   /* right */
     glNormal3f(1, 0, 0);
     glVertex3f(xw, y, z);
     glVertex3f(xw, y, zt);
     glVertex3f(xw, yh, zt);
     glVertex3f(xw, yh, z);
+    polys++;
   glEnd();
+  return polys;
 }
 
 /* IC pins */
 
-static void ICLeg(GLfloat x, GLfloat y, GLfloat z, int dir)
+static int ICLeg(GLfloat x, GLfloat y, GLfloat z, int dir)
 {
+  int polys = 0;
   if (dir) {
-    Rect(x-0.1, y, z, 0.1, 0.1, 0.02);
-    Rect(x-0.1, y, z, 0.02, 0.1, 0.1);
-    Rect(x-0.1, y+0.03, z-0.1, 0.02, 0.05, 0.3);
+    polys += Rect(x-0.1, y, z, 0.1, 0.1, 0.02);
+    polys += Rect(x-0.1, y, z, 0.02, 0.1, 0.1);
+    polys += Rect(x-0.1, y+0.03, z-0.1, 0.02, 0.05, 0.3);
   } else {
-    Rect(x, y, z, 0.1, 0.1, 0.02);
-    Rect(x+0.8*0.1, y, z, 0.02, 0.1, 0.1);
-    Rect(x+0.8*0.1, y+0.03, z-0.1, 0.02, 0.05, 0.3);
+    polys += Rect(x, y, z, 0.1, 0.1, 0.02);
+    polys += Rect(x+0.8*0.1, y, z, 0.02, 0.1, 0.1);
+    polys += Rect(x+0.8*0.1, y+0.03, z-0.1, 0.02, 0.05, 0.3);
   }
-
+  return polys;
 }
 
 
-static void DrawIC(Circuit *ci, IC *c)
+static int DrawIC(Circuit *ci, IC *c)
 {
+  int polys = 0;
   GLfloat w, h, d;
   int z;
   GLfloat col[] = {0.1, 0.1, 0.1, 0};
@@ -1082,31 +1124,37 @@ static void DrawIC(Circuit *ci, IC *c)
       glVertex3f(w, -h, 0.1);
       glVertex3f(-w, -h, 0.1);
       glVertex3f(-w, h, 0.1);
+      polys++;
       glNormal3f(0, 0, -1);
       glVertex3f(w, h, -0.1);
       glVertex3f(w, -h, -0.1);
       glVertex3f(-w, -h, -0.1);
       glVertex3f(-w, h, -0.1);
+      polys++;
       glNormal3f(1, 0, 0);
       glVertex3f(w, h, -0.1);
       glVertex3f(w, -h, -0.1);
       glVertex3f(w, -h, 0.1);
       glVertex3f(w, h, 0.1);
+      polys++;
       glNormal3f(0, -1, 0);
       glVertex3f(w, -h, -0.1);
       glVertex3f(w, -h, 0.1);
       glVertex3f(-w, -h, 0.1);
       glVertex3f(-w, -h, -0.1);
+      polys++;
       glNormal3f(-1, 0, 0);
       glVertex3f(-w, h, -0.1);
       glVertex3f(-w, h, 0.1);
       glVertex3f(-w, -h, 0.1);
       glVertex3f(-w, -h, -0.1);
+      polys++;
       glNormal3f(0, -1, 0);
       glVertex3f(-w, h, -0.1);
       glVertex3f(w, h, -0.1);
       glVertex3f(w, h, 0.1);
       glVertex3f(-w, h, 0.1);
+      polys++;
     glEnd();
     glDisable(GL_POLYGON_OFFSET_FILL);
     if (c->tnum) glBindTexture(GL_TEXTURE_2D, c->tnum);
@@ -1129,6 +1177,7 @@ static void DrawIC(Circuit *ci, IC *c)
      glVertex3f(-th, -mult, 0.1);
      glTexCoord2f(0, 0);
      glVertex3f(-th, mult, 0.1);
+      polys++;
     glEnd();
     glDisable(GL_TEXTURE_2D);
     glDisable(GL_BLEND);
@@ -1138,20 +1187,22 @@ static void DrawIC(Circuit *ci, IC *c)
     glMaterialfv(GL_FRONT, GL_SPECULAR, lspec);
     glMaterialfv(GL_FRONT, GL_SHININESS, &lshine);
     for (z = 0 ; z < c->pins/2 ; z++) {
-      ICLeg(w, -h + z*d + d/2, 0, 0);
+      polys += ICLeg(w, -h + z*d + d/2, 0, 0);
     }
     for (z = 0 ; z < c->pins/2 ; z++) {
-      ICLeg(-w, -h + z*d + d/2, 0, 1);
+      polys += ICLeg(-w, -h + z*d + d/2, 0, 1);
     }
     glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col2);
     glTranslatef(-w+0.3, h-0.3, 0.1);
     glRotatef(90, 0, 1, 0);
-    circle(ci, 0.1, 7, 0);
+    polys += circle(ci, 0.1, 7, 0);
     glPopMatrix();
+    return polys;
 }
 
-static void DrawDisp(Circuit *ci, Disp *d)
+static int DrawDisp(Circuit *ci, Disp *d)
 {
+  int polys = 0;
   GLfloat col[] = {0.8, 0.8, 0.8, 1.0}; /* body colour */
   GLfloat front[] = {0.2, 0.2, 0.2, 1.0}; /* front colour */
   GLfloat on[] = {0.9, 0, 0, 1}; /* 'on' segment */
@@ -1203,13 +1254,14 @@ static void DrawDisp(Circuit *ci, Disp *d)
 
    glTranslatef(-0.9, -1.8, 0);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
-   Rect(0, 0, -0.01, 1.8, 2.6, 0.7);
+   polys += Rect(0, 0, -0.01, 1.8, 2.6, 0.7);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, front);
    glBegin(GL_QUADS);
      glVertex2f(-0.05, -0.05);
      glVertex2f(-0.05, 2.65);
      glVertex2f(1.85, 2.65);
      glVertex2f(1.85, -0.05);
+     polys++;
    glEnd();
    glDisable(GL_LIGHTING); /* lit segments dont need light */
    if (!seven && (random() % 30) == 19) { /* randomly change value */
@@ -1234,12 +1286,14 @@ static void DrawDisp(Circuit *ci, Disp *d)
      for(i = 0 ; i < 6 ; i++) {
        glVertex3f(xx[i], yy[i], 0.01);
      }
+     polys++;
      glEnd();
    }
    glColor3fv(on);
    glPointSize(4);
    glBegin(GL_POINTS);
     glVertex3f(1.5, 0.2, 0.01);
+    polys++;
    glEnd();
    glEnable(GL_LIGHTING);
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, lcol);
@@ -1247,15 +1301,17 @@ static void DrawDisp(Circuit *ci, Disp *d)
    glMaterialfv(GL_FRONT, GL_SHININESS, &shine);
    for (x = 0.35 ; x <= 1.5 ; x+= 1.15) {
      for ( y = 0.2 ; y <= 2.4 ; y += 0.3) {
-       ICLeg(x, y, -0.7, 1);
+       polys += ICLeg(x, y, -0.7, 1);
      }
    }
+   return polys;
 }
 
-static void HoledRectangle(Circuit *ci, 
+static int HoledRectangle(Circuit *ci, 
                            GLfloat w, GLfloat h, GLfloat d, GLfloat radius,
                            int p)
 {
+  int polys = 0;
   int step, a;
   GLfloat x1, y1, x2, y2;
   GLfloat yr, yr1, xr, xr1, side, side1;
@@ -1296,34 +1352,40 @@ static void HoledRectangle(Circuit *ci,
       glVertex3f(x1,y1,-d);
       glVertex3f(x2,y2,-d);
       glVertex3f(x2,y2,0);
+      polys++;
 
       glNormal3f(0, 0, 1); /* front face */
       glVertex3f(x1,y1,0);
       glVertex3f(xr1, yr1, 0);
       glVertex3f(xr, yr, 0);
       glVertex3f(x2, y2, 0);
+      polys++;
 
       glNormal3f(nx, ny, 0); /* side */
       glVertex3f(xr, yr, 0);
       glVertex3f(xr, yr, -d);
       glVertex3f(xr1, yr1, -d);
       glVertex3f(xr1, yr1, 0);
+      polys++;
 
       glNormal3f(0, 0, -1); /* back */
       glVertex3f(xr, yr, -d);
       glVertex3f(x2, y2, -d);
       glVertex3f(x1, y1, -d);
       glVertex3f(xr1, yr1, -d);
+      polys++;
 
     x1=x2;
     y1=y2;
     xr1 = xr; yr1 = yr;
   }
   glEnd();
+  return polys;
 }
 
-static void DrawTransistor(Circuit *ci, Transistor *t)
+static int DrawTransistor(Circuit *ci, Transistor *t)
 {
+  int polys = 0;
   GLfloat col[] = {0.3, 0.3, 0.3, 1.0};
   GLfloat spec[] = {0.9, 0.9, 0.9, 1.0};
   GLfloat nospec[] = {0.4, 0.4, 0.4, 1.0};
@@ -1341,8 +1403,8 @@ static void DrawTransistor(Circuit *ci, Transistor *t)
     glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, col);
     glRotatef(90, 0, 1, 0);
     glRotatef(90, 0, 0, 1);
-    createCylinder(ci, 1.0, 0.4, 1, 1);
-    Rect(0, -0.2, 0.4, 1, 0.2, 0.8);
+    polys += createCylinder(ci, 1.0, 0.4, 1, 1);
+    polys += Rect(0, -0.2, 0.4, 1, 0.2, 0.8);
 /* Draw the markings */
     glEnable(GL_TEXTURE_2D);
     if (t->tnum) glBindTexture(GL_TEXTURE_2D, t->tnum);
@@ -1358,22 +1420,23 @@ static void DrawTransistor(Circuit *ci, Transistor *t)
      glVertex3f(y2, -0.21, -0.3);
      glTexCoord2f(0, 0);
      glVertex3f(y2, -0.21, 0.3);
+     polys++;
     glEnd();
     glDisable(GL_TEXTURE_2D);
     glDisable(GL_BLEND);
     glDepthMask(GL_TRUE);
     glTranslatef(-2, 0, -0.2);
-    wire(ci, 2);
+    polys += wire(ci, 2);
     glTranslatef(0, 0, 0.2);
-    wire(ci, 2);
+    polys += wire(ci, 2);
     glTranslatef(0, 0, 0.2);
-    wire(ci, 2);
+    polys += wire(ci, 2);
   } else if (t->type == 0) { /* TO-220 Style */
     float mult, y1, y2;
     mult = 1.5*t->th/t->tw;
     y1 = 0.75+mult/2;
     y2 = 0.75-mult/2;
-    Rect(0, 0, 0, 1.5, 1.5, 0.5);
+    polys += Rect(0, 0, 0, 1.5, 1.5, 0.5);
     glEnable(GL_TEXTURE_2D);
     if (t->tnum) glBindTexture(GL_TEXTURE_2D, t->tnum);
     glEnable(GL_BLEND);
@@ -1395,23 +1458,23 @@ static void DrawTransistor(Circuit *ci, Transistor *t)
     glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
     glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
     glMaterialfv(GL_FRONT, GL_SHININESS, &shin);
-    Rect(0, 0, -0.5, 1.5, 1.5, 0.30);
+    polys += Rect(0, 0, -0.5, 1.5, 1.5, 0.30);
     if (!glIsEnabled(GL_NORMALIZE)) glEnable(GL_NORMALIZE);
     glTranslatef(0.75, 1.875, -0.55);
-    HoledRectangle(ci, 1.5, 0.75, 0.25, 0.2, 8);
+    polys += HoledRectangle(ci, 1.5, 0.75, 0.25, 0.2, 8);
     glMaterialfv(GL_FRONT, GL_SPECULAR, nospec);
     glTranslatef(-0.375, -1.875, 0);
     glRotatef(90, 0, 0, -1);
-    wire(ci, 2);
+    polys += wire(ci, 2);
     glTranslatef(0, 0.375, 0);
-    wire(ci, 2);
+    polys += wire(ci, 2);
     glTranslatef(0, 0.375, 0);
-    wire(ci, 2);
+    polys += wire(ci, 2);
   } else {              /* SMC transistor */
 /* Draw the body */
     glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, col);
     glTranslatef(-0.5, -0.25, 0.1);
-    Rect(0, 0, 0, 1, 0.5, 0.2);
+    polys += Rect(0, 0, 0, 1, 0.5, 0.2);
 /* Draw the markings */
     glEnable(GL_TEXTURE_2D);
     if (t->tnum) glBindTexture(GL_TEXTURE_2D, t->tnum);
@@ -1427,6 +1490,7 @@ static void DrawTransistor(Circuit *ci, Transistor *t)
      glVertex3f(0.8, 0.5, 0.01);
      glTexCoord2f(0, 0);
      glVertex3f(0.2, 0.5, 0.01);
+     polys++;
     glEnd();
     glDisable(GL_TEXTURE_2D);
     glDisable(GL_BLEND);
@@ -1435,14 +1499,15 @@ static void DrawTransistor(Circuit *ci, Transistor *t)
     glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
     glMaterialfv(GL_FRONT, GL_SPECULAR, spec);
     glMaterialfv(GL_FRONT, GL_SHININESS, &shin);
-    Rect(0.25, -0.1, -0.05, 0.1, 0.1, 0.2);
-    Rect(0.75, -0.1, -0.05, 0.1, 0.1, 0.2);
-    Rect(0.5, 0.5, -0.05, 0.1, 0.1, 0.2);
-    Rect(0.25, -0.2, -0.2, 0.1, 0.15, 0.1);
-    Rect(0.75, -0.2, -0.2, 0.1, 0.15, 0.1);
-    Rect(0.5, 0.5, -0.2, 0.1, 0.15, 0.1);
+    polys += Rect(0.25, -0.1, -0.05, 0.1, 0.1, 0.2);
+    polys += Rect(0.75, -0.1, -0.05, 0.1, 0.1, 0.2);
+    polys += Rect(0.5, 0.5, -0.05, 0.1, 0.1, 0.2);
+    polys += Rect(0.25, -0.2, -0.2, 0.1, 0.15, 0.1);
+    polys += Rect(0.75, -0.2, -0.2, 0.1, 0.15, 0.1);
+    polys += Rect(0.5, 0.5, -0.2, 0.1, 0.15, 0.1);
   }
   glPopMatrix();
+  return polys;
 }
 
 static Component * NewComponent(ModeInfo *mi)
@@ -1802,42 +1867,45 @@ static void makebandlist(Circuit *ci)
      glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, col);
      glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, spec);
      glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, &shine);
-     createCylinder(ci, 0.1, 0.42, 0, 0);
+     ci->band_list_polys[i] = createCylinder(ci, 0.1, 0.42, 0, 0);
      glEndList();
   }
 }
   
 
-static void bandedCylinder(Circuit *ci, 
+static int bandedCylinder(Circuit *ci, 
                            float radius, float l, 
                            GLfloat r, GLfloat g, GLfloat bl, 
                            Band **b, int nbands)
 {
+  int polys = 0;
   int n; /* band number */
   int p = 0; /* prev number + 1; */
   GLfloat col[] = {0,0,0,0};
 
    col[0] = r; col[1] = g; col[2] = bl;
    glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
-   createCylinder(ci, l, radius, 1, 0); /* body */
+   polys += createCylinder(ci, l, radius, 1, 0); /* body */
    for (n = 0 ; n < nbands ; n++) {
      glPushMatrix();
      glTranslatef(b[n]->pos*l, 0, 0);
      col[0] = b[n]->r; col[1] = b[n]->g; col[2] = b[n]->b;
      glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, col);
-     createCylinder(ci, b[n]->len*l, radius*1.05, 0, 0); /* band */
+     polys += createCylinder(ci, b[n]->len*l, radius*1.05, 0, 0); /* band */
      glPopMatrix();
      p = n+1;
    }
+   return polys;
 }
 
-static void drawgrid(Circuit *ci)
+static int drawgrid(Circuit *ci)
 {
+  int polys = 0;
   GLfloat x, y;
   GLfloat col3[] = {0, 0.8, 0};
 
   if (!ci->draw_s) {
-     if (f_rand() < ((rotate) ? 0.05 : 0.01)) {
+     if (f_rand() < ((rotatespeed > 0) ? 0.05 : 0.01)) {
        ci->draw_sdir = RAND_RANGE(0, 4);
        ci->draw_ds = RAND_RANGE(0.4, 0.8);
        switch (ci->draw_sdir) {
@@ -1860,7 +1928,7 @@ static void drawgrid(Circuit *ci)
         }
         ci->draw_s = 1;
       }
-  } else if (!rotate) {
+  } else if (rotatespeed <= 0) {
     if (ci->grid_col[1] < 0.25) {
       ci->grid_col[1] += 0.025; ci->grid_col[2] += 0.005;
       ci->grid_col2[1] += 0.015 ; ci->grid_col2[2] += 0.005;
@@ -1872,7 +1940,7 @@ static void drawgrid(Circuit *ci)
     glColor3fv(col3);
     glPushMatrix();
     glTranslatef(ci->draw_sx, ci->draw_sy, -10);
-    sphere(ci, 0.1, 10, 10, 0, 10, 0, 10);
+    polys += sphere(ci, 0.1, 10, 10, 0, 10, 0, 10);
     if (ci->draw_sdir == 0) 
       glTranslatef(-ci->draw_ds, 0, 0);
     if (ci->draw_sdir == 1) 
@@ -1881,7 +1949,7 @@ static void drawgrid(Circuit *ci)
       glTranslatef(0, ci->draw_ds, 0);
     if (ci->draw_sdir == 3) 
       glTranslatef(0, -ci->draw_ds, 0);
-    sphere(ci, 0.05, 10, 10, 0, 10, 0, 10);
+    polys += sphere(ci, 0.05, 10, 10, 0, 10, 0, 10);
     glPopMatrix();
     if (ci->draw_sdir == 0) {
        ci->draw_sx += ci->draw_ds;
@@ -1903,7 +1971,7 @@ static void drawgrid(Circuit *ci)
        if (ci->draw_sy > ci->YMAX/2)
          ci->draw_s = 0;
     }
-  } else if (!rotate) {
+  } else if (rotatespeed <= 0) {
     if (ci->grid_col[1] > 0) {
       ci->grid_col[1] -= 0.0025; ci->grid_col[2] -= 0.0005;
       ci->grid_col2[1] -= 0.0015 ; ci->grid_col2[2] -= 0.0005;
@@ -1934,6 +2002,7 @@ static void drawgrid(Circuit *ci)
     glEnd();
   }
   glEnable(GL_LIGHTING);
+  return polys;
 }
 
 static void display(ModeInfo *mi)
@@ -1943,6 +2012,8 @@ static void display(ModeInfo *mi)
   GLfloat black[] = {0, 0, 0, 1.0};
   int j;
 
+  mi->polygon_count = 0;
+
   if (ci->display_i == 0) {
     for (ci->display_i = 0 ; ci->display_i < maxparts ; ci->display_i++) {
       ci->components[ci->display_i] = NULL;
@@ -1955,18 +2026,17 @@ static void display(ModeInfo *mi)
             0.0, 0.0, 0.0, 
             0.0, 1.0, 0.0);
   glPushMatrix();
-  if (rotate) {
-     glRotatef(ci->rotate_angle, 0, 0, 1);
-     ci->rotate_angle += 0.01 * (float)rotatespeed;
-     if (ci->rotate_angle >= 360) ci->rotate_angle = 0;
-  }
+  glRotatef(ci->rotate_angle, 0, 0, 1);
+  ci->rotate_angle += 0.01 * (float)rotatespeed;
+  if (ci->rotate_angle >= 360) ci->rotate_angle = 0;
+
   glLightfv(GL_LIGHT0, GL_POSITION, ci->lightpos);
   glLightfv(GL_LIGHT0, GL_SPECULAR, light_sp);
   glLightfv(GL_LIGHT0, GL_DIFFUSE, light_sp);
   glLighti(GL_LIGHT0, GL_CONSTANT_ATTENUATION, (GLfloat)1); 
   glLighti(GL_LIGHT0, GL_LINEAR_ATTENUATION, (GLfloat)0.5); 
   glLighti(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, (GLfloat)0); 
-  drawgrid(ci);
+  mi->polygon_count += drawgrid(ci);
   glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, light_sp);
   if (f_rand() < 0.05) {
     for (j = 0 ; j < maxparts ; j++) {
@@ -1982,7 +2052,7 @@ static void display(ModeInfo *mi)
      glMaterialfv(GL_FRONT, GL_EMISSION, black);
      glMaterialfv(GL_FRONT, GL_SPECULAR, black);
      if (ci->components[j] != NULL) {
-       if (DrawComponent(ci, ci->components[j])) {
+       if (DrawComponent(ci, ci->components[j], &mi->polygon_count)) {
         free(ci->components[j]); ci->components[j] = NULL;
        }
      }
index de85e10fb9b36594f662eed1b3ba68d6ce104b65..794f97bc4de53cb24f3f8bfd51535160e136a9e1 100644 (file)
@@ -46,8 +46,8 @@ Rotation speed, 0 - 100.  Default: 1.
 .B \-light | \-no-light
 Whether to us lighting, or flat coloring.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 1c11d97fa90783c740b5b807b12cb9ff62ed0411..376a41acca990eb66f1944ccfa8d17817a7e424a 100644 (file)
@@ -1,8 +1,10 @@
 /***************************
  ** crackberg; Matus Telgarsky [ catachresis@cmu.edu ] 2005 
  ** */
-#define XK_MISCELLANY
-#include <X11/keysymdef.h>
+#ifndef HAVE_COCOA
+# define XK_MISCELLANY
+# include <X11/keysymdef.h>
+#endif
 
 #define DEFAULTS    "*delay:        20000       \n" \
                     "*showFPS:      False       \n" \
@@ -20,7 +22,7 @@
 #define DEF_CRACK      "True"
 #define DEF_WATER      "True"
 #define DEF_FLAT       "True"
-#define DEF_COLOR      "plain"
+#define DEF_COLOR      "random"
 #define DEF_LIT        "True"
 #define DEF_VISIBILITY "0.6"
 #define DEF_LETTERBOX  "False"
@@ -1247,8 +1249,10 @@ ENTRYPOINT Bool crackberg_handle_event (ModeInfo *mi, XEvent *ev)
 
     if (ev->xany.type == KeyPress) {
         switch (XKeycodeToKeysym(mi->dpy, ev->xkey.keycode, 0)) {
+# ifndef HAVE_COCOA
             case XK_Left:   cberg->motion_state |= MOTION_LROT;  break;
             case XK_Right:  cberg->motion_state |= MOTION_RROT;  break;
+# endif
             case '1':       cberg->motion_state |= MOTION_DEC;   break; 
             case '2':       cberg->motion_state |= MOTION_INC;   break;
             case 'a':       cberg->motion_state |= MOTION_LEFT;  break;
@@ -1273,8 +1277,10 @@ ENTRYPOINT Bool crackberg_handle_event (ModeInfo *mi, XEvent *ev)
 #endif
 
         switch (XKeycodeToKeysym(mi->dpy, ev->xkey.keycode, 0)) {
+# ifndef HAVE_COCOA
             case XK_Left:   cberg->motion_state &= ~MOTION_LROT;  break;
             case XK_Right:  cberg->motion_state &= ~MOTION_RROT;  break;
+# endif
             case '1':       cberg->motion_state &= ~MOTION_DEC;   break; 
             case '2':       cberg->motion_state &= ~MOTION_INC;   break;
             case 'a':       cberg->motion_state &= ~MOTION_LEFT;  break;
index e56c6f2c48fd0f2625469580a1668d495e5f7f0a..5183baa326ffb2029e0d7919a6eb4428a22a4db3 100644 (file)
@@ -59,7 +59,7 @@ class, or the id number (decimal or hex) of a specific visual.
 Delay between frames; default 20000 (1/50th of a second).
 .TP 8
 .B \-fps
-Display frame per second and polygon counts.
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-crack
 Use all possible methods to animate tile instantiation.
index 5e09af2805b937dfbfaa2cca0890e26cb1ce2543..1379b4cf9f36b02735a6574950071d73f470b681 100644 (file)
 
 #ifdef USE_GL
 
-#define DEF_XYSPEED   "1.0"
-#define DEF_TSPEED    "3.0"
-#define DEF_WSPEED    "1.0"
-#define DEF_TWAIT     "40.0"
-#define DEF_SIZE      "0.7"
-#define DEF_COLMODE   "six"
+#define DEF_SPIN        "True"
+#define DEF_WANDER      "True"
+#define DEF_TEXTURE     "True"
+#define DEF_RANDOMIZE   "True"
+#define DEF_SPINSPEED   "1.0"
+#define DEF_ROTSPEED    "3.0"
+#define DEF_WANDERSPEED "1.0"
+#define DEF_WAIT        "40.0"
+#define DEF_CUBESIZE    "0.7"
+#define DEF_COLORMODE   "six"
 
 #ifdef Pi
 #undef Pi
@@ -90,16 +94,16 @@ static char *colmode_s;
 static int colmode;
 
 static argtype vars[] = {
-  { &spin,      "spin",        "Spin",        "True",      t_Bool},
-  { &wander,    "wander",      "Wander",      "True",      t_Bool},
-  { &rndstart,  "randomize",   "Randomize",   "True",      t_Bool},
-  { &tex,       "texture",     "Texture",     "True",      t_Bool},
-  { &spinspeed, "spinspeed",   "SpinSpeed",   DEF_XYSPEED, t_Float},
-  { &tspeed,    "rotspeed",    "RotSpeed",    DEF_TSPEED,  t_Float},
-  { &wspeed,    "wanderspeed", "WanderSpeed", DEF_WSPEED,  t_Float},
-  { &twait,     "wait",        "Wait",        DEF_TWAIT,   t_Float},
-  { &size,      "cubesize",    "CubeSize",    DEF_SIZE,    t_Float},
-  { &colmode_s, "colormode",   "ColorMode",   DEF_COLMODE, t_String}
+  { &spin,      "spin",        "Spin",        DEF_SPIN,        t_Bool},
+  { &wander,    "wander",      "Wander",      DEF_WANDER,      t_Bool},
+  { &rndstart,  "randomize",   "Randomize",   DEF_RANDOMIZE,   t_Bool},
+  { &tex,       "texture",     "Texture",     DEF_TEXTURE,     t_Bool},
+  { &spinspeed, "spinspeed",   "SpinSpeed",   DEF_SPINSPEED,   t_Float},
+  { &tspeed,    "rotspeed",    "RotSpeed",    DEF_ROTSPEED,    t_Float},
+  { &wspeed,    "wanderspeed", "WanderSpeed", DEF_WANDERSPEED, t_Float},
+  { &twait,     "wait",        "Wait",        DEF_WAIT,        t_Float},
+  { &size,      "cubesize",    "CubeSize",    DEF_CUBESIZE,    t_Float},
+  { &colmode_s, "colormode",   "ColorMode",   DEF_COLORMODE,   t_String}
 };
 
 static XrmOptionDescRec opts[] = {
@@ -116,7 +120,7 @@ static XrmOptionDescRec opts[] = {
   { "-rotspeed",    ".rotspeed",    XrmoptionSepArg, 0 },
   { "-wait",        ".wait",        XrmoptionSepArg, 0 },
   { "-cubesize",    ".cubesize",    XrmoptionSepArg, 0 },
-  { "-colormode",   ".colormode",   XrmoptionSepArg, DEF_COLMODE }
+  { "-colormode",   ".colormode",   XrmoptionSepArg, 0 }
 };
 
 ENTRYPOINT ModeSpecOpt cube21_opts = {countof(opts), opts, countof(vars), vars, NULL};
@@ -317,7 +321,7 @@ static void finish(cube21_conf *cp)
   cp->t = 0;
 }
 
-static void draw_narrow_piece(cube21_conf *cp, GLfloat s, int c1, int c2, col_t colors) 
+static void draw_narrow_piece(ModeInfo *mi, cube21_conf *cp, GLfloat s, int c1, int c2, col_t colors) 
 {
   GLfloat s1 = cp->posc[0]*s;
   glBegin(GL_TRIANGLES);
@@ -326,12 +330,14 @@ static void draw_narrow_piece(cube21_conf *cp, GLfloat s, int c1, int c2, col_t
   glTexCoord2f(0.5, 0.5);  glVertex3f(0.0, 0.0, s);
   glTexCoord2f(cp->texq, 0.0); glVertex3f(cp->posc[1], 0.0, s);
   glTexCoord2f(cp->texp, 0.0); glVertex3f(cp->posc[2], cp->posc[3], s);
+  mi->polygon_count++;
   glNormal3f(0.0, 0.0, -s);
   if(cp->cmat) glColor3fv(cp->color_inner);
   glTexCoord2f(TEX_GRAY);
   glVertex3f(0.0, 0.0, s1);
   glVertex3f(cp->posc[1], 0.0, s1);
   glVertex3f(cp->posc[2], cp->posc[3], s1);
+  mi->polygon_count++;
   glEnd();
   glBegin(GL_QUADS);
   glNormal3f(0.0, -1.0, 0.0);
@@ -341,12 +347,14 @@ static void draw_narrow_piece(cube21_conf *cp, GLfloat s, int c1, int c2, col_t
   glVertex3f(cp->posc[1], 0.0, s);
   glVertex3f(cp->posc[1], 0.0, s1);
   glVertex3f(0.0, 0.0, s1);
+  mi->polygon_count++;
   glNormal3f(COS15, SIN15, 0.0);
   if(cp->cmat) glColor3fv(colors[c2]);
   glTexCoord2f(cp->texq, cp->texq); glVertex3f(cp->posc[1], 0.0, s);
   glTexCoord2f(cp->texq, cp->texp); glVertex3f(cp->posc[2], cp->posc[3], s);
   glTexCoord2f(1.0, cp->texp);  glVertex3f(cp->posc[2], cp->posc[3], s1);
   glTexCoord2f(1.0, cp->texq);  glVertex3f(cp->posc[1], 0.0, s1);
+  mi->polygon_count++;
   glNormal3f(-SIN30, COS30, 0.0);
   if(cp->cmat) glColor3fv(cp->color_inner);
   glTexCoord2f(TEX_GRAY);
@@ -354,11 +362,12 @@ static void draw_narrow_piece(cube21_conf *cp, GLfloat s, int c1, int c2, col_t
   glVertex3f(cp->posc[2], cp->posc[3], s);
   glVertex3f(cp->posc[2], cp->posc[3], s1);
   glVertex3f(0.0, 0.0, s1);
+  mi->polygon_count++;
   glEnd();
   glRotatef(30.0, 0.0, 0.0, 1.0);
 }
 
-static void draw_wide_piece(cube21_conf *cp, GLfloat s, int c1, int c2, int c3, col_t colors) 
+static void draw_wide_piece(ModeInfo *mi, cube21_conf *cp, GLfloat s, int c1, int c2, int c3, col_t colors) 
 {
   GLfloat s1 = cp->posc[0]*s;
   glBegin(GL_TRIANGLES);
@@ -466,32 +475,32 @@ static void draw_middle(cube21_conf *cp)
   if(cp->hf[1]) glRotatef(180.0, 0.0, 1.0, 0.0);
 }
 
-static void draw_half_face(cube21_conf *cp, int s, int o) 
+static void draw_half_face(ModeInfo *mi, cube21_conf *cp, int s, int o) 
 {
   int i, s1 = 1-s*2, s2 = s*2;
   for(i = o; i<o+6; i++) {
     if(cp->pieces[s][i+1])
-      draw_narrow_piece(cp, s1, cp->cind[s2][i], cp->cind[s2+1][i], cp->colors);
+      draw_narrow_piece(mi, cp, s1, cp->cind[s2][i], cp->cind[s2+1][i], cp->colors);
     else {
-      draw_wide_piece(cp, s1, cp->cind[s2][i], cp->cind[s2+1][i], cp->cind[s2+1][i+1], cp->colors);
+      draw_wide_piece(mi, cp, s1, cp->cind[s2][i], cp->cind[s2+1][i], cp->cind[s2+1][i+1], cp->colors);
       i++;
     }
   }
 }
 
-static void draw_top_face(cube21_conf *cp) 
+static void draw_top_face(ModeInfo *mi, cube21_conf *cp) 
 {
-  draw_half_face(cp, 0, 0);
-  draw_half_face(cp, 0, 6);
+  draw_half_face(mi, cp, 0, 0);
+  draw_half_face(mi, cp, 0, 6);
 }
 
-static void draw_bottom_face(cube21_conf *cp) 
+static void draw_bottom_face(ModeInfo *mi, cube21_conf *cp) 
 {
-  draw_half_face(cp, 1, 0);
-  draw_half_face(cp, 1, 6);
+  draw_half_face(mi, cp, 1, 0);
+  draw_half_face(mi, cp, 1, 6);
 }
 
-static Bool draw_main(cube21_conf *cp) 
+static Bool draw_main(ModeInfo *mi, cube21_conf *cp) 
 {
   GLfloat theta = cp->ramount<0?cp->t:-cp->t;
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -507,30 +516,30 @@ static Bool draw_main(cube21_conf *cp)
   switch(cp->state) {
     case CUBE21_PAUSE1:
     case CUBE21_PAUSE2:
-      draw_top_face(cp);
-      draw_bottom_face(cp);
+      draw_top_face(mi, cp);
+      draw_bottom_face(mi, cp);
       draw_middle(cp);
       break;
     case CUBE21_ROT_TOP:
       glRotatef(theta, 0.0, 0.0, 1.0);
-      draw_top_face(cp);
+      draw_top_face(mi, cp);
       glRotatef(-theta, 0.0, 0.0, 1.0);
-      draw_bottom_face(cp);
+      draw_bottom_face(mi, cp);
       draw_middle(cp);
       break;
     case CUBE21_ROT_BOTTOM:
-      draw_top_face(cp);
+      draw_top_face(mi, cp);
       glRotatef(theta, 0.0, 0.0, 1.0);
-      draw_bottom_face(cp);
+      draw_bottom_face(mi, cp);
       glRotatef(-theta, 0.0, 0.0, 1.0);
       draw_middle(cp);
       break;
     case CUBE21_HALF1:
       glRotatef(theta, 0.0, 1.0, 0.0);
     case CUBE21_HALF2:
-      draw_half_face(cp, 0, 0);
+      draw_half_face(mi, cp, 0, 0);
       glRotatef(-180.0, 0.0, 0.0, 1.0);
-      draw_half_face(cp, 1, 0);
+      draw_half_face(mi, cp, 1, 0);
       glRotatef(-180.0, 0.0, 0.0, 1.0);
       if(cp->hf[0]) glRotatef(180.0, 0.0, 1.0, 0.0);
       draw_middle_piece(cp, 0, cp->cind, cp->colors);
@@ -540,9 +549,9 @@ static Bool draw_main(cube21_conf *cp)
       else
         glRotatef(theta, 0.0, 1.0, 0.0);
       glRotatef(180.0, 0.0, 0.0, 1.0);
-      draw_half_face(cp, 0, 6);
+      draw_half_face(mi, cp, 0, 6);
       glRotatef(-180.0, 0.0, 0.0, 1.0);
-      draw_half_face(cp, 1, 6);
+      draw_half_face(mi, cp, 1, 6);
       glRotatef(-180.0, 0.0, 0.0, 1.0);
       if(cp->hf[1]) glRotatef(180.0, 0.0, 1.0, 0.0);
       draw_middle_piece(cp, 1, cp->cind, cp->colors);
@@ -873,8 +882,9 @@ ENTRYPOINT void draw_cube21(ModeInfo * mi)
   cp = &cube21[MI_SCREEN(mi)];
   MI_IS_DRAWN(mi) = True;
   if (!cp->glx_context) return;
+  mi->polygon_count = 0;
   glXMakeCurrent(display, window, *(cp->glx_context));
-  if (!draw_main(cp)) {
+  if (!draw_main(mi, cp)) {
     release_cube21(mi);
     return;
   }
index 4f93582a525edb2f3ffa31f6250eb19f1d765bf0..d90c0fba0475915a3927567a27d712d759a9c703 100644 (file)
@@ -122,9 +122,7 @@ All faces white.
 .RE
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 694c147b55b3b4f29869ddd274e4808def5706ee..c7c509aa76e975a0fd6a079cb44560de7ff13c12 100644 (file)
@@ -32,7 +32,7 @@
 #define DEF_WANDER      "True"
 #define DEF_TEXTURE     "True"
 
-#define DEF_WAVE_COUNT  "3"
+#define DEF_WAVES       "3"
 #define DEF_WAVE_SPEED  "80"
 #define DEF_WAVE_RADIUS "512"
 
@@ -67,6 +67,7 @@ typedef struct {
 
   GLuint cube_list;
   GLuint texture_id;
+  int cube_polys;
   int ncubes;
   cube *cubes;
   waves *waves;
@@ -107,7 +108,7 @@ static argtype vars[] = {
   {&do_spin,   "spin",   "Spin",   DEF_SPIN,   t_String},
   {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
   {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
-  {&wave_count, "waves",     "Waves",      DEF_WAVE_COUNT, t_Int},
+  {&wave_count, "waves",     "Waves",      DEF_WAVES, t_Int},
   {&wave_speed, "waveSpeed", "WaveSpeed",  DEF_WAVE_SPEED, t_Int},
   {&wave_radius,"waveRadius","WaveRadius", DEF_WAVE_RADIUS,t_Int},
 };
@@ -115,15 +116,17 @@ static argtype vars[] = {
 ENTRYPOINT ModeSpecOpt cube_opts = {countof(opts), opts, countof(vars), vars, NULL};
 
 
-static void
+static int
 unit_cube (Bool wire)
 {
+  int polys = 0;
   glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* front */
   glNormal3f (0, 0, 1);
   glTexCoord2f(1, 0); glVertex3f ( 0.5, -0.5,  0.5);
   glTexCoord2f(0, 0); glVertex3f ( 0.5,  0.5,  0.5);
   glTexCoord2f(0, 1); glVertex3f (-0.5,  0.5,  0.5);
   glTexCoord2f(1, 1); glVertex3f (-0.5, -0.5,  0.5);
+  polys++;
   glEnd();
 
   glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* back */
@@ -132,6 +135,7 @@ unit_cube (Bool wire)
   glTexCoord2f(0, 1); glVertex3f (-0.5,  0.5, -0.5);
   glTexCoord2f(1, 1); glVertex3f ( 0.5,  0.5, -0.5);
   glTexCoord2f(1, 0); glVertex3f ( 0.5, -0.5, -0.5);
+  polys++;
   glEnd();
 
   glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* left */
@@ -140,6 +144,7 @@ unit_cube (Bool wire)
   glTexCoord2f(1, 0); glVertex3f (-0.5,  0.5, -0.5);
   glTexCoord2f(0, 0); glVertex3f (-0.5, -0.5, -0.5);
   glTexCoord2f(0, 1); glVertex3f (-0.5, -0.5,  0.5);
+  polys++;
   glEnd();
 
   glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* right */
@@ -148,9 +153,10 @@ unit_cube (Bool wire)
   glTexCoord2f(1, 0); glVertex3f ( 0.5,  0.5, -0.5);
   glTexCoord2f(0, 0); glVertex3f ( 0.5,  0.5,  0.5);
   glTexCoord2f(0, 1); glVertex3f ( 0.5, -0.5,  0.5);
+  polys++;
   glEnd();
 
-  if (wire) return;
+  if (wire) return polys;
 
   glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* top */
   glNormal3f (0, 1, 0);
@@ -158,6 +164,7 @@ unit_cube (Bool wire)
   glTexCoord2f(0, 1); glVertex3f ( 0.5,  0.5, -0.5);
   glTexCoord2f(1, 1); glVertex3f (-0.5,  0.5, -0.5);
   glTexCoord2f(1, 0); glVertex3f (-0.5,  0.5,  0.5);
+  polys++;
   glEnd();
 
   glBegin (wire ? GL_LINE_LOOP : GL_QUADS);    /* bottom */
@@ -166,7 +173,9 @@ unit_cube (Bool wire)
   glTexCoord2f(0, 0); glVertex3f (-0.5, -0.5, -0.5);
   glTexCoord2f(0, 1); glVertex3f ( 0.5, -0.5, -0.5);
   glTexCoord2f(1, 1); glVertex3f ( 0.5, -0.5,  0.5);
+  polys++;
   glEnd();
+  return polys;
 }
 
 
@@ -492,7 +501,7 @@ init_cube (ModeInfo *mi)
 
   cc->cube_list = glGenLists (1);
   glNewList (cc->cube_list, GL_COMPILE);
-  unit_cube (wire);
+  cc->cube_polys = unit_cube (wire);
   glEndList ();
 }
 
@@ -531,6 +540,7 @@ draw_cube (ModeInfo *mi)
   if (!cc->glx_context)
     return;
 
+  mi->polygon_count = 0;
   glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(cc->glx_context));
 
   glShadeModel(GL_FLAT);
@@ -578,6 +588,7 @@ draw_cube (ModeInfo *mi)
       glScalef (cube->w, cube->h, cube->d);
       glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color);
       glCallList (cc->cube_list);
+      mi->polygon_count += cc->cube_polys;
       glPopMatrix ();
     }
 
index 9fe83b4a25c71a896a215de7ba994c73612cea3b..e11d479ea1a3b688196ac78e542f98cc22106f97 100644 (file)
@@ -63,8 +63,8 @@ Surface Pattern Overlap.  5 - 600.  Default: 512.
 .B \-waves \fInumber\fP
 Surface Pattern Complexity.  1 - 20.  Default: 3.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index cc9a5bc00880c82b3e640a0d8ff742acc48d3685..9d912fd816eaa5f2b5df8bf20bb1a09a44c01671 100644 (file)
@@ -51,8 +51,8 @@ Whether the cubes should spin.
 .B \-wireframe | \-no-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index a7238b8244054d995c95adbfb210e8afdbc09195..7060bcf5d7b1bfe9482de736128c30e08f5a7dfc 100644 (file)
@@ -30,7 +30,7 @@
 
 #define DEF_SPEED   "1.0"
 #define DEF_DIV     "30"
-#define DEF_SIZE    "20.0"
+#define DEF_ZOOM    "20"
 #define DEF_BIGDOTS "True"
 
 #undef countof
@@ -48,7 +48,7 @@ static Bool bigdots;
 
 static argtype vars[] = {
   { &speed,   "speed",   "Speed",   DEF_SPEED,   t_Float },
-  { &size,    "zoom",    "Zoom",    DEF_SIZE,    t_Float },
+  { &size,    "zoom",    "Zoom",    DEF_ZOOM,    t_Float },
   { &ticks,   "ticks",   "Ticks",   DEF_DIV,     t_Int },
   { &bigdots, "bigdots", "BigDots", DEF_BIGDOTS, t_Bool },
 };
@@ -80,6 +80,7 @@ typedef struct {
   rotator *rot;
   trackball_state *trackball;
   Bool button_down_p;
+  int npoints;
 } cubicgrid_conf;
 
 static cubicgrid_conf *cubicgrid = NULL;
@@ -148,7 +149,6 @@ static Bool draw_main(cubicgrid_conf *cp)
 
   glTranslatef(-ticks/2.0, -ticks/2.0, -ticks/2.0);
   glCallList(cp->list);
-
   return True;
 }
 
@@ -175,6 +175,7 @@ static void init_gl(ModeInfo *mi)
       for(y = 0; y < ticks; y++) {
         for(z = 0; z < ticks; z++) {
           glVertex3f(x, y, z);
+          cp->npoints++;
         }
       }
     }
@@ -188,6 +189,7 @@ static void init_gl(ModeInfo *mi)
         for(z = 0; z < ticks; z++) {
           glColor3f(x/tf, y/tf, z/tf);
           glVertex3f(x, y, z);
+          cp->npoints++;
         }
       }
     }
@@ -267,6 +269,7 @@ ENTRYPOINT void draw_cubicgrid(ModeInfo * mi)
     release_cubicgrid(mi);
     return;
   }
+  mi->polygon_count = cp->npoints;
   if (MI_IS_FPS(mi)) do_fps (mi);
   glFlush();
   glXSwapBuffers(display, window);
index ebf43c279227d9c836240a450402e65d0e07781e..d267bc3cb43a215275198f0ecf95fbd20855e1e7 100644 (file)
@@ -58,9 +58,7 @@ The count of points drawn along every axis.  10 - 100.  The default is 30.
 Draw the points twice as big.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 033811a6b10a327c1e481651d46e220e043f169e..3e33f827923d471e603360f68e8a7f2a9e782e85 100644 (file)
@@ -46,8 +46,8 @@ Whether the object should spin.
 .B \-wireframe | \-no-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index b62b3e5efa2990d701d2fd643e06755e19c8d1a5..a0d35948cea34feec3eced085e7fd5403588f15f 100644 (file)
@@ -64,6 +64,7 @@ typedef struct {
   GLuint helix_list,  helix_list_wire,  helix_list_facetted;
   GLuint gasket_list, gasket_list_wire;
   GLuint frame_list,  frame_list_wire;
+  int polys[7];
 
   int wall_facets;
   int bar_facets;
@@ -146,9 +147,10 @@ vector_angle (double ax, double ay, double az,
 /* Make the helix
  */
 
-static void
+static int
 make_helix (logo_configuration *dc, int facetted, int wire)
 {
+  int polys = 0;
   int wall_facets = dc->wall_facets / (facetted ? 10 : 1);
   GLfloat th;
   GLfloat max_th = M_PI * 2 * dc->turns;
@@ -189,6 +191,7 @@ make_helix (logo_configuration *dc, int facetted, int wire)
       glVertex3f( x1, y1,  z1 + h1 + h1off);
       glVertex3f(x1b, y1b, z1 + h1 + h1off);
       glVertex3f(x1b, y1b, z1 - h1 + h1off);
+      polys++;
       glEnd();
     }
 
@@ -242,6 +245,7 @@ make_helix (logo_configuration *dc, int facetted, int wire)
       glNormal3f(x2, y2, 0);
       glVertex3f(x2, y2, z2 + h2 + h2off);
       glVertex3f(x2, y2, z2 - h2 + h2off);
+      polys++;
       glEnd();
 
       /* inner face
@@ -254,6 +258,7 @@ make_helix (logo_configuration *dc, int facetted, int wire)
       glNormal3f(-x2b, -y2b, 0);
       glVertex3f( x2b,  y2b, z2 + h2 + h2off);
       glVertex3f( x2b,  y2b, z2 - h2 + h2off);
+      polys++;
       glEnd();
 
       /* top face
@@ -268,7 +273,7 @@ make_helix (logo_configuration *dc, int facetted, int wire)
       glVertex3f( x2b,  y2b, z2 + h2 + h2off);
       glVertex3f( x1b,  y1b, z1 + h1 + h1off);
       glVertex3f( x1,   y1,  z1 + h1 + h1off);
-
+      polys++;
       glEnd();
 
       /* bottom face
@@ -283,6 +288,7 @@ make_helix (logo_configuration *dc, int facetted, int wire)
       glVertex3f( x1b,  y1b, z1 - h1 + h1off);
       glVertex3f( x2b,  y2b, z2 - h2 + h2off);
       glVertex3f( x2,   y2,  z2 - h2 + h2off);
+      polys++;
       glEnd();
 
       x1 = x2;
@@ -308,14 +314,17 @@ make_helix (logo_configuration *dc, int facetted, int wire)
       glVertex3f(x2,  y2,  z1 + h2 + h2off);
       glVertex3f(x2b, y2b, z1 + h2 + h2off);
       glVertex3f(x2b, y2b, z1 - h2 + h2off);
+      polys++;
       glEnd();
     }
+  return polys;
 }
 
 
-static void
+static int
 make_ladder (logo_configuration *dc, int facetted, int wire)
 {
+  int polys = 0;
   GLfloat th;
   GLfloat max_th = dc->turns * M_PI * 2;
   GLfloat max_z  = dc->turns * dc->turn_spacing;
@@ -348,13 +357,14 @@ make_ladder (logo_configuration *dc, int facetted, int wire)
       if (facets <= 3) facets = 3;
       x = cos (th) * (1 - dc->wall_thickness);
       y = sin (th) * (1 - dc->wall_thickness);
-      tube ( x,  y, z,
-            -x, -y, z,
-             dc->bar_thickness, 0, facets,
-             True, True, wire);
+      polys += tube ( x,  y, z,
+                     -x, -y, z,
+                      dc->bar_thickness, 0, facets,
+                      True, True, wire);
       z  += z_inc;
       th += th_inc;
     }
+  return polys;
 }
 
 
@@ -363,9 +373,10 @@ make_ladder (logo_configuration *dc, int facetted, int wire)
  */
 
 
-static void
+static int
 make_gasket (logo_configuration *dc, int wire)
 {
+  int polys = 0;
   int i;
   int points_size;
   int npoints = 0;
@@ -523,12 +534,14 @@ make_gasket (logo_configuration *dc, int wire)
           glBegin (GL_LINE_LOOP);
           for (i = 0; i < npoints; i++)
             glVertex3f (pointsx0[i], pointsy0[i], z);
+          polys += npoints;
           glEnd();
 
           /* outside edge */
           glBegin (GL_LINE_LOOP);
           for (i = 0; i < npoints; i++)
             glVertex3f (pointsx1[i], pointsy1[i], z);
+          polys += npoints;
           glEnd();
 # else
           for (i = 1; i < npoints; i++)
@@ -540,6 +553,7 @@ make_gasket (logo_configuration *dc, int wire)
               glVertex3f (pointsx1[i-1], pointsy1[i-1], z);
               glEnd();
             }
+          polys += npoints;
 # endif
         }
 #if 1
@@ -553,6 +567,7 @@ make_gasket (logo_configuration *dc, int wire)
           glVertex3f (pointsx1[i], pointsy1[i], -thick2);
           glVertex3f (pointsx1[i], pointsy1[i],  thick2);
         }
+      polys += npoints;
       glEnd();
 #endif
     }
@@ -567,6 +582,7 @@ make_gasket (logo_configuration *dc, int wire)
           glVertex3f (pointsx0[i], pointsy0[i], -thick2);
           glVertex3f (pointsx1[i], pointsy1[i], -thick2);
         }
+      polys += npoints;
       glEnd();
 
       /* bottom */
@@ -578,6 +594,7 @@ make_gasket (logo_configuration *dc, int wire)
           glVertex3f (pointsx0[i], pointsy0[i], thick2);
           glVertex3f (pointsx1[i], pointsy1[i], thick2);
         }
+      polys += npoints;
       glEnd();
 
       /* inside edge */
@@ -589,6 +606,7 @@ make_gasket (logo_configuration *dc, int wire)
           glVertex3f ( pointsx0[i],  pointsy0[i],  thick2);
           glVertex3f ( pointsx0[i],  pointsy0[i], -thick2);
         }
+      polys += npoints;
       glEnd();
 
       /* outside edge */
@@ -641,6 +659,7 @@ make_gasket (logo_configuration *dc, int wire)
                 glVertex3f (xz, yz,  thick2);
               }
           }
+        polys += npoints;
       }
       glEnd();
     }
@@ -678,6 +697,7 @@ make_gasket (logo_configuration *dc, int wire)
         glVertex3f (pointsx0[3], pointsy0[3], -thick2);
         glVertex3f (pointsx0[2], pointsy0[2], -thick2);
         glEnd();
+        polys++;
 
         /* back wall */
         glNormal3f (0, 0, 1);
@@ -688,6 +708,7 @@ make_gasket (logo_configuration *dc, int wire)
         glVertex3f (pointsx0[3], pointsy0[3],  thick2);
         glVertex3f (pointsx0[2], pointsy0[2],  thick2);
         glEnd();
+        polys++;
       }
 
     /* top wall */
@@ -701,6 +722,7 @@ make_gasket (logo_configuration *dc, int wire)
     glNormal3f (pointsx0[1], pointsy0[1], 0);
     glVertex3f (pointsx0[1], pointsy0[1], -thick2);
     glEnd();
+    polys++;
 
 
     /* Now make a donut.
@@ -730,6 +752,7 @@ make_gasket (logo_configuration *dc, int wire)
           pointsx1[npoints] = r1 * cth;
           pointsy1[npoints] = r1 * sth;
           npoints++;
+          polys++;
         }
 
       pointsx0[npoints] = pointsx0[0];
@@ -743,19 +766,23 @@ make_gasket (logo_configuration *dc, int wire)
           glBegin (GL_LINE_LOOP);
           for (i = 0; i < npoints; i++)
             glVertex3f (pointsx0[i], pointsy0[i], -thick2);
+          polys += npoints;
           glEnd();
           glBegin (GL_LINE_LOOP);
           for (i = 0; i < npoints; i++)
             glVertex3f (pointsx0[i], pointsy0[i],  thick2);
+          polys += npoints;
           glEnd();
 # if 0
           glBegin (GL_LINE_LOOP);
           for (i = 0; i < npoints; i++)
             glVertex3f (pointsx1[i], pointsy1[i], -thick2);
+          polys += npoints;
           glEnd();
           glBegin (GL_LINE_LOOP);
           for (i = 0; i < npoints; i++)
             glVertex3f (pointsx1[i], pointsy1[i],  thick2);
+          polys += npoints;
           glEnd();
 # endif
         }
@@ -770,6 +797,7 @@ make_gasket (logo_configuration *dc, int wire)
               glVertex3f (pointsx0[i], pointsy0[i], -thick2);
               glVertex3f (pointsx1[i], pointsy1[i], -thick2);
             }
+          polys += npoints;
           glEnd();
 
           /* bottom */
@@ -781,6 +809,7 @@ make_gasket (logo_configuration *dc, int wire)
               glVertex3f (pointsx0[i], pointsy0[i],  thick2);
               glVertex3f (pointsx1[i], pointsy1[i],  thick2);
             }
+          polys += npoints;
           glEnd();
         }
 
@@ -793,6 +822,7 @@ make_gasket (logo_configuration *dc, int wire)
           glVertex3f ( pointsx0[i],  pointsy0[i],  thick2);
           glVertex3f ( pointsx0[i],  pointsy0[i], -thick2);
         }
+      polys += npoints;
       glEnd();
 
       glPopMatrix();
@@ -828,6 +858,7 @@ make_gasket (logo_configuration *dc, int wire)
         glNormal3f (-1, 0, 0);
         glVertex3f (-w/2, -h/2,  thick2); glVertex3f (-w/2,  h/2,  thick2);
         glVertex3f (-w/2,  h/2, -thick2); glVertex3f (-w/2, -h/2, -thick2);
+        polys++;
         glEnd();
       }
 
@@ -837,6 +868,7 @@ make_gasket (logo_configuration *dc, int wire)
         pointsx0[npoints] = w/2 * cos(th);
         pointsy0[npoints] = w/2 * sin(th);
         npoints++;
+        polys++;
       }
 
     /* front inside curve */
@@ -846,6 +878,7 @@ make_gasket (logo_configuration *dc, int wire)
     if (! wire) glVertex3f (0, h/2, -thick2);
     for (i = 0; i < npoints; i++)
       glVertex3f (pointsx0[i], h/2 + pointsy0[i], -thick2);
+    polys += npoints;
     glEnd();
 
     /* front outside curve */
@@ -854,6 +887,7 @@ make_gasket (logo_configuration *dc, int wire)
     if (! wire) glVertex3f (0, -h/2, -thick2);
     for (i = 0; i < npoints; i++)
       glVertex3f (pointsx0[i], -h/2 - pointsy0[i], -thick2);
+    polys += npoints;
     glEnd();
 
     /* back inside curve */
@@ -863,6 +897,7 @@ make_gasket (logo_configuration *dc, int wire)
     if (! wire) glVertex3f (0, h/2, thick2);
     for (i = 0; i < npoints; i++)
       glVertex3f (pointsx0[i], h/2 + pointsy0[i], thick2);
+    polys += npoints;
     glEnd();
 
     /* back outside curve */
@@ -871,6 +906,7 @@ make_gasket (logo_configuration *dc, int wire)
     if (! wire) glVertex3f (0, -h/2, thick2);
     for (i = 0; i < npoints; i++)
       glVertex3f (pointsx0[i], -h/2 - pointsy0[i], thick2);
+    polys += npoints;
     glEnd();
 
     /* inside curve */
@@ -882,6 +918,7 @@ make_gasket (logo_configuration *dc, int wire)
         glVertex3f (pointsx0[i], h/2 + pointsy0[i],  thick2);
         glVertex3f (pointsx0[i], h/2 + pointsy0[i], -thick2);
       }
+    polys += npoints;
     glEnd();
 
     /* outside curve */
@@ -893,6 +930,7 @@ make_gasket (logo_configuration *dc, int wire)
         glVertex3f (pointsx0[i], -h/2 - pointsy0[i],  thick2);
         glVertex3f (pointsx0[i], -h/2 - pointsy0[i], -thick2);
       }
+    polys += npoints;
     glEnd();
   }
 
@@ -903,11 +941,13 @@ make_gasket (logo_configuration *dc, int wire)
   free (normals);
 
   glPopMatrix();
+  return polys;
 }
 
-static void
+static int
 make_frame (logo_configuration *dc, int wire)
 {
+  int polys = 0;
   int i, j;
   GLfloat x[20], y[20];
   GLfloat corner_cut = 0.5;
@@ -952,6 +992,7 @@ make_frame (logo_configuration *dc, int wire)
             glVertex3f (x[5], y[0], 0); glVertex3f (x[5], y[2], 0); 
             glVertex3f (x[7], y[0], 0); glVertex3f (x[7], y[2], 0);
             glVertex3f (x[8], y[1], 0); glVertex3f (x[8], y[2], 0);
+            polys += 6;
             glEnd ();
             glTranslatef (0.5, 0.5, 0);
             glRotatef (90, 0, 0, 1);
@@ -971,6 +1012,7 @@ make_frame (logo_configuration *dc, int wire)
       glVertex3f (x[4], y[3], 0); glVertex3f (x[4], y[3], dc->frame_depth/2); 
       glVertex3f (x[5], y[2], 0); glVertex3f (x[5], y[2], dc->frame_depth/2); 
       glVertex3f (x[6], y[2], 0); glVertex3f (x[6], y[2], dc->frame_depth/2); 
+      polys += 4;
       glEnd ();
 
       glNormal3f (0, -1, 0);
@@ -979,6 +1021,7 @@ make_frame (logo_configuration *dc, int wire)
       glVertex3f (x[7], y[0], dc->frame_depth/2); 
       glVertex3f (x[1], y[0], dc->frame_depth/2); 
       glVertex3f (x[1], y[0], 0); 
+      polys++;
       glEnd ();
 
       glNormal3f (1, -1, 0);
@@ -987,6 +1030,7 @@ make_frame (logo_configuration *dc, int wire)
       glVertex3f (x[8], y[1], dc->frame_depth/2); 
       glVertex3f (x[7], y[0], dc->frame_depth/2); 
       glVertex3f (x[7], y[0], 0); 
+      polys++;
       glEnd ();
 
       if (wire) 
@@ -1000,6 +1044,7 @@ make_frame (logo_configuration *dc, int wire)
               glVertex3f (x[4], y[3], j*dc->frame_depth/2);
               glVertex3f (x[5], y[2], j*dc->frame_depth/2);
               glVertex3f (x[6], y[2], j*dc->frame_depth/2);
+              polys += 4;
               glEnd ();
             }
         }
@@ -1010,6 +1055,7 @@ make_frame (logo_configuration *dc, int wire)
     }
 
   glPopMatrix();
+  return polys;
 }
 
 
@@ -1169,10 +1215,10 @@ init_logo (ModeInfo *mi)
   dc->helix_list = glGenLists (1);
   glNewList (dc->helix_list, GL_COMPILE);
   glRotatef(helix_rot, 0, 0, 1);
-  if (do_ladder) make_ladder (dc, 0, 0);
-  if (do_helix)  make_helix  (dc, 0, 0);
+  if (do_ladder) dc->polys[0] += make_ladder (dc, 0, 0);
+  if (do_helix)  dc->polys[0] += make_helix  (dc, 0, 0);
   glRotatef(180, 0, 0, 1);
-  if (do_helix)  make_helix  (dc, 0, 0);
+  if (do_helix)  dc->polys[0] += make_helix  (dc, 0, 0);
   glEndList ();
   glPopMatrix();
 
@@ -1180,10 +1226,10 @@ init_logo (ModeInfo *mi)
   dc->helix_list_wire = glGenLists (1);
   glNewList (dc->helix_list_wire, GL_COMPILE);
 /*  glRotatef(helix_rot, 0, 0, 1); wtf? */
-  if (do_ladder) make_ladder (dc, 1, 1);
-  if (do_helix)  make_helix  (dc, 1, 1);
+  if (do_ladder) dc->polys[1] += make_ladder (dc, 1, 1);
+  if (do_helix)  dc->polys[1] += make_helix  (dc, 1, 1);
   glRotatef(180, 0, 0, 1);
-  if (do_helix)  make_helix  (dc, 1, 1);
+  if (do_helix)  dc->polys[1] += make_helix  (dc, 1, 1);
   glEndList ();
   glPopMatrix();
 
@@ -1191,31 +1237,31 @@ init_logo (ModeInfo *mi)
   dc->helix_list_facetted = glGenLists (1);
   glNewList (dc->helix_list_facetted, GL_COMPILE);
   glRotatef(helix_rot, 0, 0, 1);
-  if (do_ladder) make_ladder (dc, 1, 0);
-  if (do_helix)  make_helix  (dc, 1, 0);
+  if (do_ladder) dc->polys[2] += make_ladder (dc, 1, 0);
+  if (do_helix)  dc->polys[2] += make_helix  (dc, 1, 0);
   glRotatef(180, 0, 0, 1);
-  if (do_helix)  make_helix  (dc, 1, 0);
+  if (do_helix)  dc->polys[2] += make_helix  (dc, 1, 0);
   glEndList ();
   glPopMatrix();
 
   dc->gasket_list = glGenLists (1);
   glNewList (dc->gasket_list, GL_COMPILE);
-  if (do_gasket) make_gasket (dc, 0);
+  if (do_gasket) dc->polys[3] += make_gasket (dc, 0);
   glEndList ();
 
   dc->gasket_list_wire = glGenLists (1);
   glNewList (dc->gasket_list_wire, GL_COMPILE);
-  if (do_gasket) make_gasket (dc, 1);
+  if (do_gasket) dc->polys[4] += make_gasket (dc, 1);
   glEndList ();
 
   dc->frame_list = glGenLists (1);
   glNewList (dc->frame_list, GL_COMPILE);
-  if (do_frame) make_frame (dc, 0);
+  if (do_frame) dc->polys[5] += make_frame (dc, 0);
   glEndList ();
 
   dc->frame_list_wire = glGenLists (1);
   glNewList (dc->frame_list_wire, GL_COMPILE);
-  if (do_frame) make_frame (dc, 1);
+  if (do_frame) dc->polys[6] += make_frame (dc, 1);
   glEndList ();
 
   /* When drawing both solid and wireframe objects,
@@ -1328,6 +1374,7 @@ draw_logo (ModeInfo *mi)
   if (!dc->glx_context)
     return;
 
+  mi->polygon_count = 0;
   glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(dc->glx_context));
 
   if (dc->wire_overlay == 0 &&
@@ -1367,16 +1414,23 @@ draw_logo (ModeInfo *mi)
 
       glScalef (1, scale, scale);
       if (wire)
-        glCallList (dc->frame_list_wire);
+        {
+          glCallList (dc->frame_list_wire);
+          mi->polygon_count += dc->polys[6];
+        }
       else if (dc->wire_overlay != 0)
         {
           glCallList (dc->frame_list);
           glDisable (GL_LIGHTING);
           glCallList (dc->frame_list_wire);
+          mi->polygon_count += dc->polys[6];
           if (!wire) glEnable (GL_LIGHTING);
         }
       else
-        glCallList (dc->frame_list);
+        {
+          glCallList (dc->frame_list);
+          mi->polygon_count += dc->polys[5];
+        }
       glPopMatrix();
     }
 
@@ -1406,32 +1460,46 @@ draw_logo (ModeInfo *mi)
       glMaterialf  (GL_FRONT_AND_BACK, GL_SHININESS, shininess);
 
       if (wire)
-        glCallList (dc->gasket_list_wire);
+        {
+          glCallList (dc->gasket_list_wire);
+          mi->polygon_count += dc->polys[4];
+        }
       else if (dc->wire_overlay != 0)
         {
           glCallList (dc->gasket_list);
           glDisable (GL_LIGHTING);
           glCallList (dc->gasket_list_wire);
+          mi->polygon_count += dc->polys[4];
           if (!wire) glEnable (GL_LIGHTING);
         }
       else
-        glCallList (dc->gasket_list);
+        {
+          glCallList (dc->gasket_list);
+          mi->polygon_count += dc->polys[3];
+        }
     }
     glPopMatrix();
 
     glRotatef (360 * sin (M_PI/2 * dc->helix_spinnerz.position), 0, 0, 1);
 
     if (wire)
-      glCallList (dc->helix_list_wire);
+      {
+        glCallList (dc->helix_list_wire);
+        mi->polygon_count += dc->polys[1];
+      }
     else if (dc->wire_overlay != 0)
       {
         glCallList (dc->helix_list_facetted);
         glDisable (GL_LIGHTING);
         glCallList (dc->helix_list_wire);
+        mi->polygon_count += dc->polys[2];
         if (!wire) glEnable (GL_LIGHTING);
       }
     else
-      glCallList (dc->helix_list);
+      {
+        glCallList (dc->helix_list);
+        mi->polygon_count += dc->polys[0];
+      }
   }
   glPopMatrix();
 
index 9a7398a55cb55221ffe4861a7b53522385048f0f..1b01e77bb7dc0517046dfac7fb2794a54a91b60b 100644 (file)
@@ -77,159 +77,159 @@ static const char sccsid[] = "@(#)dolphin.c       1.2 98/06/16 xlockmore";
 #include "atlantis.h"
 
 /* *INDENT-OFF* */
-static const float N001[3] = {-0.005937 ,-0.101998 ,-0.994767};
-static const float N002[3] = {0.936780 ,-0.200803 ,0.286569};
-static const float N003[3] = {-0.233062 ,0.972058 ,0.028007};
+static const float N001[3] = {-0.005937, -0.101998, -0.994767};
+static const float N002[3] = {0.93678, -0.200803, 0.286569};
+static const float N003[3] = {-0.233062, 0.972058, 0.028007};
 #if 0
-static const float N004[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N004[3] = {0, 1, 0};
 #endif
-static const float N005[3] = {0.898117 ,0.360171 ,0.252315};
-static const float N006[3] = {-0.915437 ,0.348456 ,0.201378};
-static const float N007[3] = {0.602263 ,-0.777527 ,0.180920};
-static const float N008[3] = {-0.906912 ,-0.412015 ,0.088061};
+static const float N005[3] = {0.898117, 0.360171, 0.252315};
+static const float N006[3] = {-0.915437, 0.348456, 0.201378};
+static const float N007[3] = {0.602263, -0.777527, 0.18092};
+static const float N008[3] = {-0.906912, -0.412015, 0.088061};
 #if 0
-static const float N009[3] = {-0.015623 ,0.999878 ,0.000000};
-static const float N010[3] = {0.000000 ,-0.992278 ,0.124035};
-static const float N011[3] = {0.000000 ,-0.936329 ,-0.351123};
+static const float N009[3] = {-0.015623, 0.999878, 0};
+static const float N010[3] = {0, -0.992278, 0.124035};
+static const float N011[3] = {0, -0.936329, -0.351123};
 #endif
-static const float N012[3] = {0.884408 ,-0.429417 ,-0.182821};
-static const float N013[3] = {0.921121 ,0.311084 ,-0.234016};
-static const float N014[3] = {0.382635 ,0.877882 ,-0.287948};
-static const float N015[3] = {-0.380046 ,0.888166 ,-0.258316};
-static const float N016[3] = {-0.891515 ,0.392238 ,-0.226607};
-static const float N017[3] = {-0.901419 ,-0.382002 ,-0.203763};
-static const float N018[3] = {-0.367225 ,-0.911091 ,-0.187243};
-static const float N019[3] = {0.339539 ,-0.924846 ,-0.171388};
-static const float N020[3] = {0.914706 ,-0.378617 ,-0.141290};
-static const float N021[3] = {0.950662 ,0.262713 ,-0.164994};
-static const float N022[3] = {0.546359 ,0.801460 ,-0.243218};
-static const float N023[3] = {-0.315796 ,0.917068 ,-0.243431};
-static const float N024[3] = {-0.825687 ,0.532277 ,-0.186875};
-static const float N025[3] = {-0.974763 ,-0.155232 ,-0.160435};
-static const float N026[3] = {-0.560596 ,-0.816658 ,-0.137119};
-static const float N027[3] = {0.380210 ,-0.910817 ,-0.160786};
-static const float N028[3] = {0.923772 ,-0.358322 ,-0.135093};
-static const float N029[3] = {0.951202 ,0.275053 ,-0.139859};
-static const float N030[3] = {0.686099 ,0.702548 ,-0.188932};
-static const float N031[3] = {-0.521865 ,0.826719 ,-0.210220};
-static const float N032[3] = {-0.923820 ,0.346739 ,-0.162258};
-static const float N033[3] = {-0.902095 ,-0.409995 ,-0.134646};
-static const float N034[3] = {-0.509115 ,-0.848498 ,-0.144404};
-static const float N035[3] = {0.456469 ,-0.880293 ,-0.129305};
-static const float N036[3] = {0.873401 ,-0.475489 ,-0.105266};
-static const float N037[3] = {0.970825 ,0.179861 ,-0.158584};
-static const float N038[3] = {0.675609 ,0.714187 ,-0.183004};
-static const float N039[3] = {-0.523574 ,0.830212 ,-0.191360};
-static const float N040[3] = {-0.958895 ,0.230808 ,-0.165071};
-static const float N041[3] = {-0.918285 ,-0.376803 ,-0.121542};
-static const float N042[3] = {-0.622467 ,-0.774167 ,-0.114888};
-static const float N043[3] = {0.404497 ,-0.908807 ,-0.102231};
-static const float N044[3] = {0.930538 ,-0.365155 ,-0.027588};
-static const float N045[3] = {0.921920 ,0.374157 ,-0.100345};
-static const float N046[3] = {0.507346 ,0.860739 ,0.041562};
-static const float N047[3] = {-0.394646 ,0.918815 ,-0.005730};
-static const float N048[3] = {-0.925411 ,0.373024 ,-0.066837};
-static const float N049[3] = {-0.945337 ,-0.322309 ,-0.049551};
-static const float N050[3] = {-0.660437 ,-0.750557 ,-0.022072};
-static const float N051[3] = {0.488835 ,-0.871950 ,-0.027261};
-static const float N052[3] = {0.902599 ,-0.421397 ,0.087969};
-static const float N053[3] = {0.938636 ,0.322606 ,0.122020};
-static const float N054[3] = {0.484605 ,0.871078 ,0.079878};
-static const float N055[3] = {-0.353607 ,0.931559 ,0.084619};
-static const float N056[3] = {-0.867759 ,0.478564 ,0.134054};
-static const float N057[3] = {-0.951583 ,-0.296030 ,0.082794};
-static const float N058[3] = {-0.672355 ,-0.730209 ,0.121384};
-static const float N059[3] = {0.528336 ,-0.842452 ,0.105525};
-static const float N060[3] = {0.786913 ,-0.564760 ,0.248627};
+static const float N012[3] = {0.884408, -0.429417, -0.182821};
+static const float N013[3] = {0.921121, 0.311084, -0.234016};
+static const float N014[3] = {0.382635, 0.877882, -0.287948};
+static const float N015[3] = {-0.380046, 0.888166, -0.258316};
+static const float N016[3] = {-0.891515, 0.392238, -0.226607};
+static const float N017[3] = {-0.901419, -0.382002, -0.203763};
+static const float N018[3] = {-0.367225, -0.911091, -0.187243};
+static const float N019[3] = {0.339539, -0.924846, -0.171388};
+static const float N020[3] = {0.914706, -0.378617, -0.14129};
+static const float N021[3] = {0.950662, 0.262713, -0.164994};
+static const float N022[3] = {0.546359, 0.80146, -0.243218};
+static const float N023[3] = {-0.315796, 0.917068, -0.243431};
+static const float N024[3] = {-0.825687, 0.532277, -0.186875};
+static const float N025[3] = {-0.974763, -0.155232, -0.160435};
+static const float N026[3] = {-0.560596, -0.816658, -0.137119};
+static const float N027[3] = {0.38021, -0.910817, -0.160786};
+static const float N028[3] = {0.923772, -0.358322, -0.135093};
+static const float N029[3] = {0.951202, 0.275053, -0.139859};
+static const float N030[3] = {0.686099, 0.702548, -0.188932};
+static const float N031[3] = {-0.521865, 0.826719, -0.21022};
+static const float N032[3] = {-0.92382, 0.346739, -0.162258};
+static const float N033[3] = {-0.902095, -0.409995, -0.134646};
+static const float N034[3] = {-0.509115, -0.848498, -0.144404};
+static const float N035[3] = {0.456469, -0.880293, -0.129305};
+static const float N036[3] = {0.873401, -0.475489, -0.105266};
+static const float N037[3] = {0.970825, 0.179861, -0.158584};
+static const float N038[3] = {0.675609, 0.714187, -0.183004};
+static const float N039[3] = {-0.523574, 0.830212, -0.19136};
+static const float N040[3] = {-0.958895, 0.230808, -0.165071};
+static const float N041[3] = {-0.918285, -0.376803, -0.121542};
+static const float N042[3] = {-0.622467, -0.774167, -0.114888};
+static const float N043[3] = {0.404497, -0.908807, -0.102231};
+static const float N044[3] = {0.930538, -0.365155, -0.027588};
+static const float N045[3] = {0.92192, 0.374157, -0.100345};
+static const float N046[3] = {0.507346, 0.860739, 0.041562};
+static const float N047[3] = {-0.394646, 0.918815, -0.00573};
+static const float N048[3] = {-0.925411, 0.373024, -0.066837};
+static const float N049[3] = {-0.945337, -0.322309, -0.049551};
+static const float N050[3] = {-0.660437, -0.750557, -0.022072};
+static const float N051[3] = {0.488835, -0.87195, -0.027261};
+static const float N052[3] = {0.902599, -0.421397, 0.087969};
+static const float N053[3] = {0.938636, 0.322606, 0.12202};
+static const float N054[3] = {0.484605, 0.871078, 0.079878};
+static const float N055[3] = {-0.353607, 0.931559, 0.084619};
+static const float N056[3] = {-0.867759, 0.478564, 0.134054};
+static const float N057[3] = {-0.951583, -0.29603, 0.082794};
+static const float N058[3] = {-0.672355, -0.730209, 0.121384};
+static const float N059[3] = {0.528336, -0.842452, 0.105525};
+static const float N060[3] = {0.786913, -0.56476, 0.248627};
 #if 0
-static const float N061[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N061[3] = {0, 1, 0};
 #endif
-static const float N062[3] = {0.622098 ,0.765230 ,0.165584};
-static const float N063[3] = {-0.631711 ,0.767816 ,0.106773};
-static const float N064[3] = {-0.687886 ,0.606351 ,0.398938};
-static const float N065[3] = {-0.946327 ,-0.281623 ,0.158598};
-static const float N066[3] = {-0.509549 ,-0.860437 ,0.002776};
-static const float N067[3] = {0.462594 ,-0.876692 ,0.131977};
+static const float N062[3] = {0.622098, 0.76523, 0.165584};
+static const float N063[3] = {-0.631711, 0.767816, 0.106773};
+static const float N064[3] = {-0.687886, 0.606351, 0.398938};
+static const float N065[3] = {-0.946327, -0.281623, 0.158598};
+static const float N066[3] = {-0.509549, -0.860437, 0.002776};
+static const float N067[3] = {0.462594, -0.876692, 0.131977};
 #if 0
-static const float N068[3] = {0.000000 ,-0.992278 ,0.124035};
-static const float N069[3] = {0.000000 ,-0.970143 ,-0.242536};
-static const float N070[3] = {0.015502 ,0.992159 ,-0.124020};
+static const float N068[3] = {0, -0.992278, 0.124035};
+static const float N069[3] = {0, -0.970143, -0.242536};
+static const float N070[3] = {0.015502, 0.992159, -0.12402};
 #endif
-static const float N071[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N071[3] = {0, 1, 0};
 #if 0
-static const float N072[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N073[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N074[3] = {0.000000 ,-1.000000 ,0.000000};
-static const float N075[3] = {-0.242536 ,0.000000 ,-0.970143};
-static const float N076[3] = {-0.010336 ,-0.992225 ,-0.124028};
+static const float N072[3] = {0, 1, 0};
+static const float N073[3] = {0, 1, 0};
+static const float N074[3] = {0, -1, 0};
+static const float N075[3] = {-0.242536, 0, -0.970143};
+static const float N076[3] = {-0.010336, -0.992225, -0.124028};
 #endif
-static const float N077[3] = {-0.880770 ,0.461448 ,0.106351};
-static const float N078[3] = {-0.880770 ,0.461448 ,0.106351};
-static const float N079[3] = {-0.880770 ,0.461448 ,0.106351};
-static const float N080[3] = {-0.880770 ,0.461448 ,0.106351};
-static const float N081[3] = {-0.571197 ,0.816173 ,0.087152};
-static const float N082[3] = {-0.880770 ,0.461448 ,0.106351};
-static const float N083[3] = {-0.571197 ,0.816173 ,0.087152};
-static const float N084[3] = {-0.571197 ,0.816173 ,0.087152};
-static const float N085[3] = {-0.880770 ,0.461448 ,0.106351};
-static const float N086[3] = {-0.571197 ,0.816173 ,0.087152};
-static const float N087[3] = {-0.880770 ,0.461448 ,0.106351};
-static const float N088[3] = {-0.880770 ,0.461448 ,0.106351};
-static const float N089[3] = {-0.880770 ,0.461448 ,0.106351};
-static const float N090[3] = {-0.880770 ,0.461448 ,0.106351};
-static const float N091[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N092[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N093[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N094[3] = {1.000000 ,0.000000 ,0.000000};
-static const float N095[3] = {-1.000000 ,0.000000 ,0.000000};
+static const float N077[3] = {-0.88077, 0.461448, 0.106351};
+static const float N078[3] = {-0.88077, 0.461448, 0.106351};
+static const float N079[3] = {-0.88077, 0.461448, 0.106351};
+static const float N080[3] = {-0.88077, 0.461448, 0.106351};
+static const float N081[3] = {-0.571197, 0.816173, 0.087152};
+static const float N082[3] = {-0.88077, 0.461448, 0.106351};
+static const float N083[3] = {-0.571197, 0.816173, 0.087152};
+static const float N084[3] = {-0.571197, 0.816173, 0.087152};
+static const float N085[3] = {-0.88077, 0.461448, 0.106351};
+static const float N086[3] = {-0.571197, 0.816173, 0.087152};
+static const float N087[3] = {-0.88077, 0.461448, 0.106351};
+static const float N088[3] = {-0.88077, 0.461448, 0.106351};
+static const float N089[3] = {-0.88077, 0.461448, 0.106351};
+static const float N090[3] = {-0.88077, 0.461448, 0.106351};
+static const float N091[3] = {0, 1, 0};
+static const float N092[3] = {0, 1, 0};
+static const float N093[3] = {0, 1, 0};
+static const float N094[3] = {1, 0, 0};
+static const float N095[3] = {-1, 0, 0};
 #if 0
-static const float N096[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N096[3] = {0, 1, 0};
 #endif
-static const float N097[3] = {-0.697296 ,0.702881 ,0.140491};
-static const float N098[3] = {0.918864 ,0.340821 ,0.198819};
-static const float N099[3] = {-0.932737 ,0.201195 ,0.299202};
-static const float N100[3] = {0.029517 ,0.981679 ,0.188244};
+static const float N097[3] = {-0.697296, 0.702881, 0.140491};
+static const float N098[3] = {0.918864, 0.340821, 0.198819};
+static const float N099[3] = {-0.932737, 0.201195, 0.299202};
+static const float N100[3] = {0.029517, 0.981679, 0.188244};
 #if 0
-static const float N101[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N101[3] = {0, 1, 0};
 #endif
-static const float N102[3] = {0.813521 ,-0.204936 ,0.544229};
+static const float N102[3] = {0.813521, -0.204936, 0.544229};
 #if 0
-static const float N103[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N104[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N105[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N106[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N107[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N108[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N109[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N103[3] = {0, 1, 0};
+static const float N104[3] = {0, 1, 0};
+static const float N105[3] = {0, 1, 0};
+static const float N106[3] = {0, 1, 0};
+static const float N107[3] = {0, 1, 0};
+static const float N108[3] = {0, 1, 0};
+static const float N109[3] = {0, 1, 0};
 #endif
-static const float N110[3] = {-0.781480 ,-0.384779 ,0.491155};
-static const float N111[3] = {-0.722243 ,0.384927 ,0.574627};
-static const float N112[3] = {-0.752278 ,0.502679 ,0.425901};
-static const float N113[3] = {0.547257 ,0.367910 ,0.751766};
-static const float N114[3] = {0.725949 ,-0.232568 ,0.647233};
-static const float N115[3] = {-0.747182 ,-0.660786 ,0.071280};
-static const float N116[3] = {0.931519 ,0.200748 ,0.303270};
-static const float N117[3] = {-0.828928 ,0.313757 ,0.463071};
-static const float N118[3] = {0.902554 ,-0.370967 ,0.218587};
-static const float N119[3] = {-0.879257 ,-0.441851 ,0.177973};
-static const float N120[3] = {0.642327 ,0.611901 ,0.461512};
-static const float N121[3] = {0.964817 ,-0.202322 ,0.167910};
-static const float N122[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N110[3] = {-0.78148, -0.384779, 0.491155};
+static const float N111[3] = {-0.722243, 0.384927, 0.574627};
+static const float N112[3] = {-0.752278, 0.502679, 0.425901};
+static const float N113[3] = {0.547257, 0.36791, 0.751766};
+static const float N114[3] = {0.725949, -0.232568, 0.647233};
+static const float N115[3] = {-0.747182, -0.660786, 0.07128};
+static const float N116[3] = {0.931519, 0.200748, 0.30327};
+static const float N117[3] = {-0.828928, 0.313757, 0.463071};
+static const float N118[3] = {0.902554, -0.370967, 0.218587};
+static const float N119[3] = {-0.879257, -0.441851, 0.177973};
+static const float N120[3] = {0.642327, 0.611901, 0.461512};
+static const float N121[3] = {0.964817, -0.202322, 0.16791};
+static const float N122[3] = {0, 1, 0};
 #if 0
-static const float N123[3] = {-0.980734 ,0.041447 ,0.190900};
-static const float N124[3] = {-0.980734 ,0.041447 ,0.190900};
-static const float N125[3] = {-0.980734 ,0.041447 ,0.190900};
-static const float N126[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N127[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N128[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N129[3] = {0.963250 ,0.004839 ,0.268565};
-static const float N130[3] = {0.963250 ,0.004839 ,0.268565};
-static const float N131[3] = {0.963250 ,0.004839 ,0.268565};
-static const float N132[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N133[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N134[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N123[3] = {-0.980734, 0.041447, 0.1909};
+static const float N124[3] = {-0.980734, 0.041447, 0.1909};
+static const float N125[3] = {-0.980734, 0.041447, 0.1909};
+static const float N126[3] = {0, 1, 0};
+static const float N127[3] = {0, 1, 0};
+static const float N128[3] = {0, 1, 0};
+static const float N129[3] = {0.96325, 0.004839, 0.268565};
+static const float N130[3] = {0.96325, 0.004839, 0.268565};
+static const float N131[3] = {0.96325, 0.004839, 0.268565};
+static const float N132[3] = {0, 1, 0};
+static const float N133[3] = {0, 1, 0};
+static const float N134[3] = {0, 1, 0};
 #endif
-static       float P001[3] = {5.68, -300.95, 1324.70};
+static       float P001[3] = {5.68, -300.95, 1324.7};
 static const float P002[3] = {338.69, -219.63, 9677.03};
 static const float P003[3] = {12.18, 474.59, 9138.14};
 #if 0
@@ -243,11 +243,11 @@ static       float P009[3] = {124.39, -261.46, 1942.34};
 static       float P010[3] = {-130.05, -261.46, 1946.03};
 static       float P011[3] = {141.07, -320.11, 1239.38};
 static       float P012[3] = {156.48, -360.12, 2073.41};
-static       float P013[3] = {162.00, -175.88, 2064.44};
+static       float P013[3] = {162, -175.88, 2064.44};
 static       float P014[3] = {88.16, -87.72, 2064.02};
 static       float P015[3] = {-65.21, -96.13, 2064.02};
 static       float P016[3] = {-156.48, -180.96, 2064.44};
-static       float P017[3] = {-162.00, -368.93, 2082.39};
+static       float P017[3] = {-162, -368.93, 2082.39};
 static       float P018[3] = {-88.16, -439.22, 2082.39};
 static       float P019[3] = {65.21, -440.32, 2083.39};
 static       float P020[3] = {246.87, -356.02, 2576.95};
@@ -258,18 +258,18 @@ static       float P024[3] = {-222.97, -117.49, 2567.15};
 static       float P025[3] = {-252.22, -371.53, 2569.92};
 static       float P026[3] = {-108.44, -518.19, 2586.75};
 static       float P027[3] = {97.88, -524.79, 2586.75};
-static       float P028[3] = {370.03, -421.19, 3419.70};
+static       float P028[3] = {370.03, -421.19, 3419.7};
 static       float P029[3] = {351.15, -16.98, 3423.17};
 static       float P030[3] = {200.66, 248.46, 3430.37};
 static       float P031[3] = {-148.42, 235.02, 3417.91};
 static       float P032[3] = {-360.21, -30.27, 3416.84};
-static       float P033[3] = {-357.90, -414.89, 3407.04};
-static       float P034[3] = {-148.88, -631.35, 3409.90};
-static       float P035[3] = {156.38, -632.59, 3419.70};
+static       float P033[3] = {-357.9, -414.89, 3407.04};
+static       float P034[3] = {-148.88, -631.35, 3409.9};
+static       float P035[3] = {156.38, -632.59, 3419.7};
 static       float P036[3] = {462.61, -469.21, 4431.51};
-static       float P037[3] = {466.60, 102.25, 4434.98};
+static       float P037[3] = {466.6, 102.25, 4434.98};
 static       float P038[3] = {243.05, 474.34, 4562.02};
-static       float P039[3] = {-191.23, 474.40, 4554.42};
+static       float P039[3] = {-191.23, 474.4, 4554.42};
 static       float P040[3] = {-476.12, 111.05, 4451.11};
 static       float P041[3] = {-473.36, -470.74, 4444.78};
 static       float P042[3] = {-266.95, -748.41, 4447.78};
@@ -282,7 +282,7 @@ static       float P048[3] = {-784.13, 370.75, 6378.01};
 static       float P049[3] = {-743.29, -325.82, 5943.46};
 static       float P050[3] = {-383.24, -804.77, 5943.46};
 static       float P051[3] = {283.47, -846.09, 5943.46};
-static const float iP001[3] = {5.68, -300.95, 1324.70};
+static const float iP001[3] = {5.68, -300.95, 1324.7};
 #if 0
 static const float iP002[3] = {338.69, -219.63, 9677.03};
 static const float iP003[3] = {12.18, 624.93, 8956.39};
@@ -296,11 +296,11 @@ static const float iP009[3] = {124.39, -261.46, 1942.34};
 static const float iP010[3] = {-130.05, -261.46, 1946.03};
 static const float iP011[3] = {141.07, -320.11, 1239.38};
 static const float iP012[3] = {156.48, -360.12, 2073.41};
-static const float iP013[3] = {162.00, -175.88, 2064.44};
+static const float iP013[3] = {162, -175.88, 2064.44};
 static const float iP014[3] = {88.16, -87.72, 2064.02};
 static const float iP015[3] = {-65.21, -96.13, 2064.02};
 static const float iP016[3] = {-156.48, -180.96, 2064.44};
-static const float iP017[3] = {-162.00, -368.93, 2082.39};
+static const float iP017[3] = {-162, -368.93, 2082.39};
 static const float iP018[3] = {-88.16, -439.22, 2082.39};
 static const float iP019[3] = {65.21, -440.32, 2083.39};
 static const float iP020[3] = {246.87, -356.02, 2576.95};
@@ -311,18 +311,18 @@ static const float iP024[3] = {-222.97, -117.49, 2567.15};
 static const float iP025[3] = {-252.22, -371.53, 2569.92};
 static const float iP026[3] = {-108.44, -518.19, 2586.75};
 static const float iP027[3] = {97.88, -524.79, 2586.75};
-static const float iP028[3] = {370.03, -421.19, 3419.70};
+static const float iP028[3] = {370.03, -421.19, 3419.7};
 static const float iP029[3] = {351.15, -16.98, 3423.17};
 static const float iP030[3] = {200.66, 248.46, 3430.37};
 static const float iP031[3] = {-148.42, 235.02, 3417.91};
 static const float iP032[3] = {-360.21, -30.27, 3416.84};
-static const float iP033[3] = {-357.90, -414.89, 3407.04};
-static const float iP034[3] = {-148.88, -631.35, 3409.90};
-static const float iP035[3] = {156.38, -632.59, 3419.70};
+static const float iP033[3] = {-357.9, -414.89, 3407.04};
+static const float iP034[3] = {-148.88, -631.35, 3409.9};
+static const float iP035[3] = {156.38, -632.59, 3419.7};
 static const float iP036[3] = {462.61, -469.21, 4431.51};
-static const float iP037[3] = {466.60, 102.25, 4434.98};
+static const float iP037[3] = {466.6, 102.25, 4434.98};
 static const float iP038[3] = {243.05, 474.34, 4562.02};
-static const float iP039[3] = {-191.23, 474.40, 4554.42};
+static const float iP039[3] = {-191.23, 474.4, 4554.42};
 static const float iP040[3] = {-476.12, 111.05, 4451.11};
 static const float iP041[3] = {-473.36, -470.74, 4444.78};
 static const float iP042[3] = {-266.95, -748.41, 4447.78};
@@ -337,17 +337,17 @@ static const float iP050[3] = {-383.24, -804.77, 5943.46};
 static const float iP051[3] = {283.47, -846.09, 5943.46};
 static const float P052[3] = {599.09, -300.15, 7894.03};
 static const float P053[3] = {735.48, 306.26, 7911.92};
-static const float P054[3] = {246.22, 558.53, 8460.50};
+static const float P054[3] = {246.22, 558.53, 8460.5};
 static const float P055[3] = {-230.41, 559.84, 8473.23};
 static const float P056[3] = {-698.66, 320.83, 7902.59};
 static const float P057[3] = {-643.29, -299.16, 7902.59};
-static const float P058[3] = {-341.47, -719.30, 7902.59};
+static const float P058[3] = {-341.47, -719.3, 7902.59};
 static const float P059[3] = {252.57, -756.12, 7902.59};
 static const float P060[3] = {458.39, -265.31, 9355.44};
 #if 0
-static const float P061[3] = {433.38, -161.90, 9503.03};
+static const float P061[3] = {433.38, -161.9, 9503.03};
 #endif
-static const float P062[3] = {224.04, 338.75, 9450.30};
+static const float P062[3] = {224.04, 338.75, 9450.3};
 static const float P063[3] = {-165.71, 341.04, 9462.35};
 static const float P064[3] = {-298.11, 110.13, 10180.37};
 static const float P065[3] = {-473.99, -219.71, 9355.44};
@@ -359,7 +359,7 @@ static       float P070[3] = {-1167.34, -321.61, 1319.45};
 static       float P071[3] = {1404.86, -306.66, 1235.45};
 static       float P072[3] = {-1409.73, -314.14, 1247.66};
 static       float P073[3] = {1254.01, -296.87, 1544.58};
-static       float P074[3] = {-1262.09, -291.70, 1504.26};
+static       float P074[3] = {-1262.09, -291.7, 1504.26};
 static       float P075[3] = {965.71, -269.26, 1742.65};
 static       float P076[3] = {-900.97, -276.74, 1726.07};
 static const float iP068[3] = {-136.29, -319.84, 1228.73};
@@ -368,48 +368,48 @@ static const float iP070[3] = {-1167.34, -321.61, 1319.45};
 static const float iP071[3] = {1404.86, -306.66, 1235.45};
 static const float iP072[3] = {-1409.73, -314.14, 1247.66};
 static const float iP073[3] = {1254.01, -296.87, 1544.58};
-static const float iP074[3] = {-1262.09, -291.70, 1504.26};
+static const float iP074[3] = {-1262.09, -291.7, 1504.26};
 static const float iP075[3] = {965.71, -269.26, 1742.65};
 static const float iP076[3] = {-900.97, -276.74, 1726.07};
-static const float P077[3] = {1058.00, -448.81, 8194.66};
+static const float P077[3] = {1058, -448.81, 8194.66};
 static const float P078[3] = {-1016.51, -456.43, 8190.62};
 static const float P079[3] = {-1515.96, -676.45, 7754.93};
 static const float P080[3] = {1856.75, -830.34, 7296.56};
 static const float P081[3] = {1472.16, -497.38, 7399.68};
 static const float P082[3] = {-1775.26, -829.51, 7298.46};
 static const float P083[3] = {911.09, -252.51, 7510.99};
-static const float P084[3] = {-1451.94, -495.62, 7384.30};
-static const float P085[3] = {1598.75, -669.26, 7769.90};
+static const float P084[3] = {-1451.94, -495.62, 7384.3};
+static const float P085[3] = {1598.75, -669.26, 7769.9};
 static const float P086[3] = {-836.53, -250.08, 7463.25};
 static const float P087[3] = {722.87, -158.18, 8006.41};
 static const float P088[3] = {-688.86, -162.28, 7993.89};
-static const float P089[3] = {-626.92, -185.30, 8364.98};
+static const float P089[3] = {-626.92, -185.3, 8364.98};
 static const float P090[3] = {647.72, -189.46, 8354.99};
-static       float P091[3] = {0.00, 835.01, 5555.62};
-static       float P092[3] = {0.00, 1350.18, 5220.86};
-static       float P093[3] = {0.00, 1422.94, 5285.27};
-static       float P094[3] = {0.00, 1296.75, 5650.19};
-static       float P095[3] = {0.00, 795.63, 6493.88};
-static const float iP091[3] = {0.00, 835.01, 5555.62};
-static const float iP092[3] = {0.00, 1350.18, 5220.86};
-static const float iP093[3] = {0.00, 1422.94, 5285.27};
-static const float iP094[3] = {0.00, 1296.75, 5650.19};
-static const float iP095[3] = {0.00, 795.63, 6493.88};
+static       float P091[3] = {0, 835.01, 5555.62};
+static       float P092[3] = {0, 1350.18, 5220.86};
+static       float P093[3] = {0, 1422.94, 5285.27};
+static       float P094[3] = {0, 1296.75, 5650.19};
+static       float P095[3] = {0, 795.63, 6493.88};
+static const float iP091[3] = {0, 835.01, 5555.62};
+static const float iP092[3] = {0, 1350.18, 5220.86};
+static const float iP093[3] = {0, 1422.94, 5285.27};
+static const float iP094[3] = {0, 1296.75, 5650.19};
+static const float iP095[3] = {0, 795.63, 6493.88};
 #if 0
-static const float P096[3] = {-447.38, -165.99, 9499.60};
+static const float P096[3] = {-447.38, -165.99, 9499.6};
 #endif
 static       float P097[3] = {-194.91, -357.14, 10313.32};
 static       float P098[3] = {135.35, -357.66, 10307.94};
 static const float iP097[3] = {-194.91, -357.14, 10313.32};
 static const float iP098[3] = {135.35, -357.66, 10307.94};
 static const float P099[3] = {-380.53, -221.14, 9677.98};
-static const float P100[3] = {0.00, 412.99, 9629.33};
+static const float P100[3] = {0, 412.99, 9629.33};
 #if 0
-static const float P101[3] = {5.70, 567.00, 7862.98};
+static const float P101[3] = {5.7, 567, 7862.98};
 #endif
 static       float P102[3] = {59.51, -412.55, 10677.58};
 static const float iP102[3] = {59.51, -412.55, 10677.58};
-static const float P103[3] = {6.50, 484.74, 9009.94};
+static const float P103[3] = {6.5, 484.74, 9009.94};
 #if 0
 static const float P104[3] = {-9.86, 567.62, 7858.65};
 #endif
@@ -418,39 +418,39 @@ static const float P105[3] = {-41.86, 476.51, 9078.17};
 static const float P106[3] = {22.75, 568.13, 7782.83};
 static const float P107[3] = {58.93, 568.42, 7775.94};
 #endif
-static const float P108[3] = {49.20, 476.83, 9078.24};
+static const float P108[3] = {49.2, 476.83, 9078.24};
 #if 0
-static const float P109[3] = {99.21, 566.00, 7858.65};
+static const float P109[3] = {99.21, 566, 7858.65};
 #endif
 static       float P110[3] = {-187.62, -410.04, 10674.12};
 static const float iP110[3] = {-187.62, -410.04, 10674.12};
-static       float P111[3] = {-184.25, -318.70, 10723.88};
-static const float iP111[3] = {-184.25, -318.70, 10723.88};
+static       float P111[3] = {-184.25, -318.7, 10723.88};
+static const float iP111[3] = {-184.25, -318.7, 10723.88};
 static const float P112[3] = {-179.61, -142.81, 10670.26};
 static const float P113[3] = {57.43, -147.94, 10675.26};
-static const float P114[3] = {54.06, -218.90, 10712.44};
+static const float P114[3] = {54.06, -218.9, 10712.44};
 static const float P115[3] = {-186.35, -212.09, 10713.76};
-static const float P116[3] = {205.90, -84.61, 10275.97};
+static const float P116[3] = {205.9, -84.61, 10275.97};
 static const float P117[3] = {-230.96, -83.26, 10280.09};
 static const float iP118[3] = {216.78, -509.17, 10098.94};
 static const float iP119[3] = {-313.21, -510.79, 10102.62};
 static       float P118[3] = {216.78, -509.17, 10098.94};
 static       float P119[3] = {-313.21, -510.79, 10102.62};
 static const float P120[3] = {217.95, 96.34, 10161.62};
-static       float P121[3] = {71.99, -319.74, 10717.70};
-static const float iP121[3] = {71.99, -319.74, 10717.70};
-static       float P122[3] = {0.00, 602.74, 5375.84};
-static const float iP122[3] = {0.00, 602.74, 5375.84};
-static const float P123[3] = {-448.94, -203.14, 9499.60};
-static const float P124[3] = {-442.64, -185.20, 9528.07};
+static       float P121[3] = {71.99, -319.74, 10717.7};
+static const float iP121[3] = {71.99, -319.74, 10717.7};
+static       float P122[3] = {0, 602.74, 5375.84};
+static const float iP122[3] = {0, 602.74, 5375.84};
+static const float P123[3] = {-448.94, -203.14, 9499.6};
+static const float P124[3] = {-442.64, -185.2, 9528.07};
 static const float P125[3] = {-441.07, -148.05, 9528.07};
-static const float P126[3] = {-443.43, -128.84, 9499.60};
+static const float P126[3] = {-443.43, -128.84, 9499.6};
 static const float P127[3] = {-456.87, -146.78, 9466.67};
 static const float P128[3] = {-453.68, -183.93, 9466.67};
 static const float P129[3] = {428.43, -124.08, 9503.03};
 static const float P130[3] = {419.73, -142.14, 9534.56};
 static const float P131[3] = {419.92, -179.96, 9534.56};
-static const float P132[3] = {431.20, -199.73, 9505.26};
+static const float P132[3] = {431.2, -199.73, 9505.26};
 static const float P133[3] = {442.28, -181.67, 9475.96};
 static const float P134[3] = {442.08, -143.84, 9475.96};
 /* *INDENT-ON* */
@@ -1932,25 +1932,25 @@ DrawDolphin(fishRec * fish, int wire)
        float       pitch, thrash, chomp;
        GLenum      cap;
 
-       fish->htail = (int) (fish->htail - (int) (10.0 * fish->v)) % 360;
+       fish->htail = (int) (fish->htail - (int) (10 * fish->v)) % 360;
 
-       thrash = 70.0 * fish->v;
+       thrash = 70 * fish->v;
 
-       seg0 = 1.0 * thrash * sin((fish->htail) * RRAD);
-       seg3 = 1.0 * thrash * sin((fish->htail) * RRAD);
-       seg1 = 2.0 * thrash * sin((fish->htail + 4.0) * RRAD);
-       seg2 = 3.0 * thrash * sin((fish->htail + 6.0) * RRAD);
-       seg4 = 4.0 * thrash * sin((fish->htail + 10.0) * RRAD);
-       seg5 = 4.5 * thrash * sin((fish->htail + 15.0) * RRAD);
-       seg6 = 5.0 * thrash * sin((fish->htail + 20.0) * RRAD);
-       seg7 = 6.0 * thrash * sin((fish->htail + 30.0) * RRAD);
+       seg0 = 1 * thrash * sin((fish->htail) * RRAD);
+       seg3 = 1 * thrash * sin((fish->htail) * RRAD);
+       seg1 = 2 * thrash * sin((fish->htail + 4) * RRAD);
+       seg2 = 3 * thrash * sin((fish->htail + 6) * RRAD);
+       seg4 = 4 * thrash * sin((fish->htail + 10) * RRAD);
+       seg5 = 4.5 * thrash * sin((fish->htail + 15) * RRAD);
+       seg6 = 5 * thrash * sin((fish->htail + 20) * RRAD);
+       seg7 = 6 * thrash * sin((fish->htail + 30) * RRAD);
 
-       pitch = fish->v * sin((fish->htail + 180.0) * RRAD);
+       pitch = fish->v * sin((fish->htail + 180) * RRAD);
 
-       if (fish->v > 2.0) {
-               chomp = -(fish->v - 2.0) * 200.0;
+       if (fish->v > 2) {
+               chomp = -(fish->v - 2) * 200;
        }
-       chomp = 100.0;
+       chomp = 100;
 
        P012[1] = iP012[1] + seg5;
        P013[1] = iP013[1] + seg5;
@@ -2030,11 +2030,11 @@ DrawDolphin(fishRec * fish, int wire)
 
        glPushMatrix();
 
-       glRotatef(pitch, 1.0, 0.0, 0.0);
+       glRotatef(pitch, 1, 0, 0);
 
-       glTranslatef(0.0, 0.0, 7000.0);
+       glTranslatef(0, 0, 7000);
 
-       glRotatef(180.0, 0.0, 1.0, 0.0);
+       glRotatef(180, 0, 1, 0);
 
        glEnable(GL_CULL_FACE);
        cap = wire ? GL_LINE_LOOP : GL_POLYGON;
index 857183bfb69f5b4ce56abae7eb8a87c5e69d3c41..819ef5c1b222457d66073659ff80cc84c476c2e6 100644 (file)
 #undef countof
 #define countof(x) (sizeof((x))/sizeof((*x)))
 
+#define DEF_ROTATE      "True"
+#define DEF_REFLECTIONS "True"
+#define DEF_SHADOWS     "True"
+#define DEF_SMOOTH      "True"
+#define DEF_CLASSIC     "False"
+
+
 static XrmOptionDescRec opts[] = {
   {"+rotate", ".chess.rotate", XrmoptionNoArg, "false" },
   {"-rotate", ".chess.rotate", XrmoptionNoArg, "true" },
@@ -55,11 +62,11 @@ static XrmOptionDescRec opts[] = {
 static int rotate, reflections, smooth, shadows, classic;
 
 static argtype vars[] = {
-  {&rotate,      "rotate",      "Rotate",      "True", t_Bool},
-  {&reflections, "reflections", "Reflections", "True", t_Bool},
-  {&shadows, "shadows", "Shadows", "True", t_Bool},
-  {&smooth,      "smooth",      "Smooth",      "True", t_Bool},
-  {&classic,     "classic",     "Classic",     "False", t_Bool},
+  {&rotate,      "rotate",      "Rotate",      DEF_ROTATE, t_Bool},
+  {&reflections, "reflections", "Reflections", DEF_REFLECTIONS, t_Bool},
+  {&shadows,    "shadows",      "Shadows",    DEF_SHADOWS, t_Bool},
+  {&smooth,      "smooth",      "Smooth",      DEF_SMOOTH, t_Bool},
+  {&classic,     "classic",     "Classic",     DEF_CLASSIC, t_Bool},
 };
 
 ENTRYPOINT ModeSpecOpt chess_opts = {countof(opts), opts, countof(vars), vars, NULL};
index e1c12ea71b5417b5b3ad285cda8b56cd591603b2..93ca5c39757fced367ed1bfde8d721c04a8dd86d 100644 (file)
@@ -42,9 +42,7 @@ or the id number (decimal or hex) of a specific visual.
 .B \-wireframe
 Render in wireframe instead of solid.
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index aadc1a265f8c3b640d41d34775a45326991d9e0c..f8be3c493e5455f3bfb99e9096f3781ccfeb7112 100644 (file)
@@ -24,7 +24,7 @@
 #ifdef STANDALONE
 #define DEFAULTS        "*delay:           30000        \n" \
                         "*showFPS:         False        \n" \
-                       "*titleFont:  -*-times-bold-r-normal-*-180-*\n" \
+                       "*titleFont:  -*-helvetica-medium-r-normal-*-180-*\n" \
 
 # define refresh_engine 0
 # include "xlockmore.h"              /* from the xscreensaver distribution */
@@ -46,7 +46,7 @@
 #define DEF_ENGINE "(none)"
 #define DEF_TITLES "False"
 #define DEF_SPIN   "True"
-#define DEF_WANDER "True"
+#define DEF_MOVE   "True"
 
 #undef countof
 #define countof(x) (sizeof((x))/sizeof((*x)))
@@ -68,7 +68,7 @@ static XrmOptionDescRec opts[] = {
 
 static argtype vars[] = {
   {&which_engine, "engine", "Engine", DEF_ENGINE, t_String},
-  {&move,         "move",   "Move",   DEF_WANDER, t_Bool},
+  {&move,         "move",   "Move",   DEF_MOVE,   t_Bool},
   {&spin,         "spin",   "Spin",   DEF_SPIN,   t_Bool},
   {&do_titles,    "titles", "Titles", DEF_TITLES, t_Bool},
 };
@@ -136,6 +136,9 @@ typedef struct {
   int ln_init;
   int lastPlug;
 
+  GLuint shaft_list, piston_list;
+  int shaft_polys, piston_polys;
+
 } Engine;
 
 static Engine *engine = NULL;
@@ -292,9 +295,10 @@ static void make_tables(Engine *e)
 /* for a tube, endcaps is 0 (none), 1 (left), 2 (right) or 3(both) */
 /* angle is how far around the axis to go (up to 360) */
 
-static void cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z, 
+static int cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z, 
     float length, float outer, float inner, int endcaps, int sang, int eang)
 {
+  int polys = 0;
   int a; /* current angle around cylinder */
   int b = 0; /* previous */
   int angle, norm, step, sangle;
@@ -342,6 +346,7 @@ static void cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z,
     glNormal3f(0, y2, z2);
     glVertex3f(xl,y2,z2);
     glVertex3f(x,y2,z2);
+    polys++;
     if (a == sangle && angle - sangle < ONEREV) {
       if (tube)
         glVertex3f(x, Y1, Z1);
@@ -353,6 +358,7 @@ static void cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z,
         glVertex3f(xl, Z1, Z1);
       else
         glVertex3f(xl, y, z);
+      polys++;
     }
     if (tube) {
       if (endcaps != 1) {
@@ -361,6 +367,7 @@ static void cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z,
         glVertex3f(x, y2, z2);
         glVertex3f(x, Y2, Z2);
         glVertex3f(x, Y1, Z1);
+        polys++;
       }
 
       glNormal3f(0, -Y1, -Z1); /* inner surface */
@@ -369,6 +376,7 @@ static void cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z,
       glNormal3f(0, -Y2, -Z2);
       glVertex3f(xl, Y2, Z2);
       glVertex3f(x, Y2, Z2);
+      polys++;
 
       if (endcaps != 2) {
         glNormal3f(1, 0, 0); /* right end */
@@ -376,6 +384,7 @@ static void cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z,
         glVertex3f(xl, y2, z2);
         glVertex3f(xl, Y2, Z2);
         glVertex3f(xl, Y1, Z1);
+        polys++;
       }
     }
 
@@ -398,6 +407,7 @@ static void cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z,
     glVertex3f(x, y1, z1);
     glVertex3f(xl, y1, z1);
     glVertex3f(xl, y, z);
+    polys++;
     glEnd();
   }
   if (endcaps) {
@@ -429,6 +439,7 @@ static void cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z,
           glVertex3f(x+ex,y, z);
           glVertex3f(x+ex,y1,z1);
           glVertex3f(x+ex,y2c[a],z2c[a]);
+          polys++;
         y1 = y2c[a]; z1 = z2c[a];
         b = a;
       }
@@ -437,12 +448,13 @@ static void cylinder (Engine *e, GLfloat x, GLfloat y, GLfloat z,
     }
   }
   glPopMatrix();
+  return polys;
 }
 
 /* this is just a convenience function to make a solid rod */
-static void rod (Engine *e, GLfloat x, GLfloat y, GLfloat z, float length, float diameter)
+static int rod (Engine *e, GLfloat x, GLfloat y, GLfloat z, float length, float diameter)
 {
-    cylinder(e, x, y, z, length, diameter, diameter, 3, 0, ONEREV);
+    return cylinder(e, x, y, z, length, diameter, diameter, 3, 0, ONEREV);
 }
 
 static GLvoid normal(GLfloat v1[], GLfloat v2[], GLfloat v3[], 
@@ -465,9 +477,10 @@ static GLvoid normal(GLfloat v1[], GLfloat v2[], GLfloat v3[],
 
 
 
-static void Rect(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h,
+static int Rect(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h,
             GLfloat t)
 {
+  int polys = 0;
   GLfloat yh;
   GLfloat xw;
   GLfloat zt;
@@ -480,66 +493,77 @@ static void Rect(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h,
     glVertex3f(x, yh, z);
     glVertex3f(xw, yh, z);
     glVertex3f(xw, y, z);
+    polys++;
   /* back */
     glNormal3f(0, 0, -1);
     glVertex3f(x, y, zt);
     glVertex3f(x, yh, zt);
     glVertex3f(xw, yh, zt);
     glVertex3f(xw, y, zt);
+    polys++;
   /* top */
     glNormal3f(0, 1, 0);
     glVertex3f(x, yh, z);
     glVertex3f(x, yh, zt);
     glVertex3f(xw, yh, zt);
     glVertex3f(xw, yh, z);
+    polys++;
   /* bottom */
     glNormal3f(0, -1, 0);
     glVertex3f(x, y, z);
     glVertex3f(x, y, zt);
     glVertex3f(xw, y, zt);
     glVertex3f(xw, y, z);
+    polys++;
   /* left */
     glNormal3f(-1, 0, 0);
     glVertex3f(x, y, z);
     glVertex3f(x, y, zt);
     glVertex3f(x, yh, zt);
     glVertex3f(x, yh, z);
+    polys++;
   /* right */
     glNormal3f(1, 0, 0);
     glVertex3f(xw, y, z);
     glVertex3f(xw, y, zt);
     glVertex3f(xw, yh, zt);
     glVertex3f(xw, yh, z);
+    polys++;
   glEnd();
+  return polys;
 }
 
-static void makepiston(Engine *e)
+static int makepiston(Engine *e)
 {
+  int polys = 0;
   GLfloat colour[] = {0.6, 0.6, 0.6, 1.0};
-  int i;
   
-  i = glGenLists(1);
-  glNewList(i, GL_COMPILE);
+  e->piston_list = glGenLists(1);
+  glNewList(e->piston_list, GL_COMPILE);
   glRotatef(90, 0, 0, 1);
   glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, colour);
   glMaterialfv(GL_FRONT, GL_SPECULAR, colour);
   glMateriali(GL_FRONT, GL_SHININESS, 20);
-  cylinder(e, 0, 0, 0, 2, 1, 0.7, 2, 0, ONEREV); /* body */
+  polys += cylinder(e, 0, 0, 0, 2, 1, 0.7, 2, 0, ONEREV); /* body */
   colour[0] = colour[1] = colour[2] = 0.2;
   glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, colour);
-  cylinder(e, 1.6, 0, 0, 0.1, 1.05, 1.05, 0, 0, ONEREV); /* ring */
-  cylinder(e, 1.8, 0, 0, 0.1, 1.05, 1.05, 0, 0, ONEREV); /* ring */
+  polys += cylinder(e, 1.6, 0, 0, 0.1, 1.05, 1.05, 0, 0, ONEREV); /* ring */
+  polys += cylinder(e, 1.8, 0, 0, 0.1, 1.05, 1.05, 0, 0, ONEREV); /* ring */
   glEndList();
+  return polys;
 }
 
-static void CrankBit(Engine *e, GLfloat x)
+static int CrankBit(Engine *e, GLfloat x)
 {
-  Rect(x, -1.4, 0.5, 0.2, 1.8, 1);
-  cylinder(e, x, -0.5, 0, 0.2, 2, 2, 1, 60, 120);
+  int polys = 0;
+  polys += Rect(x, -1.4, 0.5, 0.2, 1.8, 1);
+  polys += cylinder(e, x, -0.5, 0, 0.2, 2, 2, 1, 60, 120);
+  return polys;
 }
 
-static void boom(Engine *e, GLfloat x, GLfloat y, int s)
+static int boom(Engine *e, GLfloat x, GLfloat y, int s)
 {
+  int polys = 0;
   int flameOut = 720/ENG.speed/ENG.cylinders;
 
   if (e->boom_time == 0 && s) {
@@ -548,7 +572,7 @@ static void boom(Engine *e, GLfloat x, GLfloat y, int s)
     e->boom_time++;
     glEnable(GL_LIGHT1); 
   } else if (e->boom_time == 0 && !s) {
-    return;
+    return polys;
   } else if (e->boom_time >= 8 && e->boom_time < flameOut && !s) {
     e->boom_time++;
     e->boom_red[0] -= 0.2; e->boom_red[1] -= 0.1;
@@ -556,7 +580,7 @@ static void boom(Engine *e, GLfloat x, GLfloat y, int s)
   } else if (e->boom_time >= flameOut) {
     e->boom_time = 0;
     glDisable(GL_LIGHT1);
-    return;
+    return polys;
   } else {
     e->boom_red[0] += 0.2; e->boom_red[1] += 0.1;
     e->boom_d += 0.04;
@@ -575,13 +599,15 @@ static void boom(Engine *e, GLfloat x, GLfloat y, int s)
   glEnable(GL_BLEND);
   glDepthMask(GL_FALSE);
   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-  rod(e, x, y, 0, e->boom_d, e->boom_wd);
+  polys += rod(e, x, y, 0, e->boom_d, e->boom_wd);
   glDepthMask(GL_TRUE);
   glDisable(GL_BLEND);
+  return polys;
 }
 
-static void display(Engine *e)
+static int display(Engine *e)
 {
+  int polys = 0;
   GLfloat zb, yb;
   float rightSide;
   int half;
@@ -619,7 +645,8 @@ static void display(Engine *e)
 /* crankshaft */
   glPushMatrix();
   glRotatef(e->display_a, 1, 0, 0);
-  glCallList(1);
+  glCallList(e->shaft_list);
+  polys += e->shaft_polys;
   glPopMatrix();
 
   /* init the ln[] matrix for speed */
@@ -648,7 +675,8 @@ static void display(Engine *e)
        b = (e->display_a + ENG.pistonAngle[j+half]) % ONEREV;
        glPushMatrix();
        glTranslatef(e->crankWidth/2 + e->crankOffset*(j+half), e->yp[b]-0.3, 0);
-       glCallList(2);
+       glCallList(e->piston_list);
+        polys += e->piston_polys;
        glPopMatrix();
       }
     /* spark plugs */
@@ -657,14 +685,14 @@ static void display(Engine *e)
       glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red);
       for (j = 0; j < ENG.cylinders; j += sides) 
       {
-       cylinder(e, 8.5, -e->crankWidth/2-e->crankOffset*(j+half), 0, 
+        polys += cylinder(e, 8.5, -e->crankWidth/2-e->crankOffset*(j+half), 0, 
            0.5, 0.4, 0.3, 1, 0, ONEREV); 
       }
       glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, white);
       for (j = 0; j < ENG.cylinders; j += sides)
       {
-       rod(e, 8, -e->crankWidth/2-e->crankOffset*(j+half), 0, 0.5, 0.2); 
-       rod(e, 9, -e->crankWidth/2-e->crankOffset*(j+half), 0, 1, 0.15); 
+       polys += rod(e, 8, -e->crankWidth/2-e->crankOffset*(j+half), 0, 0.5, 0.2); 
+       polys += rod(e, 9, -e->crankWidth/2-e->crankOffset*(j+half), 0, 1, 0.15); 
       }   
 
      /* rod */
@@ -674,7 +702,7 @@ static void display(Engine *e)
          b = (e->display_a+HALFREV+ENG.pistonAngle[j+half]) % TWOREV; 
          glPushMatrix();
          glRotatef(e->ang[b], 0, 1, 0);
-         rod(e, 
+          polys += rod(e, 
               -e->cos_table[b],
               -e->crankWidth/2-e->crankOffset*(j+half),
               -e->sin_table[b], 
@@ -690,21 +718,21 @@ static void display(Engine *e)
       glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
       rightSide = (sides > 1) ? 0 : 1.6;
     /* left plate */
-      Rect(-e->crankWidth/2, -0.5,  1, 0.2, 9, 2);
+      polys += Rect(-e->crankWidth/2, -0.5,  1, 0.2, 9, 2);
     /* right plate */
-      Rect(0.3+e->crankOffset*ENG.cylinders-rightSide, -0.5, 1, 0.2, 9, 2);
+      polys += Rect(0.3+e->crankOffset*ENG.cylinders-rightSide, -0.5, 1, 0.2, 9, 2);
     /* head plate */
-      Rect(-e->crankWidth/2+0.2, 8.3, 1, 
+      polys += Rect(-e->crankWidth/2+0.2, 8.3, 1, 
            e->crankWidth/2+0.1+e->crankOffset*ENG.cylinders-rightSide, 0.2, 2);
     /* front rail */
-      Rect(-e->crankWidth/2+0.2, 3, 1, 
+      polys += Rect(-e->crankWidth/2+0.2, 3, 1, 
            e->crankWidth/2+0.1+e->crankOffset*ENG.cylinders-rightSide, 0.2, 0.2);
     /* back rail */
-      Rect(-e->crankWidth/2+0.2, 3, -1+0.2, 
+      polys += Rect(-e->crankWidth/2+0.2, 3, -1+0.2, 
            e->crankWidth/2+0.1+e->crankOffset*ENG.cylinders-rightSide, 0.2, 0.2);
     /* plates between cylinders */
       for (j=0; j < ENG.cylinders - (sides == 1); j += sides)
-       Rect(0.4+e->crankWidth+e->crankOffset*(j-half), 3, 1, 1, 5.3, 2);
+       polys += Rect(0.4+e->crankWidth+e->crankOffset*(j-half), 3, 1, 1, 5.3, 2);
       glDepthMask(GL_TRUE);
   }
   glPopMatrix();
@@ -718,7 +746,7 @@ static void display(Engine *e)
        if (j & 1) 
            glRotatef(ENG.includedAngle,1,0,0);
        glRotatef(90, 0, 0, 1); 
-       boom(e, 8, -e->crankWidth/2-e->crankOffset*j, 1); 
+       polys += boom(e, 8, -e->crankWidth/2-e->crankOffset*j, 1); 
        e->lastPlug = j;
        glPopMatrix();
     }
@@ -730,7 +758,7 @@ static void display(Engine *e)
     if (e->lastPlug & 1) 
       glRotatef(ENG.includedAngle, 1, 0, 0);
     glRotatef(90, 0, 0, 1); 
-    boom(e, 8, -e->crankWidth/2-e->crankOffset*e->lastPlug, 0); 
+    polys += boom(e, 8, -e->crankWidth/2-e->crankOffset*e->lastPlug, 0); 
   }
   glDisable(GL_BLEND);
 
@@ -739,29 +767,30 @@ static void display(Engine *e)
     e->display_a = 0;
   glPopMatrix();
   glFlush();
+  return polys;
 }
 
-static void makeshaft (Engine *e)
+static int makeshaft (Engine *e)
 {
-  int i;
+  int polys = 0;
   int j;
   float crankThick = 0.2;
   float crankDiam = 0.3;
 
-  i = glGenLists(1);
-  glNewList(i, GL_COMPILE);
+  e->shaft_list = glGenLists(1);
+  glNewList(e->shaft_list, GL_COMPILE);
 
   glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);
   /* draw the flywheel */
-  cylinder(e, -2.5, 0, 0, 1, 3, 2.5, 0, 0, ONEREV);
-  Rect(-2, -0.3, 2.8, 0.5, 0.6, 5.6);
-  Rect(-2, -2.8, 0.3, 0.5, 5.6, 0.6);
+  polys += cylinder(e, -2.5, 0, 0, 1, 3, 2.5, 0, 0, ONEREV);
+  polys += Rect(-2, -0.3, 2.8, 0.5, 0.6, 5.6);
+  polys += Rect(-2, -2.8, 0.3, 0.5, 5.6, 0.6);
 
   /* now make each of the shaft bits between the cranks, 
    * starting from the flywheel end which is at X-coord 0. 
    * the first cranskhaft bit is always 2 units long 
    */
-  rod(e, -2, 0, 0, 2, crankDiam);
+  polys += rod(e, -2, 0, 0, 2, crankDiam);
 
   /* Each crank is crankWidth units wide and the total width of a
    * cylinder assembly is 3.3 units. For inline engines, there is just
@@ -774,11 +803,11 @@ static void makeshaft (Engine *e)
   if (ENG.includedAngle != 0)
     e->crankOffset /= 2;
   for (j = 0; j < ENG.cylinders - 1; j++)
-    rod(e,
+    polys += rod(e,
         e->crankWidth - crankThick + e->crankOffset*j, 0, 0, 
        e->crankOffset - e->crankWidth + 2 * crankThick, crankDiam);
   /* the last bit connects to the engine wall on the non-flywheel end */
-  rod(e, e->crankWidth - crankThick + e->crankOffset*j, 0, 0, 0.9, crankDiam);
+  polys += rod(e, e->crankWidth - crankThick + e->crankOffset*j, 0, 0, 0.9, crankDiam);
 
 
   for (j = 0; j < ENG.cylinders; j++)
@@ -790,15 +819,16 @@ static void makeshaft (Engine *e)
         glRotatef(HALFREV+ENG.pistonAngle[j],1,0,0);
     /* draw wrist pin */
     glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);
-    rod(e, e->crankOffset*j, -1.0, 0.0, e->crankWidth, crankDiam);
+    polys += rod(e, e->crankOffset*j, -1.0, 0.0, e->crankWidth, crankDiam);
     glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green);
     /* draw right part of crank */
-    CrankBit(e, e->crankOffset*j); 
+    polys += CrankBit(e, e->crankOffset*j); 
     /* draw left part of crank */
-    CrankBit(e, e->crankWidth-crankThick+e->crankOffset*j);
+    polys += CrankBit(e, e->crankWidth-crankThick+e->crankOffset*j);
     glPopMatrix();
   }
   glEndList();
+  return polys;
 }
 
 
@@ -892,8 +922,8 @@ ENTRYPOINT void init_engine(ModeInfo *mi)
           (engines[e->engineType].includedAngle == 0 ? " Cylinder" : "")
           );
 
- makeshaft(e);
- makepiston(e);
e->shaft_polys = makeshaft(e);
e->piston_polys = makepiston(e);
  load_font (mi->dpy, "titleFont", &e->xfont, &e->font_dlist);
 }
 
@@ -950,13 +980,13 @@ ENTRYPOINT void draw_engine(ModeInfo *mi)
   glXMakeCurrent(disp, w, *(e->glx_context));
 
 
-  display(e);
+  mi->polygon_count = display(e);
 
   if (do_titles)
       print_gl_string (mi->dpy, e->xfont, e->font_dlist,
                        mi->xgwa.width, mi->xgwa.height,
                        10, mi->xgwa.height - 10,
-                       e->engine_name);
+                       e->engine_name, False);
 
   if(mi->fps_p) do_fps(mi);
   glFinish(); 
index bfbede02fbb2e263f86263ba0daad4546627e830..af794e5e203399690c04587ddc2546629a1a6dce 100644 (file)
@@ -51,8 +51,8 @@ Whether the object should wander around the screen.
 .B \-spin | \-no-spin
 Whether the object should spin.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-title | \-no-title
 Whether to display the name of the engine being rendered.
index 10d9b9cf6f794fb0fd1dacbc75895ddd67c34e31..e01d573604df66023706dcf69d2bbc8c3e7464c3 100644 (file)
@@ -43,8 +43,8 @@ The texture map to use.
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 229401de0e42e2d9991e809451fe368934f4b44d..ace3b88b1a239a76863b5722a0df5deaeb0dda5e 100644 (file)
@@ -1,5 +1,6 @@
 /* flipflop, Copyright (c) 2003 Kevin Ogden <kogden1@hotmail.com>
  *                     (c) 2006 Sergio Gutiérrez "Sergut" <sergut@gmail.com>
+ *                     (c) 2008 Andrew Galante <a.drew7@gmail.com>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
  *                                   from the command line: size of the board, 
  *                                   rotation speed and number of free squares; also
  *                                   added the "sticks" mode.
+ * 2008 Andrew Galante               Added -textured option: textures the board with
+ *                                   an image which gets scrambled as the tiles move
  *
  */
 
-#define DEF_FLIPFLOP_MODE  "tiles" /* Default mode (options: "tiles", "sticks") */
-#define DEF_BOARD_X_SIZE   "9"     /* Default width of the board */
-#define DEF_BOARD_Y_SIZE   "9"     /* Default length of the board */
+#define DEF_MODE  "tiles" /* Default mode (options: "tiles", "sticks") */
+#define DEF_SIZEX   "9"     /* Default width of the board */
+#define DEF_SIZEY   "9"     /* Default length of the board */
 
 #define DEF_BOARD_SIZE     "0"     /* "0" means "no value selected by user". It is changed */ 
 #define DEF_NUMSQUARES     "0"     /* in function init_flipflop() to its correct value (that */ 
@@ -28,6 +31,8 @@
 
 #define DEF_SPIN           "0.1"   /* Default angular velocity: PI/10 rads/s    */
 
+#define DEF_TEXTURED       "False" /* Default: do not grab an image for texturing */
+
 #define DEF_STICK_THICK   54       /* Thickness for the sticks mode (over 100)  */
 #define DEF_STICK_RATIO   80       /* Ratio of sticks/total squares (over 100)  */
 #define DEF_TILE_THICK     4       /* Thickness for the tiles mode (over 100)   */
@@ -57,11 +62,13 @@ static XrmOptionDescRec opts[] = {
     {"-tiles",          ".mode",            XrmoptionNoArg,  "tiles" },
     {"-mode",           ".mode",            XrmoptionSepArg, 0       },
     {"-size",           ".size",            XrmoptionSepArg, 0       },
-    {"-size-x",         ".size_x",          XrmoptionSepArg, 0       },
-    {"-size-y",         ".size_y",          XrmoptionSepArg, 0       },
+    {"-size-x",         ".sizex",           XrmoptionSepArg, 0       },
+    {"-size-y",         ".sizey",           XrmoptionSepArg, 0       },
     {"-count",          ".numsquares",      XrmoptionSepArg, 0       },
     {"-free",           ".freesquares",     XrmoptionSepArg, 0       },
     {"-spin",           ".spin",            XrmoptionSepArg, 0       },
+    {"-texture",        ".textured",        XrmoptionNoArg,  "True"  },
+    {"+texture",        ".textured",        XrmoptionNoArg,  "False" },
 };
 
 static int wire, clearbits;
@@ -70,15 +77,17 @@ static int numsquares, freesquares;
 static float half_thick;
 static float spin;
 static char* flipflopmode_str="tiles";
+static int textured;
 
 static argtype vars[] = {
-    { &flipflopmode_str, "mode",        "Mode",     DEF_FLIPFLOP_MODE,  t_String},
+    { &flipflopmode_str, "mode",        "Mode",     DEF_MODE,  t_String},
     { &board_avg_size,   "size",        "Integer",  DEF_BOARD_SIZE,     t_Int},
-    { &board_x_size,     "size_x",      "Integer",  DEF_BOARD_X_SIZE,   t_Int},
-    { &board_y_size,     "size_y",      "Integer",  DEF_BOARD_Y_SIZE,   t_Int},
+    { &board_x_size,     "sizex",       "Integer",  DEF_SIZEX,   t_Int},
+    { &board_y_size,     "sizey",       "Integer",  DEF_SIZEY,   t_Int},
     { &numsquares,       "numsquares",  "Integer",  DEF_NUMSQUARES,     t_Int},
     { &freesquares,      "freesquares", "Integer",  DEF_NUMSQUARES,     t_Int},
     { &spin,             "spin",        "Float",    DEF_SPIN,           t_Float},
+    { &textured,         "textured",    "Bool",     DEF_TEXTURED,       t_Bool},
 };
 
 ENTRYPOINT ModeSpecOpt flipflop_opts = {countof(opts), opts, countof(vars), vars, NULL};
@@ -111,7 +120,13 @@ typedef struct {
     /* eg. color[ 5*3 + 2 ] is the blue  component of square 5 */
     /*            ^-- n is the number of square */
     float *color; /* size: numsquares * 3 */
-} randsheet;   
+    /* array of texcoords for each square */
+    /* tex[ n*4 + 0 ] is x texture coordinate of square n's left side */
+    /* tex[ n*4 + 1 ] is y texture coordinate of square n's top side */
+    /* tex[ n*4 + 2 ] is x texture coordinate of square n's right side */
+    /* tex[ n*4 + 3 ] is y texture coordinate of square n's bottom side */
+    float *tex; /* size: numsquares * 4 */
+} randsheet;
 
 typedef struct {
     GLXContext *glx_context;
@@ -119,27 +134,43 @@ typedef struct {
     trackball_state *trackball;
     Bool button_down_p;
 
-       randsheet *sheet;
+    randsheet *sheet;
 
     float theta;      /* angle of rotation of the board                */
     float flipspeed;  /* amount of flip;  1 is a entire flip           */
     float reldist;    /* relative distace of camera from center        */
     float energy;     /* likelyhood that a square will attempt to move */
 
+    /* texture rectangle */
+    float tex_x;
+    float tex_y;
+    float tex_width;
+    float tex_height;
+
+    /* id of texture in use */
+    GLuint texid;
+
+    Bool mipmap;
+    Bool got_texture;
+
+    GLfloat anisotropic;
+
 } Flipflopcreen;
 
 static Flipflopcreen *qs = NULL;
 
+#include "grab-ximage.h"
+
 static void randsheet_create( randsheet *rs );
 static void randsheet_initialize( randsheet *rs );
 static void randsheet_free( randsheet *rs );
 static int  randsheet_new_move( randsheet* rs );
 static void randsheet_move( randsheet *rs, float rot );
-static void randsheet_draw( randsheet *rs );
+static int randsheet_draw( randsheet *rs );
 static void setup_lights(void);
-static void drawBoard(Flipflopcreen *);
-static void display(Flipflopcreen *c);
-static void draw_sheet(void);
+static int drawBoard(Flipflopcreen *);
+static int display(Flipflopcreen *c);
+static int draw_sheet(float *tex);
 
 
 /* configure lighting */
@@ -205,7 +236,7 @@ flipflop_handle_event (ModeInfo *mi, XEvent *event)
 }
 
 /* draw board */
-static void
+static int
 drawBoard(Flipflopcreen *c)
 {
     int i;
@@ -213,14 +244,15 @@ drawBoard(Flipflopcreen *c)
         randsheet_new_move( c->sheet );
        }
     randsheet_move( c->sheet, c->flipspeed * 3.14159 );
-    randsheet_draw( c->sheet );
+    return randsheet_draw( c->sheet );
 }
 
 
-static void
+static int
 display(Flipflopcreen *c)
 {
     GLfloat amb[] = { 0.8, 0.8, 0.8, 1.0 };
+    int polys = 0;
 
 
     glClear(clearbits);
@@ -240,12 +272,17 @@ display(Flipflopcreen *c)
     glRotatef(c->theta*100, 0.0, 1.0, 0.0);
     glTranslatef(-0.5*board_x_size, 0.0, -0.5*board_y_size); /* Center the board */
 
-    drawBoard(c);
+    /* set texture */
+    if(textured)
+      glBindTexture(GL_TEXTURE_2D, c->texid);
+
+    polys = drawBoard(c);
 
     if (!c->button_down_p) {
         c->theta += .01 * spin;
-       }
+    }
 
+    return polys;
 }
 
 ENTRYPOINT void
@@ -259,44 +296,103 @@ reshape_flipflop(ModeInfo *mi, int width, int height)
     glMatrixMode(GL_MODELVIEW);
 }
 
+static void
+image_loaded_cb (const char *filename, XRectangle *geometry,
+                 int image_width, int image_height, 
+                 int texture_width, int texture_height,
+                 void *closure)
+{
+    Flipflopcreen *c = (Flipflopcreen *)closure;
+    int i, j;
+    int index = 0;
+    randsheet *rs = c->sheet;
+
+    c->tex_x = (float)geometry->x / (float)texture_width;
+    c->tex_y = (float)geometry->y / (float)texture_height;
+    c->tex_width = (float)geometry->width / (float)texture_width; 
+    c->tex_height = (float)geometry->height / (float)texture_height;
+
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+        (c->mipmap ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR));
+
+    if(c->anisotropic >= 1)
+        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, c->anisotropic);
+
+    glEnable(GL_TEXTURE_2D);
+    glEnable(GL_BLEND);
+    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+    for(i = 0; i < board_x_size && index < numsquares; i++)
+        for(j = 0; j < board_y_size && index < numsquares; j++)
+        {
+            /* arrange squares to form loaded image */
+            rs->tex[ index*4 + 0 ] = c->tex_x + c->tex_width  / board_x_size * (i + 0);
+            rs->tex[ index*4 + 1 ] = c->tex_y + c->tex_height / board_y_size * (j + 1);
+            rs->tex[ index*4 + 2 ] = c->tex_x + c->tex_width  / board_x_size * (i + 1);
+            rs->tex[ index*4 + 3 ] = c->tex_y + c->tex_height / board_y_size * (j + 0);
+            rs->color[ index*3 + 0 ] = 1;
+            rs->color[ index*3 + 1 ] = 1;
+            rs->color[ index*3 + 2 ] = 1;
+            index++;
+        }
+
+    c->got_texture = True;
+}
+
+static void
+get_texture(ModeInfo *modeinfo)
+{
+    Flipflopcreen *c = &qs[MI_SCREEN(modeinfo)];
+
+    c->got_texture = False;
+    c->mipmap = True;
+    load_texture_async (modeinfo->xgwa.screen, modeinfo->window,
+                      *c->glx_context, 0, 0, c->mipmap, c->texid,
+                      image_loaded_cb, c);
+}
+
 ENTRYPOINT void
 init_flipflop(ModeInfo *mi)
 {
-       int screen; 
+    int screen; 
     Flipflopcreen *c;
 
-       /* Set all constants to their correct values */
-       if (board_avg_size != 0) {  /* general size specified by user */
-               board_x_size = board_avg_size;
-               board_y_size = board_avg_size;
-       } else {
-               board_avg_size = (board_x_size + board_y_size) / 2;
-       }
-       if ((numsquares == 0) && (freesquares != 0)) {
-               numsquares = board_x_size * board_y_size - freesquares; 
-       }
-       if (strcmp(flipflopmode_str, "tiles")) {
-               half_thick = 1.0 * DEF_STICK_THICK / 100.0; 
-               if (numsquares == 0) {  /* No value defined by user */
-                       numsquares = board_x_size * board_y_size * DEF_STICK_RATIO / 100;
-               }
-       } else {
-               half_thick = 1.0 * DEF_TILE_THICK / 100.0; 
-               if (numsquares == 0) {  /* No value defined by user */
-                       numsquares = board_x_size * board_y_size * DEF_TILE_RATIO/ 100;;
-               }
-       }
-       if (board_avg_size < 2) {
-               fprintf (stderr,"%s: the board must be at least 2x2.\n", progname);
-               exit(1);
-       }
-       if ((board_x_size < 1) || (board_y_size < 1) || (numsquares < 1)) {
-               fprintf (stderr,"%s: the number of elements ('-count') and the dimensions of the board ('-size-x', '-size-y') must be positive integers.\n", progname);
-               exit(1);
-       }
-       if (board_x_size * board_y_size <= numsquares) {
-               fprintf (stderr,"%s: the number of elements ('-count') that you specified is too big \n for the dimensions of the board ('-size-x', '-size-y'). Nothing will move.\n", progname);
-       }
+    if (MI_IS_WIREFRAME(mi)) textured = 0;
+
+    /* Set all constants to their correct values */
+    if (board_avg_size != 0) {  /* general size specified by user */
+        board_x_size = board_avg_size;
+        board_y_size = board_avg_size;
+    } else {
+        board_avg_size = (board_x_size + board_y_size) / 2;
+    }
+    if ((numsquares == 0) && (freesquares != 0)) {
+        numsquares = board_x_size * board_y_size - freesquares; 
+    }
+    if (strcmp(flipflopmode_str, "tiles")) {
+      textured = 0;  /* textures look dumb in stick mode */
+        half_thick = 1.0 * DEF_STICK_THICK / 100.0; 
+        if (numsquares == 0) {  /* No value defined by user */
+            numsquares = board_x_size * board_y_size * DEF_STICK_RATIO / 100;
+        }
+    } else {
+        half_thick = 1.0 * DEF_TILE_THICK / 100.0; 
+        if (numsquares == 0) {  /* No value defined by user */
+            numsquares = board_x_size * board_y_size * DEF_TILE_RATIO/ 100;;
+        }
+    }
+    if (board_avg_size < 2) {
+        fprintf (stderr,"%s: the board must be at least 2x2.\n", progname);
+        exit(1);
+    }
+    if ((board_x_size < 1) || (board_y_size < 1) ||    (numsquares < 1)) {
+        fprintf (stderr,"%s: the number of elements ('-count') and the dimensions of the board ('-size-x', '-size-y') must be positive integers.\n", progname);
+        exit(1);
+    }
+    if (board_x_size * board_y_size <= numsquares) {
+        fprintf (stderr,"%s: the number of elements ('-count') that you specified is too big \n for the dimensions of the board ('-size-x', '-size-y'). Nothing will move.\n", progname);
+    }
 
     screen = MI_SCREEN(mi);
     wire = MI_IS_WIREFRAME(mi);
@@ -335,7 +431,20 @@ init_flipflop(ModeInfo *mi)
     clearbits |= GL_DEPTH_BUFFER_BIT;
     glEnable(GL_CULL_FACE);
     glCullFace(GL_BACK);
+
     randsheet_initialize( c->sheet );
+    if( textured ){
+        /* check for anisotropic filtering */
+        if(strstr((char *)glGetString(GL_EXTENSIONS),
+            "GL_EXT_texture_filter_anisotropic"))
+            glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &c->anisotropic);
+        else
+            c->anisotropic = 0;
+
+        /* allocate a new texture and get it */
+        glGenTextures(1, &c->texid);
+        get_texture(mi);
+    }
 }
 
 ENTRYPOINT void
@@ -345,12 +454,12 @@ draw_flipflop(ModeInfo *mi)
     Window w = MI_WINDOW(mi);
     Display *disp = MI_DISPLAY(mi);
 
-    if(!c->glx_context)
+    if(!c->glx_context || (textured && !c->got_texture))
         return;
 
     glXMakeCurrent(disp, w, *(c->glx_context));
 
-    display(c);
+    mi->polygon_count = display(c);
 
     if(mi->fps_p){
         do_fps(mi);
@@ -388,50 +497,83 @@ release_flipflop(ModeInfo *mi)
 
 /*** ADDED RANDSHEET FUNCTIONS ***/
 
-static void
-draw_sheet(void)
+static int
+draw_sheet(float *tex)
 {
+    int polys = 0;
     glBegin( wire ? GL_LINE_LOOP : GL_QUADS );
 
     glNormal3f( 0, -1, 0 );
+    glTexCoord2f(tex[0], tex[3]);
     glVertex3f( half_thick,  -half_thick,  half_thick );
+    glTexCoord2f(tex[2], tex[3]);
     glVertex3f( 1-half_thick,   -half_thick, half_thick );
+    glTexCoord2f(tex[2], tex[1]);
     glVertex3f( 1-half_thick, -half_thick,  1-half_thick);
+    glTexCoord2f(tex[0], tex[1]);
     glVertex3f( half_thick, -half_thick, 1-half_thick );
+    polys++;
 
     if (wire) { glEnd(); glBegin (GL_LINE_LOOP); }
 
     /* back */
     glNormal3f( 0, 1, 0 );
+    glTexCoord2f(tex[0], tex[1]);
     glVertex3f( half_thick, half_thick, 1-half_thick );
+    glTexCoord2f(tex[2], tex[1]);
     glVertex3f( 1-half_thick, half_thick,  1-half_thick);
+    glTexCoord2f(tex[2], tex[3]);
     glVertex3f( 1-half_thick,   half_thick, half_thick );
+    glTexCoord2f(tex[0], tex[3]);
     glVertex3f( half_thick,  half_thick,  half_thick );
+    polys++;
 
-    if (wire) { glEnd(); return; }
+    if (wire) { glEnd(); return polys; }
 
     /* 4 edges!!! weee.... */
     glNormal3f( 0, 0, -1 );
+    glTexCoord2f(tex[0], tex[3]);
     glVertex3f( half_thick, half_thick, half_thick );
+    glTexCoord2f(tex[2], tex[3]);
     glVertex3f( 1-half_thick, half_thick, half_thick );
+    glTexCoord2f(tex[2], tex[3]);
     glVertex3f( 1-half_thick, -half_thick, half_thick );
+    glTexCoord2f(tex[0], tex[3]);
     glVertex3f( half_thick, -half_thick, half_thick );
+    polys++;
     glNormal3f( 0, 0, 1 );
+    glTexCoord2f(tex[0], tex[1]);
     glVertex3f( half_thick, half_thick, 1-half_thick );
+    glTexCoord2f(tex[0], tex[1]);
     glVertex3f( half_thick, -half_thick, 1-half_thick );
+    glTexCoord2f(tex[2], tex[1]);
     glVertex3f( 1-half_thick, -half_thick, 1-half_thick );
+    glTexCoord2f(tex[2], tex[1]);
     glVertex3f( 1-half_thick, half_thick, 1-half_thick );
+    polys++;
     glNormal3f( 1, 0, 0 );
+    glTexCoord2f(tex[2], tex[1]);
     glVertex3f( 1-half_thick, half_thick, 1-half_thick );
+    glTexCoord2f(tex[2], tex[1]);
     glVertex3f( 1-half_thick, -half_thick, 1-half_thick );
+    glTexCoord2f(tex[2], tex[3]);
     glVertex3f( 1-half_thick, -half_thick, half_thick );
+    glTexCoord2f(tex[2], tex[3]);
     glVertex3f( 1-half_thick, half_thick, half_thick );
+    polys++;
     glNormal3f( -1, 0, 0 );
+    glTexCoord2f(tex[0], tex[1]);
     glVertex3f( half_thick, half_thick, 1-half_thick );
+    glTexCoord2f(tex[0], tex[3]);
     glVertex3f( half_thick, half_thick, half_thick );
+    glTexCoord2f(tex[0], tex[3]);
     glVertex3f( half_thick, -half_thick, half_thick );
+    glTexCoord2f(tex[0], tex[1]);
     glVertex3f( half_thick, -half_thick, 1-half_thick );
+    polys++;
     glEnd();
+
+    return polys;
 }
 
 /* Reserve memory for the randsheet */
@@ -444,6 +586,7 @@ randsheet_create( randsheet *rs )
        rs -> direction = (int*) malloc(numsquares * sizeof(int));
        rs -> angle     = (float*) malloc(numsquares * sizeof(float));
        rs -> color     = (float*) malloc(numsquares*3 * sizeof(float));
+       rs -> tex       = (float*) malloc(numsquares*4 * sizeof(float));
 }
 
 /* Free reserved memory for the randsheet */
@@ -456,6 +599,7 @@ randsheet_free( randsheet *rs )
        free(rs->direction);
        free(rs->angle);
        free(rs->color);
+       free(rs->tex);
 }
 
 static void
@@ -474,10 +618,10 @@ randsheet_initialize( randsheet *rs )
                             rs->occupied[ i * board_y_size + j ] = index;
                             rs->xpos[ index ] = i;
                             rs->ypos[ index ] = j;
-                            /* have the square colors start out as a pattern */
-                            rs->color[ index*3 + 0 ] = ((i+j)%3 == 0)||((i+j+1)%3 == 0);
-                            rs->color[ index*3 + 1 ] = ((i+j+1)%3 == 0);
-                            rs->color[ index*3 + 2 ] = ((i+j+2)%3 == 0);
+                                                       /* have the square colors start out as a pattern */
+                                                       rs->color[ index*3 + 0 ] = ((i+j)%3 == 0)||((i+j+1)%3 == 0);
+                                                       rs->color[ index*3 + 1 ] = ((i+j+1)%3 == 0);
+                                                       rs->color[ index*3 + 2 ] = ((i+j+2)%3 == 0);
                             index++;
                         }
                     /* leave everything else empty*/
@@ -586,6 +730,7 @@ static void
 randsheet_move( randsheet *rs, float rot )
 {
     int i, j, index;
+    float tmp;
     for( index = 0 ; index < numsquares; index++ )
         {
             i = rs->xpos[ index ];
@@ -597,6 +742,12 @@ randsheet_move( randsheet *rs, float rot )
                     break;
                 case 1:
                     /* move up in x */
+                    if( textured && rs->angle[ index ] == 0 )
+                        {
+                            tmp = rs->tex[ index * 4 + 0 ];
+                            rs->tex[ index * 4 + 0 ] = rs->tex[ index * 4 + 2 ];
+                            rs->tex[ index * 4 + 2 ] = tmp;
+                        }
                     rs->angle[ index ] += rot;
                     /* check to see if we have finished moving */
                     if( rs->angle[ index ] >= M_PI  )
@@ -608,6 +759,12 @@ randsheet_move( randsheet *rs, float rot )
                     break;
                 case 2:
                     /* move up in y */
+                    if( textured && rs->angle[ index ] == 0 )
+                        {
+                            tmp = rs->tex[ index * 4 + 1 ];
+                            rs->tex[ index * 4 + 1 ] = rs->tex[ index * 4 + 3 ];
+                            rs->tex[ index * 4 + 3 ] = tmp;
+                        }
                     rs->angle[ index ] += rot;
                     /* check to see if we have finished moving */
                     if( rs->angle[ index ] >= M_PI  )
@@ -626,10 +783,16 @@ randsheet_move( randsheet *rs, float rot )
                             rs->xpos[ index ] -= 1;
                             rs->direction[ index ] = 0;
                             rs->angle[ index ] = 0;
+                            if( textured )
+                            {
+                                                           tmp = rs->tex[ index * 4 + 0 ];
+                                                           rs->tex[ index * 4 + 0 ] = rs->tex[ index * 4 + 2 ];
+                                                           rs->tex[ index * 4 + 2 ] = tmp;
+                            }
                         }
                     break;
                 case 4:
-                    /* up in x */
+                    /* down in y */
                     rs->angle[ index ] += rot;
                     /* check to see if we have finished moving */
                     if( rs->angle[ index ] >= M_PI  )
@@ -637,6 +800,12 @@ randsheet_move( randsheet *rs, float rot )
                             rs->ypos[ index ] -= 1;
                             rs->direction[ index ] = 0;
                             rs->angle[ index ] = 0;
+                            if( textured )
+                            {
+                                tmp = rs->tex[ index * 4 + 1 ];
+                                rs->tex[ index * 4 + 1 ] = rs->tex[ index * 4 + 3 ];
+                                rs->tex[ index * 4 + 3 ] = tmp;
+                            }
                         }
                     break;
                 default:
@@ -647,11 +816,12 @@ randsheet_move( randsheet *rs, float rot )
 
 
 /* draw all the moving squares  */
-static void
+static int
 randsheet_draw( randsheet *rs )
 {
-    int i, j;
+    int i, j, polys = 0;
     int index;
+
     /* for all moving squares ... */
     for( index = 0; index < numsquares; index++ )
         {
@@ -692,14 +862,15 @@ randsheet_draw( randsheet *rs )
                 default:
                     break;
                 }
-            draw_sheet();
+            polys += draw_sheet( rs->tex + index*4 );
             glPopMatrix();
 
         }
+    return polys;
 }
 
 /**** END RANDSHEET_BAK FUNCTIONS ***/
 
-XSCREENSAVER_MODULE ("Flipflop", flipflop)
+XSCREENSAVER_MODULE ("FlipFlop", flipflop)
 
 #endif /* USE_GL */
index e3b1d2a0aa4b1d2e69a6efe362da3b1f5130ad87..17691bce8490caad9dff8ac1aad7eee37d14a17d 100644 (file)
@@ -15,6 +15,7 @@ flipflop - draws a grid of 3D squares that change positions
 [\-delay \fInumber\fP]
 [\-wireframe]
 [\-fps]
+[\-texture]
 .SH DESCRIPTION
 Flipflop draws a grid of 3D colored tiles that change positions with 
 each other.
@@ -61,11 +62,14 @@ Draw flipping tiles. This is the default.
 .B \-delay \fInumber\fP
 Per-frame delay, in microseconds.  Default: 20000 (0.02 seconds.).
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps | \-no\-fps
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-wireframe
 Only draw outlines.
+.TP 8
+.B \-texture | \-no\-texture
+Whether to texture the tiles with a screen grab or an image.
 .SH ENVIRONMENT
 .PP
 .TP 8
index ecdd37d7aae29eb5e9171955dff7d2f4baed9f4e..92c0fa0dc5da99748e368b578479b7f1cfc9d504 100644 (file)
@@ -42,6 +42,7 @@
 #  define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
 # endif
 
+#define DEF_ROTATE "True"
 static int rotate;
 
 #define QW 12
@@ -58,7 +59,7 @@ static XrmOptionDescRec opts[] = {
 
 
 static argtype vars[] = {
-  {&rotate, "rotate", "Rotate", "True", t_Bool},
+  {&rotate, "rotate", "Rotate", DEF_ROTATE, t_Bool},
 };
 
 
index 6dcc168cedb5b5349473e3433da2e50ed53d8ba6..fecd005b4148900d0e7b57a020000af6224612dd 100644 (file)
@@ -35,8 +35,8 @@ Whether to rotate.
 .B \-wireframe
 Just render boxes instead of textures (for debugging).
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 25dd84c7624f1f7627fedecb0fa48d0ff44df346..58241a686e5517d015ef8194ab9a5db1b61fbefa 100644 (file)
@@ -72,7 +72,7 @@
 #define DEF_LINES      "8"
 #define DEF_FONT_SIZE  "20"
 #define DEF_COLUMNS    "80"
-#define DEF_ALIGN      "random"
+#define DEF_ALIGNMENT  "random"
 #define DEF_SPEED       "1.0"
 #define TAB_WIDTH        8
 
@@ -164,7 +164,7 @@ static argtype vars[] = {
   {&max_lines,      "lines",     "Integer",    DEF_LINES,     t_Int},
   {&font_size,      "fontSize",  "Float",      DEF_FONT_SIZE, t_Float},
   {&target_columns, "columns",   "Integer",    DEF_COLUMNS,   t_Int},
-  {&alignment_str,  "alignment", "Alignment",  DEF_ALIGN,     t_String},
+  {&alignment_str,  "alignment", "Alignment",  DEF_ALIGNMENT, t_String},
   {&speed,         "speed",     "Speed",      DEF_SPEED,     t_Float},
 };
 
index d4c18524c3c96f7ac6b30fb22dd33f1c6bbf9145..8d2915efa5792fa236b4d3b494620e265f7722f5 100644 (file)
@@ -78,9 +78,7 @@ the \fI\-size\fP or \fI\-columns\fP options.
 Default: -*-utopia-bold-r-normal-*-*-720-*-*-*-*-iso8859-1
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index c95b3427201dead11fcbb137c5a2285217e33968..fbc4930f43dc2cb6348c4393651c4ab3fb1f8447 100644 (file)
@@ -30,8 +30,8 @@ Select a preset (classic, fire, water, psychedelic, rgb, binary, random, insane)
 power)
 
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .SH ENVIRONMENT
 .PP
index bf58cf9eb41b61e6e0828d4f6f6cc96e21af009e..dbe5d5a96079f2de16bd07bb0260deb6e467c6d3 100644 (file)
@@ -47,8 +47,8 @@ Turn off texture mapping (for slow machines.)
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
diff --git a/hacks/glx/fps-gl.c b/hacks/glx/fps-gl.c
new file mode 100644 (file)
index 0000000..59032aa
--- /dev/null
@@ -0,0 +1,113 @@
+/* fps, Copyright (c) 2001-2008 Jamie Zawinski <jwz@jwz.org>
+ * Draw a frames-per-second display (Xlib and OpenGL).
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation.  No representations are made about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or 
+ * implied warranty.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#ifdef HAVE_COCOA
+# include "jwxyz.h"
+# include <OpenGL/gl.h>
+# include <OpenGL/glu.h>
+# include <AGL/agl.h>
+#else /* !HAVE_COCOA -- real Xlib */
+# include <GL/glx.h>
+# include <GL/glu.h>
+#endif /* !HAVE_COCOA */
+
+#include "xlockmoreI.h"
+#include "fpsI.h"
+#include "glxfonts.h"
+
+/* These are in xlock-gl.c */
+extern void clear_gl_error (void);
+extern void check_gl_error (const char *type);
+
+
+static void
+xlockmore_gl_fps_init (fps_state *st)
+{
+  XFontStruct *f = st->font;
+  int first = f->min_char_or_byte2;
+  int last  = f->max_char_or_byte2;
+
+  clear_gl_error ();
+  st->font_dlist = glGenLists ((GLuint) last+1);
+  check_gl_error ("glGenLists");
+
+# ifndef HAVE_COCOA
+
+  glXUseXFont (f->fid, first, last-first+1, st->font_dlist + first);
+  check_gl_error ("glXUseXFont");
+
+# else  /* HAVE_COCOA */
+  {
+    AGLContext ctx = aglGetCurrentContext();
+    int afid, face, size;
+    afid = jwxyz_font_info (f->fid, &size, &face);
+
+    if (! aglUseFont (ctx, afid, face, size, 
+                      first, last-first+1, st->font_dlist + first)) {
+      check_gl_error ("aglUseFont");
+      abort();
+    }
+  }
+# endif  /* HAVE_COCOA */
+}
+
+
+
+/* Callback in xscreensaver_function_table, via xlockmore.c.
+ */
+void
+xlockmore_gl_compute_fps (Display *dpy, Window w, fps_state *fpst, 
+                          void *closure)
+{
+  ModeInfo *mi = (ModeInfo *) closure;
+  if (! mi->fpst)
+    {
+      mi->fpst = fpst;
+      xlockmore_gl_fps_init (fpst);
+    }
+
+  fps_compute (fpst, mi->polygon_count);
+}
+
+
+/* Called directly from GL programs (as `do_fps') before swapping buffers.
+ */
+void
+xlockmore_gl_draw_fps (ModeInfo *mi)
+{
+  fps_state *st = mi->fpst;
+  if (st)   /* might be too early */
+    {
+      XWindowAttributes xgwa;
+      int lines = 1;
+      const char *s;
+      int lh = st->font->ascent + st->font->descent;
+      int y = st->y;
+
+      XGetWindowAttributes (st->dpy, st->window, &xgwa);
+      for (s = st->string; *s; s++) 
+        if (*s == '\n') lines++;
+
+      if (y < 0)
+        y = xgwa.height + y - lines*lh;
+      y += lines*lh + st->font->descent;
+
+      glColor3f (1, 1, 1);
+      print_gl_string (st->dpy, st->font, st->font_dlist, 
+                       xgwa.width, xgwa.height,
+                       st->x, y, st->string, st->clear_p);
+    }
+}
diff --git a/hacks/glx/fps.c b/hacks/glx/fps.c
deleted file mode 100644 (file)
index 6e9f0e7..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-/* fps, Copyright (c) 2001-2007 Jamie Zawinski <jwz@jwz.org>
- * Utility function to draw a frames-per-second display.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation.  No representations are made about the suitability of this
- * software for any purpose.  It is provided "as is" without express or 
- * implied warranty.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#include "xlockmoreI.h"
-
-#ifdef HAVE_COCOA
-# undef usleep /* conflicts with 10.5 headers... */
-# include <OpenGL/gl.h>
-# include <OpenGL/glu.h>
-# include <AGL/agl.h>
-#else /* !HAVE_COCOA -- real Xlib */
-# include <GL/gl.h>
-# include <GL/glu.h>
-# include <GL/glx.h>
-#endif /* !HAVE_COCOA */
-
-#undef DEBUG  /* Defining this causes check_gl_error() to be called inside
-                 time-critical sections, which could slow things down (since
-                 it might result in a round-trip, and stall of the pipeline.)
-               */
-
-extern void clear_gl_error (void);
-extern void check_gl_error (const char *type);
-
-extern GLfloat fps_1 (ModeInfo *mi);
-extern void    fps_2 (ModeInfo *mi);
-extern void    do_fps (ModeInfo *mi);
-extern void    fps_free (ModeInfo *mi);
-
-struct fps_state {
-  int x, y;
-  int ascent, descent;
-  GLuint font_dlist;
-  Bool clear_p;
-  char string[1024];
-
-  int last_ifps;
-  GLfloat last_fps;
-  int frame_count;
-  struct timeval prev, now;
-};
-
-
-static void
-fps_init (ModeInfo *mi)
-{
-  struct fps_state *st = mi->fps_state;
-
-  if (st) free (st);
-  st = (struct fps_state *) calloc (1, sizeof(*st));
-  mi->fps_state = st;
-
-  st->clear_p = get_boolean_resource (mi->dpy, "fpsSolid", "FPSSolid");
-
-# ifndef HAVE_COCOA /* Xlib version */
-  {
-    const char *font;
-    XFontStruct *f;
-    Font id;
-    int first, last;
-
-    font = get_string_resource (mi->dpy, "fpsFont", "Font");
-
-    if (!font) font = "-*-courier-bold-r-normal-*-180-*";
-    f = XLoadQueryFont (mi->dpy, font);
-    if (!f) f = XLoadQueryFont (mi->dpy, "fixed");
-
-    id = f->fid;
-    first = f->min_char_or_byte2;
-    last = f->max_char_or_byte2;
-  
-    clear_gl_error ();
-    st->font_dlist = glGenLists ((GLuint) last+1);
-    check_gl_error ("glGenLists");
-
-    st->ascent = f->ascent;
-    st->descent = f->descent;
-
-    glXUseXFont (id, first, last-first+1, st->font_dlist + first);
-    check_gl_error ("glXUseXFont");
-  }
-
-# else  /* HAVE_COCOA */
-
-  {
-    AGLContext ctx = aglGetCurrentContext();
-    GLint id    = 0;   /* 0 = system font; 1 = application font */
-    Style face  = 1;   /* 0 = plain; 1=B; 2=I; 3=BI; 4=U; 5=UB; etc. */
-    GLint size  = 24;
-    GLint first = 32;
-    GLint last  = 255;
-
-    st->ascent  = size * 0.9;
-    st->descent = size - st->ascent;
-
-    clear_gl_error ();
-    st->font_dlist = glGenLists ((GLuint) last+1);
-    check_gl_error ("glGenLists");
-
-    if (! aglUseFont (ctx, id, face, size, 
-                      first, last-first+1, st->font_dlist + first)) {
-      check_gl_error ("aglUseFont");
-      abort();
-    }
-  }
-
-# endif  /* HAVE_COCOA */
-
-  st->x = 10;
-  st->y = 10;
-  if (get_boolean_resource (mi->dpy, "fpsTop", "FPSTop"))
-    st->y = - (st->ascent + 10);
-}
-
-void
-fps_free (ModeInfo *mi)
-{
-  if (mi->fps_state)
-    free (mi->fps_state);
-  mi->fps_state = 0;
-}
-
-static void
-fps_print_string (ModeInfo *mi, GLfloat x, GLfloat y, const char *string)
-{
-  struct fps_state *st = mi->fps_state;
-  const char *L2 = strchr (string, '\n');
-
-  if (y < 0)
-    {
-      y = mi->xgwa.height + y;
-      if (L2)
-        y -= (st->ascent + st->descent);
-    }
-
-# ifdef DEBUG
-  clear_gl_error ();
-# endif
-
-  /* Sadly, this causes a stall of the graphics pipeline (as would the
-     equivalent calls to glGet*.)  But there's no way around this, short
-     of having each caller set up the specific display matrix we need
-     here, which would kind of defeat the purpose of centralizing this
-     code in one file.
-   */
-  glPushAttrib (GL_TRANSFORM_BIT |  /* for matrix contents */
-                GL_ENABLE_BIT |     /* for various glDisable calls */
-                GL_CURRENT_BIT |    /* for glColor3f() */
-                GL_LIST_BIT);       /* for glListBase() */
-  {
-# ifdef DEBUG
-    check_gl_error ("glPushAttrib");
-# endif
-
-    /* disable lighting and texturing when drawing bitmaps!
-       (glPopAttrib() restores these.)
-     */
-    glDisable (GL_TEXTURE_2D);
-    glDisable (GL_LIGHTING);
-    glDisable (GL_BLEND);
-    glDisable (GL_DEPTH_TEST);
-    glDisable (GL_CULL_FACE);
-
-    /* glPopAttrib() does not restore matrix changes, so we must
-       push/pop the matrix stacks to be non-intrusive there.
-     */
-    glMatrixMode(GL_PROJECTION);
-    glPushMatrix();
-    {
-# ifdef DEBUG
-      check_gl_error ("glPushMatrix");
-# endif
-      glLoadIdentity();
-
-      /* Each matrix mode has its own stack, so we need to push/pop
-         them separately. */
-      glMatrixMode(GL_MODELVIEW);
-      glPushMatrix();
-      {
-# ifdef DEBUG
-        check_gl_error ("glPushMatrix");
-# endif
-        glLoadIdentity();
-
-        gluOrtho2D(0, mi->xgwa.width, 0, mi->xgwa.height);
-# ifdef DEBUG
-        check_gl_error ("gluOrtho2D");
-# endif
-
-        /* clear the background */
-        if (st->clear_p)
-          {
-            int lines = L2 ? 2 : 1;
-            glColor3f (0, 0, 0);
-            glRecti (x / 2, y - st->descent,
-                     mi->xgwa.width - x,
-                     y + lines * (st->ascent + st->descent));
-          }
-
-        /* draw the text */
-        glColor3f (1, 1, 1);
-        glRasterPos2f (x, y);
-        glListBase (st->font_dlist);
-
-        if (L2)
-          {
-            L2++;
-            glCallLists (strlen(L2), GL_UNSIGNED_BYTE, L2);
-            glRasterPos2f (x, y + (st->ascent + st->descent));
-            glCallLists (L2 - string - 1, GL_UNSIGNED_BYTE, string);
-          }
-        else
-          {
-            glCallLists (strlen(string), GL_UNSIGNED_BYTE, string);
-          }
-
-# ifdef DEBUG
-        check_gl_error ("fps_print_string");
-# endif
-      }
-      glPopMatrix();
-    }
-    glMatrixMode(GL_PROJECTION);
-    glPopMatrix();
-
-  }
-  /* clean up after our state changes */
-  glPopAttrib();
-# ifdef DEBUG
-  check_gl_error ("glPopAttrib");
-# endif
-}
-
-
-GLfloat
-fps_1 (ModeInfo *mi)
-{
-  struct fps_state *st = mi->fps_state;
-  if (!st)
-    {
-      fps_init (mi);
-      st = mi->fps_state;
-      strcpy (st->string, "FPS: (accumulating...)");
-    }
-
-  /* Every N frames (where N is approximately one second's worth of frames)
-     check the wall clock.  We do this because checking the wall clock is
-     a slow operation.
-   */
-  if (st->frame_count++ >= st->last_ifps)
-    {
-# ifdef GETTIMEOFDAY_TWO_ARGS
-      struct timezone tzp;
-      gettimeofday(&st->now, &tzp);
-# else
-      gettimeofday(&st->now);
-# endif
-
-      if (st->prev.tv_sec == 0)
-        st->prev = st->now;
-    }
-
-  /* If we've probed the wall-clock time, regenerate the string.
-   */
-  if (st->now.tv_sec != st->prev.tv_sec)
-    {
-      double uprev = st->prev.tv_sec + ((double) st->prev.tv_usec * 0.000001);
-      double unow  =  st->now.tv_sec + ((double)  st->now.tv_usec * 0.000001);
-      double fps   = st->frame_count / (unow - uprev);
-
-      st->prev = st->now;
-      st->frame_count = 0;
-      st->last_ifps = fps;
-      st->last_fps  = fps;
-
-      sprintf (st->string, "FPS: %.02f", fps);
-
-#ifndef HAVE_COCOA
-      /* since there's no "-delay 0" in the Cocoa version,
-         don't bother mentioning the inter-frame delay. */
-      if (mi->pause != 0)
-        {
-          char buf[40];
-          sprintf(buf, "%f", mi->pause / 1000000.0); /* FTSO C */
-          while(*buf && buf[strlen(buf)-1] == '0')
-            buf[strlen(buf)-1] = 0;
-          if (buf[strlen(buf)-1] == '.')
-            buf[strlen(buf)-1] = 0;
-          sprintf(st->string + strlen(st->string),
-                  " (including %s sec/frame delay)",
-                  buf);
-        }
-#endif /* HAVE_COCOA */
-
-      if (mi->polygon_count > 0)
-        {
-          unsigned long p = mi->polygon_count;
-          const char *s = "";
-# if 0
-          if      (p >= (1024 * 1024)) p >>= 20, s = "M";
-          else if (p >= 2048)          p >>= 10, s = "K";
-# endif
-
-          strcat (st->string, "\nPolys: ");
-          if (p >= 1000000)
-            sprintf (st->string + strlen(st->string), "%lu,%03lu,%03lu%s",
-                     (p / 1000000), ((p / 1000) % 1000), (p % 1000), s);
-          else if (p >= 1000)
-            sprintf (st->string + strlen(st->string), "%lu,%03lu%s",
-                     (p / 1000), (p % 1000), s);
-          else
-            sprintf (st->string + strlen(st->string), "%lu%s", p, s);
-        }
-    }
-
-  return st->last_fps;
-}
-
-void
-fps_2 (ModeInfo *mi)
-{
-  struct fps_state *st = mi->fps_state;
-  fps_print_string (mi, st->x, st->y, st->string);
-}
-
-
-void
-do_fps (ModeInfo *mi)
-{
-  fps_1 (mi);   /* Lazily compute current FPS value, about once a second. */
-  fps_2 (mi);   /* Print the string every frame (else nothing shows up.) */
-}
index 8f5b4d94e9addae552ab3b3fb3d5f895067ff6e5..a54a6afcf9fca48278cf4139702bbd37f47092f2 100644 (file)
@@ -50,8 +50,8 @@ How many gears to draw.  Default: 0 for random.
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index e5e58ae99656b798b32fec4916899c66a6ae5561..80310cc285efe7b7e950b5721daaf002be94798d 100644 (file)
 
 static enum {wire=0,solid,light,checker,grab} _draw;
 
+# define DEF_SQUARES           "19"
+# define DEF_RESOLUTION        "4"
+# define DEF_DRAW                      "2"
+# define DEF_FLAT                      "0"
+# define DEF_SPEED                     "0.05"
+# define DEF_ROTATIONX         "0.01"
+# define DEF_ROTATIONY         "0.0"
+# define DEF_ROTATIONZ         "0.1"
+# define DEF_WAVES                     "3"
+# define DEF_WAVE_CHANGE       "50"
+# define DEF_WAVE_HEIGHT       "1.0"
+# define DEF_WAVE_FREQ         "3.0"
+# define DEF_ZOOM                      "1.0"
+
+
+
 static int _squares;                        /* grid size */
 static int _resolution;                    /* wireframe resolution */
 static int _flat;
@@ -115,19 +131,19 @@ static XrmOptionDescRec opts[] = {
 
 
 static argtype vars[] = {
-    {&_squares, "squares", "Squares", "19", t_Int},
-    {&_resolution, "resolution", "Resolution", "4", t_Int},
-/*    {&_draw, "draw", "Draw", "2", t_Int},*/
-    {&_flat, "flat", "Flat", "0", t_Int},
-    {&_speed, "speed", "Speed", "0.05", t_Float},
-    {&_rotationx, "rotationx", "Rotationx", "0.01", t_Float},
-    {&_rotationy, "rotationy", "Rotationy", "0.0", t_Float},
-    {&_rotationz, "rotationz", "Rotationz", "0.1", t_Float},
-    {&_waves, "waves", "Waves", "3", t_Int},
-    {&_waveChange, "waveChange", "WaveChange", "50", t_Int},
-    {&_waveHeight, "waveHeight", "WaveHeight", "1.0", t_Float},
-    {&_waveFreq, "waveFreq", "WaveFreq", "3.0", t_Float},
-    {&_zoom, "zoom", "Zoom", "1.0", t_Float},
+    {&_squares, "squares", "Squares", DEF_SQUARES, t_Int},
+    {&_resolution, "resolution", "Resolution", DEF_RESOLUTION, t_Int},
+/*    {&_draw, "draw", "Draw", DEF_DRAW, t_Int},*/
+    {&_flat, "flat", "Flat", DEF_FLAT, t_Int},
+    {&_speed, "speed", "Speed", DEF_SPEED, t_Float},
+    {&_rotationx, "rotationx", "Rotationx", DEF_ROTATIONX, t_Float},
+    {&_rotationy, "rotationy", "Rotationy", DEF_ROTATIONY, t_Float},
+    {&_rotationz, "rotationz", "Rotationz", DEF_ROTATIONZ, t_Float},
+    {&_waves, "waves", "Waves", DEF_WAVES, t_Int},
+    {&_waveChange, "waveChange", "WaveChange", DEF_WAVE_CHANGE, t_Int},
+    {&_waveHeight, "waveHeight", "WaveHeight", DEF_WAVE_HEIGHT, t_Float},
+    {&_waveFreq, "waveFreq", "WaveFreq", DEF_WAVE_FREQ, t_Float},
+    {&_zoom, "zoom", "Zoom", DEF_ZOOM, t_Float},
 };
 
 
@@ -155,7 +171,7 @@ ModStruct   gflux_description =
 {"gflux", "init_gflux", "draw_gflux", "release_gflux",
  "draw_gflux", "init_gflux", NULL, &gflux_opts,
  1000, 1, 2, 1, 4, 1.0, "",
- "Gflux: an OpenGL gflux", 0, NULL};
+ "GFlux: an OpenGL gflux", 0, NULL};
 #endif
 
 /* structure for holding the gflux data */
@@ -176,7 +192,7 @@ typedef struct gfluxstruct {
     GLfloat tex_yscale;
     XRectangle img_geom;
     int img_width, img_height;
-    void (*drawFunc)(struct gfluxstruct *);
+    int (*drawFunc)(struct gfluxstruct *);
 
     trackball_state *trackball;
     Bool button_down_p;
@@ -199,10 +215,10 @@ static gfluxstruct *gfluxes = NULL;
 static void initLighting(void);
 static void grabTexture(gfluxstruct *);
 static void createTexture(gfluxstruct *);
-static void displaySolid(gfluxstruct *);     /* drawFunc implementations */
-static void displayLight(gfluxstruct *);
-static void displayTexture(gfluxstruct *);
-static void displayWire(gfluxstruct *);
+static int displaySolid(gfluxstruct *);     /* drawFunc implementations */
+static int displayLight(gfluxstruct *);
+static int displayTexture(gfluxstruct *);
+static int displayWire(gfluxstruct *);
 static void calcGrid(gfluxstruct *);
 static double getGrid(gfluxstruct *,double,double,double);
 
@@ -283,7 +299,7 @@ ENTRYPOINT void draw_gflux(ModeInfo * mi)
     glXMakeCurrent(display, window, *(gp->glx_context));
 
     calcGrid(gp);
-    gp->drawFunc(gp);
+    mi->polygon_count = gp->drawFunc(gp);
     if (mi->fps_p) do_fps (mi);
     glXSwapBuffers(display, window);
 }
@@ -507,8 +523,9 @@ static void initLighting(void)
 /* storing the values in an array   */
 /* is a posibility                  */
 /************************************/
-static void displayTexture(gfluxstruct *gp)
+static int displayTexture(gfluxstruct *gp)
 {
+    int polys = 0;
     double x,y,u,v;
     double z;
     double dx = 2.0/((double)_squares);
@@ -587,6 +604,7 @@ static void displayTexture(gfluxstruct *gp)
                 1
             );
             glVertex3f(x+dx,y,z);
+            polys++;
         }
         glEnd();
     }
@@ -599,18 +617,25 @@ static void displayTexture(gfluxstruct *gp)
 
     glBegin(GL_LINE_LOOP);
     y = miny;
-    for (x = minx; x <= maxx; x += dx)
+    for (x = minx; x <= maxx; x += dx) {
       glVertex3f (x, y, getGrid (gp, x, y, gp->time));
+      polys++;
+    }
     x = maxx;
-    for (y = miny; y <= maxy; y += dy)
+    for (y = miny; y <= maxy; y += dy) {
       glVertex3f (x, y, getGrid (gp, x, y, gp->time));
+      polys++;
+    }
     y = maxy;
-    for (x = maxx; x >= minx; x -= dx)
+    for (x = maxx; x >= minx; x -= dx) {
       glVertex3f (x, y, getGrid (gp, x, y, gp->time));
+      polys++;
+    }
     x = minx;
-    for (y = maxy; y >= miny; y -= dy)
+    for (y = maxy; y >= miny; y -= dy) {
       glVertex3f (x, y, getGrid (gp, x, y, gp->time));
-
+      polys++;
+    }
     glEnd();
     glEnable(GL_TEXTURE_2D);
 
@@ -620,9 +645,12 @@ static void displayTexture(gfluxstruct *gp)
       gp->angley -= _rotationy;
       gp->anglez -= _rotationz;
     }
+    return polys;
 }
-static void displaySolid(gfluxstruct *gp)
+
+static int displaySolid(gfluxstruct *gp)
 {
+    int polys = 0;
     double x,y;
     double z;
     double dx = 2.0/((double)_squares);
@@ -648,6 +676,7 @@ static void displaySolid(gfluxstruct *gp)
             genColour(z);
             glColor3fv(gp->colour);
             glVertex3f(x+dx,y,z);
+            polys++;
         }
         glEnd();
     }
@@ -659,10 +688,12 @@ static void displaySolid(gfluxstruct *gp)
       gp->anglez -= _rotationz;
     }
 
+    return polys;
 }
 
-static void displayLight(gfluxstruct *gp)
+static int displayLight(gfluxstruct *gp)
 {
+    int polys = 0;
     double x,y;
     double z;
     double dx = 2.0/((double)_squares);
@@ -698,6 +729,7 @@ static void displayLight(gfluxstruct *gp)
                 1
             );
             glVertex3f(x+dx,y,z);
+            polys++;
         }
         glEnd();
     }
@@ -708,10 +740,12 @@ static void displayLight(gfluxstruct *gp)
       gp->angley -= _rotationy;
       gp->anglez -= _rotationz;
     }
+    return polys;
 }
 
-static void displayWire(gfluxstruct *gp)
+static int displayWire(gfluxstruct *gp)
 {
+    int polys = 0;
     double x,y;
     double z;
     double dx1 = 2.0/((double)(_squares*_resolution)) - 0.00001;
@@ -734,6 +768,7 @@ static void displayWire(gfluxstruct *gp)
             genColour(z);
             glColor3fv(gp->colour);
             glVertex3f(x,y,z);
+            polys++;
         }
         glEnd();
     }
@@ -744,6 +779,7 @@ static void displayWire(gfluxstruct *gp)
             genColour(z);
             glColor3fv(gp->colour);
             glVertex3f(x,y,z);
+            polys++;
         }
         glEnd();
     }
@@ -754,6 +790,7 @@ static void displayWire(gfluxstruct *gp)
       gp->angley -= _rotationy;
       gp->anglez -= _rotationz;
     }
+    return polys;
 }
 
 /* generates new ripples */
@@ -793,6 +830,6 @@ static double getGrid(gfluxstruct *gp, double x, double y, double a)
 }
 
 
-XSCREENSAVER_MODULE ("Gflux", gflux)
+XSCREENSAVER_MODULE ("GFlux", gflux)
 
 #endif
index 3e2f388aa9861b1e1052a12b980455692e6c2653..654aeb463c7ca52e910708a571941e7817753184 100644 (file)
@@ -83,9 +83,7 @@ Specifies the size of the viewport. Smaller values fill the screen with rippling
 How long to pause between frames.  Default is 20000, or 0.02 second.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 7d358d127fdb09c908fb4200a4bc047c0eaba7b0..08bd6911129a1f04d4d077868fc5b4b92ab489d3 100644 (file)
@@ -46,7 +46,7 @@
 
 #define DEF_SPIN        "XYZ"
 #define DEF_WANDER      "True"
-#define DEF_BLURSIZE    "15"
+#define DEF_BLUR_SIZE   "15"
 
 typedef struct metaball metaball;
 
@@ -99,7 +99,7 @@ static XrmOptionDescRec opts[] = {
 static argtype vars[] = {
   {&do_spin,   "spin",   "Spin",   DEF_SPIN,   t_String},
   {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
-  {&blursize,  "blurSize","BlurSize", DEF_BLURSIZE,  t_Int},
+  {&blursize,  "blurSize","BlurSize", DEF_BLUR_SIZE,  t_Int},
 };
 
 ENTRYPOINT ModeSpecOpt glblur_opts = {countof(opts), opts, countof(vars), vars, NULL};
index bd43d8dd6a78e10e229cf983d201ff23c6a38d9b..968f42f27ce62d819074a8a40078a039edc48eb3 100644 (file)
@@ -50,8 +50,8 @@ Around which axes should the object spin?
 .B \-no-spin
 None.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 746f258fd71318ac2d88cafbb1c50234e3acc406..b6849ebe92785e4d2744ce954117a291646d7b8c 100644 (file)
@@ -20,7 +20,7 @@
  *
  * 2007: Written by Matthias Toussaint
  * 0.1 Initial version
- * 0.2 Bugfixes (threading) and code cleanup by Jamie Zavinsky
+ * 0.2 Bugfixes (threading) and code cleanup by Jamie Zawinski
  *     Window scaling bug + performance bug in tick()
  */
  
@@ -48,7 +48,7 @@
 #define DEF_MINFOOD   "5"
 #define DEF_MAXFOOD   "20"
 #define DEF_DIVIDEAGE "20"
-#define DEF_MINDIST   "1.40"
+#define DEF_MINDIST   "1.4"
 #define DEF_PAUSE     "50"
 
 #define DEFAULTS       "*delay:        30000            \n" \
index e92d408d8f73a886b97021a1c8903286cfef1be8..6c1e7e9b560465eee8aa88641577486038aa9296 100644 (file)
@@ -64,9 +64,7 @@ Specifies the minimum distance between cells. Default 1.4
 How long to pause between frames.  Default is 20000, or 0.02 second.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-wireframe
 Draw wireframe only.
index 766e2396d914dac381a147ff38f5285ad4deffa9..3a14f2918eba8c7b798908482e09d8852b979880 100644 (file)
@@ -73,7 +73,7 @@
 # define DEFAULTS \
                "*delay:                20000           \n"     \
                "*showFPS:              False           \n"     \
-               "*size:                 -1                      \n"     \
+               "*size:                                       \n"     \
                "*useSHM:               True            \n"
 
 # define refresh_gleidescope 0
@@ -117,6 +117,17 @@ static int         duration;               /* length of time to display grabbed image */
 #define ANGLE_120      (M_PI * 2 / 3)
 #define ANGLE_240      (M_PI * 4 / 3)
 
+#define DEF_GRAB       "False"
+#define DEF_MOVE       "False"
+#define DEF_NOMOVE     "False"
+#define DEF_ROTATE     "False"
+#define DEF_NOROTATE   "False"
+#define DEF_ZOOM       "False"
+#define DEF_NOZOOM     "False"
+#define DEF_IMAGE      "DEFAULT"
+#define DEF_DURATION   "30"
+
+
 static XrmOptionDescRec opts[] =
 {
 #ifdef GRAB
@@ -126,7 +137,6 @@ static XrmOptionDescRec opts[] =
        {"-no-move",    ".gleidescope.nomove",          XrmoptionNoArg,         "true"},
        {"-rotate",             ".gleidescope.rotate",          XrmoptionNoArg,         "true"},
        {"-no-rotate",  ".gleidescope.norotate",        XrmoptionNoArg,         "true"},
-       /*{"-size",             ".gleidescope.size",            XrmoptionNoArg,         "-1"},*/
        {"-zoom",               ".gleidescope.zoom",            XrmoptionNoArg,         "true"},
        {"-no-zoom",    ".gleidescope.nozoom",          XrmoptionNoArg,         "true"},
        {"-image",              ".gleidescope.image",           XrmoptionSepArg,        "DEFAULT"},
@@ -136,17 +146,16 @@ static XrmOptionDescRec opts[] =
 
 static argtype vars[] = {
 #ifdef GRAB
-       {&grab,                 "grab",         "Grab",         "False",        t_Bool},
+       {&grab,                 "grab",         "Grab",         DEF_GRAB,       t_Bool},
 #endif
-       {&move,                 "move",         "Move",         "False",        t_Bool},
-       {&nomove,               "nomove",       "noMove",       "False",        t_Bool},
-       {&rotate,               "rotate",       "Rotate",       "False",        t_Bool},
-       {&norotate,             "norotate",     "noRotate",     "False",        t_Bool},
-       /*{&size,               "size",         "Size",         "-1",           t_Int},*/
-       {&zoom,                 "zoom",         "Zoom",         "False",        t_Bool},
-       {&nozoom,               "nozoom",       "noZoom",       "False",        t_Bool},
-       {&image,                "image",        "Image",        "DEFAULT",      t_String},
-       {&duration,             "duration",     "Duration",     "30",           t_Int},
+       {&move,                 "move",         "Move",         DEF_MOVE,       t_Bool},
+       {&nomove,               "nomove",       "noMove",       DEF_NOMOVE,     t_Bool},
+       {&rotate,               "rotate",       "Rotate",       DEF_ROTATE,     t_Bool},
+       {&norotate,             "norotate",     "noRotate",     DEF_NOROTATE,   t_Bool},
+       {&zoom,                 "zoom",         "Zoom",         DEF_ZOOM,       t_Bool},
+       {&nozoom,               "nozoom",       "noZoom",       DEF_NOZOOM,     t_Bool},
+       {&image,                "image",        "Image",        DEF_IMAGE,      t_String},
+       {&duration,             "duration",     "Duration",     DEF_DURATION,           t_Int},
 };
 
 static OptionStruct desc[] = {
@@ -157,7 +166,6 @@ static OptionStruct desc[] = {
        {"-no-move",    "camera won't move"},
        {"-rotate",             "camera will rotate"},
        {"-no-rotate",  "camera won't rotate"},
-       /*{"-size",             "size of the hexagons (1-10)"},*/
        {"-zoom",               "camera will zoom"},
        {"-no-zoom",    "camera won't zoom"},
        {"-image",              "xpm / xbm image file to use for texture"},
@@ -1105,9 +1113,10 @@ calculate_texture_coords(ModeInfo *mi, texture *texture, vector2f t[3]) {
 }
 #endif
 
-static void
+static int
 draw_hexagons(ModeInfo *mi, int translucency, texture *texture)
 {
+    int polys = 0;
        int             i;
        GLfloat col[4];
        vector2f t[3];
@@ -1191,6 +1200,7 @@ draw_hexagons(ModeInfo *mi, int translucency, texture *texture)
 
                glTranslatef(hex[i].x, hex[i].y, 0.0);
                glCallList(gp->list);
+        polys += 6;
 
                glPopMatrix();
        }
@@ -1209,6 +1219,7 @@ draw_hexagons(ModeInfo *mi, int translucency, texture *texture)
        glVertex3f(1.0, 1.0, -0.1);
        glTexCoord2f(0.0, 1.0);
        glVertex3f(0.0, 1.0, -0.1);
+    polys++;
        glEnd();
        /* acd debug - display texture triangle */
        glColor4f(1.0, 0.5, 1.0, 1.0);
@@ -1216,6 +1227,7 @@ draw_hexagons(ModeInfo *mi, int translucency, texture *texture)
        glVertex3f(t[0].x, t[0].y, -0.11);
        glVertex3f(t[1].x, t[1].y, -0.11);
        glVertex3f(t[2].x, t[2].y, -0.11);
+    polys++;
        glEnd();
        glPopMatrix();
 #endif
@@ -1223,6 +1235,7 @@ draw_hexagons(ModeInfo *mi, int translucency, texture *texture)
        glDisable(GL_TEXTURE_2D);
        glDepthMask(GL_TRUE);
        glDisable(GL_BLEND);
+    return polys;
 }
 
 /*
@@ -1236,6 +1249,8 @@ draw(ModeInfo * mi)
        vectorf v1;
        GLfloat pos[4];
 
+    mi->polygon_count = 0;
+
        glClearColor(0.5, 0.5, 0.5, 1.0);
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glLoadIdentity();
@@ -1259,10 +1274,10 @@ draw(ModeInfo * mi)
        if (gp->size > 10) {
                gp->size = 10;
        }
-       if (gp->size < -1) {
-               gp->size = -1;
+       if (gp->size <= 0) {
+               gp->size = 0;
        }
-       if (gp->size != -1) {
+       if (gp->size > 0) {
                /* user defined size */
                v1.z = gp->size;
        } else if (zoom) {
@@ -1324,14 +1339,17 @@ draw(ModeInfo * mi)
        if (gp->fade == 0)
        {
                /* not fading */
-               draw_hexagons(mi, MAX_FADE, &gp->textures[gp->visible]);
+      mi->polygon_count += 
+        draw_hexagons(mi, MAX_FADE, &gp->textures[gp->visible]);
        }
        else
        {
                /* fading - show both textures with alpha
                NB first is always max alpha */
-               draw_hexagons(mi, MAX_FADE, &gp->textures[1 - gp->visible]);
-               draw_hexagons(mi, MAX_FADE - gp->fade, &gp->textures[gp->visible]);
+        mi->polygon_count += 
+          draw_hexagons(mi, MAX_FADE, &gp->textures[1 - gp->visible]);
+        mi->polygon_count += 
+                 draw_hexagons(mi, MAX_FADE - gp->fade, &gp->textures[gp->visible]);
 
                /* fade some more */
                gp->fade++;
index 97ffacf42e580f07251e3796dd95d6f3838fdd2d..c0b9b158dfbe4f4232cf3ff5df6d145008e69d4e 100644 (file)
@@ -44,8 +44,8 @@ Zoom the camera in and out.
 .B \-image \fIfile\fP
 The texture map to use at the end of the kaleidescope.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-size \fInumber\fP
 The size of the hexagons being displayed [1(small)-10(large)]
index e3434bc28ec1c2d454b789cbd52a914a4a71eef3..6b365ad17be14162935fe0dce5bce439782b1030 100644 (file)
@@ -466,8 +466,9 @@ static void setpartrain(firestruct * fs, rain * r, float dt)
 }
 
 /* draw a tree */
-static void drawtree(float x, float y, float z)
+static int drawtree(float x, float y, float z)
 {
+    int polys = 0;
     glBegin(GL_QUADS);
     glTexCoord2f(0.0,0.0);
     glVertex3f(x-1.5,y+0.0,z);
@@ -480,6 +481,7 @@ static void drawtree(float x, float y, float z)
 
     glTexCoord2f(0.0,1.0);
     glVertex3f(x-1.5,y+3.0,z);
+    polys++;
 
 
     glTexCoord2f(0.0,0.0);
@@ -493,9 +495,11 @@ static void drawtree(float x, float y, float z)
 
     glTexCoord2f(0.0,1.0);
     glVertex3f(x,y+3.0,z-1.5);
+    polys++;
 
     glEnd();
 
+    return polys;
 }
 
 /* calculate observer position : modified only if trackmouse is used */
@@ -667,6 +671,8 @@ static void DrawFire(ModeInfo * mi)
     firestruct *fs = &fire[MI_SCREEN(mi)];
     Bool wire = MI_IS_WIREFRAME(mi);
 
+    mi->polygon_count = 0;
+
     if (do_wander && !fs->button_down_p)
     {
        GLfloat x, y, z;
@@ -728,6 +734,7 @@ static void DrawFire(ModeInfo * mi)
     glVertex3fv(q[2]);
     glTexCoord2fv(qt[3]);
     glVertex3fv(q[3]);
+    mi->polygon_count++;
     glEnd();
 
     glAlphaFunc(GL_GEQUAL, 0.9);
@@ -739,7 +746,7 @@ static void DrawFire(ModeInfo * mi)
        glBindTexture(GL_TEXTURE_2D,fs->treeid);
 #endif /* HAVE_GLBINDTEXTURE */
        for(j=0;j<fs->num_trees;j++)
-           drawtree(fs->treepos[j].x ,fs->treepos[j].y ,fs->treepos[j].z );
+      mi->polygon_count += drawtree(fs->treepos[j].x ,fs->treepos[j].y ,fs->treepos[j].z );
        glDisable(GL_ALPHA_TEST);
     }
     glDisable(GL_TEXTURE_2D);
@@ -757,6 +764,7 @@ static void DrawFire(ModeInfo * mi)
 
            glColor4f(black[0], black[1], black[2], fs->p[j].c[2][3]);
            glVertex3f(fs->p[j].p[2][0], 0.1, fs->p[j].p[2][2]);
+        mi->polygon_count++;
        }
        glEnd();
     }
@@ -772,6 +780,7 @@ static void DrawFire(ModeInfo * mi)
 
        glColor4fv(fs->p[j].c[2]);
        glVertex3fv(fs->p[j].p[2]);
+    mi->polygon_count++;
 
        setpart(fs, &fs->p[j]);
     }
@@ -790,6 +799,7 @@ static void DrawFire(ModeInfo * mi)
            glColor4f(0.3f,0.7f,1.0f,1.0f);
            glVertex3fv(fs->r[j].pos);
            setpartrain(fs, &fs->r[j],timeused);
+        mi->polygon_count++;
        }
        glEnd();
        glShadeModel(GL_FLAT);
index 82620f9bd4681348c2237ee34708b3029f778f84..aae3a25e99e49bb48d135c5c4cded5e20eb35cfd 100644 (file)
@@ -27,7 +27,7 @@ glforestfire - draws a GL animation of sprinkling fire-like 3D triangles
 [\-wireframe] [\-no-wireframe]
 [\-wander] [\-no-wander]
 [\-trackmouse] [\-no-trackmouse]
-[\-fps] [\-no-fps]
+[\-fps]
 .SH DESCRIPTION
 The \fIglforestfire\fP program draws an animation of sprinkling fire-like 3D triangles in
 a landscape filled with trees.
@@ -49,9 +49,7 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-trees \fInumber_of_trees\fP\fP
 Specify how much trees are drawn in the landscape. 
index df62a37151bf6e763fce15c006e20eb44bd2183f..6ac0d1bcfad120a64e622316f47f17f441729872 100644 (file)
 
 #include "rotator.h"
 
-#define DEF_DELAY     "15000"
-#define DEF_DISKS     "0"         /* < 2 means 3-12 */
-#define DEF_WIRE      "False"
 #define DEF_LIGHT     "True"
-#define DEF_FPS       "False"
 #define DEF_FOG       "False"
 #define DEF_TEXTURE   "True"
 
-#define DEFAULTS "*delay:     " DEF_DELAY     "\n" \
-                                "*count:     " DEF_DISKS     "\n" \
-                                "*showFPS:   " DEF_FPS       "\n" \
-                                "*wireframe: " DEF_WIRE      "\n"
+#define DEFAULTS "*delay:     15000\n" \
+                                "*count:     0\n" \
+                                "*showFPS:   False\n" \
+                                "*wireframe: False\n"
 
 # define refresh_glhanoi 0
 
@@ -96,6 +92,7 @@ typedef struct {
        GLfloat t1, t2;
        GLfloat ucostheta, usintheta;
        GLdouble rotAngle;
+    int polys;
 } Disk;
 
 typedef struct {
@@ -139,6 +136,7 @@ typedef struct {
        GLint floorList;
        GLint baseList;
        GLint poleList;
+    int floorpolys, basepolys, polepolys;
        GLfloat camera[3];
        GLfloat centre[3];
        rotator *the_rotator;
@@ -594,10 +592,11 @@ static void setMaterial(const GLfloat color[3], const GLfloat hlite[3], int shin
  * people's hardware supports 3D textures, so I didn't bother (xorg
  * ATI server doesn't :-( )
  */
-static void drawTube(GLdouble bottomRadius, GLdouble topRadius,
+static int drawTube(GLdouble bottomRadius, GLdouble topRadius,
                          GLdouble bottomThickness, GLdouble topThickness,
                          GLdouble height, GLuint nSlice, GLuint nLoop)
 {
+    int polys = 0;
        GLfloat y;
        GLfloat *cosCache = malloc(sizeof(GLfloat) * nSlice);
        GLfloat *sinCache = malloc(sizeof(GLfloat) * nSlice);
@@ -659,6 +658,7 @@ static void drawTube(GLdouble bottomRadius, GLdouble topRadius,
                /* yTexCoord, */
                /* midTexCoord + cosCache[slice] * outerTexCoordSize); */
                glVertex3f(radius * sinCache[slice], y, radius * cosCache[slice]);
+        polys++;
        }
        glEnd();
 
@@ -684,10 +684,12 @@ static void drawTube(GLdouble bottomRadius, GLdouble topRadius,
                                           upperRadius * cosCache[slice]);
                        glVertex3f(lowerRadius * sinCache[slice], lowerY,
                                           lowerRadius * cosCache[slice]);
+            polys++;
                }
                glNormal3f(0.0, 0.0, 1.0);
                glVertex3f(0.0, upperY, upperRadius);
                glVertex3f(0.0, lowerY, lowerRadius);
+        polys++;
                glEnd();
 
                /* inside */
@@ -706,6 +708,7 @@ static void drawTube(GLdouble bottomRadius, GLdouble topRadius,
                                           upperRadius * cosCache[slice]);
                        glVertex3f(lowerRadius * sinCache[slice], lowerY,
                                           lowerRadius * cosCache[slice]);
+            polys++;
                }
                glEnd();
        }
@@ -722,25 +725,27 @@ static void drawTube(GLdouble bottomRadius, GLdouble topRadius,
                                   innerRadius * cosCache[slice]);
 
                glVertex3f(radius * sinCache[slice], y, radius * cosCache[slice]);
+        polys++;
        }
        glVertex3f(0.0, y, innerRadius);
        glVertex3f(0.0, y, radius);
        glEnd();
+    return polys;
 }
 
-static void drawPole(GLfloat radius, GLfloat length)
+static int drawPole(GLfloat radius, GLfloat length)
 {
-       drawTube(radius, radius, radius, radius, length, NSLICE, NLOOPS);
+  return drawTube(radius, radius, radius, radius, length, NSLICE, NLOOPS);
 }
 
-static void drawDisk3D(GLdouble inner_radius, GLdouble outer_radius,
-                               GLdouble height)
+static int drawDisk3D(GLdouble inner_radius, GLdouble outer_radius,
+                      GLdouble height)
 {
-       drawTube(outer_radius, outer_radius, outer_radius - inner_radius,
-                        outer_radius - inner_radius, height, NSLICE, NLOOPS);
+  return drawTube(outer_radius, outer_radius, outer_radius - inner_radius,
+                  outer_radius - inner_radius, height, NSLICE, NLOOPS);
 }
 
-static void drawCuboid(GLfloat length, GLfloat width, GLfloat height)
+static int drawCuboid(GLfloat length, GLfloat width, GLfloat height)
 {
        GLfloat xmin = -length / 2.0f;
        GLfloat xmax = length / 2.0f;
@@ -748,6 +753,7 @@ static void drawCuboid(GLfloat length, GLfloat width, GLfloat height)
        GLfloat zmax = width / 2.0f;
        GLfloat ymin = 0.0f;
        GLfloat ymax = height;
+    int polys = 0;
 
        glBegin(GL_QUADS);
        /* front */
@@ -756,42 +762,50 @@ static void drawCuboid(GLfloat length, GLfloat width, GLfloat height)
        glVertex3f(xmax, ymin, zmax);   /* 1 */
        glVertex3f(xmax, ymax, zmax);   /* 2 */
        glVertex3f(xmin, ymax, zmax);   /* 3 */
+    polys++;
        /* right */
        glNormal3fv(right);
        glVertex3f(xmax, ymin, zmax);   /* 1 */
        glVertex3f(xmax, ymin, zmin);   /* 5 */
        glVertex3f(xmax, ymax, zmin);   /* 6 */
        glVertex3f(xmax, ymax, zmax);   /* 2 */
+    polys++;
        /* back */
        glNormal3fv(back);
        glVertex3f(xmax, ymin, zmin);   /* 5 */
        glVertex3f(xmin, ymin, zmin);   /* 4 */
        glVertex3f(xmin, ymax, zmin);   /* 7 */
        glVertex3f(xmax, ymax, zmin);   /* 6 */
+    polys++;
        /* left */
        glNormal3fv(left);
        glVertex3f(xmin, ymin, zmin);   /* 4 */
        glVertex3f(xmin, ymin, zmax);   /* 0 */
        glVertex3f(xmin, ymax, zmax);   /* 3 */
        glVertex3f(xmin, ymax, zmin);   /* 7 */
+    polys++;
        /* top */
        glNormal3fv(up);
        glVertex3f(xmin, ymax, zmax);   /* 3 */
        glVertex3f(xmax, ymax, zmax);   /* 2 */
        glVertex3f(xmax, ymax, zmin);   /* 6 */
        glVertex3f(xmin, ymax, zmin);   /* 7 */
+    polys++;
        /* bottom */
        glNormal3fv(down);
        glVertex3f(xmin, ymin, zmin);   /* 4 */
        glVertex3f(xmax, ymin, zmin);   /* 5 */
        glVertex3f(xmax, ymin, zmax);   /* 1 */
        glVertex3f(xmin, ymin, zmax);   /* 0 */
+    polys++;
        glEnd();
+    return polys;
 }
 
-static void drawDisks(glhcfg *glhanoi)
+static int drawDisks(glhcfg *glhanoi)
 {
        int i;
+    int polys = 0;
 
        glPushMatrix();
        glTranslatef(0.0f, glhanoi->baseHeight, 0.0f);
@@ -808,9 +822,11 @@ static void drawDisks(glhcfg *glhanoi)
                        glTranslatef(0.0, -glhanoi->diskHeight / 2.0, 0.0);
                }
                glCallList(disk->displayList);
+        polys += disk->polys;
                glPopMatrix();
        }
        glPopMatrix();
+    return polys;
 }
 
 static GLfloat getDiskRadius(glhcfg *glhanoi, int i)
@@ -1096,6 +1112,7 @@ static void initFloor(glhcfg *glhanoi)
        const float *col = cWhite;
        float texIncr = 1.0 / BOARD_SQUARES;
 
+    glhanoi->floorpolys = 0;
        if((glhanoi->floorList = glGenLists(1)) == 0) {
                fprintf(stderr, "can't allocate memory for floor display list\n");
                exit(EXIT_FAILURE);
@@ -1137,6 +1154,7 @@ static void initFloor(glhcfg *glhanoi)
 
                        glTexCoord2d(tx1, tz0);
                        glVertex3f(x1, 0.0, z0);
+            glhanoi->floorpolys++;
                        glEnd();
                }
        }
@@ -1151,8 +1169,8 @@ static void initTowers(glhcfg *glhanoi)
        }
        glNewList(glhanoi->baseList, GL_COMPILE);
        setMaterial(baseColor, cWhite, 50);
-       drawCuboid(glhanoi->baseLength, glhanoi->baseWidth,
-                          glhanoi->baseHeight);
+    glhanoi->basepolys = drawCuboid(glhanoi->baseLength, glhanoi->baseWidth,
+                                    glhanoi->baseHeight);
        glEndList();
 
 
@@ -1164,13 +1182,13 @@ static void initTowers(glhcfg *glhanoi)
        glPushMatrix();
        glTranslatef(0.0f, glhanoi->baseHeight, 0.0f);
        setMaterial(poleColor, cWhite, 50);
-       drawPole(glhanoi->poleRadius, glhanoi->poleHeight);
+    glhanoi->polepolys = drawPole(glhanoi->poleRadius, glhanoi->poleHeight);
        glPushMatrix();
        glTranslatef(-glhanoi->poleOffset, 0.0, 0.0);
-       drawPole(glhanoi->poleRadius, glhanoi->poleHeight);
+       glhanoi->polepolys += drawPole(glhanoi->poleRadius, glhanoi->poleHeight);
        glPopMatrix();
        glTranslatef(glhanoi->poleOffset, 0.0, 0.0);
-       drawPole(glhanoi->poleRadius, glhanoi->poleHeight);
+       glhanoi->polepolys += drawPole(glhanoi->poleRadius, glhanoi->poleHeight);
        glPopMatrix();
        glEndList();
 }
@@ -1216,6 +1234,7 @@ static void initDisks(glhcfg *glhanoi)
                disk->rotation[0] = 0.0;
                disk->rotation[1] = 0.0;
                disk->rotation[2] = 0.0;
+               disk->polys = 0;
 
                color[0] = diskColor;
                color[1] = 1.0f;
@@ -1229,9 +1248,9 @@ static void initDisks(glhcfg *glhanoi)
                }
                glNewList(disk->displayList, GL_COMPILE);
                setMaterial(color, cWhite, 100.0);
-               drawDisk3D(glhanoi->poleRadius, 
-                           getDiskRadius(glhanoi, i),
-                           glhanoi->diskHeight);
+               disk->polys += drawDisk3D(glhanoi->poleRadius, 
+                                  getDiskRadius(glhanoi, i),
+                                  glhanoi->diskHeight);
                glEndList();
        }
        for(i = glhanoi->maxDiskIdx; i >= 0; --i) {
@@ -1263,15 +1282,17 @@ static void initLights(Bool state)
        }
 }
 
-static void drawFloor(glhcfg *glhanoi)
+static int drawFloor(glhcfg *glhanoi)
 {
        glCallList(glhanoi->floorList);
+    return glhanoi->floorpolys;
 }
 
-static void drawTowers(glhcfg *glhanoi)
+static int drawTowers(glhcfg *glhanoi)
 {
        glCallList(glhanoi->baseList);
        glCallList(glhanoi->poleList);
+    return glhanoi->basepolys + glhanoi->polepolys;
 }
 
 /* Window management, etc
@@ -1376,6 +1397,7 @@ ENTRYPOINT void draw_glhanoi(ModeInfo * mi)
        glPolygonMode(GL_FRONT, glhanoi->wire ? GL_LINE : GL_FILL);
 
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+    mi->polygon_count = 0;
 
        glLoadIdentity();
 
@@ -1385,11 +1407,11 @@ ENTRYPOINT void draw_glhanoi(ModeInfo * mi)
        if(!glhanoi->wire && glhanoi->texture) {
                glEnable(GL_TEXTURE_2D);
        }
-       drawFloor(glhanoi);
+    mi->polygon_count += drawFloor(glhanoi);
        glDisable(GL_TEXTURE_2D);
 
-       drawTowers(glhanoi);
-       drawDisks(glhanoi);
+       mi->polygon_count += drawTowers(glhanoi);
+       mi->polygon_count += drawDisks(glhanoi);
 
        if(mi->fps_p) {
                do_fps(mi);
index fd87d27604ef7f4b210bd2359517c94c090fc5ff..395fd66996ca74055b48c376117b542fc080d9be 100644 (file)
@@ -40,8 +40,8 @@ Render in wireframe instead of solid.
 .B \-fog | \-no-fog
 Render in fog.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-light | -no-light
 Whether the scene is lit.
index 3ccc1930bdfbddbf208a23fbb5dfaabe4a0c6091..c4f1d1aef38c5673289c2ef0fd32273a51abda0e 100644 (file)
@@ -55,8 +55,8 @@ Which axes, if any, to spin around on.
 .B \-wireframe | \-no-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index a7214d5174ecb097cd78e4afd2b82fd30f889166..75e2b3e291d10e19d5a5b6dff795fac77dceb2e2 100644 (file)
@@ -72,9 +72,7 @@ Instead of displaying Matrix glyphs, display genetic code
 Just draw boxes instead of textured characters.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 3cc027bdfecdf7f094cc06f5fbeff3821e2a72b4..a01358ee068153d76aa6bca956c88778cb527f92 100644 (file)
@@ -44,8 +44,8 @@ The resolution of the planet. Default: 128.
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index ecaa6aadbdac9ffe42f8b688ee063c2efd325818..8d52b6689923621b33274d0c9a9d015ead6c84ea 100644 (file)
 #undef countof
 #define countof(x) (sizeof((x))/sizeof((*x)))
 
+#define DEF_NFISH      "100"
+#define DEF_FOG                "False"
+#define DEF_DRAWBBOX   "True"
+#define DEF_DRAWGOAL   "False"
+#define DEF_GOALCHGF   "50"
+#define DEF_MAXVEL     "7.0"
+#define DEF_MINVEL     "1.0"
+#define DEF_ACCLIMIT   "8.0"
+#define DEF_DISTEXP    "2.2"
+#define DEF_AVOIDFACT  "1.5"
+#define DEF_MATCHFACT  "0.15"
+#define DEF_CENTERFACT "0.1"
+#define DEF_TARGETFACT "80"
+#define DEF_MINRADIUS  "30.0"
+#define DEF_MOMENTUM   "0.9"
+#define DEF_DISTCOMP   "10.0"
+
 static int                     NFish;
 static Bool                    DoFog;
 static Bool                    DoDrawBBox;
@@ -63,22 +80,22 @@ static XrmOptionDescRec opts[] = {
 };
 
 static argtype vars[] = {
-       {&NFish,                "nfish",                "NFish",                "100", t_Int},
-       {&DoFog,                "fog",                  "DoFog",                "False", t_Bool},
-       {&DoDrawBBox,   "drawbbox",             "DoDrawBBox",   "True", t_Bool},
-       {&DoDrawGoal,   "drawgoal",             "DoDrawGoal",   "False", t_Bool},
-       {&GoalChgFreq,  "goalchgf",             "GoalChgFreq",  "50",  t_Int},
-       {&MaxVel,               "maxvel",               "MaxVel",               "7.0",  t_Float},
-       {&MinVel,               "minvel",               "MinVel",               "1.0",  t_Float},
-       {&AccLimit,             "acclimit",             "AccLimit",             "8.0",  t_Float},
-       {&DistExp,              "distexp",              "DistExp",              "2.2",  t_Float},
-       {&AvoidFact,    "avoidfact",    "AvoidFact",    "1.5",  t_Float},
-       {&MatchFact,    "matchfact",    "MatchFact",    "0.15",  t_Float},
-       {&CenterFact,   "centerfact",   "CenterFact",   "0.1",  t_Float},
-       {&TargetFact,   "targetfact",   "TargetFact",   "80",  t_Float},
-       {&MinRadius,    "minradius",    "MinRadius",    "30.0",  t_Float},
-       {&Momentum,             "momentum",             "Momentum",             "0.9",  t_Float},
-       {&DistComp,             "distcomp",             "DistComp",             "10.0",  t_Float},
+       {&NFish,                "nfish",                "NFish",                DEF_NFISH, t_Int},
+       {&DoFog,                "fog",                  "DoFog",                DEF_FOG, t_Bool},
+       {&DoDrawBBox,   "drawbbox",             "DoDrawBBox",   DEF_DRAWBBOX, t_Bool},
+       {&DoDrawGoal,   "drawgoal",             "DoDrawGoal",   DEF_DRAWGOAL, t_Bool},
+       {&GoalChgFreq,  "goalchgf",             "GoalChgFreq",  DEF_GOALCHGF,  t_Int},
+       {&MaxVel,               "maxvel",               "MaxVel",               DEF_MAXVEL,  t_Float},
+       {&MinVel,               "minvel",               "MinVel",               DEF_MINVEL,     t_Float},
+       {&AccLimit,             "acclimit",             "AccLimit",             DEF_ACCLIMIT,  t_Float},
+       {&DistExp,              "distexp",              "DistExp",              DEF_DISTEXP,  t_Float},
+       {&AvoidFact,    "avoidfact",    "AvoidFact",    DEF_AVOIDFACT,  t_Float},
+       {&MatchFact,    "matchfact",    "MatchFact",    DEF_MATCHFACT,  t_Float},
+       {&CenterFact,   "centerfact",   "CenterFact",   DEF_CENTERFACT,  t_Float},
+       {&TargetFact,   "targetfact",   "TargetFact",   DEF_TARGETFACT,  t_Float},
+       {&MinRadius,    "minradius",    "MinRadius",    DEF_MINRADIUS,  t_Float},
+       {&Momentum,             "momentum",             "Momentum",             DEF_MOMENTUM,  t_Float},
+       {&DistComp,             "distcomp",             "DistComp",             DEF_DISTCOMP,  t_Float},
 };
 
 ENTRYPOINT ModeSpecOpt glschool_opts = {countof(opts), opts, countof(vars), vars, NULL};
index 10594f9a0bc04286d272dbf3fa19ca1fe5635ebf..8de00c418c48e6ec4c7f4c5cb96d0be3a839a13e 100644 (file)
@@ -55,8 +55,8 @@ Per-frame delay, in microseconds.  Default: 20000 (0.020 seconds.).
 .B \-wireframe | \-no-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-fog | \-no-fog
  Whether to show foggy (cloudy) water.
index e3108980609f7573ac3f0ab657aed18d6adee44b..0cdf14d34065700d992be9787586471a9ab4d5e9 100644 (file)
@@ -73,7 +73,7 @@
                   "*showFPS:         False                \n" \
                  "*fpsSolid:        True                 \n" \
                  "*useSHM:          True                 \n" \
-                 "*titleFont:       -*-times-bold-r-normal-*-180-*\n" \
+                 "*titleFont:       -*-helvetica-medium-r-normal-*-180-*\n" \
                   "*desktopGrabber:  xscreensaver-getimage -no-desktop %s\n" \
                  "*grabDesktopImages:   False \n" \
                  "*chooseRandomImages:  True  \n"
@@ -531,16 +531,22 @@ randomize_sprite (ModeInfo *mi, sprite *sp)
       sp->from = swap;
     }
 
-  /* Make sure the aspect ratios are within 0.0001 of each other.
+  /* Make sure the aspect ratios are within 0.001 of each other.
    */
-  if ((int) (0.5 + (sp->from.w * 1000 / sp->from.h)) !=
-      (int) (0.5 + (sp->to.w   * 1000 / sp->to.h)))
-    {
-      fprintf (stderr, "%s: botched aspect: %f x %f vs  %f x %f: %s\n",
-               progname, sp->from.w, sp->from.h, sp->to.w, sp->to.h,
-               sp->img->title);
-      abort();
-    }
+  {
+    int r1 = 0.5 + (sp->from.w * 1000 / sp->from.h);
+    int r2 = 0.5 + (sp->to.w   * 1000 / sp->to.h);
+    if (r1 < r2-1 || r1 > r2+1)
+      {
+        fprintf (stderr,
+                 "%s: botched aspect: %f x %f (%d) vs  %f x %f (%d): %s\n",
+                 progname, 
+                 sp->from.w, sp->from.h, r1,
+                 sp->to.w, sp->to.h, r2,
+                 (sp->img->title ? sp->img->title : "[null]"));
+        abort();
+      }
+  }
 
   sp->from.x /= vp_w;
   sp->from.y /= vp_h;
@@ -810,12 +816,12 @@ draw_sprite (ModeInfo *mi, sprite *sp)
         glColor4f (0, 0, 0, sp->opacity);   /* cheap-assed dropshadow */
         print_gl_string (mi->dpy, ss->xfont, ss->font_dlist,
                          mi->xgwa.width, mi->xgwa.height, x, y,
-                         img->title);
+                         img->title, False);
         x++; y++;
         glColor4f (1, 1, 1, sp->opacity);
         print_gl_string (mi->dpy, ss->xfont, ss->font_dlist,
                          mi->xgwa.width, mi->xgwa.height, x, y,
-                         img->title);
+                         img->title, False);
       }
   }
   glPopMatrix();
@@ -1210,8 +1216,8 @@ draw_slideshow (ModeInfo *mi)
 
   draw_sprites (mi);
 
-  ss->fps = fps_1 (mi);
-  if (mi->fps_p) fps_2 (mi);
+  ss->fps = fps_compute (mi->fpst, 0);
+  if (mi->fps_p) do_fps (mi);
 
   glFinish();
   glXSwapBuffers (MI_DISPLAY (mi), MI_WINDOW(mi));
index 516219ca5c3ce9a28b0813161ade02fbc09d1565..a35921dcebf06d7b3a87f70ae26d38dd7ea8e70b 100644 (file)
@@ -84,7 +84,7 @@ This is the opposite of \fI\-letterbox\fP.
 Per-frame delay, in microseconds.  Default: 20000 (0.02 seconds.).
 .TP 8
 .B \-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-cutoff \fInumber\fP
 If the frame rate we are achieving is lower than this, then panning,
index b2fd0ad600ff563b2962cc324d26b957d8bff32c..f2a0b5ff2c094286ef7843125b4ba48b22d6a1f9 100644 (file)
@@ -98,7 +98,7 @@
 #define DEF_ANGVEL      1.0
 #define DEF_STATICTIME  5000
 #define DEF_ALTCOLOUR   0
-#define DEF_TITLES      1
+#define DEF_TITLES      0
 #define DEF_INTERACTIVE 0
 #define DEF_ZOOM        25.0
 #define DEF_WIREFRAME   0
 #define DEF_ANGVEL      "1.0"
 #define DEF_STATICTIME  "5000"
 #define DEF_ALTCOLOUR   "False"
-#define DEF_TITLES      "True"
+#define DEF_TITLES      "False"
 #define DEF_INTERACTIVE "False"
 #define DEF_ZOOM        "25.0"
 #define DEF_WIREFRAME   "False"
@@ -147,7 +147,7 @@ static GLfloat angvel;
 #define DEFAULTS "*delay:          30000                      \n" \
                  "*count:          30                         \n" \
                  "*showFPS:        False                      \n" \
-                 "*labelfont:   -*-times-bold-r-normal-*-180-*\n" \
+                 "*labelfont:   -*-helvetica-medium-r-normal-*-180-*\n" \
 
 
 
@@ -1706,7 +1706,7 @@ static void draw_title(
        print_gl_string(mi->dpy, bp->font, bp->font_list,
                        mi->xgwa.width, mi->xgwa.height,
                        10.0, (float) mi->xgwa.height - 10.0,
-                       s);
+                       s, False);
 #endif
     }
     glPopMatrix();
index ab522c3070295da8f74da8c59878c772b84dd561..217be2f8a3e5f0750f17f26eedcad4a2f3b25fe8 100644 (file)
@@ -34,9 +34,7 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-wireframe
 Display the snake in wireframe mode, rather than the default solid mode.
index f9e6f156488bef3026c74a9d5d74072019cc19c2..48ab1c07a2c51dbf0f9d19f49bdc6cc6e26106aa 100644 (file)
 
 #ifdef USE_GL /* whole file */
 
-#ifdef HAVE_COCOA
-# define DEF_TEXT       "%A%n%d %b %Y%n%r"
-#else
-# define DEF_TEXT        "(default)"
-#endif
-
+#define DEF_TEXT        "(default)"
 #define DEF_PROGRAM     "(default)"
 #define DEF_SPIN        "XYZ"
 #define DEF_WANDER      "True"
-#define DEF_FRONT       "True"
+#define DEF_FACE_FRONT  "True"
 
 #ifdef HAVE_UNAME
 # include <sys/utsname.h>
@@ -97,11 +92,11 @@ static XrmOptionDescRec opts[] = {
 };
 
 static argtype vars[] = {
-  {&text_fmt,     "text",      "Text",      DEF_TEXT,    t_String},
-  {&program_str,  "program",   "Program",   DEF_PROGRAM, t_String},
-  {&do_spin,      "spin",      "Spin",      DEF_SPIN,    t_String},
-  {&do_wander,    "wander",    "Wander",    DEF_WANDER,  t_Bool},
-  {&face_front_p, "faceFront", "FaceFront", DEF_FRONT,   t_Bool},
+  {&text_fmt,     "text",      "Text",      DEF_TEXT,       t_String},
+  {&program_str,  "program",   "Program",   DEF_PROGRAM,    t_String},
+  {&do_spin,      "spin",      "Spin",      DEF_SPIN,       t_String},
+  {&do_wander,    "wander",    "Wander",    DEF_WANDER,     t_Bool},
+  {&face_front_p, "faceFront", "FaceFront", DEF_FACE_FRONT, t_Bool},
 };
 
 ENTRYPOINT ModeSpecOpt text_opts = {countof(opts), opts, countof(vars), vars, NULL};
@@ -243,8 +238,34 @@ parse_text (ModeInfo *mi)
           sprintf(tp->text, "%s\n%s %s.%s",
                   uts.nodename, uts.sysname, uts.version, uts.release);
 #  elif defined(__APPLE__)  /* MacOS X + XDarwin */
-          sprintf(tp->text, "%s\n%s %s\n%s",
-                  uts.nodename, uts.sysname, uts.release, uts.machine);
+          {
+            const char *file = 
+              "/System/Library/CoreServices/SystemVersion.plist";
+            FILE *f = fopen (file, "r");
+            char *pbv = 0, *pn = 0, *puvv = 0;
+            if (f) {
+              char *s, buf[255];
+
+              while (fgets (buf, sizeof(buf)-1, f)) {
+#               define GRAB(S,V)                                       \
+                if (strstr(buf, S)) {                                  \
+                  fgets (buf, sizeof(buf)-1, f);                       \
+                  if ((s = strchr (buf, '>'))) V = strdup(s+1);        \
+                  if ((s = strchr (V, '<'))) *s = 0;                   \
+                }
+                GRAB ("ProductName", pn)
+                GRAB ("ProductBuildVersion", pbv)
+                GRAB ("ProductUserVisibleVersion", puvv)
+#               undef GRAB
+              }
+            }
+            if (pbv)
+              sprintf (tp->text, "%s\n%s\n%s\n%s", 
+                       uts.nodename, pn, puvv, uts.machine);
+            else
+              sprintf(tp->text, "%s\n%s %s\n%s",
+                      uts.nodename, uts.sysname, uts.release, uts.machine);
+          }
 #  else
           sprintf(tp->text, "%s\n%s %s",
                   uts.nodename, uts.sysname, uts.release);
@@ -401,7 +422,7 @@ init_text (ModeInfo *mi)
 
 
 static int
-fill_character (GLUTstrokeFont font, int c, Bool wire)
+fill_character (GLUTstrokeFont font, int c, Bool wire, int *polysP)
 {
   GLfloat tube_width = 10;
 
@@ -430,11 +451,11 @@ fill_character (GLUTstrokeFont font, int c, Bool wire)
             int smooth = False;
 # endif
             if (j != stroke->num_coords)
-              tube (lx,       ly,       0,
-                    coord->x, coord->y, 0,
-                    tube_width,
-                    tube_width * 0.15,
-                    TUBE_FACES, smooth, True, wire);
+              *polysP += tube (lx,       ly,       0,
+                               coord->x, coord->y, 0,
+                               tube_width,
+                               tube_width * 0.15,
+                               TUBE_FACES, smooth, True, wire);
             lx = coord->x;
             ly = coord->y;
           }
@@ -479,9 +500,10 @@ text_extents (const char *string, int *wP, int *hP)
 }
 
 
-static void
+static unsigned long
 fill_string (const char *string, Bool wire)
 {
+  int polys = 0;
   const char *s, *start;
   int line_height = GLUT_FONT->top - GLUT_FONT->bottom;
   int off;
@@ -518,7 +540,7 @@ fill_string (const char *string, Bool wire)
           {
             glPushMatrix();
             glTranslatef(x, y, 0);
-            off = fill_character (GLUT_FONT, *s2, wire);
+            off = fill_character (GLUT_FONT, *s2, wire, &polys);
             x += off;
             glPopMatrix();
           }
@@ -531,6 +553,7 @@ fill_string (const char *string, Bool wire)
       }
     else
       s++;
+  return polys;
 }
 
 
@@ -611,7 +634,7 @@ draw_text (ModeInfo *mi)
 
   glScalef(0.01, 0.01, 0.01);
 
-  fill_string(tp->text, wire);
+  mi->polygon_count = fill_string(tp->text, wire);
 
   glPopMatrix ();
 
index a99ce702036b299c092cc5f9624fc0020e068255..0af1d0a3c2a024ba81cd3fc38a913a2907a49636 100644 (file)
@@ -97,9 +97,7 @@ Allow spins to go all the way around or upside down.  This is the default.
 Render in wireframe instead of solid.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index e3c0cd42402fdb781b03a48a0be8e502d4c7f9c9..d02e316ae62e85a1b9f1cade3f3055bcca0b7013 100644 (file)
@@ -12,6 +12,7 @@
 
 #include <math.h>
 #include <stdlib.h>
+#include <string.h>
 
 #ifdef HAVE_CONFIG_H
 # include "config.h"
@@ -43,6 +44,15 @@ gltrackball_init (void)
   return ts;
 }
 
+/* Reset the trackball to the default unrotated state.
+ */
+void
+gltrackball_reset (trackball_state *ts)
+{
+  memset (ts, 0, sizeof(*ts));
+  trackball (ts->q, 0, 0, 0, 0);
+}
+
 /* Begin tracking the mouse: Call this when the mouse button goes down.
    x and y are the mouse position relative to the window.
    w and h are the size of the window.
index a56888409100dfc69f4c448e0fe0e44bbe0273ac..33de09d516f8042ea58840a21b9ae3a03587f91b 100644 (file)
@@ -51,5 +51,9 @@ void gltrackball_mousewheel (trackball_state *ts,
  */
 extern void gltrackball_get_quaternion (trackball_state *ts, float q[4]);
 
+/* Reset the trackball to the default unrotated state.
+ */
+extern void gltrackball_reset (trackball_state *ts);
+
 #endif /* __GLTRACKBALL_H__ */
 
index 37076724f2f6bc0b226d99c1384962a653ba9b4a..55ee7f515f3cfa0eb5277328f81da6919c39777b 100644 (file)
@@ -40,6 +40,12 @@ extern void check_gl_error (const char *type);
 extern char *progname;
 
 
+#undef DEBUG  /* Defining this causes check_gl_error() to be called inside
+                 time-critical sections, which could slow things down (since
+                 it might result in a round-trip, and stall of the pipeline.)
+               */
+
+
 /* Loads the font named by the X resource "res".
    Returns an XFontStruct.
    Also converts the font to a set of GL lists and returns the first list.
@@ -50,7 +56,7 @@ load_font (Display *dpy, char *res, XFontStruct **font_ret, GLuint *dlist_ret)
   XFontStruct *f;
 
   const char *font = get_string_resource (dpy, res, "Font");
-  const char *def1 = "-*-times-bold-r-normal-*-180-*";
+  const char *def1 = "-*-helvetica-medium-r-normal-*-180-*";
   const char *def2 = "fixed";
   Font id;
   int first, last;
@@ -128,21 +134,33 @@ load_font (Display *dpy, char *res, XFontStruct **font_ret, GLuint *dlist_ret)
 }
 
 
-/* Width of the string in pixels.
+/* Width (and optionally height) of the string in pixels.
  */
 int
-string_width (XFontStruct *f, const char *c)
+string_width (XFontStruct *f, const char *c, int *height_ret)
 {
-  int w = 0;
+  int x = 0;
+  int max_w = 0;
+  int h = f->ascent + f->descent;
   while (*c)
     {
       int cc = *((unsigned char *) c);
-      w += (f->per_char
-            ? f->per_char[cc-f->min_char_or_byte2].rbearing
-            : f->min_bounds.rbearing);
+      if (*c == '\n')
+        {
+          if (x > max_w) max_w = x;
+          x = 0;
+          h += f->ascent + f->descent;
+        }
+      else
+        x += (f->per_char
+              ? f->per_char[cc-f->min_char_or_byte2].width
+              : f->min_bounds.rbearing);
       c++;
     }
-  return w;
+  if (x > max_w) max_w = x;
+  if (height_ret) *height_ret = h;
+
+  return max_w;
 }
 
 
@@ -157,37 +175,86 @@ print_gl_string (Display *dpy,
                  GLuint font_dlist,
                  int window_width, int window_height,
                  GLfloat x, GLfloat y,
-                 const char *string)
+                 const char *string,
+                 Bool clear_background_p)
 {
   GLfloat line_height = font->ascent + font->descent;
   GLfloat sub_shift = (line_height * 0.3);
-  int cw = string_width (font, "m");
+  int cw = string_width (font, "m", 0);
   int tabs = cw * 7;
 
   y -= line_height;
 
+  /* Sadly, this causes a stall of the graphics pipeline (as would the
+     equivalent calls to glGet*.)  But there's no way around this, short
+     of having each caller set up the specific display matrix we need
+     here, which would kind of defeat the purpose of centralizing this
+     code in one file.
+   */
   glPushAttrib (GL_TRANSFORM_BIT |  /* for matrix contents */
-                GL_ENABLE_BIT);     /* for various glDisable calls */
-  glDisable (GL_LIGHTING);
-  glDisable (GL_DEPTH_TEST);
-  glDisable (GL_TEXTURE_2D);
+                GL_ENABLE_BIT |     /* for various glDisable calls */
+                GL_CURRENT_BIT |    /* for glColor3f() */
+                GL_LIST_BIT);       /* for glListBase() */
   {
+# ifdef DEBUG
+    check_gl_error ("glPushAttrib");
+# endif
+
+    /* disable lighting and texturing when drawing bitmaps!
+       (glPopAttrib() restores these.)
+     */
+    glDisable (GL_TEXTURE_2D);
+    glDisable (GL_LIGHTING);
+    glDisable (GL_BLEND);
+    glDisable (GL_DEPTH_TEST);
+    glDisable (GL_CULL_FACE);
+
+    /* glPopAttrib() does not restore matrix changes, so we must
+       push/pop the matrix stacks to be non-intrusive there.
+     */
     glMatrixMode(GL_PROJECTION);
     glPushMatrix();
     {
+# ifdef DEBUG
+      check_gl_error ("glPushMatrix");
+# endif
       glLoadIdentity();
 
+      /* Each matrix mode has its own stack, so we need to push/pop
+         them separately. */
       glMatrixMode(GL_MODELVIEW);
       glPushMatrix();
       {
         unsigned int i;
         int x2 = x;
         Bool sub_p = False;
-        glLoadIdentity();
 
+# ifdef DEBUG
+        check_gl_error ("glPushMatrix");
+# endif
+
+        glLoadIdentity();
         gluOrtho2D (0, window_width, 0, window_height);
+# ifdef DEBUG
+        check_gl_error ("gluOrtho2D");
+# endif
+
+        if (clear_background_p)
+          {
+            int w, h;
+            int lh = font->ascent + font->descent;
+            w = string_width (font, string, &h);
+            glColor3f (0, 0, 0);
+            glRecti (x - font->descent,
+                     y + lh, 
+                     x + w + 2*font->descent,
+                     y + lh - h - font->descent);
+            glColor3f (1, 1, 1);
+          }
 
+        /* draw the text */
         glRasterPos2f (x, y);
+/*        glListBase (font_dlist);*/
         for (i = 0; i < strlen(string); i++)
           {
             unsigned char c = (unsigned char) string[i];
@@ -215,12 +282,16 @@ print_gl_string (Display *dpy,
               }
             else
               {
+/*            glCallLists (s - string, GL_UNSIGNED_BYTE, string);*/
                 glCallList (font_dlist + (int)(c));
                 x2 += (font->per_char
                        ? font->per_char[c - font->min_char_or_byte2].width
                        : font->min_bounds.width);
               }
           }
+# ifdef DEBUG
+        check_gl_error ("print_gl_string");
+# endif
       }
       glPopMatrix();
     }
@@ -228,6 +299,9 @@ print_gl_string (Display *dpy,
     glPopMatrix();
   }
   glPopAttrib();
+# ifdef DEBUG
+  check_gl_error ("glPopAttrib");
+# endif
 
   glMatrixMode(GL_MODELVIEW);
 }
index 32bee489f9a3ac7bfdb82b2089e0be92c9313c8d..75107909af1666e2cd65225988095e273aa66f6a 100644 (file)
@@ -1,4 +1,4 @@
-/* glxfonts, Copyright (c) 2001-2004 Jamie Zawinski <jwz@jwz.org>
+/* glxfonts, Copyright (c) 2001-2008 Jamie Zawinski <jwz@jwz.org>
  * Loads X11 fonts for use with OpenGL.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -23,8 +23,9 @@ extern void load_font (Display *, char *resource,
                        XFontStruct **font_ret,
                        GLuint *dlist_ret);
 
-/* Width of the string in pixels. */
-extern int string_width (XFontStruct *f, const char *c);
+/* Bounding box of the string in pixels.
+ */
+extern int string_width (XFontStruct *f, const char *c, int *height_ret);
 
 /* Draws the string on the window at the given pixel position.
    Newlines and tab stops are honored.
@@ -35,6 +36,7 @@ void print_gl_string (Display *dpy,
                       GLuint font_dlist,
                       int window_width, int window_height,
                       GLfloat x, GLfloat y,
-                      const char *string);
+                      const char *string,
+                      Bool clear_background_p);
 
 #endif /* __GLXFONTS_H__ */
index 1669707d3eba7dcd9f5af649bc5ec750211b51ba..17f948f144a0d8a3cef3b56122b1402428cbad8b 100644 (file)
@@ -521,9 +521,10 @@ static void color(double angle)
    will only work correctly if numu and numv are set to 64 or any higher
    power of 2.  Similarly, the banded appearance will only work correctly
    if numu and numv are divisible by 4. */
-static void hypertorus(ModeInfo *mi, double umin, double umax, double vmin,
+static int hypertorus(ModeInfo *mi, double umin, double umax, double vmin,
                        double vmax, int numu, int numv)
 {
+  int polys = 0;
   static const GLfloat mat_diff_red[]         = { 1.0, 0.0, 0.0, 1.0 };
   static const GLfloat mat_diff_green[]       = { 0.0, 1.0, 0.0, 1.0 };
   static const GLfloat mat_diff_trans_red[]   = { 1.0, 0.0, 0.0, 0.7 };
@@ -651,10 +652,13 @@ static void hypertorus(ModeInfo *mi, double umin, double umax, double vmin,
         n[2] /= t;
         glNormal3fv(n);
         glVertex3fv(p);
+        polys++;
       }
     }
     glEnd();
   }
+  polys /= 2;
+  return polys;
 }
 
 
@@ -793,7 +797,7 @@ static void display_hypertorus(ModeInfo *mi)
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
 
-  hypertorus(mi,0.0,2.0*M_PI,0.0,2.0*M_PI,64,64);
+  mi->polygon_count = hypertorus(mi,0.0,2.0*M_PI,0.0,2.0*M_PI,64,64);
 }
 
 
index 3510380af50d2a0bb094a3ff18030a584a0871f9..8c7075f7821c48a6030d8fa112cb82489b9e66e0 100644 (file)
@@ -152,6 +152,9 @@ Rotation speed around the xz plane (default: 1.9).
 .TP 8
 .B \-speed-yz \fIfloat\fP
 Rotation speed around the yz plane (default: 2.1).
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH INTERACTION
 If you run this program in standalone mode you can rotate the
 hypertorus by dragging the mouse while pressing the left mouse button.
index a8fb6e99ad9a12a2fd8e27dda7da56a01c162c64..233c9453fd9e06aed80f1e904c7ae020a5431141 100644 (file)
@@ -54,8 +54,8 @@ rather than them all having the same origin.
 If specified, then each pair of left-wrapping and right-wrapping
 spirals will be mirror images of each other.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 9ed889f8f8c642f8b9cd3380b54d547315bfcaab..2c1ed3309928cbfaa937490b790e04495187e38f 100644 (file)
@@ -66,6 +66,9 @@
 #define DEF_HOLD            "800"
 #define DEF_SPHERISM        "75"
 #define DEF_DAMPING         "500"
+#define DEF_RANDOM         "True"
+#define DEF_TETRA          "False"
+#define DEF_SPOOKY         "0"
 
 #ifndef max
 #define max(a,b) (((a)>(b))?(a):(b))
@@ -137,9 +140,9 @@ static XrmOptionDescRec opts[] = {
 };
 
 static argtype vars[] = {
-    {&random_parms, "random", "Random", "True", t_Bool},
-    {&do_tetrahedron, "tetra", "Tetra", "False", t_Bool},
-    {&spooky, "spooky", "Spooky", "0", t_Int},
+    {&random_parms, "random", "Random", DEF_RANDOM, t_Bool},
+    {&do_tetrahedron, "tetra", "Tetra", DEF_TETRA, t_Bool},
+    {&spooky, "spooky", "Spooky", DEF_SPOOKY, t_Int},
     {&color, "color", "Color", DEF_COLOR, t_String},
     {&shininess, "shininess", "Shininess", DEF_SHININESS, t_Int},
     {&complexity, "complexity", "Complexity", DEF_COMPLEXITY, t_Int},
@@ -670,9 +673,10 @@ static inline void vertex_render(vertex *vtx, jigglystruct *js)
  * see what the cost is of calling glBegin/glEnd for each
  * triangle.
  */
-static inline void face_render(face *f, jigglystruct *js)
+static inline int face_render(face *f, jigglystruct *js)
 {
     hedge *h1, *h2, *hend;
+    int polys = 0;
 
     h1 = f->start;
     hend = h1->prev;
@@ -688,12 +692,15 @@ static inline void face_render(face *f, jigglystruct *js)
        vertex_render(hend->vtx, js);
        h1 = h2;
        h2 = h1->next;
+        polys++;
     }
     glEnd();
+    return polys;
 }
 
-static void jigglypuff_render(jigglystruct *js) 
+static int jigglypuff_render(jigglystruct *js) 
 {
+    int polys = 0;
     face *f = js->shape->faces;
     vertex *vtx = js->shape->vertices;
 
@@ -702,9 +709,10 @@ static void jigglypuff_render(jigglystruct *js)
        vtx = vtx->next;
     }
     while(f) {
-       face_render(f, js);
+       polys += face_render(f, js);
        f=f->next;
     }
+    return polys;
 }
 
 /* This is the jiggling code */
@@ -991,7 +999,7 @@ ENTRYPOINT void draw_jigglypuff(ModeInfo *mi)
        glColor4fv(js->jiggly_color);
     }
     
-    jigglypuff_render(js);
+    mi->polygon_count = jigglypuff_render(js);
     if(MI_IS_FPS(mi))
        do_fps(mi);
     glFinish();
@@ -1061,7 +1069,7 @@ ENTRYPOINT void init_jigglypuff(ModeInfo *mi)
           js->do_wireframe, js->spooky, js->color_style, js->shininess);*/
 }
 
-XSCREENSAVER_MODULE ("Jigglypuff", jigglypuff)
+XSCREENSAVER_MODULE ("JigglyPuff", jigglypuff)
 
 #endif /* USE_GL */
 
index 2da778938cb7d78c06d03b0b6b393c32a59fc4ab..4a5f8bf5c1de338ba7aeb0bc73fd334694eed4b1 100644 (file)
@@ -41,8 +41,8 @@ Per-frame delay, in microseconds.  Default: 20000 (0.02 seconds.).
 .B \-wireframe
 Render in wireframe instead of solid. Default: render solid.
 .TP 8
-.B \-fps | \-no-fps
-Display frames per second. Default: off.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B -tetra | -no-tetra
 Whether to start the shape in the form of a tetrahedron. The default
index 8e4c98d43b854075ffa5dfd39a9c5da4de9b02cc..cdf6187a502c4db9c68de40b4cf9457d19a136e8 100644 (file)
@@ -1928,6 +1928,14 @@ typedef struct
 } JUGGLER3D_CONFIG;
 
 
+#define DEF_MAX_OBJS           "8"
+#define DEF_MIN_OBJS           "3"
+#define DEF_MAX_HINC           "6"
+#define DEF_MIN_HINC           "2"
+#define DEF_JUGGLE_SPEED       "2.2"
+#define DEF_TRANSLATE_SPEED    "0.1"
+#define DEF_SPIN_SPEED         "20.0"
+
 static JUGGLER3D_CONFIG* pConfigInfo = NULL;
 static int MaxObjects;
 static int MinObjects;
@@ -1937,31 +1945,31 @@ static float SpinSpeed;
 static float TranslateSpeed;
 static float JuggleSpeed;
 
-static XrmOptionDescRec Options[] =
+static XrmOptionDescRec opts[] =
 {
     {"-spin", ".spinSpeed", XrmoptionSepArg, 0},
     {"-trans", ".translateSpeed", XrmoptionSepArg, 0},
     {"-speed", ".juggleSpeed", XrmoptionSepArg, 0},
     {"-maxobjs", ".maxObjs", XrmoptionSepArg, 0},
     {"-minobjs", ".minObjs", XrmoptionSepArg, 0},
-    {"-maxhinc", ".maxHInc", XrmoptionSepArg, 0},
-    {"-minhinc", ".minHInc", XrmoptionSepArg, 0},
+    {"-maxhinc", ".maxHinc", XrmoptionSepArg, 0},
+    {"-minhinc", ".minHinc", XrmoptionSepArg, 0},
 };
 
 
-static argtype Vars[] = 
+static argtype vars[] = 
 {
-    {&MaxObjects, "maxObjs", "MaxObjs", "8", t_Int},
-    {&MinObjects, "minObjs", "MinObjs", "3", t_Int},
-    {&MaxHeightInc, "maxHInc", "MaxHInc", "6", t_Int},
-    {&MinHeightInc, "minHInc", "MinHInc", "2", t_Int},
-    {&JuggleSpeed, "juggleSpeed", "JuggleSpeed", "2.2", t_Float},
-    {&TranslateSpeed, "translateSpeed", "TranslateSpeed", "0.1", t_Float},
-    {&SpinSpeed, "spinSpeed", "SpinSpeed", "20.0", t_Float},
+    {&MaxObjects, "maxObjs", "MaxObjs", DEF_MAX_OBJS, t_Int},
+    {&MinObjects, "minObjs", "MinObjs", DEF_MIN_OBJS, t_Int},
+    {&MaxHeightInc, "maxHinc", "MaxHinc", DEF_MAX_HINC, t_Int},
+    {&MinHeightInc, "minHinc", "MinHinc", DEF_MIN_HINC, t_Int},
+    {&JuggleSpeed, "juggleSpeed", "JuggleSpeed", DEF_JUGGLE_SPEED, t_Float},
+    {&TranslateSpeed, "translateSpeed", "TranslateSpeed", DEF_TRANSLATE_SPEED, t_Float},
+    {&SpinSpeed, "spinSpeed", "SpinSpeed", DEF_SPIN_SPEED, t_Float},
 };
 
 
-ENTRYPOINT ModeSpecOpt juggler3d_opts = {countof(Options), Options, countof(Vars), Vars};
+ENTRYPOINT ModeSpecOpt juggler3d_opts = {countof(opts), opts, countof(vars), vars};
 
 
 ENTRYPOINT void reshape_juggler3d(ModeInfo *mi, int width, int height)
index a07d890b1edfe40167d9b1062e6a13b088b523fd..6ae9044a89ca346889d2aef51dffe90c03f018c0 100644 (file)
@@ -62,8 +62,8 @@ Defaults: \fBminhinc\fP=1 and \fBmaxhinc\fP=6.
 .B \-wireframe | \-no-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index e37767e89c0205eafbf28a5604ba80455e99f86e..b90644da9f289e7f007ded0d4fc1a5e6ad42cc73 100644 (file)
@@ -24,7 +24,7 @@
 
 #define DEF_SPIN                               "True"
 #define DEF_WANDER                             "False"
-#define DEF_RANDOM                             "True"
+#define DEF_RAND                               "True"
 #define DEF_SPEED                              "150"
 
 #include "rotator.h"
@@ -78,7 +78,7 @@ static XrmOptionDescRec opts[] = {
 };
 
 static argtype vars[] = {
-  {&rand,      "rand",   "Random", DEF_RANDOM, t_Bool},
+  {&rand,      "rand",   "Random", DEF_RAND,   t_Bool},
   {&do_spin,   "spin",   "Spin",   DEF_SPIN,   t_Bool},
   {&do_wander, "wander", "Wander", DEF_WANDER, t_Bool},
   {&speed,     "speed",  "Speed",  DEF_SPEED,  t_Int},
@@ -122,6 +122,7 @@ draw(ModeInfo *mi)
        double u, v;
        float coord[3];
        
+    mi->polygon_count = 0;
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
        glEnable(GL_DEPTH_TEST);
@@ -159,6 +160,7 @@ draw(ModeInfo *mi)
                                coord[2] = sin(u/2)*sin(v) + cos(u/2)*sin(2*v)/2;
                                glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
                                glVertex3fv(coord);
+                mi->polygon_count++;
                        }
                }
                break;
@@ -170,6 +172,7 @@ draw(ModeInfo *mi)
                                        coord[2] = kp->a*(cos(v) + sin(tan((v/2))))+0.2*u;
                                        glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
                                        glVertex3fv(coord);
+                    mi->polygon_count++;
                                }
                        }
                        break;
@@ -181,6 +184,7 @@ draw(ModeInfo *mi)
                                        coord[2] = u*u-v*v;
                                        glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
                                        glVertex3fv(coord);
+                    mi->polygon_count++;
                                }
                        }
                        break;
@@ -193,6 +197,7 @@ draw(ModeInfo *mi)
 
                                        glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
                                        glVertex3fv(coord);
+                    mi->polygon_count++;
                                }
                        }
                        break;
@@ -204,6 +209,7 @@ draw(ModeInfo *mi)
                                        coord[2] = v*sin(u/2);
                                        glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
                                        glVertex3fv(coord);
+                    mi->polygon_count++;
                                }
                        }
                        break;
@@ -215,6 +221,7 @@ draw(ModeInfo *mi)
                                        coord[2] = sin(kp->b+=0.00001)*v/(2*M_PI)+kp->a*(1-v/(2*M_PI))*sin(u);
                                        glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
                                        glVertex3fv(coord);
+                    mi->polygon_count++;
                                }
                        }
                        break;
@@ -226,6 +233,7 @@ draw(ModeInfo *mi)
                                        coord[2] = u;
                                        glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
                                        glVertex3fv(coord);
+                    mi->polygon_count++;
                                }
                        }
                        break;
@@ -237,6 +245,7 @@ draw(ModeInfo *mi)
                                        coord[2] = sin(v);
                                        glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
                                        glVertex3fv(coord);
+                    mi->polygon_count++;
                                }
                        }
                        break;
@@ -248,6 +257,7 @@ draw(ModeInfo *mi)
                                        coord[2] = sin(u/2)*cos(v) + cos(u/2)*sin(v);
                                        glColor3f(coord[0]+0.7, coord[1]+0.7, coord[2]+0.7);
                                        glVertex3fv(coord);
+                    mi->polygon_count++;
                                }
                        }
                        break;
@@ -255,6 +265,8 @@ draw(ModeInfo *mi)
        glEnd();
        glPopMatrix();
 
+    if (kp->render == GL_LINES)
+      mi->polygon_count /= 2;
 
        kp->a = sin(kp->draw_step+=0.01);
        kp->b = cos(kp->draw_step+=0.01);
index 3bbccb146861bd688d59ceef65d3e5ec91d5f78d..c5c52d6c51f7c2712c86856fb129d08a69409c75 100644 (file)
@@ -41,8 +41,8 @@ Whether to wander around the screen.
 .B \-spin | \no-spin
 Whether to rotate around the centre of the figure.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index c3f12c084959b580d716002152ab750381899fcd..2077dd674959f7cf3a533fa369b5ef81040cbcdd 100644 (file)
@@ -39,9 +39,7 @@ Only draw outlines.
 How long to pause between frames.  Default is 20000, or 0.02 second.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 91fecbc680d7bd4331e8abcbf7708a18c63c945b..3d7aad5bad5042f91170034a1d6576bba4c57619 100644 (file)
@@ -78,9 +78,7 @@ blobs, at the expense of speed.  Default: 40.
 The options "-resolution 10 -no-smooth" look kind of interesting.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-count \fIinteger\fP
 The maximum number of blobs that can be in motion at once.
index 62d6ef3bdfb41430e985f1a3a98785453e6144f2..d4081ee969e665860078ef300726ae99b7ecc411 100644 (file)
@@ -139,25 +139,34 @@ static int                g_blinkidle_min,
 static int             g_blinkdwell_min,
                        g_blinkdwell_max;
 
+#define DEF_BLINK              "True"
+#define DEF_ROTATEIDLEMIN      "1000"
+#define DEF_ROTATEIDLEMAX      "6000"
+#define DEF_BLINKIDLEMIN       "1000"
+#define DEF_BLINKIDLEMAX       "9000"
+#define DEF_BLINKDWELLMIN      "100"
+#define DEF_BLINKDWELLMAX      "600"
+
+
 static XrmOptionDescRec opts[] = {
        { "-blink",     ".blink",  XrmoptionNoArg, "on" },
        { "+blink",     ".blink",  XrmoptionNoArg, "off" },
-       { "-rotateidle-min",    ".rotateidle-min",      XrmoptionSepArg,        0 },
-       { "-rotateidle-max",    ".rotateidle-max",      XrmoptionSepArg,        0 },
-       { "-blinkidle-min",     ".blinkidle-min",       XrmoptionSepArg,        0 },
-       { "-blinkidle-max",     ".blinkidle-max",       XrmoptionSepArg,        0 },
-       { "-blinkdwell-min",    ".blinkdwell-min",      XrmoptionSepArg,        0 },
-       { "-blinkdwell-max",    ".blinkdwell-max",      XrmoptionSepArg,        0 },
+       { "-rotateidle-min",    ".rotateidlemin",       XrmoptionSepArg,        0 },
+       { "-rotateidle-max",    ".rotateidlemax",       XrmoptionSepArg,        0 },
+       { "-blinkidle-min",     ".blinkidlemin",        XrmoptionSepArg,        0 },
+       { "-blinkidle-max",     ".blinkidlemax",        XrmoptionSepArg,        0 },
+       { "-blinkdwell-min",    ".blinkdwellmin",       XrmoptionSepArg,        0 },
+       { "-blinkdwell-max",    ".blinkdwellmax",       XrmoptionSepArg,        0 },
 };
 
 static argtype vars[] = {
-       { &g_blink_p, "blink",  "Blink", "True", t_Bool },
-       { &g_rotateidle_min, "rotateidle-min",  "Rotateidle-min", "1000", t_Int },
-       { &g_rotateidle_max, "rotateidle-max",  "Rotateidle-max", "6000", t_Int },
-       { &g_blinkidle_min, "blinkidle-min", "Blinkidle-min", "1000", t_Int },
-       { &g_blinkidle_max, "blinkidle-max", "Blinkidle-max", "9000", t_Int },
-       { &g_blinkdwell_min, "blinkdwell-min", "Blinkdwell-min", "100", t_Int },
-       { &g_blinkdwell_max, "blinkdwell-max", "Blinkdwell-max", "600", t_Int },
+       { &g_blink_p, "blink",  "Blink", DEF_BLINK, t_Bool      },
+       { &g_rotateidle_min, "rotateidlemin",   "Rotateidlemin", DEF_ROTATEIDLEMIN, t_Int       },
+       { &g_rotateidle_max, "rotateidlemax",   "Rotateidlemax", DEF_ROTATEIDLEMAX, t_Int       },
+       { &g_blinkidle_min, "blinkidlemin", "Blinkidlemin", DEF_BLINKIDLEMIN, t_Int },
+       { &g_blinkidle_max, "blinkidlemax", "Blinkidlemax", DEF_BLINKIDLEMAX, t_Int },
+       { &g_blinkdwell_min, "blinkdwellmin", "Blinkdwellmin", DEF_BLINKDWELLMIN, t_Int },
+       { &g_blinkdwell_max, "blinkdwellmax", "Blinkdwellmax", DEF_BLINKDWELLMAX, t_Int },
 };
 
 static OptionStruct desc[] = {
index 7264962a139623a4aa88cd9d8268053c54acf512..f55e5be0ac572f7c091ebba80837f1d6c4daaa6d 100644 (file)
@@ -10,7 +10,7 @@ lockward - Rotating spinning color-cycling things
 [\-window-id \fIarg\fP]
 [\-delay \fIusec\fP]
 [\-pair]
-[\-fps | \-no-fps]
+[\-fps]
 [\-blink | \-no-blink]
 [\-rotateidle-min \fImsec\fP]
 [\-rotateidle-max \fImsec\fP]
@@ -42,9 +42,8 @@ Per-frame delay, in microseconds.  Default: 20000 (50 frames/sec).
 .B \-blink | \-no-blink
 Enables/disables the blinking effects.  Default: Enabled.
 .TP 8
-.B \-fps | \-no-fps
-Enables/disables display of frames per second at bottom of window.  Default:
-Disabled.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-rotateidle-min \fImilliseconds
 .TP 8
index 3f702bbb584bbf899e45450edf9058b199df853f..c2c21412b0888080c6b286f722df1664fbc89bbe 100644 (file)
@@ -52,8 +52,8 @@ None.
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index fe6985e138e739063cfe0fc1071e2ac46e5db044..039e635140fedd88161c1a60b8a82596c915af51 100644 (file)
@@ -123,15 +123,15 @@ static XrmOptionDescRec opts[] = {
     {"+texture",          ".blob.texture",          XrmoptionNoArg, "false" },
     {"-colour",           ".blob.colour",           XrmoptionNoArg, "true" },
     {"+colour",           ".blob.colour",           XrmoptionNoArg, "false" },
-    {"-offset-texture",   ".blob.offset_texture",   XrmoptionNoArg, "true" },
-    {"+offset-texture",   ".blob.offset_texture",   XrmoptionNoArg, "false" },
-    {"-paint-background", ".blob.paint_background", XrmoptionNoArg, "true" },
-    {"+paint-background", ".blob.paint_background", XrmoptionNoArg, "false" },
+    {"-offset-texture",   ".blob.offsetTexture",   XrmoptionNoArg, "true" },
+    {"+offset-texture",   ".blob.offsetTexture",   XrmoptionNoArg, "false" },
+    {"-paint-background", ".blob.paintBackground", XrmoptionNoArg, "true" },
+    {"+paint-background", ".blob.paintBackground", XrmoptionNoArg, "false" },
     {"-resolution",       ".blob.resolution",       XrmoptionSepArg, NULL },
     {"-bumps",            ".blob.bumps",            XrmoptionSepArg, NULL },
-    {"-motion-blur",      ".blob.motion_blur",      XrmoptionSepArg, 0 },
-    {"-fade-time",        ".blob.fade_time",        XrmoptionSepArg, 0 },
-    {"-hold-time",        ".blob.hold_time",        XrmoptionSepArg, 0 },
+    {"-motion-blur",      ".blob.motionBlur",       XrmoptionSepArg, 0 },
+    {"-fade-time",        ".blob.fadeTime",         XrmoptionSepArg, 0 },
+    {"-hold-time",        ".blob.holdTime",         XrmoptionSepArg, 0 },
     {"-zoom",             ".blob.zoom",             XrmoptionSepArg, 0 },
 };
 
@@ -143,13 +143,13 @@ static argtype vars[] = {
     {&do_walls,     "walls",        "Walls",     DEF_WALLS,     t_Bool},
     {&do_texture,   "texture",      "Texture",   DEF_TEXTURE,   t_Bool},
     {&do_colour,    "colour",       "Colour",    DEF_COLOUR,   t_Bool},
-    {&offset_texture, "offset_texture","Offset_Texture", DEF_OFFSET_TEXTURE, t_Bool},
-    {&do_paint_background,"paint_background","Paint_Background", DEF_PAINT_BACKGROUND, t_Bool},
+    {&offset_texture, "offsetTexture","OffsetTexture", DEF_OFFSET_TEXTURE, t_Bool},
+    {&do_paint_background,"paintBackground","PaintBackground", DEF_PAINT_BACKGROUND, t_Bool},
     {&resolution,   "resolution",   "Resolution",   DEF_RESOLUTION,   t_Int},
     {&bumps,        "bumps",        "Bump",         DEF_BUMPS, t_Int},
-    {&motion_blur,  "motion_blur",  "Motion_Blur",  DEF_MOTION_BLUR,  t_Float},
-    {&fade_time,    "fade_time",    "Fade_Time",    DEF_FADE_TIME,    t_Float},
-    {&hold_time,    "hold_time",    "Hold_Time",    DEF_HOLD_TIME,    t_Float},
+    {&motion_blur,  "motionBlur",   "MotionBlur",   DEF_MOTION_BLUR,  t_Float},
+    {&fade_time,    "fadeTime",     "FadeTime",     DEF_FADE_TIME,    t_Float},
+    {&hold_time,    "holdTime",     "HoldTime",     DEF_HOLD_TIME,    t_Float},
     {&zoom,         "zoom",         "Zoom",         DEF_ZOOM,         t_Float},
 };
 
@@ -1429,6 +1429,7 @@ draw_scene(ModeInfo * mi)
     double current_time;
     check_gl_error ("draw_scene");
 
+    mi->polygon_count = 0;
     glColor4d(1.0, 1.0, 1.0, 1.0);
 
     current_time = double_time();
@@ -1468,6 +1469,7 @@ draw_scene(ModeInfo * mi)
             glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
         }
         draw_background (mi);
+        mi->polygon_count++;
 
         /* When transitioning between two images paint the new image over the old
          * image with a varying alpha value to get a smooth fade.
@@ -1480,6 +1482,7 @@ draw_scene(ModeInfo * mi)
             glColor4d (1.0, 1.0, 1.0, 1.0 - fade);
 
             draw_background (mi);
+            mi->polygon_count++;
 
             /* Select the original texture to draw the blob */
             glBindTexture (GL_TEXTURE_2D, gp->textures[gp->current_texture]);
@@ -1520,11 +1523,13 @@ draw_scene(ModeInfo * mi)
         /* Disable the three colour chanels so that only the depth buffer is updated */
         glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
         draw_blob(gp);
+        mi->polygon_count += gp->num_faces;
         glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
         glDepthFunc(GL_LEQUAL);
     }
     glDepthFunc(GL_LEQUAL);
     draw_blob(gp);
+    mi->polygon_count += gp->num_faces;
 
     /* While transitioning between images draw a second blob with a modified
      * alpha value.
@@ -1583,6 +1588,7 @@ draw_scene(ModeInfo * mi)
                 }
 
                 draw_blob (gp);
+                mi->polygon_count += gp->num_faces;
 
                 if (do_colour)
                 {
index 8903224b8433f94f0f8663591822df5385bb3c47..c61f7a6025bbee171b958330fda15c6e7b2f5916 100644 (file)
@@ -81,8 +81,8 @@ Time taken to transition between images.
 .B \-zoom \fInumber\fP
 Size multiplier for blob.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 5ad9ccd5f34f1ee02994670fd09e04749954aced..1620e41fd4774a26b41544eaa992dd63116518bf 100644 (file)
@@ -82,6 +82,7 @@ static const char sccsid[] = "@(#)moebius.c   5.01 2001/03/01 xlockmore";
 # define refresh_moebius 0
 # define DEFAULTS                      "*delay:                20000   \n"                     \
                                                        "*showFPS:      False   \n"
+
 # include "xlockmore.h"                /* from the xscreensaver distribution */
 #else /* !STANDALONE */
 # include "xlock.h"            /* from the xlockmore distribution */
index 45b09d87febcae92a5ffffbc6f31902c0004459c..696e0d690195f5ccd1f43a7e7b01e95cd811c0d8 100644 (file)
@@ -39,8 +39,8 @@ Render in wireframe instead of solid.
 .B \-noants | \-no-noants
 Draw Ants.  Boolean.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index ec950d227edb6100bf49e3bcf5055d609919888b..a45519a65d9f808756993fa53179e3b323af13bf 100644 (file)
@@ -60,8 +60,8 @@ How many teeth to draw on each draw.  Default: 15.  Minimum 7, must be odd.
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 5178da62e0940a121ccf1db48fc03f249a039fdf..d75735229c86722fb39fce2aa17e37fe9f0ab3de 100644 (file)
@@ -24,8 +24,8 @@
 #define DEFAULTS       "*delay:        10000         \n" \
                        "*showFPS:      False         \n" \
                        "*wireframe:    False         \n" \
-                       "*atomFont:   -*-times-bold-r-normal-*-240-*\n" \
-                       "*titleFont:  -*-times-bold-r-normal-*-180-*\n" \
+                       "*atomFont:   -*-helvetica-medium-r-normal-*-240-*\n" \
+                       "*titleFont:  -*-helvetica-medium-r-normal-*-180-*\n" \
                        "*noLabelThreshold:    30     \n" \
                        "*wireframeThreshold:  150    \n" \
 
@@ -56,7 +56,7 @@
 #define DEF_TITLES      "True"
 #define DEF_ATOMS       "True"
 #define DEF_BONDS       "True"
-#define DEF_SHELLS      "True"
+#define DEF_ESHELLS     "True"
 #define DEF_BBOX        "False"
 #define DEF_SHELL_ALPHA "0.3"
 #define DEF_MOLECULE    "(default)"
@@ -218,7 +218,7 @@ static argtype vars[] = {
   {&do_wander,   "wander",     "Wander",       DEF_WANDER,   t_Bool},
   {&do_atoms,    "atoms",      "Atoms",        DEF_ATOMS,    t_Bool},
   {&do_bonds,    "bonds",      "Bonds",        DEF_BONDS,    t_Bool},
-  {&do_shells,   "eshells",    "EShells",      DEF_SHELLS,   t_Bool},
+  {&do_shells,   "eshells",    "EShells",      DEF_ESHELLS,  t_Bool},
   {&do_labels,   "labels",     "Labels",       DEF_LABELS,   t_Bool},
   {&do_titles,   "titles",     "Titles",       DEF_TITLES,   t_Bool},
   {&do_bbox,     "bbox",       "BBox",         DEF_BBOX,     t_Bool},
@@ -1182,7 +1182,7 @@ startup_blurb (ModeInfo *mi)
   print_gl_string (mi->dpy, mc->xfont2, mc->font2_dlist,
                    mi->xgwa.width, mi->xgwa.height,
                    10, mi->xgwa.height - 10,
-                   s);
+                   s, False);
   glFinish();
   glXSwapBuffers(MI_DISPLAY(mi), MI_WINDOW(mi));
 }
@@ -1396,7 +1396,7 @@ draw_labels (ModeInfo *mi)
       /* Before drawing the string, shift the origin to center
          the text over the origin of the sphere. */
       glBitmap (0, 0, 0, 0,
-                -string_width (mc->xfont1, a->label) / 2,
+                -string_width (mc->xfont1, a->label, 0) / 2,
                 -mc->xfont1->descent,
                 NULL);
 
@@ -1600,7 +1600,7 @@ draw_molecule (ModeInfo *mi)
           print_gl_string (mi->dpy, mc->xfont2, mc->font2_dlist,
                            mi->xgwa.width, mi->xgwa.height,
                            10, mi->xgwa.height - 10,
-                           m->label);
+                           m->label, False);
         }
     }
   glPopMatrix();
index 0d4c92ca2c55179ac2bea812c9c588ecd2f77551..6ec8328d6d2364e11fc7c13201f461f68e557fbc 100644 (file)
@@ -40,9 +40,7 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-verbose
 Print debugging info on stderr about files being loaded, etc.
index 73f0be629789edaa5ca9fdb8d7a6aa4fb598979e..5780a30eb94c104099dab7dbefe04df5bd38a2f2 100644 (file)
@@ -175,6 +175,7 @@ static morph3dstruct *morph3d = (morph3dstruct *) NULL;
       NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ;                                    \
       glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ));                                             \
       glVertex3f(VertX, VertY, VertZ);                                                                           \
+      mi->polygon_count++;                                                                                       \
                                                                                                                  \
       Xf-=Ax; Yf-=Ay; Xa-=Ax; Yb-=Ay;                                                                            \
                                                                                                                  \
@@ -186,6 +187,7 @@ static morph3dstruct *morph3d = (morph3dstruct *) NULL;
       NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ;                                    \
       glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ));                                             \
       glVertex3f(VertX, VertY, VertZ);                                                                           \
+      mi->polygon_count++;                                                                                       \
                                                                                                                  \
       Xf-=Ax; Yf+=Ay; Xa-=Ax; Yb+=Ay;                                                                            \
     }                                                                                                            \
@@ -241,6 +243,7 @@ static morph3dstruct *morph3d = (morph3dstruct *) NULL;
       NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ;                                    \
       glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ));                                             \
       glVertex3f(VertX, VertY, VertZ);                                                                           \
+      mi->polygon_count++;                                                                                       \
     }                                                                                                            \
     glEnd();                                                                                                     \
   }                                                                                                              \
@@ -277,18 +280,20 @@ static morph3dstruct *morph3d = (morph3dstruct *) NULL;
         NeiAX=Factor1*Xa-VertX; NeiAY=Factor1*Yf-VertY; NeiAZ=Factor1*Zf-VertZ;                                  \
         NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ;                                  \
         glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ));                                           \
-       glVertex3f(VertX, VertY, VertZ);                                                                         \
+               glVertex3f(VertX, VertY, VertZ);                                                                         \
+           mi->polygon_count++;                                                                                     \
                                                                                                                  \
         Xf-=x[Fi]; Yf-=y[Fi]; Xa-=x[Fi]; Yb-=y[Fi];                                                              \
                                                                                                                  \
-       Factor=1-(((Xf2=sqr(Xf))+(Yf2=sqr(Yf)))*AmpVr2);                                                         \
-       Factor1=1-((sqr(Xa)+Yf2)*AmpVr2);                                                                        \
-       Factor2=1-((Xf2+sqr(Yb))*AmpVr2);                                                                        \
+               Factor=1-(((Xf2=sqr(Xf))+(Yf2=sqr(Yf)))*AmpVr2);                                                         \
+               Factor1=1-((sqr(Xa)+Yf2)*AmpVr2);                                                                        \
+               Factor2=1-((Xf2+sqr(Yb))*AmpVr2);                                                                        \
         VertX=Factor*Xf;        VertY=Factor*Yf;        VertZ=Factor*Zf;                                         \
         NeiAX=Factor1*Xa-VertX; NeiAY=Factor1*Yf-VertY; NeiAZ=Factor1*Zf-VertZ;                                  \
         NeiBX=Factor2*Xf-VertX; NeiBY=Factor2*Yb-VertY; NeiBZ=Factor2*Zf-VertZ;                                  \
         glNormal3f(VectMul(NeiAX, NeiAY, NeiAZ, NeiBX, NeiBY, NeiBZ));                                           \
-       glVertex3f(VertX, VertY, VertZ);                                                                         \
+               glVertex3f(VertX, VertY, VertZ);                                                                         \
+           mi->polygon_count++;                                                                                     \
                                                                                                                  \
       }                                                                                                          \
       Xf=(float)Ri*x[Fi+1];                                                                                      \
@@ -305,7 +310,7 @@ static morph3dstruct *morph3d = (morph3dstruct *) NULL;
       glEnd();                                                                                                   \
     }                                                                                                            \
   }                                                                                                              \
-  VS=(Factor<0);                                                                                             \
+  VS=(Factor<0);                                                                                                    \
 }
 
 static void
@@ -750,6 +755,7 @@ draw_morph3d(ModeInfo * mi)
        if (!mp->glx_context)
                return;
 
+    mi->polygon_count = 0;
        glXMakeCurrent(display, window, *(mp->glx_context));
 
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
index 472c17e9536589098732a09d6b623dde6efb5271..21af78c60dd0736397979ec31864f95d8f8b3314 100644 (file)
@@ -31,8 +31,8 @@ Draw on the root window.
 .B \-delay \fInumber\fP
 Per-frame delay, in microseconds.  Default: 40000 (0.04 seconds.).
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 2132b7e8f5b91156d16365b2e18dac15cb0e77b1..6ec5793e7f50d358976fd69acc9e45da94e95a3a 100644 (file)
 
 #define N_SHAPES 7
 
+/* For some reason this hack screws up on Cocoa if we try to double-buffer it.
+   It looks fine single-buffered, so let's just do that. */
+static int dbuf_p = 0;
+
 ENTRYPOINT ModeSpecOpt noof_opts = {0, NULL, 0, NULL, NULL};
 
 typedef struct {
@@ -117,10 +121,10 @@ static const float bladeratio[] =
   0.22824, 0.21256, 0.19891, 0.18693, 0.17633, 0.16687,
 };
 
-static void
+static int
 drawleaf(noof_configuration *bp, int l)
 {
-
+  int polys = 0;
   int b, blades;
   float x, y;
   float wobble;
@@ -137,7 +141,7 @@ drawleaf(noof_configuration *bp, int l)
     initshapes(bp, l);      /* let it become reborn as something
                            else */
     bp->tko++;
-    return;
+    return polys;
   } {
     float w1 = sin(bp->geep[l] * 15.3 * M_PI / 180.0);
     wobble = 3.0 + 2.00 * sin(bp->geep[l] * 0.4 * M_PI / 180.0) + 3.94261 * w1;
@@ -174,6 +178,7 @@ drawleaf(noof_configuration *bp, int l)
     glVertex2f(x, y);
     glVertex2f(x, -y);  /* C */
     glVertex2f(0.3, 0.0);  /* D */
+    polys += 2;
     glEnd();
 
     /**
@@ -186,11 +191,13 @@ drawleaf(noof_configuration *bp, int l)
     glVertex2f(x, y);
     glVertex2f(0.3, 0.0);  /* D */
     glVertex2f(x, -y);  /* C */
+    polys += 3;
     glEnd();
     glDisable(GL_BLEND);
 
     glPopMatrix();
   }
+  return polys;
 }
 
 static void
@@ -372,6 +379,7 @@ draw_noof (ModeInfo *mi)
   if (!bp->glx_context)
     return;
   glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(bp->glx_context));
+  mi->polygon_count = 0;
 
   /**
   if((random() & 0xff) == 0x34){
@@ -393,15 +401,14 @@ draw_noof (ModeInfo *mi)
   for (i = 0; i < N_SHAPES; i++) {
     motionUpdate(bp, i);
     colorUpdate(bp, i);
-    drawleaf(bp, i);
+      mi->polygon_count += drawleaf(bp, i);
   }
 
   if (mi->fps_p) do_fps (mi);
   glFinish();
 
-/* For some reason this hack screws up on Cocoa if we try to double-buffer it.
-   It looks fine single-buffered, so let's just do that. */
-/*  glXSwapBuffers(MI_DISPLAY(mi), MI_WINDOW(mi)); */
+  if (dbuf_p)
+    glXSwapBuffers(MI_DISPLAY(mi), MI_WINDOW(mi));
 }
 
 
@@ -450,7 +457,7 @@ init_noof (ModeInfo *mi)
 
   bp->glx_context = init_GL(mi);
 
-  glDrawBuffer(GL_FRONT);
+  glDrawBuffer(dbuf_p ? GL_BACK : GL_FRONT);
   glClearColor(0.0, 0.0, 0.0, 1.0);
   glEnable(GL_LINE_SMOOTH);
   glShadeModel(GL_FLAT);
index b3fd3ba79e7844155785678826e5488dd5b56140..f41457125b05fe84dc505bb045e7aff2b930dae9 100644 (file)
@@ -25,6 +25,9 @@ Draw on the root window.
 .TP 8
 .B \-delay \fInumber\fP
 Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index aefbe711464f687078b07d793a2bdc465706ae74..644ff615db3a631e09c5772a9d9bbfcd177bcede 100644 (file)
@@ -12,9 +12,9 @@
 #define DEFAULTS        "*delay:        15000              \n" \
                         "*showFPS:      False              \n" \
                         "*wireframe:    False              \n" \
-                        "*titleFont:  -*-times-bold-r-normal-*-180-*\n" \
-                        "*titleFont2: -*-times-bold-r-normal-*-120-*\n" \
-                        "*titleFont3: -*-times-bold-r-normal-*-80-*\n"  \
+                        "*titleFont:  -*-helvetica-medium-r-normal-*-180-*\n" \
+                        "*titleFont2: -*-helvetica-medium-r-normal-*-120-*\n" \
+                        "*titleFont3: -*-helvetica-medium-r-normal-*-80-*\n"  \
 
 # define refresh_pinion 0
 # define release_pinion 0
@@ -165,7 +165,7 @@ new_label (ModeInfo *mi)
       print_gl_string (mi->dpy, f, fl,
                        mi->xgwa.width, mi->xgwa.height,
                        10, mi->xgwa.height - 10,
-                       label);
+                       label, False);
     }
   glEndList ();
 }
index b8d964d52aa4d750aa6eebdcb560412e519053ad..3ae6eff591729b8703d2fa19b1d384ffae2dc490 100644 (file)
@@ -56,9 +56,7 @@ a rotation per frame.)
 Render in wireframe instead of solid.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 03bb40f78548b35ad6a3ecc0624841284c9bcd2f..8874a04d344e337274fc6c8b475ab301c9bea686 100644 (file)
@@ -18,1346 +18,1346 @@ static const char sccsid[] = "@(#)pipeobjs.c    4.04 97/07/28 xlockmore";
 
 static const GLfloat BigValve_PNTS[] =
 {
-       (GLfloat) 0.756788, (GLfloat) 0.614672, (GLfloat) - 0.000000,
-       (GLfloat) 0.779498, (GLfloat) 0.599497, (GLfloat) - 0.000000,
-       (GLfloat) 0.794672, (GLfloat) 0.576788, (GLfloat) - 0.000000,
-       (GLfloat) 0.800000, (GLfloat) 0.550000, (GLfloat) - 0.000000,
-       (GLfloat) 0.794672, (GLfloat) 0.523212, (GLfloat) - 0.000000,
-       (GLfloat) 0.779498, (GLfloat) 0.500503, (GLfloat) - 0.000000,
-       (GLfloat) 0.756788, (GLfloat) 0.485328, (GLfloat) - 0.000000,
-       (GLfloat) 0.730000, (GLfloat) 0.480000, (GLfloat) - 0.000000,
-       (GLfloat) 0.703212, (GLfloat) 0.485328, (GLfloat) - 0.000000,
-       (GLfloat) 0.680503, (GLfloat) 0.500503, (GLfloat) - 0.000000,
-       (GLfloat) 0.665328, (GLfloat) 0.523212, (GLfloat) - 0.000000,
-       (GLfloat) 0.660000, (GLfloat) 0.550000, (GLfloat) - 0.000000,
-       (GLfloat) 0.665328, (GLfloat) 0.576788, (GLfloat) - 0.000000,
-       (GLfloat) 0.680503, (GLfloat) 0.599497, (GLfloat) - 0.000000,
-       (GLfloat) 0.703212, (GLfloat) 0.614672, (GLfloat) - 0.000000,
-       (GLfloat) 0.730000, (GLfloat) 0.620000, (GLfloat) - 0.000000,
-       (GLfloat) 0.756788, (GLfloat) 0.602861, (GLfloat) 0.119916,
-       (GLfloat) 0.779498, (GLfloat) 0.587978, (GLfloat) 0.116956,
-       (GLfloat) 0.794672, (GLfloat) 0.565705, (GLfloat) 0.112526,
-       (GLfloat) 0.800000, (GLfloat) 0.539432, (GLfloat) 0.107300,
-       (GLfloat) 0.794672, (GLfloat) 0.513159, (GLfloat) 0.102074,
-       (GLfloat) 0.779498, (GLfloat) 0.490886, (GLfloat) 0.097643,
-       (GLfloat) 0.756788, (GLfloat) 0.476003, (GLfloat) 0.094683,
-       (GLfloat) 0.730000, (GLfloat) 0.470777, (GLfloat) 0.093643,
-       (GLfloat) 0.703212, (GLfloat) 0.476003, (GLfloat) 0.094683,
-       (GLfloat) 0.680503, (GLfloat) 0.490886, (GLfloat) 0.097643,
-       (GLfloat) 0.665328, (GLfloat) 0.513159, (GLfloat) 0.102074,
-       (GLfloat) 0.660000, (GLfloat) 0.539432, (GLfloat) 0.107300,
-       (GLfloat) 0.665328, (GLfloat) 0.565705, (GLfloat) 0.112526,
-       (GLfloat) 0.680503, (GLfloat) 0.587978, (GLfloat) 0.116956,
-       (GLfloat) 0.703212, (GLfloat) 0.602861, (GLfloat) 0.119916,
-       (GLfloat) 0.730000, (GLfloat) 0.608087, (GLfloat) 0.120956,
-       (GLfloat) 0.756788, (GLfloat) 0.567882, (GLfloat) 0.235225,
-       (GLfloat) 0.779498, (GLfloat) 0.553863, (GLfloat) 0.229418,
-       (GLfloat) 0.794672, (GLfloat) 0.532882, (GLfloat) 0.220727,
-       (GLfloat) 0.800000, (GLfloat) 0.508134, (GLfloat) 0.210476,
-       (GLfloat) 0.794672, (GLfloat) 0.483385, (GLfloat) 0.200225,
-       (GLfloat) 0.779498, (GLfloat) 0.462404, (GLfloat) 0.191534,
-       (GLfloat) 0.756788, (GLfloat) 0.448385, (GLfloat) 0.185727,
-       (GLfloat) 0.730000, (GLfloat) 0.443462, (GLfloat) 0.183688,
-       (GLfloat) 0.703212, (GLfloat) 0.448385, (GLfloat) 0.185727,
-       (GLfloat) 0.680503, (GLfloat) 0.462404, (GLfloat) 0.191534,
-       (GLfloat) 0.665328, (GLfloat) 0.483385, (GLfloat) 0.200225,
-       (GLfloat) 0.660000, (GLfloat) 0.508134, (GLfloat) 0.210476,
-       (GLfloat) 0.665328, (GLfloat) 0.532882, (GLfloat) 0.220727,
-       (GLfloat) 0.680503, (GLfloat) 0.553863, (GLfloat) 0.229418,
-       (GLfloat) 0.703212, (GLfloat) 0.567882, (GLfloat) 0.235225,
-       (GLfloat) 0.730000, (GLfloat) 0.572805, (GLfloat) 0.237264,
-       (GLfloat) 0.756788, (GLfloat) 0.511081, (GLfloat) 0.341493,
-       (GLfloat) 0.779498, (GLfloat) 0.498464, (GLfloat) 0.333063,
-       (GLfloat) 0.794672, (GLfloat) 0.479582, (GLfloat) 0.320446,
-       (GLfloat) 0.800000, (GLfloat) 0.457308, (GLfloat) 0.305564,
-       (GLfloat) 0.794672, (GLfloat) 0.435035, (GLfloat) 0.290681,
-       (GLfloat) 0.779498, (GLfloat) 0.416153, (GLfloat) 0.278064,
-       (GLfloat) 0.756788, (GLfloat) 0.403536, (GLfloat) 0.269634,
-       (GLfloat) 0.730000, (GLfloat) 0.399105, (GLfloat) 0.266674,
-       (GLfloat) 0.703212, (GLfloat) 0.403536, (GLfloat) 0.269634,
-       (GLfloat) 0.680503, (GLfloat) 0.416153, (GLfloat) 0.278064,
-       (GLfloat) 0.665328, (GLfloat) 0.435035, (GLfloat) 0.290681,
-       (GLfloat) 0.660000, (GLfloat) 0.457308, (GLfloat) 0.305564,
-       (GLfloat) 0.665328, (GLfloat) 0.479582, (GLfloat) 0.320446,
-       (GLfloat) 0.680503, (GLfloat) 0.498464, (GLfloat) 0.333063,
-       (GLfloat) 0.703212, (GLfloat) 0.511081, (GLfloat) 0.341493,
-       (GLfloat) 0.730000, (GLfloat) 0.515511, (GLfloat) 0.344454,
-       (GLfloat) 0.756788, (GLfloat) 0.434638, (GLfloat) 0.434638,
-       (GLfloat) 0.779498, (GLfloat) 0.423909, (GLfloat) 0.423909,
-       (GLfloat) 0.794672, (GLfloat) 0.407851, (GLfloat) 0.407851,
-       (GLfloat) 0.800000, (GLfloat) 0.388909, (GLfloat) 0.388909,
-       (GLfloat) 0.794672, (GLfloat) 0.369967, (GLfloat) 0.369967,
-       (GLfloat) 0.779498, (GLfloat) 0.353909, (GLfloat) 0.353909,
-       (GLfloat) 0.756788, (GLfloat) 0.343179, (GLfloat) 0.343179,
-       (GLfloat) 0.730000, (GLfloat) 0.339411, (GLfloat) 0.339411,
-       (GLfloat) 0.703212, (GLfloat) 0.343179, (GLfloat) 0.343179,
-       (GLfloat) 0.680503, (GLfloat) 0.353909, (GLfloat) 0.353909,
-       (GLfloat) 0.665328, (GLfloat) 0.369967, (GLfloat) 0.369967,
-       (GLfloat) 0.660000, (GLfloat) 0.388909, (GLfloat) 0.388909,
-       (GLfloat) 0.665328, (GLfloat) 0.407851, (GLfloat) 0.407851,
-       (GLfloat) 0.680503, (GLfloat) 0.423909, (GLfloat) 0.423909,
-       (GLfloat) 0.703212, (GLfloat) 0.434638, (GLfloat) 0.434638,
-       (GLfloat) 0.730000, (GLfloat) 0.438406, (GLfloat) 0.438406,
-       (GLfloat) 0.756788, (GLfloat) 0.341493, (GLfloat) 0.511081,
-       (GLfloat) 0.779498, (GLfloat) 0.333063, (GLfloat) 0.498464,
-       (GLfloat) 0.794672, (GLfloat) 0.320446, (GLfloat) 0.479582,
-       (GLfloat) 0.800000, (GLfloat) 0.305564, (GLfloat) 0.457308,
-       (GLfloat) 0.794672, (GLfloat) 0.290681, (GLfloat) 0.435035,
-       (GLfloat) 0.779498, (GLfloat) 0.278064, (GLfloat) 0.416153,
-       (GLfloat) 0.756788, (GLfloat) 0.269634, (GLfloat) 0.403536,
-       (GLfloat) 0.730000, (GLfloat) 0.266674, (GLfloat) 0.399105,
-       (GLfloat) 0.703212, (GLfloat) 0.269634, (GLfloat) 0.403536,
-       (GLfloat) 0.680503, (GLfloat) 0.278064, (GLfloat) 0.416153,
-       (GLfloat) 0.665328, (GLfloat) 0.290681, (GLfloat) 0.435035,
-       (GLfloat) 0.660000, (GLfloat) 0.305564, (GLfloat) 0.457308,
-       (GLfloat) 0.665328, (GLfloat) 0.320446, (GLfloat) 0.479582,
-       (GLfloat) 0.680503, (GLfloat) 0.333063, (GLfloat) 0.498464,
-       (GLfloat) 0.703212, (GLfloat) 0.341493, (GLfloat) 0.511081,
-       (GLfloat) 0.730000, (GLfloat) 0.344454, (GLfloat) 0.515511,
-       (GLfloat) 0.756788, (GLfloat) 0.235225, (GLfloat) 0.567882,
-       (GLfloat) 0.779498, (GLfloat) 0.229418, (GLfloat) 0.553863,
-       (GLfloat) 0.794672, (GLfloat) 0.220727, (GLfloat) 0.532882,
-       (GLfloat) 0.800000, (GLfloat) 0.210476, (GLfloat) 0.508134,
-       (GLfloat) 0.794672, (GLfloat) 0.200225, (GLfloat) 0.483385,
-       (GLfloat) 0.779498, (GLfloat) 0.191534, (GLfloat) 0.462404,
-       (GLfloat) 0.756788, (GLfloat) 0.185727, (GLfloat) 0.448385,
-       (GLfloat) 0.730000, (GLfloat) 0.183688, (GLfloat) 0.443462,
-       (GLfloat) 0.703212, (GLfloat) 0.185727, (GLfloat) 0.448385,
-       (GLfloat) 0.680503, (GLfloat) 0.191534, (GLfloat) 0.462404,
-       (GLfloat) 0.665328, (GLfloat) 0.200225, (GLfloat) 0.483385,
-       (GLfloat) 0.660000, (GLfloat) 0.210476, (GLfloat) 0.508134,
-       (GLfloat) 0.665328, (GLfloat) 0.220727, (GLfloat) 0.532882,
-       (GLfloat) 0.680503, (GLfloat) 0.229418, (GLfloat) 0.553863,
-       (GLfloat) 0.703212, (GLfloat) 0.235225, (GLfloat) 0.567882,
-       (GLfloat) 0.730000, (GLfloat) 0.237264, (GLfloat) 0.572805,
-       (GLfloat) 0.756788, (GLfloat) 0.119916, (GLfloat) 0.602861,
-       (GLfloat) 0.779498, (GLfloat) 0.116956, (GLfloat) 0.587978,
-       (GLfloat) 0.794672, (GLfloat) 0.112526, (GLfloat) 0.565705,
-       (GLfloat) 0.800000, (GLfloat) 0.107300, (GLfloat) 0.539432,
-       (GLfloat) 0.794672, (GLfloat) 0.102074, (GLfloat) 0.513159,
-       (GLfloat) 0.779498, (GLfloat) 0.097643, (GLfloat) 0.490886,
-       (GLfloat) 0.756788, (GLfloat) 0.094683, (GLfloat) 0.476003,
-       (GLfloat) 0.730000, (GLfloat) 0.093643, (GLfloat) 0.470777,
-       (GLfloat) 0.703212, (GLfloat) 0.094683, (GLfloat) 0.476003,
-       (GLfloat) 0.680503, (GLfloat) 0.097643, (GLfloat) 0.490886,
-       (GLfloat) 0.665328, (GLfloat) 0.102074, (GLfloat) 0.513159,
-       (GLfloat) 0.660000, (GLfloat) 0.107300, (GLfloat) 0.539432,
-       (GLfloat) 0.665328, (GLfloat) 0.112526, (GLfloat) 0.565705,
-       (GLfloat) 0.680503, (GLfloat) 0.116956, (GLfloat) 0.587978,
-       (GLfloat) 0.703212, (GLfloat) 0.119916, (GLfloat) 0.602861,
-       (GLfloat) 0.730000, (GLfloat) 0.120956, (GLfloat) 0.608087,
-       (GLfloat) 0.756788, (GLfloat) 0.000000, (GLfloat) 0.614672,
-       (GLfloat) 0.779498, (GLfloat) 0.000000, (GLfloat) 0.599497,
-       (GLfloat) 0.794672, (GLfloat) 0.000000, (GLfloat) 0.576788,
-       (GLfloat) 0.800000, (GLfloat) 0.000000, (GLfloat) 0.550000,
-       (GLfloat) 0.794672, (GLfloat) 0.000000, (GLfloat) 0.523212,
-       (GLfloat) 0.779498, (GLfloat) 0.000000, (GLfloat) 0.500503,
-       (GLfloat) 0.756788, (GLfloat) 0.000000, (GLfloat) 0.485328,
-       (GLfloat) 0.730000, (GLfloat) 0.000000, (GLfloat) 0.480000,
-       (GLfloat) 0.703212, (GLfloat) 0.000000, (GLfloat) 0.485328,
-       (GLfloat) 0.680503, (GLfloat) 0.000000, (GLfloat) 0.500503,
-       (GLfloat) 0.665328, (GLfloat) 0.000000, (GLfloat) 0.523212,
-       (GLfloat) 0.660000, (GLfloat) 0.000000, (GLfloat) 0.550000,
-       (GLfloat) 0.665328, (GLfloat) 0.000000, (GLfloat) 0.576788,
-       (GLfloat) 0.680503, (GLfloat) 0.000000, (GLfloat) 0.599497,
-       (GLfloat) 0.703212, (GLfloat) 0.000000, (GLfloat) 0.614672,
-       (GLfloat) 0.730000, (GLfloat) 0.000000, (GLfloat) 0.620000,
-       (GLfloat) 0.756788, (GLfloat) - 0.119916, (GLfloat) 0.602861,
-       (GLfloat) 0.779498, (GLfloat) - 0.116956, (GLfloat) 0.587978,
-       (GLfloat) 0.794672, (GLfloat) - 0.112526, (GLfloat) 0.565705,
-       (GLfloat) 0.800000, (GLfloat) - 0.107300, (GLfloat) 0.539432,
-       (GLfloat) 0.794672, (GLfloat) - 0.102074, (GLfloat) 0.513159,
-       (GLfloat) 0.779498, (GLfloat) - 0.097643, (GLfloat) 0.490886,
-       (GLfloat) 0.756788, (GLfloat) - 0.094683, (GLfloat) 0.476003,
-       (GLfloat) 0.730000, (GLfloat) - 0.093643, (GLfloat) 0.470777,
-       (GLfloat) 0.703212, (GLfloat) - 0.094683, (GLfloat) 0.476003,
-       (GLfloat) 0.680503, (GLfloat) - 0.097643, (GLfloat) 0.490886,
-       (GLfloat) 0.665328, (GLfloat) - 0.102074, (GLfloat) 0.513159,
-       (GLfloat) 0.660000, (GLfloat) - 0.107300, (GLfloat) 0.539432,
-       (GLfloat) 0.665328, (GLfloat) - 0.112526, (GLfloat) 0.565705,
-       (GLfloat) 0.680503, (GLfloat) - 0.116956, (GLfloat) 0.587978,
-       (GLfloat) 0.703212, (GLfloat) - 0.119916, (GLfloat) 0.602861,
-       (GLfloat) 0.730000, (GLfloat) - 0.120956, (GLfloat) 0.608087,
-       (GLfloat) 0.756788, (GLfloat) - 0.235225, (GLfloat) 0.567882,
-       (GLfloat) 0.779498, (GLfloat) - 0.229418, (GLfloat) 0.553863,
-       (GLfloat) 0.794672, (GLfloat) - 0.220727, (GLfloat) 0.532882,
-       (GLfloat) 0.800000, (GLfloat) - 0.210476, (GLfloat) 0.508134,
-       (GLfloat) 0.794672, (GLfloat) - 0.200225, (GLfloat) 0.483385,
-       (GLfloat) 0.779498, (GLfloat) - 0.191534, (GLfloat) 0.462404,
-       (GLfloat) 0.756788, (GLfloat) - 0.185727, (GLfloat) 0.448385,
-       (GLfloat) 0.730000, (GLfloat) - 0.183688, (GLfloat) 0.443462,
-       (GLfloat) 0.703212, (GLfloat) - 0.185727, (GLfloat) 0.448385,
-       (GLfloat) 0.680503, (GLfloat) - 0.191534, (GLfloat) 0.462404,
-       (GLfloat) 0.665328, (GLfloat) - 0.200225, (GLfloat) 0.483385,
-       (GLfloat) 0.660000, (GLfloat) - 0.210476, (GLfloat) 0.508134,
-       (GLfloat) 0.665328, (GLfloat) - 0.220727, (GLfloat) 0.532882,
-       (GLfloat) 0.680503, (GLfloat) - 0.229418, (GLfloat) 0.553863,
-       (GLfloat) 0.703212, (GLfloat) - 0.235225, (GLfloat) 0.567882,
-       (GLfloat) 0.730000, (GLfloat) - 0.237264, (GLfloat) 0.572805,
-       (GLfloat) 0.756788, (GLfloat) - 0.341493, (GLfloat) 0.511081,
-       (GLfloat) 0.779498, (GLfloat) - 0.333063, (GLfloat) 0.498464,
-       (GLfloat) 0.794672, (GLfloat) - 0.320446, (GLfloat) 0.479582,
-       (GLfloat) 0.800000, (GLfloat) - 0.305564, (GLfloat) 0.457308,
-       (GLfloat) 0.794672, (GLfloat) - 0.290681, (GLfloat) 0.435035,
-       (GLfloat) 0.779498, (GLfloat) - 0.278064, (GLfloat) 0.416153,
-       (GLfloat) 0.756788, (GLfloat) - 0.269634, (GLfloat) 0.403536,
-       (GLfloat) 0.730000, (GLfloat) - 0.266674, (GLfloat) 0.399105,
-       (GLfloat) 0.703212, (GLfloat) - 0.269634, (GLfloat) 0.403536,
-       (GLfloat) 0.680503, (GLfloat) - 0.278064, (GLfloat) 0.416153,
-       (GLfloat) 0.665328, (GLfloat) - 0.290681, (GLfloat) 0.435035,
-       (GLfloat) 0.660000, (GLfloat) - 0.305564, (GLfloat) 0.457308,
-       (GLfloat) 0.665328, (GLfloat) - 0.320446, (GLfloat) 0.479582,
-       (GLfloat) 0.680503, (GLfloat) - 0.333063, (GLfloat) 0.498464,
-       (GLfloat) 0.703212, (GLfloat) - 0.341493, (GLfloat) 0.511081,
-       (GLfloat) 0.730000, (GLfloat) - 0.344454, (GLfloat) 0.515511,
-       (GLfloat) 0.756788, (GLfloat) - 0.434638, (GLfloat) 0.434638,
-       (GLfloat) 0.779498, (GLfloat) - 0.423909, (GLfloat) 0.423909,
-       (GLfloat) 0.794672, (GLfloat) - 0.407851, (GLfloat) 0.407851,
-       (GLfloat) 0.800000, (GLfloat) - 0.388909, (GLfloat) 0.388909,
-       (GLfloat) 0.794672, (GLfloat) - 0.369967, (GLfloat) 0.369967,
-       (GLfloat) 0.779498, (GLfloat) - 0.353909, (GLfloat) 0.353909,
-       (GLfloat) 0.756788, (GLfloat) - 0.343179, (GLfloat) 0.343179,
-       (GLfloat) 0.730000, (GLfloat) - 0.339411, (GLfloat) 0.339411,
-       (GLfloat) 0.703212, (GLfloat) - 0.343179, (GLfloat) 0.343179,
-       (GLfloat) 0.680503, (GLfloat) - 0.353909, (GLfloat) 0.353909,
-       (GLfloat) 0.665328, (GLfloat) - 0.369967, (GLfloat) 0.369967,
-       (GLfloat) 0.660000, (GLfloat) - 0.388909, (GLfloat) 0.388909,
-       (GLfloat) 0.665328, (GLfloat) - 0.407851, (GLfloat) 0.407851,
-       (GLfloat) 0.680503, (GLfloat) - 0.423909, (GLfloat) 0.423909,
-       (GLfloat) 0.703212, (GLfloat) - 0.434638, (GLfloat) 0.434638,
-       (GLfloat) 0.730000, (GLfloat) - 0.438406, (GLfloat) 0.438406,
-       (GLfloat) 0.756788, (GLfloat) - 0.511081, (GLfloat) 0.341493,
-       (GLfloat) 0.779498, (GLfloat) - 0.498464, (GLfloat) 0.333063,
-       (GLfloat) 0.794672, (GLfloat) - 0.479582, (GLfloat) 0.320446,
-       (GLfloat) 0.800000, (GLfloat) - 0.457308, (GLfloat) 0.305564,
-       (GLfloat) 0.794672, (GLfloat) - 0.435035, (GLfloat) 0.290681,
-       (GLfloat) 0.779498, (GLfloat) - 0.416153, (GLfloat) 0.278064,
-       (GLfloat) 0.756788, (GLfloat) - 0.403536, (GLfloat) 0.269634,
-       (GLfloat) 0.730000, (GLfloat) - 0.399105, (GLfloat) 0.266674,
-       (GLfloat) 0.703212, (GLfloat) - 0.403536, (GLfloat) 0.269634,
-       (GLfloat) 0.680503, (GLfloat) - 0.416153, (GLfloat) 0.278064,
-       (GLfloat) 0.665328, (GLfloat) - 0.435035, (GLfloat) 0.290681,
-       (GLfloat) 0.660000, (GLfloat) - 0.457308, (GLfloat) 0.305564,
-       (GLfloat) 0.665328, (GLfloat) - 0.479582, (GLfloat) 0.320446,
-       (GLfloat) 0.680503, (GLfloat) - 0.498464, (GLfloat) 0.333063,
-       (GLfloat) 0.703212, (GLfloat) - 0.511081, (GLfloat) 0.341493,
-       (GLfloat) 0.730000, (GLfloat) - 0.515511, (GLfloat) 0.344454,
-       (GLfloat) 0.756788, (GLfloat) - 0.567882, (GLfloat) 0.235225,
-       (GLfloat) 0.779498, (GLfloat) - 0.553863, (GLfloat) 0.229418,
-       (GLfloat) 0.794672, (GLfloat) - 0.532882, (GLfloat) 0.220727,
-       (GLfloat) 0.800000, (GLfloat) - 0.508134, (GLfloat) 0.210476,
-       (GLfloat) 0.794672, (GLfloat) - 0.483385, (GLfloat) 0.200225,
-       (GLfloat) 0.779498, (GLfloat) - 0.462404, (GLfloat) 0.191534,
-       (GLfloat) 0.756788, (GLfloat) - 0.448385, (GLfloat) 0.185727,
-       (GLfloat) 0.730000, (GLfloat) - 0.443462, (GLfloat) 0.183688,
-       (GLfloat) 0.703212, (GLfloat) - 0.448385, (GLfloat) 0.185727,
-       (GLfloat) 0.680503, (GLfloat) - 0.462404, (GLfloat) 0.191534,
-       (GLfloat) 0.665328, (GLfloat) - 0.483385, (GLfloat) 0.200225,
-       (GLfloat) 0.660000, (GLfloat) - 0.508134, (GLfloat) 0.210476,
-       (GLfloat) 0.665328, (GLfloat) - 0.532882, (GLfloat) 0.220727,
-       (GLfloat) 0.680503, (GLfloat) - 0.553863, (GLfloat) 0.229418,
-       (GLfloat) 0.703212, (GLfloat) - 0.567882, (GLfloat) 0.235225,
-       (GLfloat) 0.730000, (GLfloat) - 0.572805, (GLfloat) 0.237264,
-       (GLfloat) 0.756788, (GLfloat) - 0.602861, (GLfloat) 0.119916,
-       (GLfloat) 0.779498, (GLfloat) - 0.587978, (GLfloat) 0.116956,
-       (GLfloat) 0.794672, (GLfloat) - 0.565705, (GLfloat) 0.112526,
-       (GLfloat) 0.800000, (GLfloat) - 0.539432, (GLfloat) 0.107300,
-       (GLfloat) 0.794672, (GLfloat) - 0.513159, (GLfloat) 0.102074,
-       (GLfloat) 0.779498, (GLfloat) - 0.490886, (GLfloat) 0.097643,
-       (GLfloat) 0.756788, (GLfloat) - 0.476003, (GLfloat) 0.094683,
-       (GLfloat) 0.730000, (GLfloat) - 0.470777, (GLfloat) 0.093643,
-       (GLfloat) 0.703212, (GLfloat) - 0.476003, (GLfloat) 0.094683,
-       (GLfloat) 0.680503, (GLfloat) - 0.490886, (GLfloat) 0.097643,
-       (GLfloat) 0.665328, (GLfloat) - 0.513159, (GLfloat) 0.102074,
-       (GLfloat) 0.660000, (GLfloat) - 0.539432, (GLfloat) 0.107300,
-       (GLfloat) 0.665328, (GLfloat) - 0.565705, (GLfloat) 0.112526,
-       (GLfloat) 0.680503, (GLfloat) - 0.587978, (GLfloat) 0.116956,
-       (GLfloat) 0.703212, (GLfloat) - 0.602861, (GLfloat) 0.119916,
-       (GLfloat) 0.730000, (GLfloat) - 0.608087, (GLfloat) 0.120956,
-       (GLfloat) 0.756788, (GLfloat) - 0.614672, (GLfloat) 0.000000,
-       (GLfloat) 0.779498, (GLfloat) - 0.599497, (GLfloat) 0.000000,
-       (GLfloat) 0.794672, (GLfloat) - 0.576788, (GLfloat) 0.000000,
-       (GLfloat) 0.800000, (GLfloat) - 0.550000, (GLfloat) 0.000000,
-       (GLfloat) 0.794672, (GLfloat) - 0.523212, (GLfloat) 0.000000,
-       (GLfloat) 0.779498, (GLfloat) - 0.500503, (GLfloat) 0.000000,
-       (GLfloat) 0.756788, (GLfloat) - 0.485328, (GLfloat) 0.000000,
-       (GLfloat) 0.730000, (GLfloat) - 0.480000, (GLfloat) 0.000000,
-       (GLfloat) 0.703212, (GLfloat) - 0.485328, (GLfloat) 0.000000,
-       (GLfloat) 0.680503, (GLfloat) - 0.500503, (GLfloat) 0.000000,
-       (GLfloat) 0.665328, (GLfloat) - 0.523212, (GLfloat) 0.000000,
-       (GLfloat) 0.660000, (GLfloat) - 0.550000, (GLfloat) 0.000000,
-       (GLfloat) 0.665328, (GLfloat) - 0.576788, (GLfloat) 0.000000,
-       (GLfloat) 0.680503, (GLfloat) - 0.599497, (GLfloat) 0.000000,
-       (GLfloat) 0.703212, (GLfloat) - 0.614672, (GLfloat) 0.000000,
-       (GLfloat) 0.730000, (GLfloat) - 0.620000, (GLfloat) 0.000000,
-       (GLfloat) 0.756788, (GLfloat) - 0.602861, (GLfloat) - 0.119916,
-       (GLfloat) 0.779498, (GLfloat) - 0.587978, (GLfloat) - 0.116956,
-       (GLfloat) 0.794672, (GLfloat) - 0.565705, (GLfloat) - 0.112526,
-       (GLfloat) 0.800000, (GLfloat) - 0.539432, (GLfloat) - 0.107300,
-       (GLfloat) 0.794672, (GLfloat) - 0.513159, (GLfloat) - 0.102074,
-       (GLfloat) 0.779498, (GLfloat) - 0.490886, (GLfloat) - 0.097643,
-       (GLfloat) 0.756788, (GLfloat) - 0.476003, (GLfloat) - 0.094683,
-       (GLfloat) 0.730000, (GLfloat) - 0.470777, (GLfloat) - 0.093643,
-       (GLfloat) 0.703212, (GLfloat) - 0.476003, (GLfloat) - 0.094683,
-       (GLfloat) 0.680503, (GLfloat) - 0.490886, (GLfloat) - 0.097643,
-       (GLfloat) 0.665328, (GLfloat) - 0.513159, (GLfloat) - 0.102074,
-       (GLfloat) 0.660000, (GLfloat) - 0.539432, (GLfloat) - 0.107300,
-       (GLfloat) 0.665328, (GLfloat) - 0.565705, (GLfloat) - 0.112526,
-       (GLfloat) 0.680503, (GLfloat) - 0.587978, (GLfloat) - 0.116956,
-       (GLfloat) 0.703212, (GLfloat) - 0.602861, (GLfloat) - 0.119916,
-       (GLfloat) 0.730000, (GLfloat) - 0.608087, (GLfloat) - 0.120956,
-       (GLfloat) 0.756788, (GLfloat) - 0.567882, (GLfloat) - 0.235225,
-       (GLfloat) 0.779498, (GLfloat) - 0.553863, (GLfloat) - 0.229418,
-       (GLfloat) 0.794672, (GLfloat) - 0.532882, (GLfloat) - 0.220727,
-       (GLfloat) 0.800000, (GLfloat) - 0.508134, (GLfloat) - 0.210476,
-       (GLfloat) 0.794672, (GLfloat) - 0.483385, (GLfloat) - 0.200225,
-       (GLfloat) 0.779498, (GLfloat) - 0.462404, (GLfloat) - 0.191534,
-       (GLfloat) 0.756788, (GLfloat) - 0.448385, (GLfloat) - 0.185727,
-       (GLfloat) 0.730000, (GLfloat) - 0.443462, (GLfloat) - 0.183688,
-       (GLfloat) 0.703212, (GLfloat) - 0.448385, (GLfloat) - 0.185727,
-       (GLfloat) 0.680503, (GLfloat) - 0.462404, (GLfloat) - 0.191534,
-       (GLfloat) 0.665328, (GLfloat) - 0.483385, (GLfloat) - 0.200225,
-       (GLfloat) 0.660000, (GLfloat) - 0.508134, (GLfloat) - 0.210476,
-       (GLfloat) 0.665328, (GLfloat) - 0.532882, (GLfloat) - 0.220727,
-       (GLfloat) 0.680503, (GLfloat) - 0.553863, (GLfloat) - 0.229418,
-       (GLfloat) 0.703212, (GLfloat) - 0.567882, (GLfloat) - 0.235225,
-       (GLfloat) 0.730000, (GLfloat) - 0.572805, (GLfloat) - 0.237264,
-       (GLfloat) 0.756788, (GLfloat) - 0.511081, (GLfloat) - 0.341493,
-       (GLfloat) 0.779498, (GLfloat) - 0.498464, (GLfloat) - 0.333063,
-       (GLfloat) 0.794672, (GLfloat) - 0.479582, (GLfloat) - 0.320446,
-       (GLfloat) 0.800000, (GLfloat) - 0.457308, (GLfloat) - 0.305564,
-       (GLfloat) 0.794672, (GLfloat) - 0.435035, (GLfloat) - 0.290681,
-       (GLfloat) 0.779498, (GLfloat) - 0.416153, (GLfloat) - 0.278064,
-       (GLfloat) 0.756788, (GLfloat) - 0.403536, (GLfloat) - 0.269634,
-       (GLfloat) 0.730000, (GLfloat) - 0.399105, (GLfloat) - 0.266674,
-       (GLfloat) 0.703212, (GLfloat) - 0.403536, (GLfloat) - 0.269634,
-       (GLfloat) 0.680503, (GLfloat) - 0.416153, (GLfloat) - 0.278064,
-       (GLfloat) 0.665328, (GLfloat) - 0.435035, (GLfloat) - 0.290681,
-       (GLfloat) 0.660000, (GLfloat) - 0.457308, (GLfloat) - 0.305564,
-       (GLfloat) 0.665328, (GLfloat) - 0.479582, (GLfloat) - 0.320446,
-       (GLfloat) 0.680503, (GLfloat) - 0.498464, (GLfloat) - 0.333063,
-       (GLfloat) 0.703212, (GLfloat) - 0.511081, (GLfloat) - 0.341493,
-       (GLfloat) 0.730000, (GLfloat) - 0.515511, (GLfloat) - 0.344454,
-       (GLfloat) 0.756788, (GLfloat) - 0.434638, (GLfloat) - 0.434638,
-       (GLfloat) 0.779498, (GLfloat) - 0.423909, (GLfloat) - 0.423909,
-       (GLfloat) 0.794672, (GLfloat) - 0.407851, (GLfloat) - 0.407851,
-       (GLfloat) 0.800000, (GLfloat) - 0.388909, (GLfloat) - 0.388909,
-       (GLfloat) 0.794672, (GLfloat) - 0.369967, (GLfloat) - 0.369967,
-       (GLfloat) 0.779498, (GLfloat) - 0.353909, (GLfloat) - 0.353909,
-       (GLfloat) 0.756788, (GLfloat) - 0.343179, (GLfloat) - 0.343179,
-       (GLfloat) 0.730000, (GLfloat) - 0.339411, (GLfloat) - 0.339411,
-       (GLfloat) 0.703212, (GLfloat) - 0.343179, (GLfloat) - 0.343179,
-       (GLfloat) 0.680503, (GLfloat) - 0.353909, (GLfloat) - 0.353909,
-       (GLfloat) 0.665328, (GLfloat) - 0.369967, (GLfloat) - 0.369967,
-       (GLfloat) 0.660000, (GLfloat) - 0.388909, (GLfloat) - 0.388909,
-       (GLfloat) 0.665328, (GLfloat) - 0.407851, (GLfloat) - 0.407851,
-       (GLfloat) 0.680503, (GLfloat) - 0.423909, (GLfloat) - 0.423909,
-       (GLfloat) 0.703212, (GLfloat) - 0.434638, (GLfloat) - 0.434638,
-       (GLfloat) 0.730000, (GLfloat) - 0.438406, (GLfloat) - 0.438406,
-       (GLfloat) 0.756788, (GLfloat) - 0.341493, (GLfloat) - 0.511081,
-       (GLfloat) 0.779498, (GLfloat) - 0.333063, (GLfloat) - 0.498464,
-       (GLfloat) 0.794672, (GLfloat) - 0.320446, (GLfloat) - 0.479582,
-       (GLfloat) 0.800000, (GLfloat) - 0.305564, (GLfloat) - 0.457308,
-       (GLfloat) 0.794672, (GLfloat) - 0.290681, (GLfloat) - 0.435035,
-       (GLfloat) 0.779498, (GLfloat) - 0.278064, (GLfloat) - 0.416153,
-       (GLfloat) 0.756788, (GLfloat) - 0.269634, (GLfloat) - 0.403536,
-       (GLfloat) 0.730000, (GLfloat) - 0.266674, (GLfloat) - 0.399105,
-       (GLfloat) 0.703212, (GLfloat) - 0.269634, (GLfloat) - 0.403536,
-       (GLfloat) 0.680503, (GLfloat) - 0.278064, (GLfloat) - 0.416153,
-       (GLfloat) 0.665328, (GLfloat) - 0.290681, (GLfloat) - 0.435035,
-       (GLfloat) 0.660000, (GLfloat) - 0.305564, (GLfloat) - 0.457308,
-       (GLfloat) 0.665328, (GLfloat) - 0.320446, (GLfloat) - 0.479582,
-       (GLfloat) 0.680503, (GLfloat) - 0.333063, (GLfloat) - 0.498464,
-       (GLfloat) 0.703212, (GLfloat) - 0.341493, (GLfloat) - 0.511081,
-       (GLfloat) 0.730000, (GLfloat) - 0.344454, (GLfloat) - 0.515511,
-       (GLfloat) 0.756788, (GLfloat) - 0.235225, (GLfloat) - 0.567882,
-       (GLfloat) 0.779498, (GLfloat) - 0.229418, (GLfloat) - 0.553863,
-       (GLfloat) 0.794672, (GLfloat) - 0.220727, (GLfloat) - 0.532882,
-       (GLfloat) 0.800000, (GLfloat) - 0.210476, (GLfloat) - 0.508134,
-       (GLfloat) 0.794672, (GLfloat) - 0.200225, (GLfloat) - 0.483385,
-       (GLfloat) 0.779498, (GLfloat) - 0.191534, (GLfloat) - 0.462404,
-       (GLfloat) 0.756788, (GLfloat) - 0.185727, (GLfloat) - 0.448385,
-       (GLfloat) 0.730000, (GLfloat) - 0.183688, (GLfloat) - 0.443462,
-       (GLfloat) 0.703212, (GLfloat) - 0.185727, (GLfloat) - 0.448385,
-       (GLfloat) 0.680503, (GLfloat) - 0.191534, (GLfloat) - 0.462404,
-       (GLfloat) 0.665328, (GLfloat) - 0.200225, (GLfloat) - 0.483385,
-       (GLfloat) 0.660000, (GLfloat) - 0.210476, (GLfloat) - 0.508134,
-       (GLfloat) 0.665328, (GLfloat) - 0.220727, (GLfloat) - 0.532882,
-       (GLfloat) 0.680503, (GLfloat) - 0.229418, (GLfloat) - 0.553863,
-       (GLfloat) 0.703212, (GLfloat) - 0.235225, (GLfloat) - 0.567882,
-       (GLfloat) 0.730000, (GLfloat) - 0.237264, (GLfloat) - 0.572805,
-       (GLfloat) 0.756788, (GLfloat) - 0.119916, (GLfloat) - 0.602861,
-       (GLfloat) 0.779498, (GLfloat) - 0.116956, (GLfloat) - 0.587978,
-       (GLfloat) 0.794672, (GLfloat) - 0.112526, (GLfloat) - 0.565705,
-       (GLfloat) 0.800000, (GLfloat) - 0.107300, (GLfloat) - 0.539432,
-       (GLfloat) 0.794672, (GLfloat) - 0.102074, (GLfloat) - 0.513159,
-       (GLfloat) 0.779498, (GLfloat) - 0.097643, (GLfloat) - 0.490885,
-       (GLfloat) 0.756788, (GLfloat) - 0.094683, (GLfloat) - 0.476003,
-       (GLfloat) 0.730000, (GLfloat) - 0.093643, (GLfloat) - 0.470777,
-       (GLfloat) 0.703212, (GLfloat) - 0.094683, (GLfloat) - 0.476003,
-       (GLfloat) 0.680503, (GLfloat) - 0.097643, (GLfloat) - 0.490885,
-       (GLfloat) 0.665328, (GLfloat) - 0.102074, (GLfloat) - 0.513159,
-       (GLfloat) 0.660000, (GLfloat) - 0.107300, (GLfloat) - 0.539432,
-       (GLfloat) 0.665328, (GLfloat) - 0.112526, (GLfloat) - 0.565705,
-       (GLfloat) 0.680503, (GLfloat) - 0.116956, (GLfloat) - 0.587978,
-       (GLfloat) 0.703212, (GLfloat) - 0.119916, (GLfloat) - 0.602861,
-       (GLfloat) 0.730000, (GLfloat) - 0.120956, (GLfloat) - 0.608087,
-       (GLfloat) 0.756788, (GLfloat) - 0.000000, (GLfloat) - 0.614672,
-       (GLfloat) 0.779498, (GLfloat) - 0.000000, (GLfloat) - 0.599497,
-       (GLfloat) 0.794672, (GLfloat) - 0.000000, (GLfloat) - 0.576788,
-       (GLfloat) 0.800000, (GLfloat) - 0.000000, (GLfloat) - 0.550000,
-       (GLfloat) 0.794672, (GLfloat) - 0.000000, (GLfloat) - 0.523212,
-       (GLfloat) 0.779498, (GLfloat) - 0.000000, (GLfloat) - 0.500503,
-       (GLfloat) 0.756788, (GLfloat) - 0.000000, (GLfloat) - 0.485328,
-       (GLfloat) 0.730000, (GLfloat) - 0.000000, (GLfloat) - 0.480000,
-       (GLfloat) 0.703212, (GLfloat) - 0.000000, (GLfloat) - 0.485328,
-       (GLfloat) 0.680503, (GLfloat) - 0.000000, (GLfloat) - 0.500503,
-       (GLfloat) 0.665328, (GLfloat) - 0.000000, (GLfloat) - 0.523212,
-       (GLfloat) 0.660000, (GLfloat) - 0.000000, (GLfloat) - 0.550000,
-       (GLfloat) 0.665328, (GLfloat) - 0.000000, (GLfloat) - 0.576788,
-       (GLfloat) 0.680503, (GLfloat) - 0.000000, (GLfloat) - 0.599497,
-       (GLfloat) 0.703212, (GLfloat) - 0.000000, (GLfloat) - 0.614672,
-       (GLfloat) 0.730000, (GLfloat) - 0.000000, (GLfloat) - 0.620000,
-       (GLfloat) 0.756788, (GLfloat) 0.119916, (GLfloat) - 0.602861,
-       (GLfloat) 0.779498, (GLfloat) 0.116956, (GLfloat) - 0.587978,
-       (GLfloat) 0.794672, (GLfloat) 0.112526, (GLfloat) - 0.565705,
-       (GLfloat) 0.800000, (GLfloat) 0.107300, (GLfloat) - 0.539432,
-       (GLfloat) 0.794672, (GLfloat) 0.102074, (GLfloat) - 0.513159,
-       (GLfloat) 0.779498, (GLfloat) 0.097643, (GLfloat) - 0.490886,
-       (GLfloat) 0.756788, (GLfloat) 0.094683, (GLfloat) - 0.476003,
-       (GLfloat) 0.730000, (GLfloat) 0.093643, (GLfloat) - 0.470777,
-       (GLfloat) 0.703212, (GLfloat) 0.094683, (GLfloat) - 0.476003,
-       (GLfloat) 0.680503, (GLfloat) 0.097643, (GLfloat) - 0.490886,
-       (GLfloat) 0.665328, (GLfloat) 0.102074, (GLfloat) - 0.513159,
-       (GLfloat) 0.660000, (GLfloat) 0.107300, (GLfloat) - 0.539432,
-       (GLfloat) 0.665328, (GLfloat) 0.112526, (GLfloat) - 0.565705,
-       (GLfloat) 0.680503, (GLfloat) 0.116956, (GLfloat) - 0.587978,
-       (GLfloat) 0.703212, (GLfloat) 0.119916, (GLfloat) - 0.602861,
-       (GLfloat) 0.730000, (GLfloat) 0.120956, (GLfloat) - 0.608087,
-       (GLfloat) 0.756788, (GLfloat) 0.235225, (GLfloat) - 0.567882,
-       (GLfloat) 0.779498, (GLfloat) 0.229418, (GLfloat) - 0.553863,
-       (GLfloat) 0.794672, (GLfloat) 0.220727, (GLfloat) - 0.532882,
-       (GLfloat) 0.800000, (GLfloat) 0.210476, (GLfloat) - 0.508134,
-       (GLfloat) 0.794672, (GLfloat) 0.200225, (GLfloat) - 0.483385,
-       (GLfloat) 0.779498, (GLfloat) 0.191534, (GLfloat) - 0.462404,
-       (GLfloat) 0.756788, (GLfloat) 0.185727, (GLfloat) - 0.448385,
-       (GLfloat) 0.730000, (GLfloat) 0.183688, (GLfloat) - 0.443462,
-       (GLfloat) 0.703212, (GLfloat) 0.185727, (GLfloat) - 0.448385,
-       (GLfloat) 0.680503, (GLfloat) 0.191534, (GLfloat) - 0.462404,
-       (GLfloat) 0.665328, (GLfloat) 0.200225, (GLfloat) - 0.483385,
-       (GLfloat) 0.660000, (GLfloat) 0.210476, (GLfloat) - 0.508134,
-       (GLfloat) 0.665328, (GLfloat) 0.220727, (GLfloat) - 0.532882,
-       (GLfloat) 0.680503, (GLfloat) 0.229418, (GLfloat) - 0.553863,
-       (GLfloat) 0.703212, (GLfloat) 0.235225, (GLfloat) - 0.567882,
-       (GLfloat) 0.730000, (GLfloat) 0.237264, (GLfloat) - 0.572805,
-       (GLfloat) 0.756788, (GLfloat) 0.341493, (GLfloat) - 0.511081,
-       (GLfloat) 0.779498, (GLfloat) 0.333063, (GLfloat) - 0.498464,
-       (GLfloat) 0.794672, (GLfloat) 0.320446, (GLfloat) - 0.479582,
-       (GLfloat) 0.800000, (GLfloat) 0.305564, (GLfloat) - 0.457308,
-       (GLfloat) 0.794672, (GLfloat) 0.290681, (GLfloat) - 0.435035,
-       (GLfloat) 0.779498, (GLfloat) 0.278064, (GLfloat) - 0.416153,
-       (GLfloat) 0.756788, (GLfloat) 0.269634, (GLfloat) - 0.403536,
-       (GLfloat) 0.730000, (GLfloat) 0.266674, (GLfloat) - 0.399105,
-       (GLfloat) 0.703212, (GLfloat) 0.269634, (GLfloat) - 0.403536,
-       (GLfloat) 0.680503, (GLfloat) 0.278064, (GLfloat) - 0.416153,
-       (GLfloat) 0.665328, (GLfloat) 0.290681, (GLfloat) - 0.435035,
-       (GLfloat) 0.660000, (GLfloat) 0.305564, (GLfloat) - 0.457308,
-       (GLfloat) 0.665328, (GLfloat) 0.320446, (GLfloat) - 0.479582,
-       (GLfloat) 0.680503, (GLfloat) 0.333063, (GLfloat) - 0.498464,
-       (GLfloat) 0.703212, (GLfloat) 0.341493, (GLfloat) - 0.511081,
-       (GLfloat) 0.730000, (GLfloat) 0.344454, (GLfloat) - 0.515511,
-       (GLfloat) 0.756788, (GLfloat) 0.434638, (GLfloat) - 0.434638,
-       (GLfloat) 0.779498, (GLfloat) 0.423909, (GLfloat) - 0.423909,
-       (GLfloat) 0.794672, (GLfloat) 0.407851, (GLfloat) - 0.407851,
-       (GLfloat) 0.800000, (GLfloat) 0.388909, (GLfloat) - 0.388909,
-       (GLfloat) 0.794672, (GLfloat) 0.369967, (GLfloat) - 0.369967,
-       (GLfloat) 0.779498, (GLfloat) 0.353909, (GLfloat) - 0.353909,
-       (GLfloat) 0.756788, (GLfloat) 0.343179, (GLfloat) - 0.343179,
-       (GLfloat) 0.730000, (GLfloat) 0.339411, (GLfloat) - 0.339411,
-       (GLfloat) 0.703212, (GLfloat) 0.343179, (GLfloat) - 0.343179,
-       (GLfloat) 0.680503, (GLfloat) 0.353909, (GLfloat) - 0.353909,
-       (GLfloat) 0.665328, (GLfloat) 0.369967, (GLfloat) - 0.369967,
-       (GLfloat) 0.660000, (GLfloat) 0.388909, (GLfloat) - 0.388909,
-       (GLfloat) 0.665328, (GLfloat) 0.407851, (GLfloat) - 0.407851,
-       (GLfloat) 0.680503, (GLfloat) 0.423909, (GLfloat) - 0.423909,
-       (GLfloat) 0.703212, (GLfloat) 0.434638, (GLfloat) - 0.434638,
-       (GLfloat) 0.730000, (GLfloat) 0.438406, (GLfloat) - 0.438406,
-       (GLfloat) 0.756788, (GLfloat) 0.511081, (GLfloat) - 0.341493,
-       (GLfloat) 0.779498, (GLfloat) 0.498464, (GLfloat) - 0.333063,
-       (GLfloat) 0.794672, (GLfloat) 0.479582, (GLfloat) - 0.320446,
-       (GLfloat) 0.800000, (GLfloat) 0.457308, (GLfloat) - 0.305564,
-       (GLfloat) 0.794672, (GLfloat) 0.435035, (GLfloat) - 0.290681,
-       (GLfloat) 0.779498, (GLfloat) 0.416153, (GLfloat) - 0.278064,
-       (GLfloat) 0.756788, (GLfloat) 0.403536, (GLfloat) - 0.269634,
-       (GLfloat) 0.730000, (GLfloat) 0.399105, (GLfloat) - 0.266674,
-       (GLfloat) 0.703212, (GLfloat) 0.403536, (GLfloat) - 0.269634,
-       (GLfloat) 0.680503, (GLfloat) 0.416153, (GLfloat) - 0.278064,
-       (GLfloat) 0.665328, (GLfloat) 0.435035, (GLfloat) - 0.290681,
-       (GLfloat) 0.660000, (GLfloat) 0.457308, (GLfloat) - 0.305564,
-       (GLfloat) 0.665328, (GLfloat) 0.479582, (GLfloat) - 0.320446,
-       (GLfloat) 0.680503, (GLfloat) 0.498464, (GLfloat) - 0.333063,
-       (GLfloat) 0.703212, (GLfloat) 0.511081, (GLfloat) - 0.341493,
-       (GLfloat) 0.730000, (GLfloat) 0.515511, (GLfloat) - 0.344454,
-       (GLfloat) 0.756788, (GLfloat) 0.567882, (GLfloat) - 0.235225,
-       (GLfloat) 0.779498, (GLfloat) 0.553863, (GLfloat) - 0.229418,
-       (GLfloat) 0.794672, (GLfloat) 0.532882, (GLfloat) - 0.220727,
-       (GLfloat) 0.800000, (GLfloat) 0.508134, (GLfloat) - 0.210476,
-       (GLfloat) 0.794672, (GLfloat) 0.483385, (GLfloat) - 0.200225,
-       (GLfloat) 0.779498, (GLfloat) 0.462404, (GLfloat) - 0.191534,
-       (GLfloat) 0.756788, (GLfloat) 0.448385, (GLfloat) - 0.185727,
-       (GLfloat) 0.730000, (GLfloat) 0.443462, (GLfloat) - 0.183688,
-       (GLfloat) 0.703212, (GLfloat) 0.448385, (GLfloat) - 0.185727,
-       (GLfloat) 0.680503, (GLfloat) 0.462404, (GLfloat) - 0.191534,
-       (GLfloat) 0.665328, (GLfloat) 0.483385, (GLfloat) - 0.200225,
-       (GLfloat) 0.660000, (GLfloat) 0.508134, (GLfloat) - 0.210476,
-       (GLfloat) 0.665328, (GLfloat) 0.532882, (GLfloat) - 0.220727,
-       (GLfloat) 0.680503, (GLfloat) 0.553863, (GLfloat) - 0.229418,
-       (GLfloat) 0.703212, (GLfloat) 0.567882, (GLfloat) - 0.235225,
-       (GLfloat) 0.730000, (GLfloat) 0.572805, (GLfloat) - 0.237264,
-       (GLfloat) 0.756788, (GLfloat) 0.602861, (GLfloat) - 0.119916,
-       (GLfloat) 0.779498, (GLfloat) 0.587978, (GLfloat) - 0.116956,
-       (GLfloat) 0.794672, (GLfloat) 0.565705, (GLfloat) - 0.112526,
-       (GLfloat) 0.800000, (GLfloat) 0.539432, (GLfloat) - 0.107300,
-       (GLfloat) 0.794672, (GLfloat) 0.513159, (GLfloat) - 0.102074,
-       (GLfloat) 0.779498, (GLfloat) 0.490885, (GLfloat) - 0.097643,
-       (GLfloat) 0.756788, (GLfloat) 0.476003, (GLfloat) - 0.094683,
-       (GLfloat) 0.730000, (GLfloat) 0.470777, (GLfloat) - 0.093643,
-       (GLfloat) 0.703212, (GLfloat) 0.476003, (GLfloat) - 0.094683,
-       (GLfloat) 0.680503, (GLfloat) 0.490885, (GLfloat) - 0.097643,
-       (GLfloat) 0.665328, (GLfloat) 0.513159, (GLfloat) - 0.102074,
-       (GLfloat) 0.660000, (GLfloat) 0.539432, (GLfloat) - 0.107300,
-       (GLfloat) 0.665328, (GLfloat) 0.565705, (GLfloat) - 0.112526,
-       (GLfloat) 0.680503, (GLfloat) 0.587978, (GLfloat) - 0.116956,
-       (GLfloat) 0.703212, (GLfloat) 0.602861, (GLfloat) - 0.119916,
-       (GLfloat) 0.730000, (GLfloat) 0.608087, (GLfloat) - 0.120956,
-       (GLfloat) 0.420000, (GLfloat) - 0.000000, (GLfloat) - 0.200000,
-       (GLfloat) 0.420000, (GLfloat) 0.051764, (GLfloat) - 0.193185,
-       (GLfloat) 0.420000, (GLfloat) 0.100000, (GLfloat) - 0.173205,
-       (GLfloat) 0.420000, (GLfloat) 0.141421, (GLfloat) - 0.141421,
-       (GLfloat) 0.420000, (GLfloat) 0.173205, (GLfloat) - 0.100000,
-       (GLfloat) 0.420000, (GLfloat) 0.193185, (GLfloat) - 0.051764,
-       (GLfloat) 0.420000, (GLfloat) 0.200000, (GLfloat) - 0.000000,
-       (GLfloat) 0.420000, (GLfloat) 0.193185, (GLfloat) 0.051764,
-       (GLfloat) 0.420000, (GLfloat) 0.173205, (GLfloat) 0.100000,
-       (GLfloat) 0.420000, (GLfloat) 0.141421, (GLfloat) 0.141421,
-       (GLfloat) 0.420000, (GLfloat) 0.100000, (GLfloat) 0.173205,
-       (GLfloat) 0.420000, (GLfloat) 0.051764, (GLfloat) 0.193185,
-       (GLfloat) 0.420000, (GLfloat) 0.000000, (GLfloat) 0.200000,
-       (GLfloat) 0.420000, (GLfloat) - 0.051764, (GLfloat) 0.193185,
-       (GLfloat) 0.420000, (GLfloat) - 0.100000, (GLfloat) 0.173205,
-       (GLfloat) 0.420000, (GLfloat) - 0.141421, (GLfloat) 0.141421,
-       (GLfloat) 0.420000, (GLfloat) - 0.173205, (GLfloat) 0.100000,
-       (GLfloat) 0.420000, (GLfloat) - 0.193185, (GLfloat) 0.051764,
-       (GLfloat) 0.420000, (GLfloat) - 0.200000, (GLfloat) 0.000000,
-       (GLfloat) 0.420000, (GLfloat) - 0.193185, (GLfloat) - 0.051764,
-       (GLfloat) 0.420000, (GLfloat) - 0.173205, (GLfloat) - 0.100000,
-       (GLfloat) 0.420000, (GLfloat) - 0.141421, (GLfloat) - 0.141421,
-       (GLfloat) 0.420000, (GLfloat) - 0.100000, (GLfloat) - 0.173205,
-       (GLfloat) 0.420000, (GLfloat) - 0.051764, (GLfloat) - 0.193185,
-       (GLfloat) 0.540000, (GLfloat) - 0.000000, (GLfloat) - 0.200000,
-       (GLfloat) 0.540000, (GLfloat) 0.051764, (GLfloat) - 0.193185,
-       (GLfloat) 0.540000, (GLfloat) 0.100000, (GLfloat) - 0.173205,
-       (GLfloat) 0.540000, (GLfloat) 0.141421, (GLfloat) - 0.141421,
-       (GLfloat) 0.540000, (GLfloat) 0.173205, (GLfloat) - 0.100000,
-       (GLfloat) 0.540000, (GLfloat) 0.193185, (GLfloat) - 0.051764,
-       (GLfloat) 0.540000, (GLfloat) 0.200000, (GLfloat) - 0.000000,
-       (GLfloat) 0.540000, (GLfloat) 0.193185, (GLfloat) 0.051764,
-       (GLfloat) 0.540000, (GLfloat) 0.173205, (GLfloat) 0.100000,
-       (GLfloat) 0.540000, (GLfloat) 0.141421, (GLfloat) 0.141421,
-       (GLfloat) 0.540000, (GLfloat) 0.100000, (GLfloat) 0.173205,
-       (GLfloat) 0.540000, (GLfloat) 0.051764, (GLfloat) 0.193185,
-       (GLfloat) 0.540000, (GLfloat) 0.000000, (GLfloat) 0.200000,
-       (GLfloat) 0.540000, (GLfloat) - 0.051764, (GLfloat) 0.193185,
-       (GLfloat) 0.540000, (GLfloat) - 0.100000, (GLfloat) 0.173205,
-       (GLfloat) 0.540000, (GLfloat) - 0.141421, (GLfloat) 0.141421,
-       (GLfloat) 0.540000, (GLfloat) - 0.173205, (GLfloat) 0.100000,
-       (GLfloat) 0.540000, (GLfloat) - 0.193185, (GLfloat) 0.051764,
-       (GLfloat) 0.540000, (GLfloat) - 0.200000, (GLfloat) 0.000000,
-       (GLfloat) 0.540000, (GLfloat) - 0.193185, (GLfloat) - 0.051764,
-       (GLfloat) 0.540000, (GLfloat) - 0.173205, (GLfloat) - 0.100000,
-       (GLfloat) 0.540000, (GLfloat) - 0.141421, (GLfloat) - 0.141421,
-       (GLfloat) 0.540000, (GLfloat) - 0.100000, (GLfloat) - 0.173205,
-       (GLfloat) 0.540000, (GLfloat) - 0.051764, (GLfloat) - 0.193185,
-       (GLfloat) 0.790000, (GLfloat) 0.060000, (GLfloat) - 0.000000,
-       (GLfloat) 0.785433, (GLfloat) 0.060000, (GLfloat) - 0.022961,
-       (GLfloat) 0.772426, (GLfloat) 0.060000, (GLfloat) - 0.042426,
-       (GLfloat) 0.752961, (GLfloat) 0.060000, (GLfloat) - 0.055433,
-       (GLfloat) 0.730000, (GLfloat) 0.060000, (GLfloat) - 0.060000,
-       (GLfloat) 0.707039, (GLfloat) 0.060000, (GLfloat) - 0.055433,
-       (GLfloat) 0.687574, (GLfloat) 0.060000, (GLfloat) - 0.042426,
-       (GLfloat) 0.674567, (GLfloat) 0.060000, (GLfloat) - 0.022961,
-       (GLfloat) 0.670000, (GLfloat) 0.060000, (GLfloat) - 0.000000,
-       (GLfloat) 0.674567, (GLfloat) 0.060000, (GLfloat) 0.022961,
-       (GLfloat) 0.687574, (GLfloat) 0.060000, (GLfloat) 0.042426,
-       (GLfloat) 0.707039, (GLfloat) 0.060000, (GLfloat) 0.055433,
-       (GLfloat) 0.730000, (GLfloat) 0.060000, (GLfloat) 0.060000,
-       (GLfloat) 0.752961, (GLfloat) 0.060000, (GLfloat) 0.055433,
-       (GLfloat) 0.772426, (GLfloat) 0.060000, (GLfloat) 0.042426,
-       (GLfloat) 0.785433, (GLfloat) 0.060000, (GLfloat) 0.022961,
-       (GLfloat) 0.790000, (GLfloat) 0.550000, (GLfloat) - 0.000000,
-       (GLfloat) 0.785433, (GLfloat) 0.550000, (GLfloat) - 0.022961,
-       (GLfloat) 0.772426, (GLfloat) 0.550000, (GLfloat) - 0.042426,
-       (GLfloat) 0.752961, (GLfloat) 0.550000, (GLfloat) - 0.055433,
-       (GLfloat) 0.730000, (GLfloat) 0.550000, (GLfloat) - 0.060000,
-       (GLfloat) 0.707039, (GLfloat) 0.550000, (GLfloat) - 0.055433,
-       (GLfloat) 0.687574, (GLfloat) 0.550000, (GLfloat) - 0.042426,
-       (GLfloat) 0.674567, (GLfloat) 0.550000, (GLfloat) - 0.022961,
-       (GLfloat) 0.670000, (GLfloat) 0.550000, (GLfloat) - 0.000000,
-       (GLfloat) 0.674567, (GLfloat) 0.550000, (GLfloat) 0.022961,
-       (GLfloat) 0.687574, (GLfloat) 0.550000, (GLfloat) 0.042426,
-       (GLfloat) 0.707039, (GLfloat) 0.550000, (GLfloat) 0.055433,
-       (GLfloat) 0.730000, (GLfloat) 0.550000, (GLfloat) 0.060000,
-       (GLfloat) 0.752961, (GLfloat) 0.550000, (GLfloat) 0.055433,
-       (GLfloat) 0.772426, (GLfloat) 0.550000, (GLfloat) 0.042426,
-       (GLfloat) 0.785433, (GLfloat) 0.550000, (GLfloat) 0.022961,
-       (GLfloat) 0.790000, (GLfloat) 0.000000, (GLfloat) 0.060000,
-       (GLfloat) 0.785433, (GLfloat) 0.022961, (GLfloat) 0.060000,
-       (GLfloat) 0.772426, (GLfloat) 0.042426, (GLfloat) 0.060000,
-       (GLfloat) 0.752961, (GLfloat) 0.055433, (GLfloat) 0.060000,
-       (GLfloat) 0.707039, (GLfloat) 0.055433, (GLfloat) 0.060000,
-       (GLfloat) 0.687574, (GLfloat) 0.042426, (GLfloat) 0.060000,
-       (GLfloat) 0.674567, (GLfloat) 0.022961, (GLfloat) 0.060000,
-       (GLfloat) 0.670000, (GLfloat) 0.000000, (GLfloat) 0.060000,
-       (GLfloat) 0.674567, (GLfloat) - 0.022961, (GLfloat) 0.060000,
-       (GLfloat) 0.687574, (GLfloat) - 0.042426, (GLfloat) 0.060000,
-       (GLfloat) 0.707039, (GLfloat) - 0.055433, (GLfloat) 0.060000,
-       (GLfloat) 0.730000, (GLfloat) - 0.060000, (GLfloat) 0.060000,
-       (GLfloat) 0.752961, (GLfloat) - 0.055433, (GLfloat) 0.060000,
-       (GLfloat) 0.772426, (GLfloat) - 0.042426, (GLfloat) 0.060000,
-       (GLfloat) 0.785433, (GLfloat) - 0.022961, (GLfloat) 0.060000,
-       (GLfloat) 0.790000, (GLfloat) 0.000000, (GLfloat) 0.550000,
-       (GLfloat) 0.785433, (GLfloat) 0.022961, (GLfloat) 0.550000,
-       (GLfloat) 0.772426, (GLfloat) 0.042426, (GLfloat) 0.550000,
-       (GLfloat) 0.752961, (GLfloat) 0.055433, (GLfloat) 0.550000,
-       (GLfloat) 0.730000, (GLfloat) 0.060000, (GLfloat) 0.550000,
-       (GLfloat) 0.707039, (GLfloat) 0.055433, (GLfloat) 0.550000,
-       (GLfloat) 0.687574, (GLfloat) 0.042426, (GLfloat) 0.550000,
-       (GLfloat) 0.674567, (GLfloat) 0.022961, (GLfloat) 0.550000,
-       (GLfloat) 0.670000, (GLfloat) 0.000000, (GLfloat) 0.550000,
-       (GLfloat) 0.674567, (GLfloat) - 0.022961, (GLfloat) 0.550000,
-       (GLfloat) 0.687574, (GLfloat) - 0.042426, (GLfloat) 0.550000,
-       (GLfloat) 0.707039, (GLfloat) - 0.055433, (GLfloat) 0.550000,
-       (GLfloat) 0.730000, (GLfloat) - 0.060000, (GLfloat) 0.550000,
-       (GLfloat) 0.752961, (GLfloat) - 0.055433, (GLfloat) 0.550000,
-       (GLfloat) 0.772426, (GLfloat) - 0.042426, (GLfloat) 0.550000,
-       (GLfloat) 0.785433, (GLfloat) - 0.022961, (GLfloat) 0.550000,
-       (GLfloat) 0.790000, (GLfloat) - 0.060000, (GLfloat) 0.000000,
-       (GLfloat) 0.785433, (GLfloat) - 0.060000, (GLfloat) 0.022961,
-       (GLfloat) 0.772426, (GLfloat) - 0.060000, (GLfloat) 0.042426,
-       (GLfloat) 0.752961, (GLfloat) - 0.060000, (GLfloat) 0.055433,
-       (GLfloat) 0.707039, (GLfloat) - 0.060000, (GLfloat) 0.055433,
-       (GLfloat) 0.687574, (GLfloat) - 0.060000, (GLfloat) 0.042426,
-       (GLfloat) 0.674567, (GLfloat) - 0.060000, (GLfloat) 0.022961,
-       (GLfloat) 0.670000, (GLfloat) - 0.060000, (GLfloat) 0.000000,
-       (GLfloat) 0.674567, (GLfloat) - 0.060000, (GLfloat) - 0.022961,
-       (GLfloat) 0.687574, (GLfloat) - 0.060000, (GLfloat) - 0.042426,
-       (GLfloat) 0.707039, (GLfloat) - 0.060000, (GLfloat) - 0.055433,
-       (GLfloat) 0.730000, (GLfloat) - 0.060000, (GLfloat) - 0.060000,
-       (GLfloat) 0.752961, (GLfloat) - 0.060000, (GLfloat) - 0.055433,
-       (GLfloat) 0.772426, (GLfloat) - 0.060000, (GLfloat) - 0.042426,
-       (GLfloat) 0.785433, (GLfloat) - 0.060000, (GLfloat) - 0.022961,
-       (GLfloat) 0.790000, (GLfloat) - 0.550000, (GLfloat) 0.000000,
-       (GLfloat) 0.785433, (GLfloat) - 0.550000, (GLfloat) 0.022961,
-       (GLfloat) 0.772426, (GLfloat) - 0.550000, (GLfloat) 0.042426,
-       (GLfloat) 0.752961, (GLfloat) - 0.550000, (GLfloat) 0.055433,
-       (GLfloat) 0.730000, (GLfloat) - 0.550000, (GLfloat) 0.060000,
-       (GLfloat) 0.707039, (GLfloat) - 0.550000, (GLfloat) 0.055433,
-       (GLfloat) 0.687574, (GLfloat) - 0.550000, (GLfloat) 0.042426,
-       (GLfloat) 0.674567, (GLfloat) - 0.550000, (GLfloat) 0.022961,
-       (GLfloat) 0.670000, (GLfloat) - 0.550000, (GLfloat) 0.000000,
-       (GLfloat) 0.674567, (GLfloat) - 0.550000, (GLfloat) - 0.022961,
-       (GLfloat) 0.687574, (GLfloat) - 0.550000, (GLfloat) - 0.042426,
-       (GLfloat) 0.707039, (GLfloat) - 0.550000, (GLfloat) - 0.055433,
-       (GLfloat) 0.730000, (GLfloat) - 0.550000, (GLfloat) - 0.060000,
-       (GLfloat) 0.752961, (GLfloat) - 0.550000, (GLfloat) - 0.055433,
-       (GLfloat) 0.772426, (GLfloat) - 0.550000, (GLfloat) - 0.042426,
-       (GLfloat) 0.785433, (GLfloat) - 0.550000, (GLfloat) - 0.022961,
-       (GLfloat) 0.790000, (GLfloat) - 0.000000, (GLfloat) - 0.060000,
-       (GLfloat) 0.785433, (GLfloat) - 0.022961, (GLfloat) - 0.060000,
-       (GLfloat) 0.772426, (GLfloat) - 0.042426, (GLfloat) - 0.060000,
-       (GLfloat) 0.752961, (GLfloat) - 0.055433, (GLfloat) - 0.060000,
-       (GLfloat) 0.707039, (GLfloat) - 0.055433, (GLfloat) - 0.060000,
-       (GLfloat) 0.687574, (GLfloat) - 0.042426, (GLfloat) - 0.060000,
-       (GLfloat) 0.674567, (GLfloat) - 0.022961, (GLfloat) - 0.060000,
-       (GLfloat) 0.670000, (GLfloat) - 0.000000, (GLfloat) - 0.060000,
-       (GLfloat) 0.674567, (GLfloat) 0.022961, (GLfloat) - 0.060000,
-       (GLfloat) 0.687574, (GLfloat) 0.042426, (GLfloat) - 0.060000,
-       (GLfloat) 0.707039, (GLfloat) 0.055433, (GLfloat) - 0.060000,
-       (GLfloat) 0.752961, (GLfloat) 0.055433, (GLfloat) - 0.060000,
-       (GLfloat) 0.772426, (GLfloat) 0.042426, (GLfloat) - 0.060000,
-       (GLfloat) 0.785433, (GLfloat) 0.022961, (GLfloat) - 0.060000,
-       (GLfloat) 0.790000, (GLfloat) - 0.000000, (GLfloat) - 0.550000,
-       (GLfloat) 0.785433, (GLfloat) - 0.022961, (GLfloat) - 0.550000,
-       (GLfloat) 0.772426, (GLfloat) - 0.042426, (GLfloat) - 0.550000,
-       (GLfloat) 0.752961, (GLfloat) - 0.055433, (GLfloat) - 0.550000,
-       (GLfloat) 0.730000, (GLfloat) - 0.060000, (GLfloat) - 0.550000,
-       (GLfloat) 0.707039, (GLfloat) - 0.055433, (GLfloat) - 0.550000,
-       (GLfloat) 0.687574, (GLfloat) - 0.042426, (GLfloat) - 0.550000,
-       (GLfloat) 0.674567, (GLfloat) - 0.022961, (GLfloat) - 0.550000,
-       (GLfloat) 0.670000, (GLfloat) - 0.000000, (GLfloat) - 0.550000,
-       (GLfloat) 0.674567, (GLfloat) 0.022961, (GLfloat) - 0.550000,
-       (GLfloat) 0.687574, (GLfloat) 0.042426, (GLfloat) - 0.550000,
-       (GLfloat) 0.707039, (GLfloat) 0.055433, (GLfloat) - 0.550000,
-       (GLfloat) 0.730000, (GLfloat) 0.060000, (GLfloat) - 0.550000,
-       (GLfloat) 0.752961, (GLfloat) 0.055433, (GLfloat) - 0.550000,
-       (GLfloat) 0.772426, (GLfloat) 0.042426, (GLfloat) - 0.550000,
-       (GLfloat) 0.785433, (GLfloat) 0.022961, (GLfloat) - 0.550000,
-       (GLfloat) 0.540000, (GLfloat) 0.000000, (GLfloat) - 0.100000,
-       (GLfloat) 0.540000, (GLfloat) 0.038268, (GLfloat) - 0.092388,
-       (GLfloat) 0.540000, (GLfloat) 0.070711, (GLfloat) - 0.070711,
-       (GLfloat) 0.540000, (GLfloat) 0.092388, (GLfloat) - 0.038268,
-       (GLfloat) 0.540000, (GLfloat) 0.100000, (GLfloat) - 0.000000,
-       (GLfloat) 0.540000, (GLfloat) 0.092388, (GLfloat) 0.038268,
-       (GLfloat) 0.540000, (GLfloat) 0.070711, (GLfloat) 0.070711,
-       (GLfloat) 0.540000, (GLfloat) 0.038268, (GLfloat) 0.092388,
-       (GLfloat) 0.540000, (GLfloat) 0.000000, (GLfloat) 0.100000,
-       (GLfloat) 0.540000, (GLfloat) - 0.038268, (GLfloat) 0.092388,
-       (GLfloat) 0.540000, (GLfloat) - 0.070711, (GLfloat) 0.070711,
-       (GLfloat) 0.540000, (GLfloat) - 0.092388, (GLfloat) 0.038268,
-       (GLfloat) 0.540000, (GLfloat) - 0.100000, (GLfloat) 0.000000,
-       (GLfloat) 0.540000, (GLfloat) - 0.092388, (GLfloat) - 0.038268,
-       (GLfloat) 0.540000, (GLfloat) - 0.070711, (GLfloat) - 0.070711,
-       (GLfloat) 0.540000, (GLfloat) - 0.038268, (GLfloat) - 0.092388,
-       (GLfloat) 0.800000, (GLfloat) 0.000000, (GLfloat) - 0.100000,
-       (GLfloat) 0.800000, (GLfloat) 0.038268, (GLfloat) - 0.092388,
-       (GLfloat) 0.800000, (GLfloat) 0.070711, (GLfloat) - 0.070711,
-       (GLfloat) 0.800000, (GLfloat) 0.092388, (GLfloat) - 0.038268,
-       (GLfloat) 0.800000, (GLfloat) 0.100000, (GLfloat) - 0.000000,
-       (GLfloat) 0.800000, (GLfloat) 0.092388, (GLfloat) 0.038268,
-       (GLfloat) 0.800000, (GLfloat) 0.070711, (GLfloat) 0.070711,
-       (GLfloat) 0.800000, (GLfloat) 0.038268, (GLfloat) 0.092388,
-       (GLfloat) 0.800000, (GLfloat) 0.000000, (GLfloat) 0.100000,
-       (GLfloat) 0.800000, (GLfloat) - 0.038268, (GLfloat) 0.092388,
-       (GLfloat) 0.800000, (GLfloat) - 0.070711, (GLfloat) 0.070711,
-       (GLfloat) 0.800000, (GLfloat) - 0.092388, (GLfloat) 0.038268,
-       (GLfloat) 0.800000, (GLfloat) - 0.100000, (GLfloat) 0.000000,
-       (GLfloat) 0.800000, (GLfloat) - 0.092388, (GLfloat) - 0.038268,
-       (GLfloat) 0.800000, (GLfloat) - 0.070711, (GLfloat) - 0.070711,
-       (GLfloat) 0.800000, (GLfloat) - 0.038268, (GLfloat) - 0.092388,
+       0.756788, 0.614672, 0,
+       0.779498, 0.599497, 0,
+       0.794672, 0.576788, 0,
+       0.8, 0.55, 0,
+       0.794672, 0.523212, 0,
+       0.779498, 0.500503, 0,
+       0.756788, 0.485328, 0,
+       0.73, 0.48, 0,
+       0.703212, 0.485328, 0,
+       0.680503, 0.500503, 0,
+       0.665328, 0.523212, 0,
+       0.66, 0.55, 0,
+       0.665328, 0.576788, 0,
+       0.680503, 0.599497, 0,
+       0.703212, 0.614672, 0,
+       0.73, 0.62, 0,
+       0.756788, 0.602861, 0.119916,
+       0.779498, 0.587978, 0.116956,
+       0.794672, 0.565705, 0.112526,
+       0.8, 0.539432, 0.1073,
+       0.794672, 0.513159, 0.102074,
+       0.779498, 0.490886, 0.097643,
+       0.756788, 0.476003, 0.094683,
+       0.73, 0.470777, 0.093643,
+       0.703212, 0.476003, 0.094683,
+       0.680503, 0.490886, 0.097643,
+       0.665328, 0.513159, 0.102074,
+       0.66, 0.539432, 0.1073,
+       0.665328, 0.565705, 0.112526,
+       0.680503, 0.587978, 0.116956,
+       0.703212, 0.602861, 0.119916,
+       0.73, 0.608087, 0.120956,
+       0.756788, 0.567882, 0.235225,
+       0.779498, 0.553863, 0.229418,
+       0.794672, 0.532882, 0.220727,
+       0.8, 0.508134, 0.210476,
+       0.794672, 0.483385, 0.200225,
+       0.779498, 0.462404, 0.191534,
+       0.756788, 0.448385, 0.185727,
+       0.73, 0.443462, 0.183688,
+       0.703212, 0.448385, 0.185727,
+       0.680503, 0.462404, 0.191534,
+       0.665328, 0.483385, 0.200225,
+       0.66, 0.508134, 0.210476,
+       0.665328, 0.532882, 0.220727,
+       0.680503, 0.553863, 0.229418,
+       0.703212, 0.567882, 0.235225,
+       0.73, 0.572805, 0.237264,
+       0.756788, 0.511081, 0.341493,
+       0.779498, 0.498464, 0.333063,
+       0.794672, 0.479582, 0.320446,
+       0.8, 0.457308, 0.305564,
+       0.794672, 0.435035, 0.290681,
+       0.779498, 0.416153, 0.278064,
+       0.756788, 0.403536, 0.269634,
+       0.73, 0.399105, 0.266674,
+       0.703212, 0.403536, 0.269634,
+       0.680503, 0.416153, 0.278064,
+       0.665328, 0.435035, 0.290681,
+       0.66, 0.457308, 0.305564,
+       0.665328, 0.479582, 0.320446,
+       0.680503, 0.498464, 0.333063,
+       0.703212, 0.511081, 0.341493,
+       0.73, 0.515511, 0.344454,
+       0.756788, 0.434638, 0.434638,
+       0.779498, 0.423909, 0.423909,
+       0.794672, 0.407851, 0.407851,
+       0.8, 0.388909, 0.388909,
+       0.794672, 0.369967, 0.369967,
+       0.779498, 0.353909, 0.353909,
+       0.756788, 0.343179, 0.343179,
+       0.73, 0.339411, 0.339411,
+       0.703212, 0.343179, 0.343179,
+       0.680503, 0.353909, 0.353909,
+       0.665328, 0.369967, 0.369967,
+       0.66, 0.388909, 0.388909,
+       0.665328, 0.407851, 0.407851,
+       0.680503, 0.423909, 0.423909,
+       0.703212, 0.434638, 0.434638,
+       0.73, 0.438406, 0.438406,
+       0.756788, 0.341493, 0.511081,
+       0.779498, 0.333063, 0.498464,
+       0.794672, 0.320446, 0.479582,
+       0.8, 0.305564, 0.457308,
+       0.794672, 0.290681, 0.435035,
+       0.779498, 0.278064, 0.416153,
+       0.756788, 0.269634, 0.403536,
+       0.73, 0.266674, 0.399105,
+       0.703212, 0.269634, 0.403536,
+       0.680503, 0.278064, 0.416153,
+       0.665328, 0.290681, 0.435035,
+       0.66, 0.305564, 0.457308,
+       0.665328, 0.320446, 0.479582,
+       0.680503, 0.333063, 0.498464,
+       0.703212, 0.341493, 0.511081,
+       0.73, 0.344454, 0.515511,
+       0.756788, 0.235225, 0.567882,
+       0.779498, 0.229418, 0.553863,
+       0.794672, 0.220727, 0.532882,
+       0.8, 0.210476, 0.508134,
+       0.794672, 0.200225, 0.483385,
+       0.779498, 0.191534, 0.462404,
+       0.756788, 0.185727, 0.448385,
+       0.73, 0.183688, 0.443462,
+       0.703212, 0.185727, 0.448385,
+       0.680503, 0.191534, 0.462404,
+       0.665328, 0.200225, 0.483385,
+       0.66, 0.210476, 0.508134,
+       0.665328, 0.220727, 0.532882,
+       0.680503, 0.229418, 0.553863,
+       0.703212, 0.235225, 0.567882,
+       0.73, 0.237264, 0.572805,
+       0.756788, 0.119916, 0.602861,
+       0.779498, 0.116956, 0.587978,
+       0.794672, 0.112526, 0.565705,
+       0.8, 0.1073, 0.539432,
+       0.794672, 0.102074, 0.513159,
+       0.779498, 0.097643, 0.490886,
+       0.756788, 0.094683, 0.476003,
+       0.73, 0.093643, 0.470777,
+       0.703212, 0.094683, 0.476003,
+       0.680503, 0.097643, 0.490886,
+       0.665328, 0.102074, 0.513159,
+       0.66, 0.1073, 0.539432,
+       0.665328, 0.112526, 0.565705,
+       0.680503, 0.116956, 0.587978,
+       0.703212, 0.119916, 0.602861,
+       0.73, 0.120956, 0.608087,
+       0.756788, 0, 0.614672,
+       0.779498, 0, 0.599497,
+       0.794672, 0, 0.576788,
+       0.8, 0, 0.55,
+       0.794672, 0, 0.523212,
+       0.779498, 0, 0.500503,
+       0.756788, 0, 0.485328,
+       0.73, 0, 0.48,
+       0.703212, 0, 0.485328,
+       0.680503, 0, 0.500503,
+       0.665328, 0, 0.523212,
+       0.66, 0, 0.55,
+       0.665328, 0, 0.576788,
+       0.680503, 0, 0.599497,
+       0.703212, 0, 0.614672,
+       0.73, 0, 0.62,
+       0.756788, -0.119916, 0.602861,
+       0.779498, -0.116956, 0.587978,
+       0.794672, -0.112526, 0.565705,
+       0.8, -0.1073, 0.539432,
+       0.794672, -0.102074, 0.513159,
+       0.779498, -0.097643, 0.490886,
+       0.756788, -0.094683, 0.476003,
+       0.73, -0.093643, 0.470777,
+       0.703212, -0.094683, 0.476003,
+       0.680503, -0.097643, 0.490886,
+       0.665328, -0.102074, 0.513159,
+       0.66, -0.1073, 0.539432,
+       0.665328, -0.112526, 0.565705,
+       0.680503, -0.116956, 0.587978,
+       0.703212, -0.119916, 0.602861,
+       0.73, -0.120956, 0.608087,
+       0.756788, -0.235225, 0.567882,
+       0.779498, -0.229418, 0.553863,
+       0.794672, -0.220727, 0.532882,
+       0.8, -0.210476, 0.508134,
+       0.794672, -0.200225, 0.483385,
+       0.779498, -0.191534, 0.462404,
+       0.756788, -0.185727, 0.448385,
+       0.73, -0.183688, 0.443462,
+       0.703212, -0.185727, 0.448385,
+       0.680503, -0.191534, 0.462404,
+       0.665328, -0.200225, 0.483385,
+       0.66, -0.210476, 0.508134,
+       0.665328, -0.220727, 0.532882,
+       0.680503, -0.229418, 0.553863,
+       0.703212, -0.235225, 0.567882,
+       0.73, -0.237264, 0.572805,
+       0.756788, -0.341493, 0.511081,
+       0.779498, -0.333063, 0.498464,
+       0.794672, -0.320446, 0.479582,
+       0.8, -0.305564, 0.457308,
+       0.794672, -0.290681, 0.435035,
+       0.779498, -0.278064, 0.416153,
+       0.756788, -0.269634, 0.403536,
+       0.73, -0.266674, 0.399105,
+       0.703212, -0.269634, 0.403536,
+       0.680503, -0.278064, 0.416153,
+       0.665328, -0.290681, 0.435035,
+       0.66, -0.305564, 0.457308,
+       0.665328, -0.320446, 0.479582,
+       0.680503, -0.333063, 0.498464,
+       0.703212, -0.341493, 0.511081,
+       0.73, -0.344454, 0.515511,
+       0.756788, -0.434638, 0.434638,
+       0.779498, -0.423909, 0.423909,
+       0.794672, -0.407851, 0.407851,
+       0.8, -0.388909, 0.388909,
+       0.794672, -0.369967, 0.369967,
+       0.779498, -0.353909, 0.353909,
+       0.756788, -0.343179, 0.343179,
+       0.73, -0.339411, 0.339411,
+       0.703212, -0.343179, 0.343179,
+       0.680503, -0.353909, 0.353909,
+       0.665328, -0.369967, 0.369967,
+       0.66, -0.388909, 0.388909,
+       0.665328, -0.407851, 0.407851,
+       0.680503, -0.423909, 0.423909,
+       0.703212, -0.434638, 0.434638,
+       0.73, -0.438406, 0.438406,
+       0.756788, -0.511081, 0.341493,
+       0.779498, -0.498464, 0.333063,
+       0.794672, -0.479582, 0.320446,
+       0.8, -0.457308, 0.305564,
+       0.794672, -0.435035, 0.290681,
+       0.779498, -0.416153, 0.278064,
+       0.756788, -0.403536, 0.269634,
+       0.73, -0.399105, 0.266674,
+       0.703212, -0.403536, 0.269634,
+       0.680503, -0.416153, 0.278064,
+       0.665328, -0.435035, 0.290681,
+       0.66, -0.457308, 0.305564,
+       0.665328, -0.479582, 0.320446,
+       0.680503, -0.498464, 0.333063,
+       0.703212, -0.511081, 0.341493,
+       0.73, -0.515511, 0.344454,
+       0.756788, -0.567882, 0.235225,
+       0.779498, -0.553863, 0.229418,
+       0.794672, -0.532882, 0.220727,
+       0.8, -0.508134, 0.210476,
+       0.794672, -0.483385, 0.200225,
+       0.779498, -0.462404, 0.191534,
+       0.756788, -0.448385, 0.185727,
+       0.73, -0.443462, 0.183688,
+       0.703212, -0.448385, 0.185727,
+       0.680503, -0.462404, 0.191534,
+       0.665328, -0.483385, 0.200225,
+       0.66, -0.508134, 0.210476,
+       0.665328, -0.532882, 0.220727,
+       0.680503, -0.553863, 0.229418,
+       0.703212, -0.567882, 0.235225,
+       0.73, -0.572805, 0.237264,
+       0.756788, -0.602861, 0.119916,
+       0.779498, -0.587978, 0.116956,
+       0.794672, -0.565705, 0.112526,
+       0.8, -0.539432, 0.1073,
+       0.794672, -0.513159, 0.102074,
+       0.779498, -0.490886, 0.097643,
+       0.756788, -0.476003, 0.094683,
+       0.73, -0.470777, 0.093643,
+       0.703212, -0.476003, 0.094683,
+       0.680503, -0.490886, 0.097643,
+       0.665328, -0.513159, 0.102074,
+       0.66, -0.539432, 0.1073,
+       0.665328, -0.565705, 0.112526,
+       0.680503, -0.587978, 0.116956,
+       0.703212, -0.602861, 0.119916,
+       0.73, -0.608087, 0.120956,
+       0.756788, -0.614672, 0,
+       0.779498, -0.599497, 0,
+       0.794672, -0.576788, 0,
+       0.8, -0.55, 0,
+       0.794672, -0.523212, 0,
+       0.779498, -0.500503, 0,
+       0.756788, -0.485328, 0,
+       0.73, -0.48, 0,
+       0.703212, -0.485328, 0,
+       0.680503, -0.500503, 0,
+       0.665328, -0.523212, 0,
+       0.66, -0.55, 0,
+       0.665328, -0.576788, 0,
+       0.680503, -0.599497, 0,
+       0.703212, -0.614672, 0,
+       0.73, -0.62, 0,
+       0.756788, -0.602861, -0.119916,
+       0.779498, -0.587978, -0.116956,
+       0.794672, -0.565705, -0.112526,
+       0.8, -0.539432, -0.1073,
+       0.794672, -0.513159, -0.102074,
+       0.779498, -0.490886, -0.097643,
+       0.756788, -0.476003, -0.094683,
+       0.73, -0.470777, -0.093643,
+       0.703212, -0.476003, -0.094683,
+       0.680503, -0.490886, -0.097643,
+       0.665328, -0.513159, -0.102074,
+       0.66, -0.539432, -0.1073,
+       0.665328, -0.565705, -0.112526,
+       0.680503, -0.587978, -0.116956,
+       0.703212, -0.602861, -0.119916,
+       0.73, -0.608087, -0.120956,
+       0.756788, -0.567882, -0.235225,
+       0.779498, -0.553863, -0.229418,
+       0.794672, -0.532882, -0.220727,
+       0.8, -0.508134, -0.210476,
+       0.794672, -0.483385, -0.200225,
+       0.779498, -0.462404, -0.191534,
+       0.756788, -0.448385, -0.185727,
+       0.73, -0.443462, -0.183688,
+       0.703212, -0.448385, -0.185727,
+       0.680503, -0.462404, -0.191534,
+       0.665328, -0.483385, -0.200225,
+       0.66, -0.508134, -0.210476,
+       0.665328, -0.532882, -0.220727,
+       0.680503, -0.553863, -0.229418,
+       0.703212, -0.567882, -0.235225,
+       0.73, -0.572805, -0.237264,
+       0.756788, -0.511081, -0.341493,
+       0.779498, -0.498464, -0.333063,
+       0.794672, -0.479582, -0.320446,
+       0.8, -0.457308, -0.305564,
+       0.794672, -0.435035, -0.290681,
+       0.779498, -0.416153, -0.278064,
+       0.756788, -0.403536, -0.269634,
+       0.73, -0.399105, -0.266674,
+       0.703212, -0.403536, -0.269634,
+       0.680503, -0.416153, -0.278064,
+       0.665328, -0.435035, -0.290681,
+       0.66, -0.457308, -0.305564,
+       0.665328, -0.479582, -0.320446,
+       0.680503, -0.498464, -0.333063,
+       0.703212, -0.511081, -0.341493,
+       0.73, -0.515511, -0.344454,
+       0.756788, -0.434638, -0.434638,
+       0.779498, -0.423909, -0.423909,
+       0.794672, -0.407851, -0.407851,
+       0.8, -0.388909, -0.388909,
+       0.794672, -0.369967, -0.369967,
+       0.779498, -0.353909, -0.353909,
+       0.756788, -0.343179, -0.343179,
+       0.73, -0.339411, -0.339411,
+       0.703212, -0.343179, -0.343179,
+       0.680503, -0.353909, -0.353909,
+       0.665328, -0.369967, -0.369967,
+       0.66, -0.388909, -0.388909,
+       0.665328, -0.407851, -0.407851,
+       0.680503, -0.423909, -0.423909,
+       0.703212, -0.434638, -0.434638,
+       0.73, -0.438406, -0.438406,
+       0.756788, -0.341493, -0.511081,
+       0.779498, -0.333063, -0.498464,
+       0.794672, -0.320446, -0.479582,
+       0.8, -0.305564, -0.457308,
+       0.794672, -0.290681, -0.435035,
+       0.779498, -0.278064, -0.416153,
+       0.756788, -0.269634, -0.403536,
+       0.73, -0.266674, -0.399105,
+       0.703212, -0.269634, -0.403536,
+       0.680503, -0.278064, -0.416153,
+       0.665328, -0.290681, -0.435035,
+       0.66, -0.305564, -0.457308,
+       0.665328, -0.320446, -0.479582,
+       0.680503, -0.333063, -0.498464,
+       0.703212, -0.341493, -0.511081,
+       0.73, -0.344454, -0.515511,
+       0.756788, -0.235225, -0.567882,
+       0.779498, -0.229418, -0.553863,
+       0.794672, -0.220727, -0.532882,
+       0.8, -0.210476, -0.508134,
+       0.794672, -0.200225, -0.483385,
+       0.779498, -0.191534, -0.462404,
+       0.756788, -0.185727, -0.448385,
+       0.73, -0.183688, -0.443462,
+       0.703212, -0.185727, -0.448385,
+       0.680503, -0.191534, -0.462404,
+       0.665328, -0.200225, -0.483385,
+       0.66, -0.210476, -0.508134,
+       0.665328, -0.220727, -0.532882,
+       0.680503, -0.229418, -0.553863,
+       0.703212, -0.235225, -0.567882,
+       0.73, -0.237264, -0.572805,
+       0.756788, -0.119916, -0.602861,
+       0.779498, -0.116956, -0.587978,
+       0.794672, -0.112526, -0.565705,
+       0.8, -0.1073, -0.539432,
+       0.794672, -0.102074, -0.513159,
+       0.779498, -0.097643, -0.490885,
+       0.756788, -0.094683, -0.476003,
+       0.73, -0.093643, -0.470777,
+       0.703212, -0.094683, -0.476003,
+       0.680503, -0.097643, -0.490885,
+       0.665328, -0.102074, -0.513159,
+       0.66, -0.1073, -0.539432,
+       0.665328, -0.112526, -0.565705,
+       0.680503, -0.116956, -0.587978,
+       0.703212, -0.119916, -0.602861,
+       0.73, -0.120956, -0.608087,
+       0.756788, 0, -0.614672,
+       0.779498, 0, -0.599497,
+       0.794672, 0, -0.576788,
+       0.8, 0, -0.55,
+       0.794672, 0, -0.523212,
+       0.779498, 0, -0.500503,
+       0.756788, 0, -0.485328,
+       0.73, 0, -0.48,
+       0.703212, 0, -0.485328,
+       0.680503, 0, -0.500503,
+       0.665328, 0, -0.523212,
+       0.66, 0, -0.55,
+       0.665328, 0, -0.576788,
+       0.680503, 0, -0.599497,
+       0.703212, 0, -0.614672,
+       0.73, 0, -0.62,
+       0.756788, 0.119916, -0.602861,
+       0.779498, 0.116956, -0.587978,
+       0.794672, 0.112526, -0.565705,
+       0.8, 0.1073, -0.539432,
+       0.794672, 0.102074, -0.513159,
+       0.779498, 0.097643, -0.490886,
+       0.756788, 0.094683, -0.476003,
+       0.73, 0.093643, -0.470777,
+       0.703212, 0.094683, -0.476003,
+       0.680503, 0.097643, -0.490886,
+       0.665328, 0.102074, -0.513159,
+       0.66, 0.1073, -0.539432,
+       0.665328, 0.112526, -0.565705,
+       0.680503, 0.116956, -0.587978,
+       0.703212, 0.119916, -0.602861,
+       0.73, 0.120956, -0.608087,
+       0.756788, 0.235225, -0.567882,
+       0.779498, 0.229418, -0.553863,
+       0.794672, 0.220727, -0.532882,
+       0.8, 0.210476, -0.508134,
+       0.794672, 0.200225, -0.483385,
+       0.779498, 0.191534, -0.462404,
+       0.756788, 0.185727, -0.448385,
+       0.73, 0.183688, -0.443462,
+       0.703212, 0.185727, -0.448385,
+       0.680503, 0.191534, -0.462404,
+       0.665328, 0.200225, -0.483385,
+       0.66, 0.210476, -0.508134,
+       0.665328, 0.220727, -0.532882,
+       0.680503, 0.229418, -0.553863,
+       0.703212, 0.235225, -0.567882,
+       0.73, 0.237264, -0.572805,
+       0.756788, 0.341493, -0.511081,
+       0.779498, 0.333063, -0.498464,
+       0.794672, 0.320446, -0.479582,
+       0.8, 0.305564, -0.457308,
+       0.794672, 0.290681, -0.435035,
+       0.779498, 0.278064, -0.416153,
+       0.756788, 0.269634, -0.403536,
+       0.73, 0.266674, -0.399105,
+       0.703212, 0.269634, -0.403536,
+       0.680503, 0.278064, -0.416153,
+       0.665328, 0.290681, -0.435035,
+       0.66, 0.305564, -0.457308,
+       0.665328, 0.320446, -0.479582,
+       0.680503, 0.333063, -0.498464,
+       0.703212, 0.341493, -0.511081,
+       0.73, 0.344454, -0.515511,
+       0.756788, 0.434638, -0.434638,
+       0.779498, 0.423909, -0.423909,
+       0.794672, 0.407851, -0.407851,
+       0.8, 0.388909, -0.388909,
+       0.794672, 0.369967, -0.369967,
+       0.779498, 0.353909, -0.353909,
+       0.756788, 0.343179, -0.343179,
+       0.73, 0.339411, -0.339411,
+       0.703212, 0.343179, -0.343179,
+       0.680503, 0.353909, -0.353909,
+       0.665328, 0.369967, -0.369967,
+       0.66, 0.388909, -0.388909,
+       0.665328, 0.407851, -0.407851,
+       0.680503, 0.423909, -0.423909,
+       0.703212, 0.434638, -0.434638,
+       0.73, 0.438406, -0.438406,
+       0.756788, 0.511081, -0.341493,
+       0.779498, 0.498464, -0.333063,
+       0.794672, 0.479582, -0.320446,
+       0.8, 0.457308, -0.305564,
+       0.794672, 0.435035, -0.290681,
+       0.779498, 0.416153, -0.278064,
+       0.756788, 0.403536, -0.269634,
+       0.73, 0.399105, -0.266674,
+       0.703212, 0.403536, -0.269634,
+       0.680503, 0.416153, -0.278064,
+       0.665328, 0.435035, -0.290681,
+       0.66, 0.457308, -0.305564,
+       0.665328, 0.479582, -0.320446,
+       0.680503, 0.498464, -0.333063,
+       0.703212, 0.511081, -0.341493,
+       0.73, 0.515511, -0.344454,
+       0.756788, 0.567882, -0.235225,
+       0.779498, 0.553863, -0.229418,
+       0.794672, 0.532882, -0.220727,
+       0.8, 0.508134, -0.210476,
+       0.794672, 0.483385, -0.200225,
+       0.779498, 0.462404, -0.191534,
+       0.756788, 0.448385, -0.185727,
+       0.73, 0.443462, -0.183688,
+       0.703212, 0.448385, -0.185727,
+       0.680503, 0.462404, -0.191534,
+       0.665328, 0.483385, -0.200225,
+       0.66, 0.508134, -0.210476,
+       0.665328, 0.532882, -0.220727,
+       0.680503, 0.553863, -0.229418,
+       0.703212, 0.567882, -0.235225,
+       0.73, 0.572805, -0.237264,
+       0.756788, 0.602861, -0.119916,
+       0.779498, 0.587978, -0.116956,
+       0.794672, 0.565705, -0.112526,
+       0.8, 0.539432, -0.1073,
+       0.794672, 0.513159, -0.102074,
+       0.779498, 0.490885, -0.097643,
+       0.756788, 0.476003, -0.094683,
+       0.73, 0.470777, -0.093643,
+       0.703212, 0.476003, -0.094683,
+       0.680503, 0.490885, -0.097643,
+       0.665328, 0.513159, -0.102074,
+       0.66, 0.539432, -0.1073,
+       0.665328, 0.565705, -0.112526,
+       0.680503, 0.587978, -0.116956,
+       0.703212, 0.602861, -0.119916,
+       0.73, 0.608087, -0.120956,
+       0.42, 0, -0.2,
+       0.42, 0.051764, -0.193185,
+       0.42, 0.1, -0.173205,
+       0.42, 0.141421, -0.141421,
+       0.42, 0.173205, -0.1,
+       0.42, 0.193185, -0.051764,
+       0.42, 0.2, 0,
+       0.42, 0.193185, 0.051764,
+       0.42, 0.173205, 0.1,
+       0.42, 0.141421, 0.141421,
+       0.42, 0.1, 0.173205,
+       0.42, 0.051764, 0.193185,
+       0.42, 0, 0.2,
+       0.42, -0.051764, 0.193185,
+       0.42, -0.1, 0.173205,
+       0.42, -0.141421, 0.141421,
+       0.42, -0.173205, 0.1,
+       0.42, -0.193185, 0.051764,
+       0.42, -0.2, 0,
+       0.42, -0.193185, -0.051764,
+       0.42, -0.173205, -0.1,
+       0.42, -0.141421, -0.141421,
+       0.42, -0.1, -0.173205,
+       0.42, -0.051764, -0.193185,
+       0.54, 0, -0.2,
+       0.54, 0.051764, -0.193185,
+       0.54, 0.1, -0.173205,
+       0.54, 0.141421, -0.141421,
+       0.54, 0.173205, -0.1,
+       0.54, 0.193185, -0.051764,
+       0.54, 0.2, 0,
+       0.54, 0.193185, 0.051764,
+       0.54, 0.173205, 0.1,
+       0.54, 0.141421, 0.141421,
+       0.54, 0.1, 0.173205,
+       0.54, 0.051764, 0.193185,
+       0.54, 0, 0.2,
+       0.54, -0.051764, 0.193185,
+       0.54, -0.1, 0.173205,
+       0.54, -0.141421, 0.141421,
+       0.54, -0.173205, 0.1,
+       0.54, -0.193185, 0.051764,
+       0.54, -0.2, 0,
+       0.54, -0.193185, -0.051764,
+       0.54, -0.173205, -0.1,
+       0.54, -0.141421, -0.141421,
+       0.54, -0.1, -0.173205,
+       0.54, -0.051764, -0.193185,
+       0.79, 0.06, 0,
+       0.785433, 0.06, -0.022961,
+       0.772426, 0.06, -0.042426,
+       0.752961, 0.06, -0.055433,
+       0.73, 0.06, -0.06,
+       0.707039, 0.06, -0.055433,
+       0.687574, 0.06, -0.042426,
+       0.674567, 0.06, -0.022961,
+       0.67, 0.06, 0,
+       0.674567, 0.06, 0.022961,
+       0.687574, 0.06, 0.042426,
+       0.707039, 0.06, 0.055433,
+       0.73, 0.06, 0.06,
+       0.752961, 0.06, 0.055433,
+       0.772426, 0.06, 0.042426,
+       0.785433, 0.06, 0.022961,
+       0.79, 0.55, 0,
+       0.785433, 0.55, -0.022961,
+       0.772426, 0.55, -0.042426,
+       0.752961, 0.55, -0.055433,
+       0.73, 0.55, -0.06,
+       0.707039, 0.55, -0.055433,
+       0.687574, 0.55, -0.042426,
+       0.674567, 0.55, -0.022961,
+       0.67, 0.55, 0,
+       0.674567, 0.55, 0.022961,
+       0.687574, 0.55, 0.042426,
+       0.707039, 0.55, 0.055433,
+       0.73, 0.55, 0.06,
+       0.752961, 0.55, 0.055433,
+       0.772426, 0.55, 0.042426,
+       0.785433, 0.55, 0.022961,
+       0.79, 0, 0.06,
+       0.785433, 0.022961, 0.06,
+       0.772426, 0.042426, 0.06,
+       0.752961, 0.055433, 0.06,
+       0.707039, 0.055433, 0.06,
+       0.687574, 0.042426, 0.06,
+       0.674567, 0.022961, 0.06,
+       0.67, 0, 0.06,
+       0.674567, -0.022961, 0.06,
+       0.687574, -0.042426, 0.06,
+       0.707039, -0.055433, 0.06,
+       0.73, -0.06, 0.06,
+       0.752961, -0.055433, 0.06,
+       0.772426, -0.042426, 0.06,
+       0.785433, -0.022961, 0.06,
+       0.79, 0, 0.55,
+       0.785433, 0.022961, 0.55,
+       0.772426, 0.042426, 0.55,
+       0.752961, 0.055433, 0.55,
+       0.73, 0.06, 0.55,
+       0.707039, 0.055433, 0.55,
+       0.687574, 0.042426, 0.55,
+       0.674567, 0.022961, 0.55,
+       0.67, 0, 0.55,
+       0.674567, -0.022961, 0.55,
+       0.687574, -0.042426, 0.55,
+       0.707039, -0.055433, 0.55,
+       0.73, -0.06, 0.55,
+       0.752961, -0.055433, 0.55,
+       0.772426, -0.042426, 0.55,
+       0.785433, -0.022961, 0.55,
+       0.79, -0.06, 0,
+       0.785433, -0.06, 0.022961,
+       0.772426, -0.06, 0.042426,
+       0.752961, -0.06, 0.055433,
+       0.707039, -0.06, 0.055433,
+       0.687574, -0.06, 0.042426,
+       0.674567, -0.06, 0.022961,
+       0.67, -0.06, 0,
+       0.674567, -0.06, -0.022961,
+       0.687574, -0.06, -0.042426,
+       0.707039, -0.06, -0.055433,
+       0.73, -0.06, -0.06,
+       0.752961, -0.06, -0.055433,
+       0.772426, -0.06, -0.042426,
+       0.785433, -0.06, -0.022961,
+       0.79, -0.55, 0,
+       0.785433, -0.55, 0.022961,
+       0.772426, -0.55, 0.042426,
+       0.752961, -0.55, 0.055433,
+       0.73, -0.55, 0.06,
+       0.707039, -0.55, 0.055433,
+       0.687574, -0.55, 0.042426,
+       0.674567, -0.55, 0.022961,
+       0.67, -0.55, 0,
+       0.674567, -0.55, -0.022961,
+       0.687574, -0.55, -0.042426,
+       0.707039, -0.55, -0.055433,
+       0.73, -0.55, -0.06,
+       0.752961, -0.55, -0.055433,
+       0.772426, -0.55, -0.042426,
+       0.785433, -0.55, -0.022961,
+       0.79, 0, -0.06,
+       0.785433, -0.022961, -0.06,
+       0.772426, -0.042426, -0.06,
+       0.752961, -0.055433, -0.06,
+       0.707039, -0.055433, -0.06,
+       0.687574, -0.042426, -0.06,
+       0.674567, -0.022961, -0.06,
+       0.67, 0, -0.06,
+       0.674567, 0.022961, -0.06,
+       0.687574, 0.042426, -0.06,
+       0.707039, 0.055433, -0.06,
+       0.752961, 0.055433, -0.06,
+       0.772426, 0.042426, -0.06,
+       0.785433, 0.022961, -0.06,
+       0.79, 0, -0.55,
+       0.785433, -0.022961, -0.55,
+       0.772426, -0.042426, -0.55,
+       0.752961, -0.055433, -0.55,
+       0.73, -0.06, -0.55,
+       0.707039, -0.055433, -0.55,
+       0.687574, -0.042426, -0.55,
+       0.674567, -0.022961, -0.55,
+       0.67, 0, -0.55,
+       0.674567, 0.022961, -0.55,
+       0.687574, 0.042426, -0.55,
+       0.707039, 0.055433, -0.55,
+       0.73, 0.06, -0.55,
+       0.752961, 0.055433, -0.55,
+       0.772426, 0.042426, -0.55,
+       0.785433, 0.022961, -0.55,
+       0.54, 0, -0.1,
+       0.54, 0.038268, -0.092388,
+       0.54, 0.070711, -0.070711,
+       0.54, 0.092388, -0.038268,
+       0.54, 0.1, 0,
+       0.54, 0.092388, 0.038268,
+       0.54, 0.070711, 0.070711,
+       0.54, 0.038268, 0.092388,
+       0.54, 0, 0.1,
+       0.54, -0.038268, 0.092388,
+       0.54, -0.070711, 0.070711,
+       0.54, -0.092388, 0.038268,
+       0.54, -0.1, 0,
+       0.54, -0.092388, -0.038268,
+       0.54, -0.070711, -0.070711,
+       0.54, -0.038268, -0.092388,
+       0.8, 0, -0.1,
+       0.8, 0.038268, -0.092388,
+       0.8, 0.070711, -0.070711,
+       0.8, 0.092388, -0.038268,
+       0.8, 0.1, 0,
+       0.8, 0.092388, 0.038268,
+       0.8, 0.070711, 0.070711,
+       0.8, 0.038268, 0.092388,
+       0.8, 0, 0.1,
+       0.8, -0.038268, 0.092388,
+       0.8, -0.070711, 0.070711,
+       0.8, -0.092388, 0.038268,
+       0.8, -0.1, 0,
+       0.8, -0.092388, -0.038268,
+       0.8, -0.070711, -0.070711,
+       0.8, -0.038268, -0.092388,
 };
 
 static const GLfloat BigValve_normals[] =
 {
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.195090, (GLfloat) - 0.980785,
-       (GLfloat) - 0.000000, (GLfloat) 0.555570, (GLfloat) - 0.831470,
-       (GLfloat) - 0.000000, (GLfloat) 0.831470, (GLfloat) - 0.555570,
-       (GLfloat) - 0.000000, (GLfloat) 0.980785, (GLfloat) - 0.195090,
-       (GLfloat) - 0.000000, (GLfloat) 0.980785, (GLfloat) 0.195090,
-       (GLfloat) - 0.000000, (GLfloat) 0.831470, (GLfloat) 0.555570,
-       (GLfloat) - 0.000000, (GLfloat) 0.555570, (GLfloat) 0.831470,
-       (GLfloat) - 0.000000, (GLfloat) 0.195090, (GLfloat) 0.980785,
-       (GLfloat) - 0.000000, (GLfloat) - 0.195090, (GLfloat) 0.980785,
-       (GLfloat) - 0.000000, (GLfloat) - 0.555570, (GLfloat) 0.831470,
-       (GLfloat) - 0.000000, (GLfloat) - 0.831470, (GLfloat) 0.555570,
-       (GLfloat) - 0.000000, (GLfloat) - 0.980785, (GLfloat) 0.195090,
-       (GLfloat) 0.000000, (GLfloat) - 0.980785, (GLfloat) - 0.195090,
-       (GLfloat) 0.000000, (GLfloat) - 0.831470, (GLfloat) - 0.555570,
-       (GLfloat) 0.000000, (GLfloat) - 0.555570, (GLfloat) - 0.831470,
-       (GLfloat) 0.000000, (GLfloat) - 0.195090, (GLfloat) - 0.980785,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.980785, (GLfloat) - 0.195092, (GLfloat) - 0.000000,
-       (GLfloat) 0.831470, (GLfloat) - 0.555569, (GLfloat) - 0.000000,
-       (GLfloat) 0.555569, (GLfloat) - 0.831470, (GLfloat) - 0.000000,
-       (GLfloat) 0.195091, (GLfloat) - 0.980785, (GLfloat) - 0.000000,
-       (GLfloat) - 0.195090, (GLfloat) - 0.980785, (GLfloat) - 0.000000,
-       (GLfloat) - 0.555570, (GLfloat) - 0.831469, (GLfloat) - 0.000000,
-       (GLfloat) - 0.831469, (GLfloat) - 0.555571, (GLfloat) - 0.000000,
-       (GLfloat) - 0.980785, (GLfloat) - 0.195089, (GLfloat) 0.000000,
-       (GLfloat) - 0.980785, (GLfloat) 0.195089, (GLfloat) - 0.000000,
-       (GLfloat) - 0.831469, (GLfloat) 0.555571, (GLfloat) - 0.000000,
-       (GLfloat) - 0.555570, (GLfloat) 0.831469, (GLfloat) - 0.000000,
-       (GLfloat) - 0.195090, (GLfloat) 0.980785, (GLfloat) - 0.000000,
-       (GLfloat) 0.195091, (GLfloat) 0.980785, (GLfloat) 0.000000,
-       (GLfloat) 0.555569, (GLfloat) 0.831470, (GLfloat) 0.000000,
-       (GLfloat) 0.831470, (GLfloat) 0.555569, (GLfloat) 0.000000,
-       (GLfloat) 0.980785, (GLfloat) 0.195092, (GLfloat) - 0.000000,
-       (GLfloat) 0.980785, (GLfloat) 0.000000, (GLfloat) 0.195092,
-       (GLfloat) 0.831470, (GLfloat) 0.000000, (GLfloat) 0.555569,
-       (GLfloat) 0.555569, (GLfloat) 0.000000, (GLfloat) 0.831470,
-       (GLfloat) 0.195091, (GLfloat) 0.000000, (GLfloat) 0.980785,
-       (GLfloat) - 0.195090, (GLfloat) 0.000000, (GLfloat) 0.980785,
-       (GLfloat) - 0.555570, (GLfloat) 0.000000, (GLfloat) 0.831469,
-       (GLfloat) - 0.831469, (GLfloat) 0.000000, (GLfloat) 0.555571,
-       (GLfloat) - 0.980785, (GLfloat) 0.000000, (GLfloat) 0.195089,
-       (GLfloat) - 0.980785, (GLfloat) - 0.000000, (GLfloat) - 0.195089,
-       (GLfloat) - 0.831469, (GLfloat) - 0.000000, (GLfloat) - 0.555571,
-       (GLfloat) - 0.555570, (GLfloat) - 0.000000, (GLfloat) - 0.831469,
-       (GLfloat) - 0.195090, (GLfloat) - 0.000000, (GLfloat) - 0.980785,
-       (GLfloat) 0.195091, (GLfloat) 0.000000, (GLfloat) - 0.980785,
-       (GLfloat) 0.555569, (GLfloat) 0.000000, (GLfloat) - 0.831470,
-       (GLfloat) 0.831470, (GLfloat) 0.000000, (GLfloat) - 0.555569,
-       (GLfloat) 0.980785, (GLfloat) - 0.000000, (GLfloat) - 0.195092,
-       (GLfloat) 0.980785, (GLfloat) 0.195092, (GLfloat) - 0.000000,
-       (GLfloat) 0.831470, (GLfloat) 0.555569, (GLfloat) - 0.000000,
-       (GLfloat) 0.555569, (GLfloat) 0.831470, (GLfloat) - 0.000000,
-       (GLfloat) 0.195091, (GLfloat) 0.980785, (GLfloat) - 0.000000,
-       (GLfloat) - 0.195090, (GLfloat) 0.980785, (GLfloat) - 0.000000,
-       (GLfloat) - 0.555570, (GLfloat) 0.831469, (GLfloat) - 0.000000,
-       (GLfloat) - 0.831469, (GLfloat) 0.555571, (GLfloat) - 0.000000,
-       (GLfloat) - 0.980785, (GLfloat) 0.195089, (GLfloat) - 0.000000,
-       (GLfloat) - 0.980785, (GLfloat) - 0.195089, (GLfloat) 0.000000,
-       (GLfloat) - 0.831469, (GLfloat) - 0.555571, (GLfloat) 0.000000,
-       (GLfloat) - 0.555570, (GLfloat) - 0.831469, (GLfloat) 0.000000,
-       (GLfloat) - 0.195090, (GLfloat) - 0.980785, (GLfloat) 0.000000,
-       (GLfloat) 0.195091, (GLfloat) - 0.980785, (GLfloat) - 0.000000,
-       (GLfloat) 0.555569, (GLfloat) - 0.831470, (GLfloat) - 0.000000,
-       (GLfloat) 0.831470, (GLfloat) - 0.555569, (GLfloat) - 0.000000,
-       (GLfloat) 0.980785, (GLfloat) - 0.195092, (GLfloat) 0.000000,
-       (GLfloat) 0.980785, (GLfloat) 0.000000, (GLfloat) - 0.195092,
-       (GLfloat) 0.831470, (GLfloat) 0.000000, (GLfloat) - 0.555569,
-       (GLfloat) 0.555569, (GLfloat) 0.000000, (GLfloat) - 0.831470,
-       (GLfloat) 0.195091, (GLfloat) 0.000000, (GLfloat) - 0.980785,
-       (GLfloat) - 0.195090, (GLfloat) 0.000000, (GLfloat) - 0.980785,
-       (GLfloat) - 0.555570, (GLfloat) 0.000000, (GLfloat) - 0.831469,
-       (GLfloat) - 0.831469, (GLfloat) 0.000000, (GLfloat) - 0.555571,
-       (GLfloat) - 0.980785, (GLfloat) 0.000000, (GLfloat) - 0.195089,
-       (GLfloat) - 0.980785, (GLfloat) 0.000000, (GLfloat) 0.195089,
-       (GLfloat) - 0.831469, (GLfloat) 0.000000, (GLfloat) 0.555571,
-       (GLfloat) - 0.555570, (GLfloat) 0.000000, (GLfloat) 0.831469,
-       (GLfloat) - 0.195090, (GLfloat) 0.000000, (GLfloat) 0.980785,
-       (GLfloat) 0.195091, (GLfloat) - 0.000000, (GLfloat) 0.980785,
-       (GLfloat) 0.555569, (GLfloat) - 0.000000, (GLfloat) 0.831470,
-       (GLfloat) 0.831470, (GLfloat) - 0.000000, (GLfloat) 0.555569,
-       (GLfloat) 0.980785, (GLfloat) - 0.000000, (GLfloat) 0.195092,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.130526, (GLfloat) - 0.991445,
-       (GLfloat) - 0.000000, (GLfloat) 0.382684, (GLfloat) - 0.923880,
-       (GLfloat) - 0.000000, (GLfloat) 0.608761, (GLfloat) - 0.793353,
-       (GLfloat) - 0.000000, (GLfloat) 0.793353, (GLfloat) - 0.608761,
-       (GLfloat) - 0.000000, (GLfloat) 0.923880, (GLfloat) - 0.382684,
-       (GLfloat) - 0.000000, (GLfloat) 0.991445, (GLfloat) - 0.130526,
-       (GLfloat) - 0.000000, (GLfloat) 0.991445, (GLfloat) 0.130526,
-       (GLfloat) - 0.000000, (GLfloat) 0.923880, (GLfloat) 0.382684,
-       (GLfloat) - 0.000000, (GLfloat) 0.793353, (GLfloat) 0.608761,
-       (GLfloat) - 0.000000, (GLfloat) 0.608761, (GLfloat) 0.793353,
-       (GLfloat) - 0.000000, (GLfloat) 0.382684, (GLfloat) 0.923880,
-       (GLfloat) - 0.000000, (GLfloat) 0.130526, (GLfloat) 0.991445,
-       (GLfloat) - 0.000000, (GLfloat) - 0.130526, (GLfloat) 0.991445,
-       (GLfloat) - 0.000000, (GLfloat) - 0.382684, (GLfloat) 0.923880,
-       (GLfloat) - 0.000000, (GLfloat) - 0.608761, (GLfloat) 0.793353,
-       (GLfloat) - 0.000000, (GLfloat) - 0.793353, (GLfloat) 0.608761,
-       (GLfloat) - 0.000000, (GLfloat) - 0.923880, (GLfloat) 0.382684,
-       (GLfloat) - 0.000000, (GLfloat) - 0.991445, (GLfloat) 0.130526,
-       (GLfloat) 0.000000, (GLfloat) - 0.991445, (GLfloat) - 0.130526,
-       (GLfloat) 0.000000, (GLfloat) - 0.923880, (GLfloat) - 0.382684,
-       (GLfloat) 0.000000, (GLfloat) - 0.793353, (GLfloat) - 0.608761,
-       (GLfloat) 0.000000, (GLfloat) - 0.608761, (GLfloat) - 0.793353,
-       (GLfloat) 0.000000, (GLfloat) - 0.382684, (GLfloat) - 0.923880,
-       (GLfloat) 0.000000, (GLfloat) - 0.130526, (GLfloat) - 0.991445,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.194185, (GLfloat) 0.976241, (GLfloat) 0.096151,
-       (GLfloat) - 0.194185, (GLfloat) 0.976241, (GLfloat) 0.096151,
-       (GLfloat) - 0.553718, (GLfloat) 0.828695, (GLfloat) 0.081619,
-       (GLfloat) - 0.830228, (GLfloat) 0.554740, (GLfloat) 0.054637,
-       (GLfloat) - 0.980604, (GLfloat) 0.195054, (GLfloat) 0.019211,
-       (GLfloat) - 0.980605, (GLfloat) - 0.195053, (GLfloat) - 0.019211,
-       (GLfloat) - 0.830227, (GLfloat) - 0.554741, (GLfloat) - 0.054637,
-       (GLfloat) - 0.553717, (GLfloat) - 0.828695, (GLfloat) - 0.081619,
-       (GLfloat) - 0.194187, (GLfloat) - 0.976241, (GLfloat) - 0.096151,
-       (GLfloat) 0.194188, (GLfloat) - 0.976241, (GLfloat) - 0.096151,
-       (GLfloat) 0.553716, (GLfloat) - 0.828696, (GLfloat) - 0.081619,
-       (GLfloat) 0.830227, (GLfloat) - 0.554741, (GLfloat) - 0.054637,
-       (GLfloat) 0.980604, (GLfloat) - 0.195053, (GLfloat) - 0.019211,
-       (GLfloat) 0.980604, (GLfloat) 0.195054, (GLfloat) 0.019211,
-       (GLfloat) 0.830228, (GLfloat) 0.554740, (GLfloat) 0.054637,
-       (GLfloat) 0.553717, (GLfloat) 0.828695, (GLfloat) 0.081619,
-       (GLfloat) 0.194186, (GLfloat) 0.938725, (GLfloat) 0.284759,
-       (GLfloat) - 0.194185, (GLfloat) 0.938725, (GLfloat) 0.284759,
-       (GLfloat) - 0.553717, (GLfloat) 0.796849, (GLfloat) 0.241721,
-       (GLfloat) - 0.830228, (GLfloat) 0.533421, (GLfloat) 0.161812,
-       (GLfloat) - 0.980604, (GLfloat) 0.187558, (GLfloat) 0.056895,
-       (GLfloat) - 0.980604, (GLfloat) - 0.187558, (GLfloat) - 0.056895,
-       (GLfloat) - 0.830227, (GLfloat) - 0.533422, (GLfloat) - 0.161812,
-       (GLfloat) - 0.553717, (GLfloat) - 0.796849, (GLfloat) - 0.241722,
-       (GLfloat) - 0.194186, (GLfloat) - 0.938725, (GLfloat) - 0.284759,
-       (GLfloat) 0.194187, (GLfloat) - 0.938724, (GLfloat) - 0.284759,
-       (GLfloat) 0.553716, (GLfloat) - 0.796849, (GLfloat) - 0.241722,
-       (GLfloat) 0.830227, (GLfloat) - 0.533422, (GLfloat) - 0.161812,
-       (GLfloat) 0.980604, (GLfloat) - 0.187558, (GLfloat) - 0.056895,
-       (GLfloat) 0.980604, (GLfloat) 0.187558, (GLfloat) 0.056895,
-       (GLfloat) 0.830228, (GLfloat) 0.533421, (GLfloat) 0.161811,
-       (GLfloat) 0.553716, (GLfloat) 0.796850, (GLfloat) 0.241722,
-       (GLfloat) 0.194186, (GLfloat) 0.865134, (GLfloat) 0.462423,
-       (GLfloat) - 0.194185, (GLfloat) 0.865134, (GLfloat) 0.462424,
-       (GLfloat) - 0.553717, (GLfloat) 0.734380, (GLfloat) 0.392534,
-       (GLfloat) - 0.830228, (GLfloat) 0.491604, (GLfloat) 0.262768,
-       (GLfloat) - 0.980604, (GLfloat) 0.172854, (GLfloat) 0.092393,
-       (GLfloat) - 0.980604, (GLfloat) - 0.172854, (GLfloat) - 0.092393,
-       (GLfloat) - 0.830227, (GLfloat) - 0.491605, (GLfloat) - 0.262768,
-       (GLfloat) - 0.553717, (GLfloat) - 0.734380, (GLfloat) - 0.392534,
-       (GLfloat) - 0.194187, (GLfloat) - 0.865134, (GLfloat) - 0.462424,
-       (GLfloat) 0.194187, (GLfloat) - 0.865134, (GLfloat) - 0.462423,
-       (GLfloat) 0.553716, (GLfloat) - 0.734381, (GLfloat) - 0.392534,
-       (GLfloat) 0.830227, (GLfloat) - 0.491605, (GLfloat) - 0.262768,
-       (GLfloat) 0.980604, (GLfloat) - 0.172854, (GLfloat) - 0.092393,
-       (GLfloat) 0.980604, (GLfloat) 0.172854, (GLfloat) 0.092393,
-       (GLfloat) 0.830228, (GLfloat) 0.491604, (GLfloat) 0.262768,
-       (GLfloat) 0.553716, (GLfloat) 0.734381, (GLfloat) 0.392535,
-       (GLfloat) 0.194186, (GLfloat) 0.758296, (GLfloat) 0.622317,
-       (GLfloat) - 0.194186, (GLfloat) 0.758296, (GLfloat) 0.622318,
-       (GLfloat) - 0.553717, (GLfloat) 0.643690, (GLfloat) 0.528263,
-       (GLfloat) - 0.830228, (GLfloat) 0.430895, (GLfloat) 0.353626,
-       (GLfloat) - 0.980604, (GLfloat) 0.151508, (GLfloat) 0.124340,
-       (GLfloat) - 0.980604, (GLfloat) - 0.151508, (GLfloat) - 0.124339,
-       (GLfloat) - 0.830227, (GLfloat) - 0.430895, (GLfloat) - 0.353627,
-       (GLfloat) - 0.553717, (GLfloat) - 0.643690, (GLfloat) - 0.528263,
-       (GLfloat) - 0.194186, (GLfloat) - 0.758296, (GLfloat) - 0.622317,
-       (GLfloat) 0.194186, (GLfloat) - 0.758296, (GLfloat) - 0.622318,
-       (GLfloat) 0.553716, (GLfloat) - 0.643690, (GLfloat) - 0.528263,
-       (GLfloat) 0.830227, (GLfloat) - 0.430895, (GLfloat) - 0.353627,
-       (GLfloat) 0.980604, (GLfloat) - 0.151508, (GLfloat) - 0.124339,
-       (GLfloat) 0.980604, (GLfloat) 0.151508, (GLfloat) 0.124340,
-       (GLfloat) 0.830228, (GLfloat) 0.430895, (GLfloat) 0.353626,
-       (GLfloat) 0.553716, (GLfloat) 0.643690, (GLfloat) 0.528263,
-       (GLfloat) 0.194186, (GLfloat) 0.622317, (GLfloat) 0.758296,
-       (GLfloat) - 0.194185, (GLfloat) 0.622318, (GLfloat) 0.758296,
-       (GLfloat) - 0.553717, (GLfloat) 0.528263, (GLfloat) 0.643690,
-       (GLfloat) - 0.830228, (GLfloat) 0.353626, (GLfloat) 0.430895,
-       (GLfloat) - 0.980604, (GLfloat) 0.124339, (GLfloat) 0.151508,
-       (GLfloat) - 0.980604, (GLfloat) - 0.124339, (GLfloat) - 0.151508,
-       (GLfloat) - 0.830227, (GLfloat) - 0.353627, (GLfloat) - 0.430895,
-       (GLfloat) - 0.553717, (GLfloat) - 0.528262, (GLfloat) - 0.643689,
-       (GLfloat) - 0.194187, (GLfloat) - 0.622317, (GLfloat) - 0.758296,
-       (GLfloat) 0.194187, (GLfloat) - 0.622317, (GLfloat) - 0.758296,
-       (GLfloat) 0.553716, (GLfloat) - 0.528263, (GLfloat) - 0.643690,
-       (GLfloat) 0.830227, (GLfloat) - 0.353627, (GLfloat) - 0.430895,
-       (GLfloat) 0.980604, (GLfloat) - 0.124339, (GLfloat) - 0.151508,
-       (GLfloat) 0.980604, (GLfloat) 0.124340, (GLfloat) 0.151508,
-       (GLfloat) 0.830228, (GLfloat) 0.353626, (GLfloat) 0.430895,
-       (GLfloat) 0.553716, (GLfloat) 0.528263, (GLfloat) 0.643690,
-       (GLfloat) 0.194186, (GLfloat) 0.462423, (GLfloat) 0.865134,
-       (GLfloat) - 0.194185, (GLfloat) 0.462424, (GLfloat) 0.865134,
-       (GLfloat) - 0.553717, (GLfloat) 0.392534, (GLfloat) 0.734380,
-       (GLfloat) - 0.830228, (GLfloat) 0.262768, (GLfloat) 0.491604,
-       (GLfloat) - 0.980604, (GLfloat) 0.092393, (GLfloat) 0.172855,
-       (GLfloat) - 0.980604, (GLfloat) - 0.092392, (GLfloat) - 0.172854,
-       (GLfloat) - 0.830227, (GLfloat) - 0.262768, (GLfloat) - 0.491605,
-       (GLfloat) - 0.553717, (GLfloat) - 0.392534, (GLfloat) - 0.734380,
-       (GLfloat) - 0.194186, (GLfloat) - 0.462424, (GLfloat) - 0.865134,
-       (GLfloat) 0.194187, (GLfloat) - 0.462423, (GLfloat) - 0.865134,
-       (GLfloat) 0.553716, (GLfloat) - 0.392535, (GLfloat) - 0.734381,
-       (GLfloat) 0.830227, (GLfloat) - 0.262768, (GLfloat) - 0.491605,
-       (GLfloat) 0.980604, (GLfloat) - 0.092392, (GLfloat) - 0.172854,
-       (GLfloat) 0.980604, (GLfloat) 0.092393, (GLfloat) 0.172855,
-       (GLfloat) 0.830228, (GLfloat) 0.262768, (GLfloat) 0.491604,
-       (GLfloat) 0.553716, (GLfloat) 0.392535, (GLfloat) 0.734381,
-       (GLfloat) 0.194185, (GLfloat) 0.284759, (GLfloat) 0.938725,
-       (GLfloat) - 0.194185, (GLfloat) 0.284759, (GLfloat) 0.938725,
-       (GLfloat) - 0.553718, (GLfloat) 0.241721, (GLfloat) 0.796848,
-       (GLfloat) - 0.830228, (GLfloat) 0.161812, (GLfloat) 0.533422,
-       (GLfloat) - 0.980604, (GLfloat) 0.056895, (GLfloat) 0.187558,
-       (GLfloat) - 0.980604, (GLfloat) - 0.056895, (GLfloat) - 0.187558,
-       (GLfloat) - 0.830227, (GLfloat) - 0.161812, (GLfloat) - 0.533423,
-       (GLfloat) - 0.553717, (GLfloat) - 0.241722, (GLfloat) - 0.796849,
-       (GLfloat) - 0.194187, (GLfloat) - 0.284759, (GLfloat) - 0.938725,
-       (GLfloat) 0.194188, (GLfloat) - 0.284759, (GLfloat) - 0.938724,
-       (GLfloat) 0.553716, (GLfloat) - 0.241722, (GLfloat) - 0.796849,
-       (GLfloat) 0.830227, (GLfloat) - 0.161812, (GLfloat) - 0.533423,
-       (GLfloat) 0.980604, (GLfloat) - 0.056895, (GLfloat) - 0.187557,
-       (GLfloat) 0.980604, (GLfloat) 0.056895, (GLfloat) 0.187558,
-       (GLfloat) 0.830228, (GLfloat) 0.161812, (GLfloat) 0.533422,
-       (GLfloat) 0.553717, (GLfloat) 0.241722, (GLfloat) 0.796849,
-       (GLfloat) 0.194186, (GLfloat) 0.096151, (GLfloat) 0.976241,
-       (GLfloat) - 0.194186, (GLfloat) 0.096151, (GLfloat) 0.976241,
-       (GLfloat) - 0.553717, (GLfloat) 0.081619, (GLfloat) 0.828695,
-       (GLfloat) - 0.830228, (GLfloat) 0.054637, (GLfloat) 0.554740,
-       (GLfloat) - 0.980604, (GLfloat) 0.019211, (GLfloat) 0.195054,
-       (GLfloat) - 0.980604, (GLfloat) - 0.019211, (GLfloat) - 0.195054,
-       (GLfloat) - 0.830227, (GLfloat) - 0.054637, (GLfloat) - 0.554741,
-       (GLfloat) - 0.553717, (GLfloat) - 0.081619, (GLfloat) - 0.828695,
-       (GLfloat) - 0.194187, (GLfloat) - 0.096151, (GLfloat) - 0.976241,
-       (GLfloat) 0.194187, (GLfloat) - 0.096151, (GLfloat) - 0.976241,
-       (GLfloat) 0.553716, (GLfloat) - 0.081619, (GLfloat) - 0.828696,
-       (GLfloat) 0.830227, (GLfloat) - 0.054637, (GLfloat) - 0.554741,
-       (GLfloat) 0.980604, (GLfloat) - 0.019211, (GLfloat) - 0.195054,
-       (GLfloat) 0.980604, (GLfloat) 0.019211, (GLfloat) 0.195054,
-       (GLfloat) 0.830228, (GLfloat) 0.054637, (GLfloat) 0.554740,
-       (GLfloat) 0.553716, (GLfloat) 0.081619, (GLfloat) 0.828696,
-       (GLfloat) 0.194185, (GLfloat) - 0.096151, (GLfloat) 0.976241,
-       (GLfloat) - 0.194185, (GLfloat) - 0.096151, (GLfloat) 0.976241,
-       (GLfloat) - 0.553718, (GLfloat) - 0.081619, (GLfloat) 0.828695,
-       (GLfloat) - 0.830228, (GLfloat) - 0.054637, (GLfloat) 0.554740,
-       (GLfloat) - 0.980604, (GLfloat) - 0.019211, (GLfloat) 0.195054,
-       (GLfloat) - 0.980605, (GLfloat) 0.019211, (GLfloat) - 0.195053,
-       (GLfloat) - 0.830227, (GLfloat) 0.054637, (GLfloat) - 0.554741,
-       (GLfloat) - 0.553717, (GLfloat) 0.081619, (GLfloat) - 0.828695,
-       (GLfloat) - 0.194187, (GLfloat) 0.096151, (GLfloat) - 0.976241,
-       (GLfloat) 0.194188, (GLfloat) 0.096151, (GLfloat) - 0.976241,
-       (GLfloat) 0.553716, (GLfloat) 0.081619, (GLfloat) - 0.828696,
-       (GLfloat) 0.830227, (GLfloat) 0.054637, (GLfloat) - 0.554741,
-       (GLfloat) 0.980604, (GLfloat) 0.019211, (GLfloat) - 0.195053,
-       (GLfloat) 0.980604, (GLfloat) - 0.019211, (GLfloat) 0.195054,
-       (GLfloat) 0.830228, (GLfloat) - 0.054637, (GLfloat) 0.554740,
-       (GLfloat) 0.553717, (GLfloat) - 0.081619, (GLfloat) 0.828695,
-       (GLfloat) 0.194186, (GLfloat) - 0.284759, (GLfloat) 0.938725,
-       (GLfloat) - 0.194185, (GLfloat) - 0.284759, (GLfloat) 0.938725,
-       (GLfloat) - 0.553717, (GLfloat) - 0.241721, (GLfloat) 0.796849,
-       (GLfloat) - 0.830228, (GLfloat) - 0.161812, (GLfloat) 0.533421,
-       (GLfloat) - 0.980604, (GLfloat) - 0.056895, (GLfloat) 0.187558,
-       (GLfloat) - 0.980604, (GLfloat) 0.056895, (GLfloat) - 0.187558,
-       (GLfloat) - 0.830227, (GLfloat) 0.161812, (GLfloat) - 0.533422,
-       (GLfloat) - 0.553717, (GLfloat) 0.241722, (GLfloat) - 0.796849,
-       (GLfloat) - 0.194186, (GLfloat) 0.284759, (GLfloat) - 0.938725,
-       (GLfloat) 0.194187, (GLfloat) 0.284759, (GLfloat) - 0.938724,
-       (GLfloat) 0.553716, (GLfloat) 0.241722, (GLfloat) - 0.796849,
-       (GLfloat) 0.830227, (GLfloat) 0.161812, (GLfloat) - 0.533422,
-       (GLfloat) 0.980604, (GLfloat) 0.056895, (GLfloat) - 0.187558,
-       (GLfloat) 0.980604, (GLfloat) - 0.056895, (GLfloat) 0.187558,
-       (GLfloat) 0.830228, (GLfloat) - 0.161811, (GLfloat) 0.533421,
-       (GLfloat) 0.553716, (GLfloat) - 0.241722, (GLfloat) 0.796850,
-       (GLfloat) 0.194186, (GLfloat) - 0.462423, (GLfloat) 0.865134,
-       (GLfloat) - 0.194185, (GLfloat) - 0.462424, (GLfloat) 0.865134,
-       (GLfloat) - 0.553717, (GLfloat) - 0.392534, (GLfloat) 0.734380,
-       (GLfloat) - 0.830228, (GLfloat) - 0.262768, (GLfloat) 0.491604,
-       (GLfloat) - 0.980604, (GLfloat) - 0.092393, (GLfloat) 0.172854,
-       (GLfloat) - 0.980604, (GLfloat) 0.092393, (GLfloat) - 0.172854,
-       (GLfloat) - 0.830227, (GLfloat) 0.262768, (GLfloat) - 0.491605,
-       (GLfloat) - 0.553717, (GLfloat) 0.392534, (GLfloat) - 0.734380,
-       (GLfloat) - 0.194187, (GLfloat) 0.462424, (GLfloat) - 0.865134,
-       (GLfloat) 0.194187, (GLfloat) 0.462423, (GLfloat) - 0.865134,
-       (GLfloat) 0.553716, (GLfloat) 0.392534, (GLfloat) - 0.734381,
-       (GLfloat) 0.830227, (GLfloat) 0.262768, (GLfloat) - 0.491605,
-       (GLfloat) 0.980604, (GLfloat) 0.092393, (GLfloat) - 0.172854,
-       (GLfloat) 0.980604, (GLfloat) - 0.092393, (GLfloat) 0.172854,
-       (GLfloat) 0.830228, (GLfloat) - 0.262768, (GLfloat) 0.491604,
-       (GLfloat) 0.553716, (GLfloat) - 0.392535, (GLfloat) 0.734381,
-       (GLfloat) 0.194186, (GLfloat) - 0.622317, (GLfloat) 0.758296,
-       (GLfloat) - 0.194186, (GLfloat) - 0.622318, (GLfloat) 0.758296,
-       (GLfloat) - 0.553717, (GLfloat) - 0.528263, (GLfloat) 0.643690,
-       (GLfloat) - 0.830228, (GLfloat) - 0.353626, (GLfloat) 0.430895,
-       (GLfloat) - 0.980604, (GLfloat) - 0.124340, (GLfloat) 0.151508,
-       (GLfloat) - 0.980604, (GLfloat) 0.124339, (GLfloat) - 0.151508,
-       (GLfloat) - 0.830227, (GLfloat) 0.353627, (GLfloat) - 0.430895,
-       (GLfloat) - 0.553717, (GLfloat) 0.528263, (GLfloat) - 0.643690,
-       (GLfloat) - 0.194186, (GLfloat) 0.622317, (GLfloat) - 0.758296,
-       (GLfloat) 0.194186, (GLfloat) 0.622318, (GLfloat) - 0.758296,
-       (GLfloat) 0.553716, (GLfloat) 0.528263, (GLfloat) - 0.643690,
-       (GLfloat) 0.830227, (GLfloat) 0.353627, (GLfloat) - 0.430895,
-       (GLfloat) 0.980604, (GLfloat) 0.124339, (GLfloat) - 0.151508,
-       (GLfloat) 0.980604, (GLfloat) - 0.124340, (GLfloat) 0.151508,
-       (GLfloat) 0.830228, (GLfloat) - 0.353626, (GLfloat) 0.430895,
-       (GLfloat) 0.553716, (GLfloat) - 0.528263, (GLfloat) 0.643690,
-       (GLfloat) 0.194186, (GLfloat) - 0.758296, (GLfloat) 0.622317,
-       (GLfloat) - 0.194185, (GLfloat) - 0.758296, (GLfloat) 0.622318,
-       (GLfloat) - 0.553717, (GLfloat) - 0.643690, (GLfloat) 0.528263,
-       (GLfloat) - 0.830228, (GLfloat) - 0.430895, (GLfloat) 0.353626,
-       (GLfloat) - 0.980604, (GLfloat) - 0.151508, (GLfloat) 0.124339,
-       (GLfloat) - 0.980604, (GLfloat) 0.151508, (GLfloat) - 0.124339,
-       (GLfloat) - 0.830227, (GLfloat) 0.430895, (GLfloat) - 0.353627,
-       (GLfloat) - 0.553717, (GLfloat) 0.643689, (GLfloat) - 0.528262,
-       (GLfloat) - 0.194187, (GLfloat) 0.758296, (GLfloat) - 0.622317,
-       (GLfloat) 0.194187, (GLfloat) 0.758296, (GLfloat) - 0.622317,
-       (GLfloat) 0.553716, (GLfloat) 0.643690, (GLfloat) - 0.528263,
-       (GLfloat) 0.830227, (GLfloat) 0.430895, (GLfloat) - 0.353627,
-       (GLfloat) 0.980604, (GLfloat) 0.151508, (GLfloat) - 0.124339,
-       (GLfloat) 0.980604, (GLfloat) - 0.151508, (GLfloat) 0.124340,
-       (GLfloat) 0.830228, (GLfloat) - 0.430895, (GLfloat) 0.353626,
-       (GLfloat) 0.553716, (GLfloat) - 0.643690, (GLfloat) 0.528263,
-       (GLfloat) 0.194186, (GLfloat) - 0.865134, (GLfloat) 0.462423,
-       (GLfloat) - 0.194185, (GLfloat) - 0.865134, (GLfloat) 0.462424,
-       (GLfloat) - 0.553717, (GLfloat) - 0.734380, (GLfloat) 0.392534,
-       (GLfloat) - 0.830228, (GLfloat) - 0.491604, (GLfloat) 0.262768,
-       (GLfloat) - 0.980604, (GLfloat) - 0.172855, (GLfloat) 0.092393,
-       (GLfloat) - 0.980604, (GLfloat) 0.172854, (GLfloat) - 0.092393,
-       (GLfloat) - 0.830227, (GLfloat) 0.491605, (GLfloat) - 0.262768,
-       (GLfloat) - 0.553717, (GLfloat) 0.734380, (GLfloat) - 0.392534,
-       (GLfloat) - 0.194186, (GLfloat) 0.865134, (GLfloat) - 0.462424,
-       (GLfloat) 0.194187, (GLfloat) 0.865134, (GLfloat) - 0.462423,
-       (GLfloat) 0.553716, (GLfloat) 0.734381, (GLfloat) - 0.392535,
-       (GLfloat) 0.830228, (GLfloat) 0.491605, (GLfloat) - 0.262768,
-       (GLfloat) 0.980604, (GLfloat) 0.172854, (GLfloat) - 0.092393,
-       (GLfloat) 0.980604, (GLfloat) - 0.172855, (GLfloat) 0.092393,
-       (GLfloat) 0.830228, (GLfloat) - 0.491604, (GLfloat) 0.262768,
-       (GLfloat) 0.553716, (GLfloat) - 0.734381, (GLfloat) 0.392535,
-       (GLfloat) 0.194185, (GLfloat) - 0.938725, (GLfloat) 0.284759,
-       (GLfloat) - 0.194185, (GLfloat) - 0.938725, (GLfloat) 0.284759,
-       (GLfloat) - 0.553718, (GLfloat) - 0.796848, (GLfloat) 0.241721,
-       (GLfloat) - 0.830228, (GLfloat) - 0.533422, (GLfloat) 0.161812,
-       (GLfloat) - 0.980604, (GLfloat) - 0.187558, (GLfloat) 0.056895,
-       (GLfloat) - 0.980605, (GLfloat) 0.187557, (GLfloat) - 0.056895,
-       (GLfloat) - 0.830227, (GLfloat) 0.533423, (GLfloat) - 0.161812,
-       (GLfloat) - 0.553717, (GLfloat) 0.796849, (GLfloat) - 0.241722,
-       (GLfloat) - 0.194187, (GLfloat) 0.938725, (GLfloat) - 0.284759,
-       (GLfloat) 0.194188, (GLfloat) 0.938724, (GLfloat) - 0.284759,
-       (GLfloat) 0.553716, (GLfloat) 0.796849, (GLfloat) - 0.241722,
-       (GLfloat) 0.830227, (GLfloat) 0.533423, (GLfloat) - 0.161812,
-       (GLfloat) 0.980604, (GLfloat) 0.187557, (GLfloat) - 0.056895,
-       (GLfloat) 0.980604, (GLfloat) - 0.187558, (GLfloat) 0.056895,
-       (GLfloat) 0.830228, (GLfloat) - 0.533422, (GLfloat) 0.161812,
-       (GLfloat) 0.553717, (GLfloat) - 0.796849, (GLfloat) 0.241722,
-       (GLfloat) 0.194186, (GLfloat) - 0.976241, (GLfloat) 0.096151,
-       (GLfloat) - 0.194186, (GLfloat) - 0.976241, (GLfloat) 0.096151,
-       (GLfloat) - 0.553717, (GLfloat) - 0.828695, (GLfloat) 0.081619,
-       (GLfloat) - 0.830228, (GLfloat) - 0.554740, (GLfloat) 0.054637,
-       (GLfloat) - 0.980604, (GLfloat) - 0.195054, (GLfloat) 0.019211,
-       (GLfloat) - 0.980604, (GLfloat) 0.195054, (GLfloat) - 0.019211,
-       (GLfloat) - 0.830227, (GLfloat) 0.554741, (GLfloat) - 0.054637,
-       (GLfloat) - 0.553717, (GLfloat) 0.828695, (GLfloat) - 0.081619,
-       (GLfloat) - 0.194187, (GLfloat) 0.976241, (GLfloat) - 0.096151,
-       (GLfloat) 0.194187, (GLfloat) 0.976241, (GLfloat) - 0.096151,
-       (GLfloat) 0.553716, (GLfloat) 0.828696, (GLfloat) - 0.081619,
-       (GLfloat) 0.830227, (GLfloat) 0.554741, (GLfloat) - 0.054637,
-       (GLfloat) 0.980604, (GLfloat) 0.195054, (GLfloat) - 0.019211,
-       (GLfloat) 0.980604, (GLfloat) - 0.195054, (GLfloat) 0.019211,
-       (GLfloat) 0.830228, (GLfloat) - 0.554740, (GLfloat) 0.054637,
-       (GLfloat) 0.553716, (GLfloat) - 0.828696, (GLfloat) 0.081619,
-       (GLfloat) 0.194185, (GLfloat) - 0.976241, (GLfloat) - 0.096151,
-       (GLfloat) - 0.194185, (GLfloat) - 0.976241, (GLfloat) - 0.096151,
-       (GLfloat) - 0.553718, (GLfloat) - 0.828695, (GLfloat) - 0.081619,
-       (GLfloat) - 0.830228, (GLfloat) - 0.554740, (GLfloat) - 0.054637,
-       (GLfloat) - 0.980604, (GLfloat) - 0.195054, (GLfloat) - 0.019211,
-       (GLfloat) - 0.980605, (GLfloat) 0.195053, (GLfloat) 0.019211,
-       (GLfloat) - 0.830227, (GLfloat) 0.554741, (GLfloat) 0.054637,
-       (GLfloat) - 0.553717, (GLfloat) 0.828695, (GLfloat) 0.081619,
-       (GLfloat) - 0.194187, (GLfloat) 0.976241, (GLfloat) 0.096151,
-       (GLfloat) 0.194188, (GLfloat) 0.976241, (GLfloat) 0.096151,
-       (GLfloat) 0.553716, (GLfloat) 0.828696, (GLfloat) 0.081619,
-       (GLfloat) 0.830227, (GLfloat) 0.554741, (GLfloat) 0.054637,
-       (GLfloat) 0.980604, (GLfloat) 0.195053, (GLfloat) 0.019211,
-       (GLfloat) 0.980604, (GLfloat) - 0.195054, (GLfloat) - 0.019211,
-       (GLfloat) 0.830228, (GLfloat) - 0.554740, (GLfloat) - 0.054637,
-       (GLfloat) 0.553717, (GLfloat) - 0.828695, (GLfloat) - 0.081619,
-       (GLfloat) 0.194186, (GLfloat) - 0.938725, (GLfloat) - 0.284759,
-       (GLfloat) - 0.194185, (GLfloat) - 0.938725, (GLfloat) - 0.284759,
-       (GLfloat) - 0.553717, (GLfloat) - 0.796849, (GLfloat) - 0.241721,
-       (GLfloat) - 0.830228, (GLfloat) - 0.533421, (GLfloat) - 0.161812,
-       (GLfloat) - 0.980604, (GLfloat) - 0.187558, (GLfloat) - 0.056895,
-       (GLfloat) - 0.980604, (GLfloat) 0.187558, (GLfloat) 0.056895,
-       (GLfloat) - 0.830227, (GLfloat) 0.533422, (GLfloat) 0.161812,
-       (GLfloat) - 0.553717, (GLfloat) 0.796849, (GLfloat) 0.241722,
-       (GLfloat) - 0.194186, (GLfloat) 0.938725, (GLfloat) 0.284759,
-       (GLfloat) 0.194187, (GLfloat) 0.938724, (GLfloat) 0.284759,
-       (GLfloat) 0.553716, (GLfloat) 0.796849, (GLfloat) 0.241722,
-       (GLfloat) 0.830227, (GLfloat) 0.533422, (GLfloat) 0.161812,
-       (GLfloat) 0.980604, (GLfloat) 0.187558, (GLfloat) 0.056895,
-       (GLfloat) 0.980604, (GLfloat) - 0.187558, (GLfloat) - 0.056895,
-       (GLfloat) 0.830228, (GLfloat) - 0.533421, (GLfloat) - 0.161811,
-       (GLfloat) 0.553716, (GLfloat) - 0.796850, (GLfloat) - 0.241722,
-       (GLfloat) 0.194186, (GLfloat) - 0.865134, (GLfloat) - 0.462423,
-       (GLfloat) - 0.194185, (GLfloat) - 0.865134, (GLfloat) - 0.462424,
-       (GLfloat) - 0.553717, (GLfloat) - 0.734380, (GLfloat) - 0.392534,
-       (GLfloat) - 0.830228, (GLfloat) - 0.491604, (GLfloat) - 0.262768,
-       (GLfloat) - 0.980604, (GLfloat) - 0.172854, (GLfloat) - 0.092393,
-       (GLfloat) - 0.980604, (GLfloat) 0.172854, (GLfloat) 0.092393,
-       (GLfloat) - 0.830227, (GLfloat) 0.491605, (GLfloat) 0.262768,
-       (GLfloat) - 0.553717, (GLfloat) 0.734380, (GLfloat) 0.392534,
-       (GLfloat) - 0.194187, (GLfloat) 0.865134, (GLfloat) 0.462424,
-       (GLfloat) 0.194187, (GLfloat) 0.865134, (GLfloat) 0.462423,
-       (GLfloat) 0.553716, (GLfloat) 0.734381, (GLfloat) 0.392534,
-       (GLfloat) 0.830227, (GLfloat) 0.491605, (GLfloat) 0.262768,
-       (GLfloat) 0.980604, (GLfloat) 0.172854, (GLfloat) 0.092393,
-       (GLfloat) 0.980604, (GLfloat) - 0.172854, (GLfloat) - 0.092393,
-       (GLfloat) 0.830228, (GLfloat) - 0.491604, (GLfloat) - 0.262768,
-       (GLfloat) 0.553716, (GLfloat) - 0.734381, (GLfloat) - 0.392535,
-       (GLfloat) 0.194186, (GLfloat) - 0.758296, (GLfloat) - 0.622317,
-       (GLfloat) - 0.194186, (GLfloat) - 0.758296, (GLfloat) - 0.622318,
-       (GLfloat) - 0.553717, (GLfloat) - 0.643690, (GLfloat) - 0.528263,
-       (GLfloat) - 0.830228, (GLfloat) - 0.430895, (GLfloat) - 0.353626,
-       (GLfloat) - 0.980604, (GLfloat) - 0.151508, (GLfloat) - 0.124340,
-       (GLfloat) - 0.980604, (GLfloat) 0.151508, (GLfloat) 0.124339,
-       (GLfloat) - 0.830227, (GLfloat) 0.430895, (GLfloat) 0.353627,
-       (GLfloat) - 0.553717, (GLfloat) 0.643690, (GLfloat) 0.528263,
-       (GLfloat) - 0.194186, (GLfloat) 0.758296, (GLfloat) 0.622317,
-       (GLfloat) 0.194186, (GLfloat) 0.758296, (GLfloat) 0.622318,
-       (GLfloat) 0.553716, (GLfloat) 0.643690, (GLfloat) 0.528263,
-       (GLfloat) 0.830227, (GLfloat) 0.430895, (GLfloat) 0.353627,
-       (GLfloat) 0.980604, (GLfloat) 0.151508, (GLfloat) 0.124339,
-       (GLfloat) 0.980604, (GLfloat) - 0.151508, (GLfloat) - 0.124340,
-       (GLfloat) 0.830228, (GLfloat) - 0.430895, (GLfloat) - 0.353626,
-       (GLfloat) 0.553716, (GLfloat) - 0.643690, (GLfloat) - 0.528263,
-       (GLfloat) 0.194186, (GLfloat) - 0.622317, (GLfloat) - 0.758296,
-       (GLfloat) - 0.194185, (GLfloat) - 0.622318, (GLfloat) - 0.758296,
-       (GLfloat) - 0.553717, (GLfloat) - 0.528263, (GLfloat) - 0.643690,
-       (GLfloat) - 0.830228, (GLfloat) - 0.353626, (GLfloat) - 0.430895,
-       (GLfloat) - 0.980604, (GLfloat) - 0.124339, (GLfloat) - 0.151508,
-       (GLfloat) - 0.980604, (GLfloat) 0.124339, (GLfloat) 0.151508,
-       (GLfloat) - 0.830227, (GLfloat) 0.353627, (GLfloat) 0.430895,
-       (GLfloat) - 0.553717, (GLfloat) 0.528262, (GLfloat) 0.643689,
-       (GLfloat) - 0.194187, (GLfloat) 0.622317, (GLfloat) 0.758296,
-       (GLfloat) 0.194187, (GLfloat) 0.622317, (GLfloat) 0.758296,
-       (GLfloat) 0.553716, (GLfloat) 0.528263, (GLfloat) 0.643690,
-       (GLfloat) 0.830227, (GLfloat) 0.353627, (GLfloat) 0.430895,
-       (GLfloat) 0.980604, (GLfloat) 0.124339, (GLfloat) 0.151508,
-       (GLfloat) 0.980604, (GLfloat) - 0.124340, (GLfloat) - 0.151508,
-       (GLfloat) 0.830228, (GLfloat) - 0.353626, (GLfloat) - 0.430895,
-       (GLfloat) 0.553716, (GLfloat) - 0.528263, (GLfloat) - 0.643690,
-       (GLfloat) 0.194186, (GLfloat) - 0.462423, (GLfloat) - 0.865134,
-       (GLfloat) - 0.194185, (GLfloat) - 0.462424, (GLfloat) - 0.865134,
-       (GLfloat) - 0.553717, (GLfloat) - 0.392534, (GLfloat) - 0.734380,
-       (GLfloat) - 0.830228, (GLfloat) - 0.262768, (GLfloat) - 0.491604,
-       (GLfloat) - 0.980604, (GLfloat) - 0.092393, (GLfloat) - 0.172855,
-       (GLfloat) - 0.980604, (GLfloat) 0.092393, (GLfloat) 0.172854,
-       (GLfloat) - 0.830227, (GLfloat) 0.262768, (GLfloat) 0.491605,
-       (GLfloat) - 0.553717, (GLfloat) 0.392534, (GLfloat) 0.734380,
-       (GLfloat) - 0.194186, (GLfloat) 0.462424, (GLfloat) 0.865134,
-       (GLfloat) 0.194187, (GLfloat) 0.462423, (GLfloat) 0.865134,
-       (GLfloat) 0.553716, (GLfloat) 0.392535, (GLfloat) 0.734381,
-       (GLfloat) 0.830228, (GLfloat) 0.262768, (GLfloat) 0.491605,
-       (GLfloat) 0.980604, (GLfloat) 0.092393, (GLfloat) 0.172854,
-       (GLfloat) 0.980604, (GLfloat) - 0.092393, (GLfloat) - 0.172855,
-       (GLfloat) 0.830228, (GLfloat) - 0.262768, (GLfloat) - 0.491604,
-       (GLfloat) 0.553716, (GLfloat) - 0.392535, (GLfloat) - 0.734381,
-       (GLfloat) 0.194185, (GLfloat) - 0.284759, (GLfloat) - 0.938725,
-       (GLfloat) - 0.194185, (GLfloat) - 0.284759, (GLfloat) - 0.938725,
-       (GLfloat) - 0.553718, (GLfloat) - 0.241721, (GLfloat) - 0.796848,
-       (GLfloat) - 0.830228, (GLfloat) - 0.161812, (GLfloat) - 0.533422,
-       (GLfloat) - 0.980604, (GLfloat) - 0.056895, (GLfloat) - 0.187558,
-       (GLfloat) - 0.980605, (GLfloat) 0.056895, (GLfloat) 0.187557,
-       (GLfloat) - 0.830227, (GLfloat) 0.161812, (GLfloat) 0.533422,
-       (GLfloat) - 0.553716, (GLfloat) 0.241722, (GLfloat) 0.796849,
-       (GLfloat) - 0.194187, (GLfloat) 0.284759, (GLfloat) 0.938725,
-       (GLfloat) 0.194188, (GLfloat) 0.284759, (GLfloat) 0.938724,
-       (GLfloat) 0.553716, (GLfloat) 0.241722, (GLfloat) 0.796850,
-       (GLfloat) 0.830227, (GLfloat) 0.161812, (GLfloat) 0.533423,
-       (GLfloat) 0.980604, (GLfloat) 0.056895, (GLfloat) 0.187557,
-       (GLfloat) 0.980604, (GLfloat) - 0.056895, (GLfloat) - 0.187558,
-       (GLfloat) 0.830228, (GLfloat) - 0.161812, (GLfloat) - 0.533422,
-       (GLfloat) 0.553717, (GLfloat) - 0.241722, (GLfloat) - 0.796849,
-       (GLfloat) 0.194186, (GLfloat) - 0.096151, (GLfloat) - 0.976241,
-       (GLfloat) - 0.194186, (GLfloat) - 0.096151, (GLfloat) - 0.976241,
-       (GLfloat) - 0.553717, (GLfloat) - 0.081619, (GLfloat) - 0.828695,
-       (GLfloat) - 0.830228, (GLfloat) - 0.054637, (GLfloat) - 0.554740,
-       (GLfloat) - 0.980604, (GLfloat) - 0.019211, (GLfloat) - 0.195054,
-       (GLfloat) - 0.980604, (GLfloat) 0.019211, (GLfloat) 0.195054,
-       (GLfloat) - 0.830227, (GLfloat) 0.054637, (GLfloat) 0.554741,
-       (GLfloat) - 0.553717, (GLfloat) 0.081619, (GLfloat) 0.828695,
-       (GLfloat) - 0.194187, (GLfloat) 0.096151, (GLfloat) 0.976241,
-       (GLfloat) 0.194187, (GLfloat) 0.096151, (GLfloat) 0.976241,
-       (GLfloat) 0.553716, (GLfloat) 0.081620, (GLfloat) 0.828696,
-       (GLfloat) 0.830227, (GLfloat) 0.054637, (GLfloat) 0.554741,
-       (GLfloat) 0.980604, (GLfloat) 0.019211, (GLfloat) 0.195054,
-       (GLfloat) 0.980604, (GLfloat) - 0.019211, (GLfloat) - 0.195054,
-       (GLfloat) 0.830228, (GLfloat) - 0.054637, (GLfloat) - 0.554740,
-       (GLfloat) 0.553716, (GLfloat) - 0.081619, (GLfloat) - 0.828696,
-       (GLfloat) 0.194185, (GLfloat) 0.096151, (GLfloat) - 0.976241,
-       (GLfloat) - 0.194185, (GLfloat) 0.096151, (GLfloat) - 0.976241,
-       (GLfloat) - 0.553718, (GLfloat) 0.081619, (GLfloat) - 0.828695,
-       (GLfloat) - 0.830228, (GLfloat) 0.054637, (GLfloat) - 0.554740,
-       (GLfloat) - 0.980604, (GLfloat) 0.019211, (GLfloat) - 0.195054,
-       (GLfloat) - 0.980605, (GLfloat) - 0.019211, (GLfloat) 0.195053,
-       (GLfloat) - 0.830227, (GLfloat) - 0.054637, (GLfloat) 0.554741,
-       (GLfloat) - 0.553717, (GLfloat) - 0.081619, (GLfloat) 0.828695,
-       (GLfloat) - 0.194187, (GLfloat) - 0.096151, (GLfloat) 0.976241,
-       (GLfloat) 0.194188, (GLfloat) - 0.096151, (GLfloat) 0.976241,
-       (GLfloat) 0.553716, (GLfloat) - 0.081619, (GLfloat) 0.828696,
-       (GLfloat) 0.830227, (GLfloat) - 0.054637, (GLfloat) 0.554741,
-       (GLfloat) 0.980604, (GLfloat) - 0.019211, (GLfloat) 0.195053,
-       (GLfloat) 0.980604, (GLfloat) 0.019211, (GLfloat) - 0.195054,
-       (GLfloat) 0.830228, (GLfloat) 0.054637, (GLfloat) - 0.554740,
-       (GLfloat) 0.553717, (GLfloat) 0.081619, (GLfloat) - 0.828695,
-       (GLfloat) 0.194186, (GLfloat) 0.284759, (GLfloat) - 0.938725,
-       (GLfloat) - 0.194185, (GLfloat) 0.284759, (GLfloat) - 0.938725,
-       (GLfloat) - 0.553717, (GLfloat) 0.241721, (GLfloat) - 0.796849,
-       (GLfloat) - 0.830228, (GLfloat) 0.161812, (GLfloat) - 0.533421,
-       (GLfloat) - 0.980604, (GLfloat) 0.056895, (GLfloat) - 0.187558,
-       (GLfloat) - 0.980604, (GLfloat) - 0.056895, (GLfloat) 0.187558,
-       (GLfloat) - 0.830227, (GLfloat) - 0.161812, (GLfloat) 0.533422,
-       (GLfloat) - 0.553717, (GLfloat) - 0.241722, (GLfloat) 0.796849,
-       (GLfloat) - 0.194186, (GLfloat) - 0.284759, (GLfloat) 0.938725,
-       (GLfloat) 0.194187, (GLfloat) - 0.284759, (GLfloat) 0.938724,
-       (GLfloat) 0.553716, (GLfloat) - 0.241722, (GLfloat) 0.796849,
-       (GLfloat) 0.830227, (GLfloat) - 0.161812, (GLfloat) 0.533422,
-       (GLfloat) 0.980604, (GLfloat) - 0.056895, (GLfloat) 0.187558,
-       (GLfloat) 0.980604, (GLfloat) 0.056895, (GLfloat) - 0.187558,
-       (GLfloat) 0.830228, (GLfloat) 0.161811, (GLfloat) - 0.533421,
-       (GLfloat) 0.553716, (GLfloat) 0.241722, (GLfloat) - 0.796850,
-       (GLfloat) 0.194186, (GLfloat) 0.462423, (GLfloat) - 0.865134,
-       (GLfloat) - 0.194185, (GLfloat) 0.462424, (GLfloat) - 0.865134,
-       (GLfloat) - 0.553717, (GLfloat) 0.392534, (GLfloat) - 0.734380,
-       (GLfloat) - 0.830228, (GLfloat) 0.262768, (GLfloat) - 0.491604,
-       (GLfloat) - 0.980604, (GLfloat) 0.092393, (GLfloat) - 0.172854,
-       (GLfloat) - 0.980604, (GLfloat) - 0.092393, (GLfloat) 0.172854,
-       (GLfloat) - 0.830227, (GLfloat) - 0.262768, (GLfloat) 0.491605,
-       (GLfloat) - 0.553717, (GLfloat) - 0.392534, (GLfloat) 0.734380,
-       (GLfloat) - 0.194187, (GLfloat) - 0.462424, (GLfloat) 0.865134,
-       (GLfloat) 0.194187, (GLfloat) - 0.462423, (GLfloat) 0.865134,
-       (GLfloat) 0.553716, (GLfloat) - 0.392534, (GLfloat) 0.734381,
-       (GLfloat) 0.830227, (GLfloat) - 0.262768, (GLfloat) 0.491605,
-       (GLfloat) 0.980604, (GLfloat) - 0.092393, (GLfloat) 0.172854,
-       (GLfloat) 0.980604, (GLfloat) 0.092393, (GLfloat) - 0.172854,
-       (GLfloat) 0.830228, (GLfloat) 0.262768, (GLfloat) - 0.491604,
-       (GLfloat) 0.553716, (GLfloat) 0.392535, (GLfloat) - 0.734381,
-       (GLfloat) 0.194186, (GLfloat) 0.622317, (GLfloat) - 0.758296,
-       (GLfloat) - 0.194186, (GLfloat) 0.622318, (GLfloat) - 0.758296,
-       (GLfloat) - 0.553717, (GLfloat) 0.528263, (GLfloat) - 0.643690,
-       (GLfloat) - 0.830228, (GLfloat) 0.353626, (GLfloat) - 0.430895,
-       (GLfloat) - 0.980604, (GLfloat) 0.124340, (GLfloat) - 0.151508,
-       (GLfloat) - 0.980604, (GLfloat) - 0.124339, (GLfloat) 0.151508,
-       (GLfloat) - 0.830227, (GLfloat) - 0.353627, (GLfloat) 0.430895,
-       (GLfloat) - 0.553717, (GLfloat) - 0.528263, (GLfloat) 0.643690,
-       (GLfloat) - 0.194186, (GLfloat) - 0.622317, (GLfloat) 0.758296,
-       (GLfloat) 0.194186, (GLfloat) - 0.622318, (GLfloat) 0.758296,
-       (GLfloat) 0.553716, (GLfloat) - 0.528263, (GLfloat) 0.643690,
-       (GLfloat) 0.830227, (GLfloat) - 0.353627, (GLfloat) 0.430895,
-       (GLfloat) 0.980604, (GLfloat) - 0.124339, (GLfloat) 0.151508,
-       (GLfloat) 0.980604, (GLfloat) 0.124340, (GLfloat) - 0.151508,
-       (GLfloat) 0.830228, (GLfloat) 0.353626, (GLfloat) - 0.430895,
-       (GLfloat) 0.553716, (GLfloat) 0.528263, (GLfloat) - 0.643690,
-       (GLfloat) 0.194186, (GLfloat) 0.758296, (GLfloat) - 0.622317,
-       (GLfloat) - 0.194185, (GLfloat) 0.758296, (GLfloat) - 0.622318,
-       (GLfloat) - 0.553717, (GLfloat) 0.643690, (GLfloat) - 0.528263,
-       (GLfloat) - 0.830228, (GLfloat) 0.430895, (GLfloat) - 0.353626,
-       (GLfloat) - 0.980604, (GLfloat) 0.151508, (GLfloat) - 0.124339,
-       (GLfloat) - 0.980604, (GLfloat) - 0.151508, (GLfloat) 0.124339,
-       (GLfloat) - 0.830227, (GLfloat) - 0.430895, (GLfloat) 0.353627,
-       (GLfloat) - 0.553717, (GLfloat) - 0.643689, (GLfloat) 0.528262,
-       (GLfloat) - 0.194187, (GLfloat) - 0.758296, (GLfloat) 0.622317,
-       (GLfloat) 0.194187, (GLfloat) - 0.758296, (GLfloat) 0.622317,
-       (GLfloat) 0.553716, (GLfloat) - 0.643690, (GLfloat) 0.528263,
-       (GLfloat) 0.830227, (GLfloat) - 0.430895, (GLfloat) 0.353627,
-       (GLfloat) 0.980604, (GLfloat) - 0.151508, (GLfloat) 0.124339,
-       (GLfloat) 0.980604, (GLfloat) 0.151508, (GLfloat) - 0.124340,
-       (GLfloat) 0.830228, (GLfloat) 0.430895, (GLfloat) - 0.353626,
-       (GLfloat) 0.553716, (GLfloat) 0.643690, (GLfloat) - 0.528263,
-       (GLfloat) 0.194186, (GLfloat) 0.865134, (GLfloat) - 0.462423,
-       (GLfloat) - 0.194185, (GLfloat) 0.865134, (GLfloat) - 0.462424,
-       (GLfloat) - 0.553717, (GLfloat) 0.734380, (GLfloat) - 0.392534,
-       (GLfloat) - 0.830228, (GLfloat) 0.491604, (GLfloat) - 0.262768,
-       (GLfloat) - 0.980604, (GLfloat) 0.172855, (GLfloat) - 0.092393,
-       (GLfloat) - 0.980604, (GLfloat) - 0.172854, (GLfloat) 0.092393,
-       (GLfloat) - 0.830227, (GLfloat) - 0.491605, (GLfloat) 0.262768,
-       (GLfloat) - 0.553717, (GLfloat) - 0.734380, (GLfloat) 0.392534,
-       (GLfloat) - 0.194186, (GLfloat) - 0.865134, (GLfloat) 0.462424,
-       (GLfloat) 0.194187, (GLfloat) - 0.865134, (GLfloat) 0.462423,
-       (GLfloat) 0.553716, (GLfloat) - 0.734381, (GLfloat) 0.392535,
-       (GLfloat) 0.830228, (GLfloat) - 0.491605, (GLfloat) 0.262768,
-       (GLfloat) 0.980604, (GLfloat) - 0.172854, (GLfloat) 0.092393,
-       (GLfloat) 0.980604, (GLfloat) 0.172855, (GLfloat) - 0.092393,
-       (GLfloat) 0.830228, (GLfloat) 0.491604, (GLfloat) - 0.262768,
-       (GLfloat) 0.553716, (GLfloat) 0.734381, (GLfloat) - 0.392535,
-       (GLfloat) 0.194185, (GLfloat) 0.938725, (GLfloat) - 0.284759,
-       (GLfloat) - 0.194185, (GLfloat) 0.938725, (GLfloat) - 0.284759,
-       (GLfloat) - 0.553718, (GLfloat) 0.796848, (GLfloat) - 0.241721,
-       (GLfloat) - 0.830228, (GLfloat) 0.533422, (GLfloat) - 0.161812,
-       (GLfloat) - 0.980604, (GLfloat) 0.187558, (GLfloat) - 0.056895,
-       (GLfloat) - 0.980605, (GLfloat) - 0.187557, (GLfloat) 0.056895,
-       (GLfloat) - 0.830227, (GLfloat) - 0.533422, (GLfloat) 0.161812,
-       (GLfloat) - 0.553716, (GLfloat) - 0.796849, (GLfloat) 0.241722,
-       (GLfloat) - 0.194187, (GLfloat) - 0.938725, (GLfloat) 0.284759,
-       (GLfloat) 0.194188, (GLfloat) - 0.938724, (GLfloat) 0.284759,
-       (GLfloat) 0.553716, (GLfloat) - 0.796850, (GLfloat) 0.241722,
-       (GLfloat) 0.830227, (GLfloat) - 0.533423, (GLfloat) 0.161812,
-       (GLfloat) 0.980604, (GLfloat) - 0.187557, (GLfloat) 0.056895,
-       (GLfloat) 0.980604, (GLfloat) 0.187558, (GLfloat) - 0.056895,
-       (GLfloat) 0.830228, (GLfloat) 0.533422, (GLfloat) - 0.161812,
-       (GLfloat) 0.553717, (GLfloat) 0.796849, (GLfloat) - 0.241722,
-       (GLfloat) 0.194186, (GLfloat) 0.976241, (GLfloat) - 0.096151,
-       (GLfloat) - 0.194186, (GLfloat) 0.976241, (GLfloat) - 0.096151,
-       (GLfloat) - 0.553717, (GLfloat) 0.828695, (GLfloat) - 0.081619,
-       (GLfloat) - 0.830228, (GLfloat) 0.554740, (GLfloat) - 0.054637,
-       (GLfloat) - 0.980604, (GLfloat) 0.195054, (GLfloat) - 0.019211,
-       (GLfloat) - 0.980604, (GLfloat) - 0.195054, (GLfloat) 0.019211,
-       (GLfloat) - 0.830227, (GLfloat) - 0.554741, (GLfloat) 0.054637,
-       (GLfloat) - 0.553717, (GLfloat) - 0.828695, (GLfloat) 0.081619,
-       (GLfloat) - 0.194187, (GLfloat) - 0.976241, (GLfloat) 0.096151,
-       (GLfloat) 0.194187, (GLfloat) - 0.976241, (GLfloat) 0.096151,
-       (GLfloat) 0.553716, (GLfloat) - 0.828696, (GLfloat) 0.081620,
-       (GLfloat) 0.830227, (GLfloat) - 0.554741, (GLfloat) 0.054637,
-       (GLfloat) 0.980604, (GLfloat) - 0.195054, (GLfloat) 0.019211,
-       (GLfloat) 0.980604, (GLfloat) 0.195054, (GLfloat) - 0.019211,
-       (GLfloat) 0.830228, (GLfloat) 0.554740, (GLfloat) - 0.054637,
-       (GLfloat) 0.553716, (GLfloat) 0.828696, (GLfloat) - 0.081619,
+       -1, 0, 0,
+       0, 0.19509, -0.980785,
+       0, 0.55557, -0.83147,
+       0, 0.83147, -0.55557,
+       0, 0.980785, -0.19509,
+       0, 0.980785, 0.19509,
+       0, 0.83147, 0.55557,
+       0, 0.55557, 0.83147,
+       0, 0.19509, 0.980785,
+       0, -0.19509, 0.980785,
+       0, -0.55557, 0.83147,
+       0, -0.83147, 0.55557,
+       0, -0.980785, 0.19509,
+       0, -0.980785, -0.19509,
+       0, -0.83147, -0.55557,
+       0, -0.55557, -0.83147,
+       0, -0.19509, -0.980785,
+       1, 0, 0,
+       0.980785, -0.195092, 0,
+       0.83147, -0.555569, 0,
+       0.555569, -0.83147, 0,
+       0.195091, -0.980785, 0,
+       -0.19509, -0.980785, 0,
+       -0.55557, -0.831469, 0,
+       -0.831469, -0.555571, 0,
+       -0.980785, -0.195089, 0,
+       -0.980785, 0.195089, 0,
+       -0.831469, 0.555571, 0,
+       -0.55557, 0.831469, 0,
+       -0.19509, 0.980785, 0,
+       0.195091, 0.980785, 0,
+       0.555569, 0.83147, 0,
+       0.83147, 0.555569, 0,
+       0.980785, 0.195092, 0,
+       0.980785, 0, 0.195092,
+       0.83147, 0, 0.555569,
+       0.555569, 0, 0.83147,
+       0.195091, 0, 0.980785,
+       -0.19509, 0, 0.980785,
+       -0.55557, 0, 0.831469,
+       -0.831469, 0, 0.555571,
+       -0.980785, 0, 0.195089,
+       -0.980785, 0, -0.195089,
+       -0.831469, 0, -0.555571,
+       -0.55557, 0, -0.831469,
+       -0.19509, 0, -0.980785,
+       0.195091, 0, -0.980785,
+       0.555569, 0, -0.83147,
+       0.83147, 0, -0.555569,
+       0.980785, 0, -0.195092,
+       0.980785, 0.195092, 0,
+       0.83147, 0.555569, 0,
+       0.555569, 0.83147, 0,
+       0.195091, 0.980785, 0,
+       -0.19509, 0.980785, 0,
+       -0.55557, 0.831469, 0,
+       -0.831469, 0.555571, 0,
+       -0.980785, 0.195089, 0,
+       -0.980785, -0.195089, 0,
+       -0.831469, -0.555571, 0,
+       -0.55557, -0.831469, 0,
+       -0.19509, -0.980785, 0,
+       0.195091, -0.980785, 0,
+       0.555569, -0.83147, 0,
+       0.83147, -0.555569, 0,
+       0.980785, -0.195092, 0,
+       0.980785, 0, -0.195092,
+       0.83147, 0, -0.555569,
+       0.555569, 0, -0.83147,
+       0.195091, 0, -0.980785,
+       -0.19509, 0, -0.980785,
+       -0.55557, 0, -0.831469,
+       -0.831469, 0, -0.555571,
+       -0.980785, 0, -0.195089,
+       -0.980785, 0, 0.195089,
+       -0.831469, 0, 0.555571,
+       -0.55557, 0, 0.831469,
+       -0.19509, 0, 0.980785,
+       0.195091, 0, 0.980785,
+       0.555569, 0, 0.83147,
+       0.83147, 0, 0.555569,
+       0.980785, 0, 0.195092,
+       -1, 0, 0,
+       0, 0.130526, -0.991445,
+       0, 0.382684, -0.92388,
+       0, 0.608761, -0.793353,
+       0, 0.793353, -0.608761,
+       0, 0.92388, -0.382684,
+       0, 0.991445, -0.130526,
+       0, 0.991445, 0.130526,
+       0, 0.92388, 0.382684,
+       0, 0.793353, 0.608761,
+       0, 0.608761, 0.793353,
+       0, 0.382684, 0.92388,
+       0, 0.130526, 0.991445,
+       0, -0.130526, 0.991445,
+       0, -0.382684, 0.92388,
+       0, -0.608761, 0.793353,
+       0, -0.793353, 0.608761,
+       0, -0.92388, 0.382684,
+       0, -0.991445, 0.130526,
+       0, -0.991445, -0.130526,
+       0, -0.92388, -0.382684,
+       0, -0.793353, -0.608761,
+       0, -0.608761, -0.793353,
+       0, -0.382684, -0.92388,
+       0, -0.130526, -0.991445,
+       1, 0, 0,
+       0.194185, 0.976241, 0.096151,
+       -0.194185, 0.976241, 0.096151,
+       -0.553718, 0.828695, 0.081619,
+       -0.830228, 0.55474, 0.054637,
+       -0.980604, 0.195054, 0.019211,
+       -0.980605, -0.195053, -0.019211,
+       -0.830227, -0.554741, -0.054637,
+       -0.553717, -0.828695, -0.081619,
+       -0.194187, -0.976241, -0.096151,
+       0.194188, -0.976241, -0.096151,
+       0.553716, -0.828696, -0.081619,
+       0.830227, -0.554741, -0.054637,
+       0.980604, -0.195053, -0.019211,
+       0.980604, 0.195054, 0.019211,
+       0.830228, 0.55474, 0.054637,
+       0.553717, 0.828695, 0.081619,
+       0.194186, 0.938725, 0.284759,
+       -0.194185, 0.938725, 0.284759,
+       -0.553717, 0.796849, 0.241721,
+       -0.830228, 0.533421, 0.161812,
+       -0.980604, 0.187558, 0.056895,
+       -0.980604, -0.187558, -0.056895,
+       -0.830227, -0.533422, -0.161812,
+       -0.553717, -0.796849, -0.241722,
+       -0.194186, -0.938725, -0.284759,
+       0.194187, -0.938724, -0.284759,
+       0.553716, -0.796849, -0.241722,
+       0.830227, -0.533422, -0.161812,
+       0.980604, -0.187558, -0.056895,
+       0.980604, 0.187558, 0.056895,
+       0.830228, 0.533421, 0.161811,
+       0.553716, 0.79685, 0.241722,
+       0.194186, 0.865134, 0.462423,
+       -0.194185, 0.865134, 0.462424,
+       -0.553717, 0.73438, 0.392534,
+       -0.830228, 0.491604, 0.262768,
+       -0.980604, 0.172854, 0.092393,
+       -0.980604, -0.172854, -0.092393,
+       -0.830227, -0.491605, -0.262768,
+       -0.553717, -0.73438, -0.392534,
+       -0.194187, -0.865134, -0.462424,
+       0.194187, -0.865134, -0.462423,
+       0.553716, -0.734381, -0.392534,
+       0.830227, -0.491605, -0.262768,
+       0.980604, -0.172854, -0.092393,
+       0.980604, 0.172854, 0.092393,
+       0.830228, 0.491604, 0.262768,
+       0.553716, 0.734381, 0.392535,
+       0.194186, 0.758296, 0.622317,
+       -0.194186, 0.758296, 0.622318,
+       -0.553717, 0.64369, 0.528263,
+       -0.830228, 0.430895, 0.353626,
+       -0.980604, 0.151508, 0.12434,
+       -0.980604, -0.151508, -0.124339,
+       -0.830227, -0.430895, -0.353627,
+       -0.553717, -0.64369, -0.528263,
+       -0.194186, -0.758296, -0.622317,
+       0.194186, -0.758296, -0.622318,
+       0.553716, -0.64369, -0.528263,
+       0.830227, -0.430895, -0.353627,
+       0.980604, -0.151508, -0.124339,
+       0.980604, 0.151508, 0.12434,
+       0.830228, 0.430895, 0.353626,
+       0.553716, 0.64369, 0.528263,
+       0.194186, 0.622317, 0.758296,
+       -0.194185, 0.622318, 0.758296,
+       -0.553717, 0.528263, 0.64369,
+       -0.830228, 0.353626, 0.430895,
+       -0.980604, 0.124339, 0.151508,
+       -0.980604, -0.124339, -0.151508,
+       -0.830227, -0.353627, -0.430895,
+       -0.553717, -0.528262, -0.643689,
+       -0.194187, -0.622317, -0.758296,
+       0.194187, -0.622317, -0.758296,
+       0.553716, -0.528263, -0.64369,
+       0.830227, -0.353627, -0.430895,
+       0.980604, -0.124339, -0.151508,
+       0.980604, 0.12434, 0.151508,
+       0.830228, 0.353626, 0.430895,
+       0.553716, 0.528263, 0.64369,
+       0.194186, 0.462423, 0.865134,
+       -0.194185, 0.462424, 0.865134,
+       -0.553717, 0.392534, 0.73438,
+       -0.830228, 0.262768, 0.491604,
+       -0.980604, 0.092393, 0.172855,
+       -0.980604, -0.092392, -0.172854,
+       -0.830227, -0.262768, -0.491605,
+       -0.553717, -0.392534, -0.73438,
+       -0.194186, -0.462424, -0.865134,
+       0.194187, -0.462423, -0.865134,
+       0.553716, -0.392535, -0.734381,
+       0.830227, -0.262768, -0.491605,
+       0.980604, -0.092392, -0.172854,
+       0.980604, 0.092393, 0.172855,
+       0.830228, 0.262768, 0.491604,
+       0.553716, 0.392535, 0.734381,
+       0.194185, 0.284759, 0.938725,
+       -0.194185, 0.284759, 0.938725,
+       -0.553718, 0.241721, 0.796848,
+       -0.830228, 0.161812, 0.533422,
+       -0.980604, 0.056895, 0.187558,
+       -0.980604, -0.056895, -0.187558,
+       -0.830227, -0.161812, -0.533423,
+       -0.553717, -0.241722, -0.796849,
+       -0.194187, -0.284759, -0.938725,
+       0.194188, -0.284759, -0.938724,
+       0.553716, -0.241722, -0.796849,
+       0.830227, -0.161812, -0.533423,
+       0.980604, -0.056895, -0.187557,
+       0.980604, 0.056895, 0.187558,
+       0.830228, 0.161812, 0.533422,
+       0.553717, 0.241722, 0.796849,
+       0.194186, 0.096151, 0.976241,
+       -0.194186, 0.096151, 0.976241,
+       -0.553717, 0.081619, 0.828695,
+       -0.830228, 0.054637, 0.55474,
+       -0.980604, 0.019211, 0.195054,
+       -0.980604, -0.019211, -0.195054,
+       -0.830227, -0.054637, -0.554741,
+       -0.553717, -0.081619, -0.828695,
+       -0.194187, -0.096151, -0.976241,
+       0.194187, -0.096151, -0.976241,
+       0.553716, -0.081619, -0.828696,
+       0.830227, -0.054637, -0.554741,
+       0.980604, -0.019211, -0.195054,
+       0.980604, 0.019211, 0.195054,
+       0.830228, 0.054637, 0.55474,
+       0.553716, 0.081619, 0.828696,
+       0.194185, -0.096151, 0.976241,
+       -0.194185, -0.096151, 0.976241,
+       -0.553718, -0.081619, 0.828695,
+       -0.830228, -0.054637, 0.55474,
+       -0.980604, -0.019211, 0.195054,
+       -0.980605, 0.019211, -0.195053,
+       -0.830227, 0.054637, -0.554741,
+       -0.553717, 0.081619, -0.828695,
+       -0.194187, 0.096151, -0.976241,
+       0.194188, 0.096151, -0.976241,
+       0.553716, 0.081619, -0.828696,
+       0.830227, 0.054637, -0.554741,
+       0.980604, 0.019211, -0.195053,
+       0.980604, -0.019211, 0.195054,
+       0.830228, -0.054637, 0.55474,
+       0.553717, -0.081619, 0.828695,
+       0.194186, -0.284759, 0.938725,
+       -0.194185, -0.284759, 0.938725,
+       -0.553717, -0.241721, 0.796849,
+       -0.830228, -0.161812, 0.533421,
+       -0.980604, -0.056895, 0.187558,
+       -0.980604, 0.056895, -0.187558,
+       -0.830227, 0.161812, -0.533422,
+       -0.553717, 0.241722, -0.796849,
+       -0.194186, 0.284759, -0.938725,
+       0.194187, 0.284759, -0.938724,
+       0.553716, 0.241722, -0.796849,
+       0.830227, 0.161812, -0.533422,
+       0.980604, 0.056895, -0.187558,
+       0.980604, -0.056895, 0.187558,
+       0.830228, -0.161811, 0.533421,
+       0.553716, -0.241722, 0.79685,
+       0.194186, -0.462423, 0.865134,
+       -0.194185, -0.462424, 0.865134,
+       -0.553717, -0.392534, 0.73438,
+       -0.830228, -0.262768, 0.491604,
+       -0.980604, -0.092393, 0.172854,
+       -0.980604, 0.092393, -0.172854,
+       -0.830227, 0.262768, -0.491605,
+       -0.553717, 0.392534, -0.73438,
+       -0.194187, 0.462424, -0.865134,
+       0.194187, 0.462423, -0.865134,
+       0.553716, 0.392534, -0.734381,
+       0.830227, 0.262768, -0.491605,
+       0.980604, 0.092393, -0.172854,
+       0.980604, -0.092393, 0.172854,
+       0.830228, -0.262768, 0.491604,
+       0.553716, -0.392535, 0.734381,
+       0.194186, -0.622317, 0.758296,
+       -0.194186, -0.622318, 0.758296,
+       -0.553717, -0.528263, 0.64369,
+       -0.830228, -0.353626, 0.430895,
+       -0.980604, -0.12434, 0.151508,
+       -0.980604, 0.124339, -0.151508,
+       -0.830227, 0.353627, -0.430895,
+       -0.553717, 0.528263, -0.64369,
+       -0.194186, 0.622317, -0.758296,
+       0.194186, 0.622318, -0.758296,
+       0.553716, 0.528263, -0.64369,
+       0.830227, 0.353627, -0.430895,
+       0.980604, 0.124339, -0.151508,
+       0.980604, -0.12434, 0.151508,
+       0.830228, -0.353626, 0.430895,
+       0.553716, -0.528263, 0.64369,
+       0.194186, -0.758296, 0.622317,
+       -0.194185, -0.758296, 0.622318,
+       -0.553717, -0.64369, 0.528263,
+       -0.830228, -0.430895, 0.353626,
+       -0.980604, -0.151508, 0.124339,
+       -0.980604, 0.151508, -0.124339,
+       -0.830227, 0.430895, -0.353627,
+       -0.553717, 0.643689, -0.528262,
+       -0.194187, 0.758296, -0.622317,
+       0.194187, 0.758296, -0.622317,
+       0.553716, 0.64369, -0.528263,
+       0.830227, 0.430895, -0.353627,
+       0.980604, 0.151508, -0.124339,
+       0.980604, -0.151508, 0.12434,
+       0.830228, -0.430895, 0.353626,
+       0.553716, -0.64369, 0.528263,
+       0.194186, -0.865134, 0.462423,
+       -0.194185, -0.865134, 0.462424,
+       -0.553717, -0.73438, 0.392534,
+       -0.830228, -0.491604, 0.262768,
+       -0.980604, -0.172855, 0.092393,
+       -0.980604, 0.172854, -0.092393,
+       -0.830227, 0.491605, -0.262768,
+       -0.553717, 0.73438, -0.392534,
+       -0.194186, 0.865134, -0.462424,
+       0.194187, 0.865134, -0.462423,
+       0.553716, 0.734381, -0.392535,
+       0.830228, 0.491605, -0.262768,
+       0.980604, 0.172854, -0.092393,
+       0.980604, -0.172855, 0.092393,
+       0.830228, -0.491604, 0.262768,
+       0.553716, -0.734381, 0.392535,
+       0.194185, -0.938725, 0.284759,
+       -0.194185, -0.938725, 0.284759,
+       -0.553718, -0.796848, 0.241721,
+       -0.830228, -0.533422, 0.161812,
+       -0.980604, -0.187558, 0.056895,
+       -0.980605, 0.187557, -0.056895,
+       -0.830227, 0.533423, -0.161812,
+       -0.553717, 0.796849, -0.241722,
+       -0.194187, 0.938725, -0.284759,
+       0.194188, 0.938724, -0.284759,
+       0.553716, 0.796849, -0.241722,
+       0.830227, 0.533423, -0.161812,
+       0.980604, 0.187557, -0.056895,
+       0.980604, -0.187558, 0.056895,
+       0.830228, -0.533422, 0.161812,
+       0.553717, -0.796849, 0.241722,
+       0.194186, -0.976241, 0.096151,
+       -0.194186, -0.976241, 0.096151,
+       -0.553717, -0.828695, 0.081619,
+       -0.830228, -0.55474, 0.054637,
+       -0.980604, -0.195054, 0.019211,
+       -0.980604, 0.195054, -0.019211,
+       -0.830227, 0.554741, -0.054637,
+       -0.553717, 0.828695, -0.081619,
+       -0.194187, 0.976241, -0.096151,
+       0.194187, 0.976241, -0.096151,
+       0.553716, 0.828696, -0.081619,
+       0.830227, 0.554741, -0.054637,
+       0.980604, 0.195054, -0.019211,
+       0.980604, -0.195054, 0.019211,
+       0.830228, -0.55474, 0.054637,
+       0.553716, -0.828696, 0.081619,
+       0.194185, -0.976241, -0.096151,
+       -0.194185, -0.976241, -0.096151,
+       -0.553718, -0.828695, -0.081619,
+       -0.830228, -0.55474, -0.054637,
+       -0.980604, -0.195054, -0.019211,
+       -0.980605, 0.195053, 0.019211,
+       -0.830227, 0.554741, 0.054637,
+       -0.553717, 0.828695, 0.081619,
+       -0.194187, 0.976241, 0.096151,
+       0.194188, 0.976241, 0.096151,
+       0.553716, 0.828696, 0.081619,
+       0.830227, 0.554741, 0.054637,
+       0.980604, 0.195053, 0.019211,
+       0.980604, -0.195054, -0.019211,
+       0.830228, -0.55474, -0.054637,
+       0.553717, -0.828695, -0.081619,
+       0.194186, -0.938725, -0.284759,
+       -0.194185, -0.938725, -0.284759,
+       -0.553717, -0.796849, -0.241721,
+       -0.830228, -0.533421, -0.161812,
+       -0.980604, -0.187558, -0.056895,
+       -0.980604, 0.187558, 0.056895,
+       -0.830227, 0.533422, 0.161812,
+       -0.553717, 0.796849, 0.241722,
+       -0.194186, 0.938725, 0.284759,
+       0.194187, 0.938724, 0.284759,
+       0.553716, 0.796849, 0.241722,
+       0.830227, 0.533422, 0.161812,
+       0.980604, 0.187558, 0.056895,
+       0.980604, -0.187558, -0.056895,
+       0.830228, -0.533421, -0.161811,
+       0.553716, -0.79685, -0.241722,
+       0.194186, -0.865134, -0.462423,
+       -0.194185, -0.865134, -0.462424,
+       -0.553717, -0.73438, -0.392534,
+       -0.830228, -0.491604, -0.262768,
+       -0.980604, -0.172854, -0.092393,
+       -0.980604, 0.172854, 0.092393,
+       -0.830227, 0.491605, 0.262768,
+       -0.553717, 0.73438, 0.392534,
+       -0.194187, 0.865134, 0.462424,
+       0.194187, 0.865134, 0.462423,
+       0.553716, 0.734381, 0.392534,
+       0.830227, 0.491605, 0.262768,
+       0.980604, 0.172854, 0.092393,
+       0.980604, -0.172854, -0.092393,
+       0.830228, -0.491604, -0.262768,
+       0.553716, -0.734381, -0.392535,
+       0.194186, -0.758296, -0.622317,
+       -0.194186, -0.758296, -0.622318,
+       -0.553717, -0.64369, -0.528263,
+       -0.830228, -0.430895, -0.353626,
+       -0.980604, -0.151508, -0.12434,
+       -0.980604, 0.151508, 0.124339,
+       -0.830227, 0.430895, 0.353627,
+       -0.553717, 0.64369, 0.528263,
+       -0.194186, 0.758296, 0.622317,
+       0.194186, 0.758296, 0.622318,
+       0.553716, 0.64369, 0.528263,
+       0.830227, 0.430895, 0.353627,
+       0.980604, 0.151508, 0.124339,
+       0.980604, -0.151508, -0.12434,
+       0.830228, -0.430895, -0.353626,
+       0.553716, -0.64369, -0.528263,
+       0.194186, -0.622317, -0.758296,
+       -0.194185, -0.622318, -0.758296,
+       -0.553717, -0.528263, -0.64369,
+       -0.830228, -0.353626, -0.430895,
+       -0.980604, -0.124339, -0.151508,
+       -0.980604, 0.124339, 0.151508,
+       -0.830227, 0.353627, 0.430895,
+       -0.553717, 0.528262, 0.643689,
+       -0.194187, 0.622317, 0.758296,
+       0.194187, 0.622317, 0.758296,
+       0.553716, 0.528263, 0.64369,
+       0.830227, 0.353627, 0.430895,
+       0.980604, 0.124339, 0.151508,
+       0.980604, -0.12434, -0.151508,
+       0.830228, -0.353626, -0.430895,
+       0.553716, -0.528263, -0.64369,
+       0.194186, -0.462423, -0.865134,
+       -0.194185, -0.462424, -0.865134,
+       -0.553717, -0.392534, -0.73438,
+       -0.830228, -0.262768, -0.491604,
+       -0.980604, -0.092393, -0.172855,
+       -0.980604, 0.092393, 0.172854,
+       -0.830227, 0.262768, 0.491605,
+       -0.553717, 0.392534, 0.73438,
+       -0.194186, 0.462424, 0.865134,
+       0.194187, 0.462423, 0.865134,
+       0.553716, 0.392535, 0.734381,
+       0.830228, 0.262768, 0.491605,
+       0.980604, 0.092393, 0.172854,
+       0.980604, -0.092393, -0.172855,
+       0.830228, -0.262768, -0.491604,
+       0.553716, -0.392535, -0.734381,
+       0.194185, -0.284759, -0.938725,
+       -0.194185, -0.284759, -0.938725,
+       -0.553718, -0.241721, -0.796848,
+       -0.830228, -0.161812, -0.533422,
+       -0.980604, -0.056895, -0.187558,
+       -0.980605, 0.056895, 0.187557,
+       -0.830227, 0.161812, 0.533422,
+       -0.553716, 0.241722, 0.796849,
+       -0.194187, 0.284759, 0.938725,
+       0.194188, 0.284759, 0.938724,
+       0.553716, 0.241722, 0.79685,
+       0.830227, 0.161812, 0.533423,
+       0.980604, 0.056895, 0.187557,
+       0.980604, -0.056895, -0.187558,
+       0.830228, -0.161812, -0.533422,
+       0.553717, -0.241722, -0.796849,
+       0.194186, -0.096151, -0.976241,
+       -0.194186, -0.096151, -0.976241,
+       -0.553717, -0.081619, -0.828695,
+       -0.830228, -0.054637, -0.55474,
+       -0.980604, -0.019211, -0.195054,
+       -0.980604, 0.019211, 0.195054,
+       -0.830227, 0.054637, 0.554741,
+       -0.553717, 0.081619, 0.828695,
+       -0.194187, 0.096151, 0.976241,
+       0.194187, 0.096151, 0.976241,
+       0.553716, 0.08162, 0.828696,
+       0.830227, 0.054637, 0.554741,
+       0.980604, 0.019211, 0.195054,
+       0.980604, -0.019211, -0.195054,
+       0.830228, -0.054637, -0.55474,
+       0.553716, -0.081619, -0.828696,
+       0.194185, 0.096151, -0.976241,
+       -0.194185, 0.096151, -0.976241,
+       -0.553718, 0.081619, -0.828695,
+       -0.830228, 0.054637, -0.55474,
+       -0.980604, 0.019211, -0.195054,
+       -0.980605, -0.019211, 0.195053,
+       -0.830227, -0.054637, 0.554741,
+       -0.553717, -0.081619, 0.828695,
+       -0.194187, -0.096151, 0.976241,
+       0.194188, -0.096151, 0.976241,
+       0.553716, -0.081619, 0.828696,
+       0.830227, -0.054637, 0.554741,
+       0.980604, -0.019211, 0.195053,
+       0.980604, 0.019211, -0.195054,
+       0.830228, 0.054637, -0.55474,
+       0.553717, 0.081619, -0.828695,
+       0.194186, 0.284759, -0.938725,
+       -0.194185, 0.284759, -0.938725,
+       -0.553717, 0.241721, -0.796849,
+       -0.830228, 0.161812, -0.533421,
+       -0.980604, 0.056895, -0.187558,
+       -0.980604, -0.056895, 0.187558,
+       -0.830227, -0.161812, 0.533422,
+       -0.553717, -0.241722, 0.796849,
+       -0.194186, -0.284759, 0.938725,
+       0.194187, -0.284759, 0.938724,
+       0.553716, -0.241722, 0.796849,
+       0.830227, -0.161812, 0.533422,
+       0.980604, -0.056895, 0.187558,
+       0.980604, 0.056895, -0.187558,
+       0.830228, 0.161811, -0.533421,
+       0.553716, 0.241722, -0.79685,
+       0.194186, 0.462423, -0.865134,
+       -0.194185, 0.462424, -0.865134,
+       -0.553717, 0.392534, -0.73438,
+       -0.830228, 0.262768, -0.491604,
+       -0.980604, 0.092393, -0.172854,
+       -0.980604, -0.092393, 0.172854,
+       -0.830227, -0.262768, 0.491605,
+       -0.553717, -0.392534, 0.73438,
+       -0.194187, -0.462424, 0.865134,
+       0.194187, -0.462423, 0.865134,
+       0.553716, -0.392534, 0.734381,
+       0.830227, -0.262768, 0.491605,
+       0.980604, -0.092393, 0.172854,
+       0.980604, 0.092393, -0.172854,
+       0.830228, 0.262768, -0.491604,
+       0.553716, 0.392535, -0.734381,
+       0.194186, 0.622317, -0.758296,
+       -0.194186, 0.622318, -0.758296,
+       -0.553717, 0.528263, -0.64369,
+       -0.830228, 0.353626, -0.430895,
+       -0.980604, 0.12434, -0.151508,
+       -0.980604, -0.124339, 0.151508,
+       -0.830227, -0.353627, 0.430895,
+       -0.553717, -0.528263, 0.64369,
+       -0.194186, -0.622317, 0.758296,
+       0.194186, -0.622318, 0.758296,
+       0.553716, -0.528263, 0.64369,
+       0.830227, -0.353627, 0.430895,
+       0.980604, -0.124339, 0.151508,
+       0.980604, 0.12434, -0.151508,
+       0.830228, 0.353626, -0.430895,
+       0.553716, 0.528263, -0.64369,
+       0.194186, 0.758296, -0.622317,
+       -0.194185, 0.758296, -0.622318,
+       -0.553717, 0.64369, -0.528263,
+       -0.830228, 0.430895, -0.353626,
+       -0.980604, 0.151508, -0.124339,
+       -0.980604, -0.151508, 0.124339,
+       -0.830227, -0.430895, 0.353627,
+       -0.553717, -0.643689, 0.528262,
+       -0.194187, -0.758296, 0.622317,
+       0.194187, -0.758296, 0.622317,
+       0.553716, -0.64369, 0.528263,
+       0.830227, -0.430895, 0.353627,
+       0.980604, -0.151508, 0.124339,
+       0.980604, 0.151508, -0.12434,
+       0.830228, 0.430895, -0.353626,
+       0.553716, 0.64369, -0.528263,
+       0.194186, 0.865134, -0.462423,
+       -0.194185, 0.865134, -0.462424,
+       -0.553717, 0.73438, -0.392534,
+       -0.830228, 0.491604, -0.262768,
+       -0.980604, 0.172855, -0.092393,
+       -0.980604, -0.172854, 0.092393,
+       -0.830227, -0.491605, 0.262768,
+       -0.553717, -0.73438, 0.392534,
+       -0.194186, -0.865134, 0.462424,
+       0.194187, -0.865134, 0.462423,
+       0.553716, -0.734381, 0.392535,
+       0.830228, -0.491605, 0.262768,
+       0.980604, -0.172854, 0.092393,
+       0.980604, 0.172855, -0.092393,
+       0.830228, 0.491604, -0.262768,
+       0.553716, 0.734381, -0.392535,
+       0.194185, 0.938725, -0.284759,
+       -0.194185, 0.938725, -0.284759,
+       -0.553718, 0.796848, -0.241721,
+       -0.830228, 0.533422, -0.161812,
+       -0.980604, 0.187558, -0.056895,
+       -0.980605, -0.187557, 0.056895,
+       -0.830227, -0.533422, 0.161812,
+       -0.553716, -0.796849, 0.241722,
+       -0.194187, -0.938725, 0.284759,
+       0.194188, -0.938724, 0.284759,
+       0.553716, -0.79685, 0.241722,
+       0.830227, -0.533423, 0.161812,
+       0.980604, -0.187557, 0.056895,
+       0.980604, 0.187558, -0.056895,
+       0.830228, 0.533422, -0.161812,
+       0.553717, 0.796849, -0.241722,
+       0.194186, 0.976241, -0.096151,
+       -0.194186, 0.976241, -0.096151,
+       -0.553717, 0.828695, -0.081619,
+       -0.830228, 0.55474, -0.054637,
+       -0.980604, 0.195054, -0.019211,
+       -0.980604, -0.195054, 0.019211,
+       -0.830227, -0.554741, 0.054637,
+       -0.553717, -0.828695, 0.081619,
+       -0.194187, -0.976241, 0.096151,
+       0.194187, -0.976241, 0.096151,
+       0.553716, -0.828696, 0.08162,
+       0.830227, -0.554741, 0.054637,
+       0.980604, -0.195054, 0.019211,
+       0.980604, 0.195054, -0.019211,
+       0.830228, 0.55474, -0.054637,
+       0.553716, 0.828696, -0.081619,
 };
 
 static const unsigned short int BigValve_POLS[] =
@@ -1563,60 +1563,60 @@ struct lwo  LWO_BigValve =
 
 static const GLfloat Bolts3D_PNTS[] =
 {
-       (GLfloat) - 0.160704, (GLfloat) 0.399000, (GLfloat) 0.600000,
-       (GLfloat) - 0.160704, (GLfloat) 0.399000, (GLfloat) - 0.500000,
-       (GLfloat) - 0.400000, (GLfloat) 0.160257, (GLfloat) 0.600000,
-       (GLfloat) - 0.400000, (GLfloat) 0.160257, (GLfloat) - 0.500000,
-       (GLfloat) - 0.400000, (GLfloat) - 0.170369, (GLfloat) 0.600000,
-       (GLfloat) - 0.400000, (GLfloat) - 0.170369, (GLfloat) - 0.500000,
-       (GLfloat) - 0.153738, (GLfloat) - 0.400000, (GLfloat) 0.600000,
-       (GLfloat) - 0.153738, (GLfloat) - 0.400000, (GLfloat) - 0.500000,
-       (GLfloat) 0.176887, (GLfloat) - 0.400000, (GLfloat) 0.600000,
-       (GLfloat) 0.176887, (GLfloat) - 0.400000, (GLfloat) - 0.500000,
-       (GLfloat) 0.400000, (GLfloat) - 0.163403, (GLfloat) 0.600000,
-       (GLfloat) 0.400000, (GLfloat) - 0.163403, (GLfloat) - 0.500000,
-       (GLfloat) 0.400000, (GLfloat) 0.167223, (GLfloat) 0.600000,
-       (GLfloat) 0.400000, (GLfloat) 0.167223, (GLfloat) - 0.500000,
-       (GLfloat) 0.169922, (GLfloat) 0.399000, (GLfloat) 0.600000,
-       (GLfloat) 0.169922, (GLfloat) 0.399000, (GLfloat) - 0.500000,
-       (GLfloat) - 0.160704, (GLfloat) 0.399000, (GLfloat) 0.500000,
-       (GLfloat) - 0.160704, (GLfloat) 0.399000, (GLfloat) - 0.600000,
-       (GLfloat) - 0.400000, (GLfloat) 0.160257, (GLfloat) - 0.600000,
-       (GLfloat) - 0.400000, (GLfloat) 0.160257, (GLfloat) 0.500000,
-       (GLfloat) - 0.400000, (GLfloat) - 0.170369, (GLfloat) - 0.600000,
-       (GLfloat) - 0.400000, (GLfloat) - 0.170369, (GLfloat) 0.500000,
-       (GLfloat) - 0.153738, (GLfloat) - 0.400000, (GLfloat) - 0.600000,
-       (GLfloat) - 0.153738, (GLfloat) - 0.400000, (GLfloat) 0.500000,
-       (GLfloat) 0.176887, (GLfloat) - 0.400000, (GLfloat) 0.500000,
-       (GLfloat) 0.176887, (GLfloat) - 0.400000, (GLfloat) - 0.600000,
-       (GLfloat) 0.400000, (GLfloat) - 0.163403, (GLfloat) 0.500000,
-       (GLfloat) 0.400000, (GLfloat) - 0.163403, (GLfloat) - 0.600000,
-       (GLfloat) 0.400000, (GLfloat) 0.167223, (GLfloat) - 0.600000,
-       (GLfloat) 0.400000, (GLfloat) 0.167223, (GLfloat) 0.500000,
-       (GLfloat) 0.169922, (GLfloat) 0.399000, (GLfloat) - 0.600000,
-       (GLfloat) 0.169922, (GLfloat) 0.399000, (GLfloat) 0.500000,
+       -0.160704, 0.399, 0.6,
+       -0.160704, 0.399, -0.5,
+       -0.4, 0.160257, 0.6,
+       -0.4, 0.160257, -0.5,
+       -0.4, -0.170369, 0.6,
+       -0.4, -0.170369, -0.5,
+       -0.153738, -0.4, 0.6,
+       -0.153738, -0.4, -0.5,
+       0.176887, -0.4, 0.6,
+       0.176887, -0.4, -0.5,
+       0.4, -0.163403, 0.6,
+       0.4, -0.163403, -0.5,
+       0.4, 0.167223, 0.6,
+       0.4, 0.167223, -0.5,
+       0.169922, 0.399, 0.6,
+       0.169922, 0.399, -0.5,
+       -0.160704, 0.399, 0.5,
+       -0.160704, 0.399, -0.6,
+       -0.4, 0.160257, -0.6,
+       -0.4, 0.160257, 0.5,
+       -0.4, -0.170369, -0.6,
+       -0.4, -0.170369, 0.5,
+       -0.153738, -0.4, -0.6,
+       -0.153738, -0.4, 0.5,
+       0.176887, -0.4, 0.5,
+       0.176887, -0.4, -0.6,
+       0.4, -0.163403, 0.5,
+       0.4, -0.163403, -0.6,
+       0.4, 0.167223, -0.6,
+       0.4, 0.167223, 0.5,
+       0.169922, 0.399, -0.6,
+       0.169922, 0.399, 0.5,
 };
 
 static const GLfloat Bolts3D_normals[] =
 {
-       (GLfloat) 0.000000, (GLfloat) 1.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.709703, (GLfloat) 0.704502, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.727535, (GLfloat) - 0.686070, (GLfloat) - 0.000000,
-       (GLfloat) 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.681980, (GLfloat) - 0.731370, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.706289, (GLfloat) 0.707924, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 1.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.709703, (GLfloat) 0.704502, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.727535, (GLfloat) - 0.686070, (GLfloat) - 0.000000,
-       (GLfloat) 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.681980, (GLfloat) - 0.731370, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.706289, (GLfloat) 0.707924, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
+       0, 1, 0,
+       0.709703, 0.704502, 0,
+       1, 0, 0,
+       0.727535, -0.68607, 0,
+       0, -1, 0,
+       -0.68198, -0.73137, 0,
+       -1, 0, 0,
+       -0.706289, 0.707924, 0,
+       0, 0, 1,
+       0, 1, 0,
+       0.709703, 0.704502, 0,
+       1, 0, 0,
+       0.727535, -0.68607, 0,
+       0, -1, 0,
+       -0.68198, -0.73137, 0,
+       -1, 0, 0,
+       -0.706289, 0.707924, 0,
+       0, 0, -1,
 };
 
 static const unsigned short int Bolts3D_POLS[] =
@@ -1638,236 +1638,236 @@ struct lwo  LWO_Bolts3D =
 
 static const GLfloat GuageConnector_PNTS[] =
 {
-       (GLfloat) 0.200000, (GLfloat) 0.400000, (GLfloat) - 0.000000,
-       (GLfloat) 0.200000, (GLfloat) 0.800000, (GLfloat) - 0.000000,
-       (GLfloat) 0.193185, (GLfloat) 0.400000, (GLfloat) - 0.051764,
-       (GLfloat) 0.193185, (GLfloat) 0.800000, (GLfloat) - 0.051764,
-       (GLfloat) 0.173205, (GLfloat) 0.400000, (GLfloat) - 0.100000,
-       (GLfloat) 0.173205, (GLfloat) 0.800000, (GLfloat) - 0.100000,
-       (GLfloat) 0.141421, (GLfloat) 0.800000, (GLfloat) - 0.141421,
-       (GLfloat) 0.141421, (GLfloat) 0.400000, (GLfloat) - 0.141421,
-       (GLfloat) 0.100000, (GLfloat) 0.400000, (GLfloat) - 0.173205,
-       (GLfloat) 0.100000, (GLfloat) 0.800000, (GLfloat) - 0.173205,
-       (GLfloat) 0.051764, (GLfloat) 0.800000, (GLfloat) - 0.193185,
-       (GLfloat) 0.051764, (GLfloat) 0.400000, (GLfloat) - 0.193185,
-       (GLfloat) 0.000000, (GLfloat) 0.800000, (GLfloat) - 0.200000,
-       (GLfloat) 0.000000, (GLfloat) 0.400000, (GLfloat) - 0.200000,
-       (GLfloat) - 0.051764, (GLfloat) 0.800000, (GLfloat) - 0.193185,
-       (GLfloat) - 0.051764, (GLfloat) 0.400000, (GLfloat) - 0.193185,
-       (GLfloat) - 0.100000, (GLfloat) 0.800000, (GLfloat) - 0.173205,
-       (GLfloat) - 0.100000, (GLfloat) 0.400000, (GLfloat) - 0.173205,
-       (GLfloat) - 0.141421, (GLfloat) 0.400000, (GLfloat) - 0.141421,
-       (GLfloat) - 0.141421, (GLfloat) 0.800000, (GLfloat) - 0.141421,
-       (GLfloat) - 0.173205, (GLfloat) 0.800000, (GLfloat) - 0.100000,
-       (GLfloat) - 0.173205, (GLfloat) 0.400000, (GLfloat) - 0.100000,
-       (GLfloat) - 0.193185, (GLfloat) 0.400000, (GLfloat) - 0.051764,
-       (GLfloat) - 0.193185, (GLfloat) 0.800000, (GLfloat) - 0.051764,
-       (GLfloat) - 0.200000, (GLfloat) 0.400000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.200000, (GLfloat) 0.800000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.193185, (GLfloat) 0.400000, (GLfloat) 0.051764,
-       (GLfloat) - 0.193185, (GLfloat) 0.800000, (GLfloat) 0.051764,
-       (GLfloat) - 0.173205, (GLfloat) 0.400000, (GLfloat) 0.100000,
-       (GLfloat) - 0.173205, (GLfloat) 0.800000, (GLfloat) 0.100000,
-       (GLfloat) - 0.141421, (GLfloat) 0.800000, (GLfloat) 0.141421,
-       (GLfloat) - 0.141421, (GLfloat) 0.400000, (GLfloat) 0.141421,
-       (GLfloat) - 0.100000, (GLfloat) 0.800000, (GLfloat) 0.173205,
-       (GLfloat) - 0.100000, (GLfloat) 0.400000, (GLfloat) 0.173205,
-       (GLfloat) - 0.051764, (GLfloat) 0.800000, (GLfloat) 0.193185,
-       (GLfloat) - 0.051764, (GLfloat) 0.400000, (GLfloat) 0.193185,
-       (GLfloat) - 0.000000, (GLfloat) 0.800000, (GLfloat) 0.200000,
-       (GLfloat) - 0.000000, (GLfloat) 0.400000, (GLfloat) 0.200000,
-       (GLfloat) 0.051764, (GLfloat) 0.800000, (GLfloat) 0.193185,
-       (GLfloat) 0.051764, (GLfloat) 0.400000, (GLfloat) 0.193185,
-       (GLfloat) 0.100000, (GLfloat) 0.400000, (GLfloat) 0.173205,
-       (GLfloat) 0.100000, (GLfloat) 0.800000, (GLfloat) 0.173205,
-       (GLfloat) 0.141421, (GLfloat) 0.400000, (GLfloat) 0.141421,
-       (GLfloat) 0.141421, (GLfloat) 0.800000, (GLfloat) 0.141421,
-       (GLfloat) 0.173205, (GLfloat) 0.800000, (GLfloat) 0.100000,
-       (GLfloat) 0.173205, (GLfloat) 0.400000, (GLfloat) 0.100000,
-       (GLfloat) 0.193185, (GLfloat) 0.400000, (GLfloat) 0.051764,
-       (GLfloat) 0.193185, (GLfloat) 0.800000, (GLfloat) 0.051764,
-       (GLfloat) 0.200000, (GLfloat) 0.550000, (GLfloat) - 0.000000,
-       (GLfloat) 0.193185, (GLfloat) 0.550000, (GLfloat) - 0.051764,
-       (GLfloat) 0.173205, (GLfloat) 0.550000, (GLfloat) - 0.100000,
-       (GLfloat) 0.141421, (GLfloat) 0.550000, (GLfloat) - 0.141421,
-       (GLfloat) 0.100000, (GLfloat) 0.550000, (GLfloat) - 0.173205,
-       (GLfloat) 0.051764, (GLfloat) 0.550000, (GLfloat) - 0.193185,
-       (GLfloat) 0.000000, (GLfloat) 0.550000, (GLfloat) - 0.200000,
-       (GLfloat) - 0.051764, (GLfloat) 0.550000, (GLfloat) - 0.193185,
-       (GLfloat) - 0.100000, (GLfloat) 0.550000, (GLfloat) - 0.173205,
-       (GLfloat) - 0.141421, (GLfloat) 0.550000, (GLfloat) - 0.141421,
-       (GLfloat) - 0.173205, (GLfloat) 0.550000, (GLfloat) - 0.100000,
-       (GLfloat) - 0.193185, (GLfloat) 0.550000, (GLfloat) - 0.051764,
-       (GLfloat) - 0.200000, (GLfloat) 0.550000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.193185, (GLfloat) 0.550000, (GLfloat) 0.051764,
-       (GLfloat) - 0.173205, (GLfloat) 0.550000, (GLfloat) 0.100000,
-       (GLfloat) - 0.141421, (GLfloat) 0.550000, (GLfloat) 0.141421,
-       (GLfloat) - 0.100000, (GLfloat) 0.550000, (GLfloat) 0.173205,
-       (GLfloat) - 0.051764, (GLfloat) 0.550000, (GLfloat) 0.193185,
-       (GLfloat) - 0.000000, (GLfloat) 0.550000, (GLfloat) 0.200000,
-       (GLfloat) 0.051764, (GLfloat) 0.550000, (GLfloat) 0.193185,
-       (GLfloat) 0.100000, (GLfloat) 0.550000, (GLfloat) 0.173205,
-       (GLfloat) 0.141421, (GLfloat) 0.550000, (GLfloat) 0.141421,
-       (GLfloat) 0.173205, (GLfloat) 0.550000, (GLfloat) 0.100000,
-       (GLfloat) 0.193185, (GLfloat) 0.550000, (GLfloat) 0.051764,
-       (GLfloat) 0.150000, (GLfloat) 0.550000, (GLfloat) - 0.000000,
-       (GLfloat) 0.144889, (GLfloat) 0.550000, (GLfloat) - 0.038823,
-       (GLfloat) 0.129904, (GLfloat) 0.550000, (GLfloat) - 0.075000,
-       (GLfloat) 0.106066, (GLfloat) 0.550000, (GLfloat) - 0.106066,
-       (GLfloat) 0.075000, (GLfloat) 0.550000, (GLfloat) - 0.129904,
-       (GLfloat) 0.038823, (GLfloat) 0.550000, (GLfloat) - 0.144889,
-       (GLfloat) 0.000000, (GLfloat) 0.550000, (GLfloat) - 0.150000,
-       (GLfloat) - 0.038823, (GLfloat) 0.550000, (GLfloat) - 0.144889,
-       (GLfloat) - 0.075000, (GLfloat) 0.550000, (GLfloat) - 0.129904,
-       (GLfloat) - 0.106066, (GLfloat) 0.550000, (GLfloat) - 0.106066,
-       (GLfloat) - 0.129904, (GLfloat) 0.550000, (GLfloat) - 0.075000,
-       (GLfloat) - 0.144889, (GLfloat) 0.550000, (GLfloat) - 0.038823,
-       (GLfloat) - 0.150000, (GLfloat) 0.550000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.144889, (GLfloat) 0.550000, (GLfloat) 0.038823,
-       (GLfloat) - 0.129904, (GLfloat) 0.550000, (GLfloat) 0.075000,
-       (GLfloat) - 0.106066, (GLfloat) 0.550000, (GLfloat) 0.106066,
-       (GLfloat) - 0.075000, (GLfloat) 0.550000, (GLfloat) 0.129904,
-       (GLfloat) - 0.038823, (GLfloat) 0.550000, (GLfloat) 0.144889,
-       (GLfloat) - 0.000000, (GLfloat) 0.550000, (GLfloat) 0.150000,
-       (GLfloat) 0.038823, (GLfloat) 0.550000, (GLfloat) 0.144889,
-       (GLfloat) 0.075000, (GLfloat) 0.550000, (GLfloat) 0.129904,
-       (GLfloat) 0.106066, (GLfloat) 0.550000, (GLfloat) 0.106066,
-       (GLfloat) 0.129904, (GLfloat) 0.550000, (GLfloat) 0.075000,
-       (GLfloat) 0.144889, (GLfloat) 0.550000, (GLfloat) 0.038823,
-       (GLfloat) 0.150000, (GLfloat) 0.800000, (GLfloat) - 0.000000,
-       (GLfloat) 0.144889, (GLfloat) 0.800000, (GLfloat) - 0.038823,
-       (GLfloat) 0.129904, (GLfloat) 0.800000, (GLfloat) - 0.075000,
-       (GLfloat) 0.106066, (GLfloat) 0.800000, (GLfloat) - 0.106066,
-       (GLfloat) 0.075000, (GLfloat) 0.800000, (GLfloat) - 0.129904,
-       (GLfloat) 0.038823, (GLfloat) 0.800000, (GLfloat) - 0.144889,
-       (GLfloat) 0.000000, (GLfloat) 0.800000, (GLfloat) - 0.150000,
-       (GLfloat) - 0.038823, (GLfloat) 0.800000, (GLfloat) - 0.144889,
-       (GLfloat) - 0.075000, (GLfloat) 0.800000, (GLfloat) - 0.129904,
-       (GLfloat) - 0.106066, (GLfloat) 0.800000, (GLfloat) - 0.106066,
-       (GLfloat) - 0.129904, (GLfloat) 0.800000, (GLfloat) - 0.075000,
-       (GLfloat) - 0.144889, (GLfloat) 0.800000, (GLfloat) - 0.038823,
-       (GLfloat) - 0.150000, (GLfloat) 0.800000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.144889, (GLfloat) 0.800000, (GLfloat) 0.038823,
-       (GLfloat) - 0.129904, (GLfloat) 0.800000, (GLfloat) 0.075000,
-       (GLfloat) - 0.106066, (GLfloat) 0.800000, (GLfloat) 0.106066,
-       (GLfloat) - 0.075000, (GLfloat) 0.800000, (GLfloat) 0.129904,
-       (GLfloat) - 0.038823, (GLfloat) 0.800000, (GLfloat) 0.144889,
-       (GLfloat) - 0.000000, (GLfloat) 0.800000, (GLfloat) 0.150000,
-       (GLfloat) 0.038823, (GLfloat) 0.800000, (GLfloat) 0.144889,
-       (GLfloat) 0.075000, (GLfloat) 0.800000, (GLfloat) 0.129904,
-       (GLfloat) 0.106066, (GLfloat) 0.800000, (GLfloat) 0.106066,
-       (GLfloat) 0.129904, (GLfloat) 0.800000, (GLfloat) 0.075000,
-       (GLfloat) 0.144889, (GLfloat) 0.800000, (GLfloat) 0.038823,
-       (GLfloat) 0.200000, (GLfloat) 0.875988, (GLfloat) - 0.000000,
-       (GLfloat) 0.193185, (GLfloat) 0.872346, (GLfloat) - 0.051764,
-       (GLfloat) 0.191342, (GLfloat) 0.871360, (GLfloat) - 0.056214,
-       (GLfloat) 0.173205, (GLfloat) 0.865859, (GLfloat) - 0.100000,
-       (GLfloat) 0.141421, (GLfloat) 0.856217, (GLfloat) - 0.141421,
-       (GLfloat) 0.100000, (GLfloat) 0.843652, (GLfloat) - 0.173205,
-       (GLfloat) 0.097545, (GLfloat) 0.842907, (GLfloat) - 0.174222,
-       (GLfloat) 0.051764, (GLfloat) 0.838398, (GLfloat) - 0.193185,
-       (GLfloat) 0.000000, (GLfloat) 0.833300, (GLfloat) - 0.200000,
-       (GLfloat) - 0.051764, (GLfloat) 0.838398, (GLfloat) - 0.193185,
-       (GLfloat) - 0.097545, (GLfloat) 0.842907, (GLfloat) - 0.174222,
-       (GLfloat) - 0.100000, (GLfloat) 0.843652, (GLfloat) - 0.173205,
-       (GLfloat) - 0.141421, (GLfloat) 0.856217, (GLfloat) - 0.141421,
-       (GLfloat) - 0.173205, (GLfloat) 0.865859, (GLfloat) - 0.100000,
-       (GLfloat) - 0.191342, (GLfloat) 0.871360, (GLfloat) - 0.056214,
-       (GLfloat) - 0.193185, (GLfloat) 0.872346, (GLfloat) - 0.051764,
-       (GLfloat) - 0.200000, (GLfloat) 0.875988, (GLfloat) - 0.000000,
-       (GLfloat) - 0.193185, (GLfloat) 0.872346, (GLfloat) 0.051764,
-       (GLfloat) - 0.173205, (GLfloat) 0.865859, (GLfloat) 0.100000,
-       (GLfloat) - 0.191342, (GLfloat) 0.871360, (GLfloat) 0.056214,
-       (GLfloat) - 0.141421, (GLfloat) 0.856217, (GLfloat) 0.141421,
-       (GLfloat) - 0.100000, (GLfloat) 0.843652, (GLfloat) 0.173205,
-       (GLfloat) - 0.051764, (GLfloat) 0.838398, (GLfloat) 0.193185,
-       (GLfloat) - 0.097545, (GLfloat) 0.842907, (GLfloat) 0.174222,
-       (GLfloat) - 0.000000, (GLfloat) 0.833300, (GLfloat) 0.200000,
-       (GLfloat) 0.051764, (GLfloat) 0.838398, (GLfloat) 0.193185,
-       (GLfloat) 0.100000, (GLfloat) 0.843652, (GLfloat) 0.173205,
-       (GLfloat) 0.097545, (GLfloat) 0.842907, (GLfloat) 0.174222,
-       (GLfloat) 0.141421, (GLfloat) 0.856217, (GLfloat) 0.141421,
-       (GLfloat) 0.173205, (GLfloat) 0.865859, (GLfloat) 0.100000,
-       (GLfloat) 0.193185, (GLfloat) 0.872346, (GLfloat) 0.051764,
-       (GLfloat) 0.191342, (GLfloat) 0.871360, (GLfloat) 0.056214,
+       0.2, 0.4, 0,
+       0.2, 0.8, 0,
+       0.193185, 0.4, -0.051764,
+       0.193185, 0.8, -0.051764,
+       0.173205, 0.4, -0.1,
+       0.173205, 0.8, -0.1,
+       0.141421, 0.8, -0.141421,
+       0.141421, 0.4, -0.141421,
+       0.1, 0.4, -0.173205,
+       0.1, 0.8, -0.173205,
+       0.051764, 0.8, -0.193185,
+       0.051764, 0.4, -0.193185,
+       0, 0.8, -0.2,
+       0, 0.4, -0.2,
+       -0.051764, 0.8, -0.193185,
+       -0.051764, 0.4, -0.193185,
+       -0.1, 0.8, -0.173205,
+       -0.1, 0.4, -0.173205,
+       -0.141421, 0.4, -0.141421,
+       -0.141421, 0.8, -0.141421,
+       -0.173205, 0.8, -0.1,
+       -0.173205, 0.4, -0.1,
+       -0.193185, 0.4, -0.051764,
+       -0.193185, 0.8, -0.051764,
+       -0.2, 0.4, 0,
+       -0.2, 0.8, 0,
+       -0.193185, 0.4, 0.051764,
+       -0.193185, 0.8, 0.051764,
+       -0.173205, 0.4, 0.1,
+       -0.173205, 0.8, 0.1,
+       -0.141421, 0.8, 0.141421,
+       -0.141421, 0.4, 0.141421,
+       -0.1, 0.8, 0.173205,
+       -0.1, 0.4, 0.173205,
+       -0.051764, 0.8, 0.193185,
+       -0.051764, 0.4, 0.193185,
+       0, 0.8, 0.2,
+       0, 0.4, 0.2,
+       0.051764, 0.8, 0.193185,
+       0.051764, 0.4, 0.193185,
+       0.1, 0.4, 0.173205,
+       0.1, 0.8, 0.173205,
+       0.141421, 0.4, 0.141421,
+       0.141421, 0.8, 0.141421,
+       0.173205, 0.8, 0.1,
+       0.173205, 0.4, 0.1,
+       0.193185, 0.4, 0.051764,
+       0.193185, 0.8, 0.051764,
+       0.2, 0.55, 0,
+       0.193185, 0.55, -0.051764,
+       0.173205, 0.55, -0.1,
+       0.141421, 0.55, -0.141421,
+       0.1, 0.55, -0.173205,
+       0.051764, 0.55, -0.193185,
+       0, 0.55, -0.2,
+       -0.051764, 0.55, -0.193185,
+       -0.1, 0.55, -0.173205,
+       -0.141421, 0.55, -0.141421,
+       -0.173205, 0.55, -0.1,
+       -0.193185, 0.55, -0.051764,
+       -0.2, 0.55, 0,
+       -0.193185, 0.55, 0.051764,
+       -0.173205, 0.55, 0.1,
+       -0.141421, 0.55, 0.141421,
+       -0.1, 0.55, 0.173205,
+       -0.051764, 0.55, 0.193185,
+       0, 0.55, 0.2,
+       0.051764, 0.55, 0.193185,
+       0.1, 0.55, 0.173205,
+       0.141421, 0.55, 0.141421,
+       0.173205, 0.55, 0.1,
+       0.193185, 0.55, 0.051764,
+       0.15, 0.55, 0,
+       0.144889, 0.55, -0.038823,
+       0.129904, 0.55, -0.075,
+       0.106066, 0.55, -0.106066,
+       0.075, 0.55, -0.129904,
+       0.038823, 0.55, -0.144889,
+       0, 0.55, -0.15,
+       -0.038823, 0.55, -0.144889,
+       -0.075, 0.55, -0.129904,
+       -0.106066, 0.55, -0.106066,
+       -0.129904, 0.55, -0.075,
+       -0.144889, 0.55, -0.038823,
+       -0.15, 0.55, 0,
+       -0.144889, 0.55, 0.038823,
+       -0.129904, 0.55, 0.075,
+       -0.106066, 0.55, 0.106066,
+       -0.075, 0.55, 0.129904,
+       -0.038823, 0.55, 0.144889,
+       0, 0.55, 0.15,
+       0.038823, 0.55, 0.144889,
+       0.075, 0.55, 0.129904,
+       0.106066, 0.55, 0.106066,
+       0.129904, 0.55, 0.075,
+       0.144889, 0.55, 0.038823,
+       0.15, 0.8, 0,
+       0.144889, 0.8, -0.038823,
+       0.129904, 0.8, -0.075,
+       0.106066, 0.8, -0.106066,
+       0.075, 0.8, -0.129904,
+       0.038823, 0.8, -0.144889,
+       0, 0.8, -0.15,
+       -0.038823, 0.8, -0.144889,
+       -0.075, 0.8, -0.129904,
+       -0.106066, 0.8, -0.106066,
+       -0.129904, 0.8, -0.075,
+       -0.144889, 0.8, -0.038823,
+       -0.15, 0.8, 0,
+       -0.144889, 0.8, 0.038823,
+       -0.129904, 0.8, 0.075,
+       -0.106066, 0.8, 0.106066,
+       -0.075, 0.8, 0.129904,
+       -0.038823, 0.8, 0.144889,
+       0, 0.8, 0.15,
+       0.038823, 0.8, 0.144889,
+       0.075, 0.8, 0.129904,
+       0.106066, 0.8, 0.106066,
+       0.129904, 0.8, 0.075,
+       0.144889, 0.8, 0.038823,
+       0.2, 0.875988, 0,
+       0.193185, 0.872346, -0.051764,
+       0.191342, 0.87136, -0.056214,
+       0.173205, 0.865859, -0.1,
+       0.141421, 0.856217, -0.141421,
+       0.1, 0.843652, -0.173205,
+       0.097545, 0.842907, -0.174222,
+       0.051764, 0.838398, -0.193185,
+       0, 0.8333, -0.2,
+       -0.051764, 0.838398, -0.193185,
+       -0.097545, 0.842907, -0.174222,
+       -0.1, 0.843652, -0.173205,
+       -0.141421, 0.856217, -0.141421,
+       -0.173205, 0.865859, -0.1,
+       -0.191342, 0.87136, -0.056214,
+       -0.193185, 0.872346, -0.051764,
+       -0.2, 0.875988, 0,
+       -0.193185, 0.872346, 0.051764,
+       -0.173205, 0.865859, 0.1,
+       -0.191342, 0.87136, 0.056214,
+       -0.141421, 0.856217, 0.141421,
+       -0.1, 0.843652, 0.173205,
+       -0.051764, 0.838398, 0.193185,
+       -0.097545, 0.842907, 0.174222,
+       0, 0.8333, 0.2,
+       0.051764, 0.838398, 0.193185,
+       0.1, 0.843652, 0.173205,
+       0.097545, 0.842907, 0.174222,
+       0.141421, 0.856217, 0.141421,
+       0.173205, 0.865859, 0.1,
+       0.193185, 0.872346, 0.051764,
+       0.191342, 0.87136, 0.056214,
 };
 
 static const GLfloat GuageConnector_normals[] =
 {
-       (GLfloat) 0.991445, (GLfloat) 0.000000, (GLfloat) - 0.130526,
-       (GLfloat) 0.923880, (GLfloat) 0.000000, (GLfloat) - 0.382683,
-       (GLfloat) 0.793353, (GLfloat) 0.000000, (GLfloat) - 0.608761,
-       (GLfloat) 0.608761, (GLfloat) 0.000000, (GLfloat) - 0.793353,
-       (GLfloat) 0.382683, (GLfloat) 0.000000, (GLfloat) - 0.923880,
-       (GLfloat) 0.130526, (GLfloat) 0.000000, (GLfloat) - 0.991445,
-       (GLfloat) - 0.130526, (GLfloat) - 0.000000, (GLfloat) - 0.991445,
-       (GLfloat) - 0.382683, (GLfloat) - 0.000000, (GLfloat) - 0.923880,
-       (GLfloat) - 0.608761, (GLfloat) - 0.000000, (GLfloat) - 0.793353,
-       (GLfloat) - 0.793353, (GLfloat) - 0.000000, (GLfloat) - 0.608761,
-       (GLfloat) - 0.923880, (GLfloat) - 0.000000, (GLfloat) - 0.382683,
-       (GLfloat) - 0.991445, (GLfloat) - 0.000000, (GLfloat) - 0.130526,
-       (GLfloat) - 0.991445, (GLfloat) 0.000000, (GLfloat) 0.130526,
-       (GLfloat) - 0.923880, (GLfloat) 0.000000, (GLfloat) 0.382683,
-       (GLfloat) - 0.793353, (GLfloat) 0.000000, (GLfloat) 0.608761,
-       (GLfloat) - 0.608761, (GLfloat) 0.000000, (GLfloat) 0.793353,
-       (GLfloat) - 0.382683, (GLfloat) 0.000000, (GLfloat) 0.923880,
-       (GLfloat) - 0.130526, (GLfloat) 0.000000, (GLfloat) 0.991445,
-       (GLfloat) 0.130526, (GLfloat) 0.000000, (GLfloat) 0.991445,
-       (GLfloat) 0.382683, (GLfloat) 0.000000, (GLfloat) 0.923880,
-       (GLfloat) 0.608761, (GLfloat) 0.000000, (GLfloat) 0.793353,
-       (GLfloat) 0.793353, (GLfloat) 0.000000, (GLfloat) 0.608761,
-       (GLfloat) 0.923880, (GLfloat) 0.000000, (GLfloat) 0.382683,
-       (GLfloat) 0.991445, (GLfloat) 0.000000, (GLfloat) 0.130526,
-       (GLfloat) 0.991445, (GLfloat) 0.000000, (GLfloat) - 0.130526,
-       (GLfloat) 0.923880, (GLfloat) 0.000000, (GLfloat) - 0.382684,
-       (GLfloat) 0.793353, (GLfloat) 0.000000, (GLfloat) - 0.608761,
-       (GLfloat) 0.608761, (GLfloat) 0.000000, (GLfloat) - 0.793353,
-       (GLfloat) 0.382684, (GLfloat) 0.000000, (GLfloat) - 0.923880,
-       (GLfloat) 0.130526, (GLfloat) 0.000000, (GLfloat) - 0.991445,
-       (GLfloat) - 0.130526, (GLfloat) 0.000000, (GLfloat) - 0.991445,
-       (GLfloat) - 0.382684, (GLfloat) 0.000000, (GLfloat) - 0.923880,
-       (GLfloat) - 0.608761, (GLfloat) 0.000000, (GLfloat) - 0.793353,
-       (GLfloat) - 0.793353, (GLfloat) 0.000000, (GLfloat) - 0.608761,
-       (GLfloat) - 0.923880, (GLfloat) 0.000000, (GLfloat) - 0.382684,
-       (GLfloat) - 0.991445, (GLfloat) 0.000000, (GLfloat) - 0.130526,
-       (GLfloat) - 0.991445, (GLfloat) 0.000000, (GLfloat) 0.130526,
-       (GLfloat) - 0.923880, (GLfloat) 0.000000, (GLfloat) 0.382684,
-       (GLfloat) - 0.793353, (GLfloat) 0.000000, (GLfloat) 0.608761,
-       (GLfloat) - 0.608761, (GLfloat) 0.000000, (GLfloat) 0.793353,
-       (GLfloat) - 0.382684, (GLfloat) 0.000000, (GLfloat) 0.923880,
-       (GLfloat) - 0.130526, (GLfloat) 0.000000, (GLfloat) 0.991445,
-       (GLfloat) 0.130526, (GLfloat) - 0.000000, (GLfloat) 0.991445,
-       (GLfloat) 0.382684, (GLfloat) - 0.000000, (GLfloat) 0.923880,
-       (GLfloat) 0.608761, (GLfloat) - 0.000000, (GLfloat) 0.793353,
-       (GLfloat) 0.793353, (GLfloat) - 0.000000, (GLfloat) 0.608761,
-       (GLfloat) 0.923880, (GLfloat) - 0.000000, (GLfloat) 0.382684,
-       (GLfloat) 0.991445, (GLfloat) - 0.000000, (GLfloat) 0.130526,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.991445, (GLfloat) 0.000000, (GLfloat) - 0.130526,
-       (GLfloat) 0.923880, (GLfloat) 0.000000, (GLfloat) - 0.382684,
-       (GLfloat) 0.793353, (GLfloat) 0.000000, (GLfloat) - 0.608761,
-       (GLfloat) 0.608761, (GLfloat) 0.000000, (GLfloat) - 0.793353,
-       (GLfloat) 0.382684, (GLfloat) 0.000000, (GLfloat) - 0.923880,
-       (GLfloat) 0.130526, (GLfloat) 0.000000, (GLfloat) - 0.991445,
-       (GLfloat) - 0.130526, (GLfloat) 0.000000, (GLfloat) - 0.991445,
-       (GLfloat) - 0.382684, (GLfloat) 0.000000, (GLfloat) - 0.923880,
-       (GLfloat) - 0.608761, (GLfloat) 0.000000, (GLfloat) - 0.793353,
-       (GLfloat) - 0.793353, (GLfloat) 0.000000, (GLfloat) - 0.608761,
-       (GLfloat) - 0.923880, (GLfloat) 0.000000, (GLfloat) - 0.382684,
-       (GLfloat) - 0.991445, (GLfloat) 0.000000, (GLfloat) - 0.130526,
-       (GLfloat) - 0.991445, (GLfloat) 0.000000, (GLfloat) 0.130526,
-       (GLfloat) - 0.923880, (GLfloat) 0.000000, (GLfloat) 0.382684,
-       (GLfloat) - 0.793353, (GLfloat) 0.000000, (GLfloat) 0.608761,
-       (GLfloat) - 0.608761, (GLfloat) 0.000000, (GLfloat) 0.793353,
-       (GLfloat) - 0.382684, (GLfloat) 0.000000, (GLfloat) 0.923880,
-       (GLfloat) - 0.130526, (GLfloat) 0.000000, (GLfloat) 0.991445,
-       (GLfloat) 0.130526, (GLfloat) - 0.000000, (GLfloat) 0.991445,
-       (GLfloat) 0.382684, (GLfloat) - 0.000000, (GLfloat) 0.923880,
-       (GLfloat) 0.608761, (GLfloat) - 0.000000, (GLfloat) 0.793353,
-       (GLfloat) 0.793353, (GLfloat) - 0.000000, (GLfloat) 0.608761,
-       (GLfloat) 0.923880, (GLfloat) - 0.000000, (GLfloat) 0.382684,
-       (GLfloat) 0.991445, (GLfloat) - 0.000000, (GLfloat) 0.130526,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) - 0.000000,
+       0.991445, 0, -0.130526,
+       0.92388, 0, -0.382683,
+       0.793353, 0, -0.608761,
+       0.608761, 0, -0.793353,
+       0.382683, 0, -0.92388,
+       0.130526, 0, -0.991445,
+       -0.130526, 0, -0.991445,
+       -0.382683, 0, -0.92388,
+       -0.608761, 0, -0.793353,
+       -0.793353, 0, -0.608761,
+       -0.92388, 0, -0.382683,
+       -0.991445, 0, -0.130526,
+       -0.991445, 0, 0.130526,
+       -0.92388, 0, 0.382683,
+       -0.793353, 0, 0.608761,
+       -0.608761, 0, 0.793353,
+       -0.382683, 0, 0.92388,
+       -0.130526, 0, 0.991445,
+       0.130526, 0, 0.991445,
+       0.382683, 0, 0.92388,
+       0.608761, 0, 0.793353,
+       0.793353, 0, 0.608761,
+       0.92388, 0, 0.382683,
+       0.991445, 0, 0.130526,
+       0.991445, 0, -0.130526,
+       0.92388, 0, -0.382684,
+       0.793353, 0, -0.608761,
+       0.608761, 0, -0.793353,
+       0.382684, 0, -0.92388,
+       0.130526, 0, -0.991445,
+       -0.130526, 0, -0.991445,
+       -0.382684, 0, -0.92388,
+       -0.608761, 0, -0.793353,
+       -0.793353, 0, -0.608761,
+       -0.92388, 0, -0.382684,
+       -0.991445, 0, -0.130526,
+       -0.991445, 0, 0.130526,
+       -0.92388, 0, 0.382684,
+       -0.793353, 0, 0.608761,
+       -0.608761, 0, 0.793353,
+       -0.382684, 0, 0.92388,
+       -0.130526, 0, 0.991445,
+       0.130526, 0, 0.991445,
+       0.382684, 0, 0.92388,
+       0.608761, 0, 0.793353,
+       0.793353, 0, 0.608761,
+       0.92388, 0, 0.382684,
+       0.991445, 0, 0.130526,
+       0, -1, 0,
+       0.991445, 0, -0.130526,
+       0.92388, 0, -0.382684,
+       0.793353, 0, -0.608761,
+       0.608761, 0, -0.793353,
+       0.382684, 0, -0.92388,
+       0.130526, 0, -0.991445,
+       -0.130526, 0, -0.991445,
+       -0.382684, 0, -0.92388,
+       -0.608761, 0, -0.793353,
+       -0.793353, 0, -0.608761,
+       -0.92388, 0, -0.382684,
+       -0.991445, 0, -0.130526,
+       -0.991445, 0, 0.130526,
+       -0.92388, 0, 0.382684,
+       -0.793353, 0, 0.608761,
+       -0.608761, 0, 0.793353,
+       -0.382684, 0, 0.92388,
+       -0.130526, 0, 0.991445,
+       0.130526, 0, 0.991445,
+       0.382684, 0, 0.92388,
+       0.608761, 0, 0.793353,
+       0.793353, 0, 0.608761,
+       0.92388, 0, 0.382684,
+       0.991445, 0, 0.130526,
+       0, 1, 0,
 };
 
 static const unsigned short int GuageConnector_POLS[] =
@@ -1908,63 +1908,63 @@ struct lwo  LWO_GuageConnector =
 
 static const GLfloat GuageDial_PNTS[] =
 {
-       (GLfloat) 0.000000, (GLfloat) 0.050000, (GLfloat) 0.300000,
-       (GLfloat) 0.019134, (GLfloat) 0.046194, (GLfloat) 0.300000,
-       (GLfloat) 0.035355, (GLfloat) 0.035355, (GLfloat) 0.300000,
-       (GLfloat) 0.046194, (GLfloat) 0.019134, (GLfloat) 0.300000,
-       (GLfloat) 0.050000, (GLfloat) - 0.000000, (GLfloat) 0.300000,
-       (GLfloat) 0.046194, (GLfloat) - 0.019134, (GLfloat) 0.300000,
-       (GLfloat) 0.035355, (GLfloat) - 0.035400, (GLfloat) 0.275000,
-       (GLfloat) 0.035355, (GLfloat) - 0.035400, (GLfloat) 0.300000,
-       (GLfloat) 0.019134, (GLfloat) - 0.046200, (GLfloat) 0.300000,
-       (GLfloat) 0.000000, (GLfloat) - 0.050000, (GLfloat) 0.300000,
-       (GLfloat) - 0.019134, (GLfloat) - 0.046200, (GLfloat) 0.300000,
-       (GLfloat) - 0.035355, (GLfloat) - 0.035400, (GLfloat) 0.275000,
-       (GLfloat) - 0.035355, (GLfloat) - 0.035400, (GLfloat) 0.300000,
-       (GLfloat) - 0.046194, (GLfloat) - 0.019134, (GLfloat) 0.300000,
-       (GLfloat) - 0.050000, (GLfloat) - 0.000000, (GLfloat) 0.300000,
-       (GLfloat) - 0.046194, (GLfloat) 0.019134, (GLfloat) 0.300000,
-       (GLfloat) - 0.035355, (GLfloat) 0.035355, (GLfloat) 0.300000,
-       (GLfloat) - 0.019134, (GLfloat) 0.046194, (GLfloat) 0.300000,
-       (GLfloat) 0.000000, (GLfloat) 0.050000, (GLfloat) 0.200000,
-       (GLfloat) 0.019134, (GLfloat) 0.046194, (GLfloat) 0.200000,
-       (GLfloat) 0.035355, (GLfloat) 0.035355, (GLfloat) 0.200000,
-       (GLfloat) 0.046194, (GLfloat) 0.019134, (GLfloat) 0.200000,
-       (GLfloat) 0.050000, (GLfloat) - 0.000000, (GLfloat) 0.200000,
-       (GLfloat) 0.046194, (GLfloat) - 0.019134, (GLfloat) 0.200000,
-       (GLfloat) 0.035355, (GLfloat) - 0.035355, (GLfloat) 0.200000,
-       (GLfloat) 0.019134, (GLfloat) - 0.046194, (GLfloat) 0.200000,
-       (GLfloat) 0.000000, (GLfloat) - 0.050000, (GLfloat) 0.200000,
-       (GLfloat) - 0.019134, (GLfloat) - 0.046194, (GLfloat) 0.200000,
-       (GLfloat) - 0.035355, (GLfloat) - 0.035355, (GLfloat) 0.200000,
-       (GLfloat) - 0.046194, (GLfloat) - 0.019134, (GLfloat) 0.200000,
-       (GLfloat) - 0.050000, (GLfloat) - 0.000000, (GLfloat) 0.200000,
-       (GLfloat) - 0.046194, (GLfloat) 0.019134, (GLfloat) 0.200000,
-       (GLfloat) - 0.035355, (GLfloat) 0.035355, (GLfloat) 0.200000,
-       (GLfloat) - 0.019134, (GLfloat) 0.046194, (GLfloat) 0.200000,
-       (GLfloat) 0.000000, (GLfloat) - 0.373300, (GLfloat) 0.275000,
+       0, 0.05, 0.3,
+       0.019134, 0.046194, 0.3,
+       0.035355, 0.035355, 0.3,
+       0.046194, 0.019134, 0.3,
+       0.05, 0, 0.3,
+       0.046194, -0.019134, 0.3,
+       0.035355, -0.0354, 0.275,
+       0.035355, -0.0354, 0.3,
+       0.019134, -0.0462, 0.3,
+       0, -0.05, 0.3,
+       -0.019134, -0.0462, 0.3,
+       -0.035355, -0.0354, 0.275,
+       -0.035355, -0.0354, 0.3,
+       -0.046194, -0.019134, 0.3,
+       -0.05, 0, 0.3,
+       -0.046194, 0.019134, 0.3,
+       -0.035355, 0.035355, 0.3,
+       -0.019134, 0.046194, 0.3,
+       0, 0.05, 0.2,
+       0.019134, 0.046194, 0.2,
+       0.035355, 0.035355, 0.2,
+       0.046194, 0.019134, 0.2,
+       0.05, 0, 0.2,
+       0.046194, -0.019134, 0.2,
+       0.035355, -0.035355, 0.2,
+       0.019134, -0.046194, 0.2,
+       0, -0.05, 0.2,
+       -0.019134, -0.046194, 0.2,
+       -0.035355, -0.035355, 0.2,
+       -0.046194, -0.019134, 0.2,
+       -0.05, 0, 0.2,
+       -0.046194, 0.019134, 0.2,
+       -0.035355, 0.035355, 0.2,
+       -0.019134, 0.046194, 0.2,
+       0, -0.3733, 0.275,
 };
 
 static const GLfloat GuageDial_normals[] =
 {
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.195089, (GLfloat) 0.980786, (GLfloat) 0.000000,
-       (GLfloat) 0.555570, (GLfloat) 0.831470, (GLfloat) 0.000000,
-       (GLfloat) 0.831470, (GLfloat) 0.555570, (GLfloat) 0.000000,
-       (GLfloat) 0.980785, (GLfloat) 0.195090, (GLfloat) 0.000000,
-       (GLfloat) 0.980785, (GLfloat) - 0.195090, (GLfloat) - 0.000000,
-       (GLfloat) 0.831470, (GLfloat) - 0.555570, (GLfloat) - 0.000248,
-       (GLfloat) 0.555570, (GLfloat) - 0.831470, (GLfloat) - 0.000051,
-       (GLfloat) 0.195089, (GLfloat) - 0.980786, (GLfloat) - 0.000000,
-       (GLfloat) - 0.195089, (GLfloat) - 0.980786, (GLfloat) - 0.000060,
-       (GLfloat) - 0.555570, (GLfloat) - 0.831470, (GLfloat) - 0.000371,
-       (GLfloat) - 0.831470, (GLfloat) - 0.555570, (GLfloat) - 0.000000,
-       (GLfloat) - 0.980785, (GLfloat) - 0.195090, (GLfloat) - 0.000000,
-       (GLfloat) - 0.980785, (GLfloat) 0.195090, (GLfloat) - 0.000000,
-       (GLfloat) - 0.831470, (GLfloat) 0.555570, (GLfloat) - 0.000000,
-       (GLfloat) - 0.555570, (GLfloat) 0.831470, (GLfloat) - 0.000000,
-       (GLfloat) - 0.195089, (GLfloat) 0.980786, (GLfloat) - 0.000000,
+       0, 0, 1,
+       0, 0, 1,
+       0.195089, 0.980786, 0,
+       0.55557, 0.83147, 0,
+       0.83147, 0.55557, 0,
+       0.980785, 0.19509, 0,
+       0.980785, -0.19509, 0,
+       0.83147, -0.55557, -0.000248,
+       0.55557, -0.83147, -0.000051,
+       0.195089, -0.980786, 0,
+       -0.195089, -0.980786, -0.00006,
+       -0.55557, -0.83147, -0.000371,
+       -0.83147, -0.55557, 0,
+       -0.980785, -0.19509, 0,
+       -0.980785, 0.19509, 0,
+       -0.83147, 0.55557, 0,
+       -0.55557, 0.83147, 0,
+       -0.195089, 0.980786, 0,
 };
 
 static const unsigned short int GuageDial_POLS[] =
@@ -1986,43 +1986,43 @@ struct lwo  LWO_GuageDial =
 
 static const GLfloat GuageFace_PNTS[] =
 {
-       (GLfloat) 0.000000, (GLfloat) 1.783300, (GLfloat) 0.200000,
-       (GLfloat) - 0.087791, (GLfloat) 1.774653, (GLfloat) 0.200000,
-       (GLfloat) - 0.172208, (GLfloat) 1.749046, (GLfloat) 0.200000,
-       (GLfloat) - 0.250007, (GLfloat) 1.707461, (GLfloat) 0.200000,
-       (GLfloat) - 0.318198, (GLfloat) 1.651498, (GLfloat) 0.200000,
-       (GLfloat) - 0.374161, (GLfloat) 1.583307, (GLfloat) 0.200000,
-       (GLfloat) - 0.415746, (GLfloat) 1.505508, (GLfloat) 0.200000,
-       (GLfloat) - 0.441353, (GLfloat) 1.421091, (GLfloat) 0.200000,
-       (GLfloat) - 0.450000, (GLfloat) 1.333300, (GLfloat) 0.200000,
-       (GLfloat) - 0.441353, (GLfloat) 1.245509, (GLfloat) 0.200000,
-       (GLfloat) - 0.415746, (GLfloat) 1.161092, (GLfloat) 0.200000,
-       (GLfloat) - 0.374161, (GLfloat) 1.083293, (GLfloat) 0.200000,
-       (GLfloat) - 0.318198, (GLfloat) 1.015102, (GLfloat) 0.200000,
-       (GLfloat) - 0.250007, (GLfloat) 0.959139, (GLfloat) 0.200000,
-       (GLfloat) - 0.172208, (GLfloat) 0.917554, (GLfloat) 0.200000,
-       (GLfloat) - 0.087791, (GLfloat) 0.891947, (GLfloat) 0.200000,
-       (GLfloat) 0.000000, (GLfloat) 0.883300, (GLfloat) 0.200000,
-       (GLfloat) 0.087791, (GLfloat) 0.891947, (GLfloat) 0.200000,
-       (GLfloat) 0.172208, (GLfloat) 0.917554, (GLfloat) 0.200000,
-       (GLfloat) 0.250007, (GLfloat) 0.959139, (GLfloat) 0.200000,
-       (GLfloat) 0.318198, (GLfloat) 1.015102, (GLfloat) 0.200000,
-       (GLfloat) 0.374161, (GLfloat) 1.083293, (GLfloat) 0.200000,
-       (GLfloat) 0.415746, (GLfloat) 1.161092, (GLfloat) 0.200000,
-       (GLfloat) 0.441353, (GLfloat) 1.245509, (GLfloat) 0.200000,
-       (GLfloat) 0.450000, (GLfloat) 1.333300, (GLfloat) 0.200000,
-       (GLfloat) 0.441353, (GLfloat) 1.421091, (GLfloat) 0.200000,
-       (GLfloat) 0.415746, (GLfloat) 1.505508, (GLfloat) 0.200000,
-       (GLfloat) 0.374161, (GLfloat) 1.583307, (GLfloat) 0.200000,
-       (GLfloat) 0.318198, (GLfloat) 1.651498, (GLfloat) 0.200000,
-       (GLfloat) 0.250007, (GLfloat) 1.707461, (GLfloat) 0.200000,
-       (GLfloat) 0.172208, (GLfloat) 1.749046, (GLfloat) 0.200000,
-       (GLfloat) 0.087791, (GLfloat) 1.774653, (GLfloat) 0.200000,
+       0, 1.7833, 0.2,
+       -0.087791, 1.774653, 0.2,
+       -0.172208, 1.749046, 0.2,
+       -0.250007, 1.707461, 0.2,
+       -0.318198, 1.651498, 0.2,
+       -0.374161, 1.583307, 0.2,
+       -0.415746, 1.505508, 0.2,
+       -0.441353, 1.421091, 0.2,
+       -0.45, 1.3333, 0.2,
+       -0.441353, 1.245509, 0.2,
+       -0.415746, 1.161092, 0.2,
+       -0.374161, 1.083293, 0.2,
+       -0.318198, 1.015102, 0.2,
+       -0.250007, 0.959139, 0.2,
+       -0.172208, 0.917554, 0.2,
+       -0.087791, 0.891947, 0.2,
+       0, 0.8833, 0.2,
+       0.087791, 0.891947, 0.2,
+       0.172208, 0.917554, 0.2,
+       0.250007, 0.959139, 0.2,
+       0.318198, 1.015102, 0.2,
+       0.374161, 1.083293, 0.2,
+       0.415746, 1.161092, 0.2,
+       0.441353, 1.245509, 0.2,
+       0.45, 1.3333, 0.2,
+       0.441353, 1.421091, 0.2,
+       0.415746, 1.505508, 0.2,
+       0.374161, 1.583307, 0.2,
+       0.318198, 1.651498, 0.2,
+       0.250007, 1.707461, 0.2,
+       0.172208, 1.749046, 0.2,
+       0.087791, 1.774653, 0.2,
 };
 
 static const GLfloat GuageFace_normals[] =
 {
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
+       0, 0, 1,
 };
 
 static const unsigned short int GuageFace_POLS[] =
@@ -2040,267 +2040,267 @@ struct lwo  LWO_GuageFace =
 
 static const GLfloat GuageHead_PNTS[] =
 {
-       (GLfloat) 0.000000, (GLfloat) 1.833300, (GLfloat) 0.333330,
-       (GLfloat) 0.097545, (GLfloat) 1.823693, (GLfloat) 0.333330,
-       (GLfloat) 0.191342, (GLfloat) 1.795240, (GLfloat) 0.333330,
-       (GLfloat) 0.277785, (GLfloat) 1.749035, (GLfloat) 0.333330,
-       (GLfloat) 0.353553, (GLfloat) 1.686853, (GLfloat) 0.333330,
-       (GLfloat) 0.415735, (GLfloat) 1.611085, (GLfloat) 0.333330,
-       (GLfloat) 0.461940, (GLfloat) 1.524642, (GLfloat) 0.333330,
-       (GLfloat) 0.490393, (GLfloat) 1.430845, (GLfloat) 0.333330,
-       (GLfloat) 0.500000, (GLfloat) 1.333300, (GLfloat) 0.333330,
-       (GLfloat) 0.490393, (GLfloat) 1.235755, (GLfloat) 0.333330,
-       (GLfloat) 0.461940, (GLfloat) 1.141958, (GLfloat) 0.333330,
-       (GLfloat) 0.415735, (GLfloat) 1.055515, (GLfloat) 0.333330,
-       (GLfloat) 0.353553, (GLfloat) 0.979747, (GLfloat) 0.333330,
-       (GLfloat) 0.277785, (GLfloat) 0.917565, (GLfloat) 0.333330,
-       (GLfloat) 0.191342, (GLfloat) 0.871360, (GLfloat) 0.333330,
-       (GLfloat) 0.097545, (GLfloat) 0.842907, (GLfloat) 0.333330,
-       (GLfloat) 0.000000, (GLfloat) 0.833300, (GLfloat) 0.333330,
-       (GLfloat) - 0.097545, (GLfloat) 0.842907, (GLfloat) 0.333330,
-       (GLfloat) - 0.191342, (GLfloat) 0.871360, (GLfloat) 0.333330,
-       (GLfloat) - 0.277785, (GLfloat) 0.917565, (GLfloat) 0.333330,
-       (GLfloat) - 0.353553, (GLfloat) 0.979747, (GLfloat) 0.333330,
-       (GLfloat) - 0.415735, (GLfloat) 1.055515, (GLfloat) 0.333330,
-       (GLfloat) - 0.461940, (GLfloat) 1.141958, (GLfloat) 0.333330,
-       (GLfloat) - 0.490393, (GLfloat) 1.235755, (GLfloat) 0.333330,
-       (GLfloat) - 0.500000, (GLfloat) 1.333300, (GLfloat) 0.333330,
-       (GLfloat) - 0.490393, (GLfloat) 1.430845, (GLfloat) 0.333330,
-       (GLfloat) - 0.461940, (GLfloat) 1.524642, (GLfloat) 0.333330,
-       (GLfloat) - 0.415735, (GLfloat) 1.611085, (GLfloat) 0.333330,
-       (GLfloat) - 0.353553, (GLfloat) 1.686853, (GLfloat) 0.333330,
-       (GLfloat) - 0.277785, (GLfloat) 1.749035, (GLfloat) 0.333330,
-       (GLfloat) - 0.191342, (GLfloat) 1.795240, (GLfloat) 0.333330,
-       (GLfloat) - 0.097545, (GLfloat) 1.823693, (GLfloat) 0.333330,
-       (GLfloat) 0.000000, (GLfloat) 1.833300, (GLfloat) - 0.333330,
-       (GLfloat) 0.097545, (GLfloat) 1.823693, (GLfloat) - 0.333330,
-       (GLfloat) 0.191342, (GLfloat) 1.795240, (GLfloat) - 0.333330,
-       (GLfloat) 0.277785, (GLfloat) 1.749035, (GLfloat) - 0.333330,
-       (GLfloat) 0.353553, (GLfloat) 1.686853, (GLfloat) - 0.333330,
-       (GLfloat) 0.415735, (GLfloat) 1.611085, (GLfloat) - 0.333330,
-       (GLfloat) 0.461940, (GLfloat) 1.524642, (GLfloat) - 0.333330,
-       (GLfloat) 0.490393, (GLfloat) 1.430845, (GLfloat) - 0.333330,
-       (GLfloat) 0.500000, (GLfloat) 1.333300, (GLfloat) - 0.333330,
-       (GLfloat) 0.490393, (GLfloat) 1.235755, (GLfloat) - 0.333330,
-       (GLfloat) 0.461940, (GLfloat) 1.141958, (GLfloat) - 0.333330,
-       (GLfloat) 0.415735, (GLfloat) 1.055515, (GLfloat) - 0.333330,
-       (GLfloat) 0.353553, (GLfloat) 0.979747, (GLfloat) - 0.333330,
-       (GLfloat) 0.277785, (GLfloat) 0.917565, (GLfloat) - 0.333330,
-       (GLfloat) 0.191342, (GLfloat) 0.871360, (GLfloat) - 0.333330,
-       (GLfloat) 0.097545, (GLfloat) 0.842907, (GLfloat) - 0.333330,
-       (GLfloat) 0.000000, (GLfloat) 0.833300, (GLfloat) - 0.333330,
-       (GLfloat) - 0.097545, (GLfloat) 0.842907, (GLfloat) - 0.333330,
-       (GLfloat) - 0.191342, (GLfloat) 0.871360, (GLfloat) - 0.333330,
-       (GLfloat) - 0.277785, (GLfloat) 0.917565, (GLfloat) - 0.333330,
-       (GLfloat) - 0.353553, (GLfloat) 0.979747, (GLfloat) - 0.333330,
-       (GLfloat) - 0.415735, (GLfloat) 1.055515, (GLfloat) - 0.333330,
-       (GLfloat) - 0.461940, (GLfloat) 1.141958, (GLfloat) - 0.333330,
-       (GLfloat) - 0.490393, (GLfloat) 1.235755, (GLfloat) - 0.333330,
-       (GLfloat) - 0.500000, (GLfloat) 1.333300, (GLfloat) - 0.333330,
-       (GLfloat) - 0.490393, (GLfloat) 1.430845, (GLfloat) - 0.333330,
-       (GLfloat) - 0.461940, (GLfloat) 1.524642, (GLfloat) - 0.333330,
-       (GLfloat) - 0.415735, (GLfloat) 1.611085, (GLfloat) - 0.333330,
-       (GLfloat) - 0.353553, (GLfloat) 1.686853, (GLfloat) - 0.333330,
-       (GLfloat) - 0.277785, (GLfloat) 1.749035, (GLfloat) - 0.333330,
-       (GLfloat) - 0.191342, (GLfloat) 1.795240, (GLfloat) - 0.333330,
-       (GLfloat) - 0.097545, (GLfloat) 1.823693, (GLfloat) - 0.333330,
-       (GLfloat) 0.087791, (GLfloat) 1.774653, (GLfloat) 0.333330,
-       (GLfloat) 0.000000, (GLfloat) 1.783300, (GLfloat) 0.333330,
-       (GLfloat) 0.172208, (GLfloat) 1.749046, (GLfloat) 0.333330,
-       (GLfloat) 0.250007, (GLfloat) 1.707461, (GLfloat) 0.333330,
-       (GLfloat) 0.318198, (GLfloat) 1.651498, (GLfloat) 0.333330,
-       (GLfloat) 0.374161, (GLfloat) 1.583307, (GLfloat) 0.333330,
-       (GLfloat) 0.415746, (GLfloat) 1.505508, (GLfloat) 0.333330,
-       (GLfloat) 0.441353, (GLfloat) 1.421091, (GLfloat) 0.333330,
-       (GLfloat) 0.450000, (GLfloat) 1.333300, (GLfloat) 0.333330,
-       (GLfloat) 0.441353, (GLfloat) 1.245509, (GLfloat) 0.333330,
-       (GLfloat) 0.415746, (GLfloat) 1.161092, (GLfloat) 0.333330,
-       (GLfloat) 0.374161, (GLfloat) 1.083293, (GLfloat) 0.333330,
-       (GLfloat) 0.318198, (GLfloat) 1.015102, (GLfloat) 0.333330,
-       (GLfloat) 0.250007, (GLfloat) 0.959139, (GLfloat) 0.333330,
-       (GLfloat) 0.172208, (GLfloat) 0.917554, (GLfloat) 0.333330,
-       (GLfloat) 0.087791, (GLfloat) 0.891947, (GLfloat) 0.333330,
-       (GLfloat) 0.000000, (GLfloat) 0.883300, (GLfloat) 0.333330,
-       (GLfloat) - 0.087791, (GLfloat) 0.891947, (GLfloat) 0.333330,
-       (GLfloat) - 0.172208, (GLfloat) 0.917554, (GLfloat) 0.333330,
-       (GLfloat) - 0.250007, (GLfloat) 0.959139, (GLfloat) 0.333330,
-       (GLfloat) - 0.318198, (GLfloat) 1.015102, (GLfloat) 0.333330,
-       (GLfloat) - 0.374161, (GLfloat) 1.083293, (GLfloat) 0.333330,
-       (GLfloat) - 0.415746, (GLfloat) 1.161092, (GLfloat) 0.333330,
-       (GLfloat) - 0.441353, (GLfloat) 1.245509, (GLfloat) 0.333330,
-       (GLfloat) - 0.450000, (GLfloat) 1.333300, (GLfloat) 0.333330,
-       (GLfloat) - 0.441353, (GLfloat) 1.421091, (GLfloat) 0.333330,
-       (GLfloat) - 0.415746, (GLfloat) 1.505508, (GLfloat) 0.333330,
-       (GLfloat) - 0.374161, (GLfloat) 1.583307, (GLfloat) 0.333330,
-       (GLfloat) - 0.318198, (GLfloat) 1.651498, (GLfloat) 0.333330,
-       (GLfloat) - 0.250007, (GLfloat) 1.707461, (GLfloat) 0.333330,
-       (GLfloat) - 0.172208, (GLfloat) 1.749046, (GLfloat) 0.333330,
-       (GLfloat) - 0.087791, (GLfloat) 1.774653, (GLfloat) 0.333330,
-       (GLfloat) 0.000000, (GLfloat) 1.783300, (GLfloat) 0.200000,
-       (GLfloat) - 0.087791, (GLfloat) 1.774653, (GLfloat) 0.200000,
-       (GLfloat) - 0.172208, (GLfloat) 1.749046, (GLfloat) 0.200000,
-       (GLfloat) - 0.250007, (GLfloat) 1.707461, (GLfloat) 0.200000,
-       (GLfloat) - 0.318198, (GLfloat) 1.651498, (GLfloat) 0.200000,
-       (GLfloat) - 0.374161, (GLfloat) 1.583307, (GLfloat) 0.200000,
-       (GLfloat) - 0.415746, (GLfloat) 1.505508, (GLfloat) 0.200000,
-       (GLfloat) - 0.441353, (GLfloat) 1.421091, (GLfloat) 0.200000,
-       (GLfloat) - 0.450000, (GLfloat) 1.333300, (GLfloat) 0.200000,
-       (GLfloat) - 0.441353, (GLfloat) 1.245509, (GLfloat) 0.200000,
-       (GLfloat) - 0.415746, (GLfloat) 1.161092, (GLfloat) 0.200000,
-       (GLfloat) - 0.374161, (GLfloat) 1.083293, (GLfloat) 0.200000,
-       (GLfloat) - 0.318198, (GLfloat) 1.015102, (GLfloat) 0.200000,
-       (GLfloat) - 0.250007, (GLfloat) 0.959139, (GLfloat) 0.200000,
-       (GLfloat) - 0.172208, (GLfloat) 0.917554, (GLfloat) 0.200000,
-       (GLfloat) - 0.087791, (GLfloat) 0.891947, (GLfloat) 0.200000,
-       (GLfloat) 0.000000, (GLfloat) 0.883300, (GLfloat) 0.200000,
-       (GLfloat) 0.087791, (GLfloat) 0.891947, (GLfloat) 0.200000,
-       (GLfloat) 0.172208, (GLfloat) 0.917554, (GLfloat) 0.200000,
-       (GLfloat) 0.250007, (GLfloat) 0.959139, (GLfloat) 0.200000,
-       (GLfloat) 0.318198, (GLfloat) 1.015102, (GLfloat) 0.200000,
-       (GLfloat) 0.374161, (GLfloat) 1.083293, (GLfloat) 0.200000,
-       (GLfloat) 0.415746, (GLfloat) 1.161092, (GLfloat) 0.200000,
-       (GLfloat) 0.441353, (GLfloat) 1.245509, (GLfloat) 0.200000,
-       (GLfloat) 0.450000, (GLfloat) 1.333300, (GLfloat) 0.200000,
-       (GLfloat) 0.441353, (GLfloat) 1.421091, (GLfloat) 0.200000,
-       (GLfloat) 0.415746, (GLfloat) 1.505508, (GLfloat) 0.200000,
-       (GLfloat) 0.374161, (GLfloat) 1.583307, (GLfloat) 0.200000,
-       (GLfloat) 0.318198, (GLfloat) 1.651498, (GLfloat) 0.200000,
-       (GLfloat) 0.250007, (GLfloat) 1.707461, (GLfloat) 0.200000,
-       (GLfloat) 0.172208, (GLfloat) 1.749046, (GLfloat) 0.200000,
-       (GLfloat) 0.087791, (GLfloat) 1.774653, (GLfloat) 0.200000,
+       0, 1.8333, 0.33333,
+       0.097545, 1.823693, 0.33333,
+       0.191342, 1.79524, 0.33333,
+       0.277785, 1.749035, 0.33333,
+       0.353553, 1.686853, 0.33333,
+       0.415735, 1.611085, 0.33333,
+       0.46194, 1.524642, 0.33333,
+       0.490393, 1.430845, 0.33333,
+       0.5, 1.3333, 0.33333,
+       0.490393, 1.235755, 0.33333,
+       0.46194, 1.141958, 0.33333,
+       0.415735, 1.055515, 0.33333,
+       0.353553, 0.979747, 0.33333,
+       0.277785, 0.917565, 0.33333,
+       0.191342, 0.87136, 0.33333,
+       0.097545, 0.842907, 0.33333,
+       0, 0.8333, 0.33333,
+       -0.097545, 0.842907, 0.33333,
+       -0.191342, 0.87136, 0.33333,
+       -0.277785, 0.917565, 0.33333,
+       -0.353553, 0.979747, 0.33333,
+       -0.415735, 1.055515, 0.33333,
+       -0.46194, 1.141958, 0.33333,
+       -0.490393, 1.235755, 0.33333,
+       -0.5, 1.3333, 0.33333,
+       -0.490393, 1.430845, 0.33333,
+       -0.46194, 1.524642, 0.33333,
+       -0.415735, 1.611085, 0.33333,
+       -0.353553, 1.686853, 0.33333,
+       -0.277785, 1.749035, 0.33333,
+       -0.191342, 1.79524, 0.33333,
+       -0.097545, 1.823693, 0.33333,
+       0, 1.8333, -0.33333,
+       0.097545, 1.823693, -0.33333,
+       0.191342, 1.79524, -0.33333,
+       0.277785, 1.749035, -0.33333,
+       0.353553, 1.686853, -0.33333,
+       0.415735, 1.611085, -0.33333,
+       0.46194, 1.524642, -0.33333,
+       0.490393, 1.430845, -0.33333,
+       0.5, 1.3333, -0.33333,
+       0.490393, 1.235755, -0.33333,
+       0.46194, 1.141958, -0.33333,
+       0.415735, 1.055515, -0.33333,
+       0.353553, 0.979747, -0.33333,
+       0.277785, 0.917565, -0.33333,
+       0.191342, 0.87136, -0.33333,
+       0.097545, 0.842907, -0.33333,
+       0, 0.8333, -0.33333,
+       -0.097545, 0.842907, -0.33333,
+       -0.191342, 0.87136, -0.33333,
+       -0.277785, 0.917565, -0.33333,
+       -0.353553, 0.979747, -0.33333,
+       -0.415735, 1.055515, -0.33333,
+       -0.46194, 1.141958, -0.33333,
+       -0.490393, 1.235755, -0.33333,
+       -0.5, 1.3333, -0.33333,
+       -0.490393, 1.430845, -0.33333,
+       -0.46194, 1.524642, -0.33333,
+       -0.415735, 1.611085, -0.33333,
+       -0.353553, 1.686853, -0.33333,
+       -0.277785, 1.749035, -0.33333,
+       -0.191342, 1.79524, -0.33333,
+       -0.097545, 1.823693, -0.33333,
+       0.087791, 1.774653, 0.33333,
+       0, 1.7833, 0.33333,
+       0.172208, 1.749046, 0.33333,
+       0.250007, 1.707461, 0.33333,
+       0.318198, 1.651498, 0.33333,
+       0.374161, 1.583307, 0.33333,
+       0.415746, 1.505508, 0.33333,
+       0.441353, 1.421091, 0.33333,
+       0.45, 1.3333, 0.33333,
+       0.441353, 1.245509, 0.33333,
+       0.415746, 1.161092, 0.33333,
+       0.374161, 1.083293, 0.33333,
+       0.318198, 1.015102, 0.33333,
+       0.250007, 0.959139, 0.33333,
+       0.172208, 0.917554, 0.33333,
+       0.087791, 0.891947, 0.33333,
+       0, 0.8833, 0.33333,
+       -0.087791, 0.891947, 0.33333,
+       -0.172208, 0.917554, 0.33333,
+       -0.250007, 0.959139, 0.33333,
+       -0.318198, 1.015102, 0.33333,
+       -0.374161, 1.083293, 0.33333,
+       -0.415746, 1.161092, 0.33333,
+       -0.441353, 1.245509, 0.33333,
+       -0.45, 1.3333, 0.33333,
+       -0.441353, 1.421091, 0.33333,
+       -0.415746, 1.505508, 0.33333,
+       -0.374161, 1.583307, 0.33333,
+       -0.318198, 1.651498, 0.33333,
+       -0.250007, 1.707461, 0.33333,
+       -0.172208, 1.749046, 0.33333,
+       -0.087791, 1.774653, 0.33333,
+       0, 1.7833, 0.2,
+       -0.087791, 1.774653, 0.2,
+       -0.172208, 1.749046, 0.2,
+       -0.250007, 1.707461, 0.2,
+       -0.318198, 1.651498, 0.2,
+       -0.374161, 1.583307, 0.2,
+       -0.415746, 1.505508, 0.2,
+       -0.441353, 1.421091, 0.2,
+       -0.45, 1.3333, 0.2,
+       -0.441353, 1.245509, 0.2,
+       -0.415746, 1.161092, 0.2,
+       -0.374161, 1.083293, 0.2,
+       -0.318198, 1.015102, 0.2,
+       -0.250007, 0.959139, 0.2,
+       -0.172208, 0.917554, 0.2,
+       -0.087791, 0.891947, 0.2,
+       0, 0.8833, 0.2,
+       0.087791, 0.891947, 0.2,
+       0.172208, 0.917554, 0.2,
+       0.250007, 0.959139, 0.2,
+       0.318198, 1.015102, 0.2,
+       0.374161, 1.083293, 0.2,
+       0.415746, 1.161092, 0.2,
+       0.441353, 1.245509, 0.2,
+       0.45, 1.3333, 0.2,
+       0.441353, 1.421091, 0.2,
+       0.415746, 1.505508, 0.2,
+       0.374161, 1.583307, 0.2,
+       0.318198, 1.651498, 0.2,
+       0.250007, 1.707461, 0.2,
+       0.172208, 1.749046, 0.2,
+       0.087791, 1.774653, 0.2,
 };
 
 static const GLfloat GuageHead_normals[] =
 {
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.098017, (GLfloat) - 0.995185, (GLfloat) - 0.000000,
-       (GLfloat) 0.290285, (GLfloat) - 0.956940, (GLfloat) - 0.000000,
-       (GLfloat) 0.471397, (GLfloat) - 0.881921, (GLfloat) - 0.000000,
-       (GLfloat) 0.634393, (GLfloat) - 0.773010, (GLfloat) - 0.000000,
-       (GLfloat) 0.773011, (GLfloat) - 0.634393, (GLfloat) - 0.000000,
-       (GLfloat) 0.881921, (GLfloat) - 0.471397, (GLfloat) - 0.000000,
-       (GLfloat) 0.956940, (GLfloat) - 0.290284, (GLfloat) - 0.000000,
-       (GLfloat) 0.995185, (GLfloat) - 0.098017, (GLfloat) - 0.000000,
-       (GLfloat) 0.995185, (GLfloat) 0.098017, (GLfloat) 0.000000,
-       (GLfloat) 0.956940, (GLfloat) 0.290284, (GLfloat) 0.000000,
-       (GLfloat) 0.881921, (GLfloat) 0.471397, (GLfloat) 0.000000,
-       (GLfloat) 0.773011, (GLfloat) 0.634393, (GLfloat) 0.000000,
-       (GLfloat) 0.634393, (GLfloat) 0.773011, (GLfloat) 0.000000,
-       (GLfloat) 0.471397, (GLfloat) 0.881921, (GLfloat) 0.000000,
-       (GLfloat) 0.290285, (GLfloat) 0.956940, (GLfloat) 0.000000,
-       (GLfloat) 0.098017, (GLfloat) 0.995185, (GLfloat) 0.000000,
-       (GLfloat) - 0.098017, (GLfloat) 0.995185, (GLfloat) - 0.000000,
-       (GLfloat) - 0.290285, (GLfloat) 0.956940, (GLfloat) - 0.000000,
-       (GLfloat) - 0.471397, (GLfloat) 0.881921, (GLfloat) - 0.000000,
-       (GLfloat) - 0.634393, (GLfloat) 0.773011, (GLfloat) - 0.000000,
-       (GLfloat) - 0.773011, (GLfloat) 0.634393, (GLfloat) - 0.000000,
-       (GLfloat) - 0.881921, (GLfloat) 0.471397, (GLfloat) - 0.000000,
-       (GLfloat) - 0.956940, (GLfloat) 0.290284, (GLfloat) - 0.000000,
-       (GLfloat) - 0.995185, (GLfloat) 0.098017, (GLfloat) - 0.000000,
-       (GLfloat) - 0.995185, (GLfloat) - 0.098017, (GLfloat) - 0.000000,
-       (GLfloat) - 0.956940, (GLfloat) - 0.290284, (GLfloat) - 0.000000,
-       (GLfloat) - 0.881921, (GLfloat) - 0.471397, (GLfloat) - 0.000000,
-       (GLfloat) - 0.773011, (GLfloat) - 0.634393, (GLfloat) - 0.000000,
-       (GLfloat) - 0.634393, (GLfloat) - 0.773010, (GLfloat) - 0.000000,
-       (GLfloat) - 0.471397, (GLfloat) - 0.881921, (GLfloat) - 0.000000,
-       (GLfloat) - 0.290285, (GLfloat) - 0.956940, (GLfloat) - 0.000000,
-       (GLfloat) - 0.098017, (GLfloat) - 0.995185, (GLfloat) - 0.000000,
-       (GLfloat) 0.098017, (GLfloat) 0.995185, (GLfloat) 0.000000,
-       (GLfloat) 0.290285, (GLfloat) 0.956940, (GLfloat) 0.000000,
-       (GLfloat) 0.471397, (GLfloat) 0.881921, (GLfloat) 0.000000,
-       (GLfloat) 0.634393, (GLfloat) 0.773011, (GLfloat) 0.000000,
-       (GLfloat) 0.773011, (GLfloat) 0.634393, (GLfloat) 0.000000,
-       (GLfloat) 0.881921, (GLfloat) 0.471397, (GLfloat) 0.000000,
-       (GLfloat) 0.956940, (GLfloat) 0.290284, (GLfloat) 0.000000,
-       (GLfloat) 0.995185, (GLfloat) 0.098017, (GLfloat) 0.000000,
-       (GLfloat) 0.995185, (GLfloat) - 0.098017, (GLfloat) - 0.000000,
-       (GLfloat) 0.956940, (GLfloat) - 0.290284, (GLfloat) - 0.000000,
-       (GLfloat) 0.881921, (GLfloat) - 0.471397, (GLfloat) - 0.000000,
-       (GLfloat) 0.773011, (GLfloat) - 0.634393, (GLfloat) - 0.000000,
-       (GLfloat) 0.634393, (GLfloat) - 0.773010, (GLfloat) - 0.000000,
-       (GLfloat) 0.471396, (GLfloat) - 0.881921, (GLfloat) - 0.000000,
-       (GLfloat) 0.290285, (GLfloat) - 0.956940, (GLfloat) - 0.000000,
-       (GLfloat) 0.098017, (GLfloat) - 0.995185, (GLfloat) - 0.000000,
-       (GLfloat) - 0.098017, (GLfloat) - 0.995185, (GLfloat) - 0.000000,
-       (GLfloat) - 0.290285, (GLfloat) - 0.956940, (GLfloat) - 0.000000,
-       (GLfloat) - 0.471396, (GLfloat) - 0.881921, (GLfloat) - 0.000000,
-       (GLfloat) - 0.634393, (GLfloat) - 0.773010, (GLfloat) - 0.000000,
-       (GLfloat) - 0.773011, (GLfloat) - 0.634393, (GLfloat) - 0.000000,
-       (GLfloat) - 0.881921, (GLfloat) - 0.471397, (GLfloat) - 0.000000,
-       (GLfloat) - 0.956940, (GLfloat) - 0.290284, (GLfloat) - 0.000000,
-       (GLfloat) - 0.995185, (GLfloat) - 0.098017, (GLfloat) - 0.000000,
-       (GLfloat) - 0.995185, (GLfloat) 0.098017, (GLfloat) - 0.000000,
-       (GLfloat) - 0.956940, (GLfloat) 0.290284, (GLfloat) - 0.000000,
-       (GLfloat) - 0.881921, (GLfloat) 0.471397, (GLfloat) - 0.000000,
-       (GLfloat) - 0.773011, (GLfloat) 0.634393, (GLfloat) - 0.000000,
-       (GLfloat) - 0.634393, (GLfloat) 0.773011, (GLfloat) - 0.000000,
-       (GLfloat) - 0.471397, (GLfloat) 0.881921, (GLfloat) - 0.000000,
-       (GLfloat) - 0.290285, (GLfloat) 0.956940, (GLfloat) - 0.000000,
-       (GLfloat) - 0.098017, (GLfloat) 0.995185, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0, 0, 1,
+       0.098017, -0.995185, 0,
+       0.290285, -0.95694, 0,
+       0.471397, -0.881921, 0,
+       0.634393, -0.77301, 0,
+       0.773011, -0.634393, 0,
+       0.881921, -0.471397, 0,
+       0.95694, -0.290284, 0,
+       0.995185, -0.098017, 0,
+       0.995185, 0.098017, 0,
+       0.95694, 0.290284, 0,
+       0.881921, 0.471397, 0,
+       0.773011, 0.634393, 0,
+       0.634393, 0.773011, 0,
+       0.471397, 0.881921, 0,
+       0.290285, 0.95694, 0,
+       0.098017, 0.995185, 0,
+       -0.098017, 0.995185, 0,
+       -0.290285, 0.95694, 0,
+       -0.471397, 0.881921, 0,
+       -0.634393, 0.773011, 0,
+       -0.773011, 0.634393, 0,
+       -0.881921, 0.471397, 0,
+       -0.95694, 0.290284, 0,
+       -0.995185, 0.098017, 0,
+       -0.995185, -0.098017, 0,
+       -0.95694, -0.290284, 0,
+       -0.881921, -0.471397, 0,
+       -0.773011, -0.634393, 0,
+       -0.634393, -0.77301, 0,
+       -0.471397, -0.881921, 0,
+       -0.290285, -0.95694, 0,
+       -0.098017, -0.995185, 0,
+       0.098017, 0.995185, 0,
+       0.290285, 0.95694, 0,
+       0.471397, 0.881921, 0,
+       0.634393, 0.773011, 0,
+       0.773011, 0.634393, 0,
+       0.881921, 0.471397, 0,
+       0.95694, 0.290284, 0,
+       0.995185, 0.098017, 0,
+       0.995185, -0.098017, 0,
+       0.95694, -0.290284, 0,
+       0.881921, -0.471397, 0,
+       0.773011, -0.634393, 0,
+       0.634393, -0.77301, 0,
+       0.471396, -0.881921, 0,
+       0.290285, -0.95694, 0,
+       0.098017, -0.995185, 0,
+       -0.098017, -0.995185, 0,
+       -0.290285, -0.95694, 0,
+       -0.471396, -0.881921, 0,
+       -0.634393, -0.77301, 0,
+       -0.773011, -0.634393, 0,
+       -0.881921, -0.471397, 0,
+       -0.95694, -0.290284, 0,
+       -0.995185, -0.098017, 0,
+       -0.995185, 0.098017, 0,
+       -0.95694, 0.290284, 0,
+       -0.881921, 0.471397, 0,
+       -0.773011, 0.634393, 0,
+       -0.634393, 0.773011, 0,
+       -0.471397, 0.881921, 0,
+       -0.290285, 0.95694, 0,
+       -0.098017, 0.995185, 0,
+       0, 0, -1,
 };
 
 static const unsigned short int GuageHead_POLS[] =
@@ -2353,84 +2353,84 @@ struct lwo  LWO_GuageHead =
 
 static const GLfloat PipeBetweenBolts_PNTS[] =
 {
-       (GLfloat) 0.000000, (GLfloat) 0.500000, (GLfloat) 0.500000,
-       (GLfloat) 0.129410, (GLfloat) 0.482963, (GLfloat) 0.500000,
-       (GLfloat) 0.250000, (GLfloat) 0.433013, (GLfloat) 0.500000,
-       (GLfloat) 0.353553, (GLfloat) 0.353553, (GLfloat) 0.500000,
-       (GLfloat) 0.433013, (GLfloat) 0.250000, (GLfloat) 0.500000,
-       (GLfloat) 0.482963, (GLfloat) 0.129410, (GLfloat) 0.500000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.500000,
-       (GLfloat) 0.482963, (GLfloat) - 0.129410, (GLfloat) 0.500000,
-       (GLfloat) 0.433013, (GLfloat) - 0.250000, (GLfloat) 0.500000,
-       (GLfloat) 0.353553, (GLfloat) - 0.353553, (GLfloat) 0.500000,
-       (GLfloat) 0.250000, (GLfloat) - 0.433013, (GLfloat) 0.500000,
-       (GLfloat) 0.129410, (GLfloat) - 0.482963, (GLfloat) 0.500000,
-       (GLfloat) 0.000000, (GLfloat) - 0.500000, (GLfloat) 0.500000,
-       (GLfloat) - 0.129410, (GLfloat) - 0.482963, (GLfloat) 0.500000,
-       (GLfloat) - 0.250000, (GLfloat) - 0.433013, (GLfloat) 0.500000,
-       (GLfloat) - 0.353553, (GLfloat) - 0.353553, (GLfloat) 0.500000,
-       (GLfloat) - 0.433013, (GLfloat) - 0.250000, (GLfloat) 0.500000,
-       (GLfloat) - 0.482963, (GLfloat) - 0.129410, (GLfloat) 0.500000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) 0.500000,
-       (GLfloat) - 0.482963, (GLfloat) 0.129410, (GLfloat) 0.500000,
-       (GLfloat) - 0.433013, (GLfloat) 0.250000, (GLfloat) 0.500000,
-       (GLfloat) - 0.353553, (GLfloat) 0.353553, (GLfloat) 0.500000,
-       (GLfloat) - 0.250000, (GLfloat) 0.433013, (GLfloat) 0.500000,
-       (GLfloat) - 0.129410, (GLfloat) 0.482963, (GLfloat) 0.500000,
-       (GLfloat) 0.000000, (GLfloat) 0.500000, (GLfloat) - 0.500000,
-       (GLfloat) 0.129410, (GLfloat) 0.482963, (GLfloat) - 0.500000,
-       (GLfloat) 0.250000, (GLfloat) 0.433013, (GLfloat) - 0.500000,
-       (GLfloat) 0.353553, (GLfloat) 0.353553, (GLfloat) - 0.500000,
-       (GLfloat) 0.433013, (GLfloat) 0.250000, (GLfloat) - 0.500000,
-       (GLfloat) 0.482963, (GLfloat) 0.129410, (GLfloat) - 0.500000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.500000,
-       (GLfloat) 0.482963, (GLfloat) - 0.129410, (GLfloat) - 0.500000,
-       (GLfloat) 0.433013, (GLfloat) - 0.250000, (GLfloat) - 0.500000,
-       (GLfloat) 0.353553, (GLfloat) - 0.353553, (GLfloat) - 0.500000,
-       (GLfloat) 0.250000, (GLfloat) - 0.433013, (GLfloat) - 0.500000,
-       (GLfloat) 0.129410, (GLfloat) - 0.482963, (GLfloat) - 0.500000,
-       (GLfloat) 0.000000, (GLfloat) - 0.500000, (GLfloat) - 0.500000,
-       (GLfloat) - 0.129410, (GLfloat) - 0.482963, (GLfloat) - 0.500000,
-       (GLfloat) - 0.250000, (GLfloat) - 0.433013, (GLfloat) - 0.500000,
-       (GLfloat) - 0.353553, (GLfloat) - 0.353553, (GLfloat) - 0.500000,
-       (GLfloat) - 0.433013, (GLfloat) - 0.250000, (GLfloat) - 0.500000,
-       (GLfloat) - 0.482963, (GLfloat) - 0.129410, (GLfloat) - 0.500000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.500000,
-       (GLfloat) - 0.482963, (GLfloat) 0.129410, (GLfloat) - 0.500000,
-       (GLfloat) - 0.433013, (GLfloat) 0.250000, (GLfloat) - 0.500000,
-       (GLfloat) - 0.353553, (GLfloat) 0.353553, (GLfloat) - 0.500000,
-       (GLfloat) - 0.250000, (GLfloat) 0.433013, (GLfloat) - 0.500000,
-       (GLfloat) - 0.129410, (GLfloat) 0.482963, (GLfloat) - 0.500000,
+       0, 0.5, 0.5,
+       0.12941, 0.482963, 0.5,
+       0.25, 0.433013, 0.5,
+       0.353553, 0.353553, 0.5,
+       0.433013, 0.25, 0.5,
+       0.482963, 0.12941, 0.5,
+       0.5, 0, 0.5,
+       0.482963, -0.12941, 0.5,
+       0.433013, -0.25, 0.5,
+       0.353553, -0.353553, 0.5,
+       0.25, -0.433013, 0.5,
+       0.12941, -0.482963, 0.5,
+       0, -0.5, 0.5,
+       -0.12941, -0.482963, 0.5,
+       -0.25, -0.433013, 0.5,
+       -0.353553, -0.353553, 0.5,
+       -0.433013, -0.25, 0.5,
+       -0.482963, -0.12941, 0.5,
+       -0.5, 0, 0.5,
+       -0.482963, 0.12941, 0.5,
+       -0.433013, 0.25, 0.5,
+       -0.353553, 0.353553, 0.5,
+       -0.25, 0.433013, 0.5,
+       -0.12941, 0.482963, 0.5,
+       0, 0.5, -0.5,
+       0.12941, 0.482963, -0.5,
+       0.25, 0.433013, -0.5,
+       0.353553, 0.353553, -0.5,
+       0.433013, 0.25, -0.5,
+       0.482963, 0.12941, -0.5,
+       0.5, 0, -0.5,
+       0.482963, -0.12941, -0.5,
+       0.433013, -0.25, -0.5,
+       0.353553, -0.353553, -0.5,
+       0.25, -0.433013, -0.5,
+       0.12941, -0.482963, -0.5,
+       0, -0.5, -0.5,
+       -0.12941, -0.482963, -0.5,
+       -0.25, -0.433013, -0.5,
+       -0.353553, -0.353553, -0.5,
+       -0.433013, -0.25, -0.5,
+       -0.482963, -0.12941, -0.5,
+       -0.5, 0, -0.5,
+       -0.482963, 0.12941, -0.5,
+       -0.433013, 0.25, -0.5,
+       -0.353553, 0.353553, -0.5,
+       -0.25, 0.433013, -0.5,
+       -0.12941, 0.482963, -0.5,
 };
 
 static const GLfloat PipeBetweenBolts_normals[] =
 {
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.130526, (GLfloat) 0.991445, (GLfloat) 0.000000,
-       (GLfloat) 0.382683, (GLfloat) 0.923880, (GLfloat) 0.000000,
-       (GLfloat) 0.608761, (GLfloat) 0.793353, (GLfloat) 0.000000,
-       (GLfloat) 0.793353, (GLfloat) 0.608761, (GLfloat) 0.000000,
-       (GLfloat) 0.923880, (GLfloat) 0.382683, (GLfloat) 0.000000,
-       (GLfloat) 0.991445, (GLfloat) 0.130526, (GLfloat) 0.000000,
-       (GLfloat) 0.991445, (GLfloat) - 0.130526, (GLfloat) - 0.000000,
-       (GLfloat) 0.923880, (GLfloat) - 0.382683, (GLfloat) - 0.000000,
-       (GLfloat) 0.793353, (GLfloat) - 0.608761, (GLfloat) - 0.000000,
-       (GLfloat) 0.608761, (GLfloat) - 0.793353, (GLfloat) - 0.000000,
-       (GLfloat) 0.382683, (GLfloat) - 0.923880, (GLfloat) - 0.000000,
-       (GLfloat) 0.130526, (GLfloat) - 0.991445, (GLfloat) - 0.000000,
-       (GLfloat) - 0.130526, (GLfloat) - 0.991445, (GLfloat) - 0.000000,
-       (GLfloat) - 0.382683, (GLfloat) - 0.923880, (GLfloat) - 0.000000,
-       (GLfloat) - 0.608761, (GLfloat) - 0.793353, (GLfloat) - 0.000000,
-       (GLfloat) - 0.793353, (GLfloat) - 0.608761, (GLfloat) - 0.000000,
-       (GLfloat) - 0.923880, (GLfloat) - 0.382683, (GLfloat) - 0.000000,
-       (GLfloat) - 0.991445, (GLfloat) - 0.130526, (GLfloat) - 0.000000,
-       (GLfloat) - 0.991445, (GLfloat) 0.130526, (GLfloat) - 0.000000,
-       (GLfloat) - 0.923880, (GLfloat) 0.382683, (GLfloat) - 0.000000,
-       (GLfloat) - 0.793353, (GLfloat) 0.608761, (GLfloat) - 0.000000,
-       (GLfloat) - 0.608761, (GLfloat) 0.793353, (GLfloat) - 0.000000,
-       (GLfloat) - 0.382683, (GLfloat) 0.923880, (GLfloat) - 0.000000,
-       (GLfloat) - 0.130526, (GLfloat) 0.991445, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
+       0, 0, 1,
+       0.130526, 0.991445, 0,
+       0.382683, 0.92388, 0,
+       0.608761, 0.793353, 0,
+       0.793353, 0.608761, 0,
+       0.92388, 0.382683, 0,
+       0.991445, 0.130526, 0,
+       0.991445, -0.130526, 0,
+       0.92388, -0.382683, 0,
+       0.793353, -0.608761, 0,
+       0.608761, -0.793353, 0,
+       0.382683, -0.92388, 0,
+       0.130526, -0.991445, 0,
+       -0.130526, -0.991445, 0,
+       -0.382683, -0.92388, 0,
+       -0.608761, -0.793353, 0,
+       -0.793353, -0.608761, 0,
+       -0.92388, -0.382683, 0,
+       -0.991445, -0.130526, 0,
+       -0.991445, 0.130526, 0,
+       -0.92388, 0.382683, 0,
+       -0.793353, 0.608761, 0,
+       -0.608761, 0.793353, 0,
+       -0.382683, 0.92388, 0,
+       -0.130526, 0.991445, 0,
+       0, 0, -1,
 };
 
 static const unsigned short int PipeBetweenBolts_POLS[] =
@@ -2456,490 +2456,490 @@ struct lwo  LWO_PipeBetweenBolts =
 
 static const GLfloat ElbowBolts_PNTS[] =
 {
-       (GLfloat) 0.273122, (GLfloat) - 0.600000, (GLfloat) - 0.403061,
-       (GLfloat) 0.273122, (GLfloat) 0.403061, (GLfloat) - 0.600000,
-       (GLfloat) 0.273122, (GLfloat) 0.333061, (GLfloat) - 0.600000,
-       (GLfloat) 0.273122, (GLfloat) - 0.600000, (GLfloat) - 0.333061,
-       (GLfloat) 0.212500, (GLfloat) 0.298061, (GLfloat) - 0.600000,
-       (GLfloat) 0.212500, (GLfloat) - 0.600000, (GLfloat) - 0.298061,
-       (GLfloat) 0.151878, (GLfloat) 0.333061, (GLfloat) - 0.600000,
-       (GLfloat) 0.151878, (GLfloat) - 0.600000, (GLfloat) - 0.333061,
-       (GLfloat) 0.151878, (GLfloat) 0.403061, (GLfloat) - 0.600000,
-       (GLfloat) 0.151878, (GLfloat) - 0.600000, (GLfloat) - 0.403061,
-       (GLfloat) 0.212500, (GLfloat) - 0.600000, (GLfloat) - 0.438061,
-       (GLfloat) 0.212500, (GLfloat) 0.438061, (GLfloat) - 0.600000,
-       (GLfloat) 0.273122, (GLfloat) - 0.660000, (GLfloat) - 0.403061,
-       (GLfloat) 0.273122, (GLfloat) 0.403061, (GLfloat) - 0.660000,
-       (GLfloat) 0.273122, (GLfloat) - 0.660000, (GLfloat) - 0.333061,
-       (GLfloat) 0.273122, (GLfloat) 0.333061, (GLfloat) - 0.660000,
-       (GLfloat) 0.212500, (GLfloat) 0.298061, (GLfloat) - 0.660000,
-       (GLfloat) 0.212500, (GLfloat) - 0.660000, (GLfloat) - 0.298061,
-       (GLfloat) 0.151878, (GLfloat) - 0.660000, (GLfloat) - 0.333061,
-       (GLfloat) 0.151878, (GLfloat) 0.333061, (GLfloat) - 0.660000,
-       (GLfloat) 0.151878, (GLfloat) 0.403061, (GLfloat) - 0.660000,
-       (GLfloat) 0.151878, (GLfloat) - 0.660000, (GLfloat) - 0.403061,
-       (GLfloat) 0.212500, (GLfloat) - 0.660000, (GLfloat) - 0.438061,
-       (GLfloat) 0.212500, (GLfloat) 0.438061, (GLfloat) - 0.660000,
-       (GLfloat) 0.273122, (GLfloat) 0.403061, (GLfloat) - 0.460000,
-       (GLfloat) 0.273122, (GLfloat) - 0.460000, (GLfloat) - 0.403061,
-       (GLfloat) 0.273122, (GLfloat) 0.333061, (GLfloat) - 0.460000,
-       (GLfloat) 0.273122, (GLfloat) - 0.460000, (GLfloat) - 0.333061,
-       (GLfloat) 0.212500, (GLfloat) 0.298061, (GLfloat) - 0.460000,
-       (GLfloat) 0.212500, (GLfloat) - 0.460000, (GLfloat) - 0.298061,
-       (GLfloat) 0.151878, (GLfloat) 0.333061, (GLfloat) - 0.460000,
-       (GLfloat) 0.151878, (GLfloat) - 0.460000, (GLfloat) - 0.333061,
-       (GLfloat) 0.151878, (GLfloat) 0.403061, (GLfloat) - 0.460000,
-       (GLfloat) 0.151878, (GLfloat) - 0.460000, (GLfloat) - 0.403061,
-       (GLfloat) 0.212500, (GLfloat) - 0.460000, (GLfloat) - 0.438061,
-       (GLfloat) 0.212500, (GLfloat) 0.438061, (GLfloat) - 0.460000,
-       (GLfloat) 0.273122, (GLfloat) 0.403061, (GLfloat) - 0.520000,
-       (GLfloat) 0.273122, (GLfloat) - 0.520000, (GLfloat) - 0.403061,
-       (GLfloat) 0.273122, (GLfloat) - 0.520000, (GLfloat) - 0.333061,
-       (GLfloat) 0.273122, (GLfloat) 0.333061, (GLfloat) - 0.520000,
-       (GLfloat) 0.212500, (GLfloat) 0.298061, (GLfloat) - 0.520000,
-       (GLfloat) 0.212500, (GLfloat) - 0.520000, (GLfloat) - 0.298061,
-       (GLfloat) 0.151878, (GLfloat) 0.333061, (GLfloat) - 0.520000,
-       (GLfloat) 0.151878, (GLfloat) - 0.520000, (GLfloat) - 0.333061,
-       (GLfloat) 0.151878, (GLfloat) 0.403061, (GLfloat) - 0.520000,
-       (GLfloat) 0.151878, (GLfloat) - 0.520000, (GLfloat) - 0.403061,
-       (GLfloat) 0.212500, (GLfloat) - 0.520000, (GLfloat) - 0.438061,
-       (GLfloat) 0.212500, (GLfloat) 0.438061, (GLfloat) - 0.520000,
-       (GLfloat) 0.485622, (GLfloat) - 0.035000, (GLfloat) - 0.460000,
-       (GLfloat) 0.485622, (GLfloat) - 0.460000, (GLfloat) 0.035000,
-       (GLfloat) 0.425000, (GLfloat) - 0.070000, (GLfloat) - 0.460000,
-       (GLfloat) 0.425000, (GLfloat) - 0.460000, (GLfloat) 0.070000,
-       (GLfloat) 0.364378, (GLfloat) - 0.460000, (GLfloat) 0.035000,
-       (GLfloat) 0.364378, (GLfloat) - 0.035000, (GLfloat) - 0.460000,
-       (GLfloat) 0.364378, (GLfloat) 0.035000, (GLfloat) - 0.460000,
-       (GLfloat) 0.364378, (GLfloat) - 0.460000, (GLfloat) - 0.035000,
-       (GLfloat) 0.425000, (GLfloat) 0.070000, (GLfloat) - 0.460000,
-       (GLfloat) 0.425000, (GLfloat) - 0.460000, (GLfloat) - 0.070000,
-       (GLfloat) 0.485622, (GLfloat) 0.035000, (GLfloat) - 0.460000,
-       (GLfloat) 0.485622, (GLfloat) - 0.460000, (GLfloat) - 0.035000,
-       (GLfloat) 0.485622, (GLfloat) - 0.520000, (GLfloat) 0.035000,
-       (GLfloat) 0.485622, (GLfloat) - 0.035000, (GLfloat) - 0.520000,
-       (GLfloat) 0.425000, (GLfloat) - 0.070000, (GLfloat) - 0.520000,
-       (GLfloat) 0.425000, (GLfloat) - 0.520000, (GLfloat) 0.070000,
-       (GLfloat) 0.364378, (GLfloat) - 0.035000, (GLfloat) - 0.520000,
-       (GLfloat) 0.364378, (GLfloat) - 0.520000, (GLfloat) 0.035000,
-       (GLfloat) 0.364378, (GLfloat) - 0.520000, (GLfloat) - 0.035000,
-       (GLfloat) 0.364378, (GLfloat) 0.035000, (GLfloat) - 0.520000,
-       (GLfloat) 0.425000, (GLfloat) 0.070000, (GLfloat) - 0.520000,
-       (GLfloat) 0.425000, (GLfloat) - 0.520000, (GLfloat) - 0.070000,
-       (GLfloat) 0.485622, (GLfloat) 0.035000, (GLfloat) - 0.520000,
-       (GLfloat) 0.485622, (GLfloat) - 0.520000, (GLfloat) - 0.035000,
-       (GLfloat) 0.485622, (GLfloat) - 0.035000, (GLfloat) - 0.600000,
-       (GLfloat) 0.485622, (GLfloat) - 0.600000, (GLfloat) 0.035000,
-       (GLfloat) 0.425000, (GLfloat) - 0.600000, (GLfloat) 0.070000,
-       (GLfloat) 0.425000, (GLfloat) - 0.070000, (GLfloat) - 0.600000,
-       (GLfloat) 0.364378, (GLfloat) - 0.600000, (GLfloat) 0.035000,
-       (GLfloat) 0.364378, (GLfloat) - 0.035000, (GLfloat) - 0.600000,
-       (GLfloat) 0.364378, (GLfloat) 0.035000, (GLfloat) - 0.600000,
-       (GLfloat) 0.364378, (GLfloat) - 0.600000, (GLfloat) - 0.035000,
-       (GLfloat) 0.425000, (GLfloat) 0.070000, (GLfloat) - 0.600000,
-       (GLfloat) 0.425000, (GLfloat) - 0.600000, (GLfloat) - 0.070000,
-       (GLfloat) 0.485622, (GLfloat) - 0.600000, (GLfloat) - 0.035000,
-       (GLfloat) 0.485622, (GLfloat) 0.035000, (GLfloat) - 0.600000,
-       (GLfloat) 0.485622, (GLfloat) - 0.660000, (GLfloat) 0.035000,
-       (GLfloat) 0.485622, (GLfloat) - 0.035000, (GLfloat) - 0.660000,
-       (GLfloat) 0.425000, (GLfloat) - 0.660000, (GLfloat) 0.070000,
-       (GLfloat) 0.425000, (GLfloat) - 0.070000, (GLfloat) - 0.660000,
-       (GLfloat) 0.364378, (GLfloat) - 0.035000, (GLfloat) - 0.660000,
-       (GLfloat) 0.364378, (GLfloat) - 0.660000, (GLfloat) 0.035000,
-       (GLfloat) 0.364378, (GLfloat) - 0.660000, (GLfloat) - 0.035000,
-       (GLfloat) 0.364378, (GLfloat) 0.035000, (GLfloat) - 0.660000,
-       (GLfloat) 0.425000, (GLfloat) 0.070000, (GLfloat) - 0.660000,
-       (GLfloat) 0.425000, (GLfloat) - 0.660000, (GLfloat) - 0.070000,
-       (GLfloat) 0.485622, (GLfloat) - 0.660000, (GLfloat) - 0.035000,
-       (GLfloat) 0.485622, (GLfloat) 0.035000, (GLfloat) - 0.660000,
-       (GLfloat) 0.212500, (GLfloat) - 0.438061, (GLfloat) - 0.460000,
-       (GLfloat) 0.212500, (GLfloat) - 0.460000, (GLfloat) 0.438061,
-       (GLfloat) 0.151878, (GLfloat) - 0.403061, (GLfloat) - 0.460000,
-       (GLfloat) 0.151878, (GLfloat) - 0.460000, (GLfloat) 0.403061,
-       (GLfloat) 0.151878, (GLfloat) - 0.460000, (GLfloat) 0.333061,
-       (GLfloat) 0.151878, (GLfloat) - 0.333061, (GLfloat) - 0.460000,
-       (GLfloat) 0.212500, (GLfloat) - 0.460000, (GLfloat) 0.298061,
-       (GLfloat) 0.212500, (GLfloat) - 0.298061, (GLfloat) - 0.460000,
-       (GLfloat) 0.273122, (GLfloat) - 0.460000, (GLfloat) 0.333061,
-       (GLfloat) 0.273122, (GLfloat) - 0.333061, (GLfloat) - 0.460000,
-       (GLfloat) 0.273122, (GLfloat) - 0.403061, (GLfloat) - 0.460000,
-       (GLfloat) 0.273122, (GLfloat) - 0.460000, (GLfloat) 0.403061,
-       (GLfloat) 0.212500, (GLfloat) - 0.520000, (GLfloat) 0.438061,
-       (GLfloat) 0.212500, (GLfloat) - 0.438061, (GLfloat) - 0.520000,
-       (GLfloat) 0.151878, (GLfloat) - 0.403061, (GLfloat) - 0.520000,
-       (GLfloat) 0.151878, (GLfloat) - 0.520000, (GLfloat) 0.403061,
-       (GLfloat) 0.151878, (GLfloat) - 0.333061, (GLfloat) - 0.520000,
-       (GLfloat) 0.151878, (GLfloat) - 0.520000, (GLfloat) 0.333061,
-       (GLfloat) 0.212500, (GLfloat) - 0.298061, (GLfloat) - 0.520000,
-       (GLfloat) 0.212500, (GLfloat) - 0.520000, (GLfloat) 0.298061,
-       (GLfloat) 0.273122, (GLfloat) - 0.333061, (GLfloat) - 0.520000,
-       (GLfloat) 0.273122, (GLfloat) - 0.520000, (GLfloat) 0.333061,
-       (GLfloat) 0.273122, (GLfloat) - 0.403061, (GLfloat) - 0.520000,
-       (GLfloat) 0.273122, (GLfloat) - 0.520000, (GLfloat) 0.403061,
-       (GLfloat) 0.212500, (GLfloat) - 0.438061, (GLfloat) - 0.600000,
-       (GLfloat) 0.212500, (GLfloat) - 0.600000, (GLfloat) 0.438061,
-       (GLfloat) 0.151878, (GLfloat) - 0.403061, (GLfloat) - 0.600000,
-       (GLfloat) 0.151878, (GLfloat) - 0.600000, (GLfloat) 0.403061,
-       (GLfloat) 0.151878, (GLfloat) - 0.600000, (GLfloat) 0.333061,
-       (GLfloat) 0.151878, (GLfloat) - 0.333061, (GLfloat) - 0.600000,
-       (GLfloat) 0.212500, (GLfloat) - 0.298061, (GLfloat) - 0.600000,
-       (GLfloat) 0.212500, (GLfloat) - 0.600000, (GLfloat) 0.298061,
-       (GLfloat) 0.273122, (GLfloat) - 0.333061, (GLfloat) - 0.600000,
-       (GLfloat) 0.273122, (GLfloat) - 0.600000, (GLfloat) 0.333061,
-       (GLfloat) 0.273122, (GLfloat) - 0.600000, (GLfloat) 0.403061,
-       (GLfloat) 0.273122, (GLfloat) - 0.403061, (GLfloat) - 0.600000,
-       (GLfloat) 0.212500, (GLfloat) - 0.660000, (GLfloat) 0.438061,
-       (GLfloat) 0.212500, (GLfloat) - 0.438061, (GLfloat) - 0.660000,
-       (GLfloat) 0.151878, (GLfloat) - 0.403061, (GLfloat) - 0.660000,
-       (GLfloat) 0.151878, (GLfloat) - 0.660000, (GLfloat) 0.403061,
-       (GLfloat) 0.151878, (GLfloat) - 0.333061, (GLfloat) - 0.660000,
-       (GLfloat) 0.151878, (GLfloat) - 0.660000, (GLfloat) 0.333061,
-       (GLfloat) 0.212500, (GLfloat) - 0.660000, (GLfloat) 0.298061,
-       (GLfloat) 0.212500, (GLfloat) - 0.298061, (GLfloat) - 0.660000,
-       (GLfloat) 0.273122, (GLfloat) - 0.660000, (GLfloat) 0.333061,
-       (GLfloat) 0.273122, (GLfloat) - 0.333061, (GLfloat) - 0.660000,
-       (GLfloat) 0.273122, (GLfloat) - 0.660000, (GLfloat) 0.403061,
-       (GLfloat) 0.273122, (GLfloat) - 0.403061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.460000, (GLfloat) 0.403061,
-       (GLfloat) - 0.273122, (GLfloat) - 0.403061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.460000, (GLfloat) 0.333061,
-       (GLfloat) - 0.273122, (GLfloat) - 0.333061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.298061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.460000, (GLfloat) 0.298061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.333061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.460000, (GLfloat) 0.333061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.403061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.460000, (GLfloat) 0.403061,
-       (GLfloat) - 0.212500, (GLfloat) - 0.460000, (GLfloat) 0.438061,
-       (GLfloat) - 0.212500, (GLfloat) - 0.438061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.520000, (GLfloat) 0.403061,
-       (GLfloat) - 0.273122, (GLfloat) - 0.403061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.333061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.520000, (GLfloat) 0.333061,
-       (GLfloat) - 0.212500, (GLfloat) - 0.520000, (GLfloat) 0.298061,
-       (GLfloat) - 0.212500, (GLfloat) - 0.298061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.333061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.520000, (GLfloat) 0.333061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.520000, (GLfloat) 0.403061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.403061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.520000, (GLfloat) 0.438061,
-       (GLfloat) - 0.212500, (GLfloat) - 0.438061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.600000, (GLfloat) 0.403061,
-       (GLfloat) - 0.273122, (GLfloat) - 0.403061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.600000, (GLfloat) 0.333061,
-       (GLfloat) - 0.273122, (GLfloat) - 0.333061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.600000, (GLfloat) 0.298061,
-       (GLfloat) - 0.212500, (GLfloat) - 0.298061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.333061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.600000, (GLfloat) 0.333061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.600000, (GLfloat) 0.403061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.403061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.438061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.600000, (GLfloat) 0.438061,
-       (GLfloat) - 0.273122, (GLfloat) - 0.660000, (GLfloat) 0.403061,
-       (GLfloat) - 0.273122, (GLfloat) - 0.403061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.333061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.660000, (GLfloat) 0.333061,
-       (GLfloat) - 0.212500, (GLfloat) - 0.298061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.660000, (GLfloat) 0.298061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.660000, (GLfloat) 0.333061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.333061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.660000, (GLfloat) 0.403061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.403061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.438061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.660000, (GLfloat) 0.438061,
-       (GLfloat) - 0.485622, (GLfloat) - 0.460000, (GLfloat) - 0.035000,
-       (GLfloat) - 0.485622, (GLfloat) 0.035000, (GLfloat) - 0.460000,
-       (GLfloat) - 0.425000, (GLfloat) 0.070000, (GLfloat) - 0.460000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.460000, (GLfloat) - 0.070000,
-       (GLfloat) - 0.364378, (GLfloat) 0.035000, (GLfloat) - 0.460000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.460000, (GLfloat) - 0.035000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.460000, (GLfloat) 0.035000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.035000, (GLfloat) - 0.460000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.460000, (GLfloat) 0.070000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.070000, (GLfloat) - 0.460000,
-       (GLfloat) - 0.485622, (GLfloat) - 0.035000, (GLfloat) - 0.460000,
-       (GLfloat) - 0.485622, (GLfloat) - 0.460000, (GLfloat) 0.035000,
-       (GLfloat) - 0.485622, (GLfloat) - 0.520000, (GLfloat) - 0.035000,
-       (GLfloat) - 0.485622, (GLfloat) 0.035000, (GLfloat) - 0.520000,
-       (GLfloat) - 0.425000, (GLfloat) 0.070000, (GLfloat) - 0.520000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.520000, (GLfloat) - 0.070000,
-       (GLfloat) - 0.364378, (GLfloat) 0.035000, (GLfloat) - 0.520000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.520000, (GLfloat) - 0.035000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.035000, (GLfloat) - 0.520000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.520000, (GLfloat) 0.035000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.520000, (GLfloat) 0.070000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.070000, (GLfloat) - 0.520000,
-       (GLfloat) - 0.485622, (GLfloat) - 0.035000, (GLfloat) - 0.520000,
-       (GLfloat) - 0.485622, (GLfloat) - 0.520000, (GLfloat) 0.035000,
-       (GLfloat) - 0.485622, (GLfloat) 0.035000, (GLfloat) - 0.600000,
-       (GLfloat) - 0.485622, (GLfloat) - 0.600000, (GLfloat) - 0.035000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.600000, (GLfloat) - 0.070000,
-       (GLfloat) - 0.425000, (GLfloat) 0.070000, (GLfloat) - 0.600000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.600000, (GLfloat) - 0.035000,
-       (GLfloat) - 0.364378, (GLfloat) 0.035000, (GLfloat) - 0.600000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.600000, (GLfloat) 0.035000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.035000, (GLfloat) - 0.600000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.600000, (GLfloat) 0.070000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.070000, (GLfloat) - 0.600000,
-       (GLfloat) - 0.485622, (GLfloat) - 0.600000, (GLfloat) 0.035000,
-       (GLfloat) - 0.485622, (GLfloat) - 0.035000, (GLfloat) - 0.600000,
-       (GLfloat) - 0.485622, (GLfloat) - 0.660000, (GLfloat) - 0.035000,
-       (GLfloat) - 0.485622, (GLfloat) 0.035000, (GLfloat) - 0.660000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.660000, (GLfloat) - 0.070000,
-       (GLfloat) - 0.425000, (GLfloat) 0.070000, (GLfloat) - 0.660000,
-       (GLfloat) - 0.364378, (GLfloat) 0.035000, (GLfloat) - 0.660000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.660000, (GLfloat) - 0.035000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.660000, (GLfloat) 0.035000,
-       (GLfloat) - 0.364378, (GLfloat) - 0.035000, (GLfloat) - 0.660000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.070000, (GLfloat) - 0.660000,
-       (GLfloat) - 0.425000, (GLfloat) - 0.660000, (GLfloat) 0.070000,
-       (GLfloat) - 0.485622, (GLfloat) - 0.660000, (GLfloat) 0.035000,
-       (GLfloat) - 0.485622, (GLfloat) - 0.035000, (GLfloat) - 0.660000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.460000, (GLfloat) - 0.438061,
-       (GLfloat) - 0.212500, (GLfloat) 0.438061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.151878, (GLfloat) 0.403061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.460000, (GLfloat) - 0.403061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.460000, (GLfloat) - 0.333061,
-       (GLfloat) - 0.151878, (GLfloat) 0.333061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.212500, (GLfloat) 0.298061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.460000, (GLfloat) - 0.298061,
-       (GLfloat) - 0.273122, (GLfloat) 0.333061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.460000, (GLfloat) - 0.333061,
-       (GLfloat) - 0.273122, (GLfloat) - 0.460000, (GLfloat) - 0.403061,
-       (GLfloat) - 0.273122, (GLfloat) 0.403061, (GLfloat) - 0.460000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.520000, (GLfloat) - 0.438061,
-       (GLfloat) - 0.212500, (GLfloat) 0.438061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.151878, (GLfloat) 0.403061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.520000, (GLfloat) - 0.403061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.520000, (GLfloat) - 0.333061,
-       (GLfloat) - 0.151878, (GLfloat) 0.333061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.212500, (GLfloat) 0.298061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.520000, (GLfloat) - 0.298061,
-       (GLfloat) - 0.273122, (GLfloat) 0.333061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.520000, (GLfloat) - 0.333061,
-       (GLfloat) - 0.273122, (GLfloat) 0.403061, (GLfloat) - 0.520000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.520000, (GLfloat) - 0.403061,
-       (GLfloat) - 0.212500, (GLfloat) 0.438061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.600000, (GLfloat) - 0.438061,
-       (GLfloat) - 0.151878, (GLfloat) - 0.600000, (GLfloat) - 0.403061,
-       (GLfloat) - 0.151878, (GLfloat) 0.403061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.151878, (GLfloat) 0.333061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.600000, (GLfloat) - 0.333061,
-       (GLfloat) - 0.212500, (GLfloat) - 0.600000, (GLfloat) - 0.298061,
-       (GLfloat) - 0.212500, (GLfloat) 0.298061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.600000, (GLfloat) - 0.333061,
-       (GLfloat) - 0.273122, (GLfloat) 0.333061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.600000, (GLfloat) - 0.403061,
-       (GLfloat) - 0.273122, (GLfloat) 0.403061, (GLfloat) - 0.600000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.660000, (GLfloat) - 0.438061,
-       (GLfloat) - 0.212500, (GLfloat) 0.438061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.660000, (GLfloat) - 0.403061,
-       (GLfloat) - 0.151878, (GLfloat) 0.403061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.151878, (GLfloat) - 0.660000, (GLfloat) - 0.333061,
-       (GLfloat) - 0.151878, (GLfloat) 0.333061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.212500, (GLfloat) - 0.660000, (GLfloat) - 0.298061,
-       (GLfloat) - 0.212500, (GLfloat) 0.298061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.660000, (GLfloat) - 0.333061,
-       (GLfloat) - 0.273122, (GLfloat) 0.333061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.273122, (GLfloat) 0.403061, (GLfloat) - 0.660000,
-       (GLfloat) - 0.273122, (GLfloat) - 0.660000, (GLfloat) - 0.403061,
+       0.273122, -0.6, -0.403061,
+       0.273122, 0.403061, -0.6,
+       0.273122, 0.333061, -0.6,
+       0.273122, -0.6, -0.333061,
+       0.2125, 0.298061, -0.6,
+       0.2125, -0.6, -0.298061,
+       0.151878, 0.333061, -0.6,
+       0.151878, -0.6, -0.333061,
+       0.151878, 0.403061, -0.6,
+       0.151878, -0.6, -0.403061,
+       0.2125, -0.6, -0.438061,
+       0.2125, 0.438061, -0.6,
+       0.273122, -0.66, -0.403061,
+       0.273122, 0.403061, -0.66,
+       0.273122, -0.66, -0.333061,
+       0.273122, 0.333061, -0.66,
+       0.2125, 0.298061, -0.66,
+       0.2125, -0.66, -0.298061,
+       0.151878, -0.66, -0.333061,
+       0.151878, 0.333061, -0.66,
+       0.151878, 0.403061, -0.66,
+       0.151878, -0.66, -0.403061,
+       0.2125, -0.66, -0.438061,
+       0.2125, 0.438061, -0.66,
+       0.273122, 0.403061, -0.46,
+       0.273122, -0.46, -0.403061,
+       0.273122, 0.333061, -0.46,
+       0.273122, -0.46, -0.333061,
+       0.2125, 0.298061, -0.46,
+       0.2125, -0.46, -0.298061,
+       0.151878, 0.333061, -0.46,
+       0.151878, -0.46, -0.333061,
+       0.151878, 0.403061, -0.46,
+       0.151878, -0.46, -0.403061,
+       0.2125, -0.46, -0.438061,
+       0.2125, 0.438061, -0.46,
+       0.273122, 0.403061, -0.52,
+       0.273122, -0.52, -0.403061,
+       0.273122, -0.52, -0.333061,
+       0.273122, 0.333061, -0.52,
+       0.2125, 0.298061, -0.52,
+       0.2125, -0.52, -0.298061,
+       0.151878, 0.333061, -0.52,
+       0.151878, -0.52, -0.333061,
+       0.151878, 0.403061, -0.52,
+       0.151878, -0.52, -0.403061,
+       0.2125, -0.52, -0.438061,
+       0.2125, 0.438061, -0.52,
+       0.485622, -0.035, -0.46,
+       0.485622, -0.46, 0.035,
+       0.425, -0.07, -0.46,
+       0.425, -0.46, 0.07,
+       0.364378, -0.46, 0.035,
+       0.364378, -0.035, -0.46,
+       0.364378, 0.035, -0.46,
+       0.364378, -0.46, -0.035,
+       0.425, 0.07, -0.46,
+       0.425, -0.46, -0.07,
+       0.485622, 0.035, -0.46,
+       0.485622, -0.46, -0.035,
+       0.485622, -0.52, 0.035,
+       0.485622, -0.035, -0.52,
+       0.425, -0.07, -0.52,
+       0.425, -0.52, 0.07,
+       0.364378, -0.035, -0.52,
+       0.364378, -0.52, 0.035,
+       0.364378, -0.52, -0.035,
+       0.364378, 0.035, -0.52,
+       0.425, 0.07, -0.52,
+       0.425, -0.52, -0.07,
+       0.485622, 0.035, -0.52,
+       0.485622, -0.52, -0.035,
+       0.485622, -0.035, -0.6,
+       0.485622, -0.6, 0.035,
+       0.425, -0.6, 0.07,
+       0.425, -0.07, -0.6,
+       0.364378, -0.6, 0.035,
+       0.364378, -0.035, -0.6,
+       0.364378, 0.035, -0.6,
+       0.364378, -0.6, -0.035,
+       0.425, 0.07, -0.6,
+       0.425, -0.6, -0.07,
+       0.485622, -0.6, -0.035,
+       0.485622, 0.035, -0.6,
+       0.485622, -0.66, 0.035,
+       0.485622, -0.035, -0.66,
+       0.425, -0.66, 0.07,
+       0.425, -0.07, -0.66,
+       0.364378, -0.035, -0.66,
+       0.364378, -0.66, 0.035,
+       0.364378, -0.66, -0.035,
+       0.364378, 0.035, -0.66,
+       0.425, 0.07, -0.66,
+       0.425, -0.66, -0.07,
+       0.485622, -0.66, -0.035,
+       0.485622, 0.035, -0.66,
+       0.2125, -0.438061, -0.46,
+       0.2125, -0.46, 0.438061,
+       0.151878, -0.403061, -0.46,
+       0.151878, -0.46, 0.403061,
+       0.151878, -0.46, 0.333061,
+       0.151878, -0.333061, -0.46,
+       0.2125, -0.46, 0.298061,
+       0.2125, -0.298061, -0.46,
+       0.273122, -0.46, 0.333061,
+       0.273122, -0.333061, -0.46,
+       0.273122, -0.403061, -0.46,
+       0.273122, -0.46, 0.403061,
+       0.2125, -0.52, 0.438061,
+       0.2125, -0.438061, -0.52,
+       0.151878, -0.403061, -0.52,
+       0.151878, -0.52, 0.403061,
+       0.151878, -0.333061, -0.52,
+       0.151878, -0.52, 0.333061,
+       0.2125, -0.298061, -0.52,
+       0.2125, -0.52, 0.298061,
+       0.273122, -0.333061, -0.52,
+       0.273122, -0.52, 0.333061,
+       0.273122, -0.403061, -0.52,
+       0.273122, -0.52, 0.403061,
+       0.2125, -0.438061, -0.6,
+       0.2125, -0.6, 0.438061,
+       0.151878, -0.403061, -0.6,
+       0.151878, -0.6, 0.403061,
+       0.151878, -0.6, 0.333061,
+       0.151878, -0.333061, -0.6,
+       0.2125, -0.298061, -0.6,
+       0.2125, -0.6, 0.298061,
+       0.273122, -0.333061, -0.6,
+       0.273122, -0.6, 0.333061,
+       0.273122, -0.6, 0.403061,
+       0.273122, -0.403061, -0.6,
+       0.2125, -0.66, 0.438061,
+       0.2125, -0.438061, -0.66,
+       0.151878, -0.403061, -0.66,
+       0.151878, -0.66, 0.403061,
+       0.151878, -0.333061, -0.66,
+       0.151878, -0.66, 0.333061,
+       0.2125, -0.66, 0.298061,
+       0.2125, -0.298061, -0.66,
+       0.273122, -0.66, 0.333061,
+       0.273122, -0.333061, -0.66,
+       0.273122, -0.66, 0.403061,
+       0.273122, -0.403061, -0.66,
+       -0.273122, -0.46, 0.403061,
+       -0.273122, -0.403061, -0.46,
+       -0.273122, -0.46, 0.333061,
+       -0.273122, -0.333061, -0.46,
+       -0.2125, -0.298061, -0.46,
+       -0.2125, -0.46, 0.298061,
+       -0.151878, -0.333061, -0.46,
+       -0.151878, -0.46, 0.333061,
+       -0.151878, -0.403061, -0.46,
+       -0.151878, -0.46, 0.403061,
+       -0.2125, -0.46, 0.438061,
+       -0.2125, -0.438061, -0.46,
+       -0.273122, -0.52, 0.403061,
+       -0.273122, -0.403061, -0.52,
+       -0.273122, -0.333061, -0.52,
+       -0.273122, -0.52, 0.333061,
+       -0.2125, -0.52, 0.298061,
+       -0.2125, -0.298061, -0.52,
+       -0.151878, -0.333061, -0.52,
+       -0.151878, -0.52, 0.333061,
+       -0.151878, -0.52, 0.403061,
+       -0.151878, -0.403061, -0.52,
+       -0.2125, -0.52, 0.438061,
+       -0.2125, -0.438061, -0.52,
+       -0.273122, -0.6, 0.403061,
+       -0.273122, -0.403061, -0.6,
+       -0.273122, -0.6, 0.333061,
+       -0.273122, -0.333061, -0.6,
+       -0.2125, -0.6, 0.298061,
+       -0.2125, -0.298061, -0.6,
+       -0.151878, -0.333061, -0.6,
+       -0.151878, -0.6, 0.333061,
+       -0.151878, -0.6, 0.403061,
+       -0.151878, -0.403061, -0.6,
+       -0.2125, -0.438061, -0.6,
+       -0.2125, -0.6, 0.438061,
+       -0.273122, -0.66, 0.403061,
+       -0.273122, -0.403061, -0.66,
+       -0.273122, -0.333061, -0.66,
+       -0.273122, -0.66, 0.333061,
+       -0.2125, -0.298061, -0.66,
+       -0.2125, -0.66, 0.298061,
+       -0.151878, -0.66, 0.333061,
+       -0.151878, -0.333061, -0.66,
+       -0.151878, -0.66, 0.403061,
+       -0.151878, -0.403061, -0.66,
+       -0.2125, -0.438061, -0.66,
+       -0.2125, -0.66, 0.438061,
+       -0.485622, -0.46, -0.035,
+       -0.485622, 0.035, -0.46,
+       -0.425, 0.07, -0.46,
+       -0.425, -0.46, -0.07,
+       -0.364378, 0.035, -0.46,
+       -0.364378, -0.46, -0.035,
+       -0.364378, -0.46, 0.035,
+       -0.364378, -0.035, -0.46,
+       -0.425, -0.46, 0.07,
+       -0.425, -0.07, -0.46,
+       -0.485622, -0.035, -0.46,
+       -0.485622, -0.46, 0.035,
+       -0.485622, -0.52, -0.035,
+       -0.485622, 0.035, -0.52,
+       -0.425, 0.07, -0.52,
+       -0.425, -0.52, -0.07,
+       -0.364378, 0.035, -0.52,
+       -0.364378, -0.52, -0.035,
+       -0.364378, -0.035, -0.52,
+       -0.364378, -0.52, 0.035,
+       -0.425, -0.52, 0.07,
+       -0.425, -0.07, -0.52,
+       -0.485622, -0.035, -0.52,
+       -0.485622, -0.52, 0.035,
+       -0.485622, 0.035, -0.6,
+       -0.485622, -0.6, -0.035,
+       -0.425, -0.6, -0.07,
+       -0.425, 0.07, -0.6,
+       -0.364378, -0.6, -0.035,
+       -0.364378, 0.035, -0.6,
+       -0.364378, -0.6, 0.035,
+       -0.364378, -0.035, -0.6,
+       -0.425, -0.6, 0.07,
+       -0.425, -0.07, -0.6,
+       -0.485622, -0.6, 0.035,
+       -0.485622, -0.035, -0.6,
+       -0.485622, -0.66, -0.035,
+       -0.485622, 0.035, -0.66,
+       -0.425, -0.66, -0.07,
+       -0.425, 0.07, -0.66,
+       -0.364378, 0.035, -0.66,
+       -0.364378, -0.66, -0.035,
+       -0.364378, -0.66, 0.035,
+       -0.364378, -0.035, -0.66,
+       -0.425, -0.07, -0.66,
+       -0.425, -0.66, 0.07,
+       -0.485622, -0.66, 0.035,
+       -0.485622, -0.035, -0.66,
+       -0.2125, -0.46, -0.438061,
+       -0.2125, 0.438061, -0.46,
+       -0.151878, 0.403061, -0.46,
+       -0.151878, -0.46, -0.403061,
+       -0.151878, -0.46, -0.333061,
+       -0.151878, 0.333061, -0.46,
+       -0.2125, 0.298061, -0.46,
+       -0.2125, -0.46, -0.298061,
+       -0.273122, 0.333061, -0.46,
+       -0.273122, -0.46, -0.333061,
+       -0.273122, -0.46, -0.403061,
+       -0.273122, 0.403061, -0.46,
+       -0.2125, -0.52, -0.438061,
+       -0.2125, 0.438061, -0.52,
+       -0.151878, 0.403061, -0.52,
+       -0.151878, -0.52, -0.403061,
+       -0.151878, -0.52, -0.333061,
+       -0.151878, 0.333061, -0.52,
+       -0.2125, 0.298061, -0.52,
+       -0.2125, -0.52, -0.298061,
+       -0.273122, 0.333061, -0.52,
+       -0.273122, -0.52, -0.333061,
+       -0.273122, 0.403061, -0.52,
+       -0.273122, -0.52, -0.403061,
+       -0.2125, 0.438061, -0.6,
+       -0.2125, -0.6, -0.438061,
+       -0.151878, -0.6, -0.403061,
+       -0.151878, 0.403061, -0.6,
+       -0.151878, 0.333061, -0.6,
+       -0.151878, -0.6, -0.333061,
+       -0.2125, -0.6, -0.298061,
+       -0.2125, 0.298061, -0.6,
+       -0.273122, -0.6, -0.333061,
+       -0.273122, 0.333061, -0.6,
+       -0.273122, -0.6, -0.403061,
+       -0.273122, 0.403061, -0.6,
+       -0.2125, -0.66, -0.438061,
+       -0.2125, 0.438061, -0.66,
+       -0.151878, -0.66, -0.403061,
+       -0.151878, 0.403061, -0.66,
+       -0.151878, -0.66, -0.333061,
+       -0.151878, 0.333061, -0.66,
+       -0.2125, -0.66, -0.298061,
+       -0.2125, 0.298061, -0.66,
+       -0.273122, -0.66, -0.333061,
+       -0.273122, 0.333061, -0.66,
+       -0.273122, 0.403061, -0.66,
+       -0.273122, -0.66, -0.403061,
 };
 
 static const GLfloat ElbowBolts_normals[] =
 {
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.866026, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.499999, (GLfloat) 0.866026, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.866025, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.866025, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866026, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.866025, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866026, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866026, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.866025, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.866026, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.866025, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) - 0.499999, (GLfloat) - 0.866026, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.866025, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.866025, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.866025, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866026, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866026, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.866025, (GLfloat) 0.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.500000, (GLfloat) - 0.866026, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.866025, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.866025, (GLfloat) 0.000000,
-       (GLfloat) 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.866026,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.499999, (GLfloat) 0.000000, (GLfloat) - 0.866026,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.000000, (GLfloat) 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.000000, (GLfloat) 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866026,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866026,
-       (GLfloat) - 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866026,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866026,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.499999, (GLfloat) 0.000000, (GLfloat) 0.866026,
-       (GLfloat) - 1.000000, (GLfloat) - 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866026,
-       (GLfloat) - 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866026,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) 0.000000,
-       (GLfloat) 1.000000, (GLfloat) 0.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866026,
-       (GLfloat) - 0.500000, (GLfloat) 0.000000, (GLfloat) 0.866025,
-       (GLfloat) - 1.000000, (GLfloat) 0.000000, (GLfloat) 0.000000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.866025,
-       (GLfloat) 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
+       0, 0, 1,
+       0.5, 0.866026, 0,
+       1, 0, 0,
+       0.5, -0.866025, 0,
+       -0.5, -0.866025, 0,
+       -1, 0, 0,
+       -0.5, 0.866025, 0,
+       0, 0, -1,
+       0, 0, 1,
+       0.499999, 0.866026, 0,
+       1, 0, 0,
+       0.5, -0.866025, 0,
+       -0.5, -0.866025, 0,
+       -1, 0, 0,
+       -0.5, 0.866025, 0,
+       0, 0, -1,
+       0, 0, 1,
+       -0.5, 0.866025, 0,
+       0.5, 0.866025, 0,
+       1, 0, 0,
+       0.5, -0.866025, 0,
+       -0.5, -0.866025, 0,
+       -1, 0, 0,
+       0, 0, -1,
+       0, 0, 1,
+       -0.5, 0.866025, 0,
+       0.5, 0.866025, 0,
+       1, 0, 0,
+       0.5, -0.866025, 0,
+       -0.5, -0.866025, 0,
+       -1, 0, 0,
+       0, 0, -1,
+       0, 0, 1,
+       -1, 0, 0,
+       -0.5, 0.866026, 0,
+       0.5, 0.866025, 0,
+       1, 0, 0,
+       0.5, -0.866026, 0,
+       -0.5, -0.866025, 0,
+       0, 0, -1,
+       0, 0, 1,
+       -1, 0, 0,
+       -0.5, 0.866026, 0,
+       0.5, 0.866025, 0,
+       1, 0, 0,
+       0.5, -0.866025, 0,
+       -0.5, -0.866025, 0,
+       0, 0, -1,
+       0, 0, 1,
+       -0.5, -0.866026, 0,
+       -1, 0, 0,
+       -0.5, 0.866025, 0,
+       0.5, 0.866025, 0,
+       1, 0, 0,
+       0.5, -0.866025, 0,
+       0, 0, -1,
+       0, 0, 1,
+       -0.499999, -0.866026, 0,
+       -1, 0, 0,
+       -0.5, 0.866025, 0,
+       0.5, 0.866025, 0,
+       1, 0, 0,
+       0.5, -0.866025, 0,
+       0, 0, -1,
+       0, 0, 1,
+       0.5, -0.866025, 0,
+       -0.5, -0.866025, 0,
+       -1, 0, 0,
+       -0.5, 0.866025, 0,
+       0.5, 0.866025, 0,
+       1, 0, 0,
+       0, 0, -1,
+       0, 0, 1,
+       0.5, -0.866025, 0,
+       -0.5, -0.866025, 0,
+       -1, 0, 0,
+       -0.5, 0.866025, 0,
+       0.5, 0.866025, 0,
+       1, 0, 0,
+       0, 0, -1,
+       0, 0, 1,
+       1, 0, 0,
+       0.5, -0.866026, 0,
+       -0.5, -0.866025, 0,
+       -1, 0, 0,
+       -0.5, 0.866026, 0,
+       0.5, 0.866025, 0,
+       0, 0, -1,
+       0, 0, 1,
+       1, 0, 0,
+       0.5, -0.866026, 0,
+       -0.5, -0.866025, 0,
+       -1, 0, 0,
+       -0.5, 0.866025, 0,
+       0.5, 0.866025, 0,
+       0, 0, -1,
+       0, 1, 0,
+       0.5, 0, -0.866026,
+       1, 0, 0,
+       0.5, 0, 0.866025,
+       -0.5, 0, 0.866025,
+       -1, 0, 0,
+       -0.5, 0, -0.866025,
+       0, -1, 0,
+       0, 1, 0,
+       0.499999, 0, -0.866026,
+       1, 0, 0,
+       0.5, 0, 0.866025,
+       -0.5, 0, 0.866025,
+       -1, 0, 0,
+       -0.5, 0, -0.866025,
+       0, -1, 0,
+       0, 1, 0,
+       -0.5, 0, -0.866025,
+       0.5, 0, -0.866025,
+       1, 0, 0,
+       0.5, 0, 0.866025,
+       -0.5, 0, 0.866025,
+       -1, 0, 0,
+       0, -1, 0,
+       0, 1, 0,
+       -0.5, 0, -0.866025,
+       0.5, 0, -0.866025,
+       1, 0, 0,
+       0.5, 0, 0.866025,
+       -0.5, 0, 0.866025,
+       -1, 0, 0,
+       0, -1, 0,
+       0, 1, 0,
+       -1, 0, 0,
+       -0.5, 0, -0.866026,
+       0.5, 0, -0.866025,
+       1, 0, 0,
+       0.5, 0, 0.866026,
+       -0.5, 0, 0.866025,
+       0, -1, 0,
+       0, 1, 0,
+       -1, 0, 0,
+       -0.5, 0, -0.866026,
+       0.5, 0, -0.866025,
+       1, 0, 0,
+       0.5, 0, 0.866025,
+       -0.5, 0, 0.866025,
+       0, -1, 0,
+       0, 1, 0,
+       -0.5, 0, 0.866026,
+       -1, 0, 0,
+       -0.5, 0, -0.866025,
+       0.5, 0, -0.866025,
+       1, 0, 0,
+       0.5, 0, 0.866025,
+       0, -1, 0,
+       0, 1, 0,
+       -0.499999, 0, 0.866026,
+       -1, 0, 0,
+       -0.5, 0, -0.866025,
+       0.5, 0, -0.866025,
+       1, 0, 0,
+       0.5, 0, 0.866025,
+       0, -1, 0,
+       0, 1, 0,
+       0.5, 0, 0.866025,
+       -0.5, 0, 0.866025,
+       -1, 0, 0,
+       -0.5, 0, -0.866025,
+       0.5, 0, -0.866025,
+       1, 0, 0,
+       0, -1, 0,
+       0, 1, 0,
+       0.5, 0, 0.866025,
+       -0.5, 0, 0.866025,
+       -1, 0, 0,
+       -0.5, 0, -0.866025,
+       0.5, 0, -0.866025,
+       1, 0, 0,
+       0, -1, 0,
+       0, 1, 0,
+       1, 0, 0,
+       0.5, 0, 0.866026,
+       -0.5, 0, 0.866025,
+       -1, 0, 0,
+       -0.5, 0, -0.866026,
+       0.5, 0, -0.866025,
+       0, -1, 0,
+       0, 1, 0,
+       1, 0, 0,
+       0.5, 0, 0.866026,
+       -0.5, 0, 0.866025,
+       -1, 0, 0,
+       -0.5, 0, -0.866025,
+       0.5, 0, -0.866025,
+       0, -1, 0,
 };
 
 static const unsigned short int ElbowBolts_POLS[] =
@@ -3018,206 +3018,206 @@ struct lwo  LWO_ElbowBolts =
 
 static const GLfloat ElbowCoins_PNTS[] =
 {
-       (GLfloat) 0.000000, (GLfloat) - 0.520000, (GLfloat) - 0.500000,
-       (GLfloat) 0.097545, (GLfloat) - 0.520000, (GLfloat) - 0.490393,
-       (GLfloat) 0.191342, (GLfloat) - 0.520000, (GLfloat) - 0.461940,
-       (GLfloat) 0.277785, (GLfloat) - 0.520000, (GLfloat) - 0.415735,
-       (GLfloat) 0.353553, (GLfloat) - 0.520000, (GLfloat) - 0.353553,
-       (GLfloat) 0.415735, (GLfloat) - 0.520000, (GLfloat) - 0.277785,
-       (GLfloat) 0.461940, (GLfloat) - 0.520000, (GLfloat) - 0.191342,
-       (GLfloat) 0.490393, (GLfloat) - 0.520000, (GLfloat) - 0.097545,
-       (GLfloat) 0.500000, (GLfloat) - 0.520000, (GLfloat) - 0.000000,
-       (GLfloat) 0.490393, (GLfloat) - 0.520000, (GLfloat) 0.097545,
-       (GLfloat) 0.461940, (GLfloat) - 0.520000, (GLfloat) 0.191342,
-       (GLfloat) 0.415735, (GLfloat) - 0.520000, (GLfloat) 0.277785,
-       (GLfloat) 0.353553, (GLfloat) - 0.520000, (GLfloat) 0.353553,
-       (GLfloat) 0.277785, (GLfloat) - 0.520000, (GLfloat) 0.415735,
-       (GLfloat) 0.191342, (GLfloat) - 0.520000, (GLfloat) 0.461940,
-       (GLfloat) 0.097545, (GLfloat) - 0.520000, (GLfloat) 0.490393,
-       (GLfloat) 0.000000, (GLfloat) - 0.520000, (GLfloat) 0.500000,
-       (GLfloat) - 0.097545, (GLfloat) - 0.520000, (GLfloat) 0.490393,
-       (GLfloat) - 0.191342, (GLfloat) - 0.520000, (GLfloat) 0.461940,
-       (GLfloat) - 0.277785, (GLfloat) - 0.520000, (GLfloat) 0.415735,
-       (GLfloat) - 0.353553, (GLfloat) - 0.520000, (GLfloat) 0.353553,
-       (GLfloat) - 0.415735, (GLfloat) - 0.520000, (GLfloat) 0.277785,
-       (GLfloat) - 0.461940, (GLfloat) - 0.520000, (GLfloat) 0.191342,
-       (GLfloat) - 0.490393, (GLfloat) - 0.520000, (GLfloat) 0.097545,
-       (GLfloat) - 0.500000, (GLfloat) - 0.520000, (GLfloat) 0.000000,
-       (GLfloat) - 0.490393, (GLfloat) - 0.520000, (GLfloat) - 0.097545,
-       (GLfloat) - 0.461940, (GLfloat) - 0.520000, (GLfloat) - 0.191342,
-       (GLfloat) - 0.415735, (GLfloat) - 0.520000, (GLfloat) - 0.277785,
-       (GLfloat) - 0.353553, (GLfloat) - 0.520000, (GLfloat) - 0.353553,
-       (GLfloat) - 0.277785, (GLfloat) - 0.520000, (GLfloat) - 0.415735,
-       (GLfloat) - 0.191342, (GLfloat) - 0.520000, (GLfloat) - 0.461940,
-       (GLfloat) - 0.097545, (GLfloat) - 0.520000, (GLfloat) - 0.490393,
-       (GLfloat) 0.000000, (GLfloat) - 0.600000, (GLfloat) - 0.500000,
-       (GLfloat) 0.097545, (GLfloat) - 0.600000, (GLfloat) - 0.490393,
-       (GLfloat) 0.191342, (GLfloat) - 0.600000, (GLfloat) - 0.461940,
-       (GLfloat) 0.277785, (GLfloat) - 0.600000, (GLfloat) - 0.415735,
-       (GLfloat) 0.353553, (GLfloat) - 0.600000, (GLfloat) - 0.353553,
-       (GLfloat) 0.415735, (GLfloat) - 0.600000, (GLfloat) - 0.277785,
-       (GLfloat) 0.461940, (GLfloat) - 0.600000, (GLfloat) - 0.191342,
-       (GLfloat) 0.490393, (GLfloat) - 0.600000, (GLfloat) - 0.097545,
-       (GLfloat) 0.500000, (GLfloat) - 0.600000, (GLfloat) - 0.000000,
-       (GLfloat) 0.490393, (GLfloat) - 0.600000, (GLfloat) 0.097545,
-       (GLfloat) 0.461940, (GLfloat) - 0.600000, (GLfloat) 0.191342,
-       (GLfloat) 0.415735, (GLfloat) - 0.600000, (GLfloat) 0.277785,
-       (GLfloat) 0.353553, (GLfloat) - 0.600000, (GLfloat) 0.353553,
-       (GLfloat) 0.277785, (GLfloat) - 0.600000, (GLfloat) 0.415735,
-       (GLfloat) 0.191342, (GLfloat) - 0.600000, (GLfloat) 0.461940,
-       (GLfloat) 0.097545, (GLfloat) - 0.600000, (GLfloat) 0.490393,
-       (GLfloat) 0.000000, (GLfloat) - 0.600000, (GLfloat) 0.500000,
-       (GLfloat) - 0.097545, (GLfloat) - 0.600000, (GLfloat) 0.490393,
-       (GLfloat) - 0.191342, (GLfloat) - 0.600000, (GLfloat) 0.461940,
-       (GLfloat) - 0.277785, (GLfloat) - 0.600000, (GLfloat) 0.415735,
-       (GLfloat) - 0.353553, (GLfloat) - 0.600000, (GLfloat) 0.353553,
-       (GLfloat) - 0.415735, (GLfloat) - 0.600000, (GLfloat) 0.277785,
-       (GLfloat) - 0.461940, (GLfloat) - 0.600000, (GLfloat) 0.191342,
-       (GLfloat) - 0.490393, (GLfloat) - 0.600000, (GLfloat) 0.097545,
-       (GLfloat) - 0.500000, (GLfloat) - 0.600000, (GLfloat) 0.000000,
-       (GLfloat) - 0.490393, (GLfloat) - 0.600000, (GLfloat) - 0.097545,
-       (GLfloat) - 0.461940, (GLfloat) - 0.600000, (GLfloat) - 0.191342,
-       (GLfloat) - 0.415735, (GLfloat) - 0.600000, (GLfloat) - 0.277785,
-       (GLfloat) - 0.353553, (GLfloat) - 0.600000, (GLfloat) - 0.353553,
-       (GLfloat) - 0.277785, (GLfloat) - 0.600000, (GLfloat) - 0.415735,
-       (GLfloat) - 0.191342, (GLfloat) - 0.600000, (GLfloat) - 0.461940,
-       (GLfloat) - 0.097545, (GLfloat) - 0.600000, (GLfloat) - 0.490393,
-       (GLfloat) 0.000000, (GLfloat) 0.500000, (GLfloat) - 0.520000,
-       (GLfloat) 0.097545, (GLfloat) 0.490393, (GLfloat) - 0.520000,
-       (GLfloat) 0.191342, (GLfloat) 0.461940, (GLfloat) - 0.520000,
-       (GLfloat) 0.277785, (GLfloat) 0.415735, (GLfloat) - 0.520000,
-       (GLfloat) 0.353553, (GLfloat) 0.353553, (GLfloat) - 0.520000,
-       (GLfloat) 0.415735, (GLfloat) 0.277785, (GLfloat) - 0.520000,
-       (GLfloat) 0.461940, (GLfloat) 0.191342, (GLfloat) - 0.520000,
-       (GLfloat) 0.490393, (GLfloat) 0.097545, (GLfloat) - 0.520000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.520000,
-       (GLfloat) 0.490393, (GLfloat) - 0.097545, (GLfloat) - 0.520000,
-       (GLfloat) 0.461940, (GLfloat) - 0.191342, (GLfloat) - 0.520000,
-       (GLfloat) 0.415735, (GLfloat) - 0.277785, (GLfloat) - 0.520000,
-       (GLfloat) 0.353553, (GLfloat) - 0.353553, (GLfloat) - 0.520000,
-       (GLfloat) 0.277785, (GLfloat) - 0.415735, (GLfloat) - 0.520000,
-       (GLfloat) 0.191342, (GLfloat) - 0.461940, (GLfloat) - 0.520000,
-       (GLfloat) 0.097545, (GLfloat) - 0.490393, (GLfloat) - 0.520000,
-       (GLfloat) 0.000000, (GLfloat) - 0.500000, (GLfloat) - 0.520000,
-       (GLfloat) - 0.097545, (GLfloat) - 0.490393, (GLfloat) - 0.520000,
-       (GLfloat) - 0.191342, (GLfloat) - 0.461940, (GLfloat) - 0.520000,
-       (GLfloat) - 0.277785, (GLfloat) - 0.415735, (GLfloat) - 0.520000,
-       (GLfloat) - 0.353553, (GLfloat) - 0.353553, (GLfloat) - 0.520000,
-       (GLfloat) - 0.415735, (GLfloat) - 0.277785, (GLfloat) - 0.520000,
-       (GLfloat) - 0.461940, (GLfloat) - 0.191342, (GLfloat) - 0.520000,
-       (GLfloat) - 0.490393, (GLfloat) - 0.097545, (GLfloat) - 0.520000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.520000,
-       (GLfloat) - 0.490393, (GLfloat) 0.097545, (GLfloat) - 0.520000,
-       (GLfloat) - 0.461940, (GLfloat) 0.191342, (GLfloat) - 0.520000,
-       (GLfloat) - 0.415735, (GLfloat) 0.277785, (GLfloat) - 0.520000,
-       (GLfloat) - 0.353553, (GLfloat) 0.353553, (GLfloat) - 0.520000,
-       (GLfloat) - 0.277785, (GLfloat) 0.415735, (GLfloat) - 0.520000,
-       (GLfloat) - 0.191342, (GLfloat) 0.461940, (GLfloat) - 0.520000,
-       (GLfloat) - 0.097545, (GLfloat) 0.490393, (GLfloat) - 0.520000,
-       (GLfloat) 0.000000, (GLfloat) 0.500000, (GLfloat) - 0.600000,
-       (GLfloat) 0.097545, (GLfloat) 0.490393, (GLfloat) - 0.600000,
-       (GLfloat) 0.191342, (GLfloat) 0.461940, (GLfloat) - 0.600000,
-       (GLfloat) 0.277785, (GLfloat) 0.415735, (GLfloat) - 0.600000,
-       (GLfloat) 0.353553, (GLfloat) 0.353553, (GLfloat) - 0.600000,
-       (GLfloat) 0.415735, (GLfloat) 0.277785, (GLfloat) - 0.600000,
-       (GLfloat) 0.461940, (GLfloat) 0.191342, (GLfloat) - 0.600000,
-       (GLfloat) 0.490393, (GLfloat) 0.097545, (GLfloat) - 0.600000,
-       (GLfloat) 0.500000, (GLfloat) 0.000000, (GLfloat) - 0.600000,
-       (GLfloat) 0.490393, (GLfloat) - 0.097545, (GLfloat) - 0.600000,
-       (GLfloat) 0.461940, (GLfloat) - 0.191342, (GLfloat) - 0.600000,
-       (GLfloat) 0.415735, (GLfloat) - 0.277785, (GLfloat) - 0.600000,
-       (GLfloat) 0.353553, (GLfloat) - 0.353553, (GLfloat) - 0.600000,
-       (GLfloat) 0.277785, (GLfloat) - 0.415735, (GLfloat) - 0.600000,
-       (GLfloat) 0.191342, (GLfloat) - 0.461940, (GLfloat) - 0.600000,
-       (GLfloat) 0.097545, (GLfloat) - 0.490393, (GLfloat) - 0.600000,
-       (GLfloat) 0.000000, (GLfloat) - 0.500000, (GLfloat) - 0.600000,
-       (GLfloat) - 0.097545, (GLfloat) - 0.490393, (GLfloat) - 0.600000,
-       (GLfloat) - 0.191342, (GLfloat) - 0.461940, (GLfloat) - 0.600000,
-       (GLfloat) - 0.277785, (GLfloat) - 0.415735, (GLfloat) - 0.600000,
-       (GLfloat) - 0.353553, (GLfloat) - 0.353553, (GLfloat) - 0.600000,
-       (GLfloat) - 0.415735, (GLfloat) - 0.277785, (GLfloat) - 0.600000,
-       (GLfloat) - 0.461940, (GLfloat) - 0.191342, (GLfloat) - 0.600000,
-       (GLfloat) - 0.490393, (GLfloat) - 0.097545, (GLfloat) - 0.600000,
-       (GLfloat) - 0.500000, (GLfloat) - 0.000000, (GLfloat) - 0.600000,
-       (GLfloat) - 0.490393, (GLfloat) 0.097545, (GLfloat) - 0.600000,
-       (GLfloat) - 0.461940, (GLfloat) 0.191342, (GLfloat) - 0.600000,
-       (GLfloat) - 0.415735, (GLfloat) 0.277785, (GLfloat) - 0.600000,
-       (GLfloat) - 0.353553, (GLfloat) 0.353553, (GLfloat) - 0.600000,
-       (GLfloat) - 0.277785, (GLfloat) 0.415735, (GLfloat) - 0.600000,
-       (GLfloat) - 0.191342, (GLfloat) 0.461940, (GLfloat) - 0.600000,
-       (GLfloat) - 0.097545, (GLfloat) 0.490393, (GLfloat) - 0.600000,
+       0, -0.52, -0.5,
+       0.097545, -0.52, -0.490393,
+       0.191342, -0.52, -0.46194,
+       0.277785, -0.52, -0.415735,
+       0.353553, -0.52, -0.353553,
+       0.415735, -0.52, -0.277785,
+       0.46194, -0.52, -0.191342,
+       0.490393, -0.52, -0.097545,
+       0.5, -0.52, 0,
+       0.490393, -0.52, 0.097545,
+       0.46194, -0.52, 0.191342,
+       0.415735, -0.52, 0.277785,
+       0.353553, -0.52, 0.353553,
+       0.277785, -0.52, 0.415735,
+       0.191342, -0.52, 0.46194,
+       0.097545, -0.52, 0.490393,
+       0, -0.52, 0.5,
+       -0.097545, -0.52, 0.490393,
+       -0.191342, -0.52, 0.46194,
+       -0.277785, -0.52, 0.415735,
+       -0.353553, -0.52, 0.353553,
+       -0.415735, -0.52, 0.277785,
+       -0.46194, -0.52, 0.191342,
+       -0.490393, -0.52, 0.097545,
+       -0.5, -0.52, 0,
+       -0.490393, -0.52, -0.097545,
+       -0.46194, -0.52, -0.191342,
+       -0.415735, -0.52, -0.277785,
+       -0.353553, -0.52, -0.353553,
+       -0.277785, -0.52, -0.415735,
+       -0.191342, -0.52, -0.46194,
+       -0.097545, -0.52, -0.490393,
+       0, -0.6, -0.5,
+       0.097545, -0.6, -0.490393,
+       0.191342, -0.6, -0.46194,
+       0.277785, -0.6, -0.415735,
+       0.353553, -0.6, -0.353553,
+       0.415735, -0.6, -0.277785,
+       0.46194, -0.6, -0.191342,
+       0.490393, -0.6, -0.097545,
+       0.5, -0.6, 0,
+       0.490393, -0.6, 0.097545,
+       0.46194, -0.6, 0.191342,
+       0.415735, -0.6, 0.277785,
+       0.353553, -0.6, 0.353553,
+       0.277785, -0.6, 0.415735,
+       0.191342, -0.6, 0.46194,
+       0.097545, -0.6, 0.490393,
+       0, -0.6, 0.5,
+       -0.097545, -0.6, 0.490393,
+       -0.191342, -0.6, 0.46194,
+       -0.277785, -0.6, 0.415735,
+       -0.353553, -0.6, 0.353553,
+       -0.415735, -0.6, 0.277785,
+       -0.46194, -0.6, 0.191342,
+       -0.490393, -0.6, 0.097545,
+       -0.5, -0.6, 0,
+       -0.490393, -0.6, -0.097545,
+       -0.46194, -0.6, -0.191342,
+       -0.415735, -0.6, -0.277785,
+       -0.353553, -0.6, -0.353553,
+       -0.277785, -0.6, -0.415735,
+       -0.191342, -0.6, -0.46194,
+       -0.097545, -0.6, -0.490393,
+       0, 0.5, -0.52,
+       0.097545, 0.490393, -0.52,
+       0.191342, 0.46194, -0.52,
+       0.277785, 0.415735, -0.52,
+       0.353553, 0.353553, -0.52,
+       0.415735, 0.277785, -0.52,
+       0.46194, 0.191342, -0.52,
+       0.490393, 0.097545, -0.52,
+       0.5, 0, -0.52,
+       0.490393, -0.097545, -0.52,
+       0.46194, -0.191342, -0.52,
+       0.415735, -0.277785, -0.52,
+       0.353553, -0.353553, -0.52,
+       0.277785, -0.415735, -0.52,
+       0.191342, -0.46194, -0.52,
+       0.097545, -0.490393, -0.52,
+       0, -0.5, -0.52,
+       -0.097545, -0.490393, -0.52,
+       -0.191342, -0.46194, -0.52,
+       -0.277785, -0.415735, -0.52,
+       -0.353553, -0.353553, -0.52,
+       -0.415735, -0.277785, -0.52,
+       -0.46194, -0.191342, -0.52,
+       -0.490393, -0.097545, -0.52,
+       -0.5, 0, -0.52,
+       -0.490393, 0.097545, -0.52,
+       -0.46194, 0.191342, -0.52,
+       -0.415735, 0.277785, -0.52,
+       -0.353553, 0.353553, -0.52,
+       -0.277785, 0.415735, -0.52,
+       -0.191342, 0.46194, -0.52,
+       -0.097545, 0.490393, -0.52,
+       0, 0.5, -0.6,
+       0.097545, 0.490393, -0.6,
+       0.191342, 0.46194, -0.6,
+       0.277785, 0.415735, -0.6,
+       0.353553, 0.353553, -0.6,
+       0.415735, 0.277785, -0.6,
+       0.46194, 0.191342, -0.6,
+       0.490393, 0.097545, -0.6,
+       0.5, 0, -0.6,
+       0.490393, -0.097545, -0.6,
+       0.46194, -0.191342, -0.6,
+       0.415735, -0.277785, -0.6,
+       0.353553, -0.353553, -0.6,
+       0.277785, -0.415735, -0.6,
+       0.191342, -0.46194, -0.6,
+       0.097545, -0.490393, -0.6,
+       0, -0.5, -0.6,
+       -0.097545, -0.490393, -0.6,
+       -0.191342, -0.46194, -0.6,
+       -0.277785, -0.415735, -0.6,
+       -0.353553, -0.353553, -0.6,
+       -0.415735, -0.277785, -0.6,
+       -0.46194, -0.191342, -0.6,
+       -0.490393, -0.097545, -0.6,
+       -0.5, 0, -0.6,
+       -0.490393, 0.097545, -0.6,
+       -0.46194, 0.191342, -0.6,
+       -0.415735, 0.277785, -0.6,
+       -0.353553, 0.353553, -0.6,
+       -0.277785, 0.415735, -0.6,
+       -0.191342, 0.46194, -0.6,
+       -0.097545, 0.490393, -0.6,
 };
 
 static const GLfloat ElbowCoins_normals[] =
 {
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) 1.000000,
-       (GLfloat) 0.098017, (GLfloat) 0.995185, (GLfloat) 0.000000,
-       (GLfloat) 0.290285, (GLfloat) 0.956940, (GLfloat) 0.000000,
-       (GLfloat) 0.471397, (GLfloat) 0.881921, (GLfloat) 0.000000,
-       (GLfloat) 0.634393, (GLfloat) 0.773010, (GLfloat) 0.000000,
-       (GLfloat) 0.773010, (GLfloat) 0.634393, (GLfloat) 0.000000,
-       (GLfloat) 0.881921, (GLfloat) 0.471397, (GLfloat) 0.000000,
-       (GLfloat) 0.956940, (GLfloat) 0.290285, (GLfloat) 0.000000,
-       (GLfloat) 0.995185, (GLfloat) 0.098017, (GLfloat) 0.000000,
-       (GLfloat) 0.995185, (GLfloat) - 0.098017, (GLfloat) - 0.000000,
-       (GLfloat) 0.956940, (GLfloat) - 0.290285, (GLfloat) - 0.000000,
-       (GLfloat) 0.881921, (GLfloat) - 0.471397, (GLfloat) - 0.000000,
-       (GLfloat) 0.773010, (GLfloat) - 0.634393, (GLfloat) - 0.000000,
-       (GLfloat) 0.634393, (GLfloat) - 0.773010, (GLfloat) - 0.000000,
-       (GLfloat) 0.471397, (GLfloat) - 0.881921, (GLfloat) - 0.000000,
-       (GLfloat) 0.290285, (GLfloat) - 0.956940, (GLfloat) - 0.000000,
-       (GLfloat) 0.098017, (GLfloat) - 0.995185, (GLfloat) - 0.000000,
-       (GLfloat) - 0.098017, (GLfloat) - 0.995185, (GLfloat) - 0.000000,
-       (GLfloat) - 0.290285, (GLfloat) - 0.956940, (GLfloat) - 0.000000,
-       (GLfloat) - 0.471397, (GLfloat) - 0.881921, (GLfloat) - 0.000000,
-       (GLfloat) - 0.634393, (GLfloat) - 0.773010, (GLfloat) - 0.000000,
-       (GLfloat) - 0.773010, (GLfloat) - 0.634393, (GLfloat) - 0.000000,
-       (GLfloat) - 0.881921, (GLfloat) - 0.471397, (GLfloat) - 0.000000,
-       (GLfloat) - 0.956940, (GLfloat) - 0.290285, (GLfloat) - 0.000000,
-       (GLfloat) - 0.995185, (GLfloat) - 0.098017, (GLfloat) - 0.000000,
-       (GLfloat) - 0.995185, (GLfloat) 0.098017, (GLfloat) - 0.000000,
-       (GLfloat) - 0.956940, (GLfloat) 0.290285, (GLfloat) - 0.000000,
-       (GLfloat) - 0.881921, (GLfloat) 0.471397, (GLfloat) - 0.000000,
-       (GLfloat) - 0.773010, (GLfloat) 0.634393, (GLfloat) - 0.000000,
-       (GLfloat) - 0.634393, (GLfloat) 0.773010, (GLfloat) - 0.000000,
-       (GLfloat) - 0.471397, (GLfloat) 0.881921, (GLfloat) - 0.000000,
-       (GLfloat) - 0.290285, (GLfloat) 0.956940, (GLfloat) - 0.000000,
-       (GLfloat) - 0.098017, (GLfloat) 0.995185, (GLfloat) - 0.000000,
-       (GLfloat) - 0.000000, (GLfloat) 0.000000, (GLfloat) - 1.000000,
-       (GLfloat) - 0.000000, (GLfloat) 1.000000, (GLfloat) - 0.000000,
-       (GLfloat) 0.098017, (GLfloat) 0.000000, (GLfloat) - 0.995185,
-       (GLfloat) 0.290285, (GLfloat) 0.000000, (GLfloat) - 0.956940,
-       (GLfloat) 0.471397, (GLfloat) 0.000000, (GLfloat) - 0.881921,
-       (GLfloat) 0.634393, (GLfloat) 0.000000, (GLfloat) - 0.773010,
-       (GLfloat) 0.773010, (GLfloat) 0.000000, (GLfloat) - 0.634393,
-       (GLfloat) 0.881921, (GLfloat) 0.000000, (GLfloat) - 0.471397,
-       (GLfloat) 0.956940, (GLfloat) 0.000000, (GLfloat) - 0.290285,
-       (GLfloat) 0.995185, (GLfloat) 0.000000, (GLfloat) - 0.098017,
-       (GLfloat) 0.995185, (GLfloat) 0.000000, (GLfloat) 0.098017,
-       (GLfloat) 0.956940, (GLfloat) 0.000000, (GLfloat) 0.290285,
-       (GLfloat) 0.881921, (GLfloat) 0.000000, (GLfloat) 0.471397,
-       (GLfloat) 0.773010, (GLfloat) 0.000000, (GLfloat) 0.634393,
-       (GLfloat) 0.634393, (GLfloat) 0.000000, (GLfloat) 0.773010,
-       (GLfloat) 0.471397, (GLfloat) 0.000000, (GLfloat) 0.881921,
-       (GLfloat) 0.290285, (GLfloat) 0.000000, (GLfloat) 0.956940,
-       (GLfloat) 0.098017, (GLfloat) 0.000000, (GLfloat) 0.995185,
-       (GLfloat) - 0.098017, (GLfloat) 0.000000, (GLfloat) 0.995185,
-       (GLfloat) - 0.290285, (GLfloat) 0.000000, (GLfloat) 0.956940,
-       (GLfloat) - 0.471397, (GLfloat) 0.000000, (GLfloat) 0.881921,
-       (GLfloat) - 0.634393, (GLfloat) 0.000000, (GLfloat) 0.773010,
-       (GLfloat) - 0.773010, (GLfloat) 0.000000, (GLfloat) 0.634393,
-       (GLfloat) - 0.881921, (GLfloat) 0.000000, (GLfloat) 0.471397,
-       (GLfloat) - 0.956940, (GLfloat) 0.000000, (GLfloat) 0.290285,
-       (GLfloat) - 0.995185, (GLfloat) - 0.000000, (GLfloat) 0.098017,
-       (GLfloat) - 0.995185, (GLfloat) - 0.000000, (GLfloat) - 0.098017,
-       (GLfloat) - 0.956940, (GLfloat) - 0.000000, (GLfloat) - 0.290285,
-       (GLfloat) - 0.881921, (GLfloat) - 0.000000, (GLfloat) - 0.471397,
-       (GLfloat) - 0.773010, (GLfloat) - 0.000000, (GLfloat) - 0.634393,
-       (GLfloat) - 0.634393, (GLfloat) - 0.000000, (GLfloat) - 0.773010,
-       (GLfloat) - 0.471397, (GLfloat) - 0.000000, (GLfloat) - 0.881921,
-       (GLfloat) - 0.290285, (GLfloat) - 0.000000, (GLfloat) - 0.956940,
-       (GLfloat) - 0.098017, (GLfloat) - 0.000000, (GLfloat) - 0.995185,
-       (GLfloat) - 0.000000, (GLfloat) - 1.000000, (GLfloat) - 0.000000,
+       0, 0, 1,
+       0.098017, 0.995185, 0,
+       0.290285, 0.95694, 0,
+       0.471397, 0.881921, 0,
+       0.634393, 0.77301, 0,
+       0.77301, 0.634393, 0,
+       0.881921, 0.471397, 0,
+       0.95694, 0.290285, 0,
+       0.995185, 0.098017, 0,
+       0.995185, -0.098017, 0,
+       0.95694, -0.290285, 0,
+       0.881921, -0.471397, 0,
+       0.77301, -0.634393, 0,
+       0.634393, -0.77301, 0,
+       0.471397, -0.881921, 0,
+       0.290285, -0.95694, 0,
+       0.098017, -0.995185, 0,
+       -0.098017, -0.995185, 0,
+       -0.290285, -0.95694, 0,
+       -0.471397, -0.881921, 0,
+       -0.634393, -0.77301, 0,
+       -0.77301, -0.634393, 0,
+       -0.881921, -0.471397, 0,
+       -0.95694, -0.290285, 0,
+       -0.995185, -0.098017, 0,
+       -0.995185, 0.098017, 0,
+       -0.95694, 0.290285, 0,
+       -0.881921, 0.471397, 0,
+       -0.77301, 0.634393, 0,
+       -0.634393, 0.77301, 0,
+       -0.471397, 0.881921, 0,
+       -0.290285, 0.95694, 0,
+       -0.098017, 0.995185, 0,
+       0, 0, -1,
+       0, 1, 0,
+       0.098017, 0, -0.995185,
+       0.290285, 0, -0.95694,
+       0.471397, 0, -0.881921,
+       0.634393, 0, -0.77301,
+       0.77301, 0, -0.634393,
+       0.881921, 0, -0.471397,
+       0.95694, 0, -0.290285,
+       0.995185, 0, -0.098017,
+       0.995185, 0, 0.098017,
+       0.95694, 0, 0.290285,
+       0.881921, 0, 0.471397,
+       0.77301, 0, 0.634393,
+       0.634393, 0, 0.77301,
+       0.471397, 0, 0.881921,
+       0.290285, 0, 0.95694,
+       0.098017, 0, 0.995185,
+       -0.098017, 0, 0.995185,
+       -0.290285, 0, 0.95694,
+       -0.471397, 0, 0.881921,
+       -0.634393, 0, 0.77301,
+       -0.77301, 0, 0.634393,
+       -0.881921, 0, 0.471397,
+       -0.95694, 0, 0.290285,
+       -0.995185, 0, 0.098017,
+       -0.995185, 0, -0.098017,
+       -0.95694, 0, -0.290285,
+       -0.881921, 0, -0.471397,
+       -0.77301, 0, -0.634393,
+       -0.634393, 0, -0.77301,
+       -0.471397, 0, -0.881921,
+       -0.290285, 0, -0.95694,
+       -0.098017, 0, -0.995185,
+       0, -1, 0,
 };
 
 static const unsigned short int ElbowCoins_POLS[] =
index e47361eaaaf8a1e0fffdacbd1fe3ee4ec8049e4a..6a913aac5089b854c0f14faaff5465538d7850e3 100644 (file)
@@ -49,6 +49,7 @@ static const char sccsid[] = "@(#)pipes.c     4.07 97/11/24 xlockmore";
                                        "*size:                 500     \n"                     \
                        "*showFPS:      False   \n"                 \
                        "*fpsSolid:     True    \n"
+
 # define refresh_pipes 0
 # define pipes_handle_event 0
 # include "xlockmore.h"                                /* from the xscreensaver distribution */
@@ -59,6 +60,7 @@ static const char sccsid[] = "@(#)pipes.c     4.07 97/11/24 xlockmore";
 #ifdef USE_GL
 
 #include "buildlwo.h"
+#include "teapot.h"
 
 #define DEF_FACTORY     "2"
 #define DEF_FISHEYE     "True"
@@ -153,7 +155,8 @@ typedef struct {
        const float *system_color;
        GLfloat     initial_rotation;
        GLuint      valve, bolts, betweenbolts, elbowbolts, elbowcoins;
-       GLuint      guagehead, guageface, guagedial, guageconnector;
+       GLuint      guagehead, guageface, guagedial, guageconnector, teapot;
+    int         teapot_polys;
     int         reset;
        GLXContext *glx_context;
 } pipesstruct;
@@ -461,18 +464,60 @@ MakeGuage(ModeInfo * mi, int newdir)
        return (1);
 }
 
+
+static GLuint
+build_teapot(ModeInfo *mi)
+{
+  pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+  GLuint list = glGenLists(1);
+  if (!list) return 0;
+  glNewList(list, GL_COMPILE);
+  pp->teapot_polys = unit_teapot (12, MI_IS_WIREFRAME(mi));
+  glEndList();
+  return list;
+}
+
+
+static void
+MakeTeapot(ModeInfo * mi, int newdir)
+{
+  pipesstruct *pp = &pipes[MI_SCREEN(mi)];
+
+  switch (newdir) {
+  case dirUP:
+  case dirDOWN:
+    glRotatef(90.0, 1.0, 0.0, 0.0);
+    glRotatef(NRAND(3) * 90.0, 0.0, 0.0, 1.0);
+    break;
+  case dirLEFT:
+  case dirRIGHT:
+    glRotatef(90.0, 0.0, -1.0, 0.0);
+    glRotatef((NRAND(3) * 90.0) - 90.0, 0.0, 0.0, 1.0);
+    break;
+  case dirNEAR:
+  case dirFAR:
+    glRotatef(NRAND(4) * 90.0, 0.0, 0.0, 1.0);
+    break;
+  }
+
+  glCallList(pp->teapot);
+  mi->polygon_count += pp->teapot_polys;
+  glFrontFace(GL_CCW);
+}
+
+
 static void
 MakeShape(ModeInfo * mi, int newdir)
 {
-       switch (NRAND(2)) {
-               case 1:
-                       if (!MakeGuage(mi, newdir))
-                               MakeTube(mi, newdir);
-                       break;
-               default:
-                       MakeValve(mi, newdir);
-                       break;
-       }
+  int n = NRAND(100);
+  if (n < 50) {
+    if (!MakeGuage(mi, newdir))
+      MakeTube(mi, newdir);
+  } else if (n < 98) {
+    MakeValve(mi, newdir);
+  } else {
+    MakeTeapot(mi,newdir);
+  }
 }
 
 static void
@@ -645,6 +690,7 @@ init_pipes (ModeInfo * mi)
                        pp->guageface = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_GuageFace);
                        pp->guagedial = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_GuageDial);
                        pp->guageconnector = BuildLWO(MI_IS_WIREFRAME(mi), &LWO_GuageConnector);
+                       pp->teapot = build_teapot(mi);
                }
                /* else they are all 0, thanks to calloc(). */
 
@@ -735,7 +781,7 @@ draw_pipes (ModeInfo * mi)
                if (++pp->system_number > pp->number_of_systems) {
           /* pause doing nothing for N seconds before clearing the screen. */
           int secs = 3;
-          pp->reset = secs * 1000000 / MI_PAUSE(mi);
+          pp->reset = secs * 1000000 / (MI_PAUSE(mi) ? MI_PAUSE(mi) : 100);
                } else {
                        pinit(mi, 0);
                }
@@ -964,10 +1010,10 @@ draw_pipes (ModeInfo * mi)
 
        glFlush();
 
+    if (mi->fps_p) do_fps (mi);
+
     if (dbuf_p)
       glXSwapBuffers(display, window);
-
-    if (mi->fps_p) do_fps (mi);
 }
 
 #ifndef STANDALONE
@@ -1019,6 +1065,8 @@ release_pipes (ModeInfo * mi)
                                        glDeleteLists(pp->guagedial, 1);
                                if (pp->guageconnector)
                                        glDeleteLists(pp->guageconnector, 1);
+                               if (pp->teapot)
+                                       glDeleteLists(pp->teapot, 1);
                        }
                }
 
index 22a13aa26a77aa95166b4b92278868307bab1efd..b58a511ba5946fba87b46224247076f6b7407d45 100644 (file)
@@ -59,8 +59,8 @@ Whether to allow tight turns.
 .B \-db | \-no-db
 Whether to double-buffer.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 44badca99ba0314e4227c4f89b8aa32a3d61be63..7082a4e36e0a512aa857f056fd8d3b804b6893f5 100644 (file)
@@ -18,9 +18,9 @@
 #define DEFAULTS       "*delay:        30000         \n" \
                        "*showFPS:      False         \n" \
                        "*wireframe:    False         \n" \
-                       "*titleFont:  -*-times-bold-r-normal-*-180-*\n" \
-                       "*titleFont2: -*-times-bold-r-normal-*-120-*\n" \
-                       "*titleFont3: -*-times-bold-r-normal-*-80-*\n"  \
+                       "*titleFont:  -*-helvetica-medium-r-normal-*-140-*\n" \
+                       "*titleFont2: -*-helvetica-medium-r-normal-*-100-*\n" \
+                       "*titleFont3: -*-helvetica-medium-r-normal-*-80-*\n"  \
 
 
 # define refresh_polyhedra 0
 #include "colors.h"
 #include "rotator.h"
 #include "gltrackball.h"
+#include "teapot.h"
+
+#ifndef HAVE_COCOA
+# define XK_MISCELLANY
+# include <X11/keysymdef.h>
+#endif
 
 #ifdef USE_GL /* whole file */
 
@@ -165,9 +171,9 @@ startup_blurb (ModeInfo *mi)
   glColor3f (0.8, 0.8, 0);
   print_gl_string (mi->dpy, bp->xfont1, bp->font1_dlist,
                    mi->xgwa.width, mi->xgwa.height,
-                   mi->xgwa.width - (string_width (bp->xfont1, s) + 40),
+                   mi->xgwa.width - (string_width (bp->xfont1, s, 0) + 40),
                    mi->xgwa.height - 10,
-                   s);
+                   s, False);
   glFinish();
   glXSwapBuffers(MI_DISPLAY(mi), MI_WINDOW(mi));
 }
@@ -238,13 +244,21 @@ polyhedra_handle_event (ModeInfo *mi, XEvent *event)
       char c = 0;
       XLookupString (&event->xkey, &c, 1, &keysym, 0);
 
+# ifdef HAVE_COCOA
+#  define XK_Right -1
+#  define XK_Left -1
+#  define XK_Up -1
+#  define XK_Down -1
+# endif
       bp->change_to = -1;
       if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
         bp->change_to = random() % bp->npolyhedra;
-      else if (c == '>' || c == '.' || c == '+' || c == '=')
+      else if (c == '>' || c == '.' || c == '+' || c == '=' ||
+               keysym == XK_Right || keysym == XK_Up)
         bp->change_to = (bp->which + 1) % bp->npolyhedra;
       else if (c == '<' || c == ',' || c == '-' || c == '_' ||
-               c == '\010' || c == '\177')
+               c == '\010' || c == '\177' ||
+               keysym == XK_Left || keysym == XK_Down)
         bp->change_to = (bp->which + bp->npolyhedra - 1) % bp->npolyhedra;
 
       if (bp->change_to != -1)
@@ -309,7 +323,7 @@ new_label (ModeInfo *mi)
         print_gl_string (mi->dpy, f, fl,
                          mi->xgwa.width, mi->xgwa.height,
                          10, mi->xgwa.height - 10,
-                         label);
+                         label, False);
       }
     }
   glEndList ();
@@ -364,35 +378,48 @@ new_polyhedron (ModeInfo *mi)
     glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
 
   glNewList (bp->object_list, GL_COMPILE);
-  for (i = 0; i < p->nfaces; i++)
+  if (bp->which == bp->npolyhedra-1)
     {
-      int j;
-      face *f = &p->faces[i];
-
-      if (f->color > 64 || f->color < 0) abort();
-      if (wire)
-        glColor3f (0, 1, 0);
-      else
+      glScalef (0.8, 0.8, 0.8);
+      p->nfaces = unit_teapot (6, wire);
+      p->nedges = p->nfaces * 2;           /* #### is this right? */
+      p->npoints = p->nfaces / 3;          /* #### is this right? */
+      p->logical_faces = p->nfaces;
+      p->logical_vertices = p->npoints;
+    }
+  else
+    {
+      glFrontFace (GL_CCW);
+      for (i = 0; i < p->nfaces; i++)
         {
-          GLfloat bcolor[4];
-          bcolor[0] = bp->colors[f->color].red   / 65536.0;
-          bcolor[1] = bp->colors[f->color].green / 65536.0;
-          bcolor[2] = bp->colors[f->color].blue  / 65536.0;
-          bcolor[2] = 1.0;
-          glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, bcolor);
-        }
+          int j;
+          face *f = &p->faces[i];
 
-      kludge_normal (f->npoints, f->points, p->points);
+          if (f->color > 64 || f->color < 0) abort();
+          if (wire)
+            glColor3f (0, 1, 0);
+          else
+            {
+              GLfloat bcolor[4];
+              bcolor[0] = bp->colors[f->color].red   / 65536.0;
+              bcolor[1] = bp->colors[f->color].green / 65536.0;
+              bcolor[2] = bp->colors[f->color].blue  / 65536.0;
+              bcolor[2] = 1.0;
+              glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, bcolor);
+            }
+
+          kludge_normal (f->npoints, f->points, p->points);
       
-      gluTessBeginPolygon (tobj, 0);
-      gluTessBeginContour (tobj);
-      for (j = 0; j < f->npoints; j++)
-        {
-          point *pp = &p->points[f->points[j]];
-          gluTessVertex (tobj, &pp->x, &pp->x);
+          gluTessBeginPolygon (tobj, 0);
+          gluTessBeginContour (tobj);
+          for (j = 0; j < f->npoints; j++)
+            {
+              point *pp = &p->points[f->points[j]];
+              gluTessVertex (tobj, &pp->x, &pp->x);
+            }
+          gluTessEndContour (tobj);
+          gluTessEndPolygon (tobj);
         }
-      gluTessEndContour (tobj);
-      gluTessEndPolygon (tobj);
     }
   glEndList ();
 
@@ -401,6 +428,23 @@ new_polyhedron (ModeInfo *mi)
 }
 
 
+static void
+construct_teapot (ModeInfo *mi)
+{
+  polyhedra_configuration *bp = &bps[MI_SCREEN(mi)];
+  int n = bp->npolyhedra-1;
+  polyhedron *p = (polyhedron *) calloc (1, sizeof(*p));
+  p->number = n;
+  p->wythoff = strdup("X00398|1984");
+  p->name = strdup("Teapot");
+  p->dual = strdup("");
+  p->config = strdup("Melitta");
+  p->group = strdup("Teapotahedral (Newell[1975])");
+  p->class = strdup("Utah Teapotahedron");
+  bp->polyhedra[n] = p;
+}
+
+
 ENTRYPOINT void 
 init_polyhedra (ModeInfo *mi)
 {
@@ -466,6 +510,7 @@ init_polyhedra (ModeInfo *mi)
   }
 
   bp->npolyhedra = construct_polyhedra (&bp->polyhedra);
+  construct_teapot (mi);
 
   bp->object_list = glGenLists (1);
   bp->title_list  = glGenLists (1);
@@ -478,7 +523,14 @@ init_polyhedra (ModeInfo *mi)
     if (!strcasecmp (do_which_str, "random"))
       ;
     else if (1 == sscanf (do_which_str, " %d %c", &x, &c))
-      do_which = x;
+      {
+        if (x >= 0 && x < bp->npolyhedra) 
+          do_which = x;
+        else
+          fprintf (stderr, 
+                   "%s: polyhedron %d does not exist: there are only %d.\n",
+                   progname, x, bp->npolyhedra-1);
+      }
     else if (*do_which_str)
       {
         char *s;
@@ -487,6 +539,7 @@ init_polyhedra (ModeInfo *mi)
 
         for (x = 0; x < bp->npolyhedra; x++)
           if (!strcasecmp (do_which_str, bp->polyhedra[x]->name) ||
+              !strcasecmp (do_which_str, bp->polyhedra[x]->class) ||
               !strcasecmp (do_which_str, bp->polyhedra[x]->wythoff) ||
               !strcasecmp (do_which_str, bp->polyhedra[x]->config))
             {
index 72538b34a0042e35b2746ea83c7d10c8804e64a9..c69f3540c4f60deb7c22c924b917d7d6441917b3 100644 (file)
@@ -91,7 +91,7 @@ extern const char *progname;
     } while(0)
 
 #define Malloc(lvalue,n,type) do {\
-       if (!(lvalue = (type*) malloc((n) * sizeof(type)))) \
+       if (!(lvalue = (type*) calloc((n), sizeof(type)))) \
            Err("out of memory");\
     } while(0)
 
@@ -2418,7 +2418,7 @@ construct_polyhedra (polyhedron ***polyhedra_ret)
 
   int count = 0;
   polyhedron **result;
-  Malloc (result, last_uniform * 2 + 1, polyhedron*);
+  Malloc (result, last_uniform * 2 + 3, polyhedron*);
 
   while (index < last_uniform) {
     char sym[4];
@@ -2443,5 +2443,6 @@ construct_polyhedra (polyhedron ***polyhedra_ret)
   }
 
   *polyhedra_ret = result;
+  count++; /* leave room for teapot */
   return count;
 }
index c037e22fc96bceb90a3c0f50e2d624abf7242b5e..b4e1cca34a1ffc19cb85962d250bd9719a578d4d 100644 (file)
@@ -76,8 +76,8 @@ Whthoff symbol.
 .B \-wireframe | \-no-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH KEY BINDINGS
 When running in a window, you can rotate the object with the mouse.
 Also, the following keystrokes are defined:
index b17752f4bb5b075b1538d5149e6cf920870ffbd3..34e00aa63c09ab9a6641bfc26757d4dd704f7b4c 100644 (file)
@@ -180,6 +180,8 @@ button pressed the polytope is rotated in 4D, i.e., around the xy, xz,
 and yz planes.  To examine the polytope at your leisure, it is best to
 set all speeds to 0.  Otherwise, the polytope will rotate while the
 left mouse button is not pressed.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 768e911a49c5c8b984c894b3d0331e86ccc455ec..ea7286d540847877989030c1280464257f22040f 100644 (file)
@@ -38,9 +38,7 @@ or the id number (decimal or hex) of a specific visual.
 Render in wireframe (with hidden line removal) instead of as textured solids.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 986f284634fbbc6119bec7eb4a870c53ed84a76b..12b16a80de83aed4fe916cf957324dda9e1dbe35 100644 (file)
@@ -77,7 +77,7 @@
 #define HEIGHT 600
 
 #define NUM_QUADS 5
-#define DEF_NUM_QUADS  "5"
+#define DEF_QUADS      "5"
 #define DEF_LIGHT              "False"
 #define DEF_WIRE               "False"
 #define DEF_BLEND      "True"
@@ -116,8 +116,8 @@ static XrmOptionDescRec opts[] = {
   {"+antialias",   ".pulsar.antialias",   XrmoptionNoArg, "false" },
   {"-texture",   ".pulsar.texture",   XrmoptionNoArg, "true" },
   {"+texture",   ".pulsar.texture",   XrmoptionNoArg, "false" },
-  {"-texture_quality",   ".pulsar.texture_quality",   XrmoptionNoArg, "true" },
-  {"+texture_quality",   ".pulsar.texture_quality",   XrmoptionNoArg, "false" },
+  {"-texture_quality",   ".pulsar.textureQuality",   XrmoptionNoArg, "true" },
+  {"+texture_quality",   ".pulsar.textureQuality",   XrmoptionNoArg, "false" },
   {"-mipmap",   ".pulsar.mipmap",   XrmoptionNoArg, "true" },
   {"+mipmap",   ".pulsar.mipmap",   XrmoptionNoArg, "false" },
   {"-do_depth",   ".pulsar.doDepth",   XrmoptionNoArg, "true" },
@@ -127,14 +127,14 @@ static XrmOptionDescRec opts[] = {
 
 
 static argtype vars[] = {
-  {&num_quads,    "quads",     "Quads",     DEF_NUM_QUADS, t_Int},
+  {&num_quads,    "quads",     "Quads",     DEF_QUADS,     t_Int},
   {&do_light,     "light",     "Light",     DEF_LIGHT,     t_Bool},
   {&do_wire,      "wire",      "Wire",      DEF_WIRE,      t_Bool},
   {&do_blend,     "blend",     "Blend",     DEF_BLEND,     t_Bool},
   {&do_fog,       "fog",       "Fog",       DEF_FOG,       t_Bool},
   {&do_antialias, "antialias", "Antialias", DEF_ANTIALIAS, t_Bool},
   {&do_texture,   "texture",   "Texture",   DEF_TEXTURE,   t_Bool},
-  {&do_texture_quality, "texture_quality", "Texture_quality", DEF_TEXTURE_QUALITY,   t_Bool},
+  {&do_texture_quality, "textureQuality", "TextureQuality", DEF_TEXTURE_QUALITY,   t_Bool},
   {&do_mipmap,    "mipmap",    "Mipmap",    DEF_MIPMAP,    t_Bool},
   {&do_depth,    "doDepth",    "DoDepth",   DEF_DO_DEPTH,  t_Bool},
   {&which_image, "image",      "Image",     DEF_IMAGE,     t_String},
@@ -435,6 +435,7 @@ static GLvoid drawScene(ModeInfo * mi)
   /* use XYZ scaling factors to change the size of the pulsar */
   glScalef(gp->scale_x, gp->scale_y, gp->scale_z);
   drawQuads(gp);
+  mi->polygon_count = num_quads;
 
   /* update the scaling factors- cyclic */
   gp->scale_x = cos(gp->frame/360.)*10.;
index d531996922781ad79f33d3514faecdf015886fa6..f3b10090b38e92e156eae344e1ef051e3ce2672b 100644 (file)
@@ -76,8 +76,8 @@ Whether to enable texture filtering.
 .B \-do_depth | \-no-do_depth
 Whether to enable depth buffer.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 3c671aff04b5edf087d523e97e8a471aba9082df..3a798fd6623220f178d0c0af438d17541dcfc9ec 100644 (file)
@@ -77,6 +77,7 @@ typedef struct {
   int board[MAXBOARD][MAXBOARD];
   int steps, colorset, BOARDSIZE;
   double theta;
+  int queen_polys;
 
 } Queenscreen;
 
@@ -244,15 +245,17 @@ static GLfloat findAlpha(Queenscreen *qs)
 }
 
 /* draw pieces */
-static void drawPieces(Queenscreen *qs) 
+static int drawPieces(Queenscreen *qs) 
 {
   int i, j;
+  int polys = 0;
 
   for(i = 0; i < qs->BOARDSIZE; ++i) {
     for(j = 0; j < qs->BOARDSIZE; ++j) {
       if(qs->board[i][j]) {
        glColor3fv(colors[qs->colorset][i%2]);
        glCallList(QUEEN);
+        polys += qs->queen_polys;
       }
       
       glTranslatef(1.0, 0.0, 0.0);
@@ -260,12 +263,14 @@ static void drawPieces(Queenscreen *qs)
     
     glTranslatef(-1.0*qs->BOARDSIZE, 0.0, 1.0);
   }
+  return polys;
 }
 
 /** reflectionboard */
-static void draw_reflections(Queenscreen *qs) 
+static int draw_reflections(Queenscreen *qs) 
 {
   int i, j;
+  int polys = 0;
 
   glEnable(GL_STENCIL_TEST);
   glStencilFunc(GL_ALWAYS, 1, 1);
@@ -283,6 +288,7 @@ static void draw_reflections(Queenscreen *qs)
       glVertex3f(i + 1.0, 0.0, j + 1.0);
       glVertex3f(i + 1.0, 0.0, j);
       glVertex3f(i, 0.0, j);
+      polys++;
     }
   }
   glEnd();
@@ -296,7 +302,7 @@ static void draw_reflections(Queenscreen *qs)
   glScalef(1.0, -1.0, 1.0);
   glTranslatef(0.5, 0.001, 0.5);
   glLightfv(GL_LIGHT0, GL_POSITION, qs->position);
-  drawPieces(qs);
+  polys += drawPieces(qs);
   glPopMatrix();
   glDisable(GL_STENCIL_TEST);
 
@@ -306,12 +312,14 @@ static void draw_reflections(Queenscreen *qs)
   glEnable(GL_CULL_FACE);
   glCullFace(GL_BACK);
   glColorMask(1,1,1,1);
+  return polys;
 }
 
 /* draw board */
-static void drawBoard(Queenscreen *qs) 
+static int drawBoard(Queenscreen *qs) 
 {
   int i, j;
+  int polys = 0;
 
   glBegin(GL_QUADS);
 
@@ -327,13 +335,16 @@ static void drawBoard(Queenscreen *qs)
       glVertex3f(i + 1.0, 0.0, j + 1.0);
       glVertex3f(i + 1.0, 0.0, j);
       glVertex3f(i, 0.0, j);
+      polys++;
     }
 
   glEnd();
+  return polys;
 }
 
-static void display(Queenscreen *qs) 
+static int display(Queenscreen *qs) 
 {
+  int polys = 0;
   glClear(clearbits);
   
   glMatrixMode(GL_MODELVIEW);
@@ -364,17 +375,17 @@ static void display(Queenscreen *qs)
 
   /* draw reflections */
   if(!wire) {
-    draw_reflections(qs);
+    polys += draw_reflections(qs);
     glEnable(GL_BLEND);
   }
-  drawBoard(qs);
+  polys += drawBoard(qs);
   if(!wire)
     glDisable(GL_BLEND);
 
   glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.1);
 
   glTranslatef(0.5, 0.0, 0.5);
-  drawPieces(qs);
+  polys += drawPieces(qs);
 
   /* rotate camera */
   if(!qs->button_down_p)
@@ -388,6 +399,7 @@ static void display(Queenscreen *qs)
     qs->colorset = (qs->colorset+1)%COLORSETS;
     go(qs);
   }
+  return polys;
 }
 
 static const GLfloat spidermodel[][3] =
@@ -413,20 +425,24 @@ static const GLfloat spidermodel[][3] =
 #define EPSILON 0.001
 
 /** draws cylindermodel */
-static void draw_model(int chunks, const GLfloat model[][3], int r) 
+static int draw_model(int chunks, const GLfloat model[][3], int r) 
 {
   int i = 0;
+  int polys = 0;
   GLUquadricObj *quadric = gluNewQuadric();
   glPushMatrix();
   glRotatef(-90.0, 1.0, 0.0, 0.0);
   
   for(i = 0; i < chunks; ++i) {
-    if(model[i][0] > EPSILON || model[i][1] > EPSILON)
+    if(model[i][0] > EPSILON || model[i][1] > EPSILON) {
       gluCylinder(quadric, model[i][0], model[i][1], model[i][2], r, 1);
+      polys += r;
+    }
     glTranslatef(0.0, 0.0, model[i][2]);
   }
   
   glPopMatrix();
+  return polys;
 }
 
 ENTRYPOINT void reshape_queens(ModeInfo *mi, int width, int height) 
@@ -462,7 +478,7 @@ ENTRYPOINT void init_queens(ModeInfo *mi)
 
   glClearColor(0.0, 0.0, 0.0, 0.0);
   glNewList(QUEEN, GL_COMPILE);
-  draw_model(countof(spidermodel), spidermodel, 24);
+  qs->queen_polys = draw_model(countof(spidermodel), spidermodel, 24);
   glEndList();
 
   if(flat)
@@ -499,7 +515,7 @@ ENTRYPOINT void draw_queens(ModeInfo *mi)
 
   glXMakeCurrent(disp, w, *(qs->glx_context));
 
-  display(qs);
+  mi->polygon_count = display(qs);
 
   if(mi->fps_p) do_fps(mi);
   glFinish(); 
index c01c831c04c3af5f226381b9cc5c1bd0e83173d6..47fc3f4cb1fd0ae7d9fc68dbc6244617ef358b12 100644 (file)
@@ -36,9 +36,7 @@ or the id number (decimal or hex) of a specific visual.
 .B \-wireframe
 Render in wireframe instead of solid.
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index fdc4313be1ed4d577cfe48e273dc6cb9f78a709d..525c6e8fe012fb3ce045e11a8f0976626196e055 100644 (file)
@@ -510,7 +510,7 @@ sizeRow(rubikstruct * rp, int face)
 }
 
 static Bool
-draw_stickerless_cubit(rubikstruct *rp)
+draw_stickerless_cubit(rubikstruct *rp, unsigned long *polysP)
 {
        glBegin(GL_QUADS);
        glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray);
@@ -520,31 +520,37 @@ draw_stickerless_cubit(rubikstruct *rp)
        glVertex3f(CUBEROUND, -CUBEROUND, CUBELEN);
        glVertex3f(CUBEROUND, CUBEROUND, CUBELEN);
        glVertex3f(-CUBEROUND, CUBEROUND, CUBELEN);
+    (*polysP)++;
        glNormal3f(0.00, 0.00, -1.00);
        glVertex3f(-CUBEROUND, CUBEROUND, -CUBELEN);
        glVertex3f(CUBEROUND, CUBEROUND, -CUBELEN);
        glVertex3f(CUBEROUND, -CUBEROUND, -CUBELEN);
        glVertex3f(-CUBEROUND, -CUBEROUND, -CUBELEN);
+    (*polysP)++;
        glNormal3f(-1.00, 0.00, 0.00);
        glVertex3f(-CUBELEN, -CUBEROUND, CUBEROUND);
        glVertex3f(-CUBELEN, CUBEROUND, CUBEROUND);
        glVertex3f(-CUBELEN, CUBEROUND, -CUBEROUND);
        glVertex3f(-CUBELEN, -CUBEROUND, -CUBEROUND);
+    (*polysP)++;
        glNormal3f(1.00, 0.00, 0.00);
        glVertex3f(CUBELEN, -CUBEROUND, -CUBEROUND);
        glVertex3f(CUBELEN, CUBEROUND, -CUBEROUND);
        glVertex3f(CUBELEN, CUBEROUND, CUBEROUND);
        glVertex3f(CUBELEN, -CUBEROUND, CUBEROUND);
+    (*polysP)++;
        glNormal3f(0.00, -1.00, 0.00);
        glVertex3f(CUBEROUND, -CUBELEN, -CUBEROUND);
        glVertex3f(CUBEROUND, -CUBELEN, CUBEROUND);
        glVertex3f(-CUBEROUND, -CUBELEN, CUBEROUND);
        glVertex3f(-CUBEROUND, -CUBELEN, -CUBEROUND);
+    (*polysP)++;
        glNormal3f(0.00, 1.00, 0.00);
        glVertex3f(-CUBEROUND, CUBELEN, -CUBEROUND);
        glVertex3f(-CUBEROUND, CUBELEN, CUBEROUND);
        glVertex3f(CUBEROUND, CUBELEN, CUBEROUND);
        glVertex3f(CUBEROUND, CUBELEN, -CUBEROUND);
+    (*polysP)++;
 
        /* Edges of cubit */
        glNormal3f(-1.00, -1.00, 0.00);
@@ -552,61 +558,73 @@ draw_stickerless_cubit(rubikstruct *rp)
        glVertex3f(-CUBEROUND, -CUBELEN, CUBEROUND);
        glVertex3f(-CUBELEN, -CUBEROUND, CUBEROUND);
        glVertex3f(-CUBELEN, -CUBEROUND, -CUBEROUND);
+    (*polysP)++;
        glNormal3f(1.00, 1.00, 0.00);
        glVertex3f(CUBEROUND, CUBELEN, -CUBEROUND);
        glVertex3f(CUBEROUND, CUBELEN, CUBEROUND);
        glVertex3f(CUBELEN, CUBEROUND, CUBEROUND);
        glVertex3f(CUBELEN, CUBEROUND, -CUBEROUND);
+    (*polysP)++;
        glNormal3f(-1.00, 1.00, 0.00);
        glVertex3f(-CUBELEN, CUBEROUND, -CUBEROUND);
        glVertex3f(-CUBELEN, CUBEROUND, CUBEROUND);
        glVertex3f(-CUBEROUND, CUBELEN, CUBEROUND);
        glVertex3f(-CUBEROUND, CUBELEN, -CUBEROUND);
+    (*polysP)++;
        glNormal3f(1.00, -1.00, 0.00);
        glVertex3f(CUBELEN, -CUBEROUND, -CUBEROUND);
        glVertex3f(CUBELEN, -CUBEROUND, CUBEROUND);
        glVertex3f(CUBEROUND, -CUBELEN, CUBEROUND);
        glVertex3f(CUBEROUND, -CUBELEN, -CUBEROUND);
+    (*polysP)++;
        glNormal3f(0.00, -1.00, -1.00);
        glVertex3f(-CUBEROUND, -CUBEROUND, -CUBELEN);
        glVertex3f(CUBEROUND, -CUBEROUND, -CUBELEN);
        glVertex3f(CUBEROUND, -CUBELEN, -CUBEROUND);
        glVertex3f(-CUBEROUND, -CUBELEN, -CUBEROUND);
+    (*polysP)++;
        glNormal3f(0.00, 1.00, 1.00);
        glVertex3f(-CUBEROUND, CUBEROUND, CUBELEN);
        glVertex3f(CUBEROUND, CUBEROUND, CUBELEN);
        glVertex3f(CUBEROUND, CUBELEN, CUBEROUND);
        glVertex3f(-CUBEROUND, CUBELEN, CUBEROUND);
+    (*polysP)++;
        glNormal3f(0.00, -1.00, 1.00);
        glVertex3f(-CUBEROUND, -CUBELEN, CUBEROUND);
        glVertex3f(CUBEROUND, -CUBELEN, CUBEROUND);
        glVertex3f(CUBEROUND, -CUBEROUND, CUBELEN);
        glVertex3f(-CUBEROUND, -CUBEROUND, CUBELEN);
+    (*polysP)++;
        glNormal3f(0.00, 1.00, -1.00);
        glVertex3f(-CUBEROUND, CUBELEN, -CUBEROUND);
        glVertex3f(CUBEROUND, CUBELEN, -CUBEROUND);
        glVertex3f(CUBEROUND, CUBEROUND, -CUBELEN);
        glVertex3f(-CUBEROUND, CUBEROUND, -CUBELEN);
+    (*polysP)++;
        glNormal3f(-1.00, 0.00, -1.00);
        glVertex3f(-CUBELEN, -CUBEROUND, -CUBEROUND);
        glVertex3f(-CUBELEN, CUBEROUND, -CUBEROUND);
        glVertex3f(-CUBEROUND, CUBEROUND, -CUBELEN);
        glVertex3f(-CUBEROUND, -CUBEROUND, -CUBELEN);
+    (*polysP)++;
        glNormal3f(1.00, 0.00, 1.00);
        glVertex3f(CUBELEN, -CUBEROUND, CUBEROUND);
        glVertex3f(CUBELEN, CUBEROUND, CUBEROUND);
        glVertex3f(CUBEROUND, CUBEROUND, CUBELEN);
        glVertex3f(CUBEROUND, -CUBEROUND, CUBELEN);
+    (*polysP)++;
        glNormal3f(1.00, 0.00, -1.00);
        glVertex3f(CUBEROUND, -CUBEROUND, -CUBELEN);
        glVertex3f(CUBEROUND, CUBEROUND, -CUBELEN);
        glVertex3f(CUBELEN, CUBEROUND, -CUBEROUND);
        glVertex3f(CUBELEN, -CUBEROUND, -CUBEROUND);
+    (*polysP)++;
        glNormal3f(-1.00, 0.00, 1.00);
        glVertex3f(-CUBEROUND, -CUBEROUND, CUBELEN);
        glVertex3f(-CUBEROUND, CUBEROUND, CUBELEN);
        glVertex3f(-CUBELEN, CUBEROUND, CUBEROUND);
        glVertex3f(-CUBELEN, -CUBEROUND, CUBEROUND);
+    (*polysP)++;
        glEnd();
        glBegin(GL_TRIANGLES);
        glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialGray);
@@ -615,46 +633,55 @@ draw_stickerless_cubit(rubikstruct *rp)
        glVertex3f(CUBEROUND, CUBEROUND, CUBELEN);
        glVertex3f(CUBELEN, CUBEROUND, CUBEROUND);
        glVertex3f(CUBEROUND, CUBELEN, CUBEROUND);
+    (*polysP)++;
        glNormal3f(-1.00, -1.00, -1.00);
        glVertex3f(-CUBEROUND, -CUBELEN, -CUBEROUND);
        glVertex3f(-CUBELEN, -CUBEROUND, -CUBEROUND);
        glVertex3f(-CUBEROUND, -CUBEROUND, -CUBELEN);
+    (*polysP)++;
        glNormal3f(-1.00, 1.00, 1.00);
        glVertex3f(-CUBEROUND, CUBEROUND, CUBELEN);
        glVertex3f(-CUBEROUND, CUBELEN, CUBEROUND);
+    (*polysP)++;
        glVertex3f(-CUBELEN, CUBEROUND, CUBEROUND);
        glNormal3f(1.00, -1.00, -1.00);
        glVertex3f(CUBELEN, -CUBEROUND, -CUBEROUND);
        glVertex3f(CUBEROUND, -CUBELEN, -CUBEROUND);
        glVertex3f(CUBEROUND, -CUBEROUND, -CUBELEN);
+    (*polysP)++;
        glNormal3f(1.00, -1.00, 1.00);
        glVertex3f(CUBEROUND, -CUBEROUND, CUBELEN);
        glVertex3f(CUBEROUND, -CUBELEN, CUBEROUND);
        glVertex3f(CUBELEN, -CUBEROUND, CUBEROUND);
+    (*polysP)++;
        glNormal3f(-1.00, 1.00, -1.00);
        glVertex3f(-CUBELEN, CUBEROUND, -CUBEROUND);
        glVertex3f(-CUBEROUND, CUBELEN, -CUBEROUND);
        glVertex3f(-CUBEROUND, CUBEROUND, -CUBELEN);
+    (*polysP)++;
        glNormal3f(-1.00, -1.00, 1.00);
        glVertex3f(-CUBEROUND, -CUBEROUND, CUBELEN);
        glVertex3f(-CUBELEN, -CUBEROUND, CUBEROUND);
        glVertex3f(-CUBEROUND, -CUBELEN, CUBEROUND);
+    (*polysP)++;
        glNormal3f(1.00, 1.00, -1.00);
        glVertex3f(CUBELEN, CUBEROUND, -CUBEROUND);
        glVertex3f(CUBEROUND, CUBEROUND, -CUBELEN);
        glVertex3f(CUBEROUND, CUBELEN, -CUBEROUND);
+    (*polysP)++;
        glEnd();
        return True;
 }
 
 static Bool
 draw_cubit(ModeInfo * mi,
-          int back, int front, int left, int right, int bottom, int top)
+          int back, int front, int left, int right, int bottom, int top,
+       unsigned long *polysP)
 {
        rubikstruct *rp = &rubik[MI_SCREEN(mi)];
        int         mono = MI_IS_MONO(mi);
 
-       if (!draw_stickerless_cubit(rp))
+       if (!draw_stickerless_cubit(rp, polysP))
                return False;
        if (back != NO_FACE) {
                glBegin(GL_POLYGON);
@@ -668,6 +695,7 @@ draw_cubit(ModeInfo * mi,
                glVertex3f(-STICKERSHORT, -STICKERLONG, -STICKERDEPTH);
                glVertex3f(-STICKERLONG, -STICKERSHORT, -STICKERDEPTH);
                glVertex3f(-STICKERLONG, STICKERSHORT, -STICKERDEPTH);
+        (*polysP)++;
                glEnd();
        }
        if (front != NO_FACE) {
@@ -682,6 +710,7 @@ draw_cubit(ModeInfo * mi,
                glVertex3f(-STICKERSHORT, STICKERLONG, STICKERDEPTH);
                glVertex3f(-STICKERLONG, STICKERSHORT, STICKERDEPTH);
                glVertex3f(-STICKERLONG, -STICKERSHORT, STICKERDEPTH);
+        (*polysP)++;
                glEnd();
        }
        if (left != NO_FACE) {
@@ -696,6 +725,7 @@ draw_cubit(ModeInfo * mi,
                glVertex3f(-STICKERDEPTH, -STICKERSHORT, -STICKERLONG);
                glVertex3f(-STICKERDEPTH, -STICKERLONG, -STICKERSHORT);
                glVertex3f(-STICKERDEPTH, -STICKERLONG, STICKERSHORT);
+        (*polysP)++;
                glEnd();
        }
        if (right != NO_FACE) {
@@ -710,6 +740,7 @@ draw_cubit(ModeInfo * mi,
                glVertex3f(STICKERDEPTH, -STICKERSHORT, STICKERLONG);
                glVertex3f(STICKERDEPTH, -STICKERLONG, STICKERSHORT);
                glVertex3f(STICKERDEPTH, -STICKERLONG, -STICKERSHORT);
+        (*polysP)++;
                glEnd();
        }
        if (bottom != NO_FACE) {
@@ -724,6 +755,7 @@ draw_cubit(ModeInfo * mi,
                glVertex3f(-STICKERLONG, -STICKERDEPTH, -STICKERSHORT);
                glVertex3f(-STICKERSHORT, -STICKERDEPTH, -STICKERLONG);
                glVertex3f(STICKERSHORT, -STICKERDEPTH, -STICKERLONG);
+        (*polysP)++;
                glEnd();
        }
        if (top != NO_FACE) {
@@ -738,6 +770,7 @@ draw_cubit(ModeInfo * mi,
                glVertex3f(STICKERLONG, STICKERDEPTH, -STICKERSHORT);
                glVertex3f(STICKERSHORT, STICKERDEPTH, -STICKERLONG);
                glVertex3f(-STICKERSHORT, STICKERDEPTH, -STICKERLONG);
+        (*polysP)++;
                glEnd();
        }
        return True;
@@ -789,7 +822,7 @@ draw_cube(ModeInfo * mi)
 #define MIDX(a) (((GLfloat)(2*a-MAXSIZEX+1))/2.0)
 #define MIDY(a) (((GLfloat)(2*a-MAXSIZEY+1))/2.0)
 #define MIDZ(a) (((GLfloat)(2*a-MAXSIZEZ+1))/2.0)
-#define DRAW_CUBIT(mi,b,f,l,r,bm,t) if (!draw_cubit(mi,b,f,l,r,bm,t)) return False
+#define DRAW_CUBIT(mi,b,f,l,r,bm,t) if (!draw_cubit(mi,b,f,l,r,bm,t,&mi->polygon_count)) return False
        rubikstruct *rp = &rubik[MI_SCREEN(mi)];
        RubikSlice  slice;
        GLfloat     rotatestep;
@@ -1900,6 +1933,7 @@ draw_rubik(ModeInfo * mi)
        if (!rp->glx_context)
                return;
 
+    mi->polygon_count = 0;
        glXMakeCurrent(display, window, *(rp->glx_context));
 
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
index 6b34c948b78448958cef13496be42596d5a42f71..08e5b94ec10b7c32299280762a7a93dfeca96845 100644 (file)
@@ -43,8 +43,8 @@ Size.  -20 - 20.  Default: -6.
 .B \-hideshuffling | \-no-hideshuffling
 Show Shuffling.  Boolean.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index c1d4177b3a3aeab2c1a9e5d3922a59a6b8769686..1f934296460859d5dd6d229889c78a0741dec945 100644 (file)
@@ -1,25 +1,25 @@
 #include "gllist.h"
 static const float data[]={
        0.698103,-0.159073,-0.698103,0.667578,0.838781,-0.667578,
-       0.928440,-0.144790,-0.342105,0.713281,0.838781,-0.591406,
+       0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
        0.918718,-0.113815,-0.378157,0.721812,0.890313,-0.595062,
        0.698103,-0.159073,-0.698103,0.667578,0.838781,-0.667578,
        0.918718,-0.113815,-0.378157,0.721812,0.890313,-0.595062,
        0.705394,-0.069557,-0.705394,0.674281,0.890313,-0.674281,
-       0.928440,-0.144790,-0.342105,0.713281,0.838781,-0.591406,
-       0.991208,-0.132313,-0.000000,0.728516,0.838781,-0.500000,
-       0.995164,-0.098230,0.000000,0.737656,0.890313,-0.500000,
-       0.995164,-0.098230,0.000000,0.737656,0.890313,-0.500000,
+       0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
+       0.991208,-0.132313,0,0.728516,0.838781,-0.5,
+       0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+       0.995164,-0.09823,0,0.737656,0.890313,-0.5,
        0.918718,-0.113815,-0.378157,0.721812,0.890313,-0.595062,
-       0.928440,-0.144790,-0.342105,0.713281,0.838781,-0.591406,
-       0.995164,-0.098230,0.000000,0.737656,0.890313,-0.500000,
-       0.911846,0.410531,-0.000000,0.738539,0.926712,-0.500000,
+       0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
+       0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+       0.911846,0.410531,0,0.738539,0.926712,-0.5,
        0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
        0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
        0.918718,-0.113815,-0.378157,0.721812,0.890313,-0.595062,
-       0.995164,-0.098230,0.000000,0.737656,0.890313,-0.500000,
+       0.995164,-0.09823,0,0.737656,0.890313,-0.5,
        0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
-       0.662330,0.350197,-0.662330,0.674539,0.926104,-0.674539,
+       0.66233,0.350197,-0.66233,0.674539,0.926104,-0.674539,
        0.705394,-0.069557,-0.705394,0.674281,0.890313,-0.674281,
        0.705394,-0.069557,-0.705394,0.674281,0.890313,-0.674281,
        0.918718,-0.113815,-0.378157,0.721812,0.890313,-0.595062,
@@ -29,93 +29,93 @@ static const float data[]={
        0.918719,-0.113815,0.378157,0.721812,0.890313,-0.404938,
        0.698103,-0.159073,0.698103,0.667578,0.838781,-0.332422,
        0.918719,-0.113815,0.378157,0.721812,0.890313,-0.404938,
-       0.928440,-0.144790,0.342105,0.713281,0.838781,-0.408594,
+       0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
        0.705394,-0.069557,0.705394,0.674281,0.890313,-0.325719,
-       0.662330,0.350196,0.662330,0.674539,0.926104,-0.325461,
+       0.66233,0.350196,0.66233,0.674539,0.926104,-0.325461,
        0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
        0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
        0.918719,-0.113815,0.378157,0.721812,0.890313,-0.404938,
        0.705394,-0.069557,0.705394,0.674281,0.890313,-0.325719,
        0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
-       0.911846,0.410531,-0.000000,0.738539,0.926712,-0.500000,
-       0.995164,-0.098230,0.000000,0.737656,0.890313,-0.500000,
-       0.995164,-0.098230,0.000000,0.737656,0.890313,-0.500000,
+       0.911846,0.410531,0,0.738539,0.926712,-0.5,
+       0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+       0.995164,-0.09823,0,0.737656,0.890313,-0.5,
        0.918719,-0.113815,0.378157,0.721812,0.890313,-0.404938,
        0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
-       0.995164,-0.098230,0.000000,0.737656,0.890313,-0.500000,
-       0.991208,-0.132313,-0.000000,0.728516,0.838781,-0.500000,
-       0.928440,-0.144790,0.342105,0.713281,0.838781,-0.408594,
-       0.928440,-0.144790,0.342105,0.713281,0.838781,-0.408594,
+       0.995164,-0.09823,0,0.737656,0.890313,-0.5,
+       0.991208,-0.132313,0,0.728516,0.838781,-0.5,
+       0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
+       0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
        0.918719,-0.113815,0.378157,0.721812,0.890313,-0.404938,
-       0.995164,-0.098230,0.000000,0.737656,0.890313,-0.500000,
+       0.995164,-0.09823,0,0.737656,0.890313,-0.5,
        0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
-       0.188350,0.976969,0.100277,0.664625,0.962948,-0.417500,
-       0.513442,0.838005,0.184732,0.706000,0.949319,-0.412500,
+       0.18835,0.976969,0.100277,0.664625,0.962948,-0.4175,
+       0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
        0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
-       0.513442,0.838005,0.184732,0.706000,0.949319,-0.412500,
+       0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
        0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
-       0.244558,0.969635,0.000000,0.677562,0.965162,-0.500000,
-       0.592505,0.805566,0.000000,0.721500,0.950535,-0.500000,
-       0.513442,0.838005,0.184732,0.706000,0.949319,-0.412500,
-       0.244558,0.969635,0.000000,0.677562,0.965162,-0.500000,
-       0.513442,0.838005,0.184732,0.706000,0.949319,-0.412500,
-       0.188350,0.976969,0.100277,0.664625,0.962948,-0.417500,
-       0.911846,0.410531,-0.000000,0.738539,0.926712,-0.500000,
+       0.244558,0.969635,0,0.677562,0.965162,-0.5,
+       0.592505,0.805566,0,0.7215,0.950535,-0.5,
+       0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
+       0.244558,0.969635,0,0.677562,0.965162,-0.5,
+       0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
+       0.18835,0.976969,0.100277,0.664625,0.962948,-0.4175,
+       0.911846,0.410531,0,0.738539,0.926712,-0.5,
        0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
-       0.513442,0.838005,0.184732,0.706000,0.949319,-0.412500,
-       0.911846,0.410531,-0.000000,0.738539,0.926712,-0.500000,
-       0.513442,0.838005,0.184732,0.706000,0.949319,-0.412500,
-       0.592505,0.805566,0.000000,0.721500,0.950535,-0.500000,
+       0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
+       0.911846,0.410531,0,0.738539,0.926712,-0.5,
+       0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
+       0.592505,0.805566,0,0.7215,0.950535,-0.5,
        0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
-       0.662330,0.350196,0.662330,0.674539,0.926104,-0.325461,
+       0.66233,0.350196,0.66233,0.674539,0.926104,-0.325461,
        0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
        0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
-       0.513442,0.838005,0.184732,0.706000,0.949319,-0.412500,
+       0.513442,0.838005,0.184732,0.706,0.949319,-0.4125,
        0.891913,0.278471,0.356294,0.722453,0.926408,-0.404859,
        0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
        0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
-       0.513442,0.838005,-0.184732,0.706000,0.949319,-0.587500,
+       0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
        0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
-       0.513442,0.838005,-0.184732,0.706000,0.949319,-0.587500,
-       0.188350,0.976969,-0.100277,0.664625,0.962948,-0.582500,
+       0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
+       0.18835,0.976969,-0.100277,0.664625,0.962948,-0.5825,
        0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
-       0.662330,0.350197,-0.662330,0.674539,0.926104,-0.674539,
+       0.66233,0.350197,-0.66233,0.674539,0.926104,-0.674539,
        0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
        0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
-       0.513442,0.838005,-0.184732,0.706000,0.949319,-0.587500,
+       0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
        0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
-       0.911846,0.410531,-0.000000,0.738539,0.926712,-0.500000,
-       0.592505,0.805566,0.000000,0.721500,0.950535,-0.500000,
-       0.513442,0.838005,-0.184732,0.706000,0.949319,-0.587500,
-       0.911846,0.410531,-0.000000,0.738539,0.926712,-0.500000,
-       0.513442,0.838005,-0.184732,0.706000,0.949319,-0.587500,
+       0.911846,0.410531,0,0.738539,0.926712,-0.5,
+       0.592505,0.805566,0,0.7215,0.950535,-0.5,
+       0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
+       0.911846,0.410531,0,0.738539,0.926712,-0.5,
+       0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
        0.891913,0.278471,-0.356294,0.722453,0.926408,-0.595141,
-       0.244558,0.969635,0.000000,0.677562,0.965162,-0.500000,
-       0.188350,0.976969,-0.100277,0.664625,0.962948,-0.582500,
-       0.513442,0.838005,-0.184732,0.706000,0.949319,-0.587500,
-       0.244558,0.969635,0.000000,0.677562,0.965162,-0.500000,
-       0.513442,0.838005,-0.184732,0.706000,0.949319,-0.587500,
-       0.592505,0.805566,0.000000,0.721500,0.950535,-0.500000,
+       0.244558,0.969635,0,0.677562,0.965162,-0.5,
+       0.18835,0.976969,-0.100277,0.664625,0.962948,-0.5825,
+       0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
+       0.244558,0.969635,0,0.677562,0.965162,-0.5,
+       0.513442,0.838005,-0.184732,0.706,0.949319,-0.5875,
+       0.592505,0.805566,0,0.7215,0.950535,-0.5,
        0.698103,-0.159073,0.698103,0.667578,0.838781,-0.332422,
-       0.342105,-0.144791,0.928440,0.591406,0.838781,-0.286719,
+       0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
        0.378157,-0.113815,0.918718,0.595062,0.890313,-0.278187,
        0.698103,-0.159073,0.698103,0.667578,0.838781,-0.332422,
        0.378157,-0.113815,0.918718,0.595062,0.890313,-0.278187,
        0.705394,-0.069557,0.705394,0.674281,0.890313,-0.325719,
-       0.342105,-0.144791,0.928440,0.591406,0.838781,-0.286719,
-       -0.000000,-0.132314,0.991208,0.500000,0.838781,-0.271484,
-       0.000000,-0.098230,0.995164,0.500000,0.890313,-0.262344,
-       0.000000,-0.098230,0.995164,0.500000,0.890313,-0.262344,
+       0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
+       0,-0.132314,0.991208,0.5,0.838781,-0.271484,
+       0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+       0,-0.09823,0.995164,0.5,0.890313,-0.262344,
        0.378157,-0.113815,0.918718,0.595062,0.890313,-0.278187,
-       0.342105,-0.144791,0.928440,0.591406,0.838781,-0.286719,
-       0.000000,-0.098230,0.995164,0.500000,0.890313,-0.262344,
-       0.000000,0.410531,0.911846,0.500000,0.926712,-0.261461,
+       0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
+       0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+       0,0.410531,0.911846,0.5,0.926712,-0.261461,
        0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
        0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
        0.378157,-0.113815,0.918718,0.595062,0.890313,-0.278187,
-       0.000000,-0.098230,0.995164,0.500000,0.890313,-0.262344,
+       0,-0.09823,0.995164,0.5,0.890313,-0.262344,
        0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
-       0.662330,0.350196,0.662330,0.674539,0.926104,-0.325461,
+       0.66233,0.350196,0.66233,0.674539,0.926104,-0.325461,
        0.705394,-0.069557,0.705394,0.674281,0.890313,-0.325719,
        0.705394,-0.069557,0.705394,0.674281,0.890313,-0.325719,
        0.378157,-0.113815,0.918718,0.595062,0.890313,-0.278187,
@@ -125,93 +125,93 @@ static const float data[]={
        -0.378157,-0.113815,0.918718,0.404938,0.890313,-0.278187,
        -0.698103,-0.159073,0.698103,0.332422,0.838781,-0.332422,
        -0.378157,-0.113815,0.918718,0.404938,0.890313,-0.278187,
-       -0.342105,-0.144791,0.928440,0.408594,0.838781,-0.286719,
+       -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
        -0.705394,-0.069557,0.705394,0.325719,0.890313,-0.325719,
-       -0.662330,0.350197,0.662330,0.325461,0.926104,-0.325461,
+       -0.66233,0.350197,0.66233,0.325461,0.926104,-0.325461,
        -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
        -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
        -0.378157,-0.113815,0.918718,0.404938,0.890313,-0.278187,
        -0.705394,-0.069557,0.705394,0.325719,0.890313,-0.325719,
        -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
-       0.000000,0.410531,0.911846,0.500000,0.926712,-0.261461,
-       0.000000,-0.098230,0.995164,0.500000,0.890313,-0.262344,
-       0.000000,-0.098230,0.995164,0.500000,0.890313,-0.262344,
+       0,0.410531,0.911846,0.5,0.926712,-0.261461,
+       0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+       0,-0.09823,0.995164,0.5,0.890313,-0.262344,
        -0.378157,-0.113815,0.918718,0.404938,0.890313,-0.278187,
        -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
-       0.000000,-0.098230,0.995164,0.500000,0.890313,-0.262344,
-       -0.000000,-0.132314,0.991208,0.500000,0.838781,-0.271484,
-       -0.342105,-0.144791,0.928440,0.408594,0.838781,-0.286719,
-       -0.342105,-0.144791,0.928440,0.408594,0.838781,-0.286719,
+       0,-0.09823,0.995164,0.5,0.890313,-0.262344,
+       0,-0.132314,0.991208,0.5,0.838781,-0.271484,
+       -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
+       -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
        -0.378157,-0.113815,0.918718,0.404938,0.890313,-0.278187,
-       0.000000,-0.098230,0.995164,0.500000,0.890313,-0.262344,
+       0,-0.09823,0.995164,0.5,0.890313,-0.262344,
        -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
-       -0.100277,0.976969,0.188350,0.417500,0.962948,-0.335375,
-       -0.184731,0.838005,0.513442,0.412500,0.949319,-0.294000,
+       -0.100277,0.976969,0.18835,0.4175,0.962948,-0.335375,
+       -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
        -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
-       -0.184731,0.838005,0.513442,0.412500,0.949319,-0.294000,
-       -0.448747,0.772820,0.448747,0.339125,0.948104,-0.339125,
-       -0.000000,0.969635,0.244558,0.500000,0.965162,-0.322437,
-       0.000000,0.805567,0.592505,0.500000,0.950535,-0.278500,
-       -0.184731,0.838005,0.513442,0.412500,0.949319,-0.294000,
-       -0.000000,0.969635,0.244558,0.500000,0.965162,-0.322437,
-       -0.184731,0.838005,0.513442,0.412500,0.949319,-0.294000,
-       -0.100277,0.976969,0.188350,0.417500,0.962948,-0.335375,
-       0.000000,0.410531,0.911846,0.500000,0.926712,-0.261461,
+       -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+       -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+       0,0.969635,0.244558,0.5,0.965162,-0.322437,
+       0,0.805567,0.592505,0.5,0.950535,-0.2785,
+       -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+       0,0.969635,0.244558,0.5,0.965162,-0.322437,
+       -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+       -0.100277,0.976969,0.18835,0.4175,0.962948,-0.335375,
+       0,0.410531,0.911846,0.5,0.926712,-0.261461,
        -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
-       -0.184731,0.838005,0.513442,0.412500,0.949319,-0.294000,
-       0.000000,0.410531,0.911846,0.500000,0.926712,-0.261461,
-       -0.184731,0.838005,0.513442,0.412500,0.949319,-0.294000,
-       0.000000,0.805567,0.592505,0.500000,0.950535,-0.278500,
+       -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+       0,0.410531,0.911846,0.5,0.926712,-0.261461,
+       -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
+       0,0.805567,0.592505,0.5,0.950535,-0.2785,
        -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
-       -0.662330,0.350197,0.662330,0.325461,0.926104,-0.325461,
-       -0.448747,0.772820,0.448747,0.339125,0.948104,-0.339125,
-       -0.448747,0.772820,0.448747,0.339125,0.948104,-0.339125,
-       -0.184731,0.838005,0.513442,0.412500,0.949319,-0.294000,
+       -0.66233,0.350197,0.66233,0.325461,0.926104,-0.325461,
+       -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+       -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+       -0.184731,0.838005,0.513442,0.4125,0.949319,-0.294,
        -0.356294,0.278471,0.891913,0.404859,0.926408,-0.277547,
        0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
        0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
-       0.184731,0.838005,0.513442,0.587500,0.949319,-0.294000,
+       0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
        0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
-       0.184731,0.838005,0.513442,0.587500,0.949319,-0.294000,
-       0.100277,0.976969,0.188350,0.582500,0.962948,-0.335375,
+       0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
+       0.100277,0.976969,0.18835,0.5825,0.962948,-0.335375,
        0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
-       0.662330,0.350196,0.662330,0.674539,0.926104,-0.325461,
+       0.66233,0.350196,0.66233,0.674539,0.926104,-0.325461,
        0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
        0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
-       0.184731,0.838005,0.513442,0.587500,0.949319,-0.294000,
+       0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
        0.448747,0.772821,0.448747,0.660875,0.948104,-0.339125,
-       0.000000,0.410531,0.911846,0.500000,0.926712,-0.261461,
-       0.000000,0.805567,0.592505,0.500000,0.950535,-0.278500,
-       0.184731,0.838005,0.513442,0.587500,0.949319,-0.294000,
-       0.000000,0.410531,0.911846,0.500000,0.926712,-0.261461,
-       0.184731,0.838005,0.513442,0.587500,0.949319,-0.294000,
+       0,0.410531,0.911846,0.5,0.926712,-0.261461,
+       0,0.805567,0.592505,0.5,0.950535,-0.2785,
+       0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
+       0,0.410531,0.911846,0.5,0.926712,-0.261461,
+       0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
        0.356294,0.278471,0.891913,0.595141,0.926408,-0.277547,
-       -0.000000,0.969635,0.244558,0.500000,0.965162,-0.322437,
-       0.100277,0.976969,0.188350,0.582500,0.962948,-0.335375,
-       0.184731,0.838005,0.513442,0.587500,0.949319,-0.294000,
-       -0.000000,0.969635,0.244558,0.500000,0.965162,-0.322437,
-       0.184731,0.838005,0.513442,0.587500,0.949319,-0.294000,
-       0.000000,0.805567,0.592505,0.500000,0.950535,-0.278500,
+       0,0.969635,0.244558,0.5,0.965162,-0.322437,
+       0.100277,0.976969,0.18835,0.5825,0.962948,-0.335375,
+       0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
+       0,0.969635,0.244558,0.5,0.965162,-0.322437,
+       0.184731,0.838005,0.513442,0.5875,0.949319,-0.294,
+       0,0.805567,0.592505,0.5,0.950535,-0.2785,
        -0.698103,-0.159073,0.698103,0.332422,0.838781,-0.332422,
-       -0.928440,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+       -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
        -0.918718,-0.113815,0.378157,0.278187,0.890313,-0.404938,
        -0.698103,-0.159073,0.698103,0.332422,0.838781,-0.332422,
        -0.918718,-0.113815,0.378157,0.278187,0.890313,-0.404938,
        -0.705394,-0.069557,0.705394,0.325719,0.890313,-0.325719,
-       -0.928440,-0.144791,0.342105,0.286719,0.838781,-0.408594,
-       -0.991208,-0.132314,-0.000000,0.271484,0.838781,-0.500000,
-       -0.995164,-0.098230,0.000000,0.262344,0.890313,-0.500000,
-       -0.995164,-0.098230,0.000000,0.262344,0.890313,-0.500000,
+       -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+       -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
+       -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+       -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
        -0.918718,-0.113815,0.378157,0.278187,0.890313,-0.404938,
-       -0.928440,-0.144791,0.342105,0.286719,0.838781,-0.408594,
-       -0.995164,-0.098230,0.000000,0.262344,0.890313,-0.500000,
-       -0.911846,0.410531,0.000000,0.261461,0.926712,-0.500000,
+       -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+       -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+       -0.911846,0.410531,0,0.261461,0.926712,-0.5,
        -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
        -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
        -0.918718,-0.113815,0.378157,0.278187,0.890313,-0.404938,
-       -0.995164,-0.098230,0.000000,0.262344,0.890313,-0.500000,
+       -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
        -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
-       -0.662330,0.350197,0.662330,0.325461,0.926104,-0.325461,
+       -0.66233,0.350197,0.66233,0.325461,0.926104,-0.325461,
        -0.705394,-0.069557,0.705394,0.325719,0.890313,-0.325719,
        -0.705394,-0.069557,0.705394,0.325719,0.890313,-0.325719,
        -0.918718,-0.113815,0.378157,0.278187,0.890313,-0.404938,
@@ -221,93 +221,93 @@ static const float data[]={
        -0.918718,-0.113815,-0.378157,0.278187,0.890313,-0.595062,
        -0.698103,-0.159073,-0.698103,0.332422,0.838781,-0.667578,
        -0.918718,-0.113815,-0.378157,0.278187,0.890313,-0.595062,
-       -0.928440,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+       -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
        -0.705394,-0.069557,-0.705394,0.325719,0.890313,-0.674281,
-       -0.662330,0.350196,-0.662330,0.325461,0.926104,-0.674539,
+       -0.66233,0.350196,-0.66233,0.325461,0.926104,-0.674539,
        -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
        -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
        -0.918718,-0.113815,-0.378157,0.278187,0.890313,-0.595062,
        -0.705394,-0.069557,-0.705394,0.325719,0.890313,-0.674281,
        -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
-       -0.911846,0.410531,0.000000,0.261461,0.926712,-0.500000,
-       -0.995164,-0.098230,0.000000,0.262344,0.890313,-0.500000,
-       -0.995164,-0.098230,0.000000,0.262344,0.890313,-0.500000,
+       -0.911846,0.410531,0,0.261461,0.926712,-0.5,
+       -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+       -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
        -0.918718,-0.113815,-0.378157,0.278187,0.890313,-0.595062,
        -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
-       -0.995164,-0.098230,0.000000,0.262344,0.890313,-0.500000,
-       -0.991208,-0.132314,-0.000000,0.271484,0.838781,-0.500000,
-       -0.928440,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
-       -0.928440,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+       -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
+       -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
+       -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+       -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
        -0.918718,-0.113815,-0.378157,0.278187,0.890313,-0.595062,
-       -0.995164,-0.098230,0.000000,0.262344,0.890313,-0.500000,
+       -0.995164,-0.09823,0,0.262344,0.890313,-0.5,
        -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
-       -0.188350,0.976969,-0.100277,0.335375,0.962948,-0.582500,
-       -0.513442,0.838005,-0.184731,0.294000,0.949319,-0.587500,
+       -0.18835,0.976969,-0.100277,0.335375,0.962948,-0.5825,
+       -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
        -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
-       -0.513442,0.838005,-0.184731,0.294000,0.949319,-0.587500,
+       -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
        -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
-       -0.244558,0.969635,-0.000000,0.322437,0.965162,-0.500000,
-       -0.592505,0.805566,0.000000,0.278500,0.950535,-0.500000,
-       -0.513442,0.838005,-0.184731,0.294000,0.949319,-0.587500,
-       -0.244558,0.969635,-0.000000,0.322437,0.965162,-0.500000,
-       -0.513442,0.838005,-0.184731,0.294000,0.949319,-0.587500,
-       -0.188350,0.976969,-0.100277,0.335375,0.962948,-0.582500,
-       -0.911846,0.410531,0.000000,0.261461,0.926712,-0.500000,
+       -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+       -0.592505,0.805566,0,0.2785,0.950535,-0.5,
+       -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
+       -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+       -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
+       -0.18835,0.976969,-0.100277,0.335375,0.962948,-0.5825,
+       -0.911846,0.410531,0,0.261461,0.926712,-0.5,
        -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
-       -0.513442,0.838005,-0.184731,0.294000,0.949319,-0.587500,
-       -0.911846,0.410531,0.000000,0.261461,0.926712,-0.500000,
-       -0.513442,0.838005,-0.184731,0.294000,0.949319,-0.587500,
-       -0.592505,0.805566,0.000000,0.278500,0.950535,-0.500000,
+       -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
+       -0.911846,0.410531,0,0.261461,0.926712,-0.5,
+       -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
+       -0.592505,0.805566,0,0.2785,0.950535,-0.5,
        -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
-       -0.662330,0.350196,-0.662330,0.325461,0.926104,-0.674539,
+       -0.66233,0.350196,-0.66233,0.325461,0.926104,-0.674539,
        -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
        -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
-       -0.513442,0.838005,-0.184731,0.294000,0.949319,-0.587500,
+       -0.513442,0.838005,-0.184731,0.294,0.949319,-0.5875,
        -0.891913,0.278471,-0.356294,0.277547,0.926408,-0.595141,
        -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
-       -0.448747,0.772820,0.448747,0.339125,0.948104,-0.339125,
-       -0.513442,0.838005,0.184731,0.294000,0.949319,-0.412500,
+       -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+       -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
        -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
-       -0.513442,0.838005,0.184731,0.294000,0.949319,-0.412500,
-       -0.188350,0.976969,0.100277,0.335375,0.962948,-0.417500,
-       -0.448747,0.772820,0.448747,0.339125,0.948104,-0.339125,
-       -0.662330,0.350197,0.662330,0.325461,0.926104,-0.325461,
+       -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+       -0.18835,0.976969,0.100277,0.335375,0.962948,-0.4175,
+       -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+       -0.66233,0.350197,0.66233,0.325461,0.926104,-0.325461,
        -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
        -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
-       -0.513442,0.838005,0.184731,0.294000,0.949319,-0.412500,
-       -0.448747,0.772820,0.448747,0.339125,0.948104,-0.339125,
-       -0.911846,0.410531,0.000000,0.261461,0.926712,-0.500000,
-       -0.592505,0.805566,0.000000,0.278500,0.950535,-0.500000,
-       -0.513442,0.838005,0.184731,0.294000,0.949319,-0.412500,
-       -0.911846,0.410531,0.000000,0.261461,0.926712,-0.500000,
-       -0.513442,0.838005,0.184731,0.294000,0.949319,-0.412500,
+       -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+       -0.448747,0.77282,0.448747,0.339125,0.948104,-0.339125,
+       -0.911846,0.410531,0,0.261461,0.926712,-0.5,
+       -0.592505,0.805566,0,0.2785,0.950535,-0.5,
+       -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+       -0.911846,0.410531,0,0.261461,0.926712,-0.5,
+       -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
        -0.891913,0.278471,0.356294,0.277547,0.926408,-0.404859,
-       -0.244558,0.969635,-0.000000,0.322437,0.965162,-0.500000,
-       -0.188350,0.976969,0.100277,0.335375,0.962948,-0.417500,
-       -0.513442,0.838005,0.184731,0.294000,0.949319,-0.412500,
-       -0.244558,0.969635,-0.000000,0.322437,0.965162,-0.500000,
-       -0.513442,0.838005,0.184731,0.294000,0.949319,-0.412500,
-       -0.592505,0.805566,0.000000,0.278500,0.950535,-0.500000,
+       -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+       -0.18835,0.976969,0.100277,0.335375,0.962948,-0.4175,
+       -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+       -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+       -0.513442,0.838005,0.184731,0.294,0.949319,-0.4125,
+       -0.592505,0.805566,0,0.2785,0.950535,-0.5,
        -0.698103,-0.159073,-0.698103,0.332422,0.838781,-0.667578,
-       -0.342105,-0.144790,-0.928440,0.408594,0.838781,-0.713281,
+       -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
        -0.378157,-0.113815,-0.918719,0.404938,0.890313,-0.721812,
        -0.698103,-0.159073,-0.698103,0.332422,0.838781,-0.667578,
        -0.378157,-0.113815,-0.918719,0.404938,0.890313,-0.721812,
        -0.705394,-0.069557,-0.705394,0.325719,0.890313,-0.674281,
-       -0.342105,-0.144790,-0.928440,0.408594,0.838781,-0.713281,
-       -0.000000,-0.132313,-0.991208,0.500000,0.838781,-0.728516,
-       0.000000,-0.098230,-0.995164,0.500000,0.890313,-0.737656,
-       0.000000,-0.098230,-0.995164,0.500000,0.890313,-0.737656,
+       -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
+       0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
+       0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+       0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
        -0.378157,-0.113815,-0.918719,0.404938,0.890313,-0.721812,
-       -0.342105,-0.144790,-0.928440,0.408594,0.838781,-0.713281,
-       0.000000,-0.098230,-0.995164,0.500000,0.890313,-0.737656,
-       -0.000000,0.410531,-0.911846,0.500000,0.926712,-0.738539,
+       -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
+       0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+       0,0.410531,-0.911846,0.5,0.926712,-0.738539,
        -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
        -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
        -0.378157,-0.113815,-0.918719,0.404938,0.890313,-0.721812,
-       0.000000,-0.098230,-0.995164,0.500000,0.890313,-0.737656,
+       0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
        -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
-       -0.662330,0.350196,-0.662330,0.325461,0.926104,-0.674539,
+       -0.66233,0.350196,-0.66233,0.325461,0.926104,-0.674539,
        -0.705394,-0.069557,-0.705394,0.325719,0.890313,-0.674281,
        -0.705394,-0.069557,-0.705394,0.325719,0.890313,-0.674281,
        -0.378157,-0.113815,-0.918719,0.404938,0.890313,-0.721812,
@@ -317,175 +317,175 @@ static const float data[]={
        0.378157,-0.113815,-0.918718,0.595062,0.890313,-0.721812,
        0.698103,-0.159073,-0.698103,0.667578,0.838781,-0.667578,
        0.378157,-0.113815,-0.918718,0.595062,0.890313,-0.721812,
-       0.342105,-0.144790,-0.928440,0.591406,0.838781,-0.713281,
+       0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
        0.705394,-0.069557,-0.705394,0.674281,0.890313,-0.674281,
-       0.662330,0.350197,-0.662330,0.674539,0.926104,-0.674539,
+       0.66233,0.350197,-0.66233,0.674539,0.926104,-0.674539,
        0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
        0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
        0.378157,-0.113815,-0.918718,0.595062,0.890313,-0.721812,
        0.705394,-0.069557,-0.705394,0.674281,0.890313,-0.674281,
        0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
-       -0.000000,0.410531,-0.911846,0.500000,0.926712,-0.738539,
-       0.000000,-0.098230,-0.995164,0.500000,0.890313,-0.737656,
-       0.000000,-0.098230,-0.995164,0.500000,0.890313,-0.737656,
+       0,0.410531,-0.911846,0.5,0.926712,-0.738539,
+       0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+       0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
        0.378157,-0.113815,-0.918718,0.595062,0.890313,-0.721812,
        0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
-       0.000000,-0.098230,-0.995164,0.500000,0.890313,-0.737656,
-       -0.000000,-0.132313,-0.991208,0.500000,0.838781,-0.728516,
-       0.342105,-0.144790,-0.928440,0.591406,0.838781,-0.713281,
-       0.342105,-0.144790,-0.928440,0.591406,0.838781,-0.713281,
+       0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
+       0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
+       0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
+       0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
        0.378157,-0.113815,-0.918718,0.595062,0.890313,-0.721812,
-       0.000000,-0.098230,-0.995164,0.500000,0.890313,-0.737656,
+       0,-0.09823,-0.995164,0.5,0.890313,-0.737656,
        0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
-       0.100277,0.976969,-0.188350,0.582500,0.962948,-0.664625,
-       0.184732,0.838005,-0.513442,0.587500,0.949319,-0.706000,
+       0.100277,0.976969,-0.18835,0.5825,0.962948,-0.664625,
+       0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
        0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
-       0.184732,0.838005,-0.513442,0.587500,0.949319,-0.706000,
+       0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
        0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
-       0.000000,0.969635,-0.244558,0.500000,0.965162,-0.677562,
-       0.000000,0.805567,-0.592505,0.500000,0.950535,-0.721500,
-       0.184732,0.838005,-0.513442,0.587500,0.949319,-0.706000,
-       0.000000,0.969635,-0.244558,0.500000,0.965162,-0.677562,
-       0.184732,0.838005,-0.513442,0.587500,0.949319,-0.706000,
-       0.100277,0.976969,-0.188350,0.582500,0.962948,-0.664625,
-       -0.000000,0.410531,-0.911846,0.500000,0.926712,-0.738539,
+       0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+       0,0.805567,-0.592505,0.5,0.950535,-0.7215,
+       0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
+       0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+       0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
+       0.100277,0.976969,-0.18835,0.5825,0.962948,-0.664625,
+       0,0.410531,-0.911846,0.5,0.926712,-0.738539,
        0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
-       0.184732,0.838005,-0.513442,0.587500,0.949319,-0.706000,
-       -0.000000,0.410531,-0.911846,0.500000,0.926712,-0.738539,
-       0.184732,0.838005,-0.513442,0.587500,0.949319,-0.706000,
-       0.000000,0.805567,-0.592505,0.500000,0.950535,-0.721500,
+       0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
+       0,0.410531,-0.911846,0.5,0.926712,-0.738539,
+       0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
+       0,0.805567,-0.592505,0.5,0.950535,-0.7215,
        0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
-       0.662330,0.350197,-0.662330,0.674539,0.926104,-0.674539,
+       0.66233,0.350197,-0.66233,0.674539,0.926104,-0.674539,
        0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
        0.448747,0.772821,-0.448747,0.660875,0.948104,-0.660875,
-       0.184732,0.838005,-0.513442,0.587500,0.949319,-0.706000,
+       0.184732,0.838005,-0.513442,0.5875,0.949319,-0.706,
        0.356294,0.278471,-0.891913,0.595141,0.926408,-0.722453,
        -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
        -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
-       -0.184732,0.838005,-0.513442,0.412500,0.949319,-0.706000,
+       -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
        -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
-       -0.184732,0.838005,-0.513442,0.412500,0.949319,-0.706000,
-       -0.100277,0.976969,-0.188350,0.417500,0.962948,-0.664625,
+       -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
+       -0.100277,0.976969,-0.18835,0.4175,0.962948,-0.664625,
        -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
-       -0.662330,0.350196,-0.662330,0.325461,0.926104,-0.674539,
+       -0.66233,0.350196,-0.66233,0.325461,0.926104,-0.674539,
        -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
        -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
-       -0.184732,0.838005,-0.513442,0.412500,0.949319,-0.706000,
+       -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
        -0.448747,0.772821,-0.448747,0.339125,0.948104,-0.660875,
-       -0.000000,0.410531,-0.911846,0.500000,0.926712,-0.738539,
-       0.000000,0.805567,-0.592505,0.500000,0.950535,-0.721500,
-       -0.184732,0.838005,-0.513442,0.412500,0.949319,-0.706000,
-       -0.000000,0.410531,-0.911846,0.500000,0.926712,-0.738539,
-       -0.184732,0.838005,-0.513442,0.412500,0.949319,-0.706000,
+       0,0.410531,-0.911846,0.5,0.926712,-0.738539,
+       0,0.805567,-0.592505,0.5,0.950535,-0.7215,
+       -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
+       0,0.410531,-0.911846,0.5,0.926712,-0.738539,
+       -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
        -0.356294,0.278471,-0.891913,0.404859,0.926408,-0.722453,
-       0.000000,0.969635,-0.244558,0.500000,0.965162,-0.677562,
-       -0.100277,0.976969,-0.188350,0.417500,0.962948,-0.664625,
-       -0.184732,0.838005,-0.513442,0.412500,0.949319,-0.706000,
-       0.000000,0.969635,-0.244558,0.500000,0.965162,-0.677562,
-       -0.184732,0.838005,-0.513442,0.412500,0.949319,-0.706000,
-       0.000000,0.805567,-0.592505,0.500000,0.950535,-0.721500,
+       0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+       -0.100277,0.976969,-0.18835,0.4175,0.962948,-0.664625,
+       -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
+       0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+       -0.184732,0.838005,-0.513442,0.4125,0.949319,-0.706,
+       0,0.805567,-0.592505,0.5,0.950535,-0.7215,
        0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
-       0.100277,0.976969,0.188350,0.582500,0.962948,-0.335375,
-       0.079739,0.993621,0.079739,0.590500,0.971195,-0.409500,
+       0.100277,0.976969,0.18835,0.5825,0.962948,-0.335375,
+       0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
        0.199329,0.959446,0.199329,0.638667,0.958463,-0.361333,
-       0.079739,0.993621,0.079739,0.590500,0.971195,-0.409500,
-       0.188350,0.976969,0.100277,0.664625,0.962948,-0.417500,
-       0.100277,0.976969,0.188350,0.582500,0.962948,-0.335375,
-       -0.000000,0.969635,0.244558,0.500000,0.965162,-0.322437,
-       0.000000,0.996384,0.084960,0.500000,0.973972,-0.402250,
-       0.000000,0.996384,0.084960,0.500000,0.973972,-0.402250,
-       0.079739,0.993621,0.079739,0.590500,0.971195,-0.409500,
-       0.100277,0.976969,0.188350,0.582500,0.962948,-0.335375,
-       -0.000000,1.000000,0.000000,0.500000,0.976924,-0.500000,
-       0.084960,0.996384,0.000000,0.597750,0.973972,-0.500000,
-       0.079739,0.993621,0.079739,0.590500,0.971195,-0.409500,
-       -0.000000,1.000000,0.000000,0.500000,0.976924,-0.500000,
-       0.079739,0.993621,0.079739,0.590500,0.971195,-0.409500,
-       0.000000,0.996384,0.084960,0.500000,0.973972,-0.402250,
-       0.084960,0.996384,0.000000,0.597750,0.973972,-0.500000,
-       0.244558,0.969635,0.000000,0.677562,0.965162,-0.500000,
-       0.188350,0.976969,0.100277,0.664625,0.962948,-0.417500,
-       0.188350,0.976969,0.100277,0.664625,0.962948,-0.417500,
-       0.079739,0.993621,0.079739,0.590500,0.971195,-0.409500,
-       0.084960,0.996384,0.000000,0.597750,0.973972,-0.500000,
+       0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
+       0.18835,0.976969,0.100277,0.664625,0.962948,-0.4175,
+       0.100277,0.976969,0.18835,0.5825,0.962948,-0.335375,
+       0,0.969635,0.244558,0.5,0.965162,-0.322437,
+       0,0.996384,0.08496,0.5,0.973972,-0.40225,
+       0,0.996384,0.08496,0.5,0.973972,-0.40225,
+       0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
+       0.100277,0.976969,0.18835,0.5825,0.962948,-0.335375,
+       0,1,0,0.5,0.976924,-0.5,
+       0.08496,0.996384,0,0.59775,0.973972,-0.5,
+       0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
+       0,1,0,0.5,0.976924,-0.5,
+       0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
+       0,0.996384,0.08496,0.5,0.973972,-0.40225,
+       0.08496,0.996384,0,0.59775,0.973972,-0.5,
+       0.244558,0.969635,0,0.677562,0.965162,-0.5,
+       0.18835,0.976969,0.100277,0.664625,0.962948,-0.4175,
+       0.18835,0.976969,0.100277,0.664625,0.962948,-0.4175,
+       0.079739,0.993621,0.079739,0.5905,0.971195,-0.4095,
+       0.08496,0.996384,0,0.59775,0.973972,-0.5,
        -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
-       -0.188350,0.976969,0.100277,0.335375,0.962948,-0.417500,
-       -0.079739,0.993621,0.079739,0.409500,0.971195,-0.409500,
+       -0.18835,0.976969,0.100277,0.335375,0.962948,-0.4175,
+       -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
        -0.199329,0.959446,0.199329,0.361333,0.958463,-0.361333,
-       -0.079739,0.993621,0.079739,0.409500,0.971195,-0.409500,
-       -0.100277,0.976969,0.188350,0.417500,0.962948,-0.335375,
-       -0.188350,0.976969,0.100277,0.335375,0.962948,-0.417500,
-       -0.244558,0.969635,-0.000000,0.322437,0.965162,-0.500000,
-       -0.084960,0.996384,0.000000,0.402250,0.973972,-0.500000,
-       -0.084960,0.996384,0.000000,0.402250,0.973972,-0.500000,
-       -0.079739,0.993621,0.079739,0.409500,0.971195,-0.409500,
-       -0.188350,0.976969,0.100277,0.335375,0.962948,-0.417500,
-       -0.000000,1.000000,0.000000,0.500000,0.976924,-0.500000,
-       0.000000,0.996384,0.084960,0.500000,0.973972,-0.402250,
-       -0.079739,0.993621,0.079739,0.409500,0.971195,-0.409500,
-       -0.000000,1.000000,0.000000,0.500000,0.976924,-0.500000,
-       -0.079739,0.993621,0.079739,0.409500,0.971195,-0.409500,
-       -0.084960,0.996384,0.000000,0.402250,0.973972,-0.500000,
-       0.000000,0.996384,0.084960,0.500000,0.973972,-0.402250,
-       -0.000000,0.969635,0.244558,0.500000,0.965162,-0.322437,
-       -0.100277,0.976969,0.188350,0.417500,0.962948,-0.335375,
-       -0.100277,0.976969,0.188350,0.417500,0.962948,-0.335375,
-       -0.079739,0.993621,0.079739,0.409500,0.971195,-0.409500,
-       0.000000,0.996384,0.084960,0.500000,0.973972,-0.402250,
+       -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
+       -0.100277,0.976969,0.18835,0.4175,0.962948,-0.335375,
+       -0.18835,0.976969,0.100277,0.335375,0.962948,-0.4175,
+       -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+       -0.08496,0.996384,0,0.40225,0.973972,-0.5,
+       -0.08496,0.996384,0,0.40225,0.973972,-0.5,
+       -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
+       -0.18835,0.976969,0.100277,0.335375,0.962948,-0.4175,
+       0,1,0,0.5,0.976924,-0.5,
+       0,0.996384,0.08496,0.5,0.973972,-0.40225,
+       -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
+       0,1,0,0.5,0.976924,-0.5,
+       -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
+       -0.08496,0.996384,0,0.40225,0.973972,-0.5,
+       0,0.996384,0.08496,0.5,0.973972,-0.40225,
+       0,0.969635,0.244558,0.5,0.965162,-0.322437,
+       -0.100277,0.976969,0.18835,0.4175,0.962948,-0.335375,
+       -0.100277,0.976969,0.18835,0.4175,0.962948,-0.335375,
+       -0.079739,0.993621,0.079739,0.4095,0.971195,-0.4095,
+       0,0.996384,0.08496,0.5,0.973972,-0.40225,
        -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
-       -0.100277,0.976969,-0.188350,0.417500,0.962948,-0.664625,
-       -0.079739,0.993621,-0.079739,0.409500,0.971195,-0.590500,
+       -0.100277,0.976969,-0.18835,0.4175,0.962948,-0.664625,
+       -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
        -0.199329,0.959446,-0.199329,0.361333,0.958463,-0.638667,
-       -0.079739,0.993621,-0.079739,0.409500,0.971195,-0.590500,
-       -0.188350,0.976969,-0.100277,0.335375,0.962948,-0.582500,
-       -0.100277,0.976969,-0.188350,0.417500,0.962948,-0.664625,
-       0.000000,0.969635,-0.244558,0.500000,0.965162,-0.677562,
-       0.000000,0.996384,-0.084960,0.500000,0.973972,-0.597750,
-       0.000000,0.996384,-0.084960,0.500000,0.973972,-0.597750,
-       -0.079739,0.993621,-0.079739,0.409500,0.971195,-0.590500,
-       -0.100277,0.976969,-0.188350,0.417500,0.962948,-0.664625,
-       -0.000000,1.000000,0.000000,0.500000,0.976924,-0.500000,
-       -0.084960,0.996384,0.000000,0.402250,0.973972,-0.500000,
-       -0.079739,0.993621,-0.079739,0.409500,0.971195,-0.590500,
-       -0.000000,1.000000,0.000000,0.500000,0.976924,-0.500000,
-       -0.079739,0.993621,-0.079739,0.409500,0.971195,-0.590500,
-       0.000000,0.996384,-0.084960,0.500000,0.973972,-0.597750,
-       -0.084960,0.996384,0.000000,0.402250,0.973972,-0.500000,
-       -0.244558,0.969635,-0.000000,0.322437,0.965162,-0.500000,
-       -0.188350,0.976969,-0.100277,0.335375,0.962948,-0.582500,
-       -0.188350,0.976969,-0.100277,0.335375,0.962948,-0.582500,
-       -0.079739,0.993621,-0.079739,0.409500,0.971195,-0.590500,
-       -0.084960,0.996384,0.000000,0.402250,0.973972,-0.500000,
+       -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
+       -0.18835,0.976969,-0.100277,0.335375,0.962948,-0.5825,
+       -0.100277,0.976969,-0.18835,0.4175,0.962948,-0.664625,
+       0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+       0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+       0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+       -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
+       -0.100277,0.976969,-0.18835,0.4175,0.962948,-0.664625,
+       0,1,0,0.5,0.976924,-0.5,
+       -0.08496,0.996384,0,0.40225,0.973972,-0.5,
+       -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
+       0,1,0,0.5,0.976924,-0.5,
+       -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
+       0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+       -0.08496,0.996384,0,0.40225,0.973972,-0.5,
+       -0.244558,0.969635,0,0.322437,0.965162,-0.5,
+       -0.18835,0.976969,-0.100277,0.335375,0.962948,-0.5825,
+       -0.18835,0.976969,-0.100277,0.335375,0.962948,-0.5825,
+       -0.079739,0.993621,-0.079739,0.4095,0.971195,-0.5905,
+       -0.08496,0.996384,0,0.40225,0.973972,-0.5,
        0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
-       0.188350,0.976969,-0.100277,0.664625,0.962948,-0.582500,
-       0.079739,0.993621,-0.079739,0.590500,0.971195,-0.590500,
+       0.18835,0.976969,-0.100277,0.664625,0.962948,-0.5825,
+       0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
        0.199329,0.959446,-0.199329,0.638667,0.958463,-0.638667,
-       0.079739,0.993621,-0.079739,0.590500,0.971195,-0.590500,
-       0.100277,0.976969,-0.188350,0.582500,0.962948,-0.664625,
-       0.188350,0.976969,-0.100277,0.664625,0.962948,-0.582500,
-       0.244558,0.969635,0.000000,0.677562,0.965162,-0.500000,
-       0.084960,0.996384,0.000000,0.597750,0.973972,-0.500000,
-       0.084960,0.996384,0.000000,0.597750,0.973972,-0.500000,
-       0.079739,0.993621,-0.079739,0.590500,0.971195,-0.590500,
-       0.188350,0.976969,-0.100277,0.664625,0.962948,-0.582500,
-       -0.000000,1.000000,0.000000,0.500000,0.976924,-0.500000,
-       0.000000,0.996384,-0.084960,0.500000,0.973972,-0.597750,
-       0.079739,0.993621,-0.079739,0.590500,0.971195,-0.590500,
-       -0.000000,1.000000,0.000000,0.500000,0.976924,-0.500000,
-       0.079739,0.993621,-0.079739,0.590500,0.971195,-0.590500,
-       0.084960,0.996384,0.000000,0.597750,0.973972,-0.500000,
-       0.000000,0.996384,-0.084960,0.500000,0.973972,-0.597750,
-       0.000000,0.969635,-0.244558,0.500000,0.965162,-0.677562,
-       0.100277,0.976969,-0.188350,0.582500,0.962948,-0.664625,
-       0.100277,0.976969,-0.188350,0.582500,0.962948,-0.664625,
-       0.079739,0.993621,-0.079739,0.590500,0.971195,-0.590500,
-       0.000000,0.996384,-0.084960,0.500000,0.973972,-0.597750,
-       0.928440,-0.144790,-0.342105,0.713281,0.838781,-0.591406,
+       0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
+       0.100277,0.976969,-0.18835,0.5825,0.962948,-0.664625,
+       0.18835,0.976969,-0.100277,0.664625,0.962948,-0.5825,
+       0.244558,0.969635,0,0.677562,0.965162,-0.5,
+       0.08496,0.996384,0,0.59775,0.973972,-0.5,
+       0.08496,0.996384,0,0.59775,0.973972,-0.5,
+       0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
+       0.18835,0.976969,-0.100277,0.664625,0.962948,-0.5825,
+       0,1,0,0.5,0.976924,-0.5,
+       0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+       0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
+       0,1,0,0.5,0.976924,-0.5,
+       0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
+       0.08496,0.996384,0,0.59775,0.973972,-0.5,
+       0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+       0,0.969635,-0.244558,0.5,0.965162,-0.677562,
+       0.100277,0.976969,-0.18835,0.5825,0.962948,-0.664625,
+       0.100277,0.976969,-0.18835,0.5825,0.962948,-0.664625,
+       0.079739,0.993621,-0.079739,0.5905,0.971195,-0.5905,
+       0,0.996384,-0.08496,0.5,0.973972,-0.59775,
+       0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
        0.698103,-0.159073,-0.698103,0.667578,0.838781,-0.667578,
        0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
        0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
        0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
-       0.928440,-0.144790,-0.342105,0.713281,0.838781,-0.591406,
+       0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
        0.705656,-0.064019,-0.705656,0.657523,0.686547,-0.657523,
        0.936848,-0.057446,-0.344986,0.700484,0.686547,-0.585922,
        0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
@@ -493,17 +493,17 @@ static const float data[]={
        0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
        0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
        0.936848,-0.057446,-0.344986,0.700484,0.686547,-0.585922,
-       0.998665,-0.051663,-0.000000,0.714805,0.686547,-0.500000,
-       0.996389,-0.084903,0.000000,0.720781,0.769563,-0.500000,
-       0.996389,-0.084903,0.000000,0.720781,0.769563,-0.500000,
+       0.998665,-0.051663,0,0.714805,0.686547,-0.5,
+       0.996389,-0.084903,0,0.720781,0.769563,-0.5,
+       0.996389,-0.084903,0,0.720781,0.769563,-0.5,
        0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
        0.936848,-0.057446,-0.344986,0.700484,0.686547,-0.585922,
-       0.991208,-0.132313,-0.000000,0.728516,0.838781,-0.500000,
-       0.928440,-0.144790,-0.342105,0.713281,0.838781,-0.591406,
+       0.991208,-0.132313,0,0.728516,0.838781,-0.5,
+       0.92844,-0.14479,-0.342105,0.713281,0.838781,-0.591406,
        0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
-       0.991208,-0.132313,-0.000000,0.728516,0.838781,-0.500000,
+       0.991208,-0.132313,0,0.728516,0.838781,-0.5,
        0.934344,-0.092655,-0.344117,0.706063,0.769563,-0.588313,
-       0.996389,-0.084903,0.000000,0.720781,0.769563,-0.500000,
+       0.996389,-0.084903,0,0.720781,0.769563,-0.5,
        0.707107,-0.000155,-0.707107,0.653656,0.494688,-0.653656,
        0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
        0.938032,-0.028246,-0.345395,0.696875,0.593625,-0.584375,
@@ -511,17 +511,17 @@ static const float data[]={
        0.938032,-0.028246,-0.345395,0.696875,0.593625,-0.584375,
        0.706706,-0.033664,-0.706706,0.654688,0.593625,-0.654688,
        0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
-       1.000000,-0.000150,0.000000,0.709531,0.494688,-0.500000,
-       0.999728,-0.023338,0.000000,0.710938,0.593625,-0.500000,
-       0.999728,-0.023338,0.000000,0.710938,0.593625,-0.500000,
+       1,-0.00015,0,0.709531,0.494688,-0.5,
+       0.999728,-0.023338,0,0.710938,0.593625,-0.5,
+       0.999728,-0.023338,0,0.710938,0.593625,-0.5,
        0.938032,-0.028246,-0.345395,0.696875,0.593625,-0.584375,
        0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
-       0.998665,-0.051663,-0.000000,0.714805,0.686547,-0.500000,
+       0.998665,-0.051663,0,0.714805,0.686547,-0.5,
        0.936848,-0.057446,-0.344986,0.700484,0.686547,-0.585922,
        0.938032,-0.028246,-0.345395,0.696875,0.593625,-0.584375,
-       0.998665,-0.051663,-0.000000,0.714805,0.686547,-0.500000,
+       0.998665,-0.051663,0,0.714805,0.686547,-0.5,
        0.938032,-0.028246,-0.345395,0.696875,0.593625,-0.584375,
-       0.999728,-0.023338,0.000000,0.710938,0.593625,-0.500000,
+       0.999728,-0.023338,0,0.710938,0.593625,-0.5,
        0.936848,-0.057446,-0.344986,0.700484,0.686547,-0.585922,
        0.705656,-0.064019,-0.705656,0.657523,0.686547,-0.657523,
        0.706706,-0.033664,-0.706706,0.654688,0.593625,-0.654688,
@@ -540,48 +540,48 @@ static const float data[]={
        0.936848,-0.057446,0.344986,0.700484,0.686547,-0.414078,
        0.938032,-0.028246,0.345395,0.696875,0.593625,-0.415625,
        0.706706,-0.033664,0.706706,0.654688,0.593625,-0.345313,
-       0.998665,-0.051663,-0.000000,0.714805,0.686547,-0.500000,
-       0.999728,-0.023338,0.000000,0.710938,0.593625,-0.500000,
+       0.998665,-0.051663,0,0.714805,0.686547,-0.5,
+       0.999728,-0.023338,0,0.710938,0.593625,-0.5,
        0.938032,-0.028246,0.345395,0.696875,0.593625,-0.415625,
-       0.998665,-0.051663,-0.000000,0.714805,0.686547,-0.500000,
+       0.998665,-0.051663,0,0.714805,0.686547,-0.5,
        0.938032,-0.028246,0.345395,0.696875,0.593625,-0.415625,
        0.936848,-0.057446,0.344986,0.700484,0.686547,-0.414078,
-       0.999728,-0.023338,0.000000,0.710938,0.593625,-0.500000,
-       1.000000,-0.000150,0.000000,0.709531,0.494688,-0.500000,
+       0.999728,-0.023338,0,0.710938,0.593625,-0.5,
+       1,-0.00015,0,0.709531,0.494688,-0.5,
        0.958364,-0.000151,0.285548,0.695563,0.494688,-0.416187,
        0.958364,-0.000151,0.285548,0.695563,0.494688,-0.416187,
        0.938032,-0.028246,0.345395,0.696875,0.593625,-0.415625,
-       0.999728,-0.023338,0.000000,0.710938,0.593625,-0.500000,
+       0.999728,-0.023338,0,0.710938,0.593625,-0.5,
        0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
        0.698103,-0.159073,0.698103,0.667578,0.838781,-0.332422,
-       0.928440,-0.144790,0.342105,0.713281,0.838781,-0.408594,
-       0.928440,-0.144790,0.342105,0.713281,0.838781,-0.408594,
+       0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
+       0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
        0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
        0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
-       0.991208,-0.132313,-0.000000,0.728516,0.838781,-0.500000,
-       0.996389,-0.084903,0.000000,0.720781,0.769563,-0.500000,
+       0.991208,-0.132313,0,0.728516,0.838781,-0.5,
+       0.996389,-0.084903,0,0.720781,0.769563,-0.5,
        0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
-       0.991208,-0.132313,-0.000000,0.728516,0.838781,-0.500000,
+       0.991208,-0.132313,0,0.728516,0.838781,-0.5,
        0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
-       0.928440,-0.144790,0.342105,0.713281,0.838781,-0.408594,
-       0.996389,-0.084903,0.000000,0.720781,0.769563,-0.500000,
-       0.998665,-0.051663,-0.000000,0.714805,0.686547,-0.500000,
+       0.92844,-0.14479,0.342105,0.713281,0.838781,-0.408594,
+       0.996389,-0.084903,0,0.720781,0.769563,-0.5,
+       0.998665,-0.051663,0,0.714805,0.686547,-0.5,
        0.936848,-0.057446,0.344986,0.700484,0.686547,-0.414078,
        0.936848,-0.057446,0.344986,0.700484,0.686547,-0.414078,
        0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
-       0.996389,-0.084903,0.000000,0.720781,0.769563,-0.500000,
+       0.996389,-0.084903,0,0.720781,0.769563,-0.5,
        0.705656,-0.064019,0.705656,0.657523,0.686547,-0.342477,
        0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
        0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
        0.705656,-0.064019,0.705656,0.657523,0.686547,-0.342477,
        0.934344,-0.092655,0.344117,0.706063,0.769563,-0.411687,
        0.936848,-0.057446,0.344986,0.700484,0.686547,-0.414078,
-       -0.342105,-0.144790,-0.928440,0.408594,0.838781,-0.713281,
+       -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
        -0.698103,-0.159073,-0.698103,0.332422,0.838781,-0.667578,
        -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
        -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
        -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
-       -0.342105,-0.144790,-0.928440,0.408594,0.838781,-0.713281,
+       -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
        -0.705656,-0.064019,-0.705656,0.342477,0.686547,-0.657523,
        -0.344986,-0.057446,-0.936848,0.414078,0.686547,-0.700484,
        -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
@@ -589,17 +589,17 @@ static const float data[]={
        -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
        -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
        -0.344986,-0.057446,-0.936848,0.414078,0.686547,-0.700484,
-       -0.000000,-0.051663,-0.998665,0.500000,0.686547,-0.714805,
-       0.000000,-0.084903,-0.996389,0.500000,0.769563,-0.720781,
-       0.000000,-0.084903,-0.996389,0.500000,0.769563,-0.720781,
+       0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
+       0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
+       0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
        -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
        -0.344986,-0.057446,-0.936848,0.414078,0.686547,-0.700484,
-       -0.000000,-0.132313,-0.991208,0.500000,0.838781,-0.728516,
-       -0.342105,-0.144790,-0.928440,0.408594,0.838781,-0.713281,
+       0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
+       -0.342105,-0.14479,-0.92844,0.408594,0.838781,-0.713281,
        -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
-       -0.000000,-0.132313,-0.991208,0.500000,0.838781,-0.728516,
+       0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
        -0.344117,-0.092655,-0.934344,0.411687,0.769563,-0.706063,
-       0.000000,-0.084903,-0.996389,0.500000,0.769563,-0.720781,
+       0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
        -0.707107,-0.000155,-0.707107,0.346344,0.494688,-0.653656,
        -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
        -0.345395,-0.028246,-0.938032,0.415625,0.593625,-0.696875,
@@ -607,17 +607,17 @@ static const float data[]={
        -0.345395,-0.028246,-0.938032,0.415625,0.593625,-0.696875,
        -0.706706,-0.033664,-0.706706,0.345313,0.593625,-0.654688,
        -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
-       0.000000,-0.000150,-1.000000,0.500000,0.494688,-0.709531,
-       0.000000,-0.023338,-0.999728,0.500000,0.593625,-0.710938,
-       0.000000,-0.023338,-0.999728,0.500000,0.593625,-0.710938,
+       0,-0.00015,-1,0.5,0.494688,-0.709531,
+       0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
+       0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
        -0.345395,-0.028246,-0.938032,0.415625,0.593625,-0.696875,
        -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
-       -0.000000,-0.051663,-0.998665,0.500000,0.686547,-0.714805,
+       0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
        -0.344986,-0.057446,-0.936848,0.414078,0.686547,-0.700484,
        -0.345395,-0.028246,-0.938032,0.415625,0.593625,-0.696875,
-       -0.000000,-0.051663,-0.998665,0.500000,0.686547,-0.714805,
+       0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
        -0.345395,-0.028246,-0.938032,0.415625,0.593625,-0.696875,
-       0.000000,-0.023338,-0.999728,0.500000,0.593625,-0.710938,
+       0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
        -0.344986,-0.057446,-0.936848,0.414078,0.686547,-0.700484,
        -0.705656,-0.064019,-0.705656,0.342477,0.686547,-0.657523,
        -0.706706,-0.033664,-0.706706,0.345313,0.593625,-0.654688,
@@ -636,36 +636,36 @@ static const float data[]={
        0.344986,-0.057446,-0.936848,0.585922,0.686547,-0.700484,
        0.345395,-0.028246,-0.938032,0.584375,0.593625,-0.696875,
        0.706706,-0.033664,-0.706706,0.654688,0.593625,-0.654688,
-       -0.000000,-0.051663,-0.998665,0.500000,0.686547,-0.714805,
-       0.000000,-0.023338,-0.999728,0.500000,0.593625,-0.710938,
+       0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
+       0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
        0.345395,-0.028246,-0.938032,0.584375,0.593625,-0.696875,
-       -0.000000,-0.051663,-0.998665,0.500000,0.686547,-0.714805,
+       0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
        0.345395,-0.028246,-0.938032,0.584375,0.593625,-0.696875,
        0.344986,-0.057446,-0.936848,0.585922,0.686547,-0.700484,
-       0.000000,-0.023338,-0.999728,0.500000,0.593625,-0.710938,
-       0.000000,-0.000150,-1.000000,0.500000,0.494688,-0.709531,
+       0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
+       0,-0.00015,-1,0.5,0.494688,-0.709531,
        0.285548,-0.000151,-0.958364,0.583813,0.494688,-0.695563,
        0.285548,-0.000151,-0.958364,0.583813,0.494688,-0.695563,
        0.345395,-0.028246,-0.938032,0.584375,0.593625,-0.696875,
-       0.000000,-0.023338,-0.999728,0.500000,0.593625,-0.710938,
+       0,-0.023338,-0.999728,0.5,0.593625,-0.710938,
        0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
        0.698103,-0.159073,-0.698103,0.667578,0.838781,-0.667578,
-       0.342105,-0.144790,-0.928440,0.591406,0.838781,-0.713281,
-       0.342105,-0.144790,-0.928440,0.591406,0.838781,-0.713281,
+       0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
+       0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
        0.344117,-0.092655,-0.934344,0.588313,0.769563,-0.706063,
        0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
-       -0.000000,-0.132313,-0.991208,0.500000,0.838781,-0.728516,
-       0.000000,-0.084903,-0.996389,0.500000,0.769563,-0.720781,
+       0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
+       0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
        0.344117,-0.092655,-0.934344,0.588313,0.769563,-0.706063,
-       -0.000000,-0.132313,-0.991208,0.500000,0.838781,-0.728516,
+       0,-0.132313,-0.991208,0.5,0.838781,-0.728516,
        0.344117,-0.092655,-0.934344,0.588313,0.769563,-0.706063,
-       0.342105,-0.144790,-0.928440,0.591406,0.838781,-0.713281,
-       0.000000,-0.084903,-0.996389,0.500000,0.769563,-0.720781,
-       -0.000000,-0.051663,-0.998665,0.500000,0.686547,-0.714805,
+       0.342105,-0.14479,-0.92844,0.591406,0.838781,-0.713281,
+       0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
+       0,-0.051663,-0.998665,0.5,0.686547,-0.714805,
        0.344986,-0.057446,-0.936848,0.585922,0.686547,-0.700484,
        0.344986,-0.057446,-0.936848,0.585922,0.686547,-0.700484,
        0.344117,-0.092655,-0.934344,0.588313,0.769563,-0.706063,
-       0.000000,-0.084903,-0.996389,0.500000,0.769563,-0.720781,
+       0,-0.084903,-0.996389,0.5,0.769563,-0.720781,
        0.705656,-0.064019,-0.705656,0.657523,0.686547,-0.657523,
        0.703449,-0.101581,-0.703449,0.661906,0.769563,-0.661906,
        0.344117,-0.092655,-0.934344,0.588313,0.769563,-0.706063,
@@ -674,34 +674,34 @@ static const float data[]={
        0.344986,-0.057446,-0.936848,0.585922,0.686547,-0.700484,
        -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
        -0.698103,-0.159073,0.698103,0.332422,0.838781,-0.332422,
-       -0.342105,-0.144791,0.928440,0.408594,0.838781,-0.286719,
-       -0.342105,-0.144791,0.928440,0.408594,0.838781,-0.286719,
+       -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
+       -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
        -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
        -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
-       -0.000000,-0.132314,0.991208,0.500000,0.838781,-0.271484,
-       0.000000,-0.084902,0.996389,0.500000,0.769563,-0.279219,
+       0,-0.132314,0.991208,0.5,0.838781,-0.271484,
+       0,-0.084902,0.996389,0.5,0.769563,-0.279219,
        -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
-       -0.000000,-0.132314,0.991208,0.500000,0.838781,-0.271484,
+       0,-0.132314,0.991208,0.5,0.838781,-0.271484,
        -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
-       -0.342105,-0.144791,0.928440,0.408594,0.838781,-0.286719,
-       0.000000,-0.084902,0.996389,0.500000,0.769563,-0.279219,
-       0.000000,-0.051662,0.998665,0.500000,0.686547,-0.285195,
+       -0.342105,-0.144791,0.92844,0.408594,0.838781,-0.286719,
+       0,-0.084902,0.996389,0.5,0.769563,-0.279219,
+       0,-0.051662,0.998665,0.5,0.686547,-0.285195,
        -0.344986,-0.057445,0.936848,0.414078,0.686547,-0.299516,
        -0.344986,-0.057445,0.936848,0.414078,0.686547,-0.299516,
        -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
-       0.000000,-0.084902,0.996389,0.500000,0.769563,-0.279219,
+       0,-0.084902,0.996389,0.5,0.769563,-0.279219,
        -0.705656,-0.064019,0.705656,0.342477,0.686547,-0.342477,
        -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
        -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
        -0.705656,-0.064019,0.705656,0.342477,0.686547,-0.342477,
        -0.344116,-0.092655,0.934344,0.411687,0.769563,-0.293938,
        -0.344986,-0.057445,0.936848,0.414078,0.686547,-0.299516,
-       0.342105,-0.144791,0.928440,0.591406,0.838781,-0.286719,
+       0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
        0.698103,-0.159073,0.698103,0.667578,0.838781,-0.332422,
        0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
        0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
        0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
-       0.342105,-0.144791,0.928440,0.591406,0.838781,-0.286719,
+       0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
        0.705656,-0.064019,0.705656,0.657523,0.686547,-0.342477,
        0.344986,-0.057445,0.936848,0.585922,0.686547,-0.299516,
        0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
@@ -709,17 +709,17 @@ static const float data[]={
        0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
        0.703449,-0.101581,0.703449,0.661906,0.769563,-0.338094,
        0.344986,-0.057445,0.936848,0.585922,0.686547,-0.299516,
-       0.000000,-0.051662,0.998665,0.500000,0.686547,-0.285195,
-       0.000000,-0.084902,0.996389,0.500000,0.769563,-0.279219,
-       0.000000,-0.084902,0.996389,0.500000,0.769563,-0.279219,
+       0,-0.051662,0.998665,0.5,0.686547,-0.285195,
+       0,-0.084902,0.996389,0.5,0.769563,-0.279219,
+       0,-0.084902,0.996389,0.5,0.769563,-0.279219,
        0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
        0.344986,-0.057445,0.936848,0.585922,0.686547,-0.299516,
-       -0.000000,-0.132314,0.991208,0.500000,0.838781,-0.271484,
-       0.342105,-0.144791,0.928440,0.591406,0.838781,-0.286719,
+       0,-0.132314,0.991208,0.5,0.838781,-0.271484,
+       0.342105,-0.144791,0.92844,0.591406,0.838781,-0.286719,
        0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
-       -0.000000,-0.132314,0.991208,0.500000,0.838781,-0.271484,
+       0,-0.132314,0.991208,0.5,0.838781,-0.271484,
        0.344116,-0.092655,0.934344,0.588313,0.769563,-0.293938,
-       0.000000,-0.084902,0.996389,0.500000,0.769563,-0.279219,
+       0,-0.084902,0.996389,0.5,0.769563,-0.279219,
        0.707107,-0.000155,0.707107,0.653656,0.494688,-0.346344,
        0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
        0.345395,-0.028246,0.938032,0.584375,0.593625,-0.303125,
@@ -727,17 +727,17 @@ static const float data[]={
        0.345395,-0.028246,0.938032,0.584375,0.593625,-0.303125,
        0.706706,-0.033664,0.706706,0.654688,0.593625,-0.345313,
        0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
-       0.000000,-0.000150,1.000000,0.500000,0.494688,-0.290469,
-       0.000000,-0.023338,0.999728,0.500000,0.593625,-0.289063,
-       0.000000,-0.023338,0.999728,0.500000,0.593625,-0.289063,
+       0,-0.00015,1,0.5,0.494688,-0.290469,
+       0,-0.023338,0.999728,0.5,0.593625,-0.289063,
+       0,-0.023338,0.999728,0.5,0.593625,-0.289063,
        0.345395,-0.028246,0.938032,0.584375,0.593625,-0.303125,
        0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
-       0.000000,-0.051662,0.998665,0.500000,0.686547,-0.285195,
+       0,-0.051662,0.998665,0.5,0.686547,-0.285195,
        0.344986,-0.057445,0.936848,0.585922,0.686547,-0.299516,
        0.345395,-0.028246,0.938032,0.584375,0.593625,-0.303125,
-       0.000000,-0.051662,0.998665,0.500000,0.686547,-0.285195,
+       0,-0.051662,0.998665,0.5,0.686547,-0.285195,
        0.345395,-0.028246,0.938032,0.584375,0.593625,-0.303125,
-       0.000000,-0.023338,0.999728,0.500000,0.593625,-0.289063,
+       0,-0.023338,0.999728,0.5,0.593625,-0.289063,
        0.344986,-0.057445,0.936848,0.585922,0.686547,-0.299516,
        0.705656,-0.064019,0.705656,0.657523,0.686547,-0.342477,
        0.706706,-0.033664,0.706706,0.654688,0.593625,-0.345313,
@@ -756,48 +756,48 @@ static const float data[]={
        -0.344986,-0.057445,0.936848,0.414078,0.686547,-0.299516,
        -0.345395,-0.028246,0.938032,0.415625,0.593625,-0.303125,
        -0.706706,-0.033664,0.706706,0.345313,0.593625,-0.345313,
-       0.000000,-0.051662,0.998665,0.500000,0.686547,-0.285195,
-       0.000000,-0.023338,0.999728,0.500000,0.593625,-0.289063,
+       0,-0.051662,0.998665,0.5,0.686547,-0.285195,
+       0,-0.023338,0.999728,0.5,0.593625,-0.289063,
        -0.345395,-0.028246,0.938032,0.415625,0.593625,-0.303125,
-       0.000000,-0.051662,0.998665,0.500000,0.686547,-0.285195,
+       0,-0.051662,0.998665,0.5,0.686547,-0.285195,
        -0.345395,-0.028246,0.938032,0.415625,0.593625,-0.303125,
        -0.344986,-0.057445,0.936848,0.414078,0.686547,-0.299516,
-       0.000000,-0.023338,0.999728,0.500000,0.593625,-0.289063,
-       0.000000,-0.000150,1.000000,0.500000,0.494688,-0.290469,
+       0,-0.023338,0.999728,0.5,0.593625,-0.289063,
+       0,-0.00015,1,0.5,0.494688,-0.290469,
        -0.285548,-0.000151,0.958364,0.416187,0.494688,-0.304437,
        -0.285548,-0.000151,0.958364,0.416187,0.494688,-0.304437,
        -0.345395,-0.028246,0.938032,0.415625,0.593625,-0.303125,
-       0.000000,-0.023338,0.999728,0.500000,0.593625,-0.289063,
+       0,-0.023338,0.999728,0.5,0.593625,-0.289063,
        -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
        -0.698103,-0.159073,-0.698103,0.332422,0.838781,-0.667578,
-       -0.928440,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
-       -0.928440,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+       -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+       -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
        -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
        -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
-       -0.991208,-0.132314,-0.000000,0.271484,0.838781,-0.500000,
-       -0.996389,-0.084902,0.000000,0.279219,0.769563,-0.500000,
+       -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
+       -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
        -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
-       -0.991208,-0.132314,-0.000000,0.271484,0.838781,-0.500000,
+       -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
        -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
-       -0.928440,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
-       -0.996389,-0.084902,0.000000,0.279219,0.769563,-0.500000,
-       -0.998665,-0.051662,0.000000,0.285195,0.686547,-0.500000,
+       -0.92844,-0.144791,-0.342105,0.286719,0.838781,-0.591406,
+       -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
+       -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
        -0.936848,-0.057445,-0.344986,0.299516,0.686547,-0.585922,
        -0.936848,-0.057445,-0.344986,0.299516,0.686547,-0.585922,
        -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
-       -0.996389,-0.084902,0.000000,0.279219,0.769563,-0.500000,
+       -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
        -0.705656,-0.064019,-0.705656,0.342477,0.686547,-0.657523,
        -0.703449,-0.101581,-0.703449,0.338094,0.769563,-0.661906,
        -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
        -0.705656,-0.064019,-0.705656,0.342477,0.686547,-0.657523,
        -0.934344,-0.092655,-0.344116,0.293938,0.769563,-0.588313,
        -0.936848,-0.057445,-0.344986,0.299516,0.686547,-0.585922,
-       -0.928440,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+       -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
        -0.698103,-0.159073,0.698103,0.332422,0.838781,-0.332422,
        -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
        -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
        -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
-       -0.928440,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+       -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
        -0.705656,-0.064019,0.705656,0.342477,0.686547,-0.342477,
        -0.936848,-0.057445,0.344986,0.299516,0.686547,-0.414078,
        -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
@@ -805,17 +805,17 @@ static const float data[]={
        -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
        -0.703449,-0.101581,0.703449,0.338094,0.769563,-0.338094,
        -0.936848,-0.057445,0.344986,0.299516,0.686547,-0.414078,
-       -0.998665,-0.051662,0.000000,0.285195,0.686547,-0.500000,
-       -0.996389,-0.084902,0.000000,0.279219,0.769563,-0.500000,
-       -0.996389,-0.084902,0.000000,0.279219,0.769563,-0.500000,
+       -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
+       -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
+       -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
        -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
        -0.936848,-0.057445,0.344986,0.299516,0.686547,-0.414078,
-       -0.991208,-0.132314,-0.000000,0.271484,0.838781,-0.500000,
-       -0.928440,-0.144791,0.342105,0.286719,0.838781,-0.408594,
+       -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
+       -0.92844,-0.144791,0.342105,0.286719,0.838781,-0.408594,
        -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
-       -0.991208,-0.132314,-0.000000,0.271484,0.838781,-0.500000,
+       -0.991208,-0.132314,0,0.271484,0.838781,-0.5,
        -0.934344,-0.092655,0.344116,0.293938,0.769563,-0.411687,
-       -0.996389,-0.084902,0.000000,0.279219,0.769563,-0.500000,
+       -0.996389,-0.084902,0,0.279219,0.769563,-0.5,
        -0.707107,-0.000155,0.707107,0.346344,0.494688,-0.346344,
        -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
        -0.938032,-0.028246,0.345395,0.303125,0.593625,-0.415625,
@@ -823,17 +823,17 @@ static const float data[]={
        -0.938032,-0.028246,0.345395,0.303125,0.593625,-0.415625,
        -0.706706,-0.033664,0.706706,0.345313,0.593625,-0.345313,
        -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
-       -1.000000,-0.000150,0.000000,0.290469,0.494688,-0.500000,
-       -0.999728,-0.023338,0.000000,0.289063,0.593625,-0.500000,
-       -0.999728,-0.023338,0.000000,0.289063,0.593625,-0.500000,
+       -1,-0.00015,0,0.290469,0.494688,-0.5,
+       -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
+       -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
        -0.938032,-0.028246,0.345395,0.303125,0.593625,-0.415625,
        -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
-       -0.998665,-0.051662,0.000000,0.285195,0.686547,-0.500000,
+       -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
        -0.936848,-0.057445,0.344986,0.299516,0.686547,-0.414078,
        -0.938032,-0.028246,0.345395,0.303125,0.593625,-0.415625,
-       -0.998665,-0.051662,0.000000,0.285195,0.686547,-0.500000,
+       -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
        -0.938032,-0.028246,0.345395,0.303125,0.593625,-0.415625,
-       -0.999728,-0.023338,0.000000,0.289063,0.593625,-0.500000,
+       -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
        -0.936848,-0.057445,0.344986,0.299516,0.686547,-0.414078,
        -0.705656,-0.064019,0.705656,0.342477,0.686547,-0.342477,
        -0.706706,-0.033664,0.706706,0.345313,0.593625,-0.345313,
@@ -852,40 +852,40 @@ static const float data[]={
        -0.936848,-0.057445,-0.344986,0.299516,0.686547,-0.585922,
        -0.938032,-0.028246,-0.345395,0.303125,0.593625,-0.584375,
        -0.706706,-0.033664,-0.706706,0.345313,0.593625,-0.654688,
-       -0.998665,-0.051662,0.000000,0.285195,0.686547,-0.500000,
-       -0.999728,-0.023338,0.000000,0.289063,0.593625,-0.500000,
+       -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
+       -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
        -0.938032,-0.028246,-0.345395,0.303125,0.593625,-0.584375,
-       -0.998665,-0.051662,0.000000,0.285195,0.686547,-0.500000,
+       -0.998665,-0.051662,0,0.285195,0.686547,-0.5,
        -0.938032,-0.028246,-0.345395,0.303125,0.593625,-0.584375,
        -0.936848,-0.057445,-0.344986,0.299516,0.686547,-0.585922,
-       -0.999728,-0.023338,0.000000,0.289063,0.593625,-0.500000,
-       -1.000000,-0.000150,0.000000,0.290469,0.494688,-0.500000,
+       -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
+       -1,-0.00015,0,0.290469,0.494688,-0.5,
        -0.958364,-0.000151,-0.285548,0.304437,0.494688,-0.583813,
        -0.958364,-0.000151,-0.285548,0.304437,0.494688,-0.583813,
        -0.938032,-0.028246,-0.345395,0.303125,0.593625,-0.584375,
-       -0.999728,-0.023338,0.000000,0.289063,0.593625,-0.500000,
+       -0.999728,-0.023338,0,0.289063,0.593625,-0.5,
        -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
        -0.699155,0.149544,-0.699156,0.332422,0.132531,-0.667578,
        -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
        -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
        -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
        -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
-       -0.000000,0.123790,-0.992308,0.500000,0.132531,-0.728516,
-       -0.000000,0.079157,-0.996862,0.500000,0.207062,-0.720781,
+       0,0.12379,-0.992308,0.5,0.132531,-0.728516,
+       0,0.079157,-0.996862,0.5,0.207062,-0.720781,
        -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
-       -0.000000,0.123790,-0.992308,0.500000,0.132531,-0.728516,
+       0,0.12379,-0.992308,0.5,0.132531,-0.728516,
        -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
        -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
-       -0.000000,0.079157,-0.996862,0.500000,0.207062,-0.720781,
-       0.000000,0.048741,-0.998811,0.500000,0.295922,-0.714805,
+       0,0.079157,-0.996862,0.5,0.207062,-0.720781,
+       0,0.048741,-0.998811,0.5,0.295922,-0.714805,
        -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
        -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
        -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
-       -0.000000,0.079157,-0.996862,0.500000,0.207062,-0.720781,
-       -0.705830,0.060067,-0.705830,0.342477,0.295922,-0.657523,
+       0,0.079157,-0.996862,0.5,0.207062,-0.720781,
+       -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
        -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
        -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
-       -0.705830,0.060067,-0.705830,0.342477,0.295922,-0.657523,
+       -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
        -0.344301,0.086306,-0.934884,0.411687,0.207062,-0.706063,
        -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
        0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
@@ -894,24 +894,24 @@ static const float data[]={
        0.703939,0.094547,-0.703939,0.661906,0.207062,-0.661906,
        0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
        0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
-       0.705830,0.060067,-0.705830,0.657523,0.295922,-0.657523,
+       0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
        0.345045,0.054036,-0.937029,0.585922,0.295922,-0.700484,
        0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
-       0.705830,0.060067,-0.705830,0.657523,0.295922,-0.657523,
+       0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
        0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
        0.703939,0.094547,-0.703939,0.661906,0.207062,-0.661906,
        0.345045,0.054036,-0.937029,0.585922,0.295922,-0.700484,
-       0.000000,0.048741,-0.998811,0.500000,0.295922,-0.714805,
-       -0.000000,0.079157,-0.996862,0.500000,0.207062,-0.720781,
-       -0.000000,0.079157,-0.996862,0.500000,0.207062,-0.720781,
+       0,0.048741,-0.998811,0.5,0.295922,-0.714805,
+       0,0.079157,-0.996862,0.5,0.207062,-0.720781,
+       0,0.079157,-0.996862,0.5,0.207062,-0.720781,
        0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
        0.345045,0.054036,-0.937029,0.585922,0.295922,-0.700484,
-       -0.000000,0.123790,-0.992308,0.500000,0.132531,-0.728516,
+       0,0.12379,-0.992308,0.5,0.132531,-0.728516,
        0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
        0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
-       -0.000000,0.123790,-0.992308,0.500000,0.132531,-0.728516,
+       0,0.12379,-0.992308,0.5,0.132531,-0.728516,
        0.344301,0.086306,-0.934884,0.588313,0.207062,-0.706063,
-       -0.000000,0.079157,-0.996862,0.500000,0.207062,-0.720781,
+       0,0.079157,-0.996862,0.5,0.207062,-0.720781,
        0.707107,-0.000155,-0.707107,0.653656,0.494688,-0.653656,
        0.285548,-0.000151,-0.958364,0.583813,0.494688,-0.695563,
        0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
@@ -919,19 +919,19 @@ static const float data[]={
        0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
        0.706741,0.032156,-0.706741,0.654688,0.393625,-0.654688,
        0.285548,-0.000151,-0.958364,0.583813,0.494688,-0.695563,
-       0.000000,-0.000150,-1.000000,0.500000,0.494688,-0.709531,
-       0.000000,0.022461,-0.999748,0.500000,0.393625,-0.710938,
-       0.000000,0.022461,-0.999748,0.500000,0.393625,-0.710938,
+       0,-0.00015,-1,0.5,0.494688,-0.709531,
+       0,0.022461,-0.999748,0.5,0.393625,-0.710938,
+       0,0.022461,-0.999748,0.5,0.393625,-0.710938,
        0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
        0.285548,-0.000151,-0.958364,0.583813,0.494688,-0.695563,
-       0.000000,0.048741,-0.998811,0.500000,0.295922,-0.714805,
+       0,0.048741,-0.998811,0.5,0.295922,-0.714805,
        0.345045,0.054036,-0.937029,0.585922,0.295922,-0.700484,
        0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
-       0.000000,0.048741,-0.998811,0.500000,0.295922,-0.714805,
+       0,0.048741,-0.998811,0.5,0.295922,-0.714805,
        0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
-       0.000000,0.022461,-0.999748,0.500000,0.393625,-0.710938,
+       0,0.022461,-0.999748,0.5,0.393625,-0.710938,
        0.345045,0.054036,-0.937029,0.585922,0.295922,-0.700484,
-       0.705830,0.060067,-0.705830,0.657523,0.295922,-0.657523,
+       0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
        0.706741,0.032156,-0.706741,0.654688,0.393625,-0.654688,
        0.706741,0.032156,-0.706741,0.654688,0.393625,-0.654688,
        0.345404,0.027067,-0.938064,0.584375,0.393625,-0.696875,
@@ -943,47 +943,47 @@ static const float data[]={
        -0.345404,0.027067,-0.938064,0.415625,0.393625,-0.696875,
        -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
        -0.706741,0.032156,-0.706741,0.345313,0.393625,-0.654688,
-       -0.705830,0.060067,-0.705830,0.342477,0.295922,-0.657523,
+       -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
        -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
        -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
        -0.345404,0.027067,-0.938064,0.415625,0.393625,-0.696875,
        -0.706741,0.032156,-0.706741,0.345313,0.393625,-0.654688,
-       0.000000,0.048741,-0.998811,0.500000,0.295922,-0.714805,
-       0.000000,0.022461,-0.999748,0.500000,0.393625,-0.710938,
+       0,0.048741,-0.998811,0.5,0.295922,-0.714805,
+       0,0.022461,-0.999748,0.5,0.393625,-0.710938,
        -0.345404,0.027067,-0.938064,0.415625,0.393625,-0.696875,
-       0.000000,0.048741,-0.998811,0.500000,0.295922,-0.714805,
+       0,0.048741,-0.998811,0.5,0.295922,-0.714805,
        -0.345404,0.027067,-0.938064,0.415625,0.393625,-0.696875,
        -0.345045,0.054036,-0.937029,0.414078,0.295922,-0.700484,
-       0.000000,0.022461,-0.999748,0.500000,0.393625,-0.710938,
-       0.000000,-0.000150,-1.000000,0.500000,0.494688,-0.709531,
+       0,0.022461,-0.999748,0.5,0.393625,-0.710938,
+       0,-0.00015,-1,0.5,0.494688,-0.709531,
        -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
        -0.285548,-0.000151,-0.958364,0.416187,0.494688,-0.695563,
        -0.345404,0.027067,-0.938064,0.415625,0.393625,-0.696875,
-       0.000000,0.022461,-0.999748,0.500000,0.393625,-0.710938,
+       0,0.022461,-0.999748,0.5,0.393625,-0.710938,
        -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
        -0.699155,0.149544,-0.699156,0.332422,0.132531,-0.667578,
        -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
        -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
        -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
        -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
-       -0.705830,0.060067,-0.705830,0.342477,0.295922,-0.657523,
+       -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
        -0.937029,0.054035,-0.345045,0.299516,0.295922,-0.585922,
        -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
-       -0.705830,0.060067,-0.705830,0.342477,0.295922,-0.657523,
+       -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
        -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
        -0.703939,0.094548,-0.703939,0.338094,0.207062,-0.661906,
        -0.937029,0.054035,-0.345045,0.299516,0.295922,-0.585922,
-       -0.998811,0.048740,0.000000,0.285195,0.295922,-0.500000,
-       -0.996862,0.079157,-0.000000,0.279219,0.207062,-0.500000,
-       -0.996862,0.079157,-0.000000,0.279219,0.207062,-0.500000,
+       -0.998811,0.04874,0,0.285195,0.295922,-0.5,
+       -0.996862,0.079157,0,0.279219,0.207062,-0.5,
+       -0.996862,0.079157,0,0.279219,0.207062,-0.5,
        -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
        -0.937029,0.054035,-0.345045,0.299516,0.295922,-0.585922,
-       -0.992308,0.123790,-0.000000,0.271484,0.132531,-0.500000,
+       -0.992308,0.12379,0,0.271484,0.132531,-0.5,
        -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
        -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
-       -0.992308,0.123790,-0.000000,0.271484,0.132531,-0.500000,
+       -0.992308,0.12379,0,0.271484,0.132531,-0.5,
        -0.934884,0.086306,-0.344301,0.293938,0.207062,-0.588313,
-       -0.996862,0.079157,-0.000000,0.279219,0.207062,-0.500000,
+       -0.996862,0.079157,0,0.279219,0.207062,-0.5,
        -0.707107,-0.000155,-0.707107,0.346344,0.494688,-0.653656,
        -0.958364,-0.000151,-0.285548,0.304437,0.494688,-0.583813,
        -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
@@ -991,19 +991,19 @@ static const float data[]={
        -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
        -0.706741,0.032156,-0.706741,0.345313,0.393625,-0.654688,
        -0.958364,-0.000151,-0.285548,0.304437,0.494688,-0.583813,
-       -1.000000,-0.000150,0.000000,0.290469,0.494688,-0.500000,
-       -0.999748,0.022461,0.000000,0.289063,0.393625,-0.500000,
-       -0.999748,0.022461,0.000000,0.289063,0.393625,-0.500000,
+       -1,-0.00015,0,0.290469,0.494688,-0.5,
+       -0.999748,0.022461,0,0.289063,0.393625,-0.5,
+       -0.999748,0.022461,0,0.289063,0.393625,-0.5,
        -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
        -0.958364,-0.000151,-0.285548,0.304437,0.494688,-0.583813,
-       -0.998811,0.048740,0.000000,0.285195,0.295922,-0.500000,
+       -0.998811,0.04874,0,0.285195,0.295922,-0.5,
        -0.937029,0.054035,-0.345045,0.299516,0.295922,-0.585922,
        -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
-       -0.998811,0.048740,0.000000,0.285195,0.295922,-0.500000,
+       -0.998811,0.04874,0,0.285195,0.295922,-0.5,
        -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
-       -0.999748,0.022461,0.000000,0.289063,0.393625,-0.500000,
+       -0.999748,0.022461,0,0.289063,0.393625,-0.5,
        -0.937029,0.054035,-0.345045,0.299516,0.295922,-0.585922,
-       -0.705830,0.060067,-0.705830,0.342477,0.295922,-0.657523,
+       -0.70583,0.060067,-0.70583,0.342477,0.295922,-0.657523,
        -0.706741,0.032156,-0.706741,0.345313,0.393625,-0.654688,
        -0.706741,0.032156,-0.706741,0.345313,0.393625,-0.654688,
        -0.938064,0.027067,-0.345404,0.303125,0.393625,-0.584375,
@@ -1015,45 +1015,45 @@ static const float data[]={
        -0.938064,0.027067,0.345404,0.303125,0.393625,-0.415625,
        -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
        -0.706741,0.032156,0.706741,0.345313,0.393625,-0.345313,
-       -0.705830,0.060067,0.705830,0.342477,0.295922,-0.342477,
+       -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
        -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
        -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
        -0.938064,0.027067,0.345404,0.303125,0.393625,-0.415625,
        -0.706741,0.032156,0.706741,0.345313,0.393625,-0.345313,
-       -0.998811,0.048740,0.000000,0.285195,0.295922,-0.500000,
-       -0.999748,0.022461,0.000000,0.289063,0.393625,-0.500000,
+       -0.998811,0.04874,0,0.285195,0.295922,-0.5,
+       -0.999748,0.022461,0,0.289063,0.393625,-0.5,
        -0.938064,0.027067,0.345404,0.303125,0.393625,-0.415625,
-       -0.998811,0.048740,0.000000,0.285195,0.295922,-0.500000,
+       -0.998811,0.04874,0,0.285195,0.295922,-0.5,
        -0.938064,0.027067,0.345404,0.303125,0.393625,-0.415625,
        -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
-       -0.999748,0.022461,0.000000,0.289063,0.393625,-0.500000,
-       -1.000000,-0.000150,0.000000,0.290469,0.494688,-0.500000,
+       -0.999748,0.022461,0,0.289063,0.393625,-0.5,
+       -1,-0.00015,0,0.290469,0.494688,-0.5,
        -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
        -0.958364,-0.000151,0.285548,0.304437,0.494688,-0.416187,
        -0.938064,0.027067,0.345404,0.303125,0.393625,-0.415625,
-       -0.999748,0.022461,0.000000,0.289063,0.393625,-0.500000,
+       -0.999748,0.022461,0,0.289063,0.393625,-0.5,
        -0.703939,0.094548,0.703939,0.338094,0.207062,-0.338094,
        -0.699155,0.149545,0.699155,0.332422,0.132531,-0.332422,
        -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
        -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
        -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
        -0.703939,0.094548,0.703939,0.338094,0.207062,-0.338094,
-       -0.992308,0.123790,-0.000000,0.271484,0.132531,-0.500000,
-       -0.996862,0.079157,-0.000000,0.279219,0.207062,-0.500000,
+       -0.992308,0.12379,0,0.271484,0.132531,-0.5,
+       -0.996862,0.079157,0,0.279219,0.207062,-0.5,
        -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
-       -0.992308,0.123790,-0.000000,0.271484,0.132531,-0.500000,
+       -0.992308,0.12379,0,0.271484,0.132531,-0.5,
        -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
        -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
-       -0.996862,0.079157,-0.000000,0.279219,0.207062,-0.500000,
-       -0.998811,0.048740,0.000000,0.285195,0.295922,-0.500000,
+       -0.996862,0.079157,0,0.279219,0.207062,-0.5,
+       -0.998811,0.04874,0,0.285195,0.295922,-0.5,
        -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
        -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
        -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
-       -0.996862,0.079157,-0.000000,0.279219,0.207062,-0.500000,
-       -0.705830,0.060067,0.705830,0.342477,0.295922,-0.342477,
+       -0.996862,0.079157,0,0.279219,0.207062,-0.5,
+       -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
        -0.703939,0.094548,0.703939,0.338094,0.207062,-0.338094,
        -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
-       -0.705830,0.060067,0.705830,0.342477,0.295922,-0.342477,
+       -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
        -0.934884,0.086306,0.344301,0.293938,0.207062,-0.411687,
        -0.937029,0.054035,0.345045,0.299516,0.295922,-0.414078,
        -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
@@ -1062,24 +1062,24 @@ static const float data[]={
        -0.703939,0.094548,0.703939,0.338094,0.207062,-0.338094,
        -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
        -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
-       -0.705830,0.060067,0.705830,0.342477,0.295922,-0.342477,
+       -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
        -0.345045,0.054035,0.937029,0.414078,0.295922,-0.299516,
        -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
-       -0.705830,0.060067,0.705830,0.342477,0.295922,-0.342477,
+       -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
        -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
        -0.703939,0.094548,0.703939,0.338094,0.207062,-0.338094,
        -0.345045,0.054035,0.937029,0.414078,0.295922,-0.299516,
-       0.000000,0.048740,0.998811,0.500000,0.295922,-0.285195,
-       -0.000000,0.079157,0.996862,0.500000,0.207062,-0.279219,
-       -0.000000,0.079157,0.996862,0.500000,0.207062,-0.279219,
+       0,0.04874,0.998811,0.5,0.295922,-0.285195,
+       0,0.079157,0.996862,0.5,0.207062,-0.279219,
+       0,0.079157,0.996862,0.5,0.207062,-0.279219,
        -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
        -0.345045,0.054035,0.937029,0.414078,0.295922,-0.299516,
-       -0.000000,0.123790,0.992308,0.500000,0.132531,-0.271484,
+       0,0.12379,0.992308,0.5,0.132531,-0.271484,
        -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
        -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
-       -0.000000,0.123790,0.992308,0.500000,0.132531,-0.271484,
+       0,0.12379,0.992308,0.5,0.132531,-0.271484,
        -0.344301,0.086306,0.934884,0.411687,0.207062,-0.293938,
-       -0.000000,0.079157,0.996862,0.500000,0.207062,-0.279219,
+       0,0.079157,0.996862,0.5,0.207062,-0.279219,
        -0.707107,-0.000155,0.707107,0.346344,0.494688,-0.346344,
        -0.285548,-0.000151,0.958364,0.416187,0.494688,-0.304437,
        -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
@@ -1087,19 +1087,19 @@ static const float data[]={
        -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
        -0.706741,0.032156,0.706741,0.345313,0.393625,-0.345313,
        -0.285548,-0.000151,0.958364,0.416187,0.494688,-0.304437,
-       0.000000,-0.000150,1.000000,0.500000,0.494688,-0.290469,
-       0.000000,0.022461,0.999748,0.500000,0.393625,-0.289063,
-       0.000000,0.022461,0.999748,0.500000,0.393625,-0.289063,
+       0,-0.00015,1,0.5,0.494688,-0.290469,
+       0,0.022461,0.999748,0.5,0.393625,-0.289063,
+       0,0.022461,0.999748,0.5,0.393625,-0.289063,
        -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
        -0.285548,-0.000151,0.958364,0.416187,0.494688,-0.304437,
-       0.000000,0.048740,0.998811,0.500000,0.295922,-0.285195,
+       0,0.04874,0.998811,0.5,0.295922,-0.285195,
        -0.345045,0.054035,0.937029,0.414078,0.295922,-0.299516,
        -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
-       0.000000,0.048740,0.998811,0.500000,0.295922,-0.285195,
+       0,0.04874,0.998811,0.5,0.295922,-0.285195,
        -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
-       0.000000,0.022461,0.999748,0.500000,0.393625,-0.289063,
+       0,0.022461,0.999748,0.5,0.393625,-0.289063,
        -0.345045,0.054035,0.937029,0.414078,0.295922,-0.299516,
-       -0.705830,0.060067,0.705830,0.342477,0.295922,-0.342477,
+       -0.70583,0.060067,0.70583,0.342477,0.295922,-0.342477,
        -0.706741,0.032156,0.706741,0.345313,0.393625,-0.345313,
        -0.706741,0.032156,0.706741,0.345313,0.393625,-0.345313,
        -0.345404,0.027067,0.938064,0.415625,0.393625,-0.303125,
@@ -1111,45 +1111,45 @@ static const float data[]={
        0.345404,0.027067,0.938064,0.584375,0.393625,-0.303125,
        0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
        0.706741,0.032156,0.706741,0.654688,0.393625,-0.345313,
-       0.705830,0.060067,0.705830,0.657523,0.295922,-0.342477,
+       0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
        0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
        0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
        0.345404,0.027067,0.938064,0.584375,0.393625,-0.303125,
        0.706741,0.032156,0.706741,0.654688,0.393625,-0.345313,
-       0.000000,0.048740,0.998811,0.500000,0.295922,-0.285195,
-       0.000000,0.022461,0.999748,0.500000,0.393625,-0.289063,
+       0,0.04874,0.998811,0.5,0.295922,-0.285195,
+       0,0.022461,0.999748,0.5,0.393625,-0.289063,
        0.345404,0.027067,0.938064,0.584375,0.393625,-0.303125,
-       0.000000,0.048740,0.998811,0.500000,0.295922,-0.285195,
+       0,0.04874,0.998811,0.5,0.295922,-0.285195,
        0.345404,0.027067,0.938064,0.584375,0.393625,-0.303125,
        0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
-       0.000000,0.022461,0.999748,0.500000,0.393625,-0.289063,
-       0.000000,-0.000150,1.000000,0.500000,0.494688,-0.290469,
+       0,0.022461,0.999748,0.5,0.393625,-0.289063,
+       0,-0.00015,1,0.5,0.494688,-0.290469,
        0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
        0.285548,-0.000151,0.958364,0.583813,0.494688,-0.304437,
        0.345404,0.027067,0.938064,0.584375,0.393625,-0.303125,
-       0.000000,0.022461,0.999748,0.500000,0.393625,-0.289063,
+       0,0.022461,0.999748,0.5,0.393625,-0.289063,
        0.703939,0.094548,0.703939,0.661906,0.207062,-0.338094,
        0.699156,0.149544,0.699155,0.667578,0.132531,-0.332422,
        0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
        0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
        0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
        0.703939,0.094548,0.703939,0.661906,0.207062,-0.338094,
-       -0.000000,0.123790,0.992308,0.500000,0.132531,-0.271484,
-       -0.000000,0.079157,0.996862,0.500000,0.207062,-0.279219,
+       0,0.12379,0.992308,0.5,0.132531,-0.271484,
+       0,0.079157,0.996862,0.5,0.207062,-0.279219,
        0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
-       -0.000000,0.123790,0.992308,0.500000,0.132531,-0.271484,
+       0,0.12379,0.992308,0.5,0.132531,-0.271484,
        0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
        0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
-       -0.000000,0.079157,0.996862,0.500000,0.207062,-0.279219,
-       0.000000,0.048740,0.998811,0.500000,0.295922,-0.285195,
+       0,0.079157,0.996862,0.5,0.207062,-0.279219,
+       0,0.04874,0.998811,0.5,0.295922,-0.285195,
        0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
        0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
        0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
-       -0.000000,0.079157,0.996862,0.500000,0.207062,-0.279219,
-       0.705830,0.060067,0.705830,0.657523,0.295922,-0.342477,
+       0,0.079157,0.996862,0.5,0.207062,-0.279219,
+       0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
        0.703939,0.094548,0.703939,0.661906,0.207062,-0.338094,
        0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
-       0.705830,0.060067,0.705830,0.657523,0.295922,-0.342477,
+       0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
        0.344301,0.086306,0.934884,0.588313,0.207062,-0.293938,
        0.345045,0.054035,0.937029,0.585922,0.295922,-0.299516,
        0.929642,0.135808,0.342523,0.713281,0.132531,-0.408594,
@@ -1158,24 +1158,24 @@ static const float data[]={
        0.703939,0.094548,0.703939,0.661906,0.207062,-0.338094,
        0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
        0.929642,0.135808,0.342523,0.713281,0.132531,-0.408594,
-       0.705830,0.060067,0.705830,0.657523,0.295922,-0.342477,
+       0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
        0.937029,0.054036,0.345045,0.700484,0.295922,-0.414078,
        0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
-       0.705830,0.060067,0.705830,0.657523,0.295922,-0.342477,
+       0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
        0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
        0.703939,0.094548,0.703939,0.661906,0.207062,-0.338094,
        0.937029,0.054036,0.345045,0.700484,0.295922,-0.414078,
-       0.998811,0.048741,0.000000,0.714805,0.295922,-0.500000,
-       0.996862,0.079157,0.000000,0.720781,0.207062,-0.500000,
-       0.996862,0.079157,0.000000,0.720781,0.207062,-0.500000,
+       0.998811,0.048741,0,0.714805,0.295922,-0.5,
+       0.996862,0.079157,0,0.720781,0.207062,-0.5,
+       0.996862,0.079157,0,0.720781,0.207062,-0.5,
        0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
        0.937029,0.054036,0.345045,0.700484,0.295922,-0.414078,
-       0.992308,0.123790,0.000000,0.728516,0.132531,-0.500000,
+       0.992308,0.12379,0,0.728516,0.132531,-0.5,
        0.929642,0.135808,0.342523,0.713281,0.132531,-0.408594,
        0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
-       0.992308,0.123790,0.000000,0.728516,0.132531,-0.500000,
+       0.992308,0.12379,0,0.728516,0.132531,-0.5,
        0.934884,0.086306,0.344301,0.706063,0.207062,-0.411687,
-       0.996862,0.079157,0.000000,0.720781,0.207062,-0.500000,
+       0.996862,0.079157,0,0.720781,0.207062,-0.5,
        0.707107,-0.000155,0.707107,0.653656,0.494688,-0.346344,
        0.958364,-0.000151,0.285548,0.695563,0.494688,-0.416187,
        0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
@@ -1183,19 +1183,19 @@ static const float data[]={
        0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
        0.706741,0.032156,0.706741,0.654688,0.393625,-0.345313,
        0.958364,-0.000151,0.285548,0.695563,0.494688,-0.416187,
-       1.000000,-0.000150,0.000000,0.709531,0.494688,-0.500000,
-       0.999748,0.022461,0.000000,0.710938,0.393625,-0.500000,
-       0.999748,0.022461,0.000000,0.710938,0.393625,-0.500000,
+       1,-0.00015,0,0.709531,0.494688,-0.5,
+       0.999748,0.022461,0,0.710938,0.393625,-0.5,
+       0.999748,0.022461,0,0.710938,0.393625,-0.5,
        0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
        0.958364,-0.000151,0.285548,0.695563,0.494688,-0.416187,
-       0.998811,0.048741,0.000000,0.714805,0.295922,-0.500000,
+       0.998811,0.048741,0,0.714805,0.295922,-0.5,
        0.937029,0.054036,0.345045,0.700484,0.295922,-0.414078,
        0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
-       0.998811,0.048741,0.000000,0.714805,0.295922,-0.500000,
+       0.998811,0.048741,0,0.714805,0.295922,-0.5,
        0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
-       0.999748,0.022461,0.000000,0.710938,0.393625,-0.500000,
+       0.999748,0.022461,0,0.710938,0.393625,-0.5,
        0.937029,0.054036,0.345045,0.700484,0.295922,-0.414078,
-       0.705830,0.060067,0.705830,0.657523,0.295922,-0.342477,
+       0.70583,0.060067,0.70583,0.657523,0.295922,-0.342477,
        0.706741,0.032156,0.706741,0.654688,0.393625,-0.345313,
        0.706741,0.032156,0.706741,0.654688,0.393625,-0.345313,
        0.938064,0.027067,0.345404,0.696875,0.393625,-0.415625,
@@ -1207,45 +1207,45 @@ static const float data[]={
        0.938064,0.027067,-0.345404,0.696875,0.393625,-0.584375,
        0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
        0.706741,0.032156,-0.706741,0.654688,0.393625,-0.654688,
-       0.705830,0.060067,-0.705830,0.657523,0.295922,-0.657523,
+       0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
        0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
        0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
        0.938064,0.027067,-0.345404,0.696875,0.393625,-0.584375,
        0.706741,0.032156,-0.706741,0.654688,0.393625,-0.654688,
-       0.998811,0.048741,0.000000,0.714805,0.295922,-0.500000,
-       0.999748,0.022461,0.000000,0.710938,0.393625,-0.500000,
+       0.998811,0.048741,0,0.714805,0.295922,-0.5,
+       0.999748,0.022461,0,0.710938,0.393625,-0.5,
        0.938064,0.027067,-0.345404,0.696875,0.393625,-0.584375,
-       0.998811,0.048741,0.000000,0.714805,0.295922,-0.500000,
+       0.998811,0.048741,0,0.714805,0.295922,-0.5,
        0.938064,0.027067,-0.345404,0.696875,0.393625,-0.584375,
        0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
-       0.999748,0.022461,0.000000,0.710938,0.393625,-0.500000,
-       1.000000,-0.000150,0.000000,0.709531,0.494688,-0.500000,
+       0.999748,0.022461,0,0.710938,0.393625,-0.5,
+       1,-0.00015,0,0.709531,0.494688,-0.5,
        0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
        0.958364,-0.000151,-0.285548,0.695563,0.494688,-0.583813,
        0.938064,0.027067,-0.345404,0.696875,0.393625,-0.584375,
-       0.999748,0.022461,0.000000,0.710938,0.393625,-0.500000,
+       0.999748,0.022461,0,0.710938,0.393625,-0.5,
        0.703939,0.094547,-0.703939,0.661906,0.207062,-0.661906,
        0.699155,0.149544,-0.699155,0.667578,0.132531,-0.667578,
        0.929642,0.135808,-0.342523,0.713281,0.132531,-0.591406,
        0.929642,0.135808,-0.342523,0.713281,0.132531,-0.591406,
        0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
        0.703939,0.094547,-0.703939,0.661906,0.207062,-0.661906,
-       0.992308,0.123790,0.000000,0.728516,0.132531,-0.500000,
-       0.996862,0.079157,0.000000,0.720781,0.207062,-0.500000,
+       0.992308,0.12379,0,0.728516,0.132531,-0.5,
+       0.996862,0.079157,0,0.720781,0.207062,-0.5,
        0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
-       0.992308,0.123790,0.000000,0.728516,0.132531,-0.500000,
+       0.992308,0.12379,0,0.728516,0.132531,-0.5,
        0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
        0.929642,0.135808,-0.342523,0.713281,0.132531,-0.591406,
-       0.996862,0.079157,0.000000,0.720781,0.207062,-0.500000,
-       0.998811,0.048741,0.000000,0.714805,0.295922,-0.500000,
+       0.996862,0.079157,0,0.720781,0.207062,-0.5,
+       0.998811,0.048741,0,0.714805,0.295922,-0.5,
        0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
        0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
        0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
-       0.996862,0.079157,0.000000,0.720781,0.207062,-0.500000,
-       0.705830,0.060067,-0.705830,0.657523,0.295922,-0.657523,
+       0.996862,0.079157,0,0.720781,0.207062,-0.5,
+       0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
        0.703939,0.094547,-0.703939,0.661906,0.207062,-0.661906,
        0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
-       0.705830,0.060067,-0.705830,0.657523,0.295922,-0.657523,
+       0.70583,0.060067,-0.70583,0.657523,0.295922,-0.657523,
        0.934884,0.086306,-0.344301,0.706063,0.207062,-0.588313,
        0.937029,0.054036,-0.345045,0.700484,0.295922,-0.585922,
        0.699156,0.149544,0.699155,0.667578,0.132531,-0.332422,
@@ -1255,23 +1255,23 @@ static const float data[]={
        0.919364,0.107435,0.378454,0.721812,0.077813,-0.404938,
        0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
        0.929642,0.135808,0.342523,0.713281,0.132531,-0.408594,
-       0.992308,0.123790,0.000000,0.728516,0.132531,-0.500000,
-       0.995686,0.092789,0.000000,0.737656,0.077813,-0.500000,
-       0.995686,0.092789,0.000000,0.737656,0.077813,-0.500000,
+       0.992308,0.12379,0,0.728516,0.132531,-0.5,
+       0.995686,0.092789,0,0.737656,0.077813,-0.5,
+       0.995686,0.092789,0,0.737656,0.077813,-0.5,
        0.919364,0.107435,0.378454,0.721812,0.077813,-0.404938,
        0.929642,0.135808,0.342523,0.713281,0.132531,-0.408594,
-       0.995686,0.092789,0.000000,0.737656,0.077813,-0.500000,
-       0.914719,-0.404091,0.000000,0.738539,0.039819,-0.500000,
-       0.892993,-0.274252,0.356860,0.722453,0.040123,-0.404859,
-       0.892993,-0.274252,0.356860,0.722453,0.040123,-0.404859,
+       0.995686,0.092789,0,0.737656,0.077813,-0.5,
+       0.914719,-0.404091,0,0.738539,0.039819,-0.5,
+       0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
+       0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
        0.919364,0.107435,0.378454,0.721812,0.077813,-0.404938,
-       0.995686,0.092789,0.000000,0.737656,0.077813,-0.500000,
-       0.892993,-0.274252,0.356860,0.722453,0.040123,-0.404859,
+       0.995686,0.092789,0,0.737656,0.077813,-0.5,
+       0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
        0.663755,-0.344758,0.663755,0.674539,0.040427,-0.325461,
        0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
        0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
        0.919364,0.107435,0.378454,0.721812,0.077813,-0.404938,
-       0.892993,-0.274252,0.356860,0.722453,0.040123,-0.404859,
+       0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
        0.699155,0.149544,-0.699155,0.667578,0.132531,-0.667578,
        0.705578,0.065727,-0.705578,0.674281,0.077813,-0.674281,
        0.919364,0.107435,-0.378454,0.721812,0.077813,-0.595062,
@@ -1285,65 +1285,65 @@ static const float data[]={
        0.919364,0.107435,-0.378454,0.721812,0.077813,-0.595062,
        0.705578,0.065727,-0.705578,0.674281,0.077813,-0.674281,
        0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
-       0.914719,-0.404091,0.000000,0.738539,0.039819,-0.500000,
-       0.995686,0.092789,0.000000,0.737656,0.077813,-0.500000,
-       0.995686,0.092789,0.000000,0.737656,0.077813,-0.500000,
+       0.914719,-0.404091,0,0.738539,0.039819,-0.5,
+       0.995686,0.092789,0,0.737656,0.077813,-0.5,
+       0.995686,0.092789,0,0.737656,0.077813,-0.5,
        0.919364,0.107435,-0.378454,0.721812,0.077813,-0.595062,
        0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
-       0.995686,0.092789,0.000000,0.737656,0.077813,-0.500000,
-       0.992308,0.123790,0.000000,0.728516,0.132531,-0.500000,
+       0.995686,0.092789,0,0.737656,0.077813,-0.5,
+       0.992308,0.12379,0,0.728516,0.132531,-0.5,
        0.929642,0.135808,-0.342523,0.713281,0.132531,-0.591406,
        0.929642,0.135808,-0.342523,0.713281,0.132531,-0.591406,
        0.919364,0.107435,-0.378454,0.721812,0.077813,-0.595062,
-       0.995686,0.092789,0.000000,0.737656,0.077813,-0.500000,
+       0.995686,0.092789,0,0.737656,0.077813,-0.5,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
-       0.188350,-0.976969,-0.100277,0.664625,0.003052,-0.582500,
-       0.517064,-0.835523,-0.185868,0.706000,0.016681,-0.587500,
+       0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+       0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
-       0.517064,-0.835523,-0.185868,0.706000,0.016681,-0.587500,
+       0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
        0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.596646,-0.802505,0.000000,0.721500,0.015465,-0.500000,
-       0.517064,-0.835523,-0.185868,0.706000,0.016681,-0.587500,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.517064,-0.835523,-0.185868,0.706000,0.016681,-0.587500,
-       0.188350,-0.976969,-0.100277,0.664625,0.003052,-0.582500,
-       0.914719,-0.404091,0.000000,0.738539,0.039819,-0.500000,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.596646,-0.802505,0,0.7215,0.015465,-0.5,
+       0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
+       0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+       0.914719,-0.404091,0,0.738539,0.039819,-0.5,
        0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
-       0.517064,-0.835523,-0.185868,0.706000,0.016681,-0.587500,
-       0.914719,-0.404091,0.000000,0.738539,0.039819,-0.500000,
-       0.517064,-0.835523,-0.185868,0.706000,0.016681,-0.587500,
-       0.596646,-0.802505,0.000000,0.721500,0.015465,-0.500000,
+       0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
+       0.914719,-0.404091,0,0.738539,0.039819,-0.5,
+       0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
+       0.596646,-0.802505,0,0.7215,0.015465,-0.5,
        0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
        0.663755,-0.344758,-0.663755,0.674539,0.040427,-0.674539,
        0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
        0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
-       0.517064,-0.835523,-0.185868,0.706000,0.016681,-0.587500,
+       0.517064,-0.835523,-0.185868,0.706,0.016681,-0.5875,
        0.892994,-0.274252,-0.356859,0.722453,0.040123,-0.595141,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
        0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
-       0.517064,-0.835523,0.185868,0.706000,0.016681,-0.412500,
+       0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
-       0.517064,-0.835523,0.185868,0.706000,0.016681,-0.412500,
-       0.188350,-0.976969,0.100277,0.664625,0.003052,-0.417500,
+       0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+       0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
        0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
        0.663755,-0.344758,0.663755,0.674539,0.040427,-0.325461,
-       0.892993,-0.274252,0.356860,0.722453,0.040123,-0.404859,
-       0.892993,-0.274252,0.356860,0.722453,0.040123,-0.404859,
-       0.517064,-0.835523,0.185868,0.706000,0.016681,-0.412500,
+       0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
+       0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
+       0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
        0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
-       0.914719,-0.404091,0.000000,0.738539,0.039819,-0.500000,
-       0.596646,-0.802505,0.000000,0.721500,0.015465,-0.500000,
-       0.517064,-0.835523,0.185868,0.706000,0.016681,-0.412500,
-       0.914719,-0.404091,0.000000,0.738539,0.039819,-0.500000,
-       0.517064,-0.835523,0.185868,0.706000,0.016681,-0.412500,
-       0.892993,-0.274252,0.356860,0.722453,0.040123,-0.404859,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.188350,-0.976969,0.100277,0.664625,0.003052,-0.417500,
-       0.517064,-0.835523,0.185868,0.706000,0.016681,-0.412500,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.517064,-0.835523,0.185868,0.706000,0.016681,-0.412500,
-       0.596646,-0.802505,0.000000,0.721500,0.015465,-0.500000,
+       0.914719,-0.404091,0,0.738539,0.039819,-0.5,
+       0.596646,-0.802505,0,0.7215,0.015465,-0.5,
+       0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+       0.914719,-0.404091,0,0.738539,0.039819,-0.5,
+       0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+       0.892993,-0.274252,0.35686,0.722453,0.040123,-0.404859,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+       0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.517064,-0.835523,0.185868,0.706,0.016681,-0.4125,
+       0.596646,-0.802505,0,0.7215,0.015465,-0.5,
        0.699155,0.149544,-0.699155,0.667578,0.132531,-0.667578,
        0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
        0.378454,0.107435,-0.919364,0.595062,0.077813,-0.721812,
@@ -1351,17 +1351,17 @@ static const float data[]={
        0.378454,0.107435,-0.919364,0.595062,0.077813,-0.721812,
        0.705578,0.065727,-0.705578,0.674281,0.077813,-0.674281,
        0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
-       -0.000000,0.123790,-0.992308,0.500000,0.132531,-0.728516,
-       0.000000,0.092789,-0.995686,0.500000,0.077813,-0.737656,
-       0.000000,0.092789,-0.995686,0.500000,0.077813,-0.737656,
+       0,0.12379,-0.992308,0.5,0.132531,-0.728516,
+       0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+       0,0.092789,-0.995686,0.5,0.077813,-0.737656,
        0.378454,0.107435,-0.919364,0.595062,0.077813,-0.721812,
        0.342523,0.135808,-0.929642,0.591406,0.132531,-0.713281,
-       0.000000,0.092789,-0.995686,0.500000,0.077813,-0.737656,
-       0.000000,-0.404091,-0.914719,0.500000,0.039819,-0.738539,
+       0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+       0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
        0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
        0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
        0.378454,0.107435,-0.919364,0.595062,0.077813,-0.721812,
-       0.000000,0.092789,-0.995686,0.500000,0.077813,-0.737656,
+       0,0.092789,-0.995686,0.5,0.077813,-0.737656,
        0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
        0.663755,-0.344758,-0.663755,0.674539,0.040427,-0.674539,
        0.705578,0.065727,-0.705578,0.674281,0.077813,-0.674281,
@@ -1376,70 +1376,70 @@ static const float data[]={
        -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
        -0.705578,0.065727,-0.705578,0.325719,0.077813,-0.674281,
        -0.663755,-0.344758,-0.663755,0.325461,0.040427,-0.674539,
-       -0.356860,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
-       -0.356860,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+       -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+       -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
        -0.378454,0.107435,-0.919364,0.404938,0.077813,-0.721812,
        -0.705578,0.065727,-0.705578,0.325719,0.077813,-0.674281,
-       -0.356860,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
-       0.000000,-0.404091,-0.914719,0.500000,0.039819,-0.738539,
-       0.000000,0.092789,-0.995686,0.500000,0.077813,-0.737656,
-       0.000000,0.092789,-0.995686,0.500000,0.077813,-0.737656,
+       -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+       0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
+       0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+       0,0.092789,-0.995686,0.5,0.077813,-0.737656,
        -0.378454,0.107435,-0.919364,0.404938,0.077813,-0.721812,
-       -0.356860,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
-       0.000000,0.092789,-0.995686,0.500000,0.077813,-0.737656,
-       -0.000000,0.123790,-0.992308,0.500000,0.132531,-0.728516,
+       -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+       0,0.092789,-0.995686,0.5,0.077813,-0.737656,
+       0,0.12379,-0.992308,0.5,0.132531,-0.728516,
        -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
        -0.342523,0.135808,-0.929642,0.408594,0.132531,-0.713281,
        -0.378454,0.107435,-0.919364,0.404938,0.077813,-0.721812,
-       0.000000,0.092789,-0.995686,0.500000,0.077813,-0.737656,
+       0,0.092789,-0.995686,0.5,0.077813,-0.737656,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
-       -0.100277,-0.976969,-0.188350,0.417500,0.003052,-0.664625,
-       -0.185868,-0.835523,-0.517064,0.412500,0.016681,-0.706000,
+       -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+       -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
-       -0.185868,-0.835523,-0.517064,0.412500,0.016681,-0.706000,
+       -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
        -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       0.000000,-0.802505,-0.596646,0.500000,0.015465,-0.721500,
-       -0.185868,-0.835523,-0.517064,0.412500,0.016681,-0.706000,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       -0.185868,-0.835523,-0.517064,0.412500,0.016681,-0.706000,
-       -0.100277,-0.976969,-0.188350,0.417500,0.003052,-0.664625,
-       0.000000,-0.404091,-0.914719,0.500000,0.039819,-0.738539,
-       -0.356860,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
-       -0.185868,-0.835523,-0.517064,0.412500,0.016681,-0.706000,
-       0.000000,-0.404091,-0.914719,0.500000,0.039819,-0.738539,
-       -0.185868,-0.835523,-0.517064,0.412500,0.016681,-0.706000,
-       0.000000,-0.802505,-0.596646,0.500000,0.015465,-0.721500,
-       -0.356860,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       0,-0.802505,-0.596646,0.5,0.015465,-0.7215,
+       -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+       -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+       0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
+       -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+       -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+       0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
+       -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+       0,-0.802505,-0.596646,0.5,0.015465,-0.7215,
+       -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
        -0.663755,-0.344758,-0.663755,0.325461,0.040427,-0.674539,
        -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
        -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
-       -0.185868,-0.835523,-0.517064,0.412500,0.016681,-0.706000,
-       -0.356860,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
+       -0.185868,-0.835523,-0.517064,0.4125,0.016681,-0.706,
+       -0.35686,-0.274252,-0.892993,0.404859,0.040123,-0.722453,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
        0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
-       0.185868,-0.835523,-0.517064,0.587500,0.016681,-0.706000,
+       0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
-       0.185868,-0.835523,-0.517064,0.587500,0.016681,-0.706000,
-       0.100277,-0.976969,-0.188350,0.582500,0.003052,-0.664625,
+       0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
+       0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
        0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
        0.663755,-0.344758,-0.663755,0.674539,0.040427,-0.674539,
        0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
        0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
-       0.185868,-0.835523,-0.517064,0.587500,0.016681,-0.706000,
+       0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
        0.452944,-0.767908,-0.452945,0.660875,0.017896,-0.660875,
-       0.000000,-0.404091,-0.914719,0.500000,0.039819,-0.738539,
-       0.000000,-0.802505,-0.596646,0.500000,0.015465,-0.721500,
-       0.185868,-0.835523,-0.517064,0.587500,0.016681,-0.706000,
-       0.000000,-0.404091,-0.914719,0.500000,0.039819,-0.738539,
-       0.185868,-0.835523,-0.517064,0.587500,0.016681,-0.706000,
+       0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
+       0,-0.802505,-0.596646,0.5,0.015465,-0.7215,
+       0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
+       0,-0.404091,-0.914719,0.5,0.039819,-0.738539,
+       0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
        0.356859,-0.274252,-0.892994,0.595141,0.040123,-0.722453,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       0.100277,-0.976969,-0.188350,0.582500,0.003052,-0.664625,
-       0.185868,-0.835523,-0.517064,0.587500,0.016681,-0.706000,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       0.185868,-0.835523,-0.517064,0.587500,0.016681,-0.706000,
-       0.000000,-0.802505,-0.596646,0.500000,0.015465,-0.721500,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+       0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       0.185868,-0.835523,-0.517064,0.5875,0.016681,-0.706,
+       0,-0.802505,-0.596646,0.5,0.015465,-0.7215,
        -0.699155,0.149544,-0.699156,0.332422,0.132531,-0.667578,
        -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
        -0.919364,0.107436,-0.378454,0.278187,0.077813,-0.595062,
@@ -1447,23 +1447,23 @@ static const float data[]={
        -0.919364,0.107436,-0.378454,0.278187,0.077813,-0.595062,
        -0.705578,0.065727,-0.705578,0.325719,0.077813,-0.674281,
        -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
-       -0.992308,0.123790,-0.000000,0.271484,0.132531,-0.500000,
-       -0.995686,0.092789,-0.000000,0.262344,0.077813,-0.500000,
-       -0.995686,0.092789,-0.000000,0.262344,0.077813,-0.500000,
+       -0.992308,0.12379,0,0.271484,0.132531,-0.5,
+       -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+       -0.995686,0.092789,0,0.262344,0.077813,-0.5,
        -0.919364,0.107436,-0.378454,0.278187,0.077813,-0.595062,
        -0.929642,0.135808,-0.342523,0.286719,0.132531,-0.591406,
-       -0.995686,0.092789,-0.000000,0.262344,0.077813,-0.500000,
-       -0.914719,-0.404091,0.000000,0.261461,0.039819,-0.500000,
-       -0.892993,-0.274251,-0.356860,0.277547,0.040123,-0.595141,
-       -0.892993,-0.274251,-0.356860,0.277547,0.040123,-0.595141,
+       -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+       -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+       -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
+       -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
        -0.919364,0.107436,-0.378454,0.278187,0.077813,-0.595062,
-       -0.995686,0.092789,-0.000000,0.262344,0.077813,-0.500000,
-       -0.892993,-0.274251,-0.356860,0.277547,0.040123,-0.595141,
+       -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+       -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
        -0.663755,-0.344758,-0.663755,0.325461,0.040427,-0.674539,
        -0.705578,0.065727,-0.705578,0.325719,0.077813,-0.674281,
        -0.705578,0.065727,-0.705578,0.325719,0.077813,-0.674281,
        -0.919364,0.107436,-0.378454,0.278187,0.077813,-0.595062,
-       -0.892993,-0.274251,-0.356860,0.277547,0.040123,-0.595141,
+       -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
        -0.699155,0.149545,0.699155,0.332422,0.132531,-0.332422,
        -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
        -0.919364,0.107436,0.378454,0.278187,0.077813,-0.404938,
@@ -1472,70 +1472,70 @@ static const float data[]={
        -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
        -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
        -0.663755,-0.344758,0.663755,0.325461,0.040427,-0.325461,
-       -0.892993,-0.274251,0.356860,0.277547,0.040123,-0.404859,
-       -0.892993,-0.274251,0.356860,0.277547,0.040123,-0.404859,
+       -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
+       -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
        -0.919364,0.107436,0.378454,0.278187,0.077813,-0.404938,
        -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
-       -0.892993,-0.274251,0.356860,0.277547,0.040123,-0.404859,
-       -0.914719,-0.404091,0.000000,0.261461,0.039819,-0.500000,
-       -0.995686,0.092789,-0.000000,0.262344,0.077813,-0.500000,
-       -0.995686,0.092789,-0.000000,0.262344,0.077813,-0.500000,
+       -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
+       -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+       -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+       -0.995686,0.092789,0,0.262344,0.077813,-0.5,
        -0.919364,0.107436,0.378454,0.278187,0.077813,-0.404938,
-       -0.892993,-0.274251,0.356860,0.277547,0.040123,-0.404859,
-       -0.995686,0.092789,-0.000000,0.262344,0.077813,-0.500000,
-       -0.992308,0.123790,-0.000000,0.271484,0.132531,-0.500000,
+       -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
+       -0.995686,0.092789,0,0.262344,0.077813,-0.5,
+       -0.992308,0.12379,0,0.271484,0.132531,-0.5,
        -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
        -0.929642,0.135808,0.342523,0.286719,0.132531,-0.408594,
        -0.919364,0.107436,0.378454,0.278187,0.077813,-0.404938,
-       -0.995686,0.092789,-0.000000,0.262344,0.077813,-0.500000,
+       -0.995686,0.092789,0,0.262344,0.077813,-0.5,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
-       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.417500,
-       -0.517064,-0.835523,0.185867,0.294000,0.016681,-0.412500,
+       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+       -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
-       -0.517064,-0.835523,0.185867,0.294000,0.016681,-0.412500,
+       -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
        -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.596646,-0.802505,0.000000,0.278500,0.015465,-0.500000,
-       -0.517064,-0.835523,0.185867,0.294000,0.016681,-0.412500,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.517064,-0.835523,0.185867,0.294000,0.016681,-0.412500,
-       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.417500,
-       -0.914719,-0.404091,0.000000,0.261461,0.039819,-0.500000,
-       -0.892993,-0.274251,0.356860,0.277547,0.040123,-0.404859,
-       -0.517064,-0.835523,0.185867,0.294000,0.016681,-0.412500,
-       -0.914719,-0.404091,0.000000,0.261461,0.039819,-0.500000,
-       -0.517064,-0.835523,0.185867,0.294000,0.016681,-0.412500,
-       -0.596646,-0.802505,0.000000,0.278500,0.015465,-0.500000,
-       -0.892993,-0.274251,0.356860,0.277547,0.040123,-0.404859,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.596646,-0.802505,0,0.2785,0.015465,-0.5,
+       -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+       -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+       -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
+       -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+       -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+       -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+       -0.596646,-0.802505,0,0.2785,0.015465,-0.5,
+       -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
        -0.663755,-0.344758,0.663755,0.325461,0.040427,-0.325461,
        -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
        -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
-       -0.517064,-0.835523,0.185867,0.294000,0.016681,-0.412500,
-       -0.892993,-0.274251,0.356860,0.277547,0.040123,-0.404859,
+       -0.517064,-0.835523,0.185867,0.294,0.016681,-0.4125,
+       -0.892993,-0.274251,0.35686,0.277547,0.040123,-0.404859,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
        -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
-       -0.517064,-0.835523,-0.185868,0.294000,0.016681,-0.587500,
+       -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
-       -0.517064,-0.835523,-0.185868,0.294000,0.016681,-0.587500,
-       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.582500,
+       -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
        -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
        -0.663755,-0.344758,-0.663755,0.325461,0.040427,-0.674539,
-       -0.892993,-0.274251,-0.356860,0.277547,0.040123,-0.595141,
-       -0.892993,-0.274251,-0.356860,0.277547,0.040123,-0.595141,
-       -0.517064,-0.835523,-0.185868,0.294000,0.016681,-0.587500,
+       -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
+       -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
+       -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
        -0.452945,-0.767908,-0.452945,0.339125,0.017896,-0.660875,
-       -0.914719,-0.404091,0.000000,0.261461,0.039819,-0.500000,
-       -0.596646,-0.802505,0.000000,0.278500,0.015465,-0.500000,
-       -0.517064,-0.835523,-0.185868,0.294000,0.016681,-0.587500,
-       -0.914719,-0.404091,0.000000,0.261461,0.039819,-0.500000,
-       -0.517064,-0.835523,-0.185868,0.294000,0.016681,-0.587500,
-       -0.892993,-0.274251,-0.356860,0.277547,0.040123,-0.595141,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.582500,
-       -0.517064,-0.835523,-0.185868,0.294000,0.016681,-0.587500,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.517064,-0.835523,-0.185868,0.294000,0.016681,-0.587500,
-       -0.596646,-0.802505,0.000000,0.278500,0.015465,-0.500000,
+       -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+       -0.596646,-0.802505,0,0.2785,0.015465,-0.5,
+       -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+       -0.914719,-0.404091,0,0.261461,0.039819,-0.5,
+       -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+       -0.892993,-0.274251,-0.35686,0.277547,0.040123,-0.595141,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+       -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.517064,-0.835523,-0.185868,0.294,0.016681,-0.5875,
+       -0.596646,-0.802505,0,0.2785,0.015465,-0.5,
        -0.699155,0.149545,0.699155,0.332422,0.132531,-0.332422,
        -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
        -0.378454,0.107436,0.919364,0.404938,0.077813,-0.278187,
@@ -1543,23 +1543,23 @@ static const float data[]={
        -0.378454,0.107436,0.919364,0.404938,0.077813,-0.278187,
        -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
        -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
-       -0.000000,0.123790,0.992308,0.500000,0.132531,-0.271484,
-       -0.000000,0.092789,0.995686,0.500000,0.077813,-0.262344,
-       -0.000000,0.092789,0.995686,0.500000,0.077813,-0.262344,
+       0,0.12379,0.992308,0.5,0.132531,-0.271484,
+       0,0.092789,0.995686,0.5,0.077813,-0.262344,
+       0,0.092789,0.995686,0.5,0.077813,-0.262344,
        -0.378454,0.107436,0.919364,0.404938,0.077813,-0.278187,
        -0.342523,0.135808,0.929642,0.408594,0.132531,-0.286719,
-       -0.000000,0.092789,0.995686,0.500000,0.077813,-0.262344,
-       0.000000,-0.404091,0.914719,0.500000,0.039819,-0.261461,
-       -0.356860,-0.274251,0.892993,0.404859,0.040123,-0.277547,
-       -0.356860,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+       0,0.092789,0.995686,0.5,0.077813,-0.262344,
+       0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+       -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+       -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
        -0.378454,0.107436,0.919364,0.404938,0.077813,-0.278187,
-       -0.000000,0.092789,0.995686,0.500000,0.077813,-0.262344,
-       -0.356860,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+       0,0.092789,0.995686,0.5,0.077813,-0.262344,
+       -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
        -0.663755,-0.344758,0.663755,0.325461,0.040427,-0.325461,
        -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
        -0.705578,0.065726,0.705578,0.325719,0.077813,-0.325719,
        -0.378454,0.107436,0.919364,0.404938,0.077813,-0.278187,
-       -0.356860,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+       -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
        0.699156,0.149544,0.699155,0.667578,0.132531,-0.332422,
        0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
        0.378454,0.107436,0.919364,0.595062,0.077813,-0.278187,
@@ -1568,166 +1568,166 @@ static const float data[]={
        0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
        0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
        0.663755,-0.344758,0.663755,0.674539,0.040427,-0.325461,
-       0.356860,-0.274251,0.892993,0.595141,0.040123,-0.277547,
-       0.356860,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+       0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+       0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
        0.378454,0.107436,0.919364,0.595062,0.077813,-0.278187,
        0.705578,0.065727,0.705578,0.674281,0.077813,-0.325719,
-       0.356860,-0.274251,0.892993,0.595141,0.040123,-0.277547,
-       0.000000,-0.404091,0.914719,0.500000,0.039819,-0.261461,
-       -0.000000,0.092789,0.995686,0.500000,0.077813,-0.262344,
-       -0.000000,0.092789,0.995686,0.500000,0.077813,-0.262344,
+       0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+       0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+       0,0.092789,0.995686,0.5,0.077813,-0.262344,
+       0,0.092789,0.995686,0.5,0.077813,-0.262344,
        0.378454,0.107436,0.919364,0.595062,0.077813,-0.278187,
-       0.356860,-0.274251,0.892993,0.595141,0.040123,-0.277547,
-       -0.000000,0.092789,0.995686,0.500000,0.077813,-0.262344,
-       -0.000000,0.123790,0.992308,0.500000,0.132531,-0.271484,
+       0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+       0,0.092789,0.995686,0.5,0.077813,-0.262344,
+       0,0.12379,0.992308,0.5,0.132531,-0.271484,
        0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
        0.342523,0.135808,0.929642,0.591406,0.132531,-0.286719,
        0.378454,0.107436,0.919364,0.595062,0.077813,-0.278187,
-       -0.000000,0.092789,0.995686,0.500000,0.077813,-0.262344,
+       0,0.092789,0.995686,0.5,0.077813,-0.262344,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
-       0.100277,-0.976969,0.188349,0.582500,0.003052,-0.335375,
-       0.185868,-0.835523,0.517064,0.587500,0.016681,-0.294000,
+       0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+       0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
-       0.185868,-0.835523,0.517064,0.587500,0.016681,-0.294000,
+       0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
        0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       0.000000,-0.802505,0.596646,0.500000,0.015465,-0.278500,
-       0.185868,-0.835523,0.517064,0.587500,0.016681,-0.294000,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       0.185868,-0.835523,0.517064,0.587500,0.016681,-0.294000,
-       0.100277,-0.976969,0.188349,0.582500,0.003052,-0.335375,
-       0.000000,-0.404091,0.914719,0.500000,0.039819,-0.261461,
-       0.356860,-0.274251,0.892993,0.595141,0.040123,-0.277547,
-       0.185868,-0.835523,0.517064,0.587500,0.016681,-0.294000,
-       0.000000,-0.404091,0.914719,0.500000,0.039819,-0.261461,
-       0.185868,-0.835523,0.517064,0.587500,0.016681,-0.294000,
-       0.000000,-0.802505,0.596646,0.500000,0.015465,-0.278500,
-       0.356860,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       0,-0.802505,0.596646,0.5,0.015465,-0.2785,
+       0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+       0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+       0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+       0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+       0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+       0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+       0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+       0,-0.802505,0.596646,0.5,0.015465,-0.2785,
+       0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
        0.663755,-0.344758,0.663755,0.674539,0.040427,-0.325461,
        0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
        0.452945,-0.767908,0.452945,0.660875,0.017896,-0.339125,
-       0.185868,-0.835523,0.517064,0.587500,0.016681,-0.294000,
-       0.356860,-0.274251,0.892993,0.595141,0.040123,-0.277547,
+       0.185868,-0.835523,0.517064,0.5875,0.016681,-0.294,
+       0.35686,-0.274251,0.892993,0.595141,0.040123,-0.277547,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
        -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
-       -0.185867,-0.835523,0.517064,0.412500,0.016681,-0.294000,
+       -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
-       -0.185867,-0.835523,0.517064,0.412500,0.016681,-0.294000,
-       -0.100277,-0.976969,0.188349,0.417500,0.003052,-0.335375,
+       -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+       -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
        -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
        -0.663755,-0.344758,0.663755,0.325461,0.040427,-0.325461,
-       -0.356860,-0.274251,0.892993,0.404859,0.040123,-0.277547,
-       -0.356860,-0.274251,0.892993,0.404859,0.040123,-0.277547,
-       -0.185867,-0.835523,0.517064,0.412500,0.016681,-0.294000,
+       -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+       -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+       -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
        -0.452945,-0.767908,0.452945,0.339125,0.017896,-0.339125,
-       0.000000,-0.404091,0.914719,0.500000,0.039819,-0.261461,
-       0.000000,-0.802505,0.596646,0.500000,0.015465,-0.278500,
-       -0.185867,-0.835523,0.517064,0.412500,0.016681,-0.294000,
-       0.000000,-0.404091,0.914719,0.500000,0.039819,-0.261461,
-       -0.185867,-0.835523,0.517064,0.412500,0.016681,-0.294000,
-       -0.356860,-0.274251,0.892993,0.404859,0.040123,-0.277547,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       -0.100277,-0.976969,0.188349,0.417500,0.003052,-0.335375,
-       -0.185867,-0.835523,0.517064,0.412500,0.016681,-0.294000,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       -0.185867,-0.835523,0.517064,0.412500,0.016681,-0.294000,
-       0.000000,-0.802505,0.596646,0.500000,0.015465,-0.278500,
+       0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+       0,-0.802505,0.596646,0.5,0.015465,-0.2785,
+       -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+       0,-0.404091,0.914719,0.5,0.039819,-0.261461,
+       -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+       -0.35686,-0.274251,0.892993,0.404859,0.040123,-0.277547,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+       -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       -0.185867,-0.835523,0.517064,0.4125,0.016681,-0.294,
+       0,-0.802505,0.596646,0.5,0.015465,-0.2785,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
-       0.100277,-0.976969,-0.188350,0.582500,0.003052,-0.664625,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
+       0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
-       0.188350,-0.976969,-0.100277,0.664625,0.003052,-0.582500,
-       0.100277,-0.976969,-0.188350,0.582500,0.003052,-0.664625,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
-       0.100277,-0.976969,-0.188350,0.582500,0.003052,-0.664625,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.188350,-0.976969,-0.100277,0.664625,0.003052,-0.582500,
-       0.188350,-0.976969,-0.100277,0.664625,0.003052,-0.582500,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+       0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+       0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+       0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+       0,-1,0,0.5,-0.010924,-0.5,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+       0,-1,0,0.5,-0.010924,-0.5,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+       0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
-       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.582500,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
+       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
-       -0.100277,-0.976969,-0.188350,0.417500,0.003052,-0.664625,
-       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.582500,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
-       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.582500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       -0.100277,-0.976969,-0.188350,0.417500,0.003052,-0.664625,
-       -0.100277,-0.976969,-0.188350,0.417500,0.003052,-0.664625,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+       -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+       0,-1,0,0.5,-0.010924,-0.5,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+       0,-1,0,0.5,-0.010924,-0.5,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+       -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
-       -0.100277,-0.976969,0.188349,0.417500,0.003052,-0.335375,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
+       -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
-       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.417500,
-       -0.100277,-0.976969,0.188349,0.417500,0.003052,-0.335375,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
-       -0.100277,-0.976969,0.188349,0.417500,0.003052,-0.335375,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.417500,
-       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.417500,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+       -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+       -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+       0,-1,0,0.5,-0.010924,-0.5,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+       0,-1,0,0.5,-0.010924,-0.5,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
-       0.188350,-0.976969,0.100277,0.664625,0.003052,-0.417500,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
+       0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
-       0.100277,-0.976969,0.188349,0.582500,0.003052,-0.335375,
-       0.188350,-0.976969,0.100277,0.664625,0.003052,-0.417500,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
-       0.188350,-0.976969,0.100277,0.664625,0.003052,-0.417500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       0.100277,-0.976969,0.188349,0.582500,0.003052,-0.335375,
-       0.100277,-0.976969,0.188349,0.582500,0.003052,-0.335375,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+       0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+       0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+       0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+       0,-1,0,0.5,-0.010924,-0.5,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+       0,-1,0,0.5,-0.010924,-0.5,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+       0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
 };
 static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
 const struct gllist *s1_1=&frame;
index c114d53e92e0cd6a4b9d6a7b982de9fcbbcf86e3..5f494de6b64da9b8548de10df3b390fb9c106816 100644 (file)
 #include "gllist.h"
 static const float data[]={
-       0.744225,-0.021430,-0.667585,0.865458,0.513412,-0.690781,
-       0.945978,-0.110612,-0.304781,0.915250,0.499050,-0.604062,
-       0.919806,-0.190639,-0.342948,0.925000,0.532253,-0.600125,
-       0.744225,-0.021430,-0.667585,0.865458,0.513412,-0.690781,
-       0.919806,-0.190639,-0.342948,0.925000,0.532253,-0.600125,
-       0.749601,-0.056270,-0.659493,0.877427,0.547520,-0.683563,
-       0.980435,-0.196846,0.000000,0.931847,0.494263,-0.500000,
-       0.981457,-0.191681,-0.000000,0.940858,0.527164,-0.500000,
-       0.919806,-0.190639,-0.342948,0.925000,0.532253,-0.600125,
-       0.980435,-0.196846,0.000000,0.931847,0.494263,-0.500000,
-       0.919806,-0.190639,-0.342948,0.925000,0.532253,-0.600125,
-       0.945978,-0.110612,-0.304781,0.915250,0.499050,-0.604062,
-       0.981457,-0.191681,-0.000000,0.940858,0.527164,-0.500000,
-       0.973132,0.230250,-0.000000,0.945338,0.554869,-0.500000,
-       0.932108,0.142863,-0.332815,0.929810,0.559801,-0.596406,
-       0.932108,0.142863,-0.332815,0.929810,0.559801,-0.596406,
-       0.919806,-0.190639,-0.342948,0.925000,0.532253,-0.600125,
-       0.981457,-0.191681,-0.000000,0.940858,0.527164,-0.500000,
-       0.932108,0.142863,-0.332815,0.929810,0.559801,-0.596406,
-       0.692376,0.299844,-0.656284,0.883750,0.575062,-0.676859,
-       0.749601,-0.056270,-0.659493,0.877427,0.547520,-0.683563,
-       0.749601,-0.056270,-0.659493,0.877427,0.547520,-0.683563,
-       0.919806,-0.190639,-0.342948,0.925000,0.532253,-0.600125,
-       0.932108,0.142863,-0.332815,0.929810,0.559801,-0.596406,
-       0.744225,-0.021430,0.667585,0.865458,0.513412,-0.309219,
-       0.749602,-0.056270,0.659493,0.877427,0.547520,-0.316437,
-       0.919806,-0.190639,0.342948,0.925000,0.532253,-0.399875,
-       0.744225,-0.021430,0.667585,0.865458,0.513412,-0.309219,
-       0.919806,-0.190639,0.342948,0.925000,0.532253,-0.399875,
-       0.945978,-0.110612,0.304781,0.915250,0.499050,-0.395938,
-       0.749602,-0.056270,0.659493,0.877427,0.547520,-0.316437,
-       0.692376,0.299843,0.656284,0.883750,0.575062,-0.323141,
-       0.932108,0.142863,0.332815,0.929810,0.559801,-0.403594,
-       0.932108,0.142863,0.332815,0.929810,0.559801,-0.403594,
-       0.919806,-0.190639,0.342948,0.925000,0.532253,-0.399875,
-       0.749602,-0.056270,0.659493,0.877427,0.547520,-0.316437,
-       0.932108,0.142863,0.332815,0.929810,0.559801,-0.403594,
-       0.973132,0.230250,-0.000000,0.945338,0.554869,-0.500000,
-       0.981457,-0.191681,-0.000000,0.940858,0.527164,-0.500000,
-       0.981457,-0.191681,-0.000000,0.940858,0.527164,-0.500000,
-       0.919806,-0.190639,0.342948,0.925000,0.532253,-0.399875,
-       0.932108,0.142863,0.332815,0.929810,0.559801,-0.403594,
-       0.980435,-0.196846,0.000000,0.931847,0.494263,-0.500000,
-       0.945978,-0.110612,0.304781,0.915250,0.499050,-0.395938,
-       0.919806,-0.190639,0.342948,0.925000,0.532253,-0.399875,
-       0.980435,-0.196846,0.000000,0.931847,0.494263,-0.500000,
-       0.919806,-0.190639,0.342948,0.925000,0.532253,-0.399875,
-       0.981457,-0.191681,-0.000000,0.940858,0.527164,-0.500000,
+       0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+       0.945978,-0.110612,-0.304781,0.91525,0.49905,-0.604062,
+       0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+       0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+       0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+       0.749601,-0.05627,-0.659493,0.877427,0.54752,-0.683563,
+       0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+       0.981457,-0.191681,0,0.940858,0.527164,-0.5,
+       0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+       0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+       0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+       0.945978,-0.110612,-0.304781,0.91525,0.49905,-0.604062,
+       0.981457,-0.191681,0,0.940858,0.527164,-0.5,
+       0.973132,0.23025,0,0.945338,0.554869,-0.5,
+       0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+       0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+       0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+       0.981457,-0.191681,0,0.940858,0.527164,-0.5,
+       0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+       0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+       0.749601,-0.05627,-0.659493,0.877427,0.54752,-0.683563,
+       0.749601,-0.05627,-0.659493,0.877427,0.54752,-0.683563,
+       0.919806,-0.190639,-0.342948,0.925,0.532253,-0.600125,
+       0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+       0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
+       0.749602,-0.05627,0.659493,0.877427,0.54752,-0.316437,
+       0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+       0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
+       0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+       0.945978,-0.110612,0.304781,0.91525,0.49905,-0.395938,
+       0.749602,-0.05627,0.659493,0.877427,0.54752,-0.316437,
+       0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
+       0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+       0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+       0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+       0.749602,-0.05627,0.659493,0.877427,0.54752,-0.316437,
+       0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+       0.973132,0.23025,0,0.945338,0.554869,-0.5,
+       0.981457,-0.191681,0,0.940858,0.527164,-0.5,
+       0.981457,-0.191681,0,0.940858,0.527164,-0.5,
+       0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+       0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+       0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+       0.945978,-0.110612,0.304781,0.91525,0.49905,-0.395938,
+       0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+       0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+       0.919806,-0.190639,0.342948,0.925,0.532253,-0.399875,
+       0.981457,-0.191681,0,0.940858,0.527164,-0.5,
        0.503147,0.845347,0.179535,0.858509,0.615264,-0.361333,
-       0.496158,0.862422,0.100278,0.884513,0.611054,-0.417500,
-       0.729041,0.662418,0.172342,0.919197,0.584697,-0.412500,
+       0.496158,0.862422,0.100278,0.884513,0.611054,-0.4175,
+       0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
        0.503147,0.845347,0.179535,0.858509,0.615264,-0.361333,
-       0.729041,0.662418,0.172342,0.919197,0.584697,-0.412500,
-       0.634483,0.691277,0.345786,0.876135,0.598240,-0.339125,
-       0.546916,0.837188,0.000000,0.897467,0.608935,-0.500000,
-       0.788799,0.614652,0.000000,0.934249,0.580800,-0.500000,
-       0.729041,0.662418,0.172342,0.919197,0.584697,-0.412500,
-       0.546916,0.837188,0.000000,0.897467,0.608935,-0.500000,
-       0.729041,0.662418,0.172342,0.919197,0.584697,-0.412500,
-       0.496158,0.862422,0.100278,0.884513,0.611054,-0.417500,
-       0.973132,0.230250,-0.000000,0.945338,0.554869,-0.500000,
-       0.932108,0.142863,0.332815,0.929810,0.559801,-0.403594,
-       0.729041,0.662418,0.172342,0.919197,0.584697,-0.412500,
-       0.973132,0.230250,-0.000000,0.945338,0.554869,-0.500000,
-       0.729041,0.662418,0.172342,0.919197,0.584697,-0.412500,
-       0.788799,0.614652,0.000000,0.934249,0.580800,-0.500000,
-       0.932108,0.142863,0.332815,0.929810,0.559801,-0.403594,
-       0.692376,0.299843,0.656284,0.883750,0.575062,-0.323141,
-       0.634483,0.691277,0.345786,0.876135,0.598240,-0.339125,
-       0.634483,0.691277,0.345786,0.876135,0.598240,-0.339125,
-       0.729041,0.662418,0.172342,0.919197,0.584697,-0.412500,
-       0.932108,0.142863,0.332815,0.929810,0.559801,-0.403594,
+       0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+       0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
+       0.546916,0.837188,0,0.897467,0.608935,-0.5,
+       0.788799,0.614652,0,0.934249,0.5808,-0.5,
+       0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+       0.546916,0.837188,0,0.897467,0.608935,-0.5,
+       0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+       0.496158,0.862422,0.100278,0.884513,0.611054,-0.4175,
+       0.973132,0.23025,0,0.945338,0.554869,-0.5,
+       0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+       0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+       0.973132,0.23025,0,0.945338,0.554869,-0.5,
+       0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+       0.788799,0.614652,0,0.934249,0.5808,-0.5,
+       0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
+       0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
+       0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
+       0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
+       0.729041,0.662418,0.172342,0.919197,0.584697,-0.4125,
+       0.932108,0.142863,0.332815,0.92981,0.559801,-0.403594,
        0.503147,0.845347,-0.179534,0.858509,0.615264,-0.638667,
-       0.634482,0.691277,-0.345786,0.876135,0.598240,-0.660875,
-       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.587500,
+       0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
+       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
        0.503147,0.845347,-0.179534,0.858509,0.615264,-0.638667,
-       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.587500,
-       0.496158,0.862422,-0.100277,0.884513,0.611054,-0.582500,
-       0.634482,0.691277,-0.345786,0.876135,0.598240,-0.660875,
-       0.692376,0.299844,-0.656284,0.883750,0.575062,-0.676859,
-       0.932108,0.142863,-0.332815,0.929810,0.559801,-0.596406,
-       0.932108,0.142863,-0.332815,0.929810,0.559801,-0.596406,
-       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.587500,
-       0.634482,0.691277,-0.345786,0.876135,0.598240,-0.660875,
-       0.973132,0.230250,-0.000000,0.945338,0.554869,-0.500000,
-       0.788799,0.614652,0.000000,0.934249,0.580800,-0.500000,
-       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.587500,
-       0.973132,0.230250,-0.000000,0.945338,0.554869,-0.500000,
-       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.587500,
-       0.932108,0.142863,-0.332815,0.929810,0.559801,-0.596406,
-       0.546916,0.837188,0.000000,0.897467,0.608935,-0.500000,
-       0.496158,0.862422,-0.100277,0.884513,0.611054,-0.582500,
-       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.587500,
-       0.546916,0.837188,0.000000,0.897467,0.608935,-0.500000,
-       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.587500,
-       0.788799,0.614652,0.000000,0.934249,0.580800,-0.500000,
-       0.744225,-0.021430,0.667585,0.865458,0.513412,-0.309219,
+       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+       0.496158,0.862422,-0.100277,0.884513,0.611054,-0.5825,
+       0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
+       0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+       0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+       0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+       0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
+       0.973132,0.23025,0,0.945338,0.554869,-0.5,
+       0.788799,0.614652,0,0.934249,0.5808,-0.5,
+       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+       0.973132,0.23025,0,0.945338,0.554869,-0.5,
+       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+       0.932108,0.142863,-0.332815,0.92981,0.559801,-0.596406,
+       0.546916,0.837188,0,0.897467,0.608935,-0.5,
+       0.496158,0.862422,-0.100277,0.884513,0.611054,-0.5825,
+       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+       0.546916,0.837188,0,0.897467,0.608935,-0.5,
+       0.729041,0.662418,-0.172342,0.919197,0.584697,-0.5875,
+       0.788799,0.614652,0,0.934249,0.5808,-0.5,
+       0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
        0.395884,0.173928,0.901679,0.782472,0.537348,-0.257187,
        0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
-       0.744225,-0.021430,0.667585,0.865458,0.513412,-0.309219,
+       0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
        0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
-       0.749602,-0.056270,0.659493,0.877427,0.547520,-0.316437,
+       0.749602,-0.05627,0.659493,0.877427,0.54752,-0.316437,
        0.395884,0.173928,0.901679,0.782472,0.537348,-0.257187,
        0.088734,0.313595,0.945402,0.682889,0.566071,-0.239844,
-       0.075758,0.234707,0.969110,0.702992,0.603501,-0.249687,
-       0.075758,0.234707,0.969110,0.702992,0.603501,-0.249687,
+       0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
+       0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
        0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
        0.395884,0.173928,0.901679,0.782472,0.537348,-0.257187,
        0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
-       0.446948,0.373871,0.812686,0.807680,0.601112,-0.274594,
+       0.446948,0.373871,0.812686,0.80768,0.601112,-0.274594,
        0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
        0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
        0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
-       0.075758,0.234707,0.969110,0.702992,0.603501,-0.249687,
-       0.692376,0.299843,0.656284,0.883750,0.575062,-0.323141,
-       0.749602,-0.056270,0.659493,0.877427,0.547520,-0.316437,
+       0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
+       0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
+       0.749602,-0.05627,0.659493,0.877427,0.54752,-0.316437,
        0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
-       0.692376,0.299843,0.656284,0.883750,0.575062,-0.323141,
+       0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
        0.413121,0.093331,0.905881,0.798138,0.572966,-0.266375,
-       0.446948,0.373871,0.812686,0.807680,0.601112,-0.274594,
+       0.446948,0.373871,0.812686,0.80768,0.601112,-0.274594,
        -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
        -0.468298,0.578298,0.668033,0.500319,0.618731,-0.309219,
        -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
        -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
-       -0.227561,0.374378,0.898920,0.607846,0.634036,-0.266375,
+       -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
        -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
        -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
        -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
-       -0.227561,0.374378,0.898920,0.607846,0.634036,-0.266375,
+       -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
        -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
-       -0.227561,0.374378,0.898920,0.607846,0.634036,-0.266375,
+       -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
        -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
        -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
        0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
-       0.075758,0.234707,0.969110,0.702992,0.603501,-0.249687,
-       0.075758,0.234707,0.969110,0.702992,0.603501,-0.249687,
-       -0.227561,0.374378,0.898920,0.607846,0.634036,-0.266375,
+       0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
+       0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
+       -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
        -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
        0.088734,0.313595,0.945402,0.682889,0.566071,-0.239844,
        -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
-       -0.227561,0.374378,0.898920,0.607846,0.634036,-0.266375,
+       -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
        0.088734,0.313595,0.945402,0.682889,0.566071,-0.239844,
-       -0.227561,0.374378,0.898920,0.607846,0.634036,-0.266375,
-       0.075758,0.234707,0.969110,0.702992,0.603501,-0.249687,
+       -0.227561,0.374378,0.89892,0.607846,0.634036,-0.266375,
+       0.075758,0.234707,0.96911,0.702992,0.603501,-0.249687,
        0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
-       0.226858,0.951027,0.209959,0.650852,0.691510,-0.335375,
-       0.096538,0.861150,0.499100,0.641688,0.680252,-0.294000,
+       0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
+       0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
        0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
-       0.096538,0.861150,0.499100,0.641688,0.680252,-0.294000,
+       0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
        -0.070158,0.909054,0.410729,0.571915,0.702991,-0.339125,
-       0.226858,0.951027,0.209959,0.650852,0.691510,-0.335375,
+       0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
        0.329457,0.915147,0.232303,0.729578,0.666743,-0.322437,
-       0.268100,0.824460,0.498385,0.724816,0.652913,-0.278500,
-       0.268100,0.824460,0.498385,0.724816,0.652913,-0.278500,
-       0.096538,0.861150,0.499100,0.641688,0.680252,-0.294000,
-       0.226858,0.951027,0.209959,0.650852,0.691510,-0.335375,
+       0.2681,0.82446,0.498385,0.724816,0.652913,-0.2785,
+       0.2681,0.82446,0.498385,0.724816,0.652913,-0.2785,
+       0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
+       0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
        0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
        -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
-       0.096538,0.861150,0.499100,0.641688,0.680252,-0.294000,
+       0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
        0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
-       0.096538,0.861150,0.499100,0.641688,0.680252,-0.294000,
-       0.268100,0.824460,0.498385,0.724816,0.652913,-0.278500,
+       0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
+       0.2681,0.82446,0.498385,0.724816,0.652913,-0.2785,
        -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
        -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
        -0.070158,0.909054,0.410729,0.571915,0.702991,-0.339125,
        -0.070158,0.909054,0.410729,0.571915,0.702991,-0.339125,
-       0.096538,0.861150,0.499100,0.641688,0.680252,-0.294000,
+       0.096538,0.86115,0.4991,0.641688,0.680252,-0.294,
        -0.109115,0.586342,0.802681,0.625134,0.662855,-0.274594,
        0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
        0.503147,0.845347,0.179535,0.858509,0.615264,-0.361333,
-       0.634483,0.691277,0.345786,0.876135,0.598240,-0.339125,
-       0.634483,0.691277,0.345786,0.876135,0.598240,-0.339125,
-       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294000,
+       0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
+       0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
+       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
        0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
-       0.692376,0.299843,0.656284,0.883750,0.575062,-0.323141,
-       0.446948,0.373871,0.812686,0.807680,0.601112,-0.274594,
-       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294000,
-       0.692376,0.299843,0.656284,0.883750,0.575062,-0.323141,
-       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294000,
-       0.634483,0.691277,0.345786,0.876135,0.598240,-0.339125,
+       0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
+       0.446948,0.373871,0.812686,0.80768,0.601112,-0.274594,
+       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
+       0.692376,0.299843,0.656284,0.88375,0.575062,-0.323141,
+       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
+       0.634483,0.691277,0.345786,0.876135,0.59824,-0.339125,
        0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
-       0.268100,0.824460,0.498385,0.724816,0.652913,-0.278500,
-       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294000,
+       0.2681,0.82446,0.498385,0.724816,0.652913,-0.2785,
+       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
        0.190084,0.486023,0.853024,0.716506,0.632271,-0.258297,
-       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294000,
-       0.446948,0.373871,0.812686,0.807680,0.601112,-0.274594,
+       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
+       0.446948,0.373871,0.812686,0.80768,0.601112,-0.274594,
        0.329457,0.915147,0.232303,0.729578,0.666743,-0.322437,
        0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
-       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294000,
+       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
        0.329457,0.915147,0.232303,0.729578,0.666743,-0.322437,
-       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294000,
-       0.268100,0.824460,0.498385,0.724816,0.652913,-0.278500,
+       0.454725,0.723574,0.519294,0.807153,0.623277,-0.294,
+       0.2681,0.82446,0.498385,0.724816,0.652913,-0.2785,
        -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
        -0.468298,0.578298,0.668033,0.500319,0.618731,-0.309219,
        -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
        -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
-       -0.740712,0.587497,0.325872,0.480984,0.674750,-0.399875,
+       -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
        -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
-       -0.749144,0.662408,-0.000000,0.433930,0.637880,-0.500000,
-       -0.797112,0.603831,0.000000,0.465127,0.679839,-0.500000,
-       -0.740712,0.587497,0.325872,0.480984,0.674750,-0.399875,
-       -0.749144,0.662408,-0.000000,0.433930,0.637880,-0.500000,
-       -0.740712,0.587497,0.325872,0.480984,0.674750,-0.399875,
+       -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+       -0.797112,0.603831,0,0.465127,0.679839,-0.5,
+       -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
+       -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+       -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
        -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
-       -0.797112,0.603831,0.000000,0.465127,0.679839,-0.500000,
-       -0.655082,0.755558,0.000000,0.487673,0.709673,-0.500000,
+       -0.797112,0.603831,0,0.465127,0.679839,-0.5,
+       -0.655082,0.755558,0,0.487673,0.709673,-0.5,
        -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
        -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
-       -0.740712,0.587497,0.325872,0.480984,0.674750,-0.399875,
-       -0.797112,0.603831,0.000000,0.465127,0.679839,-0.500000,
+       -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
+       -0.797112,0.603831,0,0.465127,0.679839,-0.5,
        -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
        -0.541739,0.509206,0.668752,0.528557,0.659482,-0.316437,
-       -0.740712,0.587497,0.325872,0.480984,0.674750,-0.399875,
+       -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
        -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
-       -0.740712,0.587497,0.325872,0.480984,0.674750,-0.399875,
+       -0.740712,0.587497,0.325872,0.480984,0.67475,-0.399875,
        -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
        -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
        -0.468298,0.578298,-0.668033,0.500319,0.618731,-0.690781,
        -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
        -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
-       -0.740713,0.587497,-0.325872,0.480984,0.674750,-0.600125,
+       -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
        -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
        -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
        -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
-       -0.740713,0.587497,-0.325872,0.480984,0.674750,-0.600125,
+       -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
        -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
-       -0.740713,0.587497,-0.325872,0.480984,0.674750,-0.600125,
+       -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
        -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
        -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
-       -0.655082,0.755558,0.000000,0.487673,0.709673,-0.500000,
-       -0.797112,0.603831,0.000000,0.465127,0.679839,-0.500000,
-       -0.797112,0.603831,0.000000,0.465127,0.679839,-0.500000,
-       -0.740713,0.587497,-0.325872,0.480984,0.674750,-0.600125,
+       -0.655082,0.755558,0,0.487673,0.709673,-0.5,
+       -0.797112,0.603831,0,0.465127,0.679839,-0.5,
+       -0.797112,0.603831,0,0.465127,0.679839,-0.5,
+       -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
        -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
-       -0.749144,0.662408,-0.000000,0.433930,0.637880,-0.500000,
+       -0.749144,0.662408,0,0.43393,0.63788,-0.5,
        -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
-       -0.740713,0.587497,-0.325872,0.480984,0.674750,-0.600125,
-       -0.749144,0.662408,-0.000000,0.433930,0.637880,-0.500000,
-       -0.740713,0.587497,-0.325872,0.480984,0.674750,-0.600125,
-       -0.797112,0.603831,0.000000,0.465127,0.679839,-0.500000,
+       -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
+       -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+       -0.740713,0.587497,-0.325872,0.480984,0.67475,-0.600125,
+       -0.797112,0.603831,0,0.465127,0.679839,-0.5,
        0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
-       0.139983,0.985063,-0.100277,0.573201,0.718247,-0.582500,
-       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.587500,
+       0.139983,0.985063,-0.100277,0.573201,0.718247,-0.5825,
+       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
        0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
-       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.587500,
+       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
        -0.070159,0.909054,-0.410729,0.571915,0.702991,-0.660875,
-       0.084449,0.996428,-0.000000,0.561689,0.724552,-0.500000,
-       -0.315050,0.949075,0.000000,0.515384,0.725027,-0.500000,
-       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.587500,
-       0.084449,0.996428,-0.000000,0.561689,0.724552,-0.500000,
-       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.587500,
-       0.139983,0.985063,-0.100277,0.573201,0.718247,-0.582500,
-       -0.315050,0.949075,0.000000,0.515384,0.725027,-0.500000,
-       -0.655082,0.755558,0.000000,0.487673,0.709673,-0.500000,
+       0.084449,0.996428,0,0.561689,0.724552,-0.5,
+       -0.31505,0.949075,0,0.515384,0.725027,-0.5,
+       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
+       0.084449,0.996428,0,0.561689,0.724552,-0.5,
+       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
+       0.139983,0.985063,-0.100277,0.573201,0.718247,-0.5825,
+       -0.31505,0.949075,0,0.515384,0.725027,-0.5,
+       -0.655082,0.755558,0,0.487673,0.709673,-0.5,
        -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
        -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
-       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.587500,
-       -0.315050,0.949075,0.000000,0.515384,0.725027,-0.500000,
+       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
+       -0.31505,0.949075,0,0.515384,0.725027,-0.5,
        -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
        -0.070159,0.909054,-0.410729,0.571915,0.702991,-0.660875,
-       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.587500,
+       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
        -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
-       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.587500,
+       -0.142867,0.968199,-0.205377,0.529644,0.718831,-0.5875,
        -0.606207,0.755737,-0.247737,0.503003,0.704166,-0.596406,
        0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
        -0.070158,0.909054,0.410729,0.571915,0.702991,-0.339125,
-       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.412500,
+       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
        0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
-       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.412500,
-       0.139983,0.985063,0.100277,0.573201,0.718247,-0.417500,
+       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
+       0.139983,0.985063,0.100277,0.573201,0.718247,-0.4175,
        -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
        -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
-       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.412500,
+       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
        -0.424048,0.688165,0.588737,0.548866,0.688331,-0.323141,
-       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.412500,
+       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
        -0.070158,0.909054,0.410729,0.571915,0.702991,-0.339125,
        -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
-       -0.655082,0.755558,0.000000,0.487673,0.709673,-0.500000,
-       -0.315050,0.949075,0.000000,0.515384,0.725027,-0.500000,
-       -0.315050,0.949075,0.000000,0.515384,0.725027,-0.500000,
-       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.412500,
+       -0.655082,0.755558,0,0.487673,0.709673,-0.5,
+       -0.31505,0.949075,0,0.515384,0.725027,-0.5,
+       -0.31505,0.949075,0,0.515384,0.725027,-0.5,
+       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
        -0.606207,0.755737,0.247737,0.503003,0.704166,-0.403594,
-       0.084449,0.996428,-0.000000,0.561689,0.724552,-0.500000,
-       0.139983,0.985063,0.100277,0.573201,0.718247,-0.417500,
-       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.412500,
-       0.084449,0.996428,-0.000000,0.561689,0.724552,-0.500000,
-       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.412500,
-       -0.315050,0.949075,0.000000,0.515384,0.725027,-0.500000,
+       0.084449,0.996428,0,0.561689,0.724552,-0.5,
+       0.139983,0.985063,0.100277,0.573201,0.718247,-0.4175,
+       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
+       0.084449,0.996428,0,0.561689,0.724552,-0.5,
+       -0.142867,0.968199,0.205377,0.529644,0.718831,-0.4125,
+       -0.31505,0.949075,0,0.515384,0.725027,-0.5,
        -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
        -0.468298,0.578298,-0.668033,0.500319,0.618731,-0.690781,
        -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
        -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
-       -0.227561,0.374378,-0.898920,0.607846,0.634036,-0.733625,
+       -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
        -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
        0.088733,0.313595,-0.945402,0.682889,0.566071,-0.760156,
        0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
-       -0.227561,0.374378,-0.898920,0.607846,0.634036,-0.733625,
+       -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
        0.088733,0.313595,-0.945402,0.682889,0.566071,-0.760156,
-       -0.227561,0.374378,-0.898920,0.607846,0.634036,-0.733625,
+       -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
        -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
        0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
        0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
        -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
        -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
-       -0.227561,0.374378,-0.898920,0.607846,0.634036,-0.733625,
+       -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
        0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
        -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
        -0.541738,0.509206,-0.668752,0.528557,0.659482,-0.683563,
-       -0.227561,0.374378,-0.898920,0.607846,0.634036,-0.733625,
+       -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
        -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
-       -0.227561,0.374378,-0.898920,0.607846,0.634036,-0.733625,
+       -0.227561,0.374378,-0.89892,0.607846,0.634036,-0.733625,
        -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
-       0.744225,-0.021430,-0.667585,0.865458,0.513412,-0.690781,
-       0.749601,-0.056270,-0.659493,0.877427,0.547520,-0.683563,
-       0.413120,0.093332,-0.905881,0.798138,0.572966,-0.733625,
-       0.744225,-0.021430,-0.667585,0.865458,0.513412,-0.690781,
-       0.413120,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+       0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+       0.749601,-0.05627,-0.659493,0.877427,0.54752,-0.683563,
+       0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+       0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+       0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
        0.395884,0.173928,-0.901679,0.782472,0.537348,-0.742813,
-       0.692376,0.299844,-0.656284,0.883750,0.575062,-0.676859,
-       0.446948,0.373871,-0.812686,0.807680,0.601112,-0.725406,
-       0.413120,0.093332,-0.905881,0.798138,0.572966,-0.733625,
-       0.692376,0.299844,-0.656284,0.883750,0.575062,-0.676859,
-       0.413120,0.093332,-0.905881,0.798138,0.572966,-0.733625,
-       0.749601,-0.056270,-0.659493,0.877427,0.547520,-0.683563,
+       0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+       0.446948,0.373871,-0.812686,0.80768,0.601112,-0.725406,
+       0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+       0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+       0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+       0.749601,-0.05627,-0.659493,0.877427,0.54752,-0.683563,
        0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
        0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
-       0.413120,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+       0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
        0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
-       0.413120,0.093332,-0.905881,0.798138,0.572966,-0.733625,
-       0.446948,0.373871,-0.812686,0.807680,0.601112,-0.725406,
+       0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+       0.446948,0.373871,-0.812686,0.80768,0.601112,-0.725406,
        0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
        0.088733,0.313595,-0.945402,0.682889,0.566071,-0.760156,
        0.395884,0.173928,-0.901679,0.782472,0.537348,-0.742813,
        0.395884,0.173928,-0.901679,0.782472,0.537348,-0.742813,
-       0.413120,0.093332,-0.905881,0.798138,0.572966,-0.733625,
+       0.41312,0.093332,-0.905881,0.798138,0.572966,-0.733625,
        0.075758,0.234708,-0.969109,0.702992,0.603501,-0.750313,
-       0.634482,0.691277,-0.345786,0.876135,0.598240,-0.660875,
+       0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
        0.503147,0.845347,-0.179534,0.858509,0.615264,-0.638667,
        0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
        0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
-       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706000,
-       0.634482,0.691277,-0.345786,0.876135,0.598240,-0.660875,
+       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
+       0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
        0.329457,0.915147,-0.232303,0.729578,0.666743,-0.677562,
-       0.268100,0.824460,-0.498385,0.724816,0.652913,-0.721500,
-       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706000,
+       0.2681,0.82446,-0.498385,0.724816,0.652913,-0.7215,
+       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
        0.329457,0.915147,-0.232303,0.729578,0.666743,-0.677562,
-       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706000,
+       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
        0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
        0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
-       0.446948,0.373871,-0.812686,0.807680,0.601112,-0.725406,
-       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706000,
+       0.446948,0.373871,-0.812686,0.80768,0.601112,-0.725406,
+       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
        0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
-       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706000,
-       0.268100,0.824460,-0.498385,0.724816,0.652913,-0.721500,
-       0.692376,0.299844,-0.656284,0.883750,0.575062,-0.676859,
-       0.634482,0.691277,-0.345786,0.876135,0.598240,-0.660875,
-       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706000,
-       0.692376,0.299844,-0.656284,0.883750,0.575062,-0.676859,
-       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706000,
-       0.446948,0.373871,-0.812686,0.807680,0.601112,-0.725406,
+       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
+       0.2681,0.82446,-0.498385,0.724816,0.652913,-0.7215,
+       0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+       0.634482,0.691277,-0.345786,0.876135,0.59824,-0.660875,
+       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
+       0.692376,0.299844,-0.656284,0.88375,0.575062,-0.676859,
+       0.454725,0.723574,-0.519294,0.807153,0.623277,-0.706,
+       0.446948,0.373871,-0.812686,0.80768,0.601112,-0.725406,
        0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
        -0.070159,0.909054,-0.410729,0.571915,0.702991,-0.660875,
-       0.096538,0.861150,-0.499100,0.641688,0.680252,-0.706000,
+       0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
        0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
-       0.096538,0.861150,-0.499100,0.641688,0.680252,-0.706000,
-       0.226858,0.951027,-0.209959,0.650852,0.691510,-0.664625,
+       0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
+       0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
        -0.070159,0.909054,-0.410729,0.571915,0.702991,-0.660875,
        -0.424048,0.688166,-0.588737,0.548866,0.688331,-0.676859,
        -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
        -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
-       0.096538,0.861150,-0.499100,0.641688,0.680252,-0.706000,
+       0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
        -0.070159,0.909054,-0.410729,0.571915,0.702991,-0.660875,
        0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
-       0.268100,0.824460,-0.498385,0.724816,0.652913,-0.721500,
-       0.096538,0.861150,-0.499100,0.641688,0.680252,-0.706000,
+       0.2681,0.82446,-0.498385,0.724816,0.652913,-0.7215,
+       0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
        0.190084,0.486023,-0.853024,0.716506,0.632271,-0.741703,
-       0.096538,0.861150,-0.499100,0.641688,0.680252,-0.706000,
+       0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
        -0.109115,0.586342,-0.802681,0.625134,0.662855,-0.725406,
-       0.268100,0.824460,-0.498385,0.724816,0.652913,-0.721500,
+       0.2681,0.82446,-0.498385,0.724816,0.652913,-0.7215,
        0.329457,0.915147,-0.232303,0.729578,0.666743,-0.677562,
-       0.226858,0.951027,-0.209959,0.650852,0.691510,-0.664625,
-       0.226858,0.951027,-0.209959,0.650852,0.691510,-0.664625,
-       0.096538,0.861150,-0.499100,0.641688,0.680252,-0.706000,
-       0.268100,0.824460,-0.498385,0.724816,0.652913,-0.721500,
+       0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
+       0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
+       0.096538,0.86115,-0.4991,0.641688,0.680252,-0.706,
+       0.2681,0.82446,-0.498385,0.724816,0.652913,-0.7215,
        0.503147,0.845347,0.179535,0.858509,0.615264,-0.361333,
        0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
-       0.398886,0.913527,0.079739,0.817112,0.642984,-0.409500,
+       0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
        0.503147,0.845347,0.179535,0.858509,0.615264,-0.361333,
-       0.398886,0.913527,0.079739,0.817112,0.642984,-0.409500,
-       0.496158,0.862422,0.100278,0.884513,0.611054,-0.417500,
+       0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
+       0.496158,0.862422,0.100278,0.884513,0.611054,-0.4175,
        0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
        0.329457,0.915147,0.232303,0.729578,0.666743,-0.322437,
-       0.324391,0.942100,0.084960,0.732447,0.675074,-0.402250,
-       0.324391,0.942100,0.084960,0.732447,0.675074,-0.402250,
-       0.398886,0.913527,0.079739,0.817112,0.642984,-0.409500,
+       0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
+       0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
+       0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
        0.423992,0.883446,0.199385,0.806863,0.637791,-0.335375,
-       0.325568,0.945519,0.000000,0.733407,0.677865,-0.500000,
-       0.404722,0.914440,0.000000,0.824871,0.643250,-0.500000,
-       0.398886,0.913527,0.079739,0.817112,0.642984,-0.409500,
-       0.325568,0.945519,0.000000,0.733407,0.677865,-0.500000,
-       0.398886,0.913527,0.079739,0.817112,0.642984,-0.409500,
-       0.324391,0.942100,0.084960,0.732447,0.675074,-0.402250,
-       0.404722,0.914440,0.000000,0.824871,0.643250,-0.500000,
-       0.546916,0.837188,0.000000,0.897467,0.608935,-0.500000,
-       0.496158,0.862422,0.100278,0.884513,0.611054,-0.417500,
-       0.496158,0.862422,0.100278,0.884513,0.611054,-0.417500,
-       0.398886,0.913527,0.079739,0.817112,0.642984,-0.409500,
-       0.404722,0.914440,0.000000,0.824871,0.643250,-0.500000,
+       0.325568,0.945519,0,0.733407,0.677865,-0.5,
+       0.404722,0.91444,0,0.824871,0.64325,-0.5,
+       0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
+       0.325568,0.945519,0,0.733407,0.677865,-0.5,
+       0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
+       0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
+       0.404722,0.91444,0,0.824871,0.64325,-0.5,
+       0.546916,0.837188,0,0.897467,0.608935,-0.5,
+       0.496158,0.862422,0.100278,0.884513,0.611054,-0.4175,
+       0.496158,0.862422,0.100278,0.884513,0.611054,-0.4175,
+       0.398886,0.913527,0.079739,0.817112,0.642984,-0.4095,
+       0.404722,0.91444,0,0.824871,0.64325,-0.5,
        0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
-       0.139983,0.985063,0.100277,0.573201,0.718247,-0.417500,
-       0.248097,0.965448,0.079739,0.645973,0.701912,-0.409500,
+       0.139983,0.985063,0.100277,0.573201,0.718247,-0.4175,
+       0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
        0.123897,0.972069,0.199329,0.596285,0.705555,-0.361333,
-       0.248097,0.965448,0.079739,0.645973,0.701912,-0.409500,
-       0.226858,0.951027,0.209959,0.650852,0.691510,-0.335375,
-       0.139983,0.985063,0.100277,0.573201,0.718247,-0.417500,
-       0.084449,0.996428,-0.000000,0.561689,0.724552,-0.500000,
-       0.244060,0.969760,0.000000,0.640022,0.706898,-0.500000,
-       0.244060,0.969760,0.000000,0.640022,0.706898,-0.500000,
-       0.248097,0.965448,0.079739,0.645973,0.701912,-0.409500,
-       0.139983,0.985063,0.100277,0.573201,0.718247,-0.417500,
-       0.325568,0.945519,0.000000,0.733407,0.677865,-0.500000,
-       0.324391,0.942100,0.084960,0.732447,0.675074,-0.402250,
-       0.248097,0.965448,0.079739,0.645973,0.701912,-0.409500,
-       0.325568,0.945519,0.000000,0.733407,0.677865,-0.500000,
-       0.248097,0.965448,0.079739,0.645973,0.701912,-0.409500,
-       0.244060,0.969760,0.000000,0.640022,0.706898,-0.500000,
-       0.324391,0.942100,0.084960,0.732447,0.675074,-0.402250,
+       0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
+       0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
+       0.139983,0.985063,0.100277,0.573201,0.718247,-0.4175,
+       0.084449,0.996428,0,0.561689,0.724552,-0.5,
+       0.24406,0.96976,0,0.640022,0.706898,-0.5,
+       0.24406,0.96976,0,0.640022,0.706898,-0.5,
+       0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
+       0.139983,0.985063,0.100277,0.573201,0.718247,-0.4175,
+       0.325568,0.945519,0,0.733407,0.677865,-0.5,
+       0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
+       0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
+       0.325568,0.945519,0,0.733407,0.677865,-0.5,
+       0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
+       0.24406,0.96976,0,0.640022,0.706898,-0.5,
+       0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
        0.329457,0.915147,0.232303,0.729578,0.666743,-0.322437,
-       0.226858,0.951027,0.209959,0.650852,0.691510,-0.335375,
-       0.226858,0.951027,0.209959,0.650852,0.691510,-0.335375,
-       0.248097,0.965448,0.079739,0.645973,0.701912,-0.409500,
-       0.324391,0.942100,0.084960,0.732447,0.675074,-0.402250,
+       0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
+       0.226858,0.951027,0.209959,0.650852,0.69151,-0.335375,
+       0.248097,0.965448,0.079739,0.645973,0.701912,-0.4095,
+       0.324391,0.9421,0.08496,0.732447,0.675074,-0.40225,
        0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
-       0.226858,0.951027,-0.209959,0.650852,0.691510,-0.664625,
-       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.590500,
+       0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
+       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
        0.123896,0.972069,-0.199329,0.596285,0.705555,-0.638667,
-       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.590500,
-       0.139983,0.985063,-0.100277,0.573201,0.718247,-0.582500,
-       0.226858,0.951027,-0.209959,0.650852,0.691510,-0.664625,
+       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
+       0.139983,0.985063,-0.100277,0.573201,0.718247,-0.5825,
+       0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
        0.329457,0.915147,-0.232303,0.729578,0.666743,-0.677562,
-       0.324391,0.942100,-0.084960,0.732447,0.675074,-0.597750,
-       0.324391,0.942100,-0.084960,0.732447,0.675074,-0.597750,
-       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.590500,
-       0.226858,0.951027,-0.209959,0.650852,0.691510,-0.664625,
-       0.325568,0.945519,0.000000,0.733407,0.677865,-0.500000,
-       0.244060,0.969760,0.000000,0.640022,0.706898,-0.500000,
-       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.590500,
-       0.325568,0.945519,0.000000,0.733407,0.677865,-0.500000,
-       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.590500,
-       0.324391,0.942100,-0.084960,0.732447,0.675074,-0.597750,
-       0.244060,0.969760,0.000000,0.640022,0.706898,-0.500000,
-       0.084449,0.996428,-0.000000,0.561689,0.724552,-0.500000,
-       0.139983,0.985063,-0.100277,0.573201,0.718247,-0.582500,
-       0.139983,0.985063,-0.100277,0.573201,0.718247,-0.582500,
-       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.590500,
-       0.244060,0.969760,0.000000,0.640022,0.706898,-0.500000,
+       0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
+       0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
+       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
+       0.226858,0.951027,-0.209959,0.650852,0.69151,-0.664625,
+       0.325568,0.945519,0,0.733407,0.677865,-0.5,
+       0.24406,0.96976,0,0.640022,0.706898,-0.5,
+       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
+       0.325568,0.945519,0,0.733407,0.677865,-0.5,
+       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
+       0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
+       0.24406,0.96976,0,0.640022,0.706898,-0.5,
+       0.084449,0.996428,0,0.561689,0.724552,-0.5,
+       0.139983,0.985063,-0.100277,0.573201,0.718247,-0.5825,
+       0.139983,0.985063,-0.100277,0.573201,0.718247,-0.5825,
+       0.248097,0.965448,-0.079739,0.645973,0.701912,-0.5905,
+       0.24406,0.96976,0,0.640022,0.706898,-0.5,
        0.503147,0.845347,-0.179534,0.858509,0.615264,-0.638667,
-       0.496158,0.862422,-0.100277,0.884513,0.611054,-0.582500,
-       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.590500,
+       0.496158,0.862422,-0.100277,0.884513,0.611054,-0.5825,
+       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
        0.503147,0.845347,-0.179534,0.858509,0.615264,-0.638667,
-       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.590500,
+       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
        0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
-       0.496158,0.862422,-0.100277,0.884513,0.611054,-0.582500,
-       0.546916,0.837188,0.000000,0.897467,0.608935,-0.500000,
-       0.404722,0.914440,0.000000,0.824871,0.643250,-0.500000,
-       0.404722,0.914440,0.000000,0.824871,0.643250,-0.500000,
-       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.590500,
-       0.496158,0.862422,-0.100277,0.884513,0.611054,-0.582500,
-       0.325568,0.945519,0.000000,0.733407,0.677865,-0.500000,
-       0.324391,0.942100,-0.084960,0.732447,0.675074,-0.597750,
-       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.590500,
-       0.325568,0.945519,0.000000,0.733407,0.677865,-0.500000,
-       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.590500,
-       0.404722,0.914440,0.000000,0.824871,0.643250,-0.500000,
-       0.324391,0.942100,-0.084960,0.732447,0.675074,-0.597750,
+       0.496158,0.862422,-0.100277,0.884513,0.611054,-0.5825,
+       0.546916,0.837188,0,0.897467,0.608935,-0.5,
+       0.404722,0.91444,0,0.824871,0.64325,-0.5,
+       0.404722,0.91444,0,0.824871,0.64325,-0.5,
+       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
+       0.496158,0.862422,-0.100277,0.884513,0.611054,-0.5825,
+       0.325568,0.945519,0,0.733407,0.677865,-0.5,
+       0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
+       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
+       0.325568,0.945519,0,0.733407,0.677865,-0.5,
+       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
+       0.404722,0.91444,0,0.824871,0.64325,-0.5,
+       0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
        0.329457,0.915147,-0.232303,0.729578,0.666743,-0.677562,
        0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
        0.423992,0.883446,-0.199386,0.806863,0.637791,-0.664625,
-       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.590500,
-       0.324391,0.942100,-0.084960,0.732447,0.675074,-0.597750,
-       0.744225,-0.021430,-0.667585,0.865458,0.513412,-0.690781,
-       0.730929,0.126990,-0.670535,0.856137,0.470533,-0.708313,
+       0.398886,0.913527,-0.079739,0.817112,0.642984,-0.5905,
+       0.324391,0.9421,-0.08496,0.732447,0.675074,-0.59775,
+       0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
+       0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
        0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
-       0.744225,-0.021430,-0.667585,0.865458,0.513412,-0.690781,
+       0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
        0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
-       0.945978,-0.110612,-0.304781,0.915250,0.499050,-0.604062,
-       0.730929,0.126990,-0.670535,0.856137,0.470533,-0.708313,
+       0.945978,-0.110612,-0.304781,0.91525,0.49905,-0.604062,
+       0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
        0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
-       0.940489,-0.033090,-0.338208,0.907494,0.408859,-0.625156,
-       0.940489,-0.033090,-0.338208,0.907494,0.408859,-0.625156,
+       0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
+       0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
        0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
-       0.730929,0.126990,-0.670535,0.856137,0.470533,-0.708313,
-       0.998189,-0.060158,-0.000000,0.927845,0.404808,-0.500000,
-       0.998674,-0.051473,0.000000,0.929348,0.452746,-0.500000,
+       0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
+       0.998189,-0.060158,0,0.927845,0.404808,-0.5,
+       0.998674,-0.051473,0,0.929348,0.452746,-0.5,
        0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
-       0.998189,-0.060158,-0.000000,0.927845,0.404808,-0.500000,
+       0.998189,-0.060158,0,0.927845,0.404808,-0.5,
        0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
-       0.940489,-0.033090,-0.338208,0.907494,0.408859,-0.625156,
-       0.998674,-0.051473,0.000000,0.929348,0.452746,-0.500000,
-       0.980435,-0.196846,0.000000,0.931847,0.494263,-0.500000,
-       0.945978,-0.110612,-0.304781,0.915250,0.499050,-0.604062,
-       0.945978,-0.110612,-0.304781,0.915250,0.499050,-0.604062,
+       0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
+       0.998674,-0.051473,0,0.929348,0.452746,-0.5,
+       0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+       0.945978,-0.110612,-0.304781,0.91525,0.49905,-0.604062,
+       0.945978,-0.110612,-0.304781,0.91525,0.49905,-0.604062,
        0.942442,-0.005211,-0.334328,0.911045,0.457192,-0.613625,
-       0.998674,-0.051473,0.000000,0.929348,0.452746,-0.500000,
-       0.711272,-0.041300,-0.701703,0.833350,0.366979,-0.747500,
-       0.637630,-0.234074,-0.733919,0.813840,0.310563,-0.755750,
-       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.639500,
-       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.639500,
-       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635000,
-       0.711272,-0.041300,-0.701703,0.833350,0.366979,-0.747500,
-       0.918091,-0.396370,0.000000,0.905776,0.298462,-0.500000,
-       0.985079,-0.172104,0.000000,0.921826,0.352648,-0.500000,
-       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635000,
-       0.918091,-0.396370,0.000000,0.905776,0.298462,-0.500000,
-       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635000,
-       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.639500,
-       0.985079,-0.172104,0.000000,0.921826,0.352648,-0.500000,
-       0.998189,-0.060158,-0.000000,0.927845,0.404808,-0.500000,
-       0.940489,-0.033090,-0.338208,0.907494,0.408859,-0.625156,
-       0.940489,-0.033090,-0.338208,0.907494,0.408859,-0.625156,
-       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635000,
-       0.985079,-0.172104,0.000000,0.921826,0.352648,-0.500000,
+       0.998674,-0.051473,0,0.929348,0.452746,-0.5,
+       0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
+       0.63763,-0.234074,-0.733919,0.81384,0.310563,-0.75575,
+       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
+       0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
+       0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+       0.985079,-0.172104,0,0.921826,0.352648,-0.5,
+       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
+       0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
+       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+       0.985079,-0.172104,0,0.921826,0.352648,-0.5,
+       0.998189,-0.060158,0,0.927845,0.404808,-0.5,
+       0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
+       0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
+       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
+       0.985079,-0.172104,0,0.921826,0.352648,-0.5,
        0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
-       0.711272,-0.041300,-0.701703,0.833350,0.366979,-0.747500,
-       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635000,
+       0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
+       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
        0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
-       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635000,
-       0.940489,-0.033090,-0.338208,0.907494,0.408859,-0.625156,
-       0.846641,-0.361408,0.390620,0.882792,0.301487,-0.360500,
-       0.637630,-0.234074,0.733919,0.813840,0.310563,-0.244250,
-       0.711272,-0.041300,0.701703,0.833350,0.366979,-0.252500,
-       0.711272,-0.041300,0.701703,0.833350,0.366979,-0.252500,
-       0.924673,-0.163460,0.343891,0.899707,0.356231,-0.365000,
-       0.846641,-0.361408,0.390620,0.882792,0.301487,-0.360500,
+       0.924673,-0.163459,-0.343891,0.899707,0.356231,-0.635,
+       0.940489,-0.03309,-0.338208,0.907494,0.408859,-0.625156,
+       0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
+       0.63763,-0.234074,0.733919,0.81384,0.310563,-0.24425,
+       0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+       0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+       0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
+       0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
        0.725614,0.097758,0.681122,0.846442,0.421012,-0.270547,
-       0.940489,-0.033090,0.338208,0.907494,0.408859,-0.374844,
-       0.924673,-0.163460,0.343891,0.899707,0.356231,-0.365000,
+       0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
+       0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
        0.725614,0.097758,0.681122,0.846442,0.421012,-0.270547,
-       0.924673,-0.163460,0.343891,0.899707,0.356231,-0.365000,
-       0.711272,-0.041300,0.701703,0.833350,0.366979,-0.252500,
-       0.940489,-0.033090,0.338208,0.907494,0.408859,-0.374844,
-       0.998189,-0.060158,-0.000000,0.927845,0.404808,-0.500000,
-       0.985079,-0.172104,0.000000,0.921826,0.352648,-0.500000,
-       0.985079,-0.172104,0.000000,0.921826,0.352648,-0.500000,
-       0.924673,-0.163460,0.343891,0.899707,0.356231,-0.365000,
-       0.940489,-0.033090,0.338208,0.907494,0.408859,-0.374844,
-       0.918091,-0.396370,0.000000,0.905776,0.298462,-0.500000,
-       0.846641,-0.361408,0.390620,0.882792,0.301487,-0.360500,
-       0.924673,-0.163460,0.343891,0.899707,0.356231,-0.365000,
-       0.918091,-0.396370,0.000000,0.905776,0.298462,-0.500000,
-       0.924673,-0.163460,0.343891,0.899707,0.356231,-0.365000,
-       0.985079,-0.172104,0.000000,0.921826,0.352648,-0.500000,
-       0.744225,-0.021430,0.667585,0.865458,0.513412,-0.309219,
-       0.945978,-0.110612,0.304781,0.915250,0.499050,-0.395938,
+       0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
+       0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+       0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
+       0.998189,-0.060158,0,0.927845,0.404808,-0.5,
+       0.985079,-0.172104,0,0.921826,0.352648,-0.5,
+       0.985079,-0.172104,0,0.921826,0.352648,-0.5,
+       0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
+       0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
+       0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+       0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
+       0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
+       0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+       0.924673,-0.16346,0.343891,0.899707,0.356231,-0.365,
+       0.985079,-0.172104,0,0.921826,0.352648,-0.5,
+       0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
+       0.945978,-0.110612,0.304781,0.91525,0.49905,-0.395938,
        0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
-       0.744225,-0.021430,0.667585,0.865458,0.513412,-0.309219,
+       0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
        0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
        0.730929,0.126989,0.670535,0.856137,0.470533,-0.291687,
-       0.945978,-0.110612,0.304781,0.915250,0.499050,-0.395938,
-       0.980435,-0.196846,0.000000,0.931847,0.494263,-0.500000,
-       0.998674,-0.051473,0.000000,0.929348,0.452746,-0.500000,
-       0.998674,-0.051473,0.000000,0.929348,0.452746,-0.500000,
+       0.945978,-0.110612,0.304781,0.91525,0.49905,-0.395938,
+       0.980435,-0.196846,0,0.931847,0.494263,-0.5,
+       0.998674,-0.051473,0,0.929348,0.452746,-0.5,
+       0.998674,-0.051473,0,0.929348,0.452746,-0.5,
        0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
-       0.945978,-0.110612,0.304781,0.915250,0.499050,-0.395938,
-       0.998189,-0.060158,-0.000000,0.927845,0.404808,-0.500000,
-       0.940489,-0.033090,0.338208,0.907494,0.408859,-0.374844,
+       0.945978,-0.110612,0.304781,0.91525,0.49905,-0.395938,
+       0.998189,-0.060158,0,0.927845,0.404808,-0.5,
+       0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
        0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
-       0.998189,-0.060158,-0.000000,0.927845,0.404808,-0.500000,
+       0.998189,-0.060158,0,0.927845,0.404808,-0.5,
        0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
-       0.998674,-0.051473,0.000000,0.929348,0.452746,-0.500000,
-       0.940489,-0.033090,0.338208,0.907494,0.408859,-0.374844,
+       0.998674,-0.051473,0,0.929348,0.452746,-0.5,
+       0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
        0.725614,0.097758,0.681122,0.846442,0.421012,-0.270547,
        0.730929,0.126989,0.670535,0.856137,0.470533,-0.291687,
        0.730929,0.126989,0.670535,0.856137,0.470533,-0.291687,
        0.942442,-0.005211,0.334328,0.911045,0.457192,-0.386375,
-       0.940489,-0.033090,0.338208,0.907494,0.408859,-0.374844,
+       0.940489,-0.03309,0.338208,0.907494,0.408859,-0.374844,
        -0.468298,0.578298,-0.668033,0.500319,0.618731,-0.690781,
-       -0.462740,0.649831,-0.602985,0.453481,0.568361,-0.708313,
-       -0.182600,0.532510,-0.826493,0.544994,0.546127,-0.765125,
+       -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+       -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
        -0.468298,0.578298,-0.668033,0.500319,0.618731,-0.690781,
-       -0.182600,0.532510,-0.826493,0.544994,0.546127,-0.765125,
+       -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
        -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
-       -0.462740,0.649831,-0.602985,0.453481,0.568361,-0.708313,
-       -0.490654,0.624331,-0.607840,0.398726,0.510130,-0.729453,
+       -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+       -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
        -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
        -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
-       -0.182600,0.532510,-0.826493,0.544994,0.546127,-0.765125,
-       -0.462740,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+       -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
+       -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
        0.081884,0.387365,-0.918283,0.622584,0.465571,-0.812891,
        0.102672,0.412673,-0.905074,0.654809,0.519447,-0.784063,
-       -0.182600,0.532510,-0.826493,0.544994,0.546127,-0.765125,
+       -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
        0.081884,0.387365,-0.918283,0.622584,0.465571,-0.812891,
-       -0.182600,0.532510,-0.826493,0.544994,0.546127,-0.765125,
+       -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
        -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
        0.102672,0.412673,-0.905074,0.654809,0.519447,-0.784063,
        0.088733,0.313595,-0.945402,0.682889,0.566071,-0.760156,
        -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
        -0.208655,0.445101,-0.870832,0.583305,0.594795,-0.742813,
-       -0.182600,0.532510,-0.826493,0.544994,0.546127,-0.765125,
+       -0.1826,0.53251,-0.826493,0.544994,0.546127,-0.765125,
        0.102672,0.412673,-0.905074,0.654809,0.519447,-0.784063,
-       -0.594150,0.505848,-0.625383,0.346736,0.445797,-0.747500,
-       -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.755750,
-       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.825500,
-       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.825500,
-       -0.261623,0.387306,-0.884052,0.457330,0.427884,-0.815000,
-       -0.594150,0.505848,-0.625383,0.346736,0.445797,-0.747500,
-       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.848750,
-       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.837500,
-       -0.261623,0.387306,-0.884052,0.457330,0.427884,-0.815000,
-       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.848750,
-       -0.261623,0.387306,-0.884052,0.457330,0.427884,-0.815000,
-       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.825500,
-       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.837500,
+       -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+       -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.75575,
+       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
+       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
+       -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
+       -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
+       -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
+       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+       -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
+       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
+       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
        0.081884,0.387365,-0.918283,0.622584,0.465571,-0.812891,
        -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
        -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
-       -0.261623,0.387306,-0.884052,0.457330,0.427884,-0.815000,
-       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.837500,
-       -0.490654,0.624331,-0.607840,0.398726,0.510130,-0.729453,
-       -0.594150,0.505848,-0.625383,0.346736,0.445797,-0.747500,
-       -0.261623,0.387306,-0.884052,0.457330,0.427884,-0.815000,
-       -0.490654,0.624331,-0.607840,0.398726,0.510130,-0.729453,
-       -0.261623,0.387306,-0.884052,0.457330,0.427884,-0.815000,
+       -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
+       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
+       -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
+       -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+       -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
+       -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
+       -0.261623,0.387306,-0.884052,0.45733,0.427884,-0.815,
        -0.208343,0.508292,-0.835603,0.500479,0.489876,-0.792031,
-       0.637630,-0.234074,-0.733919,0.813840,0.310563,-0.755750,
-       0.711272,-0.041300,-0.701703,0.833350,0.366979,-0.747500,
-       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815000,
-       0.637630,-0.234074,-0.733919,0.813840,0.310563,-0.755750,
-       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815000,
-       0.330471,-0.133893,-0.934270,0.698920,0.325689,-0.825500,
-       0.711272,-0.041300,-0.701703,0.833350,0.366979,-0.747500,
+       0.63763,-0.234074,-0.733919,0.81384,0.310563,-0.75575,
+       0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
+       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
+       0.63763,-0.234074,-0.733919,0.81384,0.310563,-0.75575,
+       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
+       0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+       0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
        0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
        0.390355,0.256716,-0.884149,0.744688,0.441266,-0.792031,
        0.390355,0.256716,-0.884149,0.744688,0.441266,-0.792031,
-       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815000,
-       0.711272,-0.041300,-0.701703,0.833350,0.366979,-0.747500,
+       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
+       0.711272,-0.0413,-0.701703,0.83335,0.366979,-0.7475,
        0.081884,0.387365,-0.918283,0.622584,0.465571,-0.812891,
-       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.837500,
-       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815000,
+       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
+       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
        0.081884,0.387365,-0.918283,0.622584,0.465571,-0.812891,
-       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815000,
+       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
        0.390355,0.256716,-0.884149,0.744688,0.441266,-0.792031,
-       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.837500,
-       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.848750,
-       0.330471,-0.133893,-0.934270,0.698920,0.325689,-0.825500,
-       0.330471,-0.133893,-0.934270,0.698920,0.325689,-0.825500,
-       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815000,
-       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.837500,
-       0.730929,0.126990,-0.670535,0.856137,0.470533,-0.708313,
-       0.744225,-0.021430,-0.667585,0.865458,0.513412,-0.690781,
+       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
+       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+       0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+       0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+       0.369337,0.119431,-0.921589,0.722756,0.384892,-0.815,
+       0.046906,0.258379,-0.964904,0.590043,0.406388,-0.8375,
+       0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
+       0.744225,-0.02143,-0.667585,0.865458,0.513412,-0.690781,
        0.395884,0.173928,-0.901679,0.782472,0.537348,-0.742813,
        0.395884,0.173928,-0.901679,0.782472,0.537348,-0.742813,
        0.403724,0.284631,-0.869478,0.764624,0.492766,-0.765125,
-       0.730929,0.126990,-0.670535,0.856137,0.470533,-0.708313,
+       0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
        0.088733,0.313595,-0.945402,0.682889,0.566071,-0.760156,
        0.102672,0.412673,-0.905074,0.654809,0.519447,-0.784063,
        0.403724,0.284631,-0.869478,0.764624,0.492766,-0.765125,
@@ -667,37 +667,37 @@ static const float data[]={
        0.403724,0.284631,-0.869478,0.764624,0.492766,-0.765125,
        0.102672,0.412673,-0.905074,0.654809,0.519447,-0.784063,
        0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
-       0.730929,0.126990,-0.670535,0.856137,0.470533,-0.708313,
+       0.730929,0.12699,-0.670535,0.856137,0.470533,-0.708313,
        0.403724,0.284631,-0.869478,0.764624,0.492766,-0.765125,
        0.725615,0.097758,-0.681122,0.846442,0.421012,-0.729453,
        0.403724,0.284631,-0.869478,0.764624,0.492766,-0.765125,
        0.390355,0.256716,-0.884149,0.744688,0.441266,-0.792031,
        -0.468298,0.578298,0.668033,0.500319,0.618731,-0.309219,
        -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
-       -0.182600,0.532509,0.826493,0.544994,0.546127,-0.234875,
+       -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
        -0.468298,0.578298,0.668033,0.500319,0.618731,-0.309219,
-       -0.182600,0.532509,0.826493,0.544994,0.546127,-0.234875,
-       -0.462740,0.649831,0.602985,0.453481,0.568361,-0.291687,
+       -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
+       -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
        -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
        0.088734,0.313595,0.945402,0.682889,0.566071,-0.239844,
        0.102672,0.412673,0.905074,0.654809,0.519447,-0.215937,
        0.102672,0.412673,0.905074,0.654809,0.519447,-0.215937,
-       -0.182600,0.532509,0.826493,0.544994,0.546127,-0.234875,
+       -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
        -0.208655,0.445101,0.870832,0.583305,0.594795,-0.257187,
        0.081884,0.387365,0.918283,0.622584,0.465571,-0.187109,
        -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
-       -0.182600,0.532509,0.826493,0.544994,0.546127,-0.234875,
+       -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
        0.081884,0.387365,0.918283,0.622584,0.465571,-0.187109,
-       -0.182600,0.532509,0.826493,0.544994,0.546127,-0.234875,
+       -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
        0.102672,0.412673,0.905074,0.654809,0.519447,-0.215937,
        -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
-       -0.490654,0.624331,0.607840,0.398726,0.510130,-0.270547,
-       -0.462740,0.649831,0.602985,0.453481,0.568361,-0.291687,
-       -0.462740,0.649831,0.602985,0.453481,0.568361,-0.291687,
-       -0.182600,0.532509,0.826493,0.544994,0.546127,-0.234875,
+       -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
+       -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
+       -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
+       -0.1826,0.532509,0.826493,0.544994,0.546127,-0.234875,
        -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
        0.395884,0.173928,0.901679,0.782472,0.537348,-0.257187,
-       0.744225,-0.021430,0.667585,0.865458,0.513412,-0.309219,
+       0.744225,-0.02143,0.667585,0.865458,0.513412,-0.309219,
        0.730929,0.126989,0.670535,0.856137,0.470533,-0.291687,
        0.730929,0.126989,0.670535,0.856137,0.470533,-0.291687,
        0.403724,0.284631,0.869478,0.764624,0.492766,-0.234875,
@@ -720,190 +720,190 @@ static const float data[]={
        0.088734,0.313595,0.945402,0.682889,0.566071,-0.239844,
        0.403724,0.284631,0.869478,0.764624,0.492766,-0.234875,
        0.102672,0.412673,0.905074,0.654809,0.519447,-0.215937,
-       0.637630,-0.234074,0.733919,0.813840,0.310563,-0.244250,
-       0.330471,-0.133893,0.934270,0.698920,0.325689,-0.174500,
-       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185000,
-       0.637630,-0.234074,0.733919,0.813840,0.310563,-0.244250,
-       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185000,
-       0.711272,-0.041300,0.701703,0.833350,0.366979,-0.252500,
-       0.330471,-0.133893,0.934270,0.698920,0.325689,-0.174500,
-       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.151250,
-       0.046906,0.258379,0.964904,0.590043,0.406388,-0.162500,
-       0.046906,0.258379,0.964904,0.590043,0.406388,-0.162500,
-       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185000,
-       0.330471,-0.133893,0.934270,0.698920,0.325689,-0.174500,
+       0.63763,-0.234074,0.733919,0.81384,0.310563,-0.24425,
+       0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
+       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
+       0.63763,-0.234074,0.733919,0.81384,0.310563,-0.24425,
+       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
+       0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+       0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
+       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+       0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
+       0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
+       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
+       0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
        0.081884,0.387365,0.918283,0.622584,0.465571,-0.187109,
        0.390355,0.256716,0.884149,0.744688,0.441266,-0.207969,
-       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185000,
+       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
        0.081884,0.387365,0.918283,0.622584,0.465571,-0.187109,
-       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185000,
-       0.046906,0.258379,0.964904,0.590043,0.406388,-0.162500,
+       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
+       0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
        0.390355,0.256716,0.884149,0.744688,0.441266,-0.207969,
        0.725614,0.097758,0.681122,0.846442,0.421012,-0.270547,
-       0.711272,-0.041300,0.701703,0.833350,0.366979,-0.252500,
-       0.711272,-0.041300,0.701703,0.833350,0.366979,-0.252500,
-       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185000,
+       0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+       0.711272,-0.0413,0.701703,0.83335,0.366979,-0.2525,
+       0.369337,0.119431,0.921589,0.722756,0.384892,-0.185,
        0.390355,0.256716,0.884149,0.744688,0.441266,-0.207969,
-       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.174500,
-       -0.645198,0.198269,0.737841,0.308193,0.377118,-0.244250,
-       -0.594150,0.505848,0.625383,0.346736,0.445797,-0.252500,
-       -0.594150,0.505848,0.625383,0.346736,0.445797,-0.252500,
-       -0.261623,0.387306,0.884052,0.457330,0.427884,-0.185000,
-       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.174500,
-       -0.490654,0.624331,0.607840,0.398726,0.510130,-0.270547,
+       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+       -0.645198,0.198269,0.737841,0.308193,0.377118,-0.24425,
+       -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+       -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+       -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
+       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+       -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
        -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
-       -0.261623,0.387306,0.884052,0.457330,0.427884,-0.185000,
-       -0.490654,0.624331,0.607840,0.398726,0.510130,-0.270547,
-       -0.261623,0.387306,0.884052,0.457330,0.427884,-0.185000,
-       -0.594150,0.505848,0.625383,0.346736,0.445797,-0.252500,
+       -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
+       -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
+       -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
+       -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
        -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
        0.081884,0.387365,0.918283,0.622584,0.465571,-0.187109,
-       0.046906,0.258379,0.964904,0.590043,0.406388,-0.162500,
-       0.046906,0.258379,0.964904,0.590043,0.406388,-0.162500,
-       -0.261623,0.387306,0.884052,0.457330,0.427884,-0.185000,
+       0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
+       0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
+       -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
        -0.208343,0.508292,0.835603,0.500479,0.489876,-0.207969,
-       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.151250,
-       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.174500,
-       -0.261623,0.387306,0.884052,0.457330,0.427884,-0.185000,
-       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.151250,
-       -0.261623,0.387306,0.884052,0.457330,0.427884,-0.185000,
-       0.046906,0.258379,0.964904,0.590043,0.406388,-0.162500,
-       -0.462740,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+       -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
+       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+       -0.261623,0.387306,0.884052,0.45733,0.427884,-0.185,
+       0.046906,0.258379,0.964904,0.590043,0.406388,-0.1625,
+       -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
        -0.468298,0.578298,-0.668033,0.500319,0.618731,-0.690781,
        -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
        -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
        -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
-       -0.462740,0.649831,-0.602985,0.453481,0.568361,-0.708313,
-       -0.749144,0.662408,-0.000000,0.433930,0.637880,-0.500000,
-       -0.689225,0.724547,0.000000,0.380271,0.586148,-0.500000,
+       -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+       -0.749144,0.662408,0,0.43393,0.63788,-0.5,
+       -0.689225,0.724547,0,0.380271,0.586148,-0.5,
        -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
-       -0.749144,0.662408,-0.000000,0.433930,0.637880,-0.500000,
+       -0.749144,0.662408,0,0.43393,0.63788,-0.5,
        -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
        -0.677265,0.639604,-0.363619,0.450527,0.633092,-0.604062,
-       -0.689225,0.724547,0.000000,0.380271,0.586148,-0.500000,
-       -0.718122,0.695917,0.000000,0.317323,0.526334,-0.500000,
+       -0.689225,0.724547,0,0.380271,0.586148,-0.5,
+       -0.718122,0.695917,0,0.317323,0.526334,-0.5,
        -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
        -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
        -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
-       -0.689225,0.724547,0.000000,0.380271,0.586148,-0.500000,
-       -0.490654,0.624331,-0.607840,0.398726,0.510130,-0.729453,
-       -0.462740,0.649831,-0.602985,0.453481,0.568361,-0.708313,
+       -0.689225,0.724547,0,0.380271,0.586148,-0.5,
+       -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
+       -0.46274,0.649831,-0.602985,0.453481,0.568361,-0.708313,
        -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
-       -0.490654,0.624331,-0.607840,0.398726,0.510130,-0.729453,
+       -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
        -0.641469,0.710708,-0.288812,0.398573,0.581701,-0.613625,
        -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
        -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
        -0.468298,0.578298,0.668033,0.500319,0.618731,-0.309219,
-       -0.462740,0.649831,0.602985,0.453481,0.568361,-0.291687,
-       -0.462740,0.649831,0.602985,0.453481,0.568361,-0.291687,
+       -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
+       -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
        -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
        -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
-       -0.490654,0.624331,0.607840,0.398726,0.510130,-0.270547,
+       -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
        -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
        -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
-       -0.490654,0.624331,0.607840,0.398726,0.510130,-0.270547,
+       -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
        -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
-       -0.462740,0.649831,0.602985,0.453481,0.568361,-0.291687,
+       -0.46274,0.649831,0.602985,0.453481,0.568361,-0.291687,
        -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
-       -0.718122,0.695917,0.000000,0.317323,0.526334,-0.500000,
-       -0.689225,0.724547,0.000000,0.380271,0.586148,-0.500000,
-       -0.689225,0.724547,0.000000,0.380271,0.586148,-0.500000,
+       -0.718122,0.695917,0,0.317323,0.526334,-0.5,
+       -0.689225,0.724547,0,0.380271,0.586148,-0.5,
+       -0.689225,0.724547,0,0.380271,0.586148,-0.5,
        -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
        -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
-       -0.749144,0.662408,-0.000000,0.433930,0.637880,-0.500000,
+       -0.749144,0.662408,0,0.43393,0.63788,-0.5,
        -0.677265,0.639604,0.363619,0.450527,0.633092,-0.395938,
        -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
-       -0.749144,0.662408,-0.000000,0.433930,0.637880,-0.500000,
+       -0.749144,0.662408,0,0.43393,0.63788,-0.5,
        -0.641469,0.710708,0.288812,0.398573,0.581701,-0.386375,
-       -0.689225,0.724547,0.000000,0.380271,0.586148,-0.500000,
-       -0.594150,0.505848,0.625383,0.346736,0.445797,-0.252500,
-       -0.645198,0.198269,0.737841,0.308193,0.377118,-0.244250,
-       -0.862657,0.314340,0.396249,0.239242,0.386194,-0.360500,
-       -0.862657,0.314340,0.396249,0.239242,0.386194,-0.360500,
-       -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365000,
-       -0.594150,0.505848,0.625383,0.346736,0.445797,-0.252500,
-       -0.940313,0.340311,-0.000000,0.216258,0.389219,-0.500000,
-       -0.786635,0.617419,-0.000000,0.258260,0.460127,-0.500000,
-       -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365000,
-       -0.940313,0.340311,-0.000000,0.216258,0.389219,-0.500000,
-       -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365000,
-       -0.862657,0.314340,0.396249,0.239242,0.386194,-0.360500,
-       -0.786635,0.617419,-0.000000,0.258260,0.460127,-0.500000,
-       -0.718122,0.695917,0.000000,0.317323,0.526334,-0.500000,
+       -0.689225,0.724547,0,0.380271,0.586148,-0.5,
+       -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+       -0.645198,0.198269,0.737841,0.308193,0.377118,-0.24425,
+       -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
+       -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
+       -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365,
+       -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+       -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+       -0.786635,0.617419,0,0.25826,0.460127,-0.5,
+       -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365,
+       -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+       -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365,
+       -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
+       -0.786635,0.617419,0,0.25826,0.460127,-0.5,
+       -0.718122,0.695917,0,0.317323,0.526334,-0.5,
        -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
        -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
-       -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365000,
-       -0.786635,0.617419,-0.000000,0.258260,0.460127,-0.500000,
+       -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365,
+       -0.786635,0.617419,0,0.25826,0.460127,-0.5,
        -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
-       -0.490654,0.624331,0.607840,0.398726,0.510130,-0.270547,
-       -0.594150,0.505848,0.625383,0.346736,0.445797,-0.252500,
-       -0.594150,0.505848,0.625383,0.346736,0.445797,-0.252500,
-       -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365000,
+       -0.490654,0.624331,0.60784,0.398726,0.51013,-0.270547,
+       -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+       -0.59415,0.505848,0.625383,0.346736,0.445797,-0.2525,
+       -0.778413,0.562971,0.277735,0.280379,0.456545,-0.365,
        -0.680327,0.681689,0.269175,0.337674,0.522283,-0.374844,
-       -0.862657,0.314340,-0.396249,0.239242,0.386194,-0.639500,
-       -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.755750,
-       -0.594150,0.505848,-0.625383,0.346736,0.445797,-0.747500,
-       -0.594150,0.505848,-0.625383,0.346736,0.445797,-0.747500,
-       -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635000,
-       -0.862657,0.314340,-0.396249,0.239242,0.386194,-0.639500,
-       -0.594150,0.505848,-0.625383,0.346736,0.445797,-0.747500,
-       -0.490654,0.624331,-0.607840,0.398726,0.510130,-0.729453,
+       -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+       -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.75575,
+       -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+       -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+       -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635,
+       -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+       -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
+       -0.490654,0.624331,-0.60784,0.398726,0.51013,-0.729453,
        -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
        -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
-       -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635000,
-       -0.594150,0.505848,-0.625383,0.346736,0.445797,-0.747500,
+       -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635,
+       -0.59415,0.505848,-0.625383,0.346736,0.445797,-0.7475,
        -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
-       -0.718122,0.695917,0.000000,0.317323,0.526334,-0.500000,
-       -0.786635,0.617419,-0.000000,0.258260,0.460127,-0.500000,
-       -0.786635,0.617419,-0.000000,0.258260,0.460127,-0.500000,
-       -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635000,
+       -0.718122,0.695917,0,0.317323,0.526334,-0.5,
+       -0.786635,0.617419,0,0.25826,0.460127,-0.5,
+       -0.786635,0.617419,0,0.25826,0.460127,-0.5,
+       -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635,
        -0.680327,0.681689,-0.269175,0.337674,0.522283,-0.625156,
-       -0.940313,0.340311,-0.000000,0.216258,0.389219,-0.500000,
-       -0.862657,0.314340,-0.396249,0.239242,0.386194,-0.639500,
-       -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635000,
-       -0.940313,0.340311,-0.000000,0.216258,0.389219,-0.500000,
-       -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635000,
-       -0.786635,0.617419,-0.000000,0.258260,0.460127,-0.500000,
-       -0.686460,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+       -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+       -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+       -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635,
+       -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+       -0.778414,0.562971,-0.277735,0.280379,0.456545,-0.635,
+       -0.786635,0.617419,0,0.25826,0.460127,-0.5,
+       -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
        -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
-       -0.337162,-0.377107,-0.862620,0.400082,0.165542,-0.765125,
-       -0.686460,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
-       -0.337162,-0.377107,-0.862620,0.400082,0.165542,-0.765125,
+       -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
+       -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+       -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
        -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
        -0.009985,-0.330184,-0.943864,0.506665,0.108686,-0.760156,
        -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
-       -0.337162,-0.377107,-0.862620,0.400082,0.165542,-0.765125,
+       -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
        -0.009985,-0.330184,-0.943864,0.506665,0.108686,-0.760156,
-       -0.337162,-0.377107,-0.862620,0.400082,0.165542,-0.765125,
+       -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
        -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
        -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
-       -0.034163,-0.398975,-0.916325,0.523830,0.217409,-0.812891,
-       -0.348349,-0.345034,-0.871553,0.399335,0.227430,-0.792031,
-       -0.348349,-0.345034,-0.871553,0.399335,0.227430,-0.792031,
-       -0.337162,-0.377107,-0.862620,0.400082,0.165542,-0.765125,
+       -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
+       -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
+       -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
+       -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
        -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
-       -0.348349,-0.345034,-0.871553,0.399335,0.227430,-0.792031,
+       -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
        -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
        -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
        -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
-       -0.337162,-0.377107,-0.862620,0.400082,0.165542,-0.765125,
-       -0.348349,-0.345034,-0.871553,0.399335,0.227430,-0.792031,
-       0.612462,-0.474039,-0.632596,0.697100,0.103031,-0.690781,
-       0.562161,-0.569598,-0.599610,0.720950,0.148061,-0.708313,
+       -0.337162,-0.377107,-0.86262,0.400082,0.165542,-0.765125,
+       -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
+       0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
+       0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
        0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
-       0.612462,-0.474039,-0.632596,0.697100,0.103031,-0.690781,
+       0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
        0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
        0.309535,-0.382382,-0.870616,0.610539,0.105601,-0.742813,
-       0.562161,-0.569598,-0.599610,0.720950,0.148061,-0.708313,
-       0.562307,-0.555940,-0.612162,0.752070,0.199038,-0.729453,
+       0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
+       0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
        0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
        0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
        0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
-       0.562161,-0.569598,-0.599610,0.720950,0.148061,-0.708313,
-       -0.034163,-0.398975,-0.916325,0.523830,0.217409,-0.812891,
+       0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
+       -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
        -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
        0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
-       -0.034163,-0.398975,-0.916325,0.523830,0.217409,-0.812891,
+       -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
        0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
        0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
        -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
@@ -912,444 +912,444 @@ static const float data[]={
        0.309535,-0.382382,-0.870616,0.610539,0.105601,-0.742813,
        0.274839,-0.496479,-0.823391,0.626577,0.153203,-0.765125,
        -0.024814,-0.431442,-0.901799,0.513329,0.159372,-0.784063,
-       0.603048,-0.457417,-0.653531,0.784890,0.253894,-0.747500,
-       0.637630,-0.234074,-0.733919,0.813840,0.310563,-0.755750,
-       0.330471,-0.133893,-0.934270,0.698920,0.325689,-0.825500,
-       0.330471,-0.133893,-0.934270,0.698920,0.325689,-0.825500,
-       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815000,
-       0.603048,-0.457417,-0.653531,0.784890,0.253894,-0.747500,
-       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.848750,
-       -0.029604,-0.263000,-0.964342,0.539336,0.279873,-0.837500,
-       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815000,
-       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.848750,
-       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815000,
-       0.330471,-0.133893,-0.934270,0.698920,0.325689,-0.825500,
-       -0.029604,-0.263000,-0.964342,0.539336,0.279873,-0.837500,
-       -0.034163,-0.398975,-0.916325,0.523830,0.217409,-0.812891,
+       0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+       0.63763,-0.234074,-0.733919,0.81384,0.310563,-0.75575,
+       0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+       0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
+       0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+       -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
+       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
+       0.330471,-0.133893,-0.93427,0.69892,0.325689,-0.8255,
+       -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+       -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
        0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
        0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
-       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815000,
-       -0.029604,-0.263000,-0.964342,0.539336,0.279873,-0.837500,
-       0.562307,-0.555940,-0.612162,0.752070,0.199038,-0.729453,
-       0.603048,-0.457417,-0.653531,0.784890,0.253894,-0.747500,
-       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815000,
-       0.562307,-0.555940,-0.612162,0.752070,0.199038,-0.729453,
-       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815000,
+       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
+       -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+       0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
+       0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
+       0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
+       0.285459,-0.369325,-0.884371,0.673275,0.265703,-0.815,
        0.267074,-0.480259,-0.835478,0.648325,0.207388,-0.792031,
-       -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.755750,
-       -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.747500,
-       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815000,
-       -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.755750,
-       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815000,
-       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.825500,
+       -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.75575,
+       -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.7475,
+       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+       -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.75575,
+       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
        -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
-       -0.348349,-0.345034,-0.871553,0.399335,0.227430,-0.792031,
-       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815000,
+       -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
+       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
        -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
-       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815000,
-       -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.747500,
-       -0.034163,-0.398975,-0.916325,0.523830,0.217409,-0.812891,
-       -0.029604,-0.263000,-0.964342,0.539336,0.279873,-0.837500,
-       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815000,
-       -0.034163,-0.398975,-0.916325,0.523830,0.217409,-0.812891,
-       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815000,
-       -0.348349,-0.345034,-0.871553,0.399335,0.227430,-0.792031,
-       -0.029604,-0.263000,-0.964342,0.539336,0.279873,-0.837500,
-       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.848750,
-       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.825500,
-       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.825500,
-       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815000,
-       -0.029604,-0.263000,-0.964342,0.539336,0.279873,-0.837500,
-       -0.686460,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+       -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.7475,
+       -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
+       -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+       -0.034163,-0.398975,-0.916325,0.52383,0.217409,-0.812891,
+       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+       -0.348349,-0.345034,-0.871553,0.399335,0.22743,-0.792031,
+       -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+       0.001894,-0.000876,-0.999998,0.561017,0.343841,-0.84875,
+       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
+       -0.328501,0.124794,-0.936223,0.423113,0.361992,-0.8255,
+       -0.383319,-0.173246,-0.907222,0.405397,0.294044,-0.815,
+       -0.029604,-0.263,-0.964342,0.539336,0.279873,-0.8375,
+       -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
        -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
-       -0.903160,-0.279949,-0.325470,0.249085,0.173768,-0.613625,
-       -0.686460,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
-       -0.903160,-0.279949,-0.325470,0.249085,0.173768,-0.613625,
+       -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
+       -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+       -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
        -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
        -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
        -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
-       -0.922220,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
-       -0.922220,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
-       -0.903160,-0.279949,-0.325470,0.249085,0.173768,-0.613625,
+       -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+       -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+       -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
        -0.681322,-0.324401,-0.656174,0.305709,0.170683,-0.708313,
-       -0.978535,-0.206083,-0.000000,0.212593,0.242461,-0.500000,
-       -0.963203,-0.268774,-0.000000,0.230210,0.174796,-0.500000,
-       -0.903160,-0.279949,-0.325470,0.249085,0.173768,-0.613625,
-       -0.978535,-0.206083,-0.000000,0.212593,0.242461,-0.500000,
-       -0.903160,-0.279949,-0.325470,0.249085,0.173768,-0.613625,
-       -0.922220,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
-       -0.963203,-0.268774,-0.000000,0.230210,0.174796,-0.500000,
-       -0.984639,-0.174604,0.000000,0.246980,0.116398,-0.500000,
+       -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+       -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+       -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
+       -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+       -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
+       -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+       -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+       -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
        -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
        -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
-       -0.903160,-0.279949,-0.325470,0.249085,0.173768,-0.613625,
-       -0.963203,-0.268774,-0.000000,0.230210,0.174796,-0.500000,
-       -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.747500,
-       -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.755750,
-       -0.862657,0.314340,-0.396249,0.239242,0.386194,-0.639500,
-       -0.862657,0.314340,-0.396249,0.239242,0.386194,-0.639500,
-       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635000,
-       -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.747500,
-       -0.940313,0.340311,-0.000000,0.216258,0.389219,-0.500000,
-       -0.999757,-0.022023,0.000000,0.204489,0.315300,-0.500000,
-       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635000,
-       -0.940313,0.340311,-0.000000,0.216258,0.389219,-0.500000,
-       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635000,
-       -0.862657,0.314340,-0.396249,0.239242,0.386194,-0.639500,
-       -0.999757,-0.022023,0.000000,0.204489,0.315300,-0.500000,
-       -0.978535,-0.206083,-0.000000,0.212593,0.242461,-0.500000,
-       -0.922220,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
-       -0.922220,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
-       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635000,
-       -0.999757,-0.022023,0.000000,0.204489,0.315300,-0.500000,
+       -0.90316,-0.279949,-0.32547,0.249085,0.173768,-0.613625,
+       -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+       -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.7475,
+       -0.645198,0.198269,-0.737841,0.308193,0.377118,-0.75575,
+       -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+       -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
+       -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.7475,
+       -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+       -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
+       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
+       -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
+       -0.862657,0.31434,-0.396249,0.239242,0.386194,-0.6395,
+       -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
+       -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+       -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+       -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
+       -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
        -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
-       -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.747500,
-       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635000,
+       -0.746027,-0.030098,-0.665235,0.293781,0.305853,-0.7475,
+       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
        -0.700275,-0.236966,-0.673395,0.295589,0.235781,-0.729453,
-       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635000,
-       -0.922220,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
-       -0.862657,0.314340,0.396249,0.239242,0.386194,-0.360500,
-       -0.645198,0.198269,0.737841,0.308193,0.377118,-0.244250,
-       -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.252500,
-       -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.252500,
-       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365000,
-       -0.862657,0.314340,0.396249,0.239242,0.386194,-0.360500,
+       -0.939405,0.002804,-0.342799,0.226812,0.312938,-0.635,
+       -0.92222,-0.200491,-0.330626,0.233342,0.240791,-0.625156,
+       -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
+       -0.645198,0.198269,0.737841,0.308193,0.377118,-0.24425,
+       -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.2525,
+       -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.2525,
+       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
+       -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
        -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
-       -0.922220,-0.200492,0.330626,0.233342,0.240791,-0.374844,
-       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365000,
+       -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
        -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
-       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365000,
-       -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.252500,
-       -0.922220,-0.200492,0.330626,0.233342,0.240791,-0.374844,
-       -0.978535,-0.206083,-0.000000,0.212593,0.242461,-0.500000,
-       -0.999757,-0.022023,0.000000,0.204489,0.315300,-0.500000,
-       -0.999757,-0.022023,0.000000,0.204489,0.315300,-0.500000,
-       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365000,
-       -0.922220,-0.200492,0.330626,0.233342,0.240791,-0.374844,
-       -0.940313,0.340311,-0.000000,0.216258,0.389219,-0.500000,
-       -0.862657,0.314340,0.396249,0.239242,0.386194,-0.360500,
-       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365000,
-       -0.940313,0.340311,-0.000000,0.216258,0.389219,-0.500000,
-       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365000,
-       -0.999757,-0.022023,0.000000,0.204489,0.315300,-0.500000,
-       -0.686460,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
+       -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.2525,
+       -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+       -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+       -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
+       -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
+       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
+       -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+       -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+       -0.862657,0.31434,0.396249,0.239242,0.386194,-0.3605,
+       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
+       -0.940313,0.340311,0,0.216258,0.389219,-0.5,
+       -0.939405,0.002804,0.342799,0.226812,0.312938,-0.365,
+       -0.999757,-0.022023,0,0.204489,0.3153,-0.5,
+       -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
        -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
-       -0.903160,-0.279949,0.325470,0.249085,0.173768,-0.386375,
-       -0.686460,-0.277096,0.672303,0.316229,0.114342,-0.309219,
-       -0.903160,-0.279949,0.325470,0.249085,0.173768,-0.386375,
+       -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
+       -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+       -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
        -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
        -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
-       -0.984639,-0.174604,0.000000,0.246980,0.116398,-0.500000,
-       -0.963203,-0.268774,-0.000000,0.230210,0.174796,-0.500000,
-       -0.963203,-0.268774,-0.000000,0.230210,0.174796,-0.500000,
-       -0.903160,-0.279949,0.325470,0.249085,0.173768,-0.386375,
+       -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
+       -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+       -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+       -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
        -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
-       -0.978535,-0.206083,-0.000000,0.212593,0.242461,-0.500000,
-       -0.922220,-0.200492,0.330626,0.233342,0.240791,-0.374844,
-       -0.903160,-0.279949,0.325470,0.249085,0.173768,-0.386375,
-       -0.978535,-0.206083,-0.000000,0.212593,0.242461,-0.500000,
-       -0.903160,-0.279949,0.325470,0.249085,0.173768,-0.386375,
-       -0.963203,-0.268774,-0.000000,0.230210,0.174796,-0.500000,
-       -0.922220,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+       -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+       -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+       -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
+       -0.978535,-0.206083,0,0.212593,0.242461,-0.5,
+       -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
+       -0.963203,-0.268774,0,0.23021,0.174796,-0.5,
+       -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
        -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
        -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
        -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
-       -0.903160,-0.279949,0.325470,0.249085,0.173768,-0.386375,
-       -0.922220,-0.200492,0.330626,0.233342,0.240791,-0.374844,
-       -0.686460,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+       -0.90316,-0.279949,0.32547,0.249085,0.173768,-0.386375,
+       -0.92222,-0.200492,0.330626,0.233342,0.240791,-0.374844,
+       -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
        -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
        -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
-       -0.686460,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+       -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
        -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
        -0.340489,-0.258832,0.903921,0.402791,0.111771,-0.257187,
        -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
        -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
-       -0.348350,-0.345034,0.871553,0.399335,0.227430,-0.207969,
-       -0.348350,-0.345034,0.871553,0.399335,0.227430,-0.207969,
+       -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
+       -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
        -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
        -0.681322,-0.324401,0.656174,0.305709,0.170683,-0.291687,
-       -0.348350,-0.345034,0.871553,0.399335,0.227430,-0.207969,
-       -0.034164,-0.398975,0.916325,0.523830,0.217409,-0.187109,
+       -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
+       -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
        -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
        -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
        -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
-       -0.348350,-0.345034,0.871553,0.399335,0.227430,-0.207969,
+       -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
        -0.009985,-0.330184,0.943864,0.506665,0.108686,-0.239844,
        -0.340489,-0.258832,0.903921,0.402791,0.111771,-0.257187,
        -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
        -0.009985,-0.330184,0.943864,0.506665,0.108686,-0.239844,
        -0.337162,-0.377107,0.862619,0.400082,0.165542,-0.234875,
        -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
-       -0.645198,0.198269,0.737841,0.308193,0.377118,-0.244250,
-       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.174500,
-       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185000,
-       -0.645198,0.198269,0.737841,0.308193,0.377118,-0.244250,
-       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185000,
-       -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.252500,
-       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.174500,
-       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.151250,
-       -0.029604,-0.263000,0.964342,0.539336,0.279873,-0.162500,
-       -0.029604,-0.263000,0.964342,0.539336,0.279873,-0.162500,
-       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185000,
-       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.174500,
-       -0.034164,-0.398975,0.916325,0.523830,0.217409,-0.187109,
-       -0.348350,-0.345034,0.871553,0.399335,0.227430,-0.207969,
-       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185000,
-       -0.034164,-0.398975,0.916325,0.523830,0.217409,-0.187109,
-       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185000,
-       -0.029604,-0.263000,0.964342,0.539336,0.279873,-0.162500,
+       -0.645198,0.198269,0.737841,0.308193,0.377118,-0.24425,
+       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+       -0.645198,0.198269,0.737841,0.308193,0.377118,-0.24425,
+       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+       -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.2525,
+       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+       -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
+       -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
+       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+       -0.328501,0.124794,0.936223,0.423113,0.361992,-0.1745,
+       -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
+       -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
+       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+       -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
+       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+       -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
        -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
-       -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.252500,
-       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185000,
+       -0.746027,-0.030098,0.665236,0.293781,0.305853,-0.2525,
+       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
        -0.700275,-0.236966,0.673395,0.295589,0.235781,-0.270547,
-       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185000,
-       -0.348350,-0.345034,0.871553,0.399335,0.227430,-0.207969,
-       0.330471,-0.133893,0.934270,0.698920,0.325689,-0.174500,
-       0.637630,-0.234074,0.733919,0.813840,0.310563,-0.244250,
-       0.603048,-0.457417,0.653531,0.784890,0.253894,-0.252500,
-       0.603048,-0.457417,0.653531,0.784890,0.253894,-0.252500,
-       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185000,
-       0.330471,-0.133893,0.934270,0.698920,0.325689,-0.174500,
-       0.562306,-0.555940,0.612162,0.752070,0.199038,-0.270547,
+       -0.383319,-0.173246,0.907222,0.405397,0.294044,-0.185,
+       -0.34835,-0.345034,0.871553,0.399335,0.22743,-0.207969,
+       0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
+       0.63763,-0.234074,0.733919,0.81384,0.310563,-0.24425,
+       0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
+       0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
+       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
+       0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
+       0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
        0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
-       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185000,
-       0.562306,-0.555940,0.612162,0.752070,0.199038,-0.270547,
-       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185000,
-       0.603048,-0.457417,0.653531,0.784890,0.253894,-0.252500,
+       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
+       0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
+       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
+       0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
        0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
-       -0.034164,-0.398975,0.916325,0.523830,0.217409,-0.187109,
-       -0.029604,-0.263000,0.964342,0.539336,0.279873,-0.162500,
-       -0.029604,-0.263000,0.964342,0.539336,0.279873,-0.162500,
-       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185000,
+       -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
+       -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
+       -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
+       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
        0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
-       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.151250,
-       0.330471,-0.133893,0.934270,0.698920,0.325689,-0.174500,
-       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185000,
-       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.151250,
-       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185000,
-       -0.029604,-0.263000,0.964342,0.539336,0.279873,-0.162500,
-       0.612462,-0.474038,0.632596,0.697100,0.103031,-0.309219,
+       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+       0.330471,-0.133893,0.93427,0.69892,0.325689,-0.1745,
+       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
+       0.001894,-0.000875,0.999998,0.561017,0.343841,-0.15125,
+       0.285459,-0.369325,0.884371,0.673275,0.265703,-0.185,
+       -0.029604,-0.263,0.964342,0.539336,0.279873,-0.1625,
+       0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
        0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
        0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
-       0.612462,-0.474038,0.632596,0.697100,0.103031,-0.309219,
+       0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
        0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
-       0.562162,-0.569598,0.599610,0.720950,0.148061,-0.291687,
+       0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
        0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
        -0.009985,-0.330184,0.943864,0.506665,0.108686,-0.239844,
        -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
        -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
        0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
        0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
-       -0.034164,-0.398975,0.916325,0.523830,0.217409,-0.187109,
+       -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
        0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
        0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
-       -0.034164,-0.398975,0.916325,0.523830,0.217409,-0.187109,
+       -0.034164,-0.398975,0.916325,0.52383,0.217409,-0.187109,
        0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
        -0.024814,-0.431443,0.901799,0.513329,0.159372,-0.215937,
        0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
-       0.562306,-0.555940,0.612162,0.752070,0.199038,-0.270547,
-       0.562162,-0.569598,0.599610,0.720950,0.148061,-0.291687,
-       0.562162,-0.569598,0.599610,0.720950,0.148061,-0.291687,
+       0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
+       0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
+       0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
        0.274839,-0.496479,0.823391,0.626577,0.153203,-0.234875,
        0.267074,-0.480259,0.835478,0.648325,0.207388,-0.207969,
-       0.612462,-0.474038,0.632596,0.697100,0.103031,-0.309219,
-       0.562162,-0.569598,0.599610,0.720950,0.148061,-0.291687,
+       0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
+       0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
        0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
-       0.612462,-0.474038,0.632596,0.697100,0.103031,-0.309219,
+       0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
        0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
        0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
-       0.562162,-0.569598,0.599610,0.720950,0.148061,-0.291687,
-       0.562306,-0.555940,0.612162,0.752070,0.199038,-0.270547,
-       0.743616,-0.602792,0.289270,0.814318,0.194027,-0.374844,
-       0.743616,-0.602792,0.289270,0.814318,0.194027,-0.374844,
+       0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
+       0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
+       0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
+       0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
        0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
-       0.562162,-0.569598,0.599610,0.720950,0.148061,-0.291687,
-       0.788677,-0.614808,0.000000,0.835067,0.192357,-0.500000,
-       0.807803,-0.589452,0.000000,0.796449,0.143948,-0.500000,
+       0.562162,-0.569598,0.59961,0.72095,0.148061,-0.291687,
+       0.788677,-0.614808,0,0.835067,0.192357,-0.5,
+       0.807803,-0.589452,0,0.796449,0.143948,-0.5,
        0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
-       0.788677,-0.614808,0.000000,0.835067,0.192357,-0.500000,
+       0.788677,-0.614808,0,0.835067,0.192357,-0.5,
        0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
-       0.743616,-0.602792,0.289270,0.814318,0.194027,-0.374844,
-       0.807803,-0.589452,0.000000,0.796449,0.143948,-0.500000,
-       0.902893,-0.429866,0.000000,0.766349,0.100974,-0.500000,
+       0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
+       0.807803,-0.589452,0,0.796449,0.143948,-0.5,
+       0.902893,-0.429866,0,0.766349,0.100974,-0.5,
        0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
        0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
        0.752224,-0.592299,0.288689,0.777574,0.144976,-0.386375,
-       0.807803,-0.589452,0.000000,0.796449,0.143948,-0.500000,
-       0.603048,-0.457417,0.653531,0.784890,0.253894,-0.252500,
-       0.637630,-0.234074,0.733919,0.813840,0.310563,-0.244250,
-       0.846641,-0.361408,0.390620,0.882792,0.301487,-0.360500,
-       0.846641,-0.361408,0.390620,0.882792,0.301487,-0.360500,
-       0.784719,-0.539182,0.305775,0.851860,0.246808,-0.365000,
-       0.603048,-0.457417,0.653531,0.784890,0.253894,-0.252500,
-       0.918091,-0.396370,0.000000,0.905776,0.298462,-0.500000,
-       0.822786,-0.568352,-0.000000,0.874183,0.244447,-0.500000,
-       0.784719,-0.539182,0.305775,0.851860,0.246808,-0.365000,
-       0.918091,-0.396370,0.000000,0.905776,0.298462,-0.500000,
-       0.784719,-0.539182,0.305775,0.851860,0.246808,-0.365000,
-       0.846641,-0.361408,0.390620,0.882792,0.301487,-0.360500,
-       0.822786,-0.568352,-0.000000,0.874183,0.244447,-0.500000,
-       0.788677,-0.614808,0.000000,0.835067,0.192357,-0.500000,
-       0.743616,-0.602792,0.289270,0.814318,0.194027,-0.374844,
-       0.743616,-0.602792,0.289270,0.814318,0.194027,-0.374844,
-       0.784719,-0.539182,0.305775,0.851860,0.246808,-0.365000,
-       0.822786,-0.568352,-0.000000,0.874183,0.244447,-0.500000,
-       0.562306,-0.555940,0.612162,0.752070,0.199038,-0.270547,
-       0.603048,-0.457417,0.653531,0.784890,0.253894,-0.252500,
-       0.784719,-0.539182,0.305775,0.851860,0.246808,-0.365000,
-       0.562306,-0.555940,0.612162,0.752070,0.199038,-0.270547,
-       0.784719,-0.539182,0.305775,0.851860,0.246808,-0.365000,
-       0.743616,-0.602792,0.289270,0.814318,0.194027,-0.374844,
-       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.639500,
-       0.637630,-0.234074,-0.733919,0.813840,0.310563,-0.755750,
-       0.603048,-0.457417,-0.653531,0.784890,0.253894,-0.747500,
-       0.603048,-0.457417,-0.653531,0.784890,0.253894,-0.747500,
-       0.784719,-0.539182,-0.305775,0.851860,0.246808,-0.635000,
-       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.639500,
-       0.562307,-0.555940,-0.612162,0.752070,0.199038,-0.729453,
-       0.743616,-0.602791,-0.289270,0.814318,0.194027,-0.625156,
-       0.784719,-0.539182,-0.305775,0.851860,0.246808,-0.635000,
-       0.562307,-0.555940,-0.612162,0.752070,0.199038,-0.729453,
-       0.784719,-0.539182,-0.305775,0.851860,0.246808,-0.635000,
-       0.603048,-0.457417,-0.653531,0.784890,0.253894,-0.747500,
-       0.743616,-0.602791,-0.289270,0.814318,0.194027,-0.625156,
-       0.788677,-0.614808,0.000000,0.835067,0.192357,-0.500000,
-       0.822786,-0.568352,-0.000000,0.874183,0.244447,-0.500000,
-       0.822786,-0.568352,-0.000000,0.874183,0.244447,-0.500000,
-       0.784719,-0.539182,-0.305775,0.851860,0.246808,-0.635000,
-       0.743616,-0.602791,-0.289270,0.814318,0.194027,-0.625156,
-       0.918091,-0.396370,0.000000,0.905776,0.298462,-0.500000,
-       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.639500,
-       0.784719,-0.539182,-0.305775,0.851860,0.246808,-0.635000,
-       0.918091,-0.396370,0.000000,0.905776,0.298462,-0.500000,
-       0.784719,-0.539182,-0.305775,0.851860,0.246808,-0.635000,
-       0.822786,-0.568352,-0.000000,0.874183,0.244447,-0.500000,
-       0.612462,-0.474039,-0.632596,0.697100,0.103031,-0.690781,
+       0.807803,-0.589452,0,0.796449,0.143948,-0.5,
+       0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
+       0.63763,-0.234074,0.733919,0.81384,0.310563,-0.24425,
+       0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
+       0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
+       0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+       0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
+       0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+       0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+       0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+       0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+       0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+       0.846641,-0.361408,0.39062,0.882792,0.301487,-0.3605,
+       0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+       0.788677,-0.614808,0,0.835067,0.192357,-0.5,
+       0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
+       0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
+       0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+       0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+       0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
+       0.603048,-0.457417,0.653531,0.78489,0.253894,-0.2525,
+       0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+       0.562306,-0.55594,0.612162,0.75207,0.199038,-0.270547,
+       0.784719,-0.539182,0.305775,0.85186,0.246808,-0.365,
+       0.743616,-0.602792,0.28927,0.814318,0.194027,-0.374844,
+       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+       0.63763,-0.234074,-0.733919,0.81384,0.310563,-0.75575,
+       0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+       0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+       0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+       0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
+       0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
+       0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+       0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
+       0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+       0.603048,-0.457417,-0.653531,0.78489,0.253894,-0.7475,
+       0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
+       0.788677,-0.614808,0,0.835067,0.192357,-0.5,
+       0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+       0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+       0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+       0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
+       0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+       0.846641,-0.361408,-0.390619,0.882792,0.301487,-0.6395,
+       0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+       0.918091,-0.39637,0,0.905776,0.298462,-0.5,
+       0.784719,-0.539182,-0.305775,0.85186,0.246808,-0.635,
+       0.822786,-0.568352,0,0.874183,0.244447,-0.5,
+       0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
        0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
        0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
-       0.612462,-0.474039,-0.632596,0.697100,0.103031,-0.690781,
+       0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
        0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
-       0.562161,-0.569598,-0.599610,0.720950,0.148061,-0.708313,
+       0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
        0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
-       0.902893,-0.429866,0.000000,0.766349,0.100974,-0.500000,
-       0.807803,-0.589452,0.000000,0.796449,0.143948,-0.500000,
-       0.807803,-0.589452,0.000000,0.796449,0.143948,-0.500000,
+       0.902893,-0.429866,0,0.766349,0.100974,-0.5,
+       0.807803,-0.589452,0,0.796449,0.143948,-0.5,
+       0.807803,-0.589452,0,0.796449,0.143948,-0.5,
        0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
        0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
-       0.788677,-0.614808,0.000000,0.835067,0.192357,-0.500000,
-       0.743616,-0.602791,-0.289270,0.814318,0.194027,-0.625156,
+       0.788677,-0.614808,0,0.835067,0.192357,-0.5,
+       0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
        0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
-       0.788677,-0.614808,0.000000,0.835067,0.192357,-0.500000,
+       0.788677,-0.614808,0,0.835067,0.192357,-0.5,
        0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
-       0.807803,-0.589452,0.000000,0.796449,0.143948,-0.500000,
-       0.743616,-0.602791,-0.289270,0.814318,0.194027,-0.625156,
-       0.562307,-0.555940,-0.612162,0.752070,0.199038,-0.729453,
-       0.562161,-0.569598,-0.599610,0.720950,0.148061,-0.708313,
-       0.562161,-0.569598,-0.599610,0.720950,0.148061,-0.708313,
+       0.807803,-0.589452,0,0.796449,0.143948,-0.5,
+       0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
+       0.562307,-0.55594,-0.612162,0.75207,0.199038,-0.729453,
+       0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
+       0.562161,-0.569598,-0.59961,0.72095,0.148061,-0.708313,
        0.752224,-0.592299,-0.288689,0.777574,0.144976,-0.613625,
-       0.743616,-0.602791,-0.289270,0.814318,0.194027,-0.625156,
-       0.662382,-0.336592,0.669295,0.686090,0.066012,-0.316437,
-       0.612462,-0.474038,0.632596,0.697100,0.103031,-0.309219,
+       0.743616,-0.602791,-0.28927,0.814318,0.194027,-0.625156,
+       0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
+       0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
        0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
        0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
        0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
-       0.662382,-0.336592,0.669295,0.686090,0.066012,-0.316437,
-       0.902893,-0.429866,0.000000,0.766349,0.100974,-0.500000,
-       0.936513,-0.350633,0.000000,0.752790,0.065190,-0.500000,
+       0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
+       0.902893,-0.429866,0,0.766349,0.100974,-0.5,
+       0.936513,-0.350633,0,0.75279,0.06519,-0.5,
        0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
-       0.902893,-0.429866,0.000000,0.766349,0.100974,-0.500000,
+       0.902893,-0.429866,0,0.766349,0.100974,-0.5,
        0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
        0.829185,-0.462729,0.313581,0.749037,0.101488,-0.395938,
-       0.936513,-0.350633,0.000000,0.752790,0.065190,-0.500000,
-       0.796583,-0.604530,-0.000000,0.742322,0.036664,-0.500000,
+       0.936513,-0.350633,0,0.75279,0.06519,-0.5,
+       0.796583,-0.60453,0,0.742322,0.036664,-0.5,
        0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
        0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
        0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
-       0.936513,-0.350633,0.000000,0.752790,0.065190,-0.500000,
-       0.609651,-0.502200,0.613287,0.677491,0.037477,-0.323141,
-       0.662382,-0.336592,0.669295,0.686090,0.066012,-0.316437,
+       0.936513,-0.350633,0,0.75279,0.06519,-0.5,
+       0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
+       0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
        0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
-       0.609651,-0.502200,0.613287,0.677491,0.037477,-0.323141,
+       0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
        0.877019,-0.354062,0.324773,0.736115,0.065395,-0.399875,
        0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
        0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
-       0.612462,-0.474039,-0.632596,0.697100,0.103031,-0.690781,
-       0.662382,-0.336592,-0.669295,0.686090,0.066012,-0.683563,
-       0.662382,-0.336592,-0.669295,0.686090,0.066012,-0.683563,
+       0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
+       0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
+       0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
        0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
        0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
-       0.609651,-0.502200,-0.613287,0.677491,0.037477,-0.676859,
+       0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
        0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
        0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
-       0.609651,-0.502200,-0.613287,0.677491,0.037477,-0.676859,
+       0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
        0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
-       0.662382,-0.336592,-0.669295,0.686090,0.066012,-0.683563,
+       0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
        0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
-       0.796583,-0.604530,-0.000000,0.742322,0.036664,-0.500000,
-       0.936513,-0.350633,0.000000,0.752790,0.065190,-0.500000,
-       0.936513,-0.350633,0.000000,0.752790,0.065190,-0.500000,
+       0.796583,-0.60453,0,0.742322,0.036664,-0.5,
+       0.936513,-0.350633,0,0.75279,0.06519,-0.5,
+       0.936513,-0.350633,0,0.75279,0.06519,-0.5,
        0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
        0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
-       0.902893,-0.429866,0.000000,0.766349,0.100974,-0.500000,
+       0.902893,-0.429866,0,0.766349,0.100974,-0.5,
        0.829185,-0.462729,-0.313581,0.749037,0.101488,-0.604062,
        0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
-       0.902893,-0.429866,0.000000,0.766349,0.100974,-0.500000,
+       0.902893,-0.429866,0,0.766349,0.100974,-0.5,
        0.877019,-0.354062,-0.324773,0.736115,0.065395,-0.600125,
-       0.936513,-0.350633,0.000000,0.752790,0.065190,-0.500000,
+       0.936513,-0.350633,0,0.75279,0.06519,-0.5,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
-       0.188350,-0.976969,-0.100277,0.664625,0.003052,-0.582500,
-       0.460562,-0.871490,-0.168487,0.706000,0.016681,-0.587500,
+       0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+       0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
-       0.460562,-0.871490,-0.168487,0.706000,0.016681,-0.587500,
+       0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
        0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.528671,-0.848827,0.000000,0.721500,0.015465,-0.500000,
-       0.460562,-0.871490,-0.168487,0.706000,0.016681,-0.587500,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.460562,-0.871490,-0.168487,0.706000,0.016681,-0.587500,
-       0.188350,-0.976969,-0.100277,0.664625,0.003052,-0.582500,
-       0.796583,-0.604530,-0.000000,0.742322,0.036664,-0.500000,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.528671,-0.848827,0,0.7215,0.015465,-0.5,
+       0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
+       0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+       0.796583,-0.60453,0,0.742322,0.036664,-0.5,
        0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
-       0.460562,-0.871490,-0.168487,0.706000,0.016681,-0.587500,
-       0.796583,-0.604530,-0.000000,0.742322,0.036664,-0.500000,
-       0.460562,-0.871490,-0.168487,0.706000,0.016681,-0.587500,
-       0.528671,-0.848827,0.000000,0.721500,0.015465,-0.500000,
+       0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
+       0.796583,-0.60453,0,0.742322,0.036664,-0.5,
+       0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
+       0.528671,-0.848827,0,0.7215,0.015465,-0.5,
        0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
-       0.609651,-0.502200,-0.613287,0.677491,0.037477,-0.676859,
+       0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
        0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
        0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
-       0.460562,-0.871490,-0.168487,0.706000,0.016681,-0.587500,
+       0.460562,-0.87149,-0.168487,0.706,0.016681,-0.5875,
        0.776532,-0.563325,-0.282246,0.726029,0.037019,-0.596406,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
        0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
-       0.460562,-0.871490,0.168487,0.706000,0.016681,-0.412500,
+       0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
-       0.460562,-0.871490,0.168487,0.706000,0.016681,-0.412500,
-       0.188350,-0.976969,0.100277,0.664625,0.003052,-0.417500,
+       0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
+       0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
        0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
-       0.609651,-0.502200,0.613287,0.677491,0.037477,-0.323141,
+       0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
        0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
        0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
-       0.460562,-0.871490,0.168487,0.706000,0.016681,-0.412500,
+       0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
        0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
-       0.796583,-0.604530,-0.000000,0.742322,0.036664,-0.500000,
-       0.528671,-0.848827,0.000000,0.721500,0.015465,-0.500000,
-       0.460562,-0.871490,0.168487,0.706000,0.016681,-0.412500,
-       0.796583,-0.604530,-0.000000,0.742322,0.036664,-0.500000,
-       0.460562,-0.871490,0.168487,0.706000,0.016681,-0.412500,
+       0.796583,-0.60453,0,0.742322,0.036664,-0.5,
+       0.528671,-0.848827,0,0.7215,0.015465,-0.5,
+       0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
+       0.796583,-0.60453,0,0.742322,0.036664,-0.5,
+       0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
        0.776532,-0.563325,0.282246,0.726029,0.037019,-0.403594,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.188350,-0.976969,0.100277,0.664625,0.003052,-0.417500,
-       0.460562,-0.871490,0.168487,0.706000,0.016681,-0.412500,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.460562,-0.871490,0.168487,0.706000,0.016681,-0.412500,
-       0.528671,-0.848827,0.000000,0.721500,0.015465,-0.500000,
-       0.662382,-0.336592,-0.669295,0.686090,0.066012,-0.683563,
-       0.612462,-0.474039,-0.632596,0.697100,0.103031,-0.690781,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+       0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.460562,-0.87149,0.168487,0.706,0.016681,-0.4125,
+       0.528671,-0.848827,0,0.7215,0.015465,-0.5,
+       0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
+       0.612462,-0.474039,-0.632596,0.6971,0.103031,-0.690781,
        0.309535,-0.382382,-0.870616,0.610539,0.105601,-0.742813,
        0.309535,-0.382382,-0.870616,0.610539,0.105601,-0.742813,
        0.325986,-0.296158,-0.897788,0.602715,0.067041,-0.733625,
-       0.662382,-0.336592,-0.669295,0.686090,0.066012,-0.683563,
+       0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
        -0.009985,-0.330184,-0.943864,0.506665,0.108686,-0.760156,
        -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
        0.325986,-0.296158,-0.897788,0.602715,0.067041,-0.733625,
@@ -1358,186 +1358,186 @@ static const float data[]={
        0.309535,-0.382382,-0.870616,0.610539,0.105601,-0.742813,
        -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
        -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
-       0.285710,-0.534951,-0.795108,0.597054,0.037430,-0.725406,
-       0.285710,-0.534951,-0.795108,0.597054,0.037430,-0.725406,
+       0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
+       0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
        0.325986,-0.296158,-0.897788,0.602715,0.067041,-0.733625,
        -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
-       0.609651,-0.502200,-0.613287,0.677491,0.037477,-0.676859,
-       0.662382,-0.336592,-0.669295,0.686090,0.066012,-0.683563,
+       0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
+       0.662382,-0.336592,-0.669295,0.68609,0.066012,-0.683563,
        0.325986,-0.296158,-0.897788,0.602715,0.067041,-0.733625,
-       0.609651,-0.502200,-0.613287,0.677491,0.037477,-0.676859,
+       0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
        0.325986,-0.296158,-0.897788,0.602715,0.067041,-0.733625,
-       0.285710,-0.534951,-0.795108,0.597054,0.037430,-0.725406,
+       0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
        -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
-       -0.686460,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+       -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
        -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
        -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
-       -0.339040,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+       -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
        -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
        -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
        -0.321508,-0.547444,-0.772617,0.404279,0.038047,-0.725406,
-       -0.339040,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+       -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
        -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
-       -0.339040,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+       -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
        -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
        -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
        -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
-       -0.339040,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+       -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
        -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
-       -0.339040,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+       -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
        -0.321508,-0.547444,-0.772617,0.404279,0.038047,-0.725406,
        -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
        -0.009985,-0.330184,-0.943864,0.506665,0.108686,-0.760156,
        -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
        -0.340489,-0.258832,-0.903921,0.402791,0.111771,-0.742813,
-       -0.339040,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
+       -0.33904,-0.236102,-0.910663,0.402616,0.069508,-0.733625,
        -0.003719,-0.252904,-0.967484,0.502666,0.068274,-0.750313,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
-       -0.100277,-0.976969,-0.188350,0.417500,0.003052,-0.664625,
-       -0.173348,-0.862844,-0.474818,0.412500,0.016681,-0.706000,
+       -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+       -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
-       -0.173348,-0.862844,-0.474818,0.412500,0.016681,-0.706000,
+       -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
        -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       -0.000173,-0.840077,-0.542467,0.500000,0.015465,-0.721500,
-       -0.173348,-0.862844,-0.474818,0.412500,0.016681,-0.706000,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       -0.173348,-0.862844,-0.474818,0.412500,0.016681,-0.706000,
-       -0.100277,-0.976969,-0.188350,0.417500,0.003052,-0.664625,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       -0.000173,-0.840077,-0.542467,0.5,0.015465,-0.7215,
+       -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
+       -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
        -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
        -0.321508,-0.547444,-0.772617,0.404279,0.038047,-0.725406,
-       -0.173348,-0.862844,-0.474818,0.412500,0.016681,-0.706000,
+       -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
        -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
-       -0.173348,-0.862844,-0.474818,0.412500,0.016681,-0.706000,
-       -0.000173,-0.840077,-0.542467,0.500000,0.015465,-0.721500,
+       -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
+       -0.000173,-0.840077,-0.542467,0.5,0.015465,-0.7215,
        -0.321508,-0.547444,-0.772617,0.404279,0.038047,-0.725406,
        -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
        -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
        -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
-       -0.173348,-0.862844,-0.474818,0.412500,0.016681,-0.706000,
+       -0.173348,-0.862844,-0.474818,0.4125,0.016681,-0.706,
        -0.321508,-0.547444,-0.772617,0.404279,0.038047,-0.725406,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
        0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
-       0.170214,-0.866923,-0.468478,0.587500,0.016681,-0.706000,
+       0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
-       0.170214,-0.866923,-0.468478,0.587500,0.016681,-0.706000,
-       0.100277,-0.976969,-0.188350,0.582500,0.003052,-0.664625,
+       0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
+       0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
        0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
-       0.609651,-0.502200,-0.613287,0.677491,0.037477,-0.676859,
-       0.285710,-0.534951,-0.795108,0.597054,0.037430,-0.725406,
-       0.285710,-0.534951,-0.795108,0.597054,0.037430,-0.725406,
-       0.170214,-0.866923,-0.468478,0.587500,0.016681,-0.706000,
+       0.609651,-0.5022,-0.613287,0.677491,0.037477,-0.676859,
+       0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
+       0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
+       0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
        0.392801,-0.830761,-0.394389,0.660875,0.017896,-0.660875,
        -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
-       -0.000173,-0.840077,-0.542467,0.500000,0.015465,-0.721500,
-       0.170214,-0.866923,-0.468478,0.587500,0.016681,-0.706000,
+       -0.000173,-0.840077,-0.542467,0.5,0.015465,-0.7215,
+       0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
        -0.025551,-0.524875,-0.850796,0.500666,0.037435,-0.741703,
-       0.170214,-0.866923,-0.468478,0.587500,0.016681,-0.706000,
-       0.285710,-0.534951,-0.795108,0.597054,0.037430,-0.725406,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       0.100277,-0.976969,-0.188350,0.582500,0.003052,-0.664625,
-       0.170214,-0.866923,-0.468478,0.587500,0.016681,-0.706000,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       0.170214,-0.866923,-0.468478,0.587500,0.016681,-0.706000,
-       -0.000173,-0.840077,-0.542467,0.500000,0.015465,-0.721500,
+       0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
+       0.28571,-0.534951,-0.795108,0.597054,0.03743,-0.725406,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+       0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       0.170214,-0.866923,-0.468478,0.5875,0.016681,-0.706,
+       -0.000173,-0.840077,-0.542467,0.5,0.015465,-0.7215,
        -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
-       -0.686460,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
+       -0.68646,-0.277096,-0.672303,0.316229,0.114342,-0.690781,
        -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
        -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
-       -0.924670,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+       -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
        -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
-       -0.984639,-0.174604,0.000000,0.246980,0.116398,-0.500000,
-       -0.985139,-0.171761,-0.000000,0.252542,0.071359,-0.500000,
-       -0.924670,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
-       -0.984639,-0.174604,0.000000,0.246980,0.116398,-0.500000,
-       -0.924670,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+       -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
+       -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
+       -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+       -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
+       -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
        -0.917766,-0.211835,-0.335904,0.264292,0.115884,-0.604062,
-       -0.985139,-0.171761,-0.000000,0.252542,0.071359,-0.500000,
-       -0.851281,-0.524711,-0.000000,0.259010,0.038206,-0.500000,
+       -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
+       -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
        -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
        -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
-       -0.924670,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
-       -0.985139,-0.171761,-0.000000,0.252542,0.071359,-0.500000,
+       -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+       -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
        -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
        -0.696634,-0.190085,-0.691787,0.319242,0.070537,-0.683563,
-       -0.924670,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+       -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
        -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
-       -0.924670,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
+       -0.92467,-0.172819,-0.339293,0.269217,0.071154,-0.600125,
        -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
        -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
-       -0.686460,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+       -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
        -0.696634,-0.190085,0.691786,0.319242,0.070537,-0.316437,
        -0.696634,-0.190085,0.691786,0.319242,0.070537,-0.316437,
-       -0.924670,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+       -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
        -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
        -0.643521,-0.419436,0.640277,0.323842,0.038608,-0.323141,
        -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
-       -0.924670,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+       -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
        -0.643521,-0.419436,0.640277,0.323842,0.038608,-0.323141,
-       -0.924670,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+       -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
        -0.696634,-0.190085,0.691786,0.319242,0.070537,-0.316437,
        -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
-       -0.851281,-0.524711,-0.000000,0.259010,0.038206,-0.500000,
-       -0.985139,-0.171761,-0.000000,0.252542,0.071359,-0.500000,
-       -0.985139,-0.171761,-0.000000,0.252542,0.071359,-0.500000,
-       -0.924670,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+       -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
+       -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
+       -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
+       -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
        -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
-       -0.984639,-0.174604,0.000000,0.246980,0.116398,-0.500000,
+       -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
        -0.917766,-0.211835,0.335904,0.264292,0.115884,-0.395938,
-       -0.924670,-0.172819,0.339293,0.269217,0.071154,-0.399875,
-       -0.984639,-0.174604,0.000000,0.246980,0.116398,-0.500000,
-       -0.924670,-0.172819,0.339293,0.269217,0.071154,-0.399875,
-       -0.985139,-0.171761,-0.000000,0.252542,0.071359,-0.500000,
+       -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+       -0.984639,-0.174604,0,0.24698,0.116398,-0.5,
+       -0.92467,-0.172819,0.339293,0.269217,0.071154,-0.399875,
+       -0.985139,-0.171761,0,0.252542,0.071359,-0.5,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
-       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.417500,
-       -0.483213,-0.857792,0.175209,0.294000,0.016681,-0.412500,
+       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+       -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
-       -0.483213,-0.857792,0.175209,0.294000,0.016681,-0.412500,
+       -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
        -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.556955,-0.830542,-0.000000,0.278500,0.015465,-0.500000,
-       -0.483213,-0.857792,0.175209,0.294000,0.016681,-0.412500,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.483213,-0.857792,0.175209,0.294000,0.016681,-0.412500,
-       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.417500,
-       -0.851281,-0.524711,-0.000000,0.259010,0.038206,-0.500000,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.556955,-0.830542,0,0.2785,0.015465,-0.5,
+       -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
+       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+       -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
        -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
-       -0.483213,-0.857792,0.175209,0.294000,0.016681,-0.412500,
-       -0.851281,-0.524711,-0.000000,0.259010,0.038206,-0.500000,
-       -0.483213,-0.857792,0.175209,0.294000,0.016681,-0.412500,
-       -0.556955,-0.830542,-0.000000,0.278500,0.015465,-0.500000,
+       -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
+       -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
+       -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
+       -0.556955,-0.830542,0,0.2785,0.015465,-0.5,
        -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
        -0.643521,-0.419436,0.640277,0.323842,0.038608,-0.323141,
        -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
        -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
-       -0.483213,-0.857792,0.175209,0.294000,0.016681,-0.412500,
+       -0.483213,-0.857792,0.175209,0.294,0.016681,-0.4125,
        -0.829046,-0.471848,0.300069,0.275304,0.038459,-0.403594,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
        -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
-       -0.483213,-0.857792,-0.175210,0.294000,0.016681,-0.587500,
+       -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
-       -0.483213,-0.857792,-0.175210,0.294000,0.016681,-0.587500,
-       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.582500,
+       -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
+       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
        -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
        -0.643521,-0.419436,-0.640277,0.323842,0.038608,-0.676859,
        -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
        -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
-       -0.483213,-0.857792,-0.175210,0.294000,0.016681,-0.587500,
+       -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
        -0.412793,-0.812756,-0.411133,0.339125,0.017896,-0.660875,
-       -0.851281,-0.524711,-0.000000,0.259010,0.038206,-0.500000,
-       -0.556955,-0.830542,-0.000000,0.278500,0.015465,-0.500000,
-       -0.483213,-0.857792,-0.175210,0.294000,0.016681,-0.587500,
-       -0.851281,-0.524711,-0.000000,0.259010,0.038206,-0.500000,
-       -0.483213,-0.857792,-0.175210,0.294000,0.016681,-0.587500,
+       -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
+       -0.556955,-0.830542,0,0.2785,0.015465,-0.5,
+       -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
+       -0.851281,-0.524711,0,0.25901,0.038206,-0.5,
+       -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
        -0.829046,-0.471849,-0.300069,0.275304,0.038459,-0.596406,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.582500,
-       -0.483213,-0.857792,-0.175210,0.294000,0.016681,-0.587500,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.483213,-0.857792,-0.175210,0.294000,0.016681,-0.587500,
-       -0.556955,-0.830542,-0.000000,0.278500,0.015465,-0.500000,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+       -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.483213,-0.857792,-0.17521,0.294,0.016681,-0.5875,
+       -0.556955,-0.830542,0,0.2785,0.015465,-0.5,
        -0.696634,-0.190085,0.691786,0.319242,0.070537,-0.316437,
-       -0.686460,-0.277096,0.672303,0.316229,0.114342,-0.309219,
+       -0.68646,-0.277096,0.672303,0.316229,0.114342,-0.309219,
        -0.340489,-0.258832,0.903921,0.402791,0.111771,-0.257187,
        -0.340489,-0.258832,0.903921,0.402791,0.111771,-0.257187,
        -0.339041,-0.236102,0.910663,0.402616,0.069508,-0.266375,
@@ -1561,23 +1561,23 @@ static const float data[]={
        -0.339041,-0.236102,0.910663,0.402616,0.069508,-0.266375,
        -0.321508,-0.547444,0.772617,0.404279,0.038047,-0.274594,
        0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
-       0.612462,-0.474038,0.632596,0.697100,0.103031,-0.309219,
-       0.662382,-0.336592,0.669295,0.686090,0.066012,-0.316437,
-       0.662382,-0.336592,0.669295,0.686090,0.066012,-0.316437,
+       0.612462,-0.474038,0.632596,0.6971,0.103031,-0.309219,
+       0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
+       0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
        0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
        0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
-       0.609651,-0.502200,0.613287,0.677491,0.037477,-0.323141,
-       0.285710,-0.534951,0.795108,0.597054,0.037430,-0.274594,
+       0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
+       0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
        0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
-       0.609651,-0.502200,0.613287,0.677491,0.037477,-0.323141,
+       0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
        0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
-       0.662382,-0.336592,0.669295,0.686090,0.066012,-0.316437,
-       0.285710,-0.534951,0.795108,0.597054,0.037430,-0.274594,
+       0.662382,-0.336592,0.669295,0.68609,0.066012,-0.316437,
+       0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
        -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
        -0.003719,-0.252904,0.967484,0.502666,0.068274,-0.249687,
        -0.003719,-0.252904,0.967484,0.502666,0.068274,-0.249687,
        0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
-       0.285710,-0.534951,0.795108,0.597054,0.037430,-0.274594,
+       0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
        -0.009985,-0.330184,0.943864,0.506665,0.108686,-0.239844,
        0.309535,-0.382382,0.870616,0.610539,0.105601,-0.257187,
        0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
@@ -1585,149 +1585,149 @@ static const float data[]={
        0.325986,-0.296157,0.897788,0.602715,0.067041,-0.266375,
        -0.003719,-0.252904,0.967484,0.502666,0.068274,-0.249687,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
-       0.100277,-0.976969,0.188349,0.582500,0.003052,-0.335375,
-       0.170214,-0.866923,0.468477,0.587500,0.016681,-0.294000,
+       0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+       0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
-       0.170214,-0.866923,0.468477,0.587500,0.016681,-0.294000,
+       0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
        0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       -0.000173,-0.840077,0.542467,0.500000,0.015465,-0.278500,
-       0.170214,-0.866923,0.468477,0.587500,0.016681,-0.294000,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       0.170214,-0.866923,0.468477,0.587500,0.016681,-0.294000,
-       0.100277,-0.976969,0.188349,0.582500,0.003052,-0.335375,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       -0.000173,-0.840077,0.542467,0.5,0.015465,-0.2785,
+       0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
+       0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
        -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
-       0.285710,-0.534951,0.795108,0.597054,0.037430,-0.274594,
-       0.170214,-0.866923,0.468477,0.587500,0.016681,-0.294000,
+       0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
+       0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
        -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
-       0.170214,-0.866923,0.468477,0.587500,0.016681,-0.294000,
-       -0.000173,-0.840077,0.542467,0.500000,0.015465,-0.278500,
-       0.285710,-0.534951,0.795108,0.597054,0.037430,-0.274594,
-       0.609651,-0.502200,0.613287,0.677491,0.037477,-0.323141,
+       0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
+       -0.000173,-0.840077,0.542467,0.5,0.015465,-0.2785,
+       0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
+       0.609651,-0.5022,0.613287,0.677491,0.037477,-0.323141,
        0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
        0.392801,-0.830761,0.394389,0.660875,0.017896,-0.339125,
-       0.170214,-0.866923,0.468477,0.587500,0.016681,-0.294000,
-       0.285710,-0.534951,0.795108,0.597054,0.037430,-0.274594,
+       0.170214,-0.866923,0.468477,0.5875,0.016681,-0.294,
+       0.28571,-0.534951,0.795108,0.597054,0.03743,-0.274594,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
        -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
-       -0.173348,-0.862844,0.474817,0.412500,0.016681,-0.294000,
+       -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
-       -0.173348,-0.862844,0.474817,0.412500,0.016681,-0.294000,
-       -0.100277,-0.976969,0.188349,0.417500,0.003052,-0.335375,
+       -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
+       -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
        -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
        -0.643521,-0.419436,0.640277,0.323842,0.038608,-0.323141,
        -0.321508,-0.547444,0.772617,0.404279,0.038047,-0.274594,
        -0.321508,-0.547444,0.772617,0.404279,0.038047,-0.274594,
-       -0.173348,-0.862844,0.474817,0.412500,0.016681,-0.294000,
+       -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
        -0.412793,-0.812756,0.411133,0.339125,0.017896,-0.339125,
        -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
-       -0.000173,-0.840077,0.542467,0.500000,0.015465,-0.278500,
-       -0.173348,-0.862844,0.474817,0.412500,0.016681,-0.294000,
+       -0.000173,-0.840077,0.542467,0.5,0.015465,-0.2785,
+       -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
        -0.025551,-0.524875,0.850796,0.500666,0.037435,-0.258297,
-       -0.173348,-0.862844,0.474817,0.412500,0.016681,-0.294000,
+       -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
        -0.321508,-0.547444,0.772617,0.404279,0.038047,-0.274594,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       -0.100277,-0.976969,0.188349,0.417500,0.003052,-0.335375,
-       -0.173348,-0.862844,0.474817,0.412500,0.016681,-0.294000,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       -0.173348,-0.862844,0.474817,0.412500,0.016681,-0.294000,
-       -0.000173,-0.840077,0.542467,0.500000,0.015465,-0.278500,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+       -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       -0.173348,-0.862844,0.474817,0.4125,0.016681,-0.294,
+       -0.000173,-0.840077,0.542467,0.5,0.015465,-0.2785,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
-       0.100277,-0.976969,-0.188350,0.582500,0.003052,-0.664625,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
+       0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
        0.199329,-0.959446,-0.199329,0.638667,0.007537,-0.638667,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
-       0.188350,-0.976969,-0.100277,0.664625,0.003052,-0.582500,
-       0.100277,-0.976969,-0.188350,0.582500,0.003052,-0.664625,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
-       0.100277,-0.976969,-0.188350,0.582500,0.003052,-0.664625,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.188350,-0.976969,-0.100277,0.664625,0.003052,-0.582500,
-       0.188350,-0.976969,-0.100277,0.664625,0.003052,-0.582500,
-       0.079739,-0.993621,-0.079739,0.590500,-0.005194,-0.590500,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+       0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+       0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+       0.100277,-0.976969,-0.18835,0.5825,0.003052,-0.664625,
+       0,-1,0,0.5,-0.010924,-0.5,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+       0,-1,0,0.5,-0.010924,-0.5,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+       0.18835,-0.976969,-0.100277,0.664625,0.003052,-0.5825,
+       0.079739,-0.993621,-0.079739,0.5905,-0.005194,-0.5905,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
-       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.582500,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
+       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
        -0.199329,-0.959446,-0.199329,0.361333,0.007537,-0.638667,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
-       -0.100277,-0.976969,-0.188350,0.417500,0.003052,-0.664625,
-       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.582500,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
-       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.582500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
-       -0.000000,-0.969635,-0.244558,0.500000,0.000839,-0.677562,
-       -0.100277,-0.976969,-0.188350,0.417500,0.003052,-0.664625,
-       -0.100277,-0.976969,-0.188350,0.417500,0.003052,-0.664625,
-       -0.079739,-0.993621,-0.079739,0.409500,-0.005194,-0.590500,
-       0.000000,-0.996384,-0.084960,0.500000,-0.007972,-0.597750,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+       -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+       -0.188349,-0.976969,-0.100277,0.335375,0.003052,-0.5825,
+       0,-1,0,0.5,-0.010924,-0.5,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+       0,-1,0,0.5,-0.010924,-0.5,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
+       0,-0.969635,-0.244558,0.5,0.000839,-0.677562,
+       -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+       -0.100277,-0.976969,-0.18835,0.4175,0.003052,-0.664625,
+       -0.079739,-0.993621,-0.079739,0.4095,-0.005194,-0.5905,
+       0,-0.996384,-0.08496,0.5,-0.007972,-0.59775,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
-       -0.100277,-0.976969,0.188349,0.417500,0.003052,-0.335375,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
+       -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
        -0.199328,-0.959446,0.199328,0.361333,0.007537,-0.361333,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
-       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.417500,
-       -0.100277,-0.976969,0.188349,0.417500,0.003052,-0.335375,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
-       -0.100277,-0.976969,0.188349,0.417500,0.003052,-0.335375,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
-       -0.244558,-0.969635,-0.000000,0.322437,0.000839,-0.500000,
-       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.417500,
-       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.417500,
-       -0.079739,-0.993621,0.079739,0.409500,-0.005194,-0.409500,
-       -0.084960,-0.996384,0.000000,0.402250,-0.007972,-0.500000,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+       -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+       -0.100277,-0.976969,0.188349,0.4175,0.003052,-0.335375,
+       0,-1,0,0.5,-0.010924,-0.5,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+       0,-1,0,0.5,-0.010924,-0.5,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
+       -0.244558,-0.969635,0,0.322437,0.000839,-0.5,
+       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+       -0.188349,-0.976969,0.100277,0.335375,0.003052,-0.4175,
+       -0.079739,-0.993621,0.079739,0.4095,-0.005194,-0.4095,
+       -0.08496,-0.996384,0,0.40225,-0.007972,-0.5,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
-       0.188350,-0.976969,0.100277,0.664625,0.003052,-0.417500,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
+       0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
        0.199329,-0.959446,0.199329,0.638667,0.007537,-0.361333,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
-       0.100277,-0.976969,0.188349,0.582500,0.003052,-0.335375,
-       0.188350,-0.976969,0.100277,0.664625,0.003052,-0.417500,
-       0.244558,-0.969635,-0.000000,0.677562,0.000839,-0.500000,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
-       0.188350,-0.976969,0.100277,0.664625,0.003052,-0.417500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
-       -0.000000,-1.000000,0.000000,0.500000,-0.010924,-0.500000,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
-       0.084960,-0.996384,0.000000,0.597750,-0.007972,-0.500000,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
-       0.000000,-0.969635,0.244558,0.500000,0.000839,-0.322437,
-       0.100277,-0.976969,0.188349,0.582500,0.003052,-0.335375,
-       0.100277,-0.976969,0.188349,0.582500,0.003052,-0.335375,
-       0.079739,-0.993621,0.079739,0.590500,-0.005194,-0.409500,
-       0.000000,-0.996384,0.084960,0.500000,-0.007972,-0.402250,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+       0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+       0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+       0.244558,-0.969635,0,0.677562,0.000839,-0.5,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+       0.18835,-0.976969,0.100277,0.664625,0.003052,-0.4175,
+       0,-1,0,0.5,-0.010924,-0.5,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+       0,-1,0,0.5,-0.010924,-0.5,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+       0.08496,-0.996384,0,0.59775,-0.007972,-0.5,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
+       0,-0.969635,0.244558,0.5,0.000839,-0.322437,
+       0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+       0.100277,-0.976969,0.188349,0.5825,0.003052,-0.335375,
+       0.079739,-0.993621,0.079739,0.5905,-0.005194,-0.4095,
+       0,-0.996384,0.08496,0.5,-0.007972,-0.40225,
 };
 static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
 const struct gllist *s1_2=&frame;
index 58584a9f8c6fdddc041e1a8432c00d121d4fb32b..eea1304c6e89184827ab817c93ead1390b91918c 100644 (file)
 static const float data[]={
        0.202525,-0.691948,-0.692959,1.163707,0.362839,-0.676509,
        0.133481,-0.728232,-0.672207,1.115671,0.352342,-0.673147,
-       0.164983,-0.934150,-0.316457,1.139957,0.313586,-0.594444,
-       0.164983,-0.934150,-0.316457,1.139957,0.313586,-0.594444,
+       0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
+       0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
        0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
        0.202525,-0.691948,-0.692959,1.163707,0.362839,-0.676509,
-       0.166954,-0.985965,-0.000000,1.148052,0.300668,-0.500000,
-       0.301979,-0.953315,-0.000000,1.196159,0.308395,-0.500000,
+       0.166954,-0.985965,0,1.148052,0.300668,-0.5,
+       0.301979,-0.953315,0,1.196159,0.308395,-0.5,
        0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
-       0.166954,-0.985965,-0.000000,1.148052,0.300668,-0.500000,
+       0.166954,-0.985965,0,1.148052,0.300668,-0.5,
        0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
-       0.164983,-0.934150,-0.316457,1.139957,0.313586,-0.594444,
-       0.301979,-0.953315,-0.000000,1.196159,0.308395,-0.500000,
-       0.780431,-0.625241,0.000000,1.227578,0.320768,-0.500000,
-       0.622801,-0.721415,-0.302786,1.219224,0.334520,-0.595444,
-       0.622801,-0.721415,-0.302786,1.219224,0.334520,-0.595444,
+       0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
+       0.301979,-0.953315,0,1.196159,0.308395,-0.5,
+       0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+       0.622801,-0.721415,-0.302786,1.219224,0.33452,-0.595444,
+       0.622801,-0.721415,-0.302786,1.219224,0.33452,-0.595444,
        0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
-       0.301979,-0.953315,-0.000000,1.196159,0.308395,-0.500000,
-       0.631576,-0.472875,-0.614411,1.194861,0.375780,-0.675096,
+       0.301979,-0.953315,0,1.196159,0.308395,-0.5,
+       0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
        0.202525,-0.691948,-0.692959,1.163707,0.362839,-0.676509,
        0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
-       0.631576,-0.472875,-0.614411,1.194861,0.375780,-0.675096,
+       0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
        0.257435,-0.906571,-0.334448,1.188046,0.322006,-0.596277,
-       0.622801,-0.721415,-0.302786,1.219224,0.334520,-0.595444,
-       0.164983,-0.934150,0.316457,1.139957,0.313586,-0.405556,
+       0.622801,-0.721415,-0.302786,1.219224,0.33452,-0.595444,
+       0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
        0.133481,-0.728232,0.672206,1.115671,0.352342,-0.326853,
        0.202524,-0.691948,0.692959,1.163707,0.362839,-0.323491,
        0.202524,-0.691948,0.692959,1.163707,0.362839,-0.323491,
        0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
-       0.164983,-0.934150,0.316457,1.139957,0.313586,-0.405556,
-       0.631575,-0.472875,0.614412,1.194861,0.375780,-0.324904,
-       0.622801,-0.721415,0.302786,1.219224,0.334520,-0.404556,
+       0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
+       0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
+       0.622801,-0.721415,0.302786,1.219224,0.33452,-0.404556,
        0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
-       0.631575,-0.472875,0.614412,1.194861,0.375780,-0.324904,
+       0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
        0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
        0.202524,-0.691948,0.692959,1.163707,0.362839,-0.323491,
-       0.622801,-0.721415,0.302786,1.219224,0.334520,-0.404556,
-       0.780431,-0.625241,0.000000,1.227578,0.320768,-0.500000,
-       0.301979,-0.953315,-0.000000,1.196159,0.308395,-0.500000,
-       0.301979,-0.953315,-0.000000,1.196159,0.308395,-0.500000,
+       0.622801,-0.721415,0.302786,1.219224,0.33452,-0.404556,
+       0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+       0.301979,-0.953315,0,1.196159,0.308395,-0.5,
+       0.301979,-0.953315,0,1.196159,0.308395,-0.5,
        0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
-       0.622801,-0.721415,0.302786,1.219224,0.334520,-0.404556,
-       0.166954,-0.985965,-0.000000,1.148052,0.300668,-0.500000,
-       0.164983,-0.934150,0.316457,1.139957,0.313586,-0.405556,
+       0.622801,-0.721415,0.302786,1.219224,0.33452,-0.404556,
+       0.166954,-0.985965,0,1.148052,0.300668,-0.5,
+       0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
        0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
-       0.166954,-0.985965,-0.000000,1.148052,0.300668,-0.500000,
+       0.166954,-0.985965,0,1.148052,0.300668,-0.5,
        0.257435,-0.906571,0.334448,1.188046,0.322006,-0.403722,
-       0.301979,-0.953315,-0.000000,1.196159,0.308395,-0.500000,
-       0.930569,0.307100,0.199327,1.204957,0.421449,-0.361333,
-       0.940255,0.325371,0.100277,1.221821,0.401211,-0.417500,
-       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.412500,
-       0.930569,0.307100,0.199327,1.204957,0.421449,-0.361333,
-       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.412500,
+       0.301979,-0.953315,0,1.196159,0.308395,-0.5,
+       0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
+       0.940255,0.325371,0.100277,1.221821,0.401211,-0.4175,
+       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+       0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
+       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
        0.890812,0.056731,0.450816,1.207091,0.397037,-0.339125,
-       0.962007,0.273026,0.000000,1.230206,0.391113,-0.500000,
-       0.992798,-0.119797,-0.000000,1.239508,0.345749,-0.500000,
-       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.412500,
-       0.962007,0.273026,0.000000,1.230206,0.391113,-0.500000,
-       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.412500,
-       0.940255,0.325371,0.100277,1.221821,0.401211,-0.417500,
-       0.780431,-0.625241,0.000000,1.227578,0.320768,-0.500000,
-       0.622801,-0.721415,0.302786,1.219224,0.334520,-0.404556,
-       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.412500,
-       0.780431,-0.625241,0.000000,1.227578,0.320768,-0.500000,
-       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.412500,
-       0.992798,-0.119797,-0.000000,1.239508,0.345749,-0.500000,
-       0.631575,-0.472875,0.614412,1.194861,0.375780,-0.324904,
+       0.962007,0.273026,0,1.230206,0.391113,-0.5,
+       0.992798,-0.119797,0,1.239508,0.345749,-0.5,
+       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+       0.962007,0.273026,0,1.230206,0.391113,-0.5,
+       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+       0.940255,0.325371,0.100277,1.221821,0.401211,-0.4175,
+       0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+       0.622801,-0.721415,0.302786,1.219224,0.33452,-0.404556,
+       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+       0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+       0.992798,-0.119797,0,1.239508,0.345749,-0.5,
+       0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
        0.890812,0.056731,0.450816,1.207091,0.397037,-0.339125,
-       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.412500,
-       0.631575,-0.472875,0.614412,1.194861,0.375780,-0.324904,
-       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.412500,
-       0.622801,-0.721415,0.302786,1.219224,0.334520,-0.404556,
-       0.930569,0.307100,-0.199328,1.204957,0.421449,-0.638667,
+       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+       0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
+       0.974899,-0.059226,0.214627,1.230706,0.358565,-0.4125,
+       0.622801,-0.721415,0.302786,1.219224,0.33452,-0.404556,
+       0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
        0.890812,0.056731,-0.450816,1.207091,0.397037,-0.660875,
-       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.587500,
-       0.930569,0.307100,-0.199328,1.204957,0.421449,-0.638667,
-       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.587500,
-       0.940255,0.325371,-0.100277,1.221821,0.401211,-0.582500,
-       0.631576,-0.472875,-0.614411,1.194861,0.375780,-0.675096,
-       0.622801,-0.721415,-0.302786,1.219224,0.334520,-0.595444,
-       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.587500,
-       0.631576,-0.472875,-0.614411,1.194861,0.375780,-0.675096,
-       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.587500,
+       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+       0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
+       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+       0.940255,0.325371,-0.100277,1.221821,0.401211,-0.5825,
+       0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
+       0.622801,-0.721415,-0.302786,1.219224,0.33452,-0.595444,
+       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+       0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
+       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
        0.890812,0.056731,-0.450816,1.207091,0.397037,-0.660875,
-       0.780431,-0.625241,0.000000,1.227578,0.320768,-0.500000,
-       0.992798,-0.119797,-0.000000,1.239508,0.345749,-0.500000,
-       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.587500,
-       0.780431,-0.625241,0.000000,1.227578,0.320768,-0.500000,
-       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.587500,
-       0.622801,-0.721415,-0.302786,1.219224,0.334520,-0.595444,
-       0.962007,0.273026,0.000000,1.230206,0.391113,-0.500000,
-       0.940255,0.325371,-0.100277,1.221821,0.401211,-0.582500,
-       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.587500,
-       0.962007,0.273026,0.000000,1.230206,0.391113,-0.500000,
-       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.587500,
-       0.992798,-0.119797,-0.000000,1.239508,0.345749,-0.500000,
+       0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+       0.992798,-0.119797,0,1.239508,0.345749,-0.5,
+       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+       0.780431,-0.625241,0,1.227578,0.320768,-0.5,
+       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+       0.622801,-0.721415,-0.302786,1.219224,0.33452,-0.595444,
+       0.962007,0.273026,0,1.230206,0.391113,-0.5,
+       0.940255,0.325371,-0.100277,1.221821,0.401211,-0.5825,
+       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+       0.962007,0.273026,0,1.230206,0.391113,-0.5,
+       0.974899,-0.059226,-0.214627,1.230706,0.358565,-0.5875,
+       0.992798,-0.119797,0,1.239508,0.345749,-0.5,
        0.133481,-0.728232,0.672206,1.115671,0.352342,-0.326853,
        0.060251,-0.377234,0.924156,1.075195,0.416935,-0.279631,
        0.095842,-0.348455,0.932413,1.123141,0.430895,-0.275352,
@@ -108,32 +108,32 @@ static const float data[]={
        -0.024646,-0.015417,0.999577,1.074463,0.512562,-0.259306,
        0.095842,-0.348455,0.932413,1.123141,0.430895,-0.275352,
        0.060251,-0.377234,0.924156,1.075195,0.416935,-0.279631,
-       0.346195,0.171304,0.922390,1.107591,0.526937,-0.260702,
+       0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
        0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
        0.095842,-0.348455,0.932413,1.123141,0.430895,-0.275352,
-       0.346195,0.171304,0.922390,1.107591,0.526937,-0.260702,
+       0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
        0.095842,-0.348455,0.932413,1.123141,0.430895,-0.275352,
        -0.024646,-0.015417,0.999577,1.074463,0.512562,-0.259306,
        0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
-       0.631575,-0.472875,0.614412,1.194861,0.375780,-0.324904,
+       0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
        0.202524,-0.691948,0.692959,1.163707,0.362839,-0.323491,
        0.202524,-0.691948,0.692959,1.163707,0.362839,-0.323491,
        0.095842,-0.348455,0.932413,1.123141,0.430895,-0.275352,
        0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
        -0.176226,0.307645,0.935039,0.978052,0.571957,-0.279631,
-       -0.334947,0.636181,0.695043,0.937575,0.636550,-0.326853,
+       -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
        -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
        -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
        -0.162184,0.309455,0.936981,1.025784,0.594229,-0.275352,
        -0.176226,0.307645,0.935039,0.978052,0.571957,-0.279631,
-       -0.011301,0.717458,0.696510,1.019270,0.677486,-0.324904,
+       -0.011301,0.717458,0.69651,1.01927,0.677486,-0.324904,
        0.171113,0.465842,0.868165,1.059471,0.609015,-0.276838,
        -0.162184,0.309455,0.936981,1.025784,0.594229,-0.275352,
-       -0.011301,0.717458,0.696510,1.019270,0.677486,-0.324904,
+       -0.011301,0.717458,0.69651,1.01927,0.677486,-0.324904,
        -0.162184,0.309455,0.936981,1.025784,0.594229,-0.275352,
        -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
        0.171113,0.465842,0.868165,1.059471,0.609015,-0.276838,
-       0.346195,0.171304,0.922390,1.107591,0.526937,-0.260702,
+       0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
        -0.024646,-0.015417,0.999577,1.074463,0.512562,-0.259306,
        -0.024646,-0.015417,0.999577,1.074463,0.512562,-0.259306,
        -0.162184,0.309455,0.936981,1.025784,0.594229,-0.275352,
@@ -144,152 +144,152 @@ static const float data[]={
        -0.042028,-0.027931,0.998726,1.026623,0.494446,-0.263891,
        -0.162184,0.309455,0.936981,1.025784,0.594229,-0.275352,
        -0.024646,-0.015417,0.999577,1.074463,0.512562,-0.259306,
-       0.499427,0.759449,0.416905,1.046216,0.675680,-0.339125,
-       0.733810,0.655202,0.179534,1.066291,0.661627,-0.361333,
+       0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+       0.73381,0.655202,0.179534,1.066291,0.661627,-0.361333,
        0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
        0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
-       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294000,
-       0.499427,0.759449,0.416905,1.046216,0.675680,-0.339125,
-       0.835470,0.498022,0.232303,1.141425,0.544887,-0.322437,
-       0.742505,0.410638,0.529209,1.128758,0.537574,-0.278500,
-       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294000,
-       0.835470,0.498022,0.232303,1.141425,0.544887,-0.322437,
-       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294000,
+       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
+       0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+       0.83547,0.498022,0.232303,1.141425,0.544887,-0.322437,
+       0.742505,0.410638,0.529209,1.128758,0.537574,-0.2785,
+       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
+       0.83547,0.498022,0.232303,1.141425,0.544887,-0.322437,
+       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
        0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
-       0.346195,0.171304,0.922390,1.107591,0.526937,-0.260702,
+       0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
        0.171113,0.465842,0.868165,1.059471,0.609015,-0.276838,
-       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294000,
-       0.346195,0.171304,0.922390,1.107591,0.526937,-0.260702,
-       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294000,
-       0.742505,0.410638,0.529209,1.128758,0.537574,-0.278500,
+       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
+       0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
+       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
+       0.742505,0.410638,0.529209,1.128758,0.537574,-0.2785,
        0.171113,0.465842,0.868165,1.059471,0.609015,-0.276838,
-       -0.011301,0.717458,0.696510,1.019270,0.677486,-0.324904,
-       0.499427,0.759449,0.416905,1.046216,0.675680,-0.339125,
-       0.499427,0.759449,0.416905,1.046216,0.675680,-0.339125,
-       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294000,
+       -0.011301,0.717458,0.69651,1.01927,0.677486,-0.324904,
+       0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+       0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+       0.621316,0.565314,0.542574,1.083956,0.612743,-0.294,
        0.171113,0.465842,0.868165,1.059471,0.609015,-0.276838,
-       0.930569,0.307100,0.199327,1.204957,0.421449,-0.361333,
+       0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
        0.890812,0.056731,0.450816,1.207091,0.397037,-0.339125,
-       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294000,
-       0.930569,0.307100,0.199327,1.204957,0.421449,-0.361333,
-       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294000,
+       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
+       0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
+       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
        0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
        0.890812,0.056731,0.450816,1.207091,0.397037,-0.339125,
-       0.631575,-0.472875,0.614412,1.194861,0.375780,-0.324904,
+       0.631575,-0.472875,0.614412,1.194861,0.37578,-0.324904,
        0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
        0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
-       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294000,
+       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
        0.890812,0.056731,0.450816,1.207091,0.397037,-0.339125,
-       0.346195,0.171304,0.922390,1.107591,0.526937,-0.260702,
-       0.742505,0.410638,0.529209,1.128758,0.537574,-0.278500,
-       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294000,
-       0.346195,0.171304,0.922390,1.107591,0.526937,-0.260702,
-       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294000,
+       0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
+       0.742505,0.410638,0.529209,1.128758,0.537574,-0.2785,
+       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
+       0.346195,0.171304,0.92239,1.107591,0.526937,-0.260702,
+       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
        0.484632,-0.165545,0.858911,1.155185,0.444556,-0.276838,
-       0.742505,0.410638,0.529209,1.128758,0.537574,-0.278500,
-       0.835470,0.498022,0.232303,1.141425,0.544887,-0.322437,
+       0.742505,0.410638,0.529209,1.128758,0.537574,-0.2785,
+       0.83547,0.498022,0.232303,1.141425,0.544887,-0.322437,
        0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
        0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
-       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294000,
-       0.742505,0.410638,0.529209,1.128758,0.537574,-0.278500,
-       -0.334947,0.636181,0.695043,0.937575,0.636550,-0.326853,
+       0.808962,0.235076,0.538813,1.171456,0.461189,-0.294,
+       0.742505,0.410638,0.529209,1.128758,0.537574,-0.2785,
+       -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
        -0.440797,0.833329,0.333557,0.913289,0.675305,-0.405556,
        -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
-       -0.334947,0.636181,0.695043,0.937575,0.636550,-0.326853,
+       -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
        -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
        -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
        -0.440797,0.833329,0.333557,0.913289,0.675305,-0.405556,
-       -0.456348,0.889801,0.000000,0.905194,0.688224,-0.500000,
-       -0.483417,0.875390,-0.000000,0.952766,0.716730,-0.500000,
-       -0.483417,0.875390,-0.000000,0.952766,0.716730,-0.500000,
+       -0.456348,0.889801,0,0.905194,0.688224,-0.5,
+       -0.483417,0.87539,0,0.952766,0.71673,-0.5,
+       -0.483417,0.87539,0,0.952766,0.71673,-0.5,
        -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
        -0.440797,0.833329,0.333557,0.913289,0.675305,-0.405556,
-       -0.145364,0.989378,0.000000,0.987605,0.733106,-0.500000,
+       -0.145364,0.989378,0,0.987605,0.733106,-0.5,
        -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
        -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
-       -0.145364,0.989378,0.000000,0.987605,0.733106,-0.500000,
+       -0.145364,0.989378,0,0.987605,0.733106,-0.5,
        -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
-       -0.483417,0.875390,-0.000000,0.952766,0.716730,-0.500000,
+       -0.483417,0.87539,0,0.952766,0.71673,-0.5,
        -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
-       -0.011301,0.717458,0.696510,1.019270,0.677486,-0.324904,
+       -0.011301,0.717458,0.69651,1.01927,0.677486,-0.324904,
        -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
        -0.323336,0.633934,0.702554,0.985218,0.662285,-0.323491,
        -0.436203,0.832732,0.341005,0.960879,0.703118,-0.403722,
        -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
-       -0.334948,0.636181,-0.695043,0.937575,0.636550,-0.673147,
+       -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
        -0.323336,0.633934,-0.702554,0.985218,0.662285,-0.676509,
        -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
-       -0.334948,0.636181,-0.695043,0.937575,0.636550,-0.673147,
+       -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
        -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
        -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
        -0.323336,0.633934,-0.702554,0.985218,0.662285,-0.676509,
-       -0.011300,0.717458,-0.696510,1.019270,0.677486,-0.675096,
+       -0.0113,0.717458,-0.69651,1.01927,0.677486,-0.675096,
        -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
        -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
        -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
        -0.323336,0.633934,-0.702554,0.985218,0.662285,-0.676509,
-       -0.145364,0.989378,0.000000,0.987605,0.733106,-0.500000,
-       -0.483417,0.875390,-0.000000,0.952766,0.716730,-0.500000,
+       -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+       -0.483417,0.87539,0,0.952766,0.71673,-0.5,
        -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
-       -0.145364,0.989378,0.000000,0.987605,0.733106,-0.500000,
+       -0.145364,0.989378,0,0.987605,0.733106,-0.5,
        -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
        -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
-       -0.483417,0.875390,-0.000000,0.952766,0.716730,-0.500000,
-       -0.456348,0.889801,0.000000,0.905194,0.688224,-0.500000,
+       -0.483417,0.87539,0,0.952766,0.71673,-0.5,
+       -0.456348,0.889801,0,0.905194,0.688224,-0.5,
        -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
        -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
        -0.436203,0.832732,-0.341005,0.960879,0.703118,-0.596277,
-       -0.483417,0.875390,-0.000000,0.952766,0.716730,-0.500000,
-       0.733810,0.655202,-0.179535,1.066291,0.661627,-0.638667,
-       0.737725,0.668365,-0.095126,1.057196,0.686350,-0.582500,
-       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.587500,
-       0.733810,0.655202,-0.179535,1.066291,0.661627,-0.638667,
-       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.587500,
-       0.499427,0.759449,-0.416905,1.046216,0.675680,-0.660875,
-       0.737725,0.668365,-0.095126,1.057196,0.686350,-0.582500,
-       0.739038,0.673664,0.000000,1.052644,0.698661,-0.500000,
-       0.507297,0.861771,-0.000000,1.018008,0.729398,-0.500000,
-       0.507297,0.861771,-0.000000,1.018008,0.729398,-0.500000,
-       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.587500,
-       0.737725,0.668365,-0.095126,1.057196,0.686350,-0.582500,
-       -0.145364,0.989378,0.000000,0.987605,0.733106,-0.500000,
+       -0.483417,0.87539,0,0.952766,0.71673,-0.5,
+       0.73381,0.655202,-0.179535,1.066291,0.661627,-0.638667,
+       0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
+       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
+       0.73381,0.655202,-0.179535,1.066291,0.661627,-0.638667,
+       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
+       0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+       0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
+       0.739038,0.673664,0,1.052644,0.698661,-0.5,
+       0.507297,0.861771,0,1.018008,0.729398,-0.5,
+       0.507297,0.861771,0,1.018008,0.729398,-0.5,
+       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
+       0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
+       -0.145364,0.989378,0,0.987605,0.733106,-0.5,
        -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
-       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.587500,
-       -0.145364,0.989378,0.000000,0.987605,0.733106,-0.500000,
-       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.587500,
-       0.507297,0.861771,-0.000000,1.018008,0.729398,-0.500000,
+       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
+       -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
+       0.507297,0.861771,0,1.018008,0.729398,-0.5,
        -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
-       -0.011300,0.717458,-0.696510,1.019270,0.677486,-0.675096,
-       0.499427,0.759449,-0.416905,1.046216,0.675680,-0.660875,
-       0.499427,0.759449,-0.416905,1.046216,0.675680,-0.660875,
-       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.587500,
+       -0.0113,0.717458,-0.69651,1.01927,0.677486,-0.675096,
+       0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+       0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+       0.442446,0.874241,-0.199863,1.024706,0.715367,-0.5875,
        -0.079433,0.924124,-0.373745,0.995432,0.719051,-0.595444,
-       0.733810,0.655202,0.179534,1.066291,0.661627,-0.361333,
-       0.499427,0.759449,0.416905,1.046216,0.675680,-0.339125,
-       0.442446,0.874241,0.199863,1.024706,0.715367,-0.412500,
-       0.733810,0.655202,0.179534,1.066291,0.661627,-0.361333,
-       0.442446,0.874241,0.199863,1.024706,0.715367,-0.412500,
-       0.737725,0.668365,0.095126,1.057196,0.686350,-0.417500,
-       0.499427,0.759449,0.416905,1.046216,0.675680,-0.339125,
-       -0.011301,0.717458,0.696510,1.019270,0.677486,-0.324904,
+       0.73381,0.655202,0.179534,1.066291,0.661627,-0.361333,
+       0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+       0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
+       0.73381,0.655202,0.179534,1.066291,0.661627,-0.361333,
+       0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
+       0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+       0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+       -0.011301,0.717458,0.69651,1.01927,0.677486,-0.324904,
        -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
        -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
-       0.442446,0.874241,0.199863,1.024706,0.715367,-0.412500,
-       0.499427,0.759449,0.416905,1.046216,0.675680,-0.339125,
-       -0.145364,0.989378,0.000000,0.987605,0.733106,-0.500000,
-       0.507297,0.861771,-0.000000,1.018008,0.729398,-0.500000,
-       0.442446,0.874241,0.199863,1.024706,0.715367,-0.412500,
-       -0.145364,0.989378,0.000000,0.987605,0.733106,-0.500000,
-       0.442446,0.874241,0.199863,1.024706,0.715367,-0.412500,
+       0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
+       0.499427,0.759449,0.416905,1.046216,0.67568,-0.339125,
+       -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+       0.507297,0.861771,0,1.018008,0.729398,-0.5,
+       0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
+       -0.145364,0.989378,0,0.987605,0.733106,-0.5,
+       0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
        -0.079433,0.924124,0.373745,0.995432,0.719051,-0.404556,
-       0.507297,0.861771,-0.000000,1.018008,0.729398,-0.500000,
-       0.739038,0.673664,0.000000,1.052644,0.698661,-0.500000,
-       0.737725,0.668365,0.095126,1.057196,0.686350,-0.417500,
-       0.737725,0.668365,0.095126,1.057196,0.686350,-0.417500,
-       0.442446,0.874241,0.199863,1.024706,0.715367,-0.412500,
-       0.507297,0.861771,-0.000000,1.018008,0.729398,-0.500000,
+       0.507297,0.861771,0,1.018008,0.729398,-0.5,
+       0.739038,0.673664,0,1.052644,0.698661,-0.5,
+       0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+       0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+       0.442446,0.874241,0.199863,1.024706,0.715367,-0.4125,
+       0.507297,0.861771,0,1.018008,0.729398,-0.5,
        -0.323336,0.633934,-0.702554,0.985218,0.662285,-0.676509,
-       -0.334948,0.636181,-0.695043,0.937575,0.636550,-0.673147,
+       -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
        -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
        -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
        -0.162184,0.309456,-0.936981,1.025784,0.594229,-0.724648,
@@ -301,15 +301,15 @@ static const float data[]={
        -0.162184,0.309456,-0.936981,1.025784,0.594229,-0.724648,
        -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
        -0.024646,-0.015417,-0.999577,1.074463,0.512562,-0.740694,
-       0.346195,0.171304,-0.922390,1.107591,0.526937,-0.739298,
+       0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
        0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
        0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
        -0.162184,0.309456,-0.936981,1.025784,0.594229,-0.724648,
        -0.024646,-0.015417,-0.999577,1.074463,0.512562,-0.740694,
-       -0.011300,0.717458,-0.696510,1.019270,0.677486,-0.675096,
+       -0.0113,0.717458,-0.69651,1.01927,0.677486,-0.675096,
        -0.323336,0.633934,-0.702554,0.985218,0.662285,-0.676509,
        -0.162184,0.309456,-0.936981,1.025784,0.594229,-0.724648,
-       -0.011300,0.717458,-0.696510,1.019270,0.677486,-0.675096,
+       -0.0113,0.717458,-0.69651,1.01927,0.677486,-0.675096,
        -0.162184,0.309456,-0.936981,1.025784,0.594229,-0.724648,
        0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
        0.133481,-0.728232,-0.672207,1.115671,0.352342,-0.673147,
@@ -319,377 +319,377 @@ static const float data[]={
        0.095842,-0.348454,-0.932413,1.123141,0.430895,-0.724648,
        0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
        0.202525,-0.691948,-0.692959,1.163707,0.362839,-0.676509,
-       0.631576,-0.472875,-0.614411,1.194861,0.375780,-0.675096,
-       0.484632,-0.165544,-0.858910,1.155185,0.444556,-0.723162,
-       0.484632,-0.165544,-0.858910,1.155185,0.444556,-0.723162,
+       0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
+       0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
+       0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
        0.095842,-0.348454,-0.932413,1.123141,0.430895,-0.724648,
        0.202525,-0.691948,-0.692959,1.163707,0.362839,-0.676509,
-       0.346195,0.171304,-0.922390,1.107591,0.526937,-0.739298,
+       0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
        -0.024646,-0.015417,-0.999577,1.074463,0.512562,-0.740694,
        0.095842,-0.348454,-0.932413,1.123141,0.430895,-0.724648,
-       0.346195,0.171304,-0.922390,1.107591,0.526937,-0.739298,
+       0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
        0.095842,-0.348454,-0.932413,1.123141,0.430895,-0.724648,
-       0.484632,-0.165544,-0.858910,1.155185,0.444556,-0.723162,
+       0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
        -0.024646,-0.015417,-0.999577,1.074463,0.512562,-0.740694,
        -0.042028,-0.027931,-0.998726,1.026623,0.494446,-0.736109,
        0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
        0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
        0.095842,-0.348454,-0.932413,1.123141,0.430895,-0.724648,
        -0.024646,-0.015417,-0.999577,1.074463,0.512562,-0.740694,
-       0.930569,0.307100,-0.199328,1.204957,0.421449,-0.638667,
+       0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
        0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
-       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706000,
-       0.930569,0.307100,-0.199328,1.204957,0.421449,-0.638667,
-       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706000,
+       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
+       0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
+       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
        0.890812,0.056731,-0.450816,1.207091,0.397037,-0.660875,
        0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
-       0.835470,0.498022,-0.232303,1.141425,0.544887,-0.677562,
-       0.742506,0.410638,-0.529208,1.128758,0.537574,-0.721500,
-       0.742506,0.410638,-0.529208,1.128758,0.537574,-0.721500,
-       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706000,
+       0.83547,0.498022,-0.232303,1.141425,0.544887,-0.677562,
+       0.742506,0.410638,-0.529208,1.128758,0.537574,-0.7215,
+       0.742506,0.410638,-0.529208,1.128758,0.537574,-0.7215,
+       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
        0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
-       0.346195,0.171304,-0.922390,1.107591,0.526937,-0.739298,
-       0.484632,-0.165544,-0.858910,1.155185,0.444556,-0.723162,
-       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706000,
-       0.346195,0.171304,-0.922390,1.107591,0.526937,-0.739298,
-       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706000,
-       0.742506,0.410638,-0.529208,1.128758,0.537574,-0.721500,
-       0.484632,-0.165544,-0.858910,1.155185,0.444556,-0.723162,
-       0.631576,-0.472875,-0.614411,1.194861,0.375780,-0.675096,
+       0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
+       0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
+       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
+       0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
+       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
+       0.742506,0.410638,-0.529208,1.128758,0.537574,-0.7215,
+       0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
+       0.631576,-0.472875,-0.614411,1.194861,0.37578,-0.675096,
        0.890812,0.056731,-0.450816,1.207091,0.397037,-0.660875,
        0.890812,0.056731,-0.450816,1.207091,0.397037,-0.660875,
-       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706000,
-       0.484632,-0.165544,-0.858910,1.155185,0.444556,-0.723162,
+       0.808963,0.235076,-0.538812,1.171456,0.461189,-0.706,
+       0.484632,-0.165544,-0.85891,1.155185,0.444556,-0.723162,
        0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
-       0.733810,0.655202,-0.179535,1.066291,0.661627,-0.638667,
-       0.499427,0.759449,-0.416905,1.046216,0.675680,-0.660875,
-       0.499427,0.759449,-0.416905,1.046216,0.675680,-0.660875,
-       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706000,
+       0.73381,0.655202,-0.179535,1.066291,0.661627,-0.638667,
+       0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+       0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
        0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
-       0.499427,0.759449,-0.416905,1.046216,0.675680,-0.660875,
-       -0.011300,0.717458,-0.696510,1.019270,0.677486,-0.675096,
+       0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+       -0.0113,0.717458,-0.69651,1.01927,0.677486,-0.675096,
        0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
        0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
-       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706000,
-       0.499427,0.759449,-0.416905,1.046216,0.675680,-0.660875,
-       0.346195,0.171304,-0.922390,1.107591,0.526937,-0.739298,
-       0.742506,0.410638,-0.529208,1.128758,0.537574,-0.721500,
-       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706000,
-       0.346195,0.171304,-0.922390,1.107591,0.526937,-0.739298,
-       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706000,
+       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
+       0.499427,0.759449,-0.416905,1.046216,0.67568,-0.660875,
+       0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
+       0.742506,0.410638,-0.529208,1.128758,0.537574,-0.7215,
+       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
+       0.346195,0.171304,-0.92239,1.107591,0.526937,-0.739298,
+       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
        0.171114,0.465842,-0.868165,1.059471,0.609015,-0.723162,
-       0.835470,0.498022,-0.232303,1.141425,0.544887,-0.677562,
+       0.83547,0.498022,-0.232303,1.141425,0.544887,-0.677562,
        0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
-       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706000,
-       0.835470,0.498022,-0.232303,1.141425,0.544887,-0.677562,
-       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706000,
-       0.742506,0.410638,-0.529208,1.128758,0.537574,-0.721500,
-       0.930569,0.307100,0.199327,1.204957,0.421449,-0.361333,
+       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
+       0.83547,0.498022,-0.232303,1.141425,0.544887,-0.677562,
+       0.621316,0.565314,-0.542574,1.083956,0.612743,-0.706,
+       0.742506,0.410638,-0.529208,1.128758,0.537574,-0.7215,
+       0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
        0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
-       0.900371,0.427755,0.079739,1.191900,0.469528,-0.409500,
-       0.930569,0.307100,0.199327,1.204957,0.421449,-0.361333,
-       0.900371,0.427755,0.079739,1.191900,0.469528,-0.409500,
-       0.940255,0.325371,0.100277,1.221821,0.401211,-0.417500,
+       0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
+       0.930569,0.3071,0.199327,1.204957,0.421449,-0.361333,
+       0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
+       0.940255,0.325371,0.100277,1.221821,0.401211,-0.4175,
        0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
-       0.835470,0.498022,0.232303,1.141425,0.544887,-0.322437,
-       0.862894,0.498192,0.084960,1.149055,0.549292,-0.402250,
-       0.862894,0.498192,0.084960,1.149055,0.549292,-0.402250,
-       0.900371,0.427755,0.079739,1.191900,0.469528,-0.409500,
+       0.83547,0.498022,0.232303,1.141425,0.544887,-0.322437,
+       0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+       0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+       0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
        0.890268,0.404155,0.209958,1.180758,0.472333,-0.335375,
-       0.866025,0.500000,-0.000000,1.151611,0.550768,-0.500000,
-       0.905374,0.424615,-0.000000,1.197930,0.464638,-0.500000,
-       0.900371,0.427755,0.079739,1.191900,0.469528,-0.409500,
-       0.866025,0.500000,-0.000000,1.151611,0.550768,-0.500000,
-       0.900371,0.427755,0.079739,1.191900,0.469528,-0.409500,
-       0.862894,0.498192,0.084960,1.149055,0.549292,-0.402250,
-       0.905374,0.424615,-0.000000,1.197930,0.464638,-0.500000,
-       0.962007,0.273026,0.000000,1.230206,0.391113,-0.500000,
-       0.940255,0.325371,0.100277,1.221821,0.401211,-0.417500,
-       0.940255,0.325371,0.100277,1.221821,0.401211,-0.417500,
-       0.900371,0.427755,0.079739,1.191900,0.469528,-0.409500,
-       0.905374,0.424615,-0.000000,1.197930,0.464638,-0.500000,
-       0.733810,0.655202,0.179534,1.066291,0.661627,-0.361333,
-       0.737725,0.668365,0.095126,1.057196,0.686350,-0.417500,
-       0.820632,0.565867,0.079739,1.101400,0.626279,-0.409500,
-       0.733810,0.655202,0.179534,1.066291,0.661627,-0.361333,
-       0.820632,0.565867,0.079739,1.101400,0.626279,-0.409500,
+       0.866025,0.5,0,1.151611,0.550768,-0.5,
+       0.905374,0.424615,0,1.19793,0.464638,-0.5,
+       0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
+       0.866025,0.5,0,1.151611,0.550768,-0.5,
+       0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
+       0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+       0.905374,0.424615,0,1.19793,0.464638,-0.5,
+       0.962007,0.273026,0,1.230206,0.391113,-0.5,
+       0.940255,0.325371,0.100277,1.221821,0.401211,-0.4175,
+       0.940255,0.325371,0.100277,1.221821,0.401211,-0.4175,
+       0.900371,0.427755,0.079739,1.1919,0.469528,-0.4095,
+       0.905374,0.424615,0,1.19793,0.464638,-0.5,
+       0.73381,0.655202,0.179534,1.066291,0.661627,-0.361333,
+       0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+       0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
+       0.73381,0.655202,0.179534,1.066291,0.661627,-0.361333,
+       0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
        0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
-       0.737725,0.668365,0.095126,1.057196,0.686350,-0.417500,
-       0.739038,0.673664,0.000000,1.052644,0.698661,-0.500000,
-       0.820414,0.571770,0.000000,1.100180,0.633946,-0.500000,
-       0.820414,0.571770,0.000000,1.100180,0.633946,-0.500000,
-       0.820632,0.565867,0.079739,1.101400,0.626279,-0.409500,
-       0.737725,0.668365,0.095126,1.057196,0.686350,-0.417500,
-       0.866025,0.500000,-0.000000,1.151611,0.550768,-0.500000,
-       0.862894,0.498192,0.084960,1.149055,0.549292,-0.402250,
-       0.820632,0.565867,0.079739,1.101400,0.626279,-0.409500,
-       0.866025,0.500000,-0.000000,1.151611,0.550768,-0.500000,
-       0.820632,0.565867,0.079739,1.101400,0.626279,-0.409500,
-       0.820414,0.571770,0.000000,1.100180,0.633946,-0.500000,
-       0.862894,0.498192,0.084960,1.149055,0.549292,-0.402250,
-       0.835470,0.498022,0.232303,1.141425,0.544887,-0.322437,
+       0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+       0.739038,0.673664,0,1.052644,0.698661,-0.5,
+       0.820414,0.57177,0,1.10018,0.633946,-0.5,
+       0.820414,0.57177,0,1.10018,0.633946,-0.5,
+       0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
+       0.737725,0.668365,0.095126,1.057196,0.68635,-0.4175,
+       0.866025,0.5,0,1.151611,0.550768,-0.5,
+       0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+       0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
+       0.866025,0.5,0,1.151611,0.550768,-0.5,
+       0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
+       0.820414,0.57177,0,1.10018,0.633946,-0.5,
+       0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+       0.83547,0.498022,0.232303,1.141425,0.544887,-0.322437,
        0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
        0.786313,0.584772,0.199385,1.098258,0.615227,-0.335375,
-       0.820632,0.565867,0.079739,1.101400,0.626279,-0.409500,
-       0.862894,0.498192,0.084960,1.149055,0.549292,-0.402250,
-       0.733810,0.655202,-0.179535,1.066291,0.661627,-0.638667,
+       0.820632,0.565867,0.079739,1.1014,0.626279,-0.4095,
+       0.862894,0.498192,0.08496,1.149055,0.549292,-0.40225,
+       0.73381,0.655202,-0.179535,1.066291,0.661627,-0.638667,
        0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
-       0.820632,0.565867,-0.079739,1.101400,0.626279,-0.590500,
-       0.733810,0.655202,-0.179535,1.066291,0.661627,-0.638667,
-       0.820632,0.565867,-0.079739,1.101400,0.626279,-0.590500,
-       0.737725,0.668365,-0.095126,1.057196,0.686350,-0.582500,
+       0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
+       0.73381,0.655202,-0.179535,1.066291,0.661627,-0.638667,
+       0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
+       0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
        0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
-       0.835470,0.498022,-0.232303,1.141425,0.544887,-0.677562,
-       0.862894,0.498192,-0.084960,1.149055,0.549292,-0.597750,
-       0.862894,0.498192,-0.084960,1.149055,0.549292,-0.597750,
-       0.820632,0.565867,-0.079739,1.101400,0.626279,-0.590500,
+       0.83547,0.498022,-0.232303,1.141425,0.544887,-0.677562,
+       0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
+       0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
+       0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
        0.786313,0.584772,-0.199385,1.098258,0.615227,-0.664625,
-       0.866025,0.500000,-0.000000,1.151611,0.550768,-0.500000,
-       0.820414,0.571770,0.000000,1.100180,0.633946,-0.500000,
-       0.820632,0.565867,-0.079739,1.101400,0.626279,-0.590500,
-       0.866025,0.500000,-0.000000,1.151611,0.550768,-0.500000,
-       0.820632,0.565867,-0.079739,1.101400,0.626279,-0.590500,
-       0.862894,0.498192,-0.084960,1.149055,0.549292,-0.597750,
-       0.820414,0.571770,0.000000,1.100180,0.633946,-0.500000,
-       0.739038,0.673664,0.000000,1.052644,0.698661,-0.500000,
-       0.737725,0.668365,-0.095126,1.057196,0.686350,-0.582500,
-       0.737725,0.668365,-0.095126,1.057196,0.686350,-0.582500,
-       0.820632,0.565867,-0.079739,1.101400,0.626279,-0.590500,
-       0.820414,0.571770,0.000000,1.100180,0.633946,-0.500000,
-       0.930569,0.307100,-0.199328,1.204957,0.421449,-0.638667,
-       0.940255,0.325371,-0.100277,1.221821,0.401211,-0.582500,
-       0.900371,0.427755,-0.079739,1.191900,0.469528,-0.590500,
-       0.930569,0.307100,-0.199328,1.204957,0.421449,-0.638667,
-       0.900371,0.427755,-0.079739,1.191900,0.469528,-0.590500,
+       0.866025,0.5,0,1.151611,0.550768,-0.5,
+       0.820414,0.57177,0,1.10018,0.633946,-0.5,
+       0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
+       0.866025,0.5,0,1.151611,0.550768,-0.5,
+       0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
+       0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
+       0.820414,0.57177,0,1.10018,0.633946,-0.5,
+       0.739038,0.673664,0,1.052644,0.698661,-0.5,
+       0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
+       0.737725,0.668365,-0.095126,1.057196,0.68635,-0.5825,
+       0.820632,0.565867,-0.079739,1.1014,0.626279,-0.5905,
+       0.820414,0.57177,0,1.10018,0.633946,-0.5,
+       0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
+       0.940255,0.325371,-0.100277,1.221821,0.401211,-0.5825,
+       0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
+       0.930569,0.3071,-0.199328,1.204957,0.421449,-0.638667,
+       0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
        0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
-       0.940255,0.325371,-0.100277,1.221821,0.401211,-0.582500,
-       0.962007,0.273026,0.000000,1.230206,0.391113,-0.500000,
-       0.905374,0.424615,-0.000000,1.197930,0.464638,-0.500000,
-       0.905374,0.424615,-0.000000,1.197930,0.464638,-0.500000,
-       0.900371,0.427755,-0.079739,1.191900,0.469528,-0.590500,
-       0.940255,0.325371,-0.100277,1.221821,0.401211,-0.582500,
-       0.866025,0.500000,-0.000000,1.151611,0.550768,-0.500000,
-       0.862894,0.498192,-0.084960,1.149055,0.549292,-0.597750,
-       0.900371,0.427755,-0.079739,1.191900,0.469528,-0.590500,
-       0.866025,0.500000,-0.000000,1.151611,0.550768,-0.500000,
-       0.900371,0.427755,-0.079739,1.191900,0.469528,-0.590500,
-       0.905374,0.424615,-0.000000,1.197930,0.464638,-0.500000,
-       0.862894,0.498192,-0.084960,1.149055,0.549292,-0.597750,
-       0.835470,0.498022,-0.232303,1.141425,0.544887,-0.677562,
+       0.940255,0.325371,-0.100277,1.221821,0.401211,-0.5825,
+       0.962007,0.273026,0,1.230206,0.391113,-0.5,
+       0.905374,0.424615,0,1.19793,0.464638,-0.5,
+       0.905374,0.424615,0,1.19793,0.464638,-0.5,
+       0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
+       0.940255,0.325371,-0.100277,1.221821,0.401211,-0.5825,
+       0.866025,0.5,0,1.151611,0.550768,-0.5,
+       0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
+       0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
+       0.866025,0.5,0,1.151611,0.550768,-0.5,
+       0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
+       0.905374,0.424615,0,1.19793,0.464638,-0.5,
+       0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
+       0.83547,0.498022,-0.232303,1.141425,0.544887,-0.677562,
        0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
        0.890268,0.404155,-0.209958,1.180758,0.472333,-0.664625,
-       0.900371,0.427755,-0.079739,1.191900,0.469528,-0.590500,
-       0.862894,0.498192,-0.084960,1.149055,0.549292,-0.597750,
+       0.900371,0.427755,-0.079739,1.1919,0.469528,-0.5905,
+       0.862894,0.498192,-0.08496,1.149055,0.549292,-0.59775,
        0.133481,-0.728232,-0.672207,1.115671,0.352342,-0.673147,
        0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
        0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
        0.133481,-0.728232,-0.672207,1.115671,0.352342,-0.673147,
        0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
-       0.164983,-0.934150,-0.316457,1.139957,0.313586,-0.594444,
+       0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
        0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
        0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
        0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
        0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
        0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
        0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
-       0.233794,-0.972286,0.000000,1.017091,0.274757,-0.500000,
-       0.190600,-0.981668,0.000000,1.086058,0.289628,-0.500000,
+       0.233794,-0.972286,0,1.017091,0.274757,-0.5,
+       0.1906,-0.981668,0,1.086058,0.289628,-0.5,
        0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
-       0.233794,-0.972286,0.000000,1.017091,0.274757,-0.500000,
+       0.233794,-0.972286,0,1.017091,0.274757,-0.5,
        0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
        0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
-       0.190600,-0.981668,0.000000,1.086058,0.289628,-0.500000,
-       0.166954,-0.985965,-0.000000,1.148052,0.300668,-0.500000,
-       0.164983,-0.934150,-0.316457,1.139957,0.313586,-0.594444,
-       0.164983,-0.934150,-0.316457,1.139957,0.313586,-0.594444,
+       0.1906,-0.981668,0,1.086058,0.289628,-0.5,
+       0.166954,-0.985965,0,1.148052,0.300668,-0.5,
+       0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
+       0.164983,-0.93415,-0.316457,1.139957,0.313586,-0.594444,
        0.197559,-0.930384,-0.308798,1.077742,0.301825,-0.594388,
-       0.190600,-0.981668,0.000000,1.086058,0.289628,-0.500000,
-       0.287838,-0.708745,-0.644073,0.910476,0.297260,-0.676962,
-       0.375740,-0.671260,-0.638928,0.845007,0.268518,-0.678159,
-       0.438584,-0.851500,-0.287389,0.875679,0.240722,-0.597178,
-       0.438584,-0.851500,-0.287389,0.875679,0.240722,-0.597178,
-       0.319032,-0.902133,-0.290473,0.938670,0.265970,-0.596525,
-       0.287838,-0.708745,-0.644073,0.910476,0.297260,-0.676962,
-       0.419512,-0.907750,0.000000,0.885904,0.231457,-0.500000,
-       0.303521,-0.952825,0.000000,0.948068,0.255539,-0.500000,
-       0.319032,-0.902133,-0.290473,0.938670,0.265970,-0.596525,
-       0.419512,-0.907750,0.000000,0.885904,0.231457,-0.500000,
-       0.319032,-0.902133,-0.290473,0.938670,0.265970,-0.596525,
-       0.438584,-0.851500,-0.287389,0.875679,0.240722,-0.597178,
-       0.303521,-0.952825,0.000000,0.948068,0.255539,-0.500000,
-       0.233794,-0.972286,0.000000,1.017091,0.274757,-0.500000,
+       0.1906,-0.981668,0,1.086058,0.289628,-0.5,
+       0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
+       0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
+       0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
+       0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
+       0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
+       0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
+       0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+       0.303521,-0.952825,0,0.948068,0.255539,-0.5,
+       0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
+       0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+       0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
+       0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
+       0.303521,-0.952825,0,0.948068,0.255539,-0.5,
+       0.233794,-0.972286,0,1.017091,0.274757,-0.5,
        0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
        0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
-       0.319032,-0.902133,-0.290473,0.938670,0.265970,-0.596525,
-       0.303521,-0.952825,0.000000,0.948068,0.255539,-0.500000,
+       0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
+       0.303521,-0.952825,0,0.948068,0.255539,-0.5,
        0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
-       0.287838,-0.708745,-0.644073,0.910476,0.297260,-0.676962,
-       0.319032,-0.902133,-0.290473,0.938670,0.265970,-0.596525,
+       0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
+       0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
        0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
-       0.319032,-0.902133,-0.290473,0.938670,0.265970,-0.596525,
+       0.319032,-0.902133,-0.290473,0.93867,0.26597,-0.596525,
        0.245574,-0.922075,-0.299117,1.008335,0.286145,-0.595338,
-       0.438584,-0.851500,0.287389,0.875679,0.240722,-0.402822,
-       0.375740,-0.671260,0.638928,0.845007,0.268518,-0.321841,
-       0.287838,-0.708745,0.644073,0.910476,0.297260,-0.323037,
-       0.287838,-0.708745,0.644073,0.910476,0.297260,-0.323037,
-       0.319032,-0.902133,0.290473,0.938670,0.265970,-0.403475,
-       0.438584,-0.851500,0.287389,0.875679,0.240722,-0.402822,
+       0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
+       0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
+       0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
+       0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
+       0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
+       0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
        0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
        0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
-       0.319032,-0.902133,0.290473,0.938670,0.265970,-0.403475,
+       0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
        0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
-       0.319032,-0.902133,0.290473,0.938670,0.265970,-0.403475,
-       0.287838,-0.708745,0.644073,0.910476,0.297260,-0.323037,
+       0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
+       0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
        0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
-       0.233794,-0.972286,0.000000,1.017091,0.274757,-0.500000,
-       0.303521,-0.952825,0.000000,0.948068,0.255539,-0.500000,
-       0.303521,-0.952825,0.000000,0.948068,0.255539,-0.500000,
-       0.319032,-0.902133,0.290473,0.938670,0.265970,-0.403475,
+       0.233794,-0.972286,0,1.017091,0.274757,-0.5,
+       0.303521,-0.952825,0,0.948068,0.255539,-0.5,
+       0.303521,-0.952825,0,0.948068,0.255539,-0.5,
+       0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
        0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
-       0.419512,-0.907750,0.000000,0.885904,0.231457,-0.500000,
-       0.438584,-0.851500,0.287389,0.875679,0.240722,-0.402822,
-       0.319032,-0.902133,0.290473,0.938670,0.265970,-0.403475,
-       0.419512,-0.907750,0.000000,0.885904,0.231457,-0.500000,
-       0.319032,-0.902133,0.290473,0.938670,0.265970,-0.403475,
-       0.303521,-0.952825,0.000000,0.948068,0.255539,-0.500000,
+       0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+       0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
+       0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
+       0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+       0.319032,-0.902133,0.290473,0.93867,0.26597,-0.403475,
+       0.303521,-0.952825,0,0.948068,0.255539,-0.5,
        0.133481,-0.728232,0.672206,1.115671,0.352342,-0.326853,
-       0.164983,-0.934150,0.316457,1.139957,0.313586,-0.405556,
-       0.197560,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+       0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
+       0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
        0.133481,-0.728232,0.672206,1.115671,0.352342,-0.326853,
-       0.197560,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+       0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
        0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
-       0.164983,-0.934150,0.316457,1.139957,0.313586,-0.405556,
-       0.166954,-0.985965,-0.000000,1.148052,0.300668,-0.500000,
-       0.190600,-0.981668,0.000000,1.086058,0.289628,-0.500000,
-       0.190600,-0.981668,0.000000,1.086058,0.289628,-0.500000,
-       0.197560,-0.930384,0.308798,1.077742,0.301825,-0.405612,
-       0.164983,-0.934150,0.316457,1.139957,0.313586,-0.405556,
-       0.233794,-0.972286,0.000000,1.017091,0.274757,-0.500000,
+       0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
+       0.166954,-0.985965,0,1.148052,0.300668,-0.5,
+       0.1906,-0.981668,0,1.086058,0.289628,-0.5,
+       0.1906,-0.981668,0,1.086058,0.289628,-0.5,
+       0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+       0.164983,-0.93415,0.316457,1.139957,0.313586,-0.405556,
+       0.233794,-0.972286,0,1.017091,0.274757,-0.5,
        0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
-       0.197560,-0.930384,0.308798,1.077742,0.301825,-0.405612,
-       0.233794,-0.972286,0.000000,1.017091,0.274757,-0.500000,
-       0.197560,-0.930384,0.308798,1.077742,0.301825,-0.405612,
-       0.190600,-0.981668,0.000000,1.086058,0.289628,-0.500000,
+       0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+       0.233794,-0.972286,0,1.017091,0.274757,-0.5,
+       0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+       0.1906,-0.981668,0,1.086058,0.289628,-0.5,
        0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
        0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
        0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
        0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
-       0.197560,-0.930384,0.308798,1.077742,0.301825,-0.405612,
+       0.19756,-0.930384,0.308798,1.077742,0.301825,-0.405612,
        0.245574,-0.922075,0.299116,1.008335,0.286145,-0.404662,
-       -0.334948,0.636181,-0.695043,0.937575,0.636550,-0.673147,
+       -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
        -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
        -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
-       -0.334948,0.636181,-0.695043,0.937575,0.636550,-0.673147,
+       -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
        -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
        -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
        -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
        -0.308574,0.679683,-0.665442,0.789439,0.570833,-0.674787,
-       -0.132599,0.364183,-0.921840,0.833218,0.513896,-0.722456,
-       -0.132599,0.364183,-0.921840,0.833218,0.513896,-0.722456,
+       -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
+       -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
        -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
        -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
-       0.026562,0.016059,-0.999518,0.885754,0.445570,-0.738345,
-       0.010552,0.004110,-0.999936,0.961325,0.472585,-0.735969,
+       0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
+       0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
        -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
-       0.026562,0.016059,-0.999518,0.885754,0.445570,-0.738345,
+       0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
        -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
-       -0.132599,0.364183,-0.921840,0.833218,0.513896,-0.722456,
-       0.010552,0.004110,-0.999936,0.961325,0.472585,-0.735969,
+       -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
+       0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
        -0.042028,-0.027931,-0.998726,1.026623,0.494446,-0.736109,
        -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
        -0.176226,0.307645,-0.935039,0.978052,0.571957,-0.720369,
        -0.128571,0.348912,-0.928294,0.911431,0.545768,-0.720237,
-       0.010552,0.004110,-0.999936,0.961325,0.472585,-0.735969,
-       -0.367420,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+       0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
+       -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
        -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
        -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
        -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
        -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
-       -0.367420,0.660294,-0.654992,0.703717,0.526722,-0.676962,
-       0.003382,-0.001295,-0.999993,0.732540,0.370437,-0.742944,
-       0.022480,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+       -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+       0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
+       0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
        -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
-       0.003382,-0.001295,-0.999993,0.732540,0.370437,-0.742944,
+       0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
        -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
        -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
-       0.022480,0.015117,-0.999633,0.807096,0.411991,-0.741313,
-       0.026562,0.016059,-0.999518,0.885754,0.445570,-0.738345,
-       -0.132599,0.364183,-0.921840,0.833218,0.513896,-0.722456,
-       -0.132599,0.364183,-0.921840,0.833218,0.513896,-0.722456,
+       0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+       0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
+       -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
+       -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
        -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
-       0.022480,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+       0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
        -0.308574,0.679683,-0.665442,0.789439,0.570833,-0.674787,
-       -0.367420,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+       -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
        -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
        -0.308574,0.679683,-0.665442,0.789439,0.570833,-0.674787,
        -0.168868,0.358367,-0.918181,0.750708,0.474572,-0.725225,
-       -0.132599,0.364183,-0.921840,0.833218,0.513896,-0.722456,
-       0.375740,-0.671260,-0.638928,0.845007,0.268518,-0.678159,
-       0.287838,-0.708745,-0.644073,0.910476,0.297260,-0.676962,
-       0.181001,-0.354486,-0.917376,0.863485,0.349410,-0.725225,
-       0.375740,-0.671260,-0.638928,0.845007,0.268518,-0.678159,
-       0.181001,-0.354486,-0.917376,0.863485,0.349410,-0.725225,
+       -0.132599,0.364183,-0.92184,0.833218,0.513896,-0.722456,
+       0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
+       0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
+       0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
+       0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
+       0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
        0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
-       0.287838,-0.708745,-0.644073,0.910476,0.297260,-0.676962,
+       0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
        0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
        0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
        0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
-       0.181001,-0.354486,-0.917376,0.863485,0.349410,-0.725225,
-       0.287838,-0.708745,-0.644073,0.910476,0.297260,-0.676962,
-       0.026562,0.016059,-0.999518,0.885754,0.445570,-0.738345,
-       0.022480,0.015117,-0.999633,0.807096,0.411991,-0.741313,
-       0.181001,-0.354486,-0.917376,0.863485,0.349410,-0.725225,
-       0.026562,0.016059,-0.999518,0.885754,0.445570,-0.738345,
-       0.181001,-0.354486,-0.917376,0.863485,0.349410,-0.725225,
+       0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
+       0.287838,-0.708745,-0.644073,0.910476,0.29726,-0.676962,
+       0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
+       0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+       0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
+       0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
+       0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
        0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
-       0.022480,0.015117,-0.999633,0.807096,0.411991,-0.741313,
-       0.003382,-0.001295,-0.999993,0.732540,0.370437,-0.742944,
+       0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+       0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
        0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
        0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
-       0.181001,-0.354486,-0.917376,0.863485,0.349410,-0.725225,
-       0.022480,0.015117,-0.999633,0.807096,0.411991,-0.741313,
+       0.181001,-0.354486,-0.917376,0.863485,0.34941,-0.725225,
+       0.02248,0.015117,-0.999633,0.807096,0.411991,-0.741313,
        0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
        0.133481,-0.728232,-0.672207,1.115671,0.352342,-0.673147,
        0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
        0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
-       0.114557,-0.361315,-0.925380,1.011218,0.399402,-0.720237,
+       0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
        0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
        -0.042028,-0.027931,-0.998726,1.026623,0.494446,-0.736109,
-       0.010552,0.004110,-0.999936,0.961325,0.472585,-0.735969,
-       0.114557,-0.361315,-0.925380,1.011218,0.399402,-0.720237,
+       0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
+       0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
        -0.042028,-0.027931,-0.998726,1.026623,0.494446,-0.736109,
-       0.114557,-0.361315,-0.925380,1.011218,0.399402,-0.720237,
+       0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
        0.060251,-0.377234,-0.924156,1.075195,0.416935,-0.720369,
-       0.010552,0.004110,-0.999936,0.961325,0.472585,-0.735969,
-       0.026562,0.016059,-0.999518,0.885754,0.445570,-0.738345,
+       0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
+       0.026562,0.016059,-0.999518,0.885754,0.44557,-0.738345,
        0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
        0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
-       0.114557,-0.361315,-0.925380,1.011218,0.399402,-0.720237,
-       0.010552,0.004110,-0.999936,0.961325,0.472585,-0.735969,
+       0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
+       0.010552,0.00411,-0.999936,0.961325,0.472585,-0.735969,
        0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
        0.180025,-0.723743,-0.666173,1.052796,0.338416,-0.673044,
-       0.114557,-0.361315,-0.925380,1.011218,0.399402,-0.720237,
+       0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
        0.227251,-0.720523,-0.655136,0.982068,0.320307,-0.674787,
-       0.114557,-0.361315,-0.925380,1.011218,0.399402,-0.720237,
+       0.114557,-0.361315,-0.92538,1.011218,0.399402,-0.720237,
        0.149984,-0.357133,-0.921933,0.938289,0.377245,-0.722456,
-       -0.334947,0.636181,0.695043,0.937575,0.636550,-0.326853,
+       -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
        -0.176226,0.307645,0.935039,0.978052,0.571957,-0.279631,
        -0.128571,0.348912,0.928294,0.911431,0.545768,-0.279763,
-       -0.334947,0.636181,0.695043,0.937575,0.636550,-0.326853,
+       -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
        -0.128571,0.348912,0.928294,0.911431,0.545768,-0.279763,
        -0.290177,0.673481,0.679868,0.869854,0.606754,-0.326956,
        -0.176226,0.307645,0.935039,0.978052,0.571957,-0.279631,
        -0.042028,-0.027931,0.998726,1.026623,0.494446,-0.263891,
-       0.010552,0.004110,0.999936,0.961325,0.472585,-0.264031,
-       0.010552,0.004110,0.999936,0.961325,0.472585,-0.264031,
+       0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
+       0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
        -0.128571,0.348912,0.928294,0.911431,0.545768,-0.279763,
        -0.176226,0.307645,0.935039,0.978052,0.571957,-0.279631,
-       0.026562,0.016060,0.999518,0.885754,0.445570,-0.261655,
+       0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
        -0.132599,0.364183,0.921839,0.833218,0.513896,-0.277544,
        -0.128571,0.348912,0.928294,0.911431,0.545768,-0.279763,
-       0.026562,0.016060,0.999518,0.885754,0.445570,-0.261655,
+       0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
        -0.128571,0.348912,0.928294,0.911431,0.545768,-0.279763,
-       0.010552,0.004110,0.999936,0.961325,0.472585,-0.264031,
+       0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
        -0.132599,0.364183,0.921839,0.833218,0.513896,-0.277544,
        -0.308574,0.679683,0.665442,0.789439,0.570833,-0.325213,
        -0.290177,0.673481,0.679868,0.869854,0.606754,-0.326956,
@@ -700,54 +700,54 @@ static const float data[]={
        0.133481,-0.728232,0.672206,1.115671,0.352342,-0.326853,
        0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
        0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
-       0.114557,-0.361314,0.925380,1.011218,0.399402,-0.279763,
+       0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
        0.060251,-0.377234,0.924156,1.075195,0.416935,-0.279631,
        0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
        0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
-       0.114557,-0.361314,0.925380,1.011218,0.399402,-0.279763,
+       0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
        0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
-       0.114557,-0.361314,0.925380,1.011218,0.399402,-0.279763,
+       0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
        0.180025,-0.723743,0.666173,1.052796,0.338416,-0.326956,
        0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
-       0.026562,0.016060,0.999518,0.885754,0.445570,-0.261655,
-       0.010552,0.004110,0.999936,0.961325,0.472585,-0.264031,
-       0.010552,0.004110,0.999936,0.961325,0.472585,-0.264031,
-       0.114557,-0.361314,0.925380,1.011218,0.399402,-0.279763,
+       0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
+       0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
+       0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
+       0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
        0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
        -0.042028,-0.027931,0.998726,1.026623,0.494446,-0.263891,
        0.060251,-0.377234,0.924156,1.075195,0.416935,-0.279631,
-       0.114557,-0.361314,0.925380,1.011218,0.399402,-0.279763,
+       0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
        -0.042028,-0.027931,0.998726,1.026623,0.494446,-0.263891,
-       0.114557,-0.361314,0.925380,1.011218,0.399402,-0.279763,
-       0.010552,0.004110,0.999936,0.961325,0.472585,-0.264031,
-       0.375740,-0.671260,0.638928,0.845007,0.268518,-0.321841,
-       0.214466,-0.344670,0.913896,0.793886,0.314845,-0.273252,
-       0.181001,-0.354486,0.917376,0.863485,0.349410,-0.274775,
-       0.375740,-0.671260,0.638928,0.845007,0.268518,-0.321841,
-       0.181001,-0.354486,0.917376,0.863485,0.349410,-0.274775,
-       0.287838,-0.708745,0.644073,0.910476,0.297260,-0.323037,
-       0.214466,-0.344670,0.913896,0.793886,0.314845,-0.273252,
-       0.003382,-0.001295,0.999993,0.732540,0.370437,-0.257056,
-       0.022480,0.015118,0.999633,0.807096,0.411991,-0.258687,
-       0.022480,0.015118,0.999633,0.807096,0.411991,-0.258687,
-       0.181001,-0.354486,0.917376,0.863485,0.349410,-0.274775,
-       0.214466,-0.344670,0.913896,0.793886,0.314845,-0.273252,
-       0.026562,0.016060,0.999518,0.885754,0.445570,-0.261655,
+       0.114557,-0.361314,0.92538,1.011218,0.399402,-0.279763,
+       0.010552,0.00411,0.999936,0.961325,0.472585,-0.264031,
+       0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
+       0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
+       0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
+       0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
+       0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
+       0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
+       0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
+       0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
+       0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
+       0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
+       0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
+       0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
+       0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
        0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
-       0.181001,-0.354486,0.917376,0.863485,0.349410,-0.274775,
-       0.026562,0.016060,0.999518,0.885754,0.445570,-0.261655,
-       0.181001,-0.354486,0.917376,0.863485,0.349410,-0.274775,
-       0.022480,0.015118,0.999633,0.807096,0.411991,-0.258687,
+       0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
+       0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
+       0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
+       0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
        0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
        0.227251,-0.720523,0.655136,0.982068,0.320307,-0.325213,
-       0.287838,-0.708745,0.644073,0.910476,0.297260,-0.323037,
-       0.287838,-0.708745,0.644073,0.910476,0.297260,-0.323037,
-       0.181001,-0.354486,0.917376,0.863485,0.349410,-0.274775,
+       0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
+       0.287838,-0.708745,0.644073,0.910476,0.29726,-0.323037,
+       0.181001,-0.354486,0.917376,0.863485,0.34941,-0.274775,
        0.149984,-0.357133,0.921933,0.938289,0.377245,-0.277544,
        -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
        -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
-       -0.367420,0.660294,0.654992,0.703717,0.526722,-0.323037,
-       -0.367420,0.660294,0.654992,0.703717,0.526722,-0.323037,
+       -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
+       -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
        -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
        -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
        -0.308574,0.679683,0.665442,0.789439,0.570833,-0.325213,
@@ -755,37 +755,37 @@ static const float data[]={
        -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
        -0.308574,0.679683,0.665442,0.789439,0.570833,-0.325213,
        -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
-       -0.367420,0.660294,0.654992,0.703717,0.526722,-0.323037,
+       -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
        -0.132599,0.364183,0.921839,0.833218,0.513896,-0.277544,
-       0.026562,0.016060,0.999518,0.885754,0.445570,-0.261655,
-       0.022480,0.015118,0.999633,0.807096,0.411991,-0.258687,
-       0.022480,0.015118,0.999633,0.807096,0.411991,-0.258687,
+       0.026562,0.01606,0.999518,0.885754,0.44557,-0.261655,
+       0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
+       0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
        -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
        -0.132599,0.364183,0.921839,0.833218,0.513896,-0.277544,
-       0.003382,-0.001295,0.999993,0.732540,0.370437,-0.257056,
+       0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
        -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
        -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
-       0.003382,-0.001295,0.999993,0.732540,0.370437,-0.257056,
+       0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
        -0.168868,0.358366,0.918181,0.750708,0.474572,-0.274775,
-       0.022480,0.015118,0.999633,0.807096,0.411991,-0.258687,
+       0.02248,0.015118,0.999633,0.807096,0.411991,-0.258687,
        -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
-       -0.334948,0.636181,-0.695043,0.937575,0.636550,-0.673147,
+       -0.334948,0.636181,-0.695043,0.937575,0.63655,-0.673147,
        -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
        -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
        -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
        -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
-       -0.456348,0.889801,0.000000,0.905194,0.688224,-0.500000,
-       -0.427853,0.903848,0.000000,0.836591,0.655543,-0.500000,
+       -0.456348,0.889801,0,0.905194,0.688224,-0.5,
+       -0.427853,0.903848,0,0.836591,0.655543,-0.5,
        -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
-       -0.456348,0.889801,0.000000,0.905194,0.688224,-0.500000,
+       -0.456348,0.889801,0,0.905194,0.688224,-0.5,
        -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
        -0.440797,0.833329,-0.333557,0.913289,0.675305,-0.594444,
-       -0.427853,0.903848,0.000000,0.836591,0.655543,-0.500000,
-       -0.459546,0.888154,0.000000,0.754416,0.616383,-0.500000,
+       -0.427853,0.903848,0,0.836591,0.655543,-0.5,
+       -0.459546,0.888154,0,0.754416,0.616383,-0.5,
        -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
        -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
        -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
-       -0.427853,0.903848,0.000000,0.836591,0.655543,-0.500000,
+       -0.427853,0.903848,0,0.836591,0.655543,-0.5,
        -0.308574,0.679683,-0.665442,0.789439,0.570833,-0.674787,
        -0.290177,0.673481,-0.679868,0.869854,0.606754,-0.673044,
        -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
@@ -793,7 +793,7 @@ static const float data[]={
        -0.397769,0.859277,-0.321594,0.844907,0.643346,-0.594388,
        -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
        -0.440797,0.833329,0.333557,0.913289,0.675305,-0.405556,
-       -0.334947,0.636181,0.695043,0.937575,0.636550,-0.326853,
+       -0.334947,0.636181,0.695043,0.937575,0.63655,-0.326853,
        -0.290177,0.673481,0.679868,0.869854,0.606754,-0.326956,
        -0.290177,0.673481,0.679868,0.869854,0.606754,-0.326956,
        -0.397769,0.859277,0.321594,0.844907,0.643346,-0.405612,
@@ -805,65 +805,65 @@ static const float data[]={
        -0.397769,0.859277,0.321594,0.844907,0.643346,-0.405612,
        -0.290177,0.673481,0.679868,0.869854,0.606754,-0.326956,
        -0.421194,0.852237,0.310301,0.763171,0.604996,-0.404662,
-       -0.459546,0.888154,0.000000,0.754416,0.616383,-0.500000,
-       -0.427853,0.903848,0.000000,0.836591,0.655543,-0.500000,
-       -0.427853,0.903848,0.000000,0.836591,0.655543,-0.500000,
+       -0.459546,0.888154,0,0.754416,0.616383,-0.5,
+       -0.427853,0.903848,0,0.836591,0.655543,-0.5,
+       -0.427853,0.903848,0,0.836591,0.655543,-0.5,
        -0.397769,0.859277,0.321594,0.844907,0.643346,-0.405612,
        -0.421194,0.852237,0.310301,0.763171,0.604996,-0.404662,
-       -0.456348,0.889801,0.000000,0.905194,0.688224,-0.500000,
+       -0.456348,0.889801,0,0.905194,0.688224,-0.5,
        -0.440797,0.833329,0.333557,0.913289,0.675305,-0.405556,
        -0.397769,0.859277,0.321594,0.844907,0.643346,-0.405612,
-       -0.456348,0.889801,0.000000,0.905194,0.688224,-0.500000,
+       -0.456348,0.889801,0,0.905194,0.688224,-0.5,
        -0.397769,0.859277,0.321594,0.844907,0.643346,-0.405612,
-       -0.427853,0.903848,0.000000,0.836591,0.655543,-0.500000,
+       -0.427853,0.903848,0,0.836591,0.655543,-0.5,
        -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
-       -0.589900,0.750266,0.298526,0.589401,0.500151,-0.402822,
+       -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
        -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
        -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
        -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
-       -0.367420,0.660294,0.654992,0.703717,0.526722,-0.323037,
-       -0.589900,0.750266,0.298526,0.589401,0.500151,-0.402822,
-       -0.641270,0.767315,0.000000,0.579177,0.509417,-0.500000,
-       -0.532473,0.846447,0.000000,0.666125,0.568442,-0.500000,
-       -0.532473,0.846447,0.000000,0.666125,0.568442,-0.500000,
+       -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
+       -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
+       -0.64127,0.767315,0,0.579177,0.509417,-0.5,
+       -0.532473,0.846447,0,0.666125,0.568442,-0.5,
+       -0.532473,0.846447,0,0.666125,0.568442,-0.5,
        -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
-       -0.589900,0.750266,0.298526,0.589401,0.500151,-0.402822,
-       -0.459546,0.888154,0.000000,0.754416,0.616383,-0.500000,
+       -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
+       -0.459546,0.888154,0,0.754416,0.616383,-0.5,
        -0.421194,0.852237,0.310301,0.763171,0.604996,-0.404662,
        -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
-       -0.459546,0.888154,0.000000,0.754416,0.616383,-0.500000,
+       -0.459546,0.888154,0,0.754416,0.616383,-0.5,
        -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
-       -0.532473,0.846447,0.000000,0.666125,0.568442,-0.500000,
+       -0.532473,0.846447,0,0.666125,0.568442,-0.5,
        -0.421194,0.852237,0.310301,0.763171,0.604996,-0.404662,
        -0.308574,0.679683,0.665442,0.789439,0.570833,-0.325213,
-       -0.367420,0.660294,0.654992,0.703717,0.526722,-0.323037,
-       -0.367420,0.660294,0.654992,0.703717,0.526722,-0.323037,
+       -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
+       -0.36742,0.660294,0.654992,0.703717,0.526722,-0.323037,
        -0.487389,0.819353,0.301848,0.675523,0.558012,-0.403475,
        -0.421194,0.852237,0.310301,0.763171,0.604996,-0.404662,
        -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
-       -0.367420,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+       -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
        -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
        -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
        -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
-       -0.589900,0.750266,-0.298526,0.589401,0.500151,-0.597178,
-       -0.367420,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+       -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+       -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
        -0.308574,0.679683,-0.665442,0.789439,0.570833,-0.674787,
        -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
        -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
        -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
-       -0.367420,0.660294,-0.654992,0.703717,0.526722,-0.676962,
-       -0.459546,0.888154,0.000000,0.754416,0.616383,-0.500000,
-       -0.532473,0.846447,0.000000,0.666125,0.568442,-0.500000,
+       -0.36742,0.660294,-0.654992,0.703717,0.526722,-0.676962,
+       -0.459546,0.888154,0,0.754416,0.616383,-0.5,
+       -0.532473,0.846447,0,0.666125,0.568442,-0.5,
        -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
-       -0.459546,0.888154,0.000000,0.754416,0.616383,-0.500000,
+       -0.459546,0.888154,0,0.754416,0.616383,-0.5,
        -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
        -0.421194,0.852237,-0.310301,0.763171,0.604996,-0.595338,
-       -0.532473,0.846447,0.000000,0.666125,0.568442,-0.500000,
-       -0.641270,0.767315,0.000000,0.579177,0.509417,-0.500000,
-       -0.589900,0.750266,-0.298526,0.589401,0.500151,-0.597178,
-       -0.589900,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+       -0.532473,0.846447,0,0.666125,0.568442,-0.5,
+       -0.64127,0.767315,0,0.579177,0.509417,-0.5,
+       -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+       -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
        -0.487389,0.819353,-0.301848,0.675523,0.558012,-0.596525,
-       -0.532473,0.846447,0.000000,0.666125,0.568442,-0.500000,
+       -0.532473,0.846447,0,0.666125,0.568442,-0.5,
        -0.610536,0.426181,-0.667544,0.428341,0.263148,-0.673044,
        -0.603758,0.432599,-0.669577,0.386176,0.201223,-0.673147,
        -0.304433,0.241938,-0.921296,0.458468,0.182068,-0.720369,
@@ -878,8 +878,8 @@ static const float data[]={
        -0.304433,0.241938,-0.921296,0.458468,0.182068,-0.720369,
        -0.005469,-0.009402,-0.999941,0.575807,0.208949,-0.735969,
        -0.015914,-0.029529,-0.999437,0.617093,0.264045,-0.738345,
-       -0.314590,0.228088,-0.921417,0.543287,0.301992,-0.722456,
-       -0.314590,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+       -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+       -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
        -0.317966,0.212815,-0.923909,0.495371,0.238512,-0.720237,
        -0.005469,-0.009402,-0.999941,0.575807,0.208949,-0.735969,
        -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
@@ -887,19 +887,19 @@ static const float data[]={
        -0.317966,0.212815,-0.923909,0.495371,0.238512,-0.720237,
        -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
        -0.317966,0.212815,-0.923909,0.495371,0.238512,-0.720237,
-       -0.314590,0.228088,-0.921417,0.543287,0.301992,-0.722456,
-       0.677454,-0.266400,-0.685629,0.704261,0.116939,-0.673147,
-       0.617578,-0.419692,-0.665174,0.723274,0.154750,-0.673044,
+       -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+       0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
+       0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
        0.314626,-0.214176,-0.924737,0.656244,0.179386,-0.720237,
-       0.677454,-0.266400,-0.685629,0.704261,0.116939,-0.673147,
+       0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
        0.314626,-0.214176,-0.924737,0.656244,0.179386,-0.720237,
-       0.344586,-0.098997,-0.933520,0.631969,0.136095,-0.720369,
-       0.617578,-0.419692,-0.665174,0.723274,0.154750,-0.673044,
-       0.525124,-0.503608,-0.686020,0.752404,0.194475,-0.674787,
+       0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
+       0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
+       0.525124,-0.503608,-0.68602,0.752404,0.194475,-0.674787,
        0.282948,-0.282367,-0.916629,0.690899,0.226098,-0.722456,
        0.282948,-0.282367,-0.916629,0.690899,0.226098,-0.722456,
        0.314626,-0.214176,-0.924737,0.656244,0.179386,-0.720237,
-       0.617578,-0.419692,-0.665174,0.723274,0.154750,-0.673044,
+       0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
        -0.015914,-0.029529,-0.999437,0.617093,0.264045,-0.738345,
        -0.005469,-0.009402,-0.999941,0.575807,0.208949,-0.735969,
        0.314626,-0.214176,-0.924737,0.656244,0.179386,-0.720237,
@@ -908,20 +908,20 @@ static const float data[]={
        0.282948,-0.282367,-0.916629,0.690899,0.226098,-0.722456,
        -0.005469,-0.009402,-0.999941,0.575807,0.208949,-0.735969,
        0.013842,0.059444,-0.998136,0.545218,0.159081,-0.736109,
-       0.344586,-0.098997,-0.933520,0.631969,0.136095,-0.720369,
-       0.344586,-0.098997,-0.933520,0.631969,0.136095,-0.720369,
+       0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
+       0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
        0.314626,-0.214176,-0.924737,0.656244,0.179386,-0.720237,
        -0.005469,-0.009402,-0.999941,0.575807,0.208949,-0.735969,
-       0.473586,-0.603690,-0.641307,0.792649,0.233327,-0.676962,
-       0.375740,-0.671260,-0.638928,0.845007,0.268518,-0.678159,
+       0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
+       0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
        0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
        0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
        0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
-       0.473586,-0.603690,-0.641307,0.792649,0.233327,-0.676962,
-       0.003382,-0.001295,-0.999993,0.732540,0.370437,-0.742944,
+       0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
+       0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
        -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
        0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
-       0.003382,-0.001295,-0.999993,0.732540,0.370437,-0.742944,
+       0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
        0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
        0.214466,-0.344671,-0.913896,0.793886,0.314845,-0.726748,
        -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
@@ -930,131 +930,131 @@ static const float data[]={
        0.282948,-0.282367,-0.916629,0.690899,0.226098,-0.722456,
        0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
        -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
-       0.525124,-0.503608,-0.686020,0.752404,0.194475,-0.674787,
-       0.473586,-0.603690,-0.641307,0.792649,0.233327,-0.676962,
+       0.525124,-0.503608,-0.68602,0.752404,0.194475,-0.674787,
+       0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
        0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
-       0.525124,-0.503608,-0.686020,0.752404,0.194475,-0.674787,
+       0.525124,-0.503608,-0.68602,0.752404,0.194475,-0.674787,
        0.248581,-0.323271,-0.913074,0.736568,0.272496,-0.725225,
        0.282948,-0.282367,-0.916629,0.690899,0.226098,-0.722456,
        -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
        -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
-       -0.288623,0.267480,-0.919321,0.601974,0.366500,-0.725225,
+       -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
        -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
-       -0.288623,0.267480,-0.919321,0.601974,0.366500,-0.725225,
+       -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
        -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
        -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
        -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
-       -0.314590,0.228088,-0.921417,0.543287,0.301992,-0.722456,
-       -0.314590,0.228088,-0.921417,0.543287,0.301992,-0.722456,
-       -0.288623,0.267480,-0.919321,0.601974,0.366500,-0.725225,
+       -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+       -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+       -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
        -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
        -0.015914,-0.029529,-0.999437,0.617093,0.264045,-0.738345,
        -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
-       -0.288623,0.267480,-0.919321,0.601974,0.366500,-0.725225,
+       -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
        -0.015914,-0.029529,-0.999437,0.617093,0.264045,-0.738345,
-       -0.288623,0.267480,-0.919321,0.601974,0.366500,-0.725225,
-       -0.314590,0.228088,-0.921417,0.543287,0.301992,-0.722456,
+       -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
+       -0.31459,0.228088,-0.921417,0.543287,0.301992,-0.722456,
        -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
-       0.003382,-0.001295,-0.999993,0.732540,0.370437,-0.742944,
+       0.003382,-0.001295,-0.999993,0.73254,0.370437,-0.742944,
        -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
        -0.231331,0.321253,-0.918304,0.671195,0.426029,-0.726748,
-       -0.288623,0.267480,-0.919321,0.601974,0.366500,-0.725225,
+       -0.288623,0.26748,-0.919321,0.601974,0.3665,-0.725225,
        -0.014673,-0.023374,-0.999619,0.669271,0.319498,-0.741313,
-       -0.779710,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+       -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
        -0.603758,0.432599,-0.669577,0.386176,0.201223,-0.673147,
        -0.610536,0.426181,-0.667544,0.428341,0.263148,-0.673044,
        -0.610536,0.426181,-0.667544,0.428341,0.263148,-0.673044,
-       -0.770954,0.557417,-0.308084,0.388123,0.277930,-0.594388,
-       -0.779710,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+       -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
+       -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
        -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
        -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
-       -0.770954,0.557417,-0.308084,0.388123,0.277930,-0.594388,
+       -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
        -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
-       -0.770954,0.557417,-0.308084,0.388123,0.277930,-0.594388,
+       -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
        -0.610536,0.426181,-0.667544,0.428341,0.263148,-0.673044,
        -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
-       -0.766999,0.641648,-0.000000,0.432577,0.358913,-0.500000,
-       -0.804241,0.594303,0.000000,0.374717,0.282857,-0.500000,
-       -0.804241,0.594303,0.000000,0.374717,0.282857,-0.500000,
-       -0.770954,0.557417,-0.308084,0.388123,0.277930,-0.594388,
+       -0.766999,0.641648,0,0.432577,0.358913,-0.5,
+       -0.804241,0.594303,0,0.374717,0.282857,-0.5,
+       -0.804241,0.594303,0,0.374717,0.282857,-0.5,
+       -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
        -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
-       -0.820475,0.571682,0.000000,0.328343,0.216547,-0.500000,
-       -0.779710,0.541974,-0.313555,0.342801,0.212716,-0.594444,
-       -0.770954,0.557417,-0.308084,0.388123,0.277930,-0.594388,
-       -0.820475,0.571682,0.000000,0.328343,0.216547,-0.500000,
-       -0.770954,0.557417,-0.308084,0.388123,0.277930,-0.594388,
-       -0.804241,0.594303,0.000000,0.374717,0.282857,-0.500000,
+       -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+       -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+       -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
+       -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+       -0.770954,0.557417,-0.308084,0.388123,0.27793,-0.594388,
+       -0.804241,0.594303,0,0.374717,0.282857,-0.5,
        -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
        -0.459897,0.603331,-0.651526,0.620074,0.472355,-0.678159,
-       -0.589900,0.750266,-0.298526,0.589401,0.500151,-0.597178,
-       -0.589900,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+       -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+       -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
        -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
        -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
-       -0.641270,0.767315,0.000000,0.579177,0.509417,-0.500000,
-       -0.716797,0.697282,0.000000,0.501029,0.437003,-0.500000,
+       -0.64127,0.767315,0,0.579177,0.509417,-0.5,
+       -0.716797,0.697282,0,0.501029,0.437003,-0.5,
        -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
-       -0.641270,0.767315,0.000000,0.579177,0.509417,-0.500000,
+       -0.64127,0.767315,0,0.579177,0.509417,-0.5,
        -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
-       -0.589900,0.750266,-0.298526,0.589401,0.500151,-0.597178,
-       -0.766999,0.641648,-0.000000,0.432577,0.358913,-0.500000,
+       -0.5899,0.750266,-0.298526,0.589401,0.500151,-0.597178,
+       -0.766999,0.641648,0,0.432577,0.358913,-0.5,
        -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
        -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
-       -0.766999,0.641648,-0.000000,0.432577,0.358913,-0.500000,
+       -0.766999,0.641648,0,0.432577,0.358913,-0.5,
        -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
-       -0.716797,0.697282,0.000000,0.501029,0.437003,-0.500000,
+       -0.716797,0.697282,0,0.501029,0.437003,-0.5,
        -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
        -0.595775,0.458968,-0.659091,0.481782,0.333615,-0.674787,
        -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
        -0.565284,0.537872,-0.625418,0.545894,0.405668,-0.676962,
        -0.694867,0.675869,-0.245685,0.512245,0.429169,-0.596525,
        -0.740072,0.600901,-0.302014,0.444878,0.352588,-0.595338,
-       -0.589900,0.750266,0.298526,0.589401,0.500151,-0.402822,
+       -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
        -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
        -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
        -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
        -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
-       -0.589900,0.750266,0.298526,0.589401,0.500151,-0.402822,
+       -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
        -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
        -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
        -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
        -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
        -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
        -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
-       -0.766999,0.641648,-0.000000,0.432577,0.358913,-0.500000,
-       -0.716797,0.697282,0.000000,0.501029,0.437003,-0.500000,
+       -0.766999,0.641648,0,0.432577,0.358913,-0.5,
+       -0.716797,0.697282,0,0.501029,0.437003,-0.5,
        -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
-       -0.766999,0.641648,-0.000000,0.432577,0.358913,-0.500000,
+       -0.766999,0.641648,0,0.432577,0.358913,-0.5,
        -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
        -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
-       -0.641270,0.767315,0.000000,0.579177,0.509417,-0.500000,
-       -0.589900,0.750266,0.298526,0.589401,0.500151,-0.402822,
+       -0.64127,0.767315,0,0.579177,0.509417,-0.5,
+       -0.5899,0.750266,0.298526,0.589401,0.500151,-0.402822,
        -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
-       -0.641270,0.767315,0.000000,0.579177,0.509417,-0.500000,
+       -0.64127,0.767315,0,0.579177,0.509417,-0.5,
        -0.694867,0.675869,0.245685,0.512245,0.429169,-0.403475,
-       -0.716797,0.697282,0.000000,0.501029,0.437003,-0.500000,
+       -0.716797,0.697282,0,0.501029,0.437003,-0.5,
        -0.610536,0.426181,0.667544,0.428341,0.263148,-0.326956,
        -0.603758,0.432599,0.669577,0.386176,0.201223,-0.326853,
-       -0.779710,0.541974,0.313555,0.342801,0.212716,-0.405556,
-       -0.779710,0.541974,0.313555,0.342801,0.212716,-0.405556,
-       -0.770954,0.557417,0.308084,0.388123,0.277930,-0.405612,
+       -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
+       -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
+       -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
        -0.610536,0.426181,0.667544,0.428341,0.263148,-0.326956,
-       -0.820475,0.571682,0.000000,0.328343,0.216547,-0.500000,
-       -0.804241,0.594303,0.000000,0.374717,0.282857,-0.500000,
-       -0.770954,0.557417,0.308084,0.388123,0.277930,-0.405612,
-       -0.820475,0.571682,0.000000,0.328343,0.216547,-0.500000,
-       -0.770954,0.557417,0.308084,0.388123,0.277930,-0.405612,
-       -0.779710,0.541974,0.313555,0.342801,0.212716,-0.405556,
-       -0.804241,0.594303,0.000000,0.374717,0.282857,-0.500000,
-       -0.766999,0.641648,-0.000000,0.432577,0.358913,-0.500000,
+       -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+       -0.804241,0.594303,0,0.374717,0.282857,-0.5,
+       -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
+       -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+       -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
+       -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
+       -0.804241,0.594303,0,0.374717,0.282857,-0.5,
+       -0.766999,0.641648,0,0.432577,0.358913,-0.5,
        -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
        -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
-       -0.770954,0.557417,0.308084,0.388123,0.277930,-0.405612,
-       -0.804241,0.594303,0.000000,0.374717,0.282857,-0.500000,
+       -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
+       -0.804241,0.594303,0,0.374717,0.282857,-0.5,
        -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
        -0.610536,0.426181,0.667544,0.428341,0.263148,-0.326956,
-       -0.770954,0.557417,0.308084,0.388123,0.277930,-0.405612,
+       -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
        -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
-       -0.770954,0.557417,0.308084,0.388123,0.277930,-0.405612,
+       -0.770954,0.557417,0.308084,0.388123,0.27793,-0.405612,
        -0.740072,0.600901,0.302014,0.444878,0.352588,-0.404662,
        -0.304433,0.241938,0.921296,0.458468,0.182068,-0.279631,
        -0.603758,0.432599,0.669577,0.386176,0.201223,-0.326853,
@@ -1063,17 +1063,17 @@ static const float data[]={
        -0.317966,0.212815,0.923909,0.495371,0.238512,-0.279763,
        -0.304433,0.241938,0.921296,0.458468,0.182068,-0.279631,
        -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
-       -0.314590,0.228088,0.921417,0.543287,0.301992,-0.277544,
+       -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
        -0.317966,0.212815,0.923909,0.495371,0.238512,-0.279763,
        -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
        -0.317966,0.212815,0.923909,0.495371,0.238512,-0.279763,
        -0.610536,0.426181,0.667544,0.428341,0.263148,-0.326956,
-       -0.314590,0.228088,0.921417,0.543287,0.301992,-0.277544,
+       -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
        -0.015914,-0.029529,0.999437,0.617093,0.264045,-0.261655,
        -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
        -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
        -0.317966,0.212815,0.923909,0.495371,0.238512,-0.279763,
-       -0.314590,0.228088,0.921417,0.543287,0.301992,-0.277544,
+       -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
        0.013842,0.059444,0.998136,0.545218,0.159081,-0.263891,
        -0.304433,0.241938,0.921296,0.458468,0.182068,-0.279631,
        -0.317966,0.212815,0.923909,0.495371,0.238512,-0.279763,
@@ -1082,64 +1082,64 @@ static const float data[]={
        -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
        -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
        -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
-       -0.288623,0.267481,0.919321,0.601974,0.366500,-0.274775,
+       -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
        -0.459898,0.603331,0.651526,0.620074,0.472355,-0.321841,
-       -0.288623,0.267481,0.919321,0.601974,0.366500,-0.274775,
+       -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
        -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
        -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
-       0.003382,-0.001295,0.999993,0.732540,0.370437,-0.257056,
+       0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
        -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
        -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
-       -0.288623,0.267481,0.919321,0.601974,0.366500,-0.274775,
+       -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
        -0.231331,0.321253,0.918304,0.671195,0.426029,-0.273252,
        -0.015914,-0.029529,0.999437,0.617093,0.264045,-0.261655,
-       -0.314590,0.228088,0.921417,0.543287,0.301992,-0.277544,
-       -0.288623,0.267481,0.919321,0.601974,0.366500,-0.274775,
+       -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
+       -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
        -0.015914,-0.029529,0.999437,0.617093,0.264045,-0.261655,
-       -0.288623,0.267481,0.919321,0.601974,0.366500,-0.274775,
+       -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
        -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
-       -0.314590,0.228088,0.921417,0.543287,0.301992,-0.277544,
+       -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
        -0.595775,0.458968,0.659091,0.481782,0.333615,-0.325213,
        -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
        -0.565284,0.537872,0.625418,0.545894,0.405668,-0.323037,
-       -0.288623,0.267481,0.919321,0.601974,0.366500,-0.274775,
-       -0.314590,0.228088,0.921417,0.543287,0.301992,-0.277544,
-       0.214466,-0.344670,0.913896,0.793886,0.314845,-0.273252,
-       0.375740,-0.671260,0.638928,0.845007,0.268518,-0.321841,
-       0.473587,-0.603690,0.641306,0.792649,0.233327,-0.323037,
-       0.473587,-0.603690,0.641306,0.792649,0.233327,-0.323037,
+       -0.288623,0.267481,0.919321,0.601974,0.3665,-0.274775,
+       -0.31459,0.228088,0.921417,0.543287,0.301992,-0.277544,
+       0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
+       0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
+       0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
+       0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
        0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
-       0.214466,-0.344670,0.913896,0.793886,0.314845,-0.273252,
-       0.525124,-0.503609,0.686020,0.752404,0.194475,-0.325213,
+       0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
+       0.525124,-0.503609,0.68602,0.752404,0.194475,-0.325213,
        0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
        0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
-       0.525124,-0.503609,0.686020,0.752404,0.194475,-0.325213,
+       0.525124,-0.503609,0.68602,0.752404,0.194475,-0.325213,
        0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
-       0.473587,-0.603690,0.641306,0.792649,0.233327,-0.323037,
+       0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
        0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
        -0.015914,-0.029529,0.999437,0.617093,0.264045,-0.261655,
        -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
        -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
        0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
        0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
-       0.003382,-0.001295,0.999993,0.732540,0.370437,-0.257056,
-       0.214466,-0.344670,0.913896,0.793886,0.314845,-0.273252,
+       0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
+       0.214466,-0.34467,0.913896,0.793886,0.314845,-0.273252,
        0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
-       0.003382,-0.001295,0.999993,0.732540,0.370437,-0.257056,
+       0.003382,-0.001295,0.999993,0.73254,0.370437,-0.257056,
        0.248581,-0.323271,0.913073,0.736568,0.272496,-0.274775,
        -0.014673,-0.023374,0.999619,0.669271,0.319498,-0.258687,
-       0.677454,-0.266400,0.685629,0.704261,0.116939,-0.326853,
-       0.344586,-0.098997,0.933520,0.631969,0.136095,-0.279631,
+       0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
+       0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
        0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
-       0.677454,-0.266400,0.685629,0.704261,0.116939,-0.326853,
+       0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
        0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
-       0.617578,-0.419693,0.665173,0.723274,0.154750,-0.326956,
-       0.344586,-0.098997,0.933520,0.631969,0.136095,-0.279631,
+       0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
+       0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
        0.013842,0.059444,0.998136,0.545218,0.159081,-0.263891,
        -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
        -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
        0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
-       0.344586,-0.098997,0.933520,0.631969,0.136095,-0.279631,
+       0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
        -0.015914,-0.029529,0.999437,0.617093,0.264045,-0.261655,
        0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
        0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
@@ -1147,226 +1147,226 @@ static const float data[]={
        0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
        -0.005469,-0.009402,0.999941,0.575807,0.208949,-0.264031,
        0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
-       0.525124,-0.503609,0.686020,0.752404,0.194475,-0.325213,
-       0.617578,-0.419693,0.665173,0.723274,0.154750,-0.326956,
-       0.617578,-0.419693,0.665173,0.723274,0.154750,-0.326956,
+       0.525124,-0.503609,0.68602,0.752404,0.194475,-0.325213,
+       0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
+       0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
        0.314626,-0.214176,0.924737,0.656244,0.179386,-0.279763,
        0.282948,-0.282367,0.916629,0.690899,0.226098,-0.277544,
-       0.677454,-0.266400,0.685629,0.704261,0.116939,-0.326853,
-       0.617578,-0.419693,0.665173,0.723274,0.154750,-0.326956,
+       0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
+       0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
        0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
-       0.677454,-0.266400,0.685629,0.704261,0.116939,-0.326853,
+       0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
        0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
        0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
-       0.617578,-0.419693,0.665173,0.723274,0.154750,-0.326956,
-       0.525124,-0.503609,0.686020,0.752404,0.194475,-0.325213,
+       0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
+       0.525124,-0.503609,0.68602,0.752404,0.194475,-0.325213,
        0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
        0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
        0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
-       0.617578,-0.419693,0.665173,0.723274,0.154750,-0.326956,
-       0.746099,-0.665835,-0.000000,0.801608,0.169177,-0.500000,
-       0.881754,-0.471710,0.000000,0.776898,0.135041,-0.500000,
+       0.617578,-0.419693,0.665173,0.723274,0.15475,-0.326956,
+       0.746099,-0.665835,0,0.801608,0.169177,-0.5,
+       0.881754,-0.47171,0,0.776898,0.135041,-0.5,
        0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
-       0.746099,-0.665835,-0.000000,0.801608,0.169177,-0.500000,
+       0.746099,-0.665835,0,0.801608,0.169177,-0.5,
        0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
        0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
-       0.881754,-0.471710,0.000000,0.776898,0.135041,-0.500000,
-       0.961956,-0.273203,0.000000,0.762094,0.101615,-0.500000,
+       0.881754,-0.47171,0,0.776898,0.135041,-0.5,
+       0.961956,-0.273203,0,0.762094,0.101615,-0.5,
        0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
        0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
        0.814068,-0.486717,0.316859,0.763492,0.139968,-0.405612,
-       0.881754,-0.471710,0.000000,0.776898,0.135041,-0.500000,
-       0.375740,-0.671260,0.638928,0.845007,0.268518,-0.321841,
-       0.438584,-0.851500,0.287389,0.875679,0.240722,-0.402822,
+       0.881754,-0.47171,0,0.776898,0.135041,-0.5,
+       0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
+       0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
        0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
-       0.375740,-0.671260,0.638928,0.845007,0.268518,-0.321841,
+       0.37574,-0.67126,0.638928,0.845007,0.268518,-0.321841,
        0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
-       0.473587,-0.603690,0.641306,0.792649,0.233327,-0.323037,
-       0.438584,-0.851500,0.287389,0.875679,0.240722,-0.402822,
-       0.419512,-0.907750,0.000000,0.885904,0.231457,-0.500000,
-       0.576871,-0.816835,0.000000,0.837513,0.201992,-0.500000,
-       0.576871,-0.816835,0.000000,0.837513,0.201992,-0.500000,
+       0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
+       0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
+       0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+       0.576871,-0.816835,0,0.837513,0.201992,-0.5,
+       0.576871,-0.816835,0,0.837513,0.201992,-0.5,
        0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
-       0.438584,-0.851500,0.287389,0.875679,0.240722,-0.402822,
-       0.746099,-0.665835,-0.000000,0.801608,0.169177,-0.500000,
+       0.438584,-0.8515,0.287389,0.875679,0.240722,-0.402822,
+       0.746099,-0.665835,0,0.801608,0.169177,-0.5,
        0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
        0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
-       0.746099,-0.665835,-0.000000,0.801608,0.169177,-0.500000,
+       0.746099,-0.665835,0,0.801608,0.169177,-0.5,
        0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
-       0.576871,-0.816835,0.000000,0.837513,0.201992,-0.500000,
+       0.576871,-0.816835,0,0.837513,0.201992,-0.5,
        0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
-       0.525124,-0.503609,0.686020,0.752404,0.194475,-0.325213,
-       0.473587,-0.603690,0.641306,0.792649,0.233327,-0.323037,
-       0.473587,-0.603690,0.641306,0.792649,0.233327,-0.323037,
+       0.525124,-0.503609,0.68602,0.752404,0.194475,-0.325213,
+       0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
+       0.473587,-0.60369,0.641306,0.792649,0.233327,-0.323037,
        0.582001,-0.759448,0.290711,0.826297,0.209826,-0.403475,
        0.694632,-0.626894,0.352832,0.789307,0.175501,-0.404662,
-       0.375740,-0.671260,-0.638928,0.845007,0.268518,-0.678159,
-       0.473586,-0.603690,-0.641307,0.792649,0.233327,-0.676962,
+       0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
+       0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
        0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
-       0.375740,-0.671260,-0.638928,0.845007,0.268518,-0.678159,
+       0.37574,-0.67126,-0.638928,0.845007,0.268518,-0.678159,
        0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
-       0.438584,-0.851500,-0.287389,0.875679,0.240722,-0.597178,
-       0.473586,-0.603690,-0.641307,0.792649,0.233327,-0.676962,
-       0.525124,-0.503608,-0.686020,0.752404,0.194475,-0.674787,
+       0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
+       0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
+       0.525124,-0.503608,-0.68602,0.752404,0.194475,-0.674787,
        0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
        0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
        0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
-       0.473586,-0.603690,-0.641307,0.792649,0.233327,-0.676962,
-       0.746099,-0.665835,-0.000000,0.801608,0.169177,-0.500000,
-       0.576871,-0.816835,0.000000,0.837513,0.201992,-0.500000,
+       0.473586,-0.60369,-0.641307,0.792649,0.233327,-0.676962,
+       0.746099,-0.665835,0,0.801608,0.169177,-0.5,
+       0.576871,-0.816835,0,0.837513,0.201992,-0.5,
        0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
-       0.746099,-0.665835,-0.000000,0.801608,0.169177,-0.500000,
+       0.746099,-0.665835,0,0.801608,0.169177,-0.5,
        0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
        0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
-       0.576871,-0.816835,0.000000,0.837513,0.201992,-0.500000,
-       0.419512,-0.907750,0.000000,0.885904,0.231457,-0.500000,
-       0.438584,-0.851500,-0.287389,0.875679,0.240722,-0.597178,
-       0.438584,-0.851500,-0.287389,0.875679,0.240722,-0.597178,
+       0.576871,-0.816835,0,0.837513,0.201992,-0.5,
+       0.419512,-0.90775,0,0.885904,0.231457,-0.5,
+       0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
+       0.438584,-0.8515,-0.287389,0.875679,0.240722,-0.597178,
        0.582001,-0.759448,-0.290711,0.826297,0.209826,-0.596525,
-       0.576871,-0.816835,0.000000,0.837513,0.201992,-0.500000,
-       0.677454,-0.266400,-0.685629,0.704261,0.116939,-0.673147,
+       0.576871,-0.816835,0,0.837513,0.201992,-0.5,
+       0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
        0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
-       0.814068,-0.486716,-0.316860,0.763492,0.139968,-0.594388,
-       0.677454,-0.266400,-0.685629,0.704261,0.116939,-0.673147,
-       0.814068,-0.486716,-0.316860,0.763492,0.139968,-0.594388,
-       0.617578,-0.419692,-0.665174,0.723274,0.154750,-0.673044,
+       0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
+       0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
+       0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
+       0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
        0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
-       0.961956,-0.273203,0.000000,0.762094,0.101615,-0.500000,
-       0.881754,-0.471710,0.000000,0.776898,0.135041,-0.500000,
-       0.881754,-0.471710,0.000000,0.776898,0.135041,-0.500000,
-       0.814068,-0.486716,-0.316860,0.763492,0.139968,-0.594388,
+       0.961956,-0.273203,0,0.762094,0.101615,-0.5,
+       0.881754,-0.47171,0,0.776898,0.135041,-0.5,
+       0.881754,-0.47171,0,0.776898,0.135041,-0.5,
+       0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
        0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
-       0.746099,-0.665835,-0.000000,0.801608,0.169177,-0.500000,
+       0.746099,-0.665835,0,0.801608,0.169177,-0.5,
        0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
-       0.814068,-0.486716,-0.316860,0.763492,0.139968,-0.594388,
-       0.746099,-0.665835,-0.000000,0.801608,0.169177,-0.500000,
-       0.814068,-0.486716,-0.316860,0.763492,0.139968,-0.594388,
-       0.881754,-0.471710,0.000000,0.776898,0.135041,-0.500000,
+       0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
+       0.746099,-0.665835,0,0.801608,0.169177,-0.5,
+       0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
+       0.881754,-0.47171,0,0.776898,0.135041,-0.5,
        0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
-       0.525124,-0.503608,-0.686020,0.752404,0.194475,-0.674787,
-       0.617578,-0.419692,-0.665174,0.723274,0.154750,-0.673044,
-       0.617578,-0.419692,-0.665174,0.723274,0.154750,-0.673044,
-       0.814068,-0.486716,-0.316860,0.763492,0.139968,-0.594388,
+       0.525124,-0.503608,-0.68602,0.752404,0.194475,-0.674787,
+       0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
+       0.617578,-0.419692,-0.665174,0.723274,0.15475,-0.673044,
+       0.814068,-0.486716,-0.31686,0.763492,0.139968,-0.594388,
        0.694632,-0.626893,-0.352832,0.789307,0.175501,-0.595338,
        0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
-       0.677454,-0.266400,0.685629,0.704261,0.116939,-0.326853,
+       0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
        0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
        0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
-       0.903923,-0.260740,0.339026,0.740522,0.074155,-0.403722,
+       0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
        0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
-       0.961956,-0.273203,0.000000,0.762094,0.101615,-0.500000,
-       0.957991,-0.286797,0.000000,0.755907,0.070930,-0.500000,
-       0.903923,-0.260740,0.339026,0.740522,0.074155,-0.403722,
-       0.961956,-0.273203,0.000000,0.762094,0.101615,-0.500000,
-       0.903923,-0.260740,0.339026,0.740522,0.074155,-0.403722,
+       0.961956,-0.273203,0,0.762094,0.101615,-0.5,
+       0.957991,-0.286797,0,0.755907,0.07093,-0.5,
+       0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
+       0.961956,-0.273203,0,0.762094,0.101615,-0.5,
+       0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
        0.894665,-0.298343,0.332514,0.747636,0.105446,-0.405556,
-       0.957991,-0.286797,0.000000,0.755907,0.070930,-0.500000,
-       0.740764,-0.671765,-0.000000,0.747335,0.045755,-0.500000,
-       0.789460,-0.545462,0.281469,0.731601,0.048967,-0.404556,
-       0.789460,-0.545462,0.281469,0.731601,0.048967,-0.404556,
-       0.903923,-0.260740,0.339026,0.740522,0.074155,-0.403722,
-       0.957991,-0.286797,0.000000,0.755907,0.070930,-0.500000,
+       0.957991,-0.286797,0,0.755907,0.07093,-0.5,
+       0.740764,-0.671765,0,0.747335,0.045755,-0.5,
+       0.78946,-0.545462,0.281469,0.731601,0.048967,-0.404556,
+       0.78946,-0.545462,0.281469,0.731601,0.048967,-0.404556,
+       0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
+       0.957991,-0.286797,0,0.755907,0.07093,-0.5,
        0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
        0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
-       0.903923,-0.260740,0.339026,0.740522,0.074155,-0.403722,
+       0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
        0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
-       0.903923,-0.260740,0.339026,0.740522,0.074155,-0.403722,
-       0.789460,-0.545462,0.281469,0.731601,0.048967,-0.404556,
+       0.903923,-0.26074,0.339026,0.740522,0.074155,-0.403722,
+       0.78946,-0.545462,0.281469,0.731601,0.048967,-0.404556,
        0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
-       0.677454,-0.266400,-0.685629,0.704261,0.116939,-0.673147,
+       0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
        0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
        0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
-       0.903923,-0.260740,-0.339025,0.740522,0.074155,-0.596277,
+       0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
        0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
        0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
        0.789459,-0.545462,-0.281469,0.731601,0.048967,-0.595444,
-       0.903923,-0.260740,-0.339025,0.740522,0.074155,-0.596277,
+       0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
        0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
-       0.903923,-0.260740,-0.339025,0.740522,0.074155,-0.596277,
+       0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
        0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
        0.789459,-0.545462,-0.281469,0.731601,0.048967,-0.595444,
-       0.740764,-0.671765,-0.000000,0.747335,0.045755,-0.500000,
-       0.957991,-0.286797,0.000000,0.755907,0.070930,-0.500000,
-       0.957991,-0.286797,0.000000,0.755907,0.070930,-0.500000,
-       0.903923,-0.260740,-0.339025,0.740522,0.074155,-0.596277,
+       0.740764,-0.671765,0,0.747335,0.045755,-0.5,
+       0.957991,-0.286797,0,0.755907,0.07093,-0.5,
+       0.957991,-0.286797,0,0.755907,0.07093,-0.5,
+       0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
        0.789459,-0.545462,-0.281469,0.731601,0.048967,-0.595444,
-       0.961956,-0.273203,0.000000,0.762094,0.101615,-0.500000,
+       0.961956,-0.273203,0,0.762094,0.101615,-0.5,
        0.894665,-0.298343,-0.332514,0.747636,0.105446,-0.594444,
-       0.903923,-0.260740,-0.339025,0.740522,0.074155,-0.596277,
-       0.961956,-0.273203,0.000000,0.762094,0.101615,-0.500000,
-       0.903923,-0.260740,-0.339025,0.740522,0.074155,-0.596277,
-       0.957991,-0.286797,0.000000,0.755907,0.070930,-0.500000,
+       0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
+       0.961956,-0.273203,0,0.762094,0.101615,-0.5,
+       0.903923,-0.26074,-0.339025,0.740522,0.074155,-0.596277,
+       0.957991,-0.286797,0,0.755907,0.07093,-0.5,
        0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
-       0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.582500,
-       0.332870,-0.922331,-0.196223,0.710325,0.032750,-0.587500,
+       0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.5825,
+       0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
        0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
-       0.332870,-0.922331,-0.196223,0.710325,0.032750,-0.587500,
-       0.212480,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
-       0.072467,-0.997371,-0.000000,0.679568,0.022087,-0.500000,
-       0.389749,-0.920921,0.000000,0.725378,0.028862,-0.500000,
-       0.332870,-0.922331,-0.196223,0.710325,0.032750,-0.587500,
-       0.072467,-0.997371,-0.000000,0.679568,0.022087,-0.500000,
-       0.332870,-0.922331,-0.196223,0.710325,0.032750,-0.587500,
-       0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.582500,
-       0.740764,-0.671765,-0.000000,0.747335,0.045755,-0.500000,
+       0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+       0.21248,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
+       0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+       0.389749,-0.920921,0,0.725378,0.028862,-0.5,
+       0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+       0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+       0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+       0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.5825,
+       0.740764,-0.671765,0,0.747335,0.045755,-0.5,
        0.789459,-0.545462,-0.281469,0.731601,0.048967,-0.595444,
-       0.332870,-0.922331,-0.196223,0.710325,0.032750,-0.587500,
-       0.740764,-0.671765,-0.000000,0.747335,0.045755,-0.500000,
-       0.332870,-0.922331,-0.196223,0.710325,0.032750,-0.587500,
-       0.389749,-0.920921,0.000000,0.725378,0.028862,-0.500000,
+       0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+       0.740764,-0.671765,0,0.747335,0.045755,-0.5,
+       0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
+       0.389749,-0.920921,0,0.725378,0.028862,-0.5,
        0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
-       0.212480,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
-       0.332870,-0.922331,-0.196223,0.710325,0.032750,-0.587500,
+       0.21248,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
+       0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
        0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
-       0.332870,-0.922331,-0.196223,0.710325,0.032750,-0.587500,
+       0.33287,-0.922331,-0.196223,0.710325,0.03275,-0.5875,
        0.789459,-0.545462,-0.281469,0.731601,0.048967,-0.595444,
        0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
-       0.212480,-0.884802,0.414702,0.666096,0.041783,-0.339125,
-       0.332870,-0.922331,0.196223,0.710325,0.032750,-0.412500,
+       0.21248,-0.884802,0.414702,0.666096,0.041783,-0.339125,
+       0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
        0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
-       0.332870,-0.922331,0.196223,0.710325,0.032750,-0.412500,
-       0.015839,-0.994833,0.100277,0.667212,0.026513,-0.417500,
+       0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+       0.015839,-0.994833,0.100277,0.667212,0.026513,-0.4175,
        0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
-       0.789460,-0.545462,0.281469,0.731601,0.048967,-0.404556,
-       0.332870,-0.922331,0.196223,0.710325,0.032750,-0.412500,
+       0.78946,-0.545462,0.281469,0.731601,0.048967,-0.404556,
+       0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
        0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
-       0.332870,-0.922331,0.196223,0.710325,0.032750,-0.412500,
-       0.212480,-0.884802,0.414702,0.666096,0.041783,-0.339125,
-       0.740764,-0.671765,-0.000000,0.747335,0.045755,-0.500000,
-       0.389749,-0.920921,0.000000,0.725378,0.028862,-0.500000,
-       0.332870,-0.922331,0.196223,0.710325,0.032750,-0.412500,
-       0.740764,-0.671765,-0.000000,0.747335,0.045755,-0.500000,
-       0.332870,-0.922331,0.196223,0.710325,0.032750,-0.412500,
-       0.789460,-0.545462,0.281469,0.731601,0.048967,-0.404556,
-       0.072467,-0.997371,-0.000000,0.679568,0.022087,-0.500000,
-       0.015839,-0.994833,0.100277,0.667212,0.026513,-0.417500,
-       0.332870,-0.922331,0.196223,0.710325,0.032750,-0.412500,
-       0.072467,-0.997371,-0.000000,0.679568,0.022087,-0.500000,
-       0.332870,-0.922331,0.196223,0.710325,0.032750,-0.412500,
-       0.389749,-0.920921,0.000000,0.725378,0.028862,-0.500000,
+       0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+       0.21248,-0.884802,0.414702,0.666096,0.041783,-0.339125,
+       0.740764,-0.671765,0,0.747335,0.045755,-0.5,
+       0.389749,-0.920921,0,0.725378,0.028862,-0.5,
+       0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+       0.740764,-0.671765,0,0.747335,0.045755,-0.5,
+       0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+       0.78946,-0.545462,0.281469,0.731601,0.048967,-0.404556,
+       0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+       0.015839,-0.994833,0.100277,0.667212,0.026513,-0.4175,
+       0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+       0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+       0.33287,-0.922331,0.196223,0.710325,0.03275,-0.4125,
+       0.389749,-0.920921,0,0.725378,0.028862,-0.5,
        0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
-       0.677454,-0.266400,-0.685629,0.704261,0.116939,-0.673147,
-       0.344586,-0.098997,-0.933520,0.631969,0.136095,-0.720369,
-       0.344586,-0.098997,-0.933520,0.631969,0.136095,-0.720369,
-       0.338241,-0.103362,-0.935366,0.617440,0.099959,-0.724648,
+       0.677454,-0.2664,-0.685629,0.704261,0.116939,-0.673147,
+       0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
+       0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
+       0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
        0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
        0.013842,0.059444,-0.998136,0.545218,0.159081,-0.736109,
        0.007661,0.031192,-0.999484,0.525128,0.119312,-0.740694,
-       0.338241,-0.103362,-0.935366,0.617440,0.099959,-0.724648,
+       0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
        0.013842,0.059444,-0.998136,0.545218,0.159081,-0.736109,
-       0.338241,-0.103362,-0.935366,0.617440,0.099959,-0.724648,
-       0.344586,-0.098997,-0.933520,0.631969,0.136095,-0.720369,
+       0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
+       0.344586,-0.098997,-0.93352,0.631969,0.136095,-0.720369,
        0.007661,0.031192,-0.999484,0.525128,0.119312,-0.740694,
-       -0.097470,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+       -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
        0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
        0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
-       0.338241,-0.103362,-0.935366,0.617440,0.099959,-0.724648,
+       0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
        0.007661,0.031192,-0.999484,0.525128,0.119312,-0.740694,
        0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
        0.691984,-0.189259,-0.696663,0.694366,0.083832,-0.676509,
-       0.338241,-0.103362,-0.935366,0.617440,0.099959,-0.724648,
+       0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
        0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
-       0.338241,-0.103362,-0.935366,0.617440,0.099959,-0.724648,
+       0.338241,-0.103362,-0.935366,0.61744,0.099959,-0.724648,
        0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
        -0.603758,0.432599,-0.669577,0.386176,0.201223,-0.673147,
        -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
@@ -1375,17 +1375,17 @@ static const float data[]={
        -0.317034,0.182994,-0.930593,0.432817,0.138665,-0.724648,
        -0.304433,0.241938,-0.921296,0.458468,0.182068,-0.720369,
        -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
-       -0.720224,-0.155940,-0.675988,0.342054,0.121167,-0.675096,
-       -0.440529,-0.240650,-0.864882,0.419921,0.106487,-0.723162,
-       -0.440529,-0.240650,-0.864882,0.419921,0.106487,-0.723162,
+       -0.720224,-0.15594,-0.675988,0.342054,0.121167,-0.675096,
+       -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
+       -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
        -0.317034,0.182994,-0.930593,0.432817,0.138665,-0.724648,
        -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
-       -0.097470,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+       -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
        0.007661,0.031192,-0.999484,0.525128,0.119312,-0.740694,
        -0.317034,0.182994,-0.930593,0.432817,0.138665,-0.724648,
-       -0.097470,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+       -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
        -0.317034,0.182994,-0.930593,0.432817,0.138665,-0.724648,
-       -0.440529,-0.240650,-0.864882,0.419921,0.106487,-0.723162,
+       -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
        0.007661,0.031192,-0.999484,0.525128,0.119312,-0.740694,
        0.013842,0.059444,-0.998136,0.545218,0.159081,-0.736109,
        -0.304433,0.241938,-0.921296,0.458468,0.182068,-0.720369,
@@ -1396,146 +1396,146 @@ static const float data[]={
        -0.364711,-0.913648,-0.179534,0.369306,0.083596,-0.638667,
        -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
        -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
-       -0.320720,-0.774629,-0.545059,0.421284,0.083716,-0.706000,
+       -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
        -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
-       -0.168375,-0.954904,-0.244557,0.504703,0.052920,-0.677562,
-       -0.143026,-0.807920,-0.571672,0.507243,0.067325,-0.721500,
-       -0.320720,-0.774629,-0.545059,0.421284,0.083716,-0.706000,
-       -0.168375,-0.954904,-0.244557,0.504703,0.052920,-0.677562,
-       -0.320720,-0.774629,-0.545059,0.421284,0.083716,-0.706000,
+       -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
+       -0.143026,-0.80792,-0.571672,0.507243,0.067325,-0.7215,
+       -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
+       -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
+       -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
        -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
-       -0.097470,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
-       -0.440529,-0.240650,-0.864882,0.419921,0.106487,-0.723162,
-       -0.320720,-0.774629,-0.545059,0.421284,0.083716,-0.706000,
-       -0.097470,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
-       -0.320720,-0.774629,-0.545059,0.421284,0.083716,-0.706000,
-       -0.143026,-0.807920,-0.571672,0.507243,0.067325,-0.721500,
-       -0.440529,-0.240650,-0.864882,0.419921,0.106487,-0.723162,
-       -0.720224,-0.155940,-0.675988,0.342054,0.121167,-0.675096,
+       -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+       -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
+       -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
+       -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+       -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
+       -0.143026,-0.80792,-0.571672,0.507243,0.067325,-0.7215,
+       -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
+       -0.720224,-0.15594,-0.675988,0.342054,0.121167,-0.675096,
        -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
        -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
-       -0.320720,-0.774629,-0.545059,0.421284,0.083716,-0.706000,
-       -0.440529,-0.240650,-0.864882,0.419921,0.106487,-0.723162,
+       -0.32072,-0.774629,-0.545059,0.421284,0.083716,-0.706,
+       -0.440529,-0.24065,-0.864882,0.419921,0.106487,-0.723162,
        0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
-       0.212480,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
-       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706000,
+       0.21248,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
+       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
        0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
-       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706000,
-       -0.070895,-0.979540,-0.188350,0.586334,0.040774,-0.664625,
-       0.212480,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
+       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+       -0.070895,-0.97954,-0.18835,0.586334,0.040774,-0.664625,
+       0.21248,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
        0.570751,-0.537595,-0.620672,0.684631,0.057942,-0.675096,
        0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
        0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
-       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706000,
-       0.212480,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
-       -0.097470,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
-       -0.143026,-0.807920,-0.571672,0.507243,0.067325,-0.721500,
-       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706000,
-       -0.097470,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
-       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706000,
+       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+       0.21248,-0.884802,-0.414701,0.666096,0.041783,-0.660875,
+       -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+       -0.143026,-0.80792,-0.571672,0.507243,0.067325,-0.7215,
+       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+       -0.09747,-0.388654,-0.916214,0.513237,0.088956,-0.739298,
+       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
        0.227406,-0.473471,-0.850947,0.606658,0.072023,-0.723162,
-       -0.168375,-0.954904,-0.244557,0.504703,0.052920,-0.677562,
-       -0.070895,-0.979540,-0.188350,0.586334,0.040774,-0.664625,
-       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706000,
-       -0.168375,-0.954904,-0.244557,0.504703,0.052920,-0.677562,
-       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706000,
-       -0.143026,-0.807920,-0.571672,0.507243,0.067325,-0.721500,
+       -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
+       -0.070895,-0.97954,-0.18835,0.586334,0.040774,-0.664625,
+       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+       -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
+       0.024087,-0.872904,-0.487296,0.593625,0.053327,-0.706,
+       -0.143026,-0.80792,-0.571672,0.507243,0.067325,-0.7215,
        -0.603758,0.432599,-0.669577,0.386176,0.201223,-0.673147,
-       -0.779710,0.541974,-0.313555,0.342801,0.212716,-0.594444,
-       -0.828821,0.454880,-0.325791,0.309735,0.164469,-0.596277,
+       -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+       -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
        -0.603758,0.432599,-0.669577,0.386176,0.201223,-0.673147,
-       -0.828821,0.454880,-0.325791,0.309735,0.164469,-0.596277,
+       -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
        -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
-       -0.779710,0.541974,-0.313555,0.342801,0.212716,-0.594444,
-       -0.820475,0.571682,0.000000,0.328343,0.216547,-0.500000,
-       -0.857982,0.513680,-0.000000,0.294350,0.167695,-0.500000,
-       -0.857982,0.513680,-0.000000,0.294350,0.167695,-0.500000,
-       -0.828821,0.454880,-0.325791,0.309735,0.164469,-0.596277,
-       -0.779710,0.541974,-0.313555,0.342801,0.212716,-0.594444,
-       -0.999967,0.008167,0.000000,0.279139,0.132156,-0.500000,
+       -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+       -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+       -0.857982,0.51368,0,0.29435,0.167695,-0.5,
+       -0.857982,0.51368,0,0.29435,0.167695,-0.5,
+       -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
+       -0.77971,0.541974,-0.313555,0.342801,0.212716,-0.594444,
+       -0.999967,0.008167,0,0.279139,0.132156,-0.5,
        -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
-       -0.828821,0.454880,-0.325791,0.309735,0.164469,-0.596277,
-       -0.999967,0.008167,0.000000,0.279139,0.132156,-0.500000,
-       -0.828821,0.454880,-0.325791,0.309735,0.164469,-0.596277,
-       -0.857982,0.513680,-0.000000,0.294350,0.167695,-0.500000,
+       -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
+       -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+       -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
+       -0.857982,0.51368,0,0.29435,0.167695,-0.5,
        -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
-       -0.720224,-0.155940,-0.675988,0.342054,0.121167,-0.675096,
+       -0.720224,-0.15594,-0.675988,0.342054,0.121167,-0.675096,
        -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
        -0.649491,0.313781,-0.692606,0.355891,0.154793,-0.676509,
-       -0.828821,0.454880,-0.325791,0.309735,0.164469,-0.596277,
+       -0.828821,0.45488,-0.325791,0.309735,0.164469,-0.596277,
        -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
        -0.603758,0.432599,0.669577,0.386176,0.201223,-0.326853,
        -0.649491,0.313782,0.692606,0.355891,0.154793,-0.323491,
        -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
        -0.603758,0.432599,0.669577,0.386176,0.201223,-0.326853,
        -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
-       -0.779710,0.541974,0.313555,0.342801,0.212716,-0.405556,
+       -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
        -0.649491,0.313782,0.692606,0.355891,0.154793,-0.323491,
        -0.720224,-0.155939,0.675988,0.342054,0.121167,-0.324904,
        -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
        -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
        -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
        -0.649491,0.313782,0.692606,0.355891,0.154793,-0.323491,
-       -0.999967,0.008167,0.000000,0.279139,0.132156,-0.500000,
-       -0.857982,0.513680,-0.000000,0.294350,0.167695,-0.500000,
+       -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+       -0.857982,0.51368,0,0.29435,0.167695,-0.5,
        -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
-       -0.999967,0.008167,0.000000,0.279139,0.132156,-0.500000,
+       -0.999967,0.008167,0,0.279139,0.132156,-0.5,
        -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
        -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
-       -0.857982,0.513680,-0.000000,0.294350,0.167695,-0.500000,
-       -0.820475,0.571682,0.000000,0.328343,0.216547,-0.500000,
-       -0.779710,0.541974,0.313555,0.342801,0.212716,-0.405556,
-       -0.779710,0.541974,0.313555,0.342801,0.212716,-0.405556,
+       -0.857982,0.51368,0,0.29435,0.167695,-0.5,
+       -0.820475,0.571682,0,0.328343,0.216547,-0.5,
+       -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
+       -0.77971,0.541974,0.313555,0.342801,0.212716,-0.405556,
        -0.828821,0.454881,0.325791,0.309735,0.164469,-0.403722,
-       -0.857982,0.513680,-0.000000,0.294350,0.167695,-0.500000,
+       -0.857982,0.51368,0,0.29435,0.167695,-0.5,
        -0.364711,-0.913648,0.179534,0.369306,0.083596,-0.361333,
-       -0.355137,-0.929420,0.100277,0.342964,0.083687,-0.417500,
-       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.412500,
+       -0.355137,-0.92942,0.100277,0.342964,0.083687,-0.4175,
+       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
        -0.364711,-0.913648,0.179534,0.369306,0.083596,-0.361333,
-       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.412500,
+       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
        -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
-       -0.409218,-0.912437,0.000000,0.329838,0.083754,-0.500000,
-       -0.751750,-0.659448,0.000000,0.289108,0.105788,-0.500000,
-       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.412500,
-       -0.409218,-0.912437,0.000000,0.329838,0.083754,-0.500000,
-       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.412500,
-       -0.355137,-0.929420,0.100277,0.342964,0.083687,-0.417500,
-       -0.999967,0.008167,0.000000,0.279139,0.132156,-0.500000,
+       -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+       -0.75175,-0.659448,0,0.289108,0.105788,-0.5,
+       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
+       -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
+       -0.355137,-0.92942,0.100277,0.342964,0.083687,-0.4175,
+       -0.999967,0.008167,0,0.279139,0.132156,-0.5,
        -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
-       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.412500,
-       -0.999967,0.008167,0.000000,0.279139,0.132156,-0.500000,
-       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.412500,
-       -0.751750,-0.659448,0.000000,0.289108,0.105788,-0.500000,
+       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
+       -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
+       -0.75175,-0.659448,0,0.289108,0.105788,-0.5,
        -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
        -0.720224,-0.155939,0.675988,0.342054,0.121167,-0.324904,
        -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
        -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
-       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.412500,
+       -0.672934,-0.714357,0.191973,0.304584,0.104293,-0.4125,
        -0.916555,-0.053852,0.396267,0.294978,0.129544,-0.404556,
        -0.364711,-0.913648,-0.179534,0.369306,0.083596,-0.638667,
        -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
-       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.587500,
+       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
        -0.364711,-0.913648,-0.179534,0.369306,0.083596,-0.638667,
-       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.587500,
-       -0.355137,-0.929420,-0.100277,0.342964,0.083687,-0.582500,
+       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
+       -0.355137,-0.92942,-0.100277,0.342964,0.083687,-0.5825,
        -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
-       -0.720224,-0.155940,-0.675988,0.342054,0.121167,-0.675096,
+       -0.720224,-0.15594,-0.675988,0.342054,0.121167,-0.675096,
        -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
        -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
-       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.587500,
+       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
        -0.560128,-0.705465,-0.434253,0.349234,0.097654,-0.660875,
-       -0.999967,0.008167,0.000000,0.279139,0.132156,-0.500000,
-       -0.751750,-0.659448,0.000000,0.289108,0.105788,-0.500000,
-       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.587500,
-       -0.999967,0.008167,0.000000,0.279139,0.132156,-0.500000,
-       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.587500,
+       -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+       -0.75175,-0.659448,0,0.289108,0.105788,-0.5,
+       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
+       -0.999967,0.008167,0,0.279139,0.132156,-0.5,
+       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
        -0.916555,-0.053852,-0.396267,0.294978,0.129544,-0.595444,
-       -0.409218,-0.912437,0.000000,0.329838,0.083754,-0.500000,
-       -0.355137,-0.929420,-0.100277,0.342964,0.083687,-0.582500,
-       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.587500,
-       -0.409218,-0.912437,0.000000,0.329838,0.083754,-0.500000,
-       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.587500,
-       -0.751750,-0.659448,0.000000,0.289108,0.105788,-0.500000,
+       -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+       -0.355137,-0.92942,-0.100277,0.342964,0.083687,-0.5825,
+       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
+       -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+       -0.672934,-0.714357,-0.191973,0.304584,0.104293,-0.5875,
+       -0.75175,-0.659448,0,0.289108,0.105788,-0.5,
        -0.603758,0.432599,0.669577,0.386176,0.201223,-0.326853,
        -0.304433,0.241938,0.921296,0.458468,0.182068,-0.279631,
        -0.317035,0.182994,0.930592,0.432817,0.138665,-0.275352,
@@ -1548,186 +1548,186 @@ static const float data[]={
        0.007661,0.031192,0.999484,0.525128,0.119312,-0.259306,
        -0.317035,0.182994,0.930592,0.432817,0.138665,-0.275352,
        -0.304433,0.241938,0.921296,0.458468,0.182068,-0.279631,
-       -0.097470,-0.388653,0.916214,0.513237,0.088956,-0.260702,
-       -0.440530,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+       -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+       -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
        -0.317035,0.182994,0.930592,0.432817,0.138665,-0.275352,
-       -0.097470,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+       -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
        -0.317035,0.182994,0.930592,0.432817,0.138665,-0.275352,
        0.007661,0.031192,0.999484,0.525128,0.119312,-0.259306,
-       -0.440530,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+       -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
        -0.720224,-0.155939,0.675988,0.342054,0.121167,-0.324904,
        -0.649491,0.313782,0.692606,0.355891,0.154793,-0.323491,
        -0.649491,0.313782,0.692606,0.355891,0.154793,-0.323491,
        -0.317035,0.182994,0.930592,0.432817,0.138665,-0.275352,
-       -0.440530,-0.240649,0.864882,0.419921,0.106487,-0.276838,
-       0.344586,-0.098997,0.933520,0.631969,0.136095,-0.279631,
-       0.677454,-0.266400,0.685629,0.704261,0.116939,-0.326853,
+       -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+       0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
+       0.677454,-0.2664,0.685629,0.704261,0.116939,-0.326853,
        0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
        0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
-       0.338242,-0.103362,0.935366,0.617440,0.099959,-0.275352,
-       0.344586,-0.098997,0.933520,0.631969,0.136095,-0.279631,
+       0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
+       0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
        0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
        0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
-       0.338242,-0.103362,0.935366,0.617440,0.099959,-0.275352,
+       0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
        0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
-       0.338242,-0.103362,0.935366,0.617440,0.099959,-0.275352,
+       0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
        0.691984,-0.189259,0.696663,0.694366,0.083832,-0.323491,
        0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
-       -0.097470,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+       -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
        0.007661,0.031192,0.999484,0.525128,0.119312,-0.259306,
        0.007661,0.031192,0.999484,0.525128,0.119312,-0.259306,
-       0.338242,-0.103362,0.935366,0.617440,0.099959,-0.275352,
+       0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
        0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
        0.013842,0.059444,0.998136,0.545218,0.159081,-0.263891,
-       0.344586,-0.098997,0.933520,0.631969,0.136095,-0.279631,
-       0.338242,-0.103362,0.935366,0.617440,0.099959,-0.275352,
+       0.344586,-0.098997,0.93352,0.631969,0.136095,-0.279631,
+       0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
        0.013842,0.059444,0.998136,0.545218,0.159081,-0.263891,
-       0.338242,-0.103362,0.935366,0.617440,0.099959,-0.275352,
+       0.338242,-0.103362,0.935366,0.61744,0.099959,-0.275352,
        0.007661,0.031192,0.999484,0.525128,0.119312,-0.259306,
        0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
-       -0.070895,-0.979540,0.188349,0.586334,0.040774,-0.335375,
-       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294000,
+       -0.070895,-0.97954,0.188349,0.586334,0.040774,-0.335375,
+       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
        0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
-       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294000,
-       0.212480,-0.884802,0.414702,0.666096,0.041783,-0.339125,
-       -0.168376,-0.954904,0.244557,0.504703,0.052920,-0.322437,
-       -0.143026,-0.807920,0.571672,0.507243,0.067325,-0.278500,
-       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294000,
-       -0.168376,-0.954904,0.244557,0.504703,0.052920,-0.322437,
-       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294000,
-       -0.070895,-0.979540,0.188349,0.586334,0.040774,-0.335375,
-       -0.097470,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+       0.21248,-0.884802,0.414702,0.666096,0.041783,-0.339125,
+       -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
+       -0.143026,-0.80792,0.571672,0.507243,0.067325,-0.2785,
+       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+       -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
+       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+       -0.070895,-0.97954,0.188349,0.586334,0.040774,-0.335375,
+       -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
        0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
-       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294000,
-       -0.097470,-0.388653,0.916214,0.513237,0.088956,-0.260702,
-       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294000,
-       -0.143026,-0.807920,0.571672,0.507243,0.067325,-0.278500,
+       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+       -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
+       -0.143026,-0.80792,0.571672,0.507243,0.067325,-0.2785,
        0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
        0.570752,-0.537595,0.620673,0.684631,0.057942,-0.324904,
-       0.212480,-0.884802,0.414702,0.666096,0.041783,-0.339125,
-       0.212480,-0.884802,0.414702,0.666096,0.041783,-0.339125,
-       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294000,
+       0.21248,-0.884802,0.414702,0.666096,0.041783,-0.339125,
+       0.21248,-0.884802,0.414702,0.666096,0.041783,-0.339125,
+       0.024087,-0.872904,0.487296,0.593625,0.053327,-0.294,
        0.227406,-0.473471,0.850948,0.606658,0.072023,-0.276838,
        -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
        -0.364711,-0.913648,0.179534,0.369306,0.083596,-0.361333,
        -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
        -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
-       -0.320720,-0.774629,0.545059,0.421284,0.083716,-0.294000,
+       -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
        -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
        -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
        -0.720224,-0.155939,0.675988,0.342054,0.121167,-0.324904,
-       -0.440530,-0.240649,0.864882,0.419921,0.106487,-0.276838,
-       -0.440530,-0.240649,0.864882,0.419921,0.106487,-0.276838,
-       -0.320720,-0.774629,0.545059,0.421284,0.083716,-0.294000,
+       -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+       -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+       -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
        -0.560128,-0.705466,0.434252,0.349234,0.097654,-0.339125,
-       -0.097470,-0.388653,0.916214,0.513237,0.088956,-0.260702,
-       -0.143026,-0.807920,0.571672,0.507243,0.067325,-0.278500,
-       -0.320720,-0.774629,0.545059,0.421284,0.083716,-0.294000,
-       -0.097470,-0.388653,0.916214,0.513237,0.088956,-0.260702,
-       -0.320720,-0.774629,0.545059,0.421284,0.083716,-0.294000,
-       -0.440530,-0.240649,0.864882,0.419921,0.106487,-0.276838,
-       -0.168376,-0.954904,0.244557,0.504703,0.052920,-0.322437,
+       -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+       -0.143026,-0.80792,0.571672,0.507243,0.067325,-0.2785,
+       -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
+       -0.09747,-0.388653,0.916214,0.513237,0.088956,-0.260702,
+       -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
+       -0.44053,-0.240649,0.864882,0.419921,0.106487,-0.276838,
+       -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
        -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
-       -0.320720,-0.774629,0.545059,0.421284,0.083716,-0.294000,
-       -0.168376,-0.954904,0.244557,0.504703,0.052920,-0.322437,
-       -0.320720,-0.774629,0.545059,0.421284,0.083716,-0.294000,
-       -0.143026,-0.807920,0.571672,0.507243,0.067325,-0.278500,
+       -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
+       -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
+       -0.32072,-0.774629,0.545059,0.421284,0.083716,-0.294,
+       -0.143026,-0.80792,0.571672,0.507243,0.067325,-0.2785,
        0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
-       -0.070895,-0.979540,-0.188350,0.586334,0.040774,-0.664625,
-       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.590500,
+       -0.070895,-0.97954,-0.18835,0.586334,0.040774,-0.664625,
+       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
        0.029695,-0.979483,-0.199329,0.642426,0.035438,-0.638667,
-       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.590500,
-       0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.582500,
-       -0.070895,-0.979540,-0.188350,0.586334,0.040774,-0.664625,
-       -0.168375,-0.954904,-0.244557,0.504703,0.052920,-0.677562,
-       -0.173020,-0.981247,-0.084960,0.503173,0.044243,-0.597750,
-       -0.173020,-0.981247,-0.084960,0.503173,0.044243,-0.597750,
-       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.590500,
-       -0.070895,-0.979540,-0.188350,0.586334,0.040774,-0.664625,
-       -0.173648,-0.984808,0.000000,0.502661,0.041337,-0.500000,
-       -0.089351,-0.996000,0.000000,0.599438,0.027269,-0.500000,
-       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.590500,
-       -0.173648,-0.984808,0.000000,0.502661,0.041337,-0.500000,
-       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.590500,
-       -0.173020,-0.981247,-0.084960,0.503173,0.044243,-0.597750,
-       -0.089351,-0.996000,0.000000,0.599438,0.027269,-0.500000,
-       0.072467,-0.997371,-0.000000,0.679568,0.022087,-0.500000,
-       0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.582500,
-       0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.582500,
-       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.590500,
-       -0.089351,-0.996000,0.000000,0.599438,0.027269,-0.500000,
+       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
+       0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.5825,
+       -0.070895,-0.97954,-0.18835,0.586334,0.040774,-0.664625,
+       -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
+       -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
+       -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
+       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
+       -0.070895,-0.97954,-0.18835,0.586334,0.040774,-0.664625,
+       -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+       -0.089351,-0.996,0,0.599438,0.027269,-0.5,
+       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
+       -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
+       -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
+       -0.089351,-0.996,0,0.599438,0.027269,-0.5,
+       0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+       0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.5825,
+       0.015839,-0.994833,-0.100277,0.667212,0.026513,-0.5825,
+       -0.094013,-0.992373,-0.079739,0.592781,0.031264,-0.5905,
+       -0.089351,-0.996,0,0.599438,0.027269,-0.5,
        -0.364711,-0.913648,-0.179534,0.369306,0.083596,-0.638667,
-       -0.355137,-0.929420,-0.100277,0.342964,0.083687,-0.582500,
-       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.590500,
+       -0.355137,-0.92942,-0.100277,0.342964,0.083687,-0.5825,
+       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
        -0.364711,-0.913648,-0.179534,0.369306,0.083596,-0.638667,
-       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.590500,
+       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
        -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
-       -0.355137,-0.929420,-0.100277,0.342964,0.083687,-0.582500,
-       -0.409218,-0.912437,0.000000,0.329838,0.083754,-0.500000,
-       -0.256690,-0.966494,0.000000,0.406908,0.061217,-0.500000,
-       -0.256690,-0.966494,0.000000,0.406908,0.061217,-0.500000,
-       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.590500,
-       -0.355137,-0.929420,-0.100277,0.342964,0.083687,-0.582500,
-       -0.173648,-0.984808,0.000000,0.502661,0.041337,-0.500000,
-       -0.173020,-0.981247,-0.084960,0.503173,0.044243,-0.597750,
-       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.590500,
-       -0.173648,-0.984808,0.000000,0.502661,0.041337,-0.500000,
-       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.590500,
-       -0.256690,-0.966494,0.000000,0.406908,0.061217,-0.500000,
-       -0.173020,-0.981247,-0.084960,0.503173,0.044243,-0.597750,
-       -0.168375,-0.954904,-0.244557,0.504703,0.052920,-0.677562,
+       -0.355137,-0.92942,-0.100277,0.342964,0.083687,-0.5825,
+       -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+       -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
+       -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
+       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
+       -0.355137,-0.92942,-0.100277,0.342964,0.083687,-0.5825,
+       -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+       -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
+       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
+       -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
+       -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
+       -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
+       -0.168375,-0.954904,-0.244557,0.504703,0.05292,-0.677562,
        -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
        -0.280571,-0.938896,-0.199385,0.423841,0.069426,-0.664625,
-       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.590500,
-       -0.173020,-0.981247,-0.084960,0.503173,0.044243,-0.597750,
+       -0.251068,-0.964679,-0.079739,0.414531,0.062694,-0.5905,
+       -0.17302,-0.981247,-0.08496,0.503173,0.044243,-0.59775,
        -0.364711,-0.913648,0.179534,0.369306,0.083596,-0.361333,
        -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
-       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.409500,
+       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
        -0.364711,-0.913648,0.179534,0.369306,0.083596,-0.361333,
-       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.409500,
-       -0.355137,-0.929420,0.100277,0.342964,0.083687,-0.417500,
+       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
+       -0.355137,-0.92942,0.100277,0.342964,0.083687,-0.4175,
        -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
-       -0.168376,-0.954904,0.244557,0.504703,0.052920,-0.322437,
-       -0.173020,-0.981247,0.084960,0.503173,0.044243,-0.402250,
-       -0.173020,-0.981247,0.084960,0.503173,0.044243,-0.402250,
-       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.409500,
+       -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
+       -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
+       -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
+       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
        -0.280571,-0.938896,0.199385,0.423841,0.069426,-0.335375,
-       -0.173648,-0.984808,0.000000,0.502661,0.041337,-0.500000,
-       -0.256690,-0.966494,0.000000,0.406908,0.061217,-0.500000,
-       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.409500,
-       -0.173648,-0.984808,0.000000,0.502661,0.041337,-0.500000,
-       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.409500,
-       -0.173020,-0.981247,0.084960,0.503173,0.044243,-0.402250,
-       -0.256690,-0.966494,0.000000,0.406908,0.061217,-0.500000,
-       -0.409218,-0.912437,0.000000,0.329838,0.083754,-0.500000,
-       -0.355137,-0.929420,0.100277,0.342964,0.083687,-0.417500,
-       -0.355137,-0.929420,0.100277,0.342964,0.083687,-0.417500,
-       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.409500,
-       -0.256690,-0.966494,0.000000,0.406908,0.061217,-0.500000,
+       -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+       -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
+       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
+       -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
+       -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
+       -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
+       -0.409218,-0.912437,0,0.329838,0.083754,-0.5,
+       -0.355137,-0.92942,0.100277,0.342964,0.083687,-0.4175,
+       -0.355137,-0.92942,0.100277,0.342964,0.083687,-0.4175,
+       -0.251068,-0.964679,0.079739,0.414531,0.062694,-0.4095,
+       -0.25669,-0.966494,0,0.406908,0.061217,-0.5,
        0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
-       0.015839,-0.994833,0.100277,0.667212,0.026513,-0.417500,
-       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.409500,
+       0.015839,-0.994833,0.100277,0.667212,0.026513,-0.4175,
+       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
        0.029695,-0.979483,0.199329,0.642426,0.035438,-0.361333,
-       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.409500,
-       -0.070895,-0.979540,0.188349,0.586334,0.040774,-0.335375,
-       0.015839,-0.994833,0.100277,0.667212,0.026513,-0.417500,
-       0.072467,-0.997371,-0.000000,0.679568,0.022087,-0.500000,
-       -0.089351,-0.996000,0.000000,0.599438,0.027269,-0.500000,
-       -0.089351,-0.996000,0.000000,0.599438,0.027269,-0.500000,
-       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.409500,
-       0.015839,-0.994833,0.100277,0.667212,0.026513,-0.417500,
-       -0.173648,-0.984808,0.000000,0.502661,0.041337,-0.500000,
-       -0.173020,-0.981247,0.084960,0.503173,0.044243,-0.402250,
-       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.409500,
-       -0.173648,-0.984808,0.000000,0.502661,0.041337,-0.500000,
-       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.409500,
-       -0.089351,-0.996000,0.000000,0.599438,0.027269,-0.500000,
-       -0.173020,-0.981247,0.084960,0.503173,0.044243,-0.402250,
-       -0.168376,-0.954904,0.244557,0.504703,0.052920,-0.322437,
-       -0.070895,-0.979540,0.188349,0.586334,0.040774,-0.335375,
-       -0.070895,-0.979540,0.188349,0.586334,0.040774,-0.335375,
-       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.409500,
-       -0.173020,-0.981247,0.084960,0.503173,0.044243,-0.402250,
+       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
+       -0.070895,-0.97954,0.188349,0.586334,0.040774,-0.335375,
+       0.015839,-0.994833,0.100277,0.667212,0.026513,-0.4175,
+       0.072467,-0.997371,0,0.679568,0.022087,-0.5,
+       -0.089351,-0.996,0,0.599438,0.027269,-0.5,
+       -0.089351,-0.996,0,0.599438,0.027269,-0.5,
+       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
+       0.015839,-0.994833,0.100277,0.667212,0.026513,-0.4175,
+       -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+       -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
+       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
+       -0.173648,-0.984808,0,0.502661,0.041337,-0.5,
+       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
+       -0.089351,-0.996,0,0.599438,0.027269,-0.5,
+       -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
+       -0.168376,-0.954904,0.244557,0.504703,0.05292,-0.322437,
+       -0.070895,-0.97954,0.188349,0.586334,0.040774,-0.335375,
+       -0.070895,-0.97954,0.188349,0.586334,0.040774,-0.335375,
+       -0.094013,-0.992373,0.079739,0.592781,0.031264,-0.4095,
+       -0.17302,-0.981247,0.08496,0.503173,0.044243,-0.40225,
 };
 static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
 const struct gllist *s1_3=&frame;
index 2192605734aad4deb9ae084ef30a8f9236419c0a..397412d6c19d941b63b872388127461345f93d44 100644 (file)
@@ -6,18 +6,18 @@ static const float data[]={
        -0.858311,-0.411605,-0.306404,1.208797,0.050229,-0.589491,
        -0.802735,-0.496752,-0.329932,1.231827,0.004686,-0.594296,
        -0.632405,-0.365743,-0.682858,1.262105,0.039911,-0.672877,
-       -0.900624,-0.434600,-0.000000,1.199875,0.038989,-0.500000,
-       -0.829744,-0.558144,-0.000000,1.221734,-0.007055,-0.500000,
+       -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
+       -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
        -0.802735,-0.496752,-0.329932,1.231827,0.004686,-0.594296,
-       -0.900624,-0.434600,-0.000000,1.199875,0.038989,-0.500000,
+       -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
        -0.802735,-0.496752,-0.329932,1.231827,0.004686,-0.594296,
        -0.858311,-0.411605,-0.306404,1.208797,0.050229,-0.589491,
-       -0.829744,-0.558144,-0.000000,1.221734,-0.007055,-0.500000,
-       -0.372431,-0.928060,-0.000000,1.243033,-0.034453,-0.500000,
+       -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
+       -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
        -0.429143,-0.839931,-0.332192,1.253444,-0.022303,-0.594949,
        -0.429143,-0.839931,-0.332192,1.253444,-0.022303,-0.594949,
        -0.802735,-0.496752,-0.329932,1.231827,0.004686,-0.594296,
-       -0.829744,-0.558144,-0.000000,1.221734,-0.007055,-0.500000,
+       -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
        -0.342337,-0.675989,-0.652567,1.284897,0.013483,-0.674188,
        -0.632405,-0.365743,-0.682858,1.262105,0.039911,-0.672877,
        -0.802735,-0.496752,-0.329932,1.231827,0.004686,-0.594296,
@@ -37,501 +37,501 @@ static const float data[]={
        -0.802735,-0.496752,0.329932,1.231827,0.004686,-0.405704,
        -0.632405,-0.365743,0.682858,1.262105,0.039911,-0.327123,
        -0.429143,-0.839932,0.332191,1.253444,-0.022303,-0.405051,
-       -0.372431,-0.928060,-0.000000,1.243033,-0.034453,-0.500000,
-       -0.829744,-0.558144,-0.000000,1.221734,-0.007055,-0.500000,
-       -0.829744,-0.558144,-0.000000,1.221734,-0.007055,-0.500000,
+       -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
+       -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
+       -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
        -0.802735,-0.496752,0.329932,1.231827,0.004686,-0.405704,
        -0.429143,-0.839932,0.332191,1.253444,-0.022303,-0.405051,
-       -0.900624,-0.434600,-0.000000,1.199875,0.038989,-0.500000,
+       -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
        -0.858311,-0.411604,0.306404,1.208797,0.050229,-0.410509,
        -0.802735,-0.496752,0.329932,1.231827,0.004686,-0.405704,
-       -0.900624,-0.434600,-0.000000,1.199875,0.038989,-0.500000,
+       -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
        -0.802735,-0.496752,0.329932,1.231827,0.004686,-0.405704,
-       -0.829744,-0.558144,-0.000000,1.221734,-0.007055,-0.500000,
+       -0.829744,-0.558144,0,1.221734,-0.007055,-0.5,
        0.581551,-0.793452,0.179534,1.331736,0.017726,-0.361333,
-       0.600000,-0.793691,0.100277,1.317700,-0.004566,-0.417500,
-       0.266434,-0.945350,0.187955,1.279887,-0.026194,-0.412500,
+       0.6,-0.793691,0.100277,1.3177,-0.004566,-0.4175,
+       0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
        0.581551,-0.793452,0.179534,1.331736,0.017726,-0.361333,
-       0.266434,-0.945350,0.187955,1.279887,-0.026194,-0.412500,
+       0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
        0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
-       0.556938,-0.830554,0.000000,1.310688,-0.015661,-0.500000,
-       0.184945,-0.982749,0.000000,1.270418,-0.038526,-0.500000,
-       0.266434,-0.945350,0.187955,1.279887,-0.026194,-0.412500,
-       0.556938,-0.830554,0.000000,1.310688,-0.015661,-0.500000,
-       0.266434,-0.945350,0.187955,1.279887,-0.026194,-0.412500,
-       0.600000,-0.793691,0.100277,1.317700,-0.004566,-0.417500,
-       -0.372431,-0.928060,-0.000000,1.243033,-0.034453,-0.500000,
+       0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+       0.184945,-0.982749,0,1.270418,-0.038526,-0.5,
+       0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
+       0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+       0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
+       0.6,-0.793691,0.100277,1.3177,-0.004566,-0.4175,
+       -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
        -0.429143,-0.839932,0.332191,1.253444,-0.022303,-0.405051,
-       0.266434,-0.945350,0.187955,1.279887,-0.026194,-0.412500,
-       -0.372431,-0.928060,-0.000000,1.243033,-0.034453,-0.500000,
-       0.266434,-0.945350,0.187955,1.279887,-0.026194,-0.412500,
-       0.184945,-0.982749,0.000000,1.270418,-0.038526,-0.500000,
+       0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
+       -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
+       0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
+       0.184945,-0.982749,0,1.270418,-0.038526,-0.5,
        -0.429143,-0.839932,0.332191,1.253444,-0.022303,-0.405051,
        -0.342337,-0.675989,0.652567,1.284897,0.013483,-0.325812,
        0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
        0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
-       0.266434,-0.945350,0.187955,1.279887,-0.026194,-0.412500,
+       0.266434,-0.94535,0.187955,1.279887,-0.026194,-0.4125,
        -0.429143,-0.839932,0.332191,1.253444,-0.022303,-0.405051,
        0.581551,-0.793452,-0.179534,1.331736,0.017726,-0.638667,
        0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
-       0.266434,-0.945350,-0.187955,1.279887,-0.026194,-0.587500,
+       0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
        0.581551,-0.793452,-0.179534,1.331736,0.017726,-0.638667,
-       0.266434,-0.945350,-0.187955,1.279887,-0.026194,-0.587500,
-       0.600000,-0.793691,-0.100277,1.317700,-0.004566,-0.582500,
+       0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
+       0.6,-0.793691,-0.100277,1.3177,-0.004566,-0.5825,
        0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
        -0.342337,-0.675989,-0.652567,1.284897,0.013483,-0.674188,
        -0.429143,-0.839931,-0.332192,1.253444,-0.022303,-0.594949,
        -0.429143,-0.839931,-0.332192,1.253444,-0.022303,-0.594949,
-       0.266434,-0.945350,-0.187955,1.279887,-0.026194,-0.587500,
+       0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
        0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
-       -0.372431,-0.928060,-0.000000,1.243033,-0.034453,-0.500000,
-       0.184945,-0.982749,0.000000,1.270418,-0.038526,-0.500000,
-       0.266434,-0.945350,-0.187955,1.279887,-0.026194,-0.587500,
-       -0.372431,-0.928060,-0.000000,1.243033,-0.034453,-0.500000,
-       0.266434,-0.945350,-0.187955,1.279887,-0.026194,-0.587500,
+       -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
+       0.184945,-0.982749,0,1.270418,-0.038526,-0.5,
+       0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
+       -0.372431,-0.92806,0,1.243033,-0.034453,-0.5,
+       0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
        -0.429143,-0.839931,-0.332192,1.253444,-0.022303,-0.594949,
-       0.556938,-0.830554,0.000000,1.310688,-0.015661,-0.500000,
-       0.600000,-0.793691,-0.100277,1.317700,-0.004566,-0.582500,
-       0.266434,-0.945350,-0.187955,1.279887,-0.026194,-0.587500,
-       0.556938,-0.830554,0.000000,1.310688,-0.015661,-0.500000,
-       0.266434,-0.945350,-0.187955,1.279887,-0.026194,-0.587500,
-       0.184945,-0.982749,0.000000,1.270418,-0.038526,-0.500000,
+       0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+       0.6,-0.793691,-0.100277,1.3177,-0.004566,-0.5825,
+       0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
+       0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+       0.266434,-0.94535,-0.187955,1.279887,-0.026194,-0.5875,
+       0.184945,-0.982749,0,1.270418,-0.038526,-0.5,
        -0.695773,-0.304144,0.650689,1.235562,0.083949,-0.335934,
-       -0.420703,-0.107750,0.900777,1.280170,0.140150,-0.291188,
-       -0.363086,-0.142915,0.920730,1.312568,0.098620,-0.279975,
+       -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
+       -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
        -0.695773,-0.304144,0.650689,1.235562,0.083949,-0.335934,
-       -0.363086,-0.142915,0.920730,1.312568,0.098620,-0.279975,
+       -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
        -0.632405,-0.365743,0.682858,1.262105,0.039911,-0.327123,
-       -0.420703,-0.107750,0.900777,1.280170,0.140150,-0.291188,
-       -0.152737,0.118235,0.981169,1.333700,0.207591,-0.276273,
-       -0.107310,0.091019,0.990051,1.373124,0.169070,-0.264259,
-       -0.107310,0.091019,0.990051,1.373124,0.169070,-0.264259,
-       -0.363086,-0.142915,0.920730,1.312568,0.098620,-0.279975,
-       -0.420703,-0.107750,0.900777,1.280170,0.140150,-0.291188,
-       0.221822,-0.232839,0.946880,1.400739,0.142695,-0.261940,
+       -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
+       -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
+       -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
+       -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
+       -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
+       -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
+       0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
        -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
-       -0.363086,-0.142915,0.920730,1.312568,0.098620,-0.279975,
-       0.221822,-0.232839,0.946880,1.400739,0.142695,-0.261940,
-       -0.363086,-0.142915,0.920730,1.312568,0.098620,-0.279975,
-       -0.107310,0.091019,0.990051,1.373124,0.169070,-0.264259,
+       -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
+       0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+       -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
+       -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
        -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
        -0.342337,-0.675989,0.652567,1.284897,0.013483,-0.325812,
        -0.632405,-0.365743,0.682858,1.262105,0.039911,-0.327123,
        -0.632405,-0.365743,0.682858,1.262105,0.039911,-0.327123,
-       -0.363086,-0.142915,0.920730,1.312568,0.098620,-0.279975,
+       -0.363086,-0.142915,0.92073,1.312568,0.09862,-0.279975,
        -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
-       0.311074,0.631830,0.709947,1.431839,0.331232,-0.335934,
+       0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
        0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
        0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
-       0.311074,0.631830,0.709947,1.431839,0.331232,-0.335934,
+       0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
        0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
-       0.074097,0.343890,0.936082,1.387230,0.275032,-0.291188,
+       0.074097,0.34389,0.936082,1.38723,0.275032,-0.291188,
        0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
-       0.704743,0.348932,0.617724,1.515677,0.272720,-0.325812,
+       0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
        0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
        0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
        0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
        0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
        0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
-       0.221822,-0.232839,0.946880,1.400739,0.142695,-0.261940,
-       -0.107310,0.091019,0.990051,1.373124,0.169070,-0.264259,
-       -0.107310,0.091019,0.990051,1.373124,0.169070,-0.264259,
+       0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+       -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
+       -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
        0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
        0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
-       -0.152737,0.118235,0.981169,1.333700,0.207591,-0.276273,
-       0.074097,0.343890,0.936082,1.387230,0.275032,-0.291188,
+       -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
+       0.074097,0.34389,0.936082,1.38723,0.275032,-0.291188,
        0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
-       -0.152737,0.118235,0.981169,1.333700,0.207591,-0.276273,
+       -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
        0.113526,0.358822,0.926476,1.433681,0.239521,-0.279975,
-       -0.107310,0.091019,0.990051,1.373124,0.169070,-0.264259,
+       -0.10731,0.091019,0.990051,1.373124,0.16907,-0.264259,
        0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
        0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
-       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294000,
+       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
        0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
-       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294000,
-       0.856560,-0.215911,0.468709,1.524471,0.247261,-0.339125,
+       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
+       0.85656,-0.215911,0.468709,1.524471,0.247261,-0.339125,
        0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
-       0.725947,-0.653645,0.213890,1.429500,0.116294,-0.322437,
-       0.640970,-0.577210,0.505950,1.418631,0.126081,-0.278500,
-       0.640970,-0.577210,0.505950,1.418631,0.126081,-0.278500,
-       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294000,
+       0.725947,-0.653645,0.21389,1.4295,0.116294,-0.322437,
+       0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
+       0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
+       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
        0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
-       0.221822,-0.232839,0.946880,1.400739,0.142695,-0.261940,
+       0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
        0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
-       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294000,
-       0.221822,-0.232839,0.946880,1.400739,0.142695,-0.261940,
-       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294000,
-       0.640970,-0.577210,0.505950,1.418631,0.126081,-0.278500,
+       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
+       0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
+       0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
        0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
-       0.704743,0.348932,0.617724,1.515677,0.272720,-0.325812,
-       0.856560,-0.215911,0.468709,1.524471,0.247261,-0.339125,
-       0.856560,-0.215911,0.468709,1.524471,0.247261,-0.339125,
-       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294000,
+       0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
+       0.85656,-0.215911,0.468709,1.524471,0.247261,-0.339125,
+       0.85656,-0.215911,0.468709,1.524471,0.247261,-0.339125,
+       0.736468,-0.384081,0.556864,1.476277,0.191919,-0.294,
        0.422175,0.108161,0.900039,1.463411,0.213552,-0.277994,
        0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
        0.581551,-0.793452,0.179534,1.331736,0.017726,-0.361333,
        0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
        0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
-       0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294000,
+       0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294,
        0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
        0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
        -0.342337,-0.675989,0.652567,1.284897,0.013483,-0.325812,
        -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
        -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
-       0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294000,
+       0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294,
        0.307416,-0.846879,0.433925,1.309178,0.008154,-0.339125,
-       0.221822,-0.232839,0.946880,1.400739,0.142695,-0.261940,
-       0.640970,-0.577210,0.505950,1.418631,0.126081,-0.278500,
-       0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294000,
-       0.221822,-0.232839,0.946880,1.400739,0.142695,-0.261940,
-       0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294000,
+       0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+       0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
+       0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294,
+       0.221822,-0.232839,0.94688,1.400739,0.142695,-0.26194,
+       0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294,
        -0.050406,-0.482634,0.874371,1.337615,0.072243,-0.277994,
-       0.640970,-0.577210,0.505950,1.418631,0.126081,-0.278500,
-       0.725947,-0.653645,0.213890,1.429500,0.116294,-0.322437,
+       0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
+       0.725947,-0.653645,0.21389,1.4295,0.116294,-0.322437,
        0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
        0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
-       0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294000,
-       0.640970,-0.577210,0.505950,1.418631,0.126081,-0.278500,
+       0.432476,-0.665439,0.608404,1.359179,0.061869,-0.294,
+       0.64097,-0.57721,0.50595,1.418631,0.126081,-0.2785,
        0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
-       0.311074,0.631830,0.709947,1.431839,0.331232,-0.335934,
+       0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
        0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
        0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
        0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
        0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
-       0.489941,0.871755,-0.000000,1.467526,0.376193,-0.500000,
-       0.561935,0.827181,0.000000,1.524515,0.345196,-0.500000,
+       0.489941,0.871755,0,1.467526,0.376193,-0.5,
+       0.561935,0.827181,0,1.524515,0.345196,-0.5,
        0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
-       0.489941,0.871755,-0.000000,1.467526,0.376193,-0.500000,
+       0.489941,0.871755,0,1.467526,0.376193,-0.5,
        0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
        0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
-       0.561935,0.827181,0.000000,1.524515,0.345196,-0.500000,
-       0.887347,0.461103,-0.000000,1.558444,0.319842,-0.500000,
+       0.561935,0.827181,0,1.524515,0.345196,-0.5,
+       0.887347,0.461103,0,1.558444,0.319842,-0.5,
        0.765648,0.567983,0.301958,1.547582,0.308099,-0.405051,
        0.765648,0.567983,0.301958,1.547582,0.308099,-0.405051,
        0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
-       0.561935,0.827181,0.000000,1.524515,0.345196,-0.500000,
-       0.704743,0.348932,0.617724,1.515677,0.272720,-0.325812,
+       0.561935,0.827181,0,1.524515,0.345196,-0.5,
+       0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
        0.365915,0.616651,0.697028,1.484144,0.298229,-0.327123,
        0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
-       0.704743,0.348932,0.617724,1.515677,0.272720,-0.325812,
+       0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
        0.507038,0.792213,0.339576,1.514422,0.333454,-0.405704,
        0.765648,0.567983,0.301958,1.547582,0.308099,-0.405051,
        0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
-       0.311074,0.631830,-0.709947,1.431839,0.331232,-0.664066,
+       0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
        0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
        0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
        0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
        0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
-       0.704744,0.348932,-0.617724,1.515677,0.272720,-0.674188,
+       0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
        0.765648,0.567983,-0.301958,1.547582,0.308099,-0.594949,
        0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
-       0.704744,0.348932,-0.617724,1.515677,0.272720,-0.674188,
+       0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
        0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
        0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
        0.765648,0.567983,-0.301958,1.547582,0.308099,-0.594949,
-       0.887347,0.461103,-0.000000,1.558444,0.319842,-0.500000,
-       0.561935,0.827181,0.000000,1.524515,0.345196,-0.500000,
-       0.561935,0.827181,0.000000,1.524515,0.345196,-0.500000,
+       0.887347,0.461103,0,1.558444,0.319842,-0.5,
+       0.561935,0.827181,0,1.524515,0.345196,-0.5,
+       0.561935,0.827181,0,1.524515,0.345196,-0.5,
        0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
        0.765648,0.567983,-0.301958,1.547582,0.308099,-0.594949,
-       0.489941,0.871755,-0.000000,1.467526,0.376193,-0.500000,
+       0.489941,0.871755,0,1.467526,0.376193,-0.5,
        0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
        0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
-       0.489941,0.871755,-0.000000,1.467526,0.376193,-0.500000,
+       0.489941,0.871755,0,1.467526,0.376193,-0.5,
        0.507038,0.792213,-0.339576,1.514422,0.333454,-0.594296,
-       0.561935,0.827181,0.000000,1.524515,0.345196,-0.500000,
+       0.561935,0.827181,0,1.524515,0.345196,-0.5,
        0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
-       0.852060,-0.513749,-0.100278,1.538011,0.240115,-0.582500,
-       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.587500,
+       0.85206,-0.513749,-0.100278,1.538011,0.240115,-0.5825,
+       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
        0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
-       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.587500,
-       0.856560,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
-       0.884220,-0.467071,0.000000,1.548313,0.248248,-0.500000,
-       0.997731,-0.067332,0.000000,1.566843,0.290687,-0.500000,
-       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.587500,
-       0.884220,-0.467071,0.000000,1.548313,0.248248,-0.500000,
-       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.587500,
-       0.852060,-0.513749,-0.100278,1.538011,0.240115,-0.582500,
-       0.887347,0.461103,-0.000000,1.558444,0.319842,-0.500000,
+       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+       0.85656,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
+       0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+       0.997731,-0.067332,0,1.566843,0.290687,-0.5,
+       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+       0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+       0.85206,-0.513749,-0.100278,1.538011,0.240115,-0.5825,
+       0.887347,0.461103,0,1.558444,0.319842,-0.5,
        0.765648,0.567983,-0.301958,1.547582,0.308099,-0.594949,
-       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.587500,
-       0.887347,0.461103,-0.000000,1.558444,0.319842,-0.500000,
-       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.587500,
-       0.997731,-0.067332,0.000000,1.566843,0.290687,-0.500000,
-       0.704744,0.348932,-0.617724,1.515677,0.272720,-0.674188,
-       0.856560,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
-       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.587500,
-       0.704744,0.348932,-0.617724,1.515677,0.272720,-0.674188,
-       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.587500,
+       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+       0.887347,0.461103,0,1.558444,0.319842,-0.5,
+       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+       0.997731,-0.067332,0,1.566843,0.290687,-0.5,
+       0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
+       0.85656,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
+       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
+       0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
+       0.967592,-0.122072,-0.221053,1.555568,0.279982,-0.5875,
        0.765648,0.567983,-0.301958,1.547582,0.308099,-0.594949,
        0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
-       0.856560,-0.215911,0.468709,1.524471,0.247261,-0.339125,
-       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.412500,
+       0.85656,-0.215911,0.468709,1.524471,0.247261,-0.339125,
+       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
        0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
-       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.412500,
-       0.852060,-0.513749,0.100278,1.538011,0.240115,-0.417500,
-       0.704743,0.348932,0.617724,1.515677,0.272720,-0.325812,
+       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+       0.85206,-0.513749,0.100278,1.538011,0.240115,-0.4175,
+       0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
        0.765648,0.567983,0.301958,1.547582,0.308099,-0.405051,
-       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.412500,
-       0.704743,0.348932,0.617724,1.515677,0.272720,-0.325812,
-       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.412500,
-       0.856560,-0.215911,0.468709,1.524471,0.247261,-0.339125,
-       0.887347,0.461103,-0.000000,1.558444,0.319842,-0.500000,
-       0.997731,-0.067332,0.000000,1.566843,0.290687,-0.500000,
-       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.412500,
-       0.887347,0.461103,-0.000000,1.558444,0.319842,-0.500000,
-       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.412500,
+       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+       0.704743,0.348932,0.617724,1.515677,0.27272,-0.325812,
+       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+       0.85656,-0.215911,0.468709,1.524471,0.247261,-0.339125,
+       0.887347,0.461103,0,1.558444,0.319842,-0.5,
+       0.997731,-0.067332,0,1.566843,0.290687,-0.5,
+       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+       0.887347,0.461103,0,1.558444,0.319842,-0.5,
+       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
        0.765648,0.567983,0.301958,1.547582,0.308099,-0.405051,
-       0.884220,-0.467071,0.000000,1.548313,0.248248,-0.500000,
-       0.852060,-0.513749,0.100278,1.538011,0.240115,-0.417500,
-       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.412500,
-       0.884220,-0.467071,0.000000,1.548313,0.248248,-0.500000,
-       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.412500,
-       0.997731,-0.067332,0.000000,1.566843,0.290687,-0.500000,
-       0.311074,0.631830,-0.709947,1.431839,0.331232,-0.664066,
-       0.074097,0.343890,-0.936082,1.387230,0.275032,-0.708812,
+       0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+       0.85206,-0.513749,0.100278,1.538011,0.240115,-0.4175,
+       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+       0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+       0.967592,-0.122072,0.221053,1.555568,0.279982,-0.4125,
+       0.997731,-0.067332,0,1.566843,0.290687,-0.5,
+       0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
+       0.074097,0.34389,-0.936082,1.38723,0.275032,-0.708812,
        0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
-       0.311074,0.631830,-0.709947,1.431839,0.331232,-0.664066,
+       0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
        0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
        0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
-       -0.152737,0.118235,-0.981169,1.333700,0.207591,-0.723727,
-       -0.107310,0.091019,-0.990051,1.373124,0.169070,-0.735741,
+       -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
+       -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
        0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
-       -0.152737,0.118235,-0.981169,1.333700,0.207591,-0.723727,
+       -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
        0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
-       0.074097,0.343890,-0.936082,1.387230,0.275032,-0.708812,
-       -0.107310,0.091019,-0.990051,1.373124,0.169070,-0.735741,
-       0.221822,-0.232839,-0.946880,1.400739,0.142695,-0.738060,
+       0.074097,0.34389,-0.936082,1.38723,0.275032,-0.708812,
+       -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
+       0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
        0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
        0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
        0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
-       -0.107310,0.091019,-0.990051,1.373124,0.169070,-0.735741,
+       -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
        0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
-       0.704744,0.348932,-0.617724,1.515677,0.272720,-0.674188,
+       0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
        0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
        0.365915,0.616651,-0.697028,1.484144,0.298229,-0.672877,
        0.113526,0.358822,-0.926476,1.433681,0.239521,-0.720025,
        0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
        -0.695773,-0.304145,-0.650689,1.235562,0.083949,-0.664066,
        -0.632405,-0.365743,-0.682858,1.262105,0.039911,-0.672877,
-       -0.363086,-0.142915,-0.920730,1.312568,0.098620,-0.720025,
+       -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
        -0.695773,-0.304145,-0.650689,1.235562,0.083949,-0.664066,
-       -0.363086,-0.142915,-0.920730,1.312568,0.098620,-0.720025,
-       -0.420703,-0.107750,-0.900777,1.280170,0.140150,-0.708812,
+       -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
+       -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
        -0.632405,-0.365743,-0.682858,1.262105,0.039911,-0.672877,
        -0.342337,-0.675989,-0.652567,1.284897,0.013483,-0.674188,
-       -0.050406,-0.482634,-0.874370,1.337615,0.072243,-0.722006,
-       -0.050406,-0.482634,-0.874370,1.337615,0.072243,-0.722006,
-       -0.363086,-0.142915,-0.920730,1.312568,0.098620,-0.720025,
+       -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
+       -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
+       -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
        -0.632405,-0.365743,-0.682858,1.262105,0.039911,-0.672877,
-       0.221822,-0.232839,-0.946880,1.400739,0.142695,-0.738060,
-       -0.107310,0.091019,-0.990051,1.373124,0.169070,-0.735741,
-       -0.363086,-0.142915,-0.920730,1.312568,0.098620,-0.720025,
-       0.221822,-0.232839,-0.946880,1.400739,0.142695,-0.738060,
-       -0.363086,-0.142915,-0.920730,1.312568,0.098620,-0.720025,
-       -0.050406,-0.482634,-0.874370,1.337615,0.072243,-0.722006,
-       -0.107310,0.091019,-0.990051,1.373124,0.169070,-0.735741,
-       -0.152737,0.118235,-0.981169,1.333700,0.207591,-0.723727,
-       -0.420703,-0.107750,-0.900777,1.280170,0.140150,-0.708812,
-       -0.420703,-0.107750,-0.900777,1.280170,0.140150,-0.708812,
-       -0.363086,-0.142915,-0.920730,1.312568,0.098620,-0.720025,
-       -0.107310,0.091019,-0.990051,1.373124,0.169070,-0.735741,
+       0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+       -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
+       -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
+       0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+       -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
+       -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
+       -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
+       -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
+       -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
+       -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
+       -0.363086,-0.142915,-0.92073,1.312568,0.09862,-0.720025,
+       -0.10731,0.091019,-0.990051,1.373124,0.16907,-0.735741,
        0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
        0.581551,-0.793452,-0.179534,1.331736,0.017726,-0.638667,
        0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
        0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
-       0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706000,
+       0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706,
        0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
        0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
-       0.725947,-0.653645,-0.213890,1.429500,0.116294,-0.677562,
-       0.640970,-0.577211,-0.505950,1.418631,0.126081,-0.721500,
-       0.640970,-0.577211,-0.505950,1.418631,0.126081,-0.721500,
-       0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706000,
+       0.725947,-0.653645,-0.21389,1.4295,0.116294,-0.677562,
+       0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
+       0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
+       0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706,
        0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
-       0.221822,-0.232839,-0.946880,1.400739,0.142695,-0.738060,
-       -0.050406,-0.482634,-0.874370,1.337615,0.072243,-0.722006,
-       0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706000,
-       0.221822,-0.232839,-0.946880,1.400739,0.142695,-0.738060,
-       0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706000,
-       0.640970,-0.577211,-0.505950,1.418631,0.126081,-0.721500,
-       -0.050406,-0.482634,-0.874370,1.337615,0.072243,-0.722006,
+       0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+       -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
+       0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706,
+       0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+       0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706,
+       0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
+       -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
        -0.342337,-0.675989,-0.652567,1.284897,0.013483,-0.674188,
        0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
        0.307416,-0.846879,-0.433925,1.309178,0.008154,-0.660875,
-       0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706000,
-       -0.050406,-0.482634,-0.874370,1.337615,0.072243,-0.722006,
+       0.432476,-0.665439,-0.608404,1.359179,0.061869,-0.706,
+       -0.050406,-0.482634,-0.87437,1.337615,0.072243,-0.722006,
        0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
-       0.856560,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
-       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706000,
+       0.85656,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
+       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
        0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
-       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706000,
+       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
        0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
-       0.856560,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
-       0.704744,0.348932,-0.617724,1.515677,0.272720,-0.674188,
+       0.85656,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
+       0.704744,0.348932,-0.617724,1.515677,0.27272,-0.674188,
        0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
        0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
-       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706000,
-       0.856560,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
-       0.221822,-0.232839,-0.946880,1.400739,0.142695,-0.738060,
-       0.640970,-0.577211,-0.505950,1.418631,0.126081,-0.721500,
-       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706000,
-       0.221822,-0.232839,-0.946880,1.400739,0.142695,-0.738060,
-       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706000,
+       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
+       0.85656,-0.215911,-0.468708,1.524471,0.247261,-0.660875,
+       0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+       0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
+       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
+       0.221822,-0.232839,-0.94688,1.400739,0.142695,-0.73806,
+       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
        0.422175,0.108161,-0.900039,1.463411,0.213552,-0.722006,
-       0.640970,-0.577211,-0.505950,1.418631,0.126081,-0.721500,
-       0.725947,-0.653645,-0.213890,1.429500,0.116294,-0.677562,
+       0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
+       0.725947,-0.653645,-0.21389,1.4295,0.116294,-0.677562,
        0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
        0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
-       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706000,
-       0.640970,-0.577211,-0.505950,1.418631,0.126081,-0.721500,
+       0.736467,-0.384081,-0.556864,1.476277,0.191919,-0.706,
+       0.64097,-0.577211,-0.50595,1.418631,0.126081,-0.7215,
        0.581551,-0.793452,0.179534,1.331736,0.017726,-0.361333,
        0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
-       0.685049,-0.724120,0.079739,1.373428,0.045002,-0.409500,
+       0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
        0.581551,-0.793452,0.179534,1.331736,0.017726,-0.361333,
-       0.685049,-0.724120,0.079739,1.373428,0.045002,-0.409500,
-       0.600000,-0.793691,0.100277,1.317700,-0.004566,-0.417500,
+       0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
+       0.6,-0.793691,0.100277,1.3177,-0.004566,-0.4175,
        0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
-       0.725947,-0.653645,0.213890,1.429500,0.116294,-0.322437,
-       0.740458,-0.666711,0.084960,1.436048,0.110398,-0.402250,
-       0.740458,-0.666711,0.084960,1.436048,0.110398,-0.402250,
-       0.685049,-0.724120,0.079739,1.373428,0.045002,-0.409500,
+       0.725947,-0.653645,0.21389,1.4295,0.116294,-0.322437,
+       0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
+       0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
+       0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
        0.649588,-0.728866,0.216309,1.372652,0.056465,-0.335375,
-       0.743145,-0.669131,-0.000000,1.438241,0.108423,-0.500000,
-       0.683609,-0.729849,-0.000000,1.370641,0.037756,-0.500000,
-       0.685049,-0.724120,0.079739,1.373428,0.045002,-0.409500,
-       0.743145,-0.669131,-0.000000,1.438241,0.108423,-0.500000,
-       0.685049,-0.724120,0.079739,1.373428,0.045002,-0.409500,
-       0.740458,-0.666711,0.084960,1.436048,0.110398,-0.402250,
-       0.683609,-0.729849,-0.000000,1.370641,0.037756,-0.500000,
-       0.556938,-0.830554,0.000000,1.310688,-0.015661,-0.500000,
-       0.600000,-0.793691,0.100277,1.317700,-0.004566,-0.417500,
-       0.600000,-0.793691,0.100277,1.317700,-0.004566,-0.417500,
-       0.685049,-0.724120,0.079739,1.373428,0.045002,-0.409500,
-       0.683609,-0.729849,-0.000000,1.370641,0.037756,-0.500000,
+       0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+       0.683609,-0.729849,0,1.370641,0.037756,-0.5,
+       0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
+       0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+       0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
+       0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
+       0.683609,-0.729849,0,1.370641,0.037756,-0.5,
+       0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+       0.6,-0.793691,0.100277,1.3177,-0.004566,-0.4175,
+       0.6,-0.793691,0.100277,1.3177,-0.004566,-0.4175,
+       0.685049,-0.72412,0.079739,1.373428,0.045002,-0.4095,
+       0.683609,-0.729849,0,1.370641,0.037756,-0.5,
        0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
-       0.852060,-0.513749,0.100278,1.538011,0.240115,-0.417500,
-       0.791761,-0.605604,0.079739,1.494540,0.179511,-0.409500,
+       0.85206,-0.513749,0.100278,1.538011,0.240115,-0.4175,
+       0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
        0.846384,-0.493864,0.199328,1.517309,0.223825,-0.361333,
-       0.791761,-0.605604,0.079739,1.494540,0.179511,-0.409500,
+       0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
        0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
-       0.852060,-0.513749,0.100278,1.538011,0.240115,-0.417500,
-       0.884220,-0.467071,0.000000,1.548313,0.248248,-0.500000,
-       0.797307,-0.603573,0.000000,1.501456,0.183040,-0.500000,
-       0.797307,-0.603573,0.000000,1.501456,0.183040,-0.500000,
-       0.791761,-0.605604,0.079739,1.494540,0.179511,-0.409500,
-       0.852060,-0.513749,0.100278,1.538011,0.240115,-0.417500,
-       0.743145,-0.669131,-0.000000,1.438241,0.108423,-0.500000,
-       0.740458,-0.666711,0.084960,1.436048,0.110398,-0.402250,
-       0.791761,-0.605604,0.079739,1.494540,0.179511,-0.409500,
-       0.743145,-0.669131,-0.000000,1.438241,0.108423,-0.500000,
-       0.791761,-0.605604,0.079739,1.494540,0.179511,-0.409500,
-       0.797307,-0.603573,0.000000,1.501456,0.183040,-0.500000,
-       0.740458,-0.666711,0.084960,1.436048,0.110398,-0.402250,
-       0.725947,-0.653645,0.213890,1.429500,0.116294,-0.322437,
+       0.85206,-0.513749,0.100278,1.538011,0.240115,-0.4175,
+       0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+       0.797307,-0.603573,0,1.501456,0.18304,-0.5,
+       0.797307,-0.603573,0,1.501456,0.18304,-0.5,
+       0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
+       0.85206,-0.513749,0.100278,1.538011,0.240115,-0.4175,
+       0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+       0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
+       0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
+       0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+       0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
+       0.797307,-0.603573,0,1.501456,0.18304,-0.5,
+       0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
+       0.725947,-0.653645,0.21389,1.4295,0.116294,-0.322437,
        0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
        0.786785,-0.580419,0.209959,1.483059,0.179084,-0.335375,
-       0.791761,-0.605604,0.079739,1.494540,0.179511,-0.409500,
-       0.740458,-0.666711,0.084960,1.436048,0.110398,-0.402250,
+       0.791761,-0.605604,0.079739,1.49454,0.179511,-0.4095,
+       0.740458,-0.666711,0.08496,1.436048,0.110398,-0.40225,
        0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
        0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
-       0.791761,-0.605604,-0.079739,1.494540,0.179511,-0.590500,
+       0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
        0.846384,-0.493864,-0.199329,1.517309,0.223825,-0.638667,
-       0.791761,-0.605604,-0.079739,1.494540,0.179511,-0.590500,
-       0.852060,-0.513749,-0.100278,1.538011,0.240115,-0.582500,
+       0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
+       0.85206,-0.513749,-0.100278,1.538011,0.240115,-0.5825,
        0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
-       0.725947,-0.653645,-0.213890,1.429500,0.116294,-0.677562,
-       0.740458,-0.666711,-0.084960,1.436048,0.110398,-0.597750,
-       0.740458,-0.666711,-0.084960,1.436048,0.110398,-0.597750,
-       0.791761,-0.605604,-0.079739,1.494540,0.179511,-0.590500,
+       0.725947,-0.653645,-0.21389,1.4295,0.116294,-0.677562,
+       0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
+       0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
+       0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
        0.786785,-0.580419,-0.209959,1.483059,0.179084,-0.664625,
-       0.743145,-0.669131,-0.000000,1.438241,0.108423,-0.500000,
-       0.797307,-0.603573,0.000000,1.501456,0.183040,-0.500000,
-       0.791761,-0.605604,-0.079739,1.494540,0.179511,-0.590500,
-       0.743145,-0.669131,-0.000000,1.438241,0.108423,-0.500000,
-       0.791761,-0.605604,-0.079739,1.494540,0.179511,-0.590500,
-       0.740458,-0.666711,-0.084960,1.436048,0.110398,-0.597750,
-       0.797307,-0.603573,0.000000,1.501456,0.183040,-0.500000,
-       0.884220,-0.467071,0.000000,1.548313,0.248248,-0.500000,
-       0.852060,-0.513749,-0.100278,1.538011,0.240115,-0.582500,
-       0.852060,-0.513749,-0.100278,1.538011,0.240115,-0.582500,
-       0.791761,-0.605604,-0.079739,1.494540,0.179511,-0.590500,
-       0.797307,-0.603573,0.000000,1.501456,0.183040,-0.500000,
+       0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+       0.797307,-0.603573,0,1.501456,0.18304,-0.5,
+       0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
+       0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+       0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
+       0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
+       0.797307,-0.603573,0,1.501456,0.18304,-0.5,
+       0.88422,-0.467071,0,1.548313,0.248248,-0.5,
+       0.85206,-0.513749,-0.100278,1.538011,0.240115,-0.5825,
+       0.85206,-0.513749,-0.100278,1.538011,0.240115,-0.5825,
+       0.791761,-0.605604,-0.079739,1.49454,0.179511,-0.5905,
+       0.797307,-0.603573,0,1.501456,0.18304,-0.5,
        0.581551,-0.793452,-0.179534,1.331736,0.017726,-0.638667,
-       0.600000,-0.793691,-0.100277,1.317700,-0.004566,-0.582500,
-       0.685049,-0.724120,-0.079739,1.373428,0.045002,-0.590500,
+       0.6,-0.793691,-0.100277,1.3177,-0.004566,-0.5825,
+       0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
        0.581551,-0.793452,-0.179534,1.331736,0.017726,-0.638667,
-       0.685049,-0.724120,-0.079739,1.373428,0.045002,-0.590500,
+       0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
        0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
-       0.600000,-0.793691,-0.100277,1.317700,-0.004566,-0.582500,
-       0.556938,-0.830554,0.000000,1.310688,-0.015661,-0.500000,
-       0.683609,-0.729849,-0.000000,1.370641,0.037756,-0.500000,
-       0.683609,-0.729849,-0.000000,1.370641,0.037756,-0.500000,
-       0.685049,-0.724120,-0.079739,1.373428,0.045002,-0.590500,
-       0.600000,-0.793691,-0.100277,1.317700,-0.004566,-0.582500,
-       0.743145,-0.669131,-0.000000,1.438241,0.108423,-0.500000,
-       0.740458,-0.666711,-0.084960,1.436048,0.110398,-0.597750,
-       0.685049,-0.724120,-0.079739,1.373428,0.045002,-0.590500,
-       0.743145,-0.669131,-0.000000,1.438241,0.108423,-0.500000,
-       0.685049,-0.724120,-0.079739,1.373428,0.045002,-0.590500,
-       0.683609,-0.729849,-0.000000,1.370641,0.037756,-0.500000,
-       0.740458,-0.666711,-0.084960,1.436048,0.110398,-0.597750,
-       0.725947,-0.653645,-0.213890,1.429500,0.116294,-0.677562,
+       0.6,-0.793691,-0.100277,1.3177,-0.004566,-0.5825,
+       0.556938,-0.830554,0,1.310688,-0.015661,-0.5,
+       0.683609,-0.729849,0,1.370641,0.037756,-0.5,
+       0.683609,-0.729849,0,1.370641,0.037756,-0.5,
+       0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
+       0.6,-0.793691,-0.100277,1.3177,-0.004566,-0.5825,
+       0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+       0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
+       0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
+       0.743145,-0.669131,0,1.438241,0.108423,-0.5,
+       0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
+       0.683609,-0.729849,0,1.370641,0.037756,-0.5,
+       0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
+       0.725947,-0.653645,-0.21389,1.4295,0.116294,-0.677562,
        0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
        0.649588,-0.728866,-0.216309,1.372652,0.056465,-0.664625,
-       0.685049,-0.724120,-0.079739,1.373428,0.045002,-0.590500,
-       0.740458,-0.666711,-0.084960,1.436048,0.110398,-0.597750,
+       0.685049,-0.72412,-0.079739,1.373428,0.045002,-0.5905,
+       0.740458,-0.666711,-0.08496,1.436048,0.110398,-0.59775,
        -0.695773,-0.304145,-0.650689,1.235562,0.083949,-0.664066,
        -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
-       -0.847470,-0.443196,-0.292185,1.178115,0.109780,-0.584482,
+       -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
        -0.695773,-0.304145,-0.650689,1.235562,0.083949,-0.664066,
-       -0.847470,-0.443196,-0.292185,1.178115,0.109780,-0.584482,
+       -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
        -0.858311,-0.411605,-0.306404,1.208797,0.050229,-0.589491,
        -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
        -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
        -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
        -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
-       -0.847470,-0.443196,-0.292185,1.178115,0.109780,-0.584482,
+       -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
        -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
-       -0.860968,-0.508659,0.000000,1.136909,0.161755,-0.500000,
-       -0.891261,-0.453491,-0.000000,1.170811,0.099004,-0.500000,
-       -0.847470,-0.443196,-0.292185,1.178115,0.109780,-0.584482,
-       -0.860968,-0.508659,0.000000,1.136909,0.161755,-0.500000,
-       -0.847470,-0.443196,-0.292185,1.178115,0.109780,-0.584482,
+       -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
+       -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
+       -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
+       -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
+       -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
        -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
-       -0.891261,-0.453491,-0.000000,1.170811,0.099004,-0.500000,
-       -0.900624,-0.434600,-0.000000,1.199875,0.038989,-0.500000,
+       -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
+       -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
        -0.858311,-0.411605,-0.306404,1.208797,0.050229,-0.589491,
        -0.858311,-0.411605,-0.306404,1.208797,0.050229,-0.589491,
-       -0.847470,-0.443196,-0.292185,1.178115,0.109780,-0.584482,
-       -0.891261,-0.453491,-0.000000,1.170811,0.099004,-0.500000,
-       -0.304580,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
-       -0.393740,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+       -0.84747,-0.443196,-0.292185,1.178115,0.10978,-0.584482,
+       -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
+       -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+       -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
        -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
-       -0.304580,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+       -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
        -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
        -0.547648,-0.532516,-0.645374,1.112441,0.256132,-0.640641,
-       -0.393740,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
-       -0.417976,-0.908458,0.000000,1.064065,0.250523,-0.500000,
-       -0.753723,-0.657192,-0.000000,1.100538,0.216006,-0.500000,
-       -0.753723,-0.657192,-0.000000,1.100538,0.216006,-0.500000,
+       -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+       -0.417976,-0.908458,0,1.064065,0.250523,-0.5,
+       -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+       -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
        -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
-       -0.393740,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
-       -0.753723,-0.657192,-0.000000,1.100538,0.216006,-0.500000,
-       -0.860968,-0.508659,0.000000,1.136909,0.161755,-0.500000,
+       -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+       -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+       -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
        -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
        -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
        -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
-       -0.753723,-0.657192,-0.000000,1.100538,0.216006,-0.500000,
+       -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
        -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
        -0.547648,-0.532516,-0.645374,1.112441,0.256132,-0.640641,
        -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
        -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
        -0.696441,-0.651142,-0.301635,1.103513,0.226037,-0.576713,
        -0.813982,-0.512235,-0.273951,1.142211,0.172121,-0.579984,
-       -0.304580,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+       -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
        -0.547648,-0.532516,0.645374,1.112441,0.256132,-0.359359,
        -0.696441,-0.651142,0.301635,1.103513,0.226037,-0.423287,
-       -0.304580,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+       -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
        -0.696441,-0.651142,0.301635,1.103513,0.226037,-0.423287,
        -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
        -0.659424,-0.432639,0.614804,1.158118,0.203222,-0.353363,
@@ -541,497 +541,497 @@ static const float data[]={
        -0.696441,-0.651142,0.301635,1.103513,0.226037,-0.423287,
        -0.547648,-0.532516,0.645374,1.112441,0.256132,-0.359359,
        -0.813982,-0.512235,0.273951,1.142211,0.172121,-0.420016,
-       -0.860968,-0.508659,0.000000,1.136909,0.161755,-0.500000,
-       -0.753723,-0.657192,-0.000000,1.100538,0.216006,-0.500000,
-       -0.753723,-0.657192,-0.000000,1.100538,0.216006,-0.500000,
+       -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
+       -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+       -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
        -0.696441,-0.651142,0.301635,1.103513,0.226037,-0.423287,
        -0.813982,-0.512235,0.273951,1.142211,0.172121,-0.420016,
-       -0.753723,-0.657192,-0.000000,1.100538,0.216006,-0.500000,
-       -0.417976,-0.908458,0.000000,1.064065,0.250523,-0.500000,
+       -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
+       -0.417976,-0.908458,0,1.064065,0.250523,-0.5,
        -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
        -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
        -0.696441,-0.651142,0.301635,1.103513,0.226037,-0.423287,
-       -0.753723,-0.657192,-0.000000,1.100538,0.216006,-0.500000,
+       -0.753723,-0.657192,0,1.100538,0.216006,-0.5,
        -0.695773,-0.304144,0.650689,1.235562,0.083949,-0.335934,
        -0.858311,-0.411604,0.306404,1.208797,0.050229,-0.410509,
-       -0.847470,-0.443196,0.292185,1.178115,0.109780,-0.415518,
+       -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
        -0.695773,-0.304144,0.650689,1.235562,0.083949,-0.335934,
-       -0.847470,-0.443196,0.292185,1.178115,0.109780,-0.415518,
+       -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
        -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
        -0.858311,-0.411604,0.306404,1.208797,0.050229,-0.410509,
-       -0.900624,-0.434600,-0.000000,1.199875,0.038989,-0.500000,
-       -0.891261,-0.453491,-0.000000,1.170811,0.099004,-0.500000,
-       -0.891261,-0.453491,-0.000000,1.170811,0.099004,-0.500000,
-       -0.847470,-0.443196,0.292185,1.178115,0.109780,-0.415518,
+       -0.900624,-0.4346,0,1.199875,0.038989,-0.5,
+       -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
+       -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
+       -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
        -0.858311,-0.411604,0.306404,1.208797,0.050229,-0.410509,
-       -0.860968,-0.508659,0.000000,1.136909,0.161755,-0.500000,
+       -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
        -0.813982,-0.512235,0.273951,1.142211,0.172121,-0.420016,
-       -0.847470,-0.443196,0.292185,1.178115,0.109780,-0.415518,
-       -0.860968,-0.508659,0.000000,1.136909,0.161755,-0.500000,
-       -0.847470,-0.443196,0.292185,1.178115,0.109780,-0.415518,
-       -0.891261,-0.453491,-0.000000,1.170811,0.099004,-0.500000,
+       -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
+       -0.860968,-0.508659,0,1.136909,0.161755,-0.5,
+       -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
+       -0.891261,-0.453491,0,1.170811,0.099004,-0.5,
        -0.813982,-0.512235,0.273951,1.142211,0.172121,-0.420016,
        -0.659424,-0.432639,0.614804,1.158118,0.203222,-0.353363,
        -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
        -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
-       -0.847470,-0.443196,0.292185,1.178115,0.109780,-0.415518,
+       -0.84747,-0.443196,0.292185,1.178115,0.10978,-0.415518,
        -0.813982,-0.512235,0.273951,1.142211,0.172121,-0.420016,
-       0.311074,0.631830,-0.709947,1.431839,0.331232,-0.664066,
-       0.339667,0.655519,-0.674478,1.360730,0.379173,-0.654883,
-       0.120920,0.358415,-0.925698,1.324207,0.325294,-0.697124,
-       0.311074,0.631830,-0.709947,1.431839,0.331232,-0.664066,
-       0.120920,0.358415,-0.925698,1.324207,0.325294,-0.697124,
-       0.074097,0.343890,-0.936082,1.387230,0.275032,-0.708812,
-       0.339667,0.655519,-0.674478,1.360730,0.379173,-0.654883,
-       0.306584,0.689695,-0.655994,1.274769,0.431290,-0.646637,
+       0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
+       0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
+       0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+       0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
+       0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+       0.074097,0.34389,-0.936082,1.38723,0.275032,-0.708812,
+       0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
+       0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
        0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
        0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
-       0.120920,0.358415,-0.925698,1.324207,0.325294,-0.697124,
-       0.339667,0.655519,-0.674478,1.360730,0.379173,-0.654883,
-       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.699960,
-       -0.127933,0.082246,-0.988367,1.280379,0.260640,-0.711204,
-       0.120920,0.358415,-0.925698,1.324207,0.325294,-0.697124,
-       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.699960,
-       0.120920,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+       0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+       0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
+       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
+       -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
+       0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
+       0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
        0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
-       -0.127933,0.082246,-0.988367,1.280379,0.260640,-0.711204,
-       -0.152737,0.118235,-0.981169,1.333700,0.207591,-0.723727,
-       0.074097,0.343890,-0.936082,1.387230,0.275032,-0.708812,
-       0.074097,0.343890,-0.936082,1.387230,0.275032,-0.708812,
-       0.120920,0.358415,-0.925698,1.324207,0.325294,-0.697124,
-       -0.127933,0.082246,-0.988367,1.280379,0.260640,-0.711204,
+       -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
+       -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
+       0.074097,0.34389,-0.936082,1.38723,0.275032,-0.708812,
+       0.074097,0.34389,-0.936082,1.38723,0.275032,-0.708812,
+       0.12092,0.358415,-0.925698,1.324207,0.325294,-0.697124,
+       -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
        0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
-       0.089470,0.746330,-0.659535,1.074101,0.505017,-0.638205,
+       0.08947,0.74633,-0.659535,1.074101,0.505017,-0.638205,
        0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
        0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
        0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
        0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
-       0.012548,-0.001301,-0.999920,1.069855,0.397346,-0.688461,
-       -0.066606,0.014310,-0.997677,1.145175,0.366478,-0.691783,
+       0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
+       -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
        0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
-       0.012548,-0.001301,-0.999920,1.069855,0.397346,-0.688461,
+       0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
        0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
        0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
-       -0.066606,0.014310,-0.997677,1.145175,0.366478,-0.691783,
-       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.699960,
+       -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
+       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
        0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
        0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
        0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
-       -0.066606,0.014310,-0.997677,1.145175,0.366478,-0.691783,
-       0.306584,0.689695,-0.655994,1.274769,0.431290,-0.646637,
+       -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
+       0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
        0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
        0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
-       0.306584,0.689695,-0.655994,1.274769,0.431290,-0.646637,
+       0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
        0.115814,0.384301,-0.915915,1.163029,0.426667,-0.678998,
        0.126992,0.363932,-0.922728,1.248257,0.379456,-0.686629,
-       -0.304580,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+       -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
        -0.547648,-0.532516,-0.645374,1.112441,0.256132,-0.640641,
-       -0.307110,-0.324628,-0.894595,1.127320,0.306289,-0.678998,
-       -0.304580,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
-       -0.307110,-0.324628,-0.894595,1.127320,0.306289,-0.678998,
+       -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
+       -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+       -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
        -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
        -0.547648,-0.532516,-0.645374,1.112441,0.256132,-0.640641,
        -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
-       -0.382336,-0.228691,-0.895276,1.184630,0.255055,-0.686629,
-       -0.382336,-0.228691,-0.895276,1.184630,0.255055,-0.686629,
-       -0.307110,-0.324628,-0.894595,1.127320,0.306289,-0.678998,
+       -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
+       -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
+       -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
        -0.547648,-0.532516,-0.645374,1.112441,0.256132,-0.640641,
-       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.699960,
-       -0.066606,0.014310,-0.997677,1.145175,0.366478,-0.691783,
-       -0.307110,-0.324628,-0.894595,1.127320,0.306289,-0.678998,
-       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.699960,
-       -0.307110,-0.324628,-0.894595,1.127320,0.306289,-0.678998,
-       -0.382336,-0.228691,-0.895276,1.184630,0.255055,-0.686629,
-       -0.066606,0.014310,-0.997677,1.145175,0.366478,-0.691783,
-       0.012548,-0.001301,-0.999920,1.069855,0.397346,-0.688461,
+       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
+       -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
+       -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
+       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
+       -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
+       -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
+       -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
+       0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
        -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
        -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
-       -0.307110,-0.324628,-0.894595,1.127320,0.306289,-0.678998,
-       -0.066606,0.014310,-0.997677,1.145175,0.366478,-0.691783,
+       -0.30711,-0.324628,-0.894595,1.12732,0.306289,-0.678998,
+       -0.066606,0.01431,-0.997677,1.145175,0.366478,-0.691783,
        -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
        -0.695773,-0.304145,-0.650689,1.235562,0.083949,-0.664066,
-       -0.420703,-0.107750,-0.900777,1.280170,0.140150,-0.708812,
-       -0.420703,-0.107750,-0.900777,1.280170,0.140150,-0.708812,
+       -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
+       -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
        -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
        -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
-       -0.152737,0.118235,-0.981169,1.333700,0.207591,-0.723727,
-       -0.127933,0.082246,-0.988367,1.280379,0.260640,-0.711204,
+       -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
+       -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
        -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
-       -0.152737,0.118235,-0.981169,1.333700,0.207591,-0.723727,
+       -0.152737,0.118235,-0.981169,1.3337,0.207591,-0.723727,
        -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
-       -0.420703,-0.107750,-0.900777,1.280170,0.140150,-0.708812,
-       -0.127933,0.082246,-0.988367,1.280379,0.260640,-0.711204,
-       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.699960,
-       -0.382336,-0.228691,-0.895276,1.184630,0.255055,-0.686629,
-       -0.382336,-0.228691,-0.895276,1.184630,0.255055,-0.686629,
+       -0.420703,-0.10775,-0.900777,1.28017,0.14015,-0.708812,
+       -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
+       -0.106175,0.048409,-0.993168,1.216443,0.317256,-0.69996,
+       -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
+       -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
        -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
-       -0.127933,0.082246,-0.988367,1.280379,0.260640,-0.711204,
+       -0.127933,0.082246,-0.988367,1.280379,0.26064,-0.711204,
        -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
        -0.687216,-0.351805,-0.635584,1.200029,0.142107,-0.654883,
        -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
        -0.659424,-0.432639,-0.614804,1.158118,0.203222,-0.646637,
        -0.406685,-0.158703,-0.899678,1.236552,0.195985,-0.697124,
-       -0.382336,-0.228691,-0.895276,1.184630,0.255055,-0.686629,
-       0.311074,0.631830,0.709947,1.431839,0.331232,-0.335934,
-       0.074097,0.343890,0.936082,1.387230,0.275032,-0.291188,
-       0.120920,0.358415,0.925698,1.324207,0.325294,-0.302876,
-       0.311074,0.631830,0.709947,1.431839,0.331232,-0.335934,
-       0.120920,0.358415,0.925698,1.324207,0.325294,-0.302876,
-       0.339667,0.655519,0.674478,1.360730,0.379173,-0.345117,
-       0.074097,0.343890,0.936082,1.387230,0.275032,-0.291188,
-       -0.152737,0.118235,0.981169,1.333700,0.207591,-0.276273,
-       -0.127934,0.082246,0.988367,1.280379,0.260640,-0.288796,
-       -0.127934,0.082246,0.988367,1.280379,0.260640,-0.288796,
-       0.120920,0.358415,0.925698,1.324207,0.325294,-0.302876,
-       0.074097,0.343890,0.936082,1.387230,0.275032,-0.291188,
-       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.300040,
+       -0.382336,-0.228691,-0.895276,1.18463,0.255055,-0.686629,
+       0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
+       0.074097,0.34389,0.936082,1.38723,0.275032,-0.291188,
+       0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
+       0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
+       0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
+       0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+       0.074097,0.34389,0.936082,1.38723,0.275032,-0.291188,
+       -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
+       -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
+       -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
+       0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
+       0.074097,0.34389,0.936082,1.38723,0.275032,-0.291188,
+       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
        0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
-       0.120920,0.358415,0.925698,1.324207,0.325294,-0.302876,
-       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.300040,
-       0.120920,0.358415,0.925698,1.324207,0.325294,-0.302876,
-       -0.127934,0.082246,0.988367,1.280379,0.260640,-0.288796,
+       0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
+       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
+       0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
+       -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
        0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
-       0.306584,0.689695,0.655994,1.274769,0.431290,-0.353363,
-       0.339667,0.655519,0.674478,1.360730,0.379173,-0.345117,
-       0.339667,0.655519,0.674478,1.360730,0.379173,-0.345117,
-       0.120920,0.358415,0.925698,1.324207,0.325294,-0.302876,
+       0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
+       0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+       0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+       0.12092,0.358415,0.925698,1.324207,0.325294,-0.302876,
        0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
-       -0.420703,-0.107750,0.900777,1.280170,0.140150,-0.291188,
+       -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
        -0.695773,-0.304144,0.650689,1.235562,0.083949,-0.335934,
        -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
        -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
        -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
-       -0.420703,-0.107750,0.900777,1.280170,0.140150,-0.291188,
+       -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
        -0.659424,-0.432639,0.614804,1.158118,0.203222,-0.353363,
-       -0.382336,-0.228691,0.895276,1.184630,0.255055,-0.313371,
+       -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
        -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
        -0.659424,-0.432639,0.614804,1.158118,0.203222,-0.353363,
        -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
        -0.687216,-0.351805,0.635584,1.200029,0.142107,-0.345117,
-       -0.382336,-0.228691,0.895276,1.184630,0.255055,-0.313371,
-       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.300040,
-       -0.127934,0.082246,0.988367,1.280379,0.260640,-0.288796,
-       -0.127934,0.082246,0.988367,1.280379,0.260640,-0.288796,
+       -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
+       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
+       -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
+       -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
        -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
-       -0.382336,-0.228691,0.895276,1.184630,0.255055,-0.313371,
-       -0.152737,0.118235,0.981169,1.333700,0.207591,-0.276273,
-       -0.420703,-0.107750,0.900777,1.280170,0.140150,-0.291188,
+       -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
+       -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
+       -0.420703,-0.10775,0.900777,1.28017,0.14015,-0.291188,
        -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
-       -0.152737,0.118235,0.981169,1.333700,0.207591,-0.276273,
+       -0.152737,0.118235,0.981169,1.3337,0.207591,-0.276273,
        -0.406685,-0.158702,0.899678,1.236552,0.195985,-0.302876,
-       -0.127934,0.082246,0.988367,1.280379,0.260640,-0.288796,
-       -0.304580,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+       -0.127934,0.082246,0.988367,1.280379,0.26064,-0.288796,
+       -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
        -0.094868,-0.409964,0.907155,1.067539,0.338617,-0.324103,
-       -0.307110,-0.324628,0.894595,1.127320,0.306289,-0.321002,
-       -0.304580,-0.744204,0.594467,1.065609,0.289676,-0.361795,
-       -0.307110,-0.324628,0.894595,1.127320,0.306289,-0.321002,
+       -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
+       -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+       -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
        -0.547648,-0.532516,0.645374,1.112441,0.256132,-0.359359,
        -0.094868,-0.409964,0.907155,1.067539,0.338617,-0.324103,
-       0.012549,-0.001301,0.999920,1.069855,0.397346,-0.311539,
-       -0.066605,0.014310,0.997677,1.145175,0.366478,-0.308217,
-       -0.066605,0.014310,0.997677,1.145175,0.366478,-0.308217,
-       -0.307110,-0.324628,0.894595,1.127320,0.306289,-0.321002,
+       0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
+       -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
+       -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
+       -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
        -0.094868,-0.409964,0.907155,1.067539,0.338617,-0.324103,
-       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.300040,
-       -0.382336,-0.228691,0.895276,1.184630,0.255055,-0.313371,
-       -0.307110,-0.324628,0.894595,1.127320,0.306289,-0.321002,
-       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.300040,
-       -0.307110,-0.324628,0.894595,1.127320,0.306289,-0.321002,
-       -0.066605,0.014310,0.997677,1.145175,0.366478,-0.308217,
-       -0.382336,-0.228691,0.895276,1.184630,0.255055,-0.313371,
+       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
+       -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
+       -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
+       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
+       -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
+       -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
+       -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
        -0.659424,-0.432639,0.614804,1.158118,0.203222,-0.353363,
        -0.547648,-0.532516,0.645374,1.112441,0.256132,-0.359359,
        -0.547648,-0.532516,0.645374,1.112441,0.256132,-0.359359,
-       -0.307110,-0.324628,0.894595,1.127320,0.306289,-0.321002,
-       -0.382336,-0.228691,0.895276,1.184630,0.255055,-0.313371,
+       -0.30711,-0.324628,0.894595,1.12732,0.306289,-0.321002,
+       -0.382336,-0.228691,0.895276,1.18463,0.255055,-0.313371,
        0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
-       0.089470,0.746330,0.659535,1.074101,0.505017,-0.361795,
+       0.08947,0.74633,0.659535,1.074101,0.505017,-0.361795,
        0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
        0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
        0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
        0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
-       0.306584,0.689695,0.655994,1.274769,0.431290,-0.353363,
+       0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
        0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
        0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
-       0.306584,0.689695,0.655994,1.274769,0.431290,-0.353363,
+       0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
        0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
        0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
        0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
-       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.300040,
-       -0.066605,0.014310,0.997677,1.145175,0.366478,-0.308217,
-       -0.066605,0.014310,0.997677,1.145175,0.366478,-0.308217,
+       -0.106175,0.048409,0.993168,1.216443,0.317256,-0.30004,
+       -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
+       -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
        0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
        0.126992,0.363931,0.922728,1.248257,0.379456,-0.313371,
-       0.012549,-0.001301,0.999920,1.069855,0.397346,-0.311539,
+       0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
        0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
        0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
-       0.012549,-0.001301,0.999920,1.069855,0.397346,-0.311539,
+       0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
        0.115814,0.384301,0.915915,1.163029,0.426667,-0.321002,
-       -0.066605,0.014310,0.997677,1.145175,0.366478,-0.308217,
-       0.311074,0.631830,-0.709947,1.431839,0.331232,-0.664066,
+       -0.066605,0.01431,0.997677,1.145175,0.366478,-0.308217,
+       0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
        0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
-       0.462800,0.825265,-0.323657,1.382643,0.411500,-0.584482,
-       0.311074,0.631830,-0.709947,1.431839,0.331232,-0.664066,
-       0.462800,0.825265,-0.323657,1.382643,0.411500,-0.584482,
-       0.339667,0.655519,-0.674478,1.360730,0.379173,-0.654883,
+       0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
+       0.311074,0.63183,-0.709947,1.431839,0.331232,-0.664066,
+       0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
+       0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
        0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
-       0.489941,0.871755,-0.000000,1.467526,0.376193,-0.500000,
-       0.499794,0.866144,0.000000,1.389948,0.422275,-0.500000,
-       0.499794,0.866144,0.000000,1.389948,0.422275,-0.500000,
-       0.462800,0.825265,-0.323657,1.382643,0.411500,-0.584482,
+       0.489941,0.871755,0,1.467526,0.376193,-0.5,
+       0.499794,0.866144,0,1.389948,0.422275,-0.5,
+       0.499794,0.866144,0,1.389948,0.422275,-0.5,
+       0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
        0.460195,0.823869,-0.330849,1.458604,0.364953,-0.589491,
-       0.445921,0.895072,0.000000,1.295978,0.472757,-0.500000,
-       0.408321,0.858475,-0.310315,1.290676,0.462390,-0.579984,
-       0.462800,0.825265,-0.323657,1.382643,0.411500,-0.584482,
-       0.445921,0.895072,0.000000,1.295978,0.472757,-0.500000,
-       0.462800,0.825265,-0.323657,1.382643,0.411500,-0.584482,
-       0.499794,0.866144,0.000000,1.389948,0.422275,-0.500000,
-       0.408321,0.858475,-0.310315,1.290676,0.462390,-0.579984,
-       0.306584,0.689695,-0.655994,1.274769,0.431290,-0.646637,
-       0.339667,0.655519,-0.674478,1.360730,0.379173,-0.654883,
-       0.339667,0.655519,-0.674478,1.360730,0.379173,-0.654883,
-       0.462800,0.825265,-0.323657,1.382643,0.411500,-0.584482,
-       0.408321,0.858475,-0.310315,1.290676,0.462390,-0.579984,
-       0.311074,0.631830,0.709947,1.431839,0.331232,-0.335934,
-       0.339667,0.655519,0.674478,1.360730,0.379173,-0.345117,
-       0.462800,0.825265,0.323657,1.382643,0.411500,-0.415518,
-       0.311074,0.631830,0.709947,1.431839,0.331232,-0.335934,
-       0.462800,0.825265,0.323657,1.382643,0.411500,-0.415518,
+       0.445921,0.895072,0,1.295978,0.472757,-0.5,
+       0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
+       0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
+       0.445921,0.895072,0,1.295978,0.472757,-0.5,
+       0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
+       0.499794,0.866144,0,1.389948,0.422275,-0.5,
+       0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
+       0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
+       0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
+       0.339667,0.655519,-0.674478,1.36073,0.379173,-0.654883,
+       0.4628,0.825265,-0.323657,1.382643,0.4115,-0.584482,
+       0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
+       0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
+       0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+       0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
+       0.311074,0.63183,0.709947,1.431839,0.331232,-0.335934,
+       0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
        0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
-       0.339667,0.655519,0.674478,1.360730,0.379173,-0.345117,
-       0.306584,0.689695,0.655994,1.274769,0.431290,-0.353363,
-       0.408320,0.858475,0.310315,1.290676,0.462390,-0.420016,
-       0.408320,0.858475,0.310315,1.290676,0.462390,-0.420016,
-       0.462800,0.825265,0.323657,1.382643,0.411500,-0.415518,
-       0.339667,0.655519,0.674478,1.360730,0.379173,-0.345117,
-       0.445921,0.895072,0.000000,1.295978,0.472757,-0.500000,
-       0.499794,0.866144,0.000000,1.389948,0.422275,-0.500000,
-       0.462800,0.825265,0.323657,1.382643,0.411500,-0.415518,
-       0.445921,0.895072,0.000000,1.295978,0.472757,-0.500000,
-       0.462800,0.825265,0.323657,1.382643,0.411500,-0.415518,
-       0.408320,0.858475,0.310315,1.290676,0.462390,-0.420016,
-       0.499794,0.866144,0.000000,1.389948,0.422275,-0.500000,
-       0.489941,0.871755,-0.000000,1.467526,0.376193,-0.500000,
+       0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+       0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
+       0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
+       0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
+       0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
+       0.339667,0.655519,0.674478,1.36073,0.379173,-0.345117,
+       0.445921,0.895072,0,1.295978,0.472757,-0.5,
+       0.499794,0.866144,0,1.389948,0.422275,-0.5,
+       0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
+       0.445921,0.895072,0,1.295978,0.472757,-0.5,
+       0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
+       0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
+       0.499794,0.866144,0,1.389948,0.422275,-0.5,
+       0.489941,0.871755,0,1.467526,0.376193,-0.5,
        0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
        0.460195,0.823869,0.330849,1.458604,0.364953,-0.410509,
-       0.462800,0.825265,0.323657,1.382643,0.411500,-0.415518,
-       0.499794,0.866144,0.000000,1.389948,0.422275,-0.500000,
+       0.4628,0.825265,0.323657,1.382643,0.4115,-0.415518,
+       0.499794,0.866144,0,1.389948,0.422275,-0.5,
        0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
-       0.089470,0.746330,0.659535,1.074101,0.505017,-0.361795,
+       0.08947,0.74633,0.659535,1.074101,0.505017,-0.361795,
        0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
        0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
        0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
        0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
-       0.156232,0.987720,-0.000000,1.075645,0.544169,-0.500000,
-       0.336559,0.941662,0.000000,1.189812,0.516951,-0.500000,
+       0.156232,0.98772,0,1.075645,0.544169,-0.5,
+       0.336559,0.941662,0,1.189812,0.516951,-0.5,
        0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
-       0.156232,0.987720,-0.000000,1.075645,0.544169,-0.500000,
+       0.156232,0.98772,0,1.075645,0.544169,-0.5,
        0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
        0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
-       0.336559,0.941662,0.000000,1.189812,0.516951,-0.500000,
-       0.445921,0.895072,0.000000,1.295978,0.472757,-0.500000,
-       0.408320,0.858475,0.310315,1.290676,0.462390,-0.420016,
-       0.408320,0.858475,0.310315,1.290676,0.462390,-0.420016,
+       0.336559,0.941662,0,1.189812,0.516951,-0.5,
+       0.445921,0.895072,0,1.295978,0.472757,-0.5,
+       0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
+       0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
        0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
-       0.336559,0.941662,0.000000,1.189812,0.516951,-0.500000,
-       0.306584,0.689695,0.655994,1.274769,0.431290,-0.353363,
+       0.336559,0.941662,0,1.189812,0.516951,-0.5,
+       0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
        0.225321,0.739198,0.634679,1.177908,0.476825,-0.359359,
        0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
-       0.306584,0.689695,0.655994,1.274769,0.431290,-0.353363,
+       0.306584,0.689695,0.655994,1.274769,0.43129,-0.353363,
        0.298199,0.907962,0.294419,1.186836,0.506919,-0.423287,
-       0.408320,0.858475,0.310315,1.290676,0.462390,-0.420016,
+       0.40832,0.858475,0.310315,1.290676,0.46239,-0.420016,
        0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
-       0.089470,0.746330,-0.659535,1.074101,0.505017,-0.638205,
+       0.08947,0.74633,-0.659535,1.074101,0.505017,-0.638205,
        0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
        0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
        0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
        0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
-       0.306584,0.689695,-0.655994,1.274769,0.431290,-0.646637,
-       0.408321,0.858475,-0.310315,1.290676,0.462390,-0.579984,
+       0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
+       0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
        0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
-       0.306584,0.689695,-0.655994,1.274769,0.431290,-0.646637,
+       0.306584,0.689695,-0.655994,1.274769,0.43129,-0.646637,
        0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
        0.225321,0.739198,-0.634679,1.177908,0.476825,-0.640641,
-       0.408321,0.858475,-0.310315,1.290676,0.462390,-0.579984,
-       0.445921,0.895072,0.000000,1.295978,0.472757,-0.500000,
-       0.336559,0.941662,0.000000,1.189812,0.516951,-0.500000,
-       0.336559,0.941662,0.000000,1.189812,0.516951,-0.500000,
+       0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
+       0.445921,0.895072,0,1.295978,0.472757,-0.5,
+       0.336559,0.941662,0,1.189812,0.516951,-0.5,
+       0.336559,0.941662,0,1.189812,0.516951,-0.5,
        0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
-       0.408321,0.858475,-0.310315,1.290676,0.462390,-0.579984,
-       0.156232,0.987720,-0.000000,1.075645,0.544169,-0.500000,
+       0.408321,0.858475,-0.310315,1.290676,0.46239,-0.579984,
+       0.156232,0.98772,0,1.075645,0.544169,-0.5,
        0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
        0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
-       0.156232,0.987720,-0.000000,1.075645,0.544169,-0.500000,
+       0.156232,0.98772,0,1.075645,0.544169,-0.5,
        0.298199,0.907962,-0.294419,1.186836,0.506919,-0.576713,
-       0.336559,0.941662,0.000000,1.189812,0.516951,-0.500000,
+       0.336559,0.941662,0,1.189812,0.516951,-0.5,
        -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
        -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
        -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
        -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
        -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
        -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
-       0.160738,0.160922,-0.973790,0.801042,0.315496,-0.723727,
-       0.142808,0.115868,-0.982945,0.855345,0.349190,-0.711204,
+       0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
+       0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
        -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
-       0.160738,0.160922,-0.973790,0.801042,0.315496,-0.723727,
+       0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
        -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
        -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
-       0.142808,0.115868,-0.982945,0.855345,0.349190,-0.711204,
-       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.699960,
-       -0.024081,0.437847,-0.898727,0.889770,0.437716,-0.686629,
-       -0.024081,0.437847,-0.898727,0.889770,0.437716,-0.686629,
+       0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
+       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
+       -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
+       -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
        -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
-       0.142808,0.115868,-0.982945,0.855345,0.349190,-0.711204,
+       0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
        -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
        -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
        -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
        -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
        -0.044996,0.438512,-0.897598,0.808756,0.407522,-0.697124,
-       -0.024081,0.437847,-0.898727,0.889770,0.437716,-0.686629,
-       0.398283,-0.122544,-0.909040,0.860532,0.255958,-0.708812,
-       0.662820,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+       -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
+       0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
+       0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
        0.585878,-0.414463,-0.696396,0.940757,0.242249,-0.654883,
        0.585878,-0.414463,-0.696396,0.940757,0.242249,-0.654883,
        0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
-       0.398283,-0.122544,-0.909040,0.860532,0.255958,-0.708812,
+       0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
        0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
        0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
        0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
        0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
        0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
        0.585878,-0.414463,-0.696396,0.940757,0.242249,-0.654883,
-       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.699960,
-       0.142808,0.115868,-0.982945,0.855345,0.349190,-0.711204,
+       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
+       0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
        0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
-       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.699960,
+       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
        0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
        0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
-       0.142808,0.115868,-0.982945,0.855345,0.349190,-0.711204,
-       0.160738,0.160922,-0.973790,0.801042,0.315496,-0.723727,
-       0.398283,-0.122544,-0.909040,0.860532,0.255958,-0.708812,
-       0.398283,-0.122544,-0.909040,0.860532,0.255958,-0.708812,
+       0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
+       0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
+       0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
+       0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
        0.362669,-0.212082,-0.907465,0.901933,0.290859,-0.697124,
-       0.142808,0.115868,-0.982945,0.855345,0.349190,-0.711204,
+       0.142808,0.115868,-0.982945,0.855345,0.34919,-0.711204,
        0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
-       -0.304580,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+       -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
        -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
        -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
        0.118719,-0.361063,-0.924954,1.008203,0.340968,-0.678998,
        0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
-       0.012548,-0.001301,-0.999920,1.069855,0.397346,-0.688461,
-       0.086047,0.023651,-0.996010,0.993766,0.398899,-0.691783,
+       0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
+       0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
        0.118719,-0.361063,-0.924954,1.008203,0.340968,-0.678998,
-       0.012548,-0.001301,-0.999920,1.069855,0.397346,-0.688461,
+       0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
        0.118719,-0.361063,-0.924954,1.008203,0.340968,-0.678998,
        -0.094868,-0.409964,-0.907155,1.067539,0.338617,-0.675897,
-       0.086047,0.023651,-0.996010,0.993766,0.398899,-0.691783,
-       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.699960,
+       0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
+       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
        0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
        0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
        0.118719,-0.361063,-0.924954,1.008203,0.340968,-0.678998,
-       0.086047,0.023651,-0.996010,0.993766,0.398899,-0.691783,
+       0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
        0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
        0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
        0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
        0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
        0.118719,-0.361063,-0.924954,1.008203,0.340968,-0.678998,
        0.281388,-0.318777,-0.905098,0.952079,0.322122,-0.686629,
-       0.089470,0.746330,-0.659535,1.074101,0.505017,-0.638205,
-       -0.041682,0.783340,-0.620195,0.967299,0.505105,-0.640641,
-       0.017449,0.433004,-0.901223,0.979330,0.456830,-0.678998,
-       0.089470,0.746330,-0.659535,1.074101,0.505017,-0.638205,
-       0.017449,0.433004,-0.901223,0.979330,0.456830,-0.678998,
+       0.08947,0.74633,-0.659535,1.074101,0.505017,-0.638205,
+       -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
+       0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
+       0.08947,0.74633,-0.659535,1.074101,0.505017,-0.638205,
+       0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
        0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
-       -0.041682,0.783340,-0.620195,0.967299,0.505105,-0.640641,
+       -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
        -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
-       -0.024081,0.437847,-0.898727,0.889770,0.437716,-0.686629,
-       -0.024081,0.437847,-0.898727,0.889770,0.437716,-0.686629,
-       0.017449,0.433004,-0.901223,0.979330,0.456830,-0.678998,
-       -0.041682,0.783340,-0.620195,0.967299,0.505105,-0.640641,
-       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.699960,
-       0.086047,0.023651,-0.996010,0.993766,0.398899,-0.691783,
-       0.017449,0.433004,-0.901223,0.979330,0.456830,-0.678998,
-       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.699960,
-       0.017449,0.433004,-0.901223,0.979330,0.456830,-0.678998,
-       -0.024081,0.437847,-0.898727,0.889770,0.437716,-0.686629,
-       0.086047,0.023651,-0.996010,0.993766,0.398899,-0.691783,
-       0.012548,-0.001301,-0.999920,1.069855,0.397346,-0.688461,
+       -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
+       -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
+       0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
+       -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
+       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
+       0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
+       0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
+       0.124797,0.069981,-0.989711,0.920924,0.379919,-0.69996,
+       0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
+       -0.024081,0.437847,-0.898727,0.88977,0.437716,-0.686629,
+       0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
+       0.012548,-0.001301,-0.99992,1.069855,0.397346,-0.688461,
        0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
        0.076521,0.412911,-0.907551,1.072171,0.456076,-0.675897,
-       0.017449,0.433004,-0.901223,0.979330,0.456830,-0.678998,
-       0.086047,0.023651,-0.996010,0.993766,0.398899,-0.691783,
+       0.017449,0.433004,-0.901223,0.97933,0.45683,-0.678998,
+       0.086047,0.023651,-0.99601,0.993766,0.398899,-0.691783,
        -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
        -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
        -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
        -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
        -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
-       -0.318420,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+       -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
        -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
        -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
-       -0.204970,0.936687,-0.283911,0.848231,0.514780,-0.579984,
-       -0.204970,0.936687,-0.283911,0.848231,0.514780,-0.579984,
+       -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
+       -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
        -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
        -0.199176,0.745044,-0.636583,0.769932,0.456132,-0.654883,
-       -0.237278,0.971442,0.000000,0.843038,0.524412,-0.500000,
-       -0.314129,0.949380,-0.000000,0.738873,0.495020,-0.500000,
+       -0.237278,0.971442,0,0.843038,0.524412,-0.5,
+       -0.314129,0.94938,0,0.738873,0.49502,-0.5,
        -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
-       -0.237278,0.971442,0.000000,0.843038,0.524412,-0.500000,
+       -0.237278,0.971442,0,0.843038,0.524412,-0.5,
        -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
-       -0.204970,0.936687,-0.283911,0.848231,0.514780,-0.579984,
-       -0.314129,0.949380,-0.000000,0.738873,0.495020,-0.500000,
-       -0.346116,0.938192,0.000000,0.652318,0.464340,-0.500000,
-       -0.318420,0.898971,-0.300764,0.662233,0.454417,-0.589491,
-       -0.318420,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+       -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
+       -0.314129,0.94938,0,0.738873,0.49502,-0.5,
+       -0.346116,0.938192,0,0.652318,0.46434,-0.5,
+       -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+       -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
        -0.283565,0.912815,-0.293871,0.746638,0.485298,-0.584482,
-       -0.314129,0.949380,-0.000000,0.738873,0.495020,-0.500000,
-       -0.041682,0.783340,-0.620195,0.967299,0.505105,-0.640641,
-       0.089470,0.746330,-0.659535,1.074101,0.505017,-0.638205,
+       -0.314129,0.94938,0,0.738873,0.49502,-0.5,
+       -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
+       0.08947,0.74633,-0.659535,1.074101,0.505017,-0.638205,
        0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
        0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
        -0.090849,0.947666,-0.306066,0.960081,0.534071,-0.576713,
-       -0.041682,0.783340,-0.620195,0.967299,0.505105,-0.640641,
+       -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
        0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
-       0.156232,0.987720,-0.000000,1.075645,0.544169,-0.500000,
-       -0.084634,0.996412,-0.000000,0.957675,0.543726,-0.500000,
-       -0.084634,0.996412,-0.000000,0.957675,0.543726,-0.500000,
+       0.156232,0.98772,0,1.075645,0.544169,-0.5,
+       -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+       -0.084634,0.996412,0,0.957675,0.543726,-0.5,
        -0.090849,0.947666,-0.306066,0.960081,0.534071,-0.576713,
        0.099282,0.948291,-0.301476,1.075259,0.534381,-0.575384,
-       -0.084634,0.996412,-0.000000,0.957675,0.543726,-0.500000,
-       -0.237278,0.971442,0.000000,0.843038,0.524412,-0.500000,
-       -0.204970,0.936687,-0.283911,0.848231,0.514780,-0.579984,
-       -0.204970,0.936687,-0.283911,0.848231,0.514780,-0.579984,
+       -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+       -0.237278,0.971442,0,0.843038,0.524412,-0.5,
+       -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
+       -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
        -0.090849,0.947666,-0.306066,0.960081,0.534071,-0.576713,
-       -0.084634,0.996412,-0.000000,0.957675,0.543726,-0.500000,
+       -0.084634,0.996412,0,0.957675,0.543726,-0.5,
        -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
-       -0.041682,0.783340,-0.620195,0.967299,0.505105,-0.640641,
+       -0.041682,0.78334,-0.620195,0.967299,0.505105,-0.640641,
        -0.090849,0.947666,-0.306066,0.960081,0.534071,-0.576713,
        -0.142137,0.766468,-0.626358,0.863808,0.485881,-0.646637,
        -0.090849,0.947666,-0.306066,0.960081,0.534071,-0.576713,
-       -0.204970,0.936687,-0.283911,0.848231,0.514780,-0.579984,
+       -0.20497,0.936687,-0.283911,0.848231,0.51478,-0.579984,
        0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
-       0.089470,0.746330,0.659535,1.074101,0.505017,-0.361795,
-       -0.041682,0.783340,0.620195,0.967299,0.505105,-0.359359,
-       -0.041682,0.783340,0.620195,0.967299,0.505105,-0.359359,
+       0.08947,0.74633,0.659535,1.074101,0.505017,-0.361795,
+       -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
+       -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
        -0.090849,0.947666,0.306066,0.960081,0.534071,-0.423287,
        0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
        -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
-       -0.204970,0.936687,0.283911,0.848231,0.514780,-0.420016,
+       -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
        -0.090849,0.947666,0.306066,0.960081,0.534071,-0.423287,
        -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
        -0.090849,0.947666,0.306066,0.960081,0.534071,-0.423287,
-       -0.041682,0.783340,0.620195,0.967299,0.505105,-0.359359,
-       -0.204970,0.936687,0.283911,0.848231,0.514780,-0.420016,
-       -0.237278,0.971442,0.000000,0.843038,0.524412,-0.500000,
-       -0.084634,0.996412,-0.000000,0.957675,0.543726,-0.500000,
-       -0.084634,0.996412,-0.000000,0.957675,0.543726,-0.500000,
+       -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
+       -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
+       -0.237278,0.971442,0,0.843038,0.524412,-0.5,
+       -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+       -0.084634,0.996412,0,0.957675,0.543726,-0.5,
        -0.090849,0.947666,0.306066,0.960081,0.534071,-0.423287,
-       -0.204970,0.936687,0.283911,0.848231,0.514780,-0.420016,
-       -0.084634,0.996412,-0.000000,0.957675,0.543726,-0.500000,
-       0.156232,0.987720,-0.000000,1.075645,0.544169,-0.500000,
+       -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
+       -0.084634,0.996412,0,0.957675,0.543726,-0.5,
+       0.156232,0.98772,0,1.075645,0.544169,-0.5,
        0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
        0.099282,0.948291,0.301476,1.075259,0.534381,-0.424615,
        -0.090849,0.947666,0.306066,0.960081,0.534071,-0.423287,
-       -0.084634,0.996412,-0.000000,0.957675,0.543726,-0.500000,
+       -0.084634,0.996412,0,0.957675,0.543726,-0.5,
        -0.218035,0.735069,0.641977,0.691977,0.424648,-0.335934,
        -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
        -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
@@ -1039,23 +1039,23 @@ static const float data[]={
        -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
        -0.199176,0.745044,0.636583,0.769932,0.456132,-0.345117,
        -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
-       -0.346116,0.938192,0.000000,0.652318,0.464340,-0.500000,
-       -0.314129,0.949380,-0.000000,0.738873,0.495020,-0.500000,
-       -0.314129,0.949380,-0.000000,0.738873,0.495020,-0.500000,
+       -0.346116,0.938192,0,0.652318,0.46434,-0.5,
+       -0.314129,0.94938,0,0.738873,0.49502,-0.5,
+       -0.314129,0.94938,0,0.738873,0.49502,-0.5,
        -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
        -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
-       -0.237278,0.971442,0.000000,0.843038,0.524412,-0.500000,
-       -0.204970,0.936687,0.283911,0.848231,0.514780,-0.420016,
+       -0.237278,0.971442,0,0.843038,0.524412,-0.5,
+       -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
        -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
-       -0.237278,0.971442,0.000000,0.843038,0.524412,-0.500000,
+       -0.237278,0.971442,0,0.843038,0.524412,-0.5,
        -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
-       -0.314129,0.949380,-0.000000,0.738873,0.495020,-0.500000,
-       -0.204970,0.936687,0.283911,0.848231,0.514780,-0.420016,
+       -0.314129,0.94938,0,0.738873,0.49502,-0.5,
+       -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
        -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
        -0.199176,0.745044,0.636583,0.769932,0.456132,-0.345117,
        -0.199176,0.745044,0.636583,0.769932,0.456132,-0.345117,
        -0.283565,0.912815,0.293871,0.746638,0.485298,-0.415518,
-       -0.204970,0.936687,0.283911,0.848231,0.514780,-0.420016,
+       -0.20497,0.936687,0.283911,0.848231,0.51478,-0.420016,
        -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
        -0.218035,0.735069,0.641977,0.691977,0.424648,-0.335934,
        -0.199176,0.745044,0.636583,0.769932,0.456132,-0.345117,
@@ -1063,49 +1063,49 @@ static const float data[]={
        -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
        -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
        -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
-       -0.024081,0.437847,0.898727,0.889770,0.437716,-0.313371,
+       -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
        -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
        -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
        -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
        -0.199176,0.745044,0.636583,0.769932,0.456132,-0.345117,
-       -0.024081,0.437847,0.898727,0.889770,0.437716,-0.313371,
-       0.124797,0.069981,0.989711,0.920924,0.379919,-0.300040,
-       0.142808,0.115868,0.982945,0.855345,0.349190,-0.288796,
-       0.142808,0.115868,0.982945,0.855345,0.349190,-0.288796,
+       -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
+       0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
+       0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
+       0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
        -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
-       -0.024081,0.437847,0.898727,0.889770,0.437716,-0.313371,
-       0.160738,0.160922,0.973790,0.801042,0.315496,-0.276273,
+       -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
+       0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
        -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
        -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
-       0.160738,0.160922,0.973790,0.801042,0.315496,-0.276273,
+       0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
        -0.044996,0.438512,0.897598,0.808756,0.407522,-0.302876,
-       0.142808,0.115868,0.982945,0.855345,0.349190,-0.288796,
-       0.089470,0.746330,0.659535,1.074101,0.505017,-0.361795,
+       0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
+       0.08947,0.74633,0.659535,1.074101,0.505017,-0.361795,
        0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
-       0.017449,0.433004,0.901223,0.979330,0.456830,-0.321002,
-       0.089470,0.746330,0.659535,1.074101,0.505017,-0.361795,
-       0.017449,0.433004,0.901223,0.979330,0.456830,-0.321002,
-       -0.041682,0.783340,0.620195,0.967299,0.505105,-0.359359,
+       0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
+       0.08947,0.74633,0.659535,1.074101,0.505017,-0.361795,
+       0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
+       -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
        0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
-       0.012549,-0.001301,0.999920,1.069855,0.397346,-0.311539,
-       0.086047,0.023651,0.996010,0.993766,0.398899,-0.308217,
-       0.086047,0.023651,0.996010,0.993766,0.398899,-0.308217,
-       0.017449,0.433004,0.901223,0.979330,0.456830,-0.321002,
+       0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
+       0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
+       0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
+       0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
        0.076521,0.412911,0.907551,1.072171,0.456076,-0.324103,
-       0.124797,0.069981,0.989711,0.920924,0.379919,-0.300040,
-       -0.024081,0.437847,0.898727,0.889770,0.437716,-0.313371,
-       0.017449,0.433004,0.901223,0.979330,0.456830,-0.321002,
-       0.124797,0.069981,0.989711,0.920924,0.379919,-0.300040,
-       0.017449,0.433004,0.901223,0.979330,0.456830,-0.321002,
-       0.086047,0.023651,0.996010,0.993766,0.398899,-0.308217,
-       -0.024081,0.437847,0.898727,0.889770,0.437716,-0.313371,
+       0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
+       -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
+       0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
+       0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
+       0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
+       0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
+       -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
        -0.142137,0.766468,0.626358,0.863808,0.485881,-0.353363,
-       -0.041682,0.783340,0.620195,0.967299,0.505105,-0.359359,
-       -0.041682,0.783340,0.620195,0.967299,0.505105,-0.359359,
-       0.017449,0.433004,0.901223,0.979330,0.456830,-0.321002,
-       -0.024081,0.437847,0.898727,0.889770,0.437716,-0.313371,
+       -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
+       -0.041682,0.78334,0.620195,0.967299,0.505105,-0.359359,
+       0.017449,0.433004,0.901223,0.97933,0.45683,-0.321002,
+       -0.024081,0.437847,0.898727,0.88977,0.437716,-0.313371,
        -0.094868,-0.409964,0.907155,1.067539,0.338617,-0.324103,
-       -0.304580,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+       -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
        0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
        0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
        0.118719,-0.361063,0.924954,1.008203,0.340968,-0.321002,
@@ -1117,277 +1117,277 @@ static const float data[]={
        0.118719,-0.361063,0.924954,1.008203,0.340968,-0.321002,
        0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
        0.281389,-0.318776,0.905098,0.952079,0.322122,-0.313371,
-       0.124797,0.069981,0.989711,0.920924,0.379919,-0.300040,
-       0.086047,0.023651,0.996010,0.993766,0.398899,-0.308217,
-       0.086047,0.023651,0.996010,0.993766,0.398899,-0.308217,
+       0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
+       0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
+       0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
        0.118719,-0.361063,0.924954,1.008203,0.340968,-0.321002,
        0.281389,-0.318776,0.905098,0.952079,0.322122,-0.313371,
-       0.012549,-0.001301,0.999920,1.069855,0.397346,-0.311539,
+       0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
        -0.094868,-0.409964,0.907155,1.067539,0.338617,-0.324103,
        0.118719,-0.361063,0.924954,1.008203,0.340968,-0.321002,
-       0.012549,-0.001301,0.999920,1.069855,0.397346,-0.311539,
+       0.012549,-0.001301,0.99992,1.069855,0.397346,-0.311539,
        0.118719,-0.361063,0.924954,1.008203,0.340968,-0.321002,
-       0.086047,0.023651,0.996010,0.993766,0.398899,-0.308217,
+       0.086047,0.023651,0.99601,0.993766,0.398899,-0.308217,
        0.585878,-0.414463,0.696396,0.940757,0.242249,-0.345117,
-       0.662820,-0.338306,0.667996,0.910107,0.206343,-0.335934,
-       0.398283,-0.122544,0.909040,0.860532,0.255958,-0.291188,
-       0.398283,-0.122544,0.909040,0.860532,0.255958,-0.291188,
+       0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+       0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
+       0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
        0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
        0.585878,-0.414463,0.696396,0.940757,0.242249,-0.345117,
-       0.398283,-0.122544,0.909040,0.860532,0.255958,-0.291188,
-       0.160738,0.160922,0.973790,0.801042,0.315496,-0.276273,
-       0.142808,0.115868,0.982945,0.855345,0.349190,-0.288796,
-       0.142808,0.115868,0.982945,0.855345,0.349190,-0.288796,
+       0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
+       0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
+       0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
+       0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
        0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
-       0.398283,-0.122544,0.909040,0.860532,0.255958,-0.291188,
-       0.124797,0.069981,0.989711,0.920924,0.379919,-0.300040,
+       0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
+       0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
        0.281389,-0.318776,0.905098,0.952079,0.322122,-0.313371,
        0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
-       0.124797,0.069981,0.989711,0.920924,0.379919,-0.300040,
+       0.124797,0.069981,0.989711,0.920924,0.379919,-0.30004,
        0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
-       0.142808,0.115868,0.982945,0.855345,0.349190,-0.288796,
+       0.142808,0.115868,0.982945,0.855345,0.34919,-0.288796,
        0.514373,-0.562786,0.647064,0.978041,0.273957,-0.353363,
        0.585878,-0.414463,0.696396,0.940757,0.242249,-0.345117,
        0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
        0.514373,-0.562786,0.647064,0.978041,0.273957,-0.353363,
        0.362669,-0.212082,0.907465,0.901933,0.290859,-0.302876,
        0.281389,-0.318776,0.905098,0.952079,0.322122,-0.313371,
-       0.662820,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+       0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
        0.585878,-0.414463,0.696396,0.940757,0.242249,-0.345117,
        0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
-       0.662820,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+       0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
        0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
        0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
        0.514373,-0.562786,0.647064,0.978041,0.273957,-0.353363,
-       0.575394,-0.755507,0.313260,0.993618,0.245059,-0.420016,
+       0.575394,-0.755507,0.31326,0.993618,0.245059,-0.420016,
        0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
        0.514373,-0.562786,0.647064,0.978041,0.273957,-0.353363,
        0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
        0.585878,-0.414463,0.696396,0.940757,0.242249,-0.345117,
-       0.637531,-0.770425,0.000000,0.998811,0.235426,-0.500000,
-       0.823450,-0.567389,-0.000000,0.971816,0.203361,-0.500000,
+       0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+       0.82345,-0.567389,0,0.971816,0.203361,-0.5,
        0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
-       0.637531,-0.770425,0.000000,0.998811,0.235426,-0.500000,
+       0.637531,-0.770425,0,0.998811,0.235426,-0.5,
        0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
-       0.575394,-0.755507,0.313260,0.993618,0.245059,-0.420016,
-       0.823450,-0.567389,-0.000000,0.971816,0.203361,-0.500000,
-       0.879883,-0.475191,-0.000000,0.949767,0.166652,-0.500000,
+       0.575394,-0.755507,0.31326,0.993618,0.245059,-0.420016,
+       0.82345,-0.567389,0,0.971816,0.203361,-0.5,
+       0.879883,-0.475191,0,0.949767,0.166652,-0.5,
        0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
        0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
        0.748153,-0.579603,0.322997,0.964051,0.213083,-0.415518,
-       0.823450,-0.567389,-0.000000,0.971816,0.203361,-0.500000,
-       -0.304580,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+       0.82345,-0.567389,0,0.971816,0.203361,-0.5,
+       -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
        -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
        0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
-       -0.304580,-0.744204,0.594467,1.065609,0.289676,-0.361795,
+       -0.30458,-0.744204,0.594467,1.065609,0.289676,-0.361795,
        0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
        0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
        -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
-       -0.417976,-0.908458,0.000000,1.064065,0.250523,-0.500000,
-       0.113113,-0.993582,0.000000,1.029858,0.254072,-0.500000,
-       0.113113,-0.993582,0.000000,1.029858,0.254072,-0.500000,
+       -0.417976,-0.908458,0,1.064065,0.250523,-0.5,
+       0.113113,-0.993582,0,1.029858,0.254072,-0.5,
+       0.113113,-0.993582,0,1.029858,0.254072,-0.5,
        0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
        -0.393741,-0.892942,0.218225,1.064451,0.260311,-0.424615,
-       0.637531,-0.770425,0.000000,0.998811,0.235426,-0.500000,
-       0.575394,-0.755507,0.313260,0.993618,0.245059,-0.420016,
+       0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+       0.575394,-0.755507,0.31326,0.993618,0.245059,-0.420016,
        0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
-       0.637531,-0.770425,0.000000,0.998811,0.235426,-0.500000,
+       0.637531,-0.770425,0,0.998811,0.235426,-0.5,
        0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
-       0.113113,-0.993582,0.000000,1.029858,0.254072,-0.500000,
-       0.575394,-0.755507,0.313260,0.993618,0.245059,-0.420016,
+       0.113113,-0.993582,0,1.029858,0.254072,-0.5,
+       0.575394,-0.755507,0.31326,0.993618,0.245059,-0.420016,
        0.514373,-0.562786,0.647064,0.978041,0.273957,-0.353363,
        0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
        0.223486,-0.713834,0.663698,1.020234,0.292692,-0.359359,
        0.224558,-0.931869,0.284944,1.027452,0.263727,-0.423287,
-       0.575394,-0.755507,0.313260,0.993618,0.245059,-0.420016,
-       -0.304580,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+       0.575394,-0.755507,0.31326,0.993618,0.245059,-0.420016,
+       -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
        0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
        0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
-       -0.304580,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
+       -0.30458,-0.744204,-0.594467,1.065609,0.289676,-0.638205,
        0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
-       -0.393740,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+       -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
        0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
        0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
-       0.575393,-0.755507,-0.313260,0.993618,0.245059,-0.579984,
-       0.575393,-0.755507,-0.313260,0.993618,0.245059,-0.579984,
+       0.575393,-0.755507,-0.31326,0.993618,0.245059,-0.579984,
+       0.575393,-0.755507,-0.31326,0.993618,0.245059,-0.579984,
        0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
        0.223486,-0.713834,-0.663698,1.020234,0.292692,-0.640641,
-       0.637531,-0.770425,0.000000,0.998811,0.235426,-0.500000,
-       0.113113,-0.993582,0.000000,1.029858,0.254072,-0.500000,
+       0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+       0.113113,-0.993582,0,1.029858,0.254072,-0.5,
        0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
-       0.637531,-0.770425,0.000000,0.998811,0.235426,-0.500000,
+       0.637531,-0.770425,0,0.998811,0.235426,-0.5,
        0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
-       0.575393,-0.755507,-0.313260,0.993618,0.245059,-0.579984,
-       0.113113,-0.993582,0.000000,1.029858,0.254072,-0.500000,
-       -0.417976,-0.908458,0.000000,1.064065,0.250523,-0.500000,
-       -0.393740,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
-       -0.393740,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+       0.575393,-0.755507,-0.31326,0.993618,0.245059,-0.579984,
+       0.113113,-0.993582,0,1.029858,0.254072,-0.5,
+       -0.417976,-0.908458,0,1.064065,0.250523,-0.5,
+       -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
+       -0.39374,-0.892943,-0.218225,1.064451,0.260311,-0.575384,
        0.224558,-0.931869,-0.284944,1.027452,0.263727,-0.576713,
-       0.113113,-0.993582,0.000000,1.029858,0.254072,-0.500000,
-       0.662820,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+       0.113113,-0.993582,0,1.029858,0.254072,-0.5,
+       0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
        0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
        0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
-       0.662820,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+       0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
        0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
        0.585878,-0.414463,-0.696396,0.940757,0.242249,-0.654883,
        0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
-       0.879883,-0.475191,-0.000000,0.949767,0.166652,-0.500000,
-       0.823450,-0.567389,-0.000000,0.971816,0.203361,-0.500000,
-       0.823450,-0.567389,-0.000000,0.971816,0.203361,-0.500000,
+       0.879883,-0.475191,0,0.949767,0.166652,-0.5,
+       0.82345,-0.567389,0,0.971816,0.203361,-0.5,
+       0.82345,-0.567389,0,0.971816,0.203361,-0.5,
        0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
        0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
-       0.637531,-0.770425,0.000000,0.998811,0.235426,-0.500000,
-       0.575393,-0.755507,-0.313260,0.993618,0.245059,-0.579984,
+       0.637531,-0.770425,0,0.998811,0.235426,-0.5,
+       0.575393,-0.755507,-0.31326,0.993618,0.245059,-0.579984,
        0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
-       0.637531,-0.770425,0.000000,0.998811,0.235426,-0.500000,
+       0.637531,-0.770425,0,0.998811,0.235426,-0.5,
        0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
-       0.823450,-0.567389,-0.000000,0.971816,0.203361,-0.500000,
+       0.82345,-0.567389,0,0.971816,0.203361,-0.5,
        0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
        0.585878,-0.414463,-0.696396,0.940757,0.242249,-0.654883,
        0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
        0.514373,-0.562786,-0.647064,0.978041,0.273957,-0.646637,
        0.748153,-0.579603,-0.322997,0.964051,0.213083,-0.584482,
-       0.575393,-0.755507,-0.313260,0.993618,0.245059,-0.579984,
-       0.655740,-0.380493,0.652097,0.887817,0.175019,-0.327123,
-       0.662820,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+       0.575393,-0.755507,-0.31326,0.993618,0.245059,-0.579984,
+       0.65574,-0.380493,0.652097,0.887817,0.175019,-0.327123,
+       0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
        0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
        0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
-       0.788892,-0.514111,0.336659,0.922122,0.144310,-0.405704,
-       0.655740,-0.380493,0.652097,0.887817,0.175019,-0.327123,
-       0.879883,-0.475191,-0.000000,0.949767,0.166652,-0.500000,
-       0.818537,-0.574454,-0.000000,0.933557,0.134073,-0.500000,
-       0.788892,-0.514111,0.336659,0.922122,0.144310,-0.405704,
-       0.879883,-0.475191,-0.000000,0.949767,0.166652,-0.500000,
-       0.788892,-0.514111,0.336659,0.922122,0.144310,-0.405704,
+       0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
+       0.65574,-0.380493,0.652097,0.887817,0.175019,-0.327123,
+       0.879883,-0.475191,0,0.949767,0.166652,-0.5,
+       0.818537,-0.574454,0,0.933557,0.134073,-0.5,
+       0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
+       0.879883,-0.475191,0,0.949767,0.166652,-0.5,
+       0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
        0.828154,-0.461264,0.318428,0.939852,0.176575,-0.410509,
-       0.818537,-0.574454,-0.000000,0.933557,0.134073,-0.500000,
-       0.394485,-0.918903,-0.000000,0.915792,0.112008,-0.500000,
-       0.520237,-0.801686,0.294369,0.903840,0.122594,-0.405051,
-       0.520237,-0.801686,0.294369,0.903840,0.122594,-0.405051,
-       0.788892,-0.514111,0.336659,0.922122,0.144310,-0.405704,
-       0.818537,-0.574454,-0.000000,0.933557,0.134073,-0.500000,
-       0.319910,-0.691022,0.648187,0.867858,0.153664,-0.325812,
-       0.655740,-0.380493,0.652097,0.887817,0.175019,-0.327123,
-       0.788892,-0.514111,0.336659,0.922122,0.144310,-0.405704,
-       0.319910,-0.691022,0.648187,0.867858,0.153664,-0.325812,
-       0.788892,-0.514111,0.336659,0.922122,0.144310,-0.405704,
-       0.520237,-0.801686,0.294369,0.903840,0.122594,-0.405051,
+       0.818537,-0.574454,0,0.933557,0.134073,-0.5,
+       0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+       0.520237,-0.801686,0.294369,0.90384,0.122594,-0.405051,
+       0.520237,-0.801686,0.294369,0.90384,0.122594,-0.405051,
+       0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
+       0.818537,-0.574454,0,0.933557,0.134073,-0.5,
+       0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+       0.65574,-0.380493,0.652097,0.887817,0.175019,-0.327123,
+       0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
+       0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+       0.788892,-0.514111,0.336659,0.922122,0.14431,-0.405704,
+       0.520237,-0.801686,0.294369,0.90384,0.122594,-0.405051,
        0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
-       0.662820,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
-       0.655740,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
-       0.655740,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
-       0.788892,-0.514111,-0.336659,0.922122,0.144310,-0.594296,
+       0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+       0.65574,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
+       0.65574,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
+       0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
        0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
-       0.319910,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
-       0.520237,-0.801686,-0.294370,0.903840,0.122594,-0.594949,
-       0.788892,-0.514111,-0.336659,0.922122,0.144310,-0.594296,
-       0.319910,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
-       0.788892,-0.514111,-0.336659,0.922122,0.144310,-0.594296,
-       0.655740,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
-       0.520237,-0.801686,-0.294370,0.903840,0.122594,-0.594949,
-       0.394485,-0.918903,-0.000000,0.915792,0.112008,-0.500000,
-       0.818537,-0.574454,-0.000000,0.933557,0.134073,-0.500000,
-       0.818537,-0.574454,-0.000000,0.933557,0.134073,-0.500000,
-       0.788892,-0.514111,-0.336659,0.922122,0.144310,-0.594296,
-       0.520237,-0.801686,-0.294370,0.903840,0.122594,-0.594949,
-       0.879883,-0.475191,-0.000000,0.949767,0.166652,-0.500000,
+       0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+       0.520237,-0.801686,-0.29437,0.90384,0.122594,-0.594949,
+       0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
+       0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+       0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
+       0.65574,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
+       0.520237,-0.801686,-0.29437,0.90384,0.122594,-0.594949,
+       0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+       0.818537,-0.574454,0,0.933557,0.134073,-0.5,
+       0.818537,-0.574454,0,0.933557,0.134073,-0.5,
+       0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
+       0.520237,-0.801686,-0.29437,0.90384,0.122594,-0.594949,
+       0.879883,-0.475191,0,0.949767,0.166652,-0.5,
        0.828154,-0.461264,-0.318429,0.939852,0.176575,-0.589491,
-       0.788892,-0.514111,-0.336659,0.922122,0.144310,-0.594296,
-       0.879883,-0.475191,-0.000000,0.949767,0.166652,-0.500000,
-       0.788892,-0.514111,-0.336659,0.922122,0.144310,-0.594296,
-       0.818537,-0.574454,-0.000000,0.933557,0.134073,-0.500000,
+       0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
+       0.879883,-0.475191,0,0.949767,0.166652,-0.5,
+       0.788892,-0.514111,-0.336659,0.922122,0.14431,-0.594296,
+       0.818537,-0.574454,0,0.933557,0.134073,-0.5,
        -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
-       -0.483700,-0.869471,-0.100277,0.837530,0.133890,-0.582500,
-       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.587500,
+       -0.4837,-0.869471,-0.100277,0.83753,0.13389,-0.5825,
+       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
        -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
-       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.587500,
-       -0.233830,-0.869880,-0.434318,0.844199,0.147671,-0.660875,
-       -0.435927,-0.899982,0.000000,0.846018,0.123878,-0.500000,
-       -0.093893,-0.995582,0.000000,0.889078,0.106840,-0.500000,
-       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.587500,
-       -0.435927,-0.899982,0.000000,0.846018,0.123878,-0.500000,
-       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.587500,
-       -0.483700,-0.869471,-0.100277,0.837530,0.133890,-0.582500,
-       0.394485,-0.918903,-0.000000,0.915792,0.112008,-0.500000,
-       0.520237,-0.801686,-0.294370,0.903840,0.122594,-0.594949,
-       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.587500,
-       0.394485,-0.918903,-0.000000,0.915792,0.112008,-0.500000,
-       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.587500,
-       -0.093893,-0.995582,0.000000,0.889078,0.106840,-0.500000,
-       0.319910,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
-       -0.233830,-0.869880,-0.434318,0.844199,0.147671,-0.660875,
-       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.587500,
-       0.319910,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
-       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.587500,
-       0.520237,-0.801686,-0.294370,0.903840,0.122594,-0.594949,
+       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+       -0.23383,-0.86988,-0.434318,0.844199,0.147671,-0.660875,
+       -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+       -0.093893,-0.995582,0,0.889078,0.10684,-0.5,
+       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+       -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+       -0.4837,-0.869471,-0.100277,0.83753,0.13389,-0.5825,
+       0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+       0.520237,-0.801686,-0.29437,0.90384,0.122594,-0.594949,
+       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+       0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+       -0.093893,-0.995582,0,0.889078,0.10684,-0.5,
+       0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+       -0.23383,-0.86988,-0.434318,0.844199,0.147671,-0.660875,
+       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+       0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+       -0.146037,-0.967926,-0.204432,0.877985,0.117734,-0.5875,
+       0.520237,-0.801686,-0.29437,0.90384,0.122594,-0.594949,
        -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
-       -0.233830,-0.869880,0.434318,0.844199,0.147671,-0.339125,
-       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.412500,
+       -0.23383,-0.86988,0.434318,0.844199,0.147671,-0.339125,
+       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
        -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
-       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.412500,
-       -0.483700,-0.869471,0.100277,0.837530,0.133890,-0.417500,
-       0.319910,-0.691022,0.648187,0.867858,0.153664,-0.325812,
-       0.520237,-0.801686,0.294369,0.903840,0.122594,-0.405051,
-       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.412500,
-       0.319910,-0.691022,0.648187,0.867858,0.153664,-0.325812,
-       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.412500,
-       -0.233830,-0.869880,0.434318,0.844199,0.147671,-0.339125,
-       0.394485,-0.918903,-0.000000,0.915792,0.112008,-0.500000,
-       -0.093893,-0.995582,0.000000,0.889078,0.106840,-0.500000,
-       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.412500,
-       0.394485,-0.918903,-0.000000,0.915792,0.112008,-0.500000,
-       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.412500,
-       0.520237,-0.801686,0.294369,0.903840,0.122594,-0.405051,
-       -0.435927,-0.899982,0.000000,0.846018,0.123878,-0.500000,
-       -0.483700,-0.869471,0.100277,0.837530,0.133890,-0.417500,
-       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.412500,
-       -0.435927,-0.899982,0.000000,0.846018,0.123878,-0.500000,
-       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.412500,
-       -0.093893,-0.995582,0.000000,0.889078,0.106840,-0.500000,
-       0.662820,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
-       0.398283,-0.122544,-0.909040,0.860532,0.255958,-0.708812,
-       0.378094,-0.147323,-0.913970,0.830643,0.226200,-0.720025,
-       0.662820,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
-       0.378094,-0.147323,-0.913970,0.830643,0.226200,-0.720025,
-       0.655740,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
-       0.160738,0.160922,-0.973790,0.801042,0.315496,-0.723727,
+       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+       -0.4837,-0.869471,0.100277,0.83753,0.13389,-0.4175,
+       0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+       0.520237,-0.801686,0.294369,0.90384,0.122594,-0.405051,
+       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+       0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+       -0.23383,-0.86988,0.434318,0.844199,0.147671,-0.339125,
+       0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+       -0.093893,-0.995582,0,0.889078,0.10684,-0.5,
+       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+       0.394485,-0.918903,0,0.915792,0.112008,-0.5,
+       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+       0.520237,-0.801686,0.294369,0.90384,0.122594,-0.405051,
+       -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+       -0.4837,-0.869471,0.100277,0.83753,0.13389,-0.4175,
+       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+       -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+       -0.146037,-0.967926,0.204432,0.877985,0.117734,-0.4125,
+       -0.093893,-0.995582,0,0.889078,0.10684,-0.5,
+       0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+       0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
+       0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+       0.66282,-0.338306,-0.667996,0.910107,0.206343,-0.664066,
+       0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+       0.65574,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
+       0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
        0.108083,0.116579,-0.987283,0.762033,0.287619,-0.735741,
-       0.378094,-0.147323,-0.913970,0.830643,0.226200,-0.720025,
-       0.160738,0.160922,-0.973790,0.801042,0.315496,-0.723727,
-       0.378094,-0.147323,-0.913970,0.830643,0.226200,-0.720025,
-       0.398283,-0.122544,-0.909040,0.860532,0.255958,-0.708812,
+       0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+       0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
+       0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+       0.398283,-0.122544,-0.90904,0.860532,0.255958,-0.708812,
        0.108083,0.116579,-0.987283,0.762033,0.287619,-0.735741,
-       -0.233968,-0.235900,-0.943191,0.735693,0.265534,-0.738060,
+       -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
        0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
        0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
-       0.378094,-0.147323,-0.913970,0.830643,0.226200,-0.720025,
+       0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
        0.108083,0.116579,-0.987283,0.762033,0.287619,-0.735741,
-       0.319910,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
-       0.655740,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
-       0.378094,-0.147323,-0.913970,0.830643,0.226200,-0.720025,
-       0.319910,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
-       0.378094,-0.147323,-0.913970,0.830643,0.226200,-0.720025,
+       0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+       0.65574,-0.380493,-0.652097,0.887817,0.175019,-0.672877,
+       0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
+       0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+       0.378094,-0.147323,-0.91397,0.830643,0.2262,-0.720025,
        0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
        -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
-       -0.304611,0.675798,-0.671200,0.636249,0.400218,-0.672877,
+       -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
        -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
        -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
        -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
        -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
-       -0.304611,0.675798,-0.671200,0.636249,0.400218,-0.672877,
-       -0.638487,0.393678,-0.661326,0.604310,0.378335,-0.674188,
-       -0.462569,0.070189,-0.883800,0.664060,0.327000,-0.722006,
-       -0.462569,0.070189,-0.883800,0.664060,0.327000,-0.722006,
+       -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
+       -0.638487,0.393678,-0.661326,0.60431,0.378335,-0.674188,
+       -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
+       -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
        -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
-       -0.304611,0.675798,-0.671200,0.636249,0.400218,-0.672877,
-       -0.233968,-0.235900,-0.943191,0.735693,0.265534,-0.738060,
+       -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
+       -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
        0.108083,0.116579,-0.987283,0.762033,0.287619,-0.735741,
        -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
-       -0.233968,-0.235900,-0.943191,0.735693,0.265534,-0.738060,
+       -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
        -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
-       -0.462569,0.070189,-0.883800,0.664060,0.327000,-0.722006,
+       -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
        0.108083,0.116579,-0.987283,0.762033,0.287619,-0.735741,
-       0.160738,0.160922,-0.973790,0.801042,0.315496,-0.723727,
+       0.160738,0.160922,-0.97379,0.801042,0.315496,-0.723727,
        -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
        -0.042916,0.448451,-0.892776,0.741552,0.375033,-0.708812,
        -0.106617,0.392034,-0.913752,0.693423,0.349037,-0.720025,
@@ -1396,338 +1396,338 @@ static const float data[]={
        -0.772673,-0.608887,-0.179534,0.608078,0.332278,-0.638667,
        -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
        -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
-       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706000,
+       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
        -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
        -0.635534,-0.736296,-0.232302,0.709997,0.238013,-0.677562,
-       -0.531095,-0.656282,-0.535940,0.719399,0.249218,-0.721500,
-       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706000,
+       -0.531095,-0.656282,-0.53594,0.719399,0.249218,-0.7215,
+       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
        -0.635534,-0.736296,-0.232302,0.709997,0.238013,-0.677562,
-       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706000,
+       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
        -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
-       -0.233968,-0.235900,-0.943191,0.735693,0.265534,-0.738060,
-       -0.462569,0.070189,-0.883800,0.664060,0.327000,-0.722006,
-       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706000,
-       -0.233968,-0.235900,-0.943191,0.735693,0.265534,-0.738060,
-       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706000,
-       -0.531095,-0.656282,-0.535940,0.719399,0.249218,-0.721500,
-       -0.462569,0.070189,-0.883800,0.664060,0.327000,-0.722006,
-       -0.638487,0.393678,-0.661326,0.604310,0.378335,-0.674188,
+       -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
+       -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
+       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
+       -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
+       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
+       -0.531095,-0.656282,-0.53594,0.719399,0.249218,-0.7215,
+       -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
+       -0.638487,0.393678,-0.661326,0.60431,0.378335,-0.674188,
        -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
        -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
-       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706000,
-       -0.462569,0.070189,-0.883800,0.664060,0.327000,-0.722006,
+       -0.660431,-0.496512,-0.563299,0.653151,0.306393,-0.706,
+       -0.462569,0.070189,-0.8838,0.66406,0.327,-0.722006,
        -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
-       -0.233830,-0.869880,-0.434318,0.844199,0.147671,-0.660875,
-       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706000,
+       -0.23383,-0.86988,-0.434318,0.844199,0.147671,-0.660875,
+       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
        -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
-       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706000,
+       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
        -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
-       -0.233830,-0.869880,-0.434318,0.844199,0.147671,-0.660875,
-       0.319910,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
+       -0.23383,-0.86988,-0.434318,0.844199,0.147671,-0.660875,
+       0.31991,-0.691022,-0.648187,0.867858,0.153664,-0.674188,
        0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
        0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
-       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706000,
-       -0.233830,-0.869880,-0.434318,0.844199,0.147671,-0.660875,
-       -0.233968,-0.235900,-0.943191,0.735693,0.265534,-0.738060,
-       -0.531095,-0.656282,-0.535940,0.719399,0.249218,-0.721500,
-       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706000,
-       -0.233968,-0.235900,-0.943191,0.735693,0.265534,-0.738060,
-       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706000,
+       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
+       -0.23383,-0.86988,-0.434318,0.844199,0.147671,-0.660875,
+       -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
+       -0.531095,-0.656282,-0.53594,0.719399,0.249218,-0.7215,
+       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
+       -0.233968,-0.2359,-0.943191,0.735693,0.265534,-0.73806,
+       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
        0.024413,-0.469703,-0.882487,0.807717,0.204533,-0.722006,
-       -0.531095,-0.656282,-0.535940,0.719399,0.249218,-0.721500,
+       -0.531095,-0.656282,-0.53594,0.719399,0.249218,-0.7215,
        -0.635534,-0.736296,-0.232302,0.709997,0.238013,-0.677562,
        -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
        -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
-       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706000,
-       -0.531095,-0.656282,-0.535940,0.719399,0.249218,-0.721500,
-       -0.304611,0.675798,-0.671200,0.636249,0.400218,-0.672877,
+       -0.376394,-0.756788,-0.534415,0.787209,0.193905,-0.706,
+       -0.531095,-0.656282,-0.53594,0.719399,0.249218,-0.7215,
+       -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
        -0.218035,0.735069,-0.641977,0.691977,0.424648,-0.664066,
-       -0.318420,0.898971,-0.300764,0.662233,0.454417,-0.589491,
-       -0.318420,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+       -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+       -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
        -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
-       -0.304611,0.675798,-0.671200,0.636249,0.400218,-0.672877,
-       -0.346116,0.938192,0.000000,0.652318,0.464340,-0.500000,
-       -0.477849,0.878442,0.000000,0.590509,0.441164,-0.500000,
+       -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
+       -0.346116,0.938192,0,0.652318,0.46434,-0.5,
+       -0.477849,0.878442,0,0.590509,0.441164,-0.5,
        -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
-       -0.346116,0.938192,0.000000,0.652318,0.464340,-0.500000,
+       -0.346116,0.938192,0,0.652318,0.46434,-0.5,
        -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
-       -0.318420,0.898971,-0.300764,0.662233,0.454417,-0.589491,
-       -0.477849,0.878442,0.000000,0.590509,0.441164,-0.500000,
-       -0.898580,0.438810,0.000000,0.555594,0.419060,-0.500000,
-       -0.801359,0.491779,-0.340556,0.567937,0.408940,-0.594949,
-       -0.801359,0.491779,-0.340556,0.567937,0.408940,-0.594949,
+       -0.31842,0.898971,-0.300764,0.662233,0.454417,-0.589491,
+       -0.477849,0.878442,0,0.590509,0.441164,-0.5,
+       -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+       -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
+       -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
        -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
-       -0.477849,0.878442,0.000000,0.590509,0.441164,-0.500000,
-       -0.638487,0.393678,-0.661326,0.604310,0.378335,-0.674188,
-       -0.304611,0.675798,-0.671200,0.636249,0.400218,-0.672877,
+       -0.477849,0.878442,0,0.590509,0.441164,-0.5,
+       -0.638487,0.393678,-0.661326,0.60431,0.378335,-0.674188,
+       -0.304611,0.675798,-0.6712,0.636249,0.400218,-0.672877,
        -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
-       -0.638487,0.393678,-0.661326,0.604310,0.378335,-0.674188,
+       -0.638487,0.393678,-0.661326,0.60431,0.378335,-0.674188,
        -0.419827,0.848984,-0.320893,0.601944,0.430927,-0.594296,
-       -0.801359,0.491779,-0.340556,0.567937,0.408940,-0.594949,
+       -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
        -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
        -0.218035,0.735069,0.641977,0.691977,0.424648,-0.335934,
-       -0.304611,0.675798,0.671200,0.636249,0.400218,-0.327123,
-       -0.304611,0.675798,0.671200,0.636249,0.400218,-0.327123,
+       -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
+       -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
        -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
        -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
-       -0.638487,0.393678,0.661326,0.604310,0.378335,-0.325812,
-       -0.801358,0.491779,0.340556,0.567937,0.408940,-0.405051,
+       -0.638487,0.393678,0.661326,0.60431,0.378335,-0.325812,
+       -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
        -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
-       -0.638487,0.393678,0.661326,0.604310,0.378335,-0.325812,
+       -0.638487,0.393678,0.661326,0.60431,0.378335,-0.325812,
        -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
-       -0.304611,0.675798,0.671200,0.636249,0.400218,-0.327123,
-       -0.801358,0.491779,0.340556,0.567937,0.408940,-0.405051,
-       -0.898580,0.438810,0.000000,0.555594,0.419060,-0.500000,
-       -0.477849,0.878442,0.000000,0.590509,0.441164,-0.500000,
-       -0.477849,0.878442,0.000000,0.590509,0.441164,-0.500000,
+       -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
+       -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
+       -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+       -0.477849,0.878442,0,0.590509,0.441164,-0.5,
+       -0.477849,0.878442,0,0.590509,0.441164,-0.5,
        -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
-       -0.801358,0.491779,0.340556,0.567937,0.408940,-0.405051,
-       -0.346116,0.938192,0.000000,0.652318,0.464340,-0.500000,
+       -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
+       -0.346116,0.938192,0,0.652318,0.46434,-0.5,
        -0.318419,0.898972,0.300764,0.662233,0.454417,-0.410509,
        -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
-       -0.346116,0.938192,0.000000,0.652318,0.464340,-0.500000,
+       -0.346116,0.938192,0,0.652318,0.46434,-0.5,
        -0.419827,0.848984,0.320893,0.601944,0.430927,-0.405704,
-       -0.477849,0.878442,0.000000,0.590509,0.441164,-0.500000,
+       -0.477849,0.878442,0,0.590509,0.441164,-0.5,
        -0.772673,-0.608887,0.179534,0.608078,0.332278,-0.361333,
-       -0.772268,-0.627334,0.100277,0.585310,0.345528,-0.417500,
-       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.412500,
+       -0.772268,-0.627334,0.100277,0.58531,0.345528,-0.4175,
+       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
        -0.772673,-0.608887,0.179534,0.608078,0.332278,-0.361333,
-       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.412500,
+       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
        -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
-       -0.810611,-0.585585,0.000000,0.573976,0.352148,-0.500000,
-       -0.985168,-0.171594,0.000000,0.549720,0.391595,-0.500000,
-       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.412500,
-       -0.810611,-0.585585,0.000000,0.573976,0.352148,-0.500000,
-       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.412500,
-       -0.772268,-0.627334,0.100277,0.585310,0.345528,-0.417500,
-       -0.898580,0.438810,0.000000,0.555594,0.419060,-0.500000,
-       -0.801358,0.491779,0.340556,0.567937,0.408940,-0.405051,
-       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.412500,
-       -0.898580,0.438810,0.000000,0.555594,0.419060,-0.500000,
-       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.412500,
-       -0.985168,-0.171594,0.000000,0.549720,0.391595,-0.500000,
-       -0.801358,0.491779,0.340556,0.567937,0.408940,-0.405051,
-       -0.638487,0.393678,0.661326,0.604310,0.378335,-0.325812,
+       -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+       -0.985168,-0.171594,0,0.54972,0.391595,-0.5,
+       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+       -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+       -0.772268,-0.627334,0.100277,0.58531,0.345528,-0.4175,
+       -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+       -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
+       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+       -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+       -0.985168,-0.171594,0,0.54972,0.391595,-0.5,
+       -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
+       -0.638487,0.393678,0.661326,0.60431,0.378335,-0.325812,
        -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
        -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
-       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.412500,
-       -0.801358,0.491779,0.340556,0.567937,0.408940,-0.405051,
+       -0.944453,-0.263136,0.196897,0.562375,0.382563,-0.4125,
+       -0.801358,0.491779,0.340556,0.567937,0.40894,-0.405051,
        -0.772673,-0.608887,-0.179534,0.608078,0.332278,-0.638667,
        -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
-       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.587500,
+       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
        -0.772673,-0.608887,-0.179534,0.608078,0.332278,-0.638667,
-       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.587500,
-       -0.772268,-0.627334,-0.100277,0.585310,0.345528,-0.582500,
+       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+       -0.772268,-0.627334,-0.100277,0.58531,0.345528,-0.5825,
        -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
-       -0.638487,0.393678,-0.661326,0.604310,0.378335,-0.674188,
-       -0.801359,0.491779,-0.340556,0.567937,0.408940,-0.594949,
-       -0.801359,0.491779,-0.340556,0.567937,0.408940,-0.594949,
-       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.587500,
+       -0.638487,0.393678,-0.661326,0.60431,0.378335,-0.674188,
+       -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
+       -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
+       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
        -0.838454,-0.308168,-0.449475,0.597724,0.354488,-0.660875,
-       -0.898580,0.438810,0.000000,0.555594,0.419060,-0.500000,
-       -0.985168,-0.171594,0.000000,0.549720,0.391595,-0.500000,
-       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.587500,
-       -0.898580,0.438810,0.000000,0.555594,0.419060,-0.500000,
-       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.587500,
-       -0.801359,0.491779,-0.340556,0.567937,0.408940,-0.594949,
-       -0.810611,-0.585585,0.000000,0.573976,0.352148,-0.500000,
-       -0.772268,-0.627334,-0.100277,0.585310,0.345528,-0.582500,
-       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.587500,
-       -0.810611,-0.585585,0.000000,0.573976,0.352148,-0.500000,
-       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.587500,
-       -0.985168,-0.171594,0.000000,0.549720,0.391595,-0.500000,
+       -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+       -0.985168,-0.171594,0,0.54972,0.391595,-0.5,
+       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+       -0.89858,0.43881,0,0.555594,0.41906,-0.5,
+       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+       -0.801359,0.491779,-0.340556,0.567937,0.40894,-0.594949,
+       -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+       -0.772268,-0.627334,-0.100277,0.58531,0.345528,-0.5825,
+       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+       -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+       -0.944453,-0.263136,-0.196896,0.562375,0.382563,-0.5875,
+       -0.985168,-0.171594,0,0.54972,0.391595,-0.5,
        -0.218035,0.735069,0.641977,0.691977,0.424648,-0.335934,
        -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
        -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
        -0.218035,0.735069,0.641977,0.691977,0.424648,-0.335934,
        -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
-       -0.304611,0.675798,0.671200,0.636249,0.400218,-0.327123,
+       -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
        -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
-       0.160738,0.160922,0.973790,0.801042,0.315496,-0.276273,
+       0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
        0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
        0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
        -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
        -0.042916,0.448451,0.892776,0.741552,0.375033,-0.291188,
-       -0.233968,-0.235900,0.943191,0.735693,0.265534,-0.261940,
-       -0.462569,0.070190,0.883801,0.664060,0.327000,-0.277994,
+       -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
+       -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
        -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
-       -0.233968,-0.235900,0.943191,0.735693,0.265534,-0.261940,
+       -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
        -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
        0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
-       -0.462569,0.070190,0.883801,0.664060,0.327000,-0.277994,
-       -0.638487,0.393678,0.661326,0.604310,0.378335,-0.325812,
-       -0.304611,0.675798,0.671200,0.636249,0.400218,-0.327123,
-       -0.304611,0.675798,0.671200,0.636249,0.400218,-0.327123,
+       -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
+       -0.638487,0.393678,0.661326,0.60431,0.378335,-0.325812,
+       -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
+       -0.304611,0.675798,0.6712,0.636249,0.400218,-0.327123,
        -0.106617,0.392034,0.913752,0.693423,0.349037,-0.279975,
-       -0.462569,0.070190,0.883801,0.664060,0.327000,-0.277994,
-       0.662820,-0.338306,0.667996,0.910107,0.206343,-0.335934,
-       0.655740,-0.380493,0.652097,0.887817,0.175019,-0.327123,
-       0.378094,-0.147323,0.913970,0.830643,0.226200,-0.279975,
-       0.662820,-0.338306,0.667996,0.910107,0.206343,-0.335934,
-       0.378094,-0.147323,0.913970,0.830643,0.226200,-0.279975,
-       0.398283,-0.122544,0.909040,0.860532,0.255958,-0.291188,
-       0.319910,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+       -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
+       0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+       0.65574,-0.380493,0.652097,0.887817,0.175019,-0.327123,
+       0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+       0.66282,-0.338306,0.667996,0.910107,0.206343,-0.335934,
+       0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+       0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
+       0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
        0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
-       0.378094,-0.147323,0.913970,0.830643,0.226200,-0.279975,
-       0.319910,-0.691022,0.648187,0.867858,0.153664,-0.325812,
-       0.378094,-0.147323,0.913970,0.830643,0.226200,-0.279975,
-       0.655740,-0.380493,0.652097,0.887817,0.175019,-0.327123,
+       0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+       0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+       0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+       0.65574,-0.380493,0.652097,0.887817,0.175019,-0.327123,
        0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
-       -0.233968,-0.235900,0.943191,0.735693,0.265534,-0.261940,
+       -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
        0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
        0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
-       0.378094,-0.147323,0.913970,0.830643,0.226200,-0.279975,
+       0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
        0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
-       0.160738,0.160922,0.973790,0.801042,0.315496,-0.276273,
-       0.398283,-0.122544,0.909040,0.860532,0.255958,-0.291188,
-       0.378094,-0.147323,0.913970,0.830643,0.226200,-0.279975,
-       0.160738,0.160922,0.973790,0.801042,0.315496,-0.276273,
-       0.378094,-0.147323,0.913970,0.830643,0.226200,-0.279975,
+       0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
+       0.398283,-0.122544,0.90904,0.860532,0.255958,-0.291188,
+       0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
+       0.160738,0.160922,0.97379,0.801042,0.315496,-0.276273,
+       0.378094,-0.147323,0.91397,0.830643,0.2262,-0.279975,
        0.108083,0.116579,0.987283,0.762033,0.287619,-0.264259,
        -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
        -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
-       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294000,
+       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
        -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
-       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294000,
-       -0.233830,-0.869880,0.434318,0.844199,0.147671,-0.339125,
+       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
+       -0.23383,-0.86988,0.434318,0.844199,0.147671,-0.339125,
        -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
        -0.635534,-0.736296,0.232302,0.709997,0.238013,-0.322437,
-       -0.531095,-0.656282,0.535940,0.719399,0.249218,-0.278500,
-       -0.531095,-0.656282,0.535940,0.719399,0.249218,-0.278500,
-       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294000,
+       -0.531095,-0.656282,0.53594,0.719399,0.249218,-0.2785,
+       -0.531095,-0.656282,0.53594,0.719399,0.249218,-0.2785,
+       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
        -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
-       -0.233968,-0.235900,0.943191,0.735693,0.265534,-0.261940,
+       -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
        0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
-       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294000,
-       -0.233968,-0.235900,0.943191,0.735693,0.265534,-0.261940,
-       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294000,
-       -0.531095,-0.656282,0.535940,0.719399,0.249218,-0.278500,
+       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
+       -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
+       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
+       -0.531095,-0.656282,0.53594,0.719399,0.249218,-0.2785,
        0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
-       0.319910,-0.691022,0.648187,0.867858,0.153664,-0.325812,
-       -0.233830,-0.869880,0.434318,0.844199,0.147671,-0.339125,
-       -0.233830,-0.869880,0.434318,0.844199,0.147671,-0.339125,
-       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294000,
+       0.31991,-0.691022,0.648187,0.867858,0.153664,-0.325812,
+       -0.23383,-0.86988,0.434318,0.844199,0.147671,-0.339125,
+       -0.23383,-0.86988,0.434318,0.844199,0.147671,-0.339125,
+       -0.376394,-0.756788,0.534415,0.787209,0.193905,-0.294,
        0.024414,-0.469703,0.882487,0.807717,0.204533,-0.277994,
        -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
        -0.772673,-0.608887,0.179534,0.608078,0.332278,-0.361333,
        -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
        -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
-       -0.660431,-0.496512,0.563300,0.653151,0.306393,-0.294000,
+       -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
        -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
        -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
-       -0.638487,0.393678,0.661326,0.604310,0.378335,-0.325812,
-       -0.462569,0.070190,0.883801,0.664060,0.327000,-0.277994,
-       -0.462569,0.070190,0.883801,0.664060,0.327000,-0.277994,
-       -0.660431,-0.496512,0.563300,0.653151,0.306393,-0.294000,
+       -0.638487,0.393678,0.661326,0.60431,0.378335,-0.325812,
+       -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
+       -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
+       -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
        -0.838454,-0.308168,0.449475,0.597724,0.354488,-0.339125,
-       -0.233968,-0.235900,0.943191,0.735693,0.265534,-0.261940,
-       -0.531095,-0.656282,0.535940,0.719399,0.249218,-0.278500,
-       -0.660431,-0.496512,0.563300,0.653151,0.306393,-0.294000,
-       -0.233968,-0.235900,0.943191,0.735693,0.265534,-0.261940,
-       -0.660431,-0.496512,0.563300,0.653151,0.306393,-0.294000,
-       -0.462569,0.070190,0.883801,0.664060,0.327000,-0.277994,
+       -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
+       -0.531095,-0.656282,0.53594,0.719399,0.249218,-0.2785,
+       -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
+       -0.233968,-0.2359,0.943191,0.735693,0.265534,-0.26194,
+       -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
+       -0.462569,0.07019,0.883801,0.66406,0.327,-0.277994,
        -0.635534,-0.736296,0.232302,0.709997,0.238013,-0.322437,
        -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
-       -0.660431,-0.496512,0.563300,0.653151,0.306393,-0.294000,
+       -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
        -0.635534,-0.736296,0.232302,0.709997,0.238013,-0.322437,
-       -0.660431,-0.496512,0.563300,0.653151,0.306393,-0.294000,
-       -0.531095,-0.656282,0.535940,0.719399,0.249218,-0.278500,
+       -0.660431,-0.496512,0.5633,0.653151,0.306393,-0.294,
+       -0.531095,-0.656282,0.53594,0.719399,0.249218,-0.2785,
        -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
        -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
-       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.590500,
+       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
        -0.464025,-0.863104,-0.199329,0.820528,0.154011,-0.638667,
-       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.590500,
-       -0.483700,-0.869471,-0.100277,0.837530,0.133890,-0.582500,
+       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
+       -0.4837,-0.869471,-0.100277,0.83753,0.13389,-0.5825,
        -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
        -0.635534,-0.736296,-0.232302,0.709997,0.238013,-0.677562,
-       -0.640463,-0.763275,-0.084960,0.704334,0.231264,-0.597750,
-       -0.640463,-0.763275,-0.084960,0.704334,0.231264,-0.597750,
-       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.590500,
+       -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
+       -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
+       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
        -0.552608,-0.806562,-0.209959,0.774619,0.186679,-0.664625,
-       -0.642787,-0.766045,0.000000,0.702437,0.229003,-0.500000,
-       -0.575380,-0.817886,0.000000,0.779215,0.168431,-0.500000,
-       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.590500,
-       -0.642787,-0.766045,0.000000,0.702437,0.229003,-0.500000,
-       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.590500,
-       -0.640463,-0.763275,-0.084960,0.704334,0.231264,-0.597750,
-       -0.575380,-0.817886,0.000000,0.779215,0.168431,-0.500000,
-       -0.435927,-0.899982,0.000000,0.846018,0.123878,-0.500000,
-       -0.483700,-0.869471,-0.100277,0.837530,0.133890,-0.582500,
-       -0.483700,-0.869471,-0.100277,0.837530,0.133890,-0.582500,
-       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.590500,
-       -0.575380,-0.817886,0.000000,0.779215,0.168431,-0.500000,
+       -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+       -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
+       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
+       -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
+       -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
+       -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
+       -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+       -0.4837,-0.869471,-0.100277,0.83753,0.13389,-0.5825,
+       -0.4837,-0.869471,-0.100277,0.83753,0.13389,-0.5825,
+       -0.577604,-0.812413,-0.079739,0.775446,0.175219,-0.5905,
+       -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
        -0.772673,-0.608887,-0.179534,0.608078,0.332278,-0.638667,
-       -0.772268,-0.627334,-0.100277,0.585310,0.345528,-0.582500,
-       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.590500,
+       -0.772268,-0.627334,-0.100277,0.58531,0.345528,-0.5825,
+       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
        -0.772673,-0.608887,-0.179534,0.608078,0.332278,-0.638667,
-       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.590500,
+       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
        -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
-       -0.772268,-0.627334,-0.100277,0.585310,0.345528,-0.582500,
-       -0.810611,-0.585585,0.000000,0.573976,0.352148,-0.500000,
-       -0.705547,-0.708663,0.000000,0.629453,0.294096,-0.500000,
-       -0.705547,-0.708663,0.000000,0.629453,0.294096,-0.500000,
-       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.590500,
-       -0.772268,-0.627334,-0.100277,0.585310,0.345528,-0.582500,
-       -0.642787,-0.766045,0.000000,0.702437,0.229003,-0.500000,
-       -0.640463,-0.763275,-0.084960,0.704334,0.231264,-0.597750,
-       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.590500,
-       -0.642787,-0.766045,0.000000,0.702437,0.229003,-0.500000,
-       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.590500,
-       -0.705547,-0.708663,0.000000,0.629453,0.294096,-0.500000,
-       -0.640463,-0.763275,-0.084960,0.704334,0.231264,-0.597750,
+       -0.772268,-0.627334,-0.100277,0.58531,0.345528,-0.5825,
+       -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+       -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
+       -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
+       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
+       -0.772268,-0.627334,-0.100277,0.58531,0.345528,-0.5825,
+       -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+       -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
+       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
+       -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
+       -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
+       -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
        -0.635534,-0.736296,-0.232302,0.709997,0.238013,-0.677562,
        -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
        -0.712429,-0.672822,-0.199386,0.648221,0.292739,-0.664625,
-       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.590500,
-       -0.640463,-0.763275,-0.084960,0.704334,0.231264,-0.597750,
+       -0.699771,-0.709903,-0.079739,0.636792,0.291564,-0.5905,
+       -0.640463,-0.763275,-0.08496,0.704334,0.231264,-0.59775,
        -0.772673,-0.608887,0.179534,0.608078,0.332278,-0.361333,
        -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
-       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.409500,
+       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
        -0.772673,-0.608887,0.179534,0.608078,0.332278,-0.361333,
-       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.409500,
-       -0.772268,-0.627334,0.100277,0.585310,0.345528,-0.417500,
+       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
+       -0.772268,-0.627334,0.100277,0.58531,0.345528,-0.4175,
        -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
        -0.635534,-0.736296,0.232302,0.709997,0.238013,-0.322437,
-       -0.640463,-0.763275,0.084960,0.704334,0.231264,-0.402250,
-       -0.640463,-0.763275,0.084960,0.704334,0.231264,-0.402250,
-       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.409500,
+       -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
+       -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
+       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
        -0.712429,-0.672822,0.199385,0.648221,0.292739,-0.335375,
-       -0.642787,-0.766045,0.000000,0.702437,0.229003,-0.500000,
-       -0.705547,-0.708663,0.000000,0.629453,0.294096,-0.500000,
-       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.409500,
-       -0.642787,-0.766045,0.000000,0.702437,0.229003,-0.500000,
-       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.409500,
-       -0.640463,-0.763275,0.084960,0.704334,0.231264,-0.402250,
-       -0.705547,-0.708663,0.000000,0.629453,0.294096,-0.500000,
-       -0.810611,-0.585585,0.000000,0.573976,0.352148,-0.500000,
-       -0.772268,-0.627334,0.100277,0.585310,0.345528,-0.417500,
-       -0.772268,-0.627334,0.100277,0.585310,0.345528,-0.417500,
-       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.409500,
-       -0.705547,-0.708663,0.000000,0.629453,0.294096,-0.500000,
+       -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+       -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
+       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
+       -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
+       -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
+       -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
+       -0.810611,-0.585585,0,0.573976,0.352148,-0.5,
+       -0.772268,-0.627334,0.100277,0.58531,0.345528,-0.4175,
+       -0.772268,-0.627334,0.100277,0.58531,0.345528,-0.4175,
+       -0.699771,-0.709903,0.079739,0.636792,0.291564,-0.4095,
+       -0.705547,-0.708663,0,0.629453,0.294096,-0.5,
        -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
-       -0.483700,-0.869471,0.100277,0.837530,0.133890,-0.417500,
-       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.409500,
+       -0.4837,-0.869471,0.100277,0.83753,0.13389,-0.4175,
+       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
        -0.464025,-0.863104,0.199329,0.820528,0.154011,-0.361333,
-       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.409500,
+       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
        -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
-       -0.483700,-0.869471,0.100277,0.837530,0.133890,-0.417500,
-       -0.435927,-0.899982,0.000000,0.846018,0.123878,-0.500000,
-       -0.575380,-0.817886,0.000000,0.779215,0.168431,-0.500000,
-       -0.575380,-0.817886,0.000000,0.779215,0.168431,-0.500000,
-       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.409500,
-       -0.483700,-0.869471,0.100277,0.837530,0.133890,-0.417500,
-       -0.642787,-0.766045,0.000000,0.702437,0.229003,-0.500000,
-       -0.640463,-0.763275,0.084960,0.704334,0.231264,-0.402250,
-       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.409500,
-       -0.642787,-0.766045,0.000000,0.702437,0.229003,-0.500000,
-       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.409500,
-       -0.575380,-0.817886,0.000000,0.779215,0.168431,-0.500000,
-       -0.640463,-0.763275,0.084960,0.704334,0.231264,-0.402250,
+       -0.4837,-0.869471,0.100277,0.83753,0.13389,-0.4175,
+       -0.435927,-0.899982,0,0.846018,0.123878,-0.5,
+       -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
+       -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
+       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
+       -0.4837,-0.869471,0.100277,0.83753,0.13389,-0.4175,
+       -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+       -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
+       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
+       -0.642787,-0.766045,0,0.702437,0.229003,-0.5,
+       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
+       -0.57538,-0.817886,0,0.779215,0.168431,-0.5,
+       -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
        -0.635534,-0.736296,0.232302,0.709997,0.238013,-0.322437,
        -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
        -0.552608,-0.806562,0.209959,0.774619,0.186679,-0.335375,
-       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.409500,
-       -0.640463,-0.763275,0.084960,0.704334,0.231264,-0.402250,
+       -0.577604,-0.812413,0.079739,0.775446,0.175219,-0.4095,
+       -0.640463,-0.763275,0.08496,0.704334,0.231264,-0.40225,
 };
 static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
 const struct gllist *s1_4=&frame;
index 02ab902e3d8e697cb2486f9df8966537c7834308..dc4510a59ea192bd32ffb9f4af8b77b510d8f1cc 100644 (file)
 #include "gllist.h"
 static const float data[]={
-       0.575185,0.562873,-0.593580,0.995497,0.593044,-0.659921,
-       0.642358,0.715039,-0.275852,0.998334,0.635570,-0.587230,
-       0.530900,0.794781,-0.294055,0.944384,0.679375,-0.593392,
-       0.575185,0.562873,-0.593580,0.995497,0.593044,-0.659921,
-       0.530900,0.794781,-0.294055,0.944384,0.679375,-0.593392,
-       0.429706,0.632130,-0.644798,0.943249,0.633115,-0.671218,
-       0.642358,0.715039,-0.275852,0.998334,0.635570,-0.587230,
-       0.662437,0.749118,0.000000,0.999280,0.649745,-0.500000,
-       0.577305,0.816529,0.000000,0.944762,0.694795,-0.500000,
-       0.577305,0.816529,0.000000,0.944762,0.694795,-0.500000,
-       0.530900,0.794781,-0.294055,0.944384,0.679375,-0.593392,
-       0.642358,0.715039,-0.275852,0.998334,0.635570,-0.587230,
-       0.007037,0.999975,-0.000000,0.906869,0.713633,-0.500000,
+       0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
+       0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
+       0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+       0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
+       0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+       0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
+       0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
+       0.662437,0.749118,0,0.99928,0.649745,-0.5,
+       0.577305,0.816529,0,0.944762,0.694795,-0.5,
+       0.577305,0.816529,0,0.944762,0.694795,-0.5,
+       0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+       0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
+       0.007037,0.999975,0,0.906869,0.713633,-0.5,
        -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
-       0.530900,0.794781,-0.294055,0.944384,0.679375,-0.593392,
-       0.007037,0.999975,-0.000000,0.906869,0.713633,-0.500000,
-       0.530900,0.794781,-0.294055,0.944384,0.679375,-0.593392,
-       0.577305,0.816529,0.000000,0.944762,0.694795,-0.500000,
+       0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+       0.007037,0.999975,0,0.906869,0.713633,-0.5,
+       0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+       0.577305,0.816529,0,0.944762,0.694795,-0.5,
        -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
        -0.115437,0.702917,-0.701842,0.907098,0.650057,-0.673773,
-       0.429706,0.632130,-0.644798,0.943249,0.633115,-0.671218,
-       0.429706,0.632130,-0.644798,0.943249,0.633115,-0.671218,
-       0.530900,0.794781,-0.294055,0.944384,0.679375,-0.593392,
+       0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
+       0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
+       0.5309,0.794781,-0.294055,0.944384,0.679375,-0.593392,
        -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
-       0.575185,0.562873,0.593580,0.995497,0.593044,-0.340079,
-       0.429706,0.632130,0.644797,0.943249,0.633115,-0.328782,
-       0.530901,0.794780,0.294055,0.944384,0.679375,-0.406608,
-       0.575185,0.562873,0.593580,0.995497,0.593044,-0.340079,
-       0.530901,0.794780,0.294055,0.944384,0.679375,-0.406608,
-       0.642358,0.715039,0.275852,0.998334,0.635570,-0.412770,
-       0.429706,0.632130,0.644797,0.943249,0.633115,-0.328782,
+       0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
+       0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
+       0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
+       0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
+       0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
+       0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
+       0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
        -0.115435,0.702917,0.701842,0.907098,0.650057,-0.326227,
        -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
        -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
-       0.530901,0.794780,0.294055,0.944384,0.679375,-0.406608,
-       0.429706,0.632130,0.644797,0.943249,0.633115,-0.328782,
-       0.007037,0.999975,-0.000000,0.906869,0.713633,-0.500000,
-       0.577305,0.816529,0.000000,0.944762,0.694795,-0.500000,
-       0.530901,0.794780,0.294055,0.944384,0.679375,-0.406608,
-       0.007037,0.999975,-0.000000,0.906869,0.713633,-0.500000,
-       0.530901,0.794780,0.294055,0.944384,0.679375,-0.406608,
+       0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
+       0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
+       0.007037,0.999975,0,0.906869,0.713633,-0.5,
+       0.577305,0.816529,0,0.944762,0.694795,-0.5,
+       0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
+       0.007037,0.999975,0,0.906869,0.713633,-0.5,
+       0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
        -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
-       0.577305,0.816529,0.000000,0.944762,0.694795,-0.500000,
-       0.662437,0.749118,0.000000,0.999280,0.649745,-0.500000,
-       0.642358,0.715039,0.275852,0.998334,0.635570,-0.412770,
-       0.642358,0.715039,0.275852,0.998334,0.635570,-0.412770,
-       0.530901,0.794780,0.294055,0.944384,0.679375,-0.406608,
-       0.577305,0.816529,0.000000,0.944762,0.694795,-0.500000,
-       -0.959446,0.199329,0.199329,0.874620,0.619745,-0.361333,
-       -0.976969,0.188349,0.100277,0.870135,0.645704,-0.417500,
-       -0.794244,0.572801,0.202670,0.883764,0.687079,-0.412500,
-       -0.959446,0.199329,0.199329,0.874620,0.619745,-0.361333,
-       -0.794244,0.572801,0.202670,0.883764,0.687079,-0.412500,
+       0.577305,0.816529,0,0.944762,0.694795,-0.5,
+       0.662437,0.749118,0,0.99928,0.649745,-0.5,
+       0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
+       0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
+       0.530901,0.79478,0.294055,0.944384,0.679375,-0.406608,
+       0.577305,0.816529,0,0.944762,0.694795,-0.5,
+       -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
+       -0.976969,0.188349,0.100277,0.870135,0.645704,-0.4175,
+       -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+       -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
+       -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
        -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
-       -0.969635,0.244558,0.000000,0.867922,0.658641,-0.500000,
-       -0.744977,0.667090,-0.000000,0.882548,0.702579,-0.500000,
-       -0.794244,0.572801,0.202670,0.883764,0.687079,-0.412500,
-       -0.969635,0.244558,0.000000,0.867922,0.658641,-0.500000,
-       -0.794244,0.572801,0.202670,0.883764,0.687079,-0.412500,
-       -0.976969,0.188349,0.100277,0.870135,0.645704,-0.417500,
-       0.007037,0.999975,-0.000000,0.906869,0.713633,-0.500000,
+       -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+       -0.744977,0.66709,0,0.882548,0.702579,-0.5,
+       -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+       -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+       -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+       -0.976969,0.188349,0.100277,0.870135,0.645704,-0.4175,
+       0.007037,0.999975,0,0.906869,0.713633,-0.5,
        -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
-       -0.794244,0.572801,0.202670,0.883764,0.687079,-0.412500,
-       0.007037,0.999975,-0.000000,0.906869,0.713633,-0.500000,
-       -0.794244,0.572801,0.202670,0.883764,0.687079,-0.412500,
-       -0.744977,0.667090,-0.000000,0.882548,0.702579,-0.500000,
+       -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+       0.007037,0.999975,0,0.906869,0.713633,-0.5,
+       -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
+       -0.744977,0.66709,0,0.882548,0.702579,-0.5,
        -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
        -0.115435,0.702917,0.701842,0.907098,0.650057,-0.326227,
        -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
        -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
-       -0.794244,0.572801,0.202670,0.883764,0.687079,-0.412500,
+       -0.794244,0.572801,0.20267,0.883764,0.687079,-0.4125,
        -0.039712,0.912418,0.407328,0.907078,0.697653,-0.405277,
-       -0.959446,0.199329,-0.199329,0.874620,0.619745,-0.638667,
+       -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
        -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
-       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.587500,
-       -0.959446,0.199329,-0.199329,0.874620,0.619745,-0.638667,
-       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.587500,
-       -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.582500,
+       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+       -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
+       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+       -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.5825,
        -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
        -0.115437,0.702917,-0.701842,0.907098,0.650057,-0.673773,
        -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
        -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
-       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.587500,
+       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
        -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
-       0.007037,0.999975,-0.000000,0.906869,0.713633,-0.500000,
-       -0.744977,0.667090,-0.000000,0.882548,0.702579,-0.500000,
-       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.587500,
-       0.007037,0.999975,-0.000000,0.906869,0.713633,-0.500000,
-       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.587500,
+       0.007037,0.999975,0,0.906869,0.713633,-0.5,
+       -0.744977,0.66709,0,0.882548,0.702579,-0.5,
+       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+       0.007037,0.999975,0,0.906869,0.713633,-0.5,
+       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
        -0.039712,0.912418,-0.407328,0.907078,0.697653,-0.594723,
-       -0.969635,0.244558,0.000000,0.867922,0.658641,-0.500000,
-       -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.582500,
-       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.587500,
-       -0.969635,0.244558,0.000000,0.867922,0.658641,-0.500000,
-       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.587500,
-       -0.744977,0.667090,-0.000000,0.882548,0.702579,-0.500000,
-       0.575185,0.562873,0.593580,0.995497,0.593044,-0.340079,
+       -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+       -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.5825,
+       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+       -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+       -0.794244,0.572801,-0.202671,0.883764,0.687079,-0.5875,
+       -0.744977,0.66709,0,0.882548,0.702579,-0.5,
+       0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
        0.447221,0.281892,0.848841,0.990769,0.522168,-0.296464,
        0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
-       0.575185,0.562873,0.593580,0.995497,0.593044,-0.340079,
+       0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
        0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
-       0.429706,0.632130,0.644797,0.943249,0.633115,-0.328782,
+       0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
        0.447221,0.281892,0.848841,0.990769,0.522168,-0.296464,
        0.291601,-0.024985,0.956214,0.985095,0.437116,-0.281926,
-       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.266520,
-       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.266520,
+       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
+       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
        0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
        0.447221,0.281892,0.848841,0.990769,0.522168,-0.296464,
        -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
-       -0.234090,0.368714,0.899584,0.906322,0.571188,-0.278521,
+       -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
        0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
        -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
        0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
-       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.266520,
-       -0.234090,0.368714,0.899584,0.906322,0.571188,-0.278521,
+       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
+       -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
        -0.115435,0.702917,0.701842,0.907098,0.650057,-0.326227,
-       0.429706,0.632130,0.644797,0.943249,0.633115,-0.328782,
-       0.429706,0.632130,0.644797,0.943249,0.633115,-0.328782,
+       0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
+       0.429706,0.63213,0.644797,0.943249,0.633115,-0.328782,
        0.345209,0.311815,0.885213,0.941357,0.556014,-0.282086,
-       -0.234090,0.368714,0.899584,0.906322,0.571188,-0.278521,
+       -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
        0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
        -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
        -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
        -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
-       0.068720,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+       0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
        0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
-       -0.455383,-0.616870,0.641949,0.905018,0.303308,-0.326227,
+       -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
        -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
-       0.068720,-0.352527,0.933275,0.936818,0.370973,-0.282086,
-       -0.455383,-0.616870,0.641949,0.905018,0.303308,-0.326227,
-       0.068720,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+       0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+       -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
+       0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
        -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
        -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
        -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
-       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.266520,
-       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.266520,
-       0.068720,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
+       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
+       0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
        -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
        0.291601,-0.024985,0.956214,0.985095,0.437116,-0.281926,
        0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
-       0.068720,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+       0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
        0.291601,-0.024985,0.956214,0.985095,0.437116,-0.281926,
-       0.068720,-0.352527,0.933275,0.936818,0.370973,-0.282086,
-       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.266520,
-       -0.959446,-0.199329,0.199329,0.874620,0.342412,-0.361333,
-       -0.976969,-0.100277,0.188350,0.870135,0.398579,-0.335375,
-       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294000,
-       -0.959446,-0.199329,0.199329,0.874620,0.342412,-0.361333,
-       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294000,
+       0.06872,-0.352527,0.933275,0.936818,0.370973,-0.282086,
+       0.214014,-0.011143,0.976767,0.939088,0.463494,-0.26652,
+       -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
+       -0.976969,-0.100277,0.18835,0.870135,0.398579,-0.335375,
+       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
+       -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
+       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
        -0.826326,-0.370128,0.424489,0.884979,0.320204,-0.339125,
-       -0.969635,-0.000000,0.244558,0.867922,0.481079,-0.322437,
-       -0.761522,0.030964,0.647398,0.882548,0.481079,-0.278500,
-       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294000,
-       -0.969635,-0.000000,0.244558,0.867922,0.481079,-0.322437,
-       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294000,
-       -0.976969,-0.100277,0.188350,0.870135,0.398579,-0.335375,
+       -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+       -0.761522,0.030964,0.647398,0.882548,0.481079,-0.2785,
+       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
+       -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
+       -0.976969,-0.100277,0.18835,0.870135,0.398579,-0.335375,
        -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
        -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
-       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294000,
+       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
        -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
-       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294000,
-       -0.761522,0.030964,0.647398,0.882548,0.481079,-0.278500,
+       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
+       -0.761522,0.030964,0.647398,0.882548,0.481079,-0.2785,
        -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
-       -0.455383,-0.616870,0.641949,0.905018,0.303308,-0.326227,
+       -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
        -0.826326,-0.370128,0.424489,0.884979,0.320204,-0.339125,
        -0.826326,-0.370128,0.424489,0.884979,0.320204,-0.339125,
-       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294000,
+       -0.845588,-0.179708,0.502679,0.883764,0.393579,-0.294,
        -0.359172,-0.316853,0.877838,0.905187,0.382177,-0.278521,
-       -0.959446,0.199329,0.199329,0.874620,0.619745,-0.361333,
+       -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
        -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
-       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294000,
-       -0.959446,0.199329,0.199329,0.874620,0.619745,-0.361333,
-       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294000,
-       -0.976969,0.100277,0.188350,0.870135,0.563579,-0.335375,
+       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
+       -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
+       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
+       -0.976969,0.100277,0.18835,0.870135,0.563579,-0.335375,
        -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
        -0.115435,0.702917,0.701842,0.907098,0.650057,-0.326227,
-       -0.234090,0.368714,0.899584,0.906322,0.571188,-0.278521,
-       -0.234090,0.368714,0.899584,0.906322,0.571188,-0.278521,
-       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294000,
+       -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
+       -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
+       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
        -0.714284,0.497638,0.492092,0.884979,0.641954,-0.339125,
-       -0.234090,0.368714,0.899584,0.906322,0.571188,-0.278521,
+       -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
        -0.247399,0.003968,0.968906,0.905451,0.476683,-0.262505,
-       -0.761522,0.030964,0.647398,0.882548,0.481079,-0.278500,
-       -0.761522,0.030964,0.647398,0.882548,0.481079,-0.278500,
-       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294000,
-       -0.234090,0.368714,0.899584,0.906322,0.571188,-0.278521,
-       -0.969635,-0.000000,0.244558,0.867922,0.481079,-0.322437,
-       -0.976969,0.100277,0.188350,0.870135,0.563579,-0.335375,
-       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294000,
-       -0.969635,-0.000000,0.244558,0.867922,0.481079,-0.322437,
-       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294000,
-       -0.761522,0.030964,0.647398,0.882548,0.481079,-0.278500,
+       -0.761522,0.030964,0.647398,0.882548,0.481079,-0.2785,
+       -0.761522,0.030964,0.647398,0.882548,0.481079,-0.2785,
+       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
+       -0.23409,0.368714,0.899584,0.906322,0.571188,-0.278521,
+       -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+       -0.976969,0.100277,0.18835,0.870135,0.563579,-0.335375,
+       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
+       -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+       -0.859317,0.197434,0.471799,0.883764,0.568579,-0.294,
+       -0.761522,0.030964,0.647398,0.882548,0.481079,-0.2785,
        -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
-       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.412770,
+       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
        -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
        -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
        -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
        -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
-       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.412770,
-       -0.339022,-0.940778,-0.000000,0.970910,0.224487,-0.500000,
-       -0.217971,-0.975955,0.000000,0.933414,0.232192,-0.500000,
-       -0.217971,-0.975955,0.000000,0.933414,0.232192,-0.500000,
+       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
+       -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+       -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
+       -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
        -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
-       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.412770,
-       -0.489368,-0.872077,-0.000000,0.904032,0.239732,-0.500000,
-       -0.438574,-0.828046,0.349274,0.904430,0.255712,-0.405277,
+       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
+       -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+       -0.438574,-0.828046,0.349274,0.90443,0.255712,-0.405277,
        -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
-       -0.489368,-0.872077,-0.000000,0.904032,0.239732,-0.500000,
+       -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
        -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
-       -0.217971,-0.975955,0.000000,0.933414,0.232192,-0.500000,
-       -0.438574,-0.828046,0.349274,0.904430,0.255712,-0.405277,
-       -0.455383,-0.616870,0.641949,0.905018,0.303308,-0.326227,
+       -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
+       -0.438574,-0.828046,0.349274,0.90443,0.255712,-0.405277,
+       -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
        -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
        -0.088988,-0.705766,0.702834,0.934927,0.293873,-0.328782,
        -0.196471,-0.920135,0.338748,0.933792,0.247612,-0.406608,
-       -0.438574,-0.828046,0.349274,0.904430,0.255712,-0.405277,
+       -0.438574,-0.828046,0.349274,0.90443,0.255712,-0.405277,
        -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
        -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
        -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
        -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
        -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
-       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.587230,
+       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
        -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
-       -0.455383,-0.616870,-0.641949,0.905018,0.303308,-0.673773,
-       -0.438575,-0.828046,-0.349274,0.904430,0.255712,-0.594723,
-       -0.438575,-0.828046,-0.349274,0.904430,0.255712,-0.594723,
+       -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
+       -0.438575,-0.828046,-0.349274,0.90443,0.255712,-0.594723,
+       -0.438575,-0.828046,-0.349274,0.90443,0.255712,-0.594723,
        -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
        -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
-       -0.489368,-0.872077,-0.000000,0.904032,0.239732,-0.500000,
-       -0.217971,-0.975955,0.000000,0.933414,0.232192,-0.500000,
+       -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+       -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
        -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
-       -0.489368,-0.872077,-0.000000,0.904032,0.239732,-0.500000,
+       -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
        -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
-       -0.438575,-0.828046,-0.349274,0.904430,0.255712,-0.594723,
-       -0.217971,-0.975955,0.000000,0.933414,0.232192,-0.500000,
-       -0.339022,-0.940778,-0.000000,0.970910,0.224487,-0.500000,
-       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.587230,
-       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.587230,
+       -0.438575,-0.828046,-0.349274,0.90443,0.255712,-0.594723,
+       -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
+       -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
+       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
        -0.196471,-0.920135,-0.338748,0.933792,0.247612,-0.593392,
-       -0.217971,-0.975955,0.000000,0.933414,0.232192,-0.500000,
-       -0.959446,-0.199329,-0.199329,0.874620,0.342412,-0.638667,
-       -0.976969,-0.188350,-0.100277,0.870135,0.316454,-0.582500,
-       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.587500,
-       -0.959446,-0.199329,-0.199329,0.874620,0.342412,-0.638667,
-       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.587500,
+       -0.217971,-0.975955,0,0.933414,0.232192,-0.5,
+       -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
+       -0.976969,-0.18835,-0.100277,0.870135,0.316454,-0.5825,
+       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+       -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
+       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
        -0.826325,-0.370128,-0.424489,0.884979,0.320204,-0.660875,
-       -0.969635,-0.244558,-0.000000,0.867922,0.303516,-0.500000,
-       -0.840690,-0.541516,0.000000,0.882548,0.259579,-0.500000,
-       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.587500,
-       -0.969635,-0.244558,-0.000000,0.867922,0.303516,-0.500000,
-       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.587500,
-       -0.976969,-0.188350,-0.100277,0.870135,0.316454,-0.582500,
-       -0.489368,-0.872077,-0.000000,0.904032,0.239732,-0.500000,
-       -0.438575,-0.828046,-0.349274,0.904430,0.255712,-0.594723,
-       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.587500,
-       -0.489368,-0.872077,-0.000000,0.904032,0.239732,-0.500000,
-       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.587500,
-       -0.840690,-0.541516,0.000000,0.882548,0.259579,-0.500000,
-       -0.455383,-0.616870,-0.641949,0.905018,0.303308,-0.673773,
+       -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+       -0.84069,-0.541516,0,0.882548,0.259579,-0.5,
+       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+       -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+       -0.976969,-0.18835,-0.100277,0.870135,0.316454,-0.5825,
+       -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+       -0.438575,-0.828046,-0.349274,0.90443,0.255712,-0.594723,
+       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+       -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+       -0.84069,-0.541516,0,0.882548,0.259579,-0.5,
+       -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
        -0.826325,-0.370128,-0.424489,0.884979,0.320204,-0.660875,
-       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.587500,
-       -0.455383,-0.616870,-0.641949,0.905018,0.303308,-0.673773,
-       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.587500,
-       -0.438575,-0.828046,-0.349274,0.904430,0.255712,-0.594723,
-       -0.959446,-0.199329,0.199329,0.874620,0.342412,-0.361333,
+       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+       -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
+       -0.849789,-0.488885,-0.197102,0.883764,0.275079,-0.5875,
+       -0.438575,-0.828046,-0.349274,0.90443,0.255712,-0.594723,
+       -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
        -0.826326,-0.370128,0.424489,0.884979,0.320204,-0.339125,
-       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.412500,
-       -0.959446,-0.199329,0.199329,0.874620,0.342412,-0.361333,
-       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.412500,
-       -0.976969,-0.188350,0.100277,0.870135,0.316454,-0.417500,
-       -0.455383,-0.616870,0.641949,0.905018,0.303308,-0.326227,
-       -0.438574,-0.828046,0.349274,0.904430,0.255712,-0.405277,
-       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.412500,
-       -0.455383,-0.616870,0.641949,0.905018,0.303308,-0.326227,
-       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.412500,
+       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+       -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
+       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+       -0.976969,-0.18835,0.100277,0.870135,0.316454,-0.4175,
+       -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
+       -0.438574,-0.828046,0.349274,0.90443,0.255712,-0.405277,
+       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+       -0.455383,-0.61687,0.641949,0.905018,0.303308,-0.326227,
+       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
        -0.826326,-0.370128,0.424489,0.884979,0.320204,-0.339125,
-       -0.489368,-0.872077,-0.000000,0.904032,0.239732,-0.500000,
-       -0.840690,-0.541516,0.000000,0.882548,0.259579,-0.500000,
-       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.412500,
-       -0.489368,-0.872077,-0.000000,0.904032,0.239732,-0.500000,
-       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.412500,
-       -0.438574,-0.828046,0.349274,0.904430,0.255712,-0.405277,
-       -0.969635,-0.244558,-0.000000,0.867922,0.303516,-0.500000,
-       -0.976969,-0.188350,0.100277,0.870135,0.316454,-0.417500,
-       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.412500,
-       -0.969635,-0.244558,-0.000000,0.867922,0.303516,-0.500000,
-       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.412500,
-       -0.840690,-0.541516,0.000000,0.882548,0.259579,-0.500000,
+       -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+       -0.84069,-0.541516,0,0.882548,0.259579,-0.5,
+       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+       -0.489368,-0.872077,0,0.904032,0.239732,-0.5,
+       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+       -0.438574,-0.828046,0.349274,0.90443,0.255712,-0.405277,
+       -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+       -0.976969,-0.18835,0.100277,0.870135,0.316454,-0.4175,
+       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+       -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+       -0.849789,-0.488886,0.197102,0.883764,0.275079,-0.4125,
+       -0.84069,-0.541516,0,0.882548,0.259579,-0.5,
        -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
        -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
        0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
        0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
-       0.068720,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+       0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
        -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
        0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
-       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.733480,
-       0.068720,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
+       0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
        0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
-       0.068720,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+       0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
        0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
-       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.733480,
-       -0.247400,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
+       -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
        -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
        -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
-       0.068720,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
-       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.733480,
-       -0.455383,-0.616870,-0.641949,0.905018,0.303308,-0.673773,
+       0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
+       -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
        -0.088988,-0.705766,-0.702834,0.934927,0.293873,-0.671218,
-       0.068720,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
-       -0.455383,-0.616870,-0.641949,0.905018,0.303308,-0.673773,
-       0.068720,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+       0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
+       -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
+       0.06872,-0.352527,-0.933275,0.936818,0.370973,-0.717914,
        -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
-       0.575185,0.562873,-0.593580,0.995497,0.593044,-0.659921,
-       0.429706,0.632130,-0.644798,0.943249,0.633115,-0.671218,
+       0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
+       0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
        0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
-       0.575185,0.562873,-0.593580,0.995497,0.593044,-0.659921,
+       0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
        0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
-       0.447221,0.281892,-0.848840,0.990769,0.522168,-0.703536,
-       0.429706,0.632130,-0.644798,0.943249,0.633115,-0.671218,
+       0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
+       0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
        -0.115437,0.702917,-0.701842,0.907098,0.650057,-0.673773,
-       -0.234090,0.368714,-0.899584,0.906322,0.571188,-0.721479,
-       -0.234090,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+       -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+       -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
        0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
-       0.429706,0.632130,-0.644798,0.943249,0.633115,-0.671218,
-       -0.247400,0.003968,-0.968905,0.905451,0.476683,-0.737495,
-       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.733480,
+       0.429706,0.63213,-0.644798,0.943249,0.633115,-0.671218,
+       -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
        0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
-       -0.247400,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+       -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
        0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
-       -0.234090,0.368714,-0.899584,0.906322,0.571188,-0.721479,
-       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.733480,
+       -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
        0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
-       0.447221,0.281892,-0.848840,0.990769,0.522168,-0.703536,
-       0.447221,0.281892,-0.848840,0.990769,0.522168,-0.703536,
+       0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
+       0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
        0.345208,0.311816,-0.885213,0.941357,0.556014,-0.717914,
-       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.733480,
-       -0.959446,0.199329,-0.199329,0.874620,0.619745,-0.638667,
-       -0.976969,0.100277,-0.188350,0.870135,0.563579,-0.664625,
-       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706000,
-       -0.959446,0.199329,-0.199329,0.874620,0.619745,-0.638667,
-       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706000,
+       0.214013,-0.011144,-0.976767,0.939088,0.463494,-0.73348,
+       -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
+       -0.976969,0.100277,-0.18835,0.870135,0.563579,-0.664625,
+       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
+       -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
+       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
        -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
-       -0.969635,0.000000,-0.244558,0.867922,0.481079,-0.677562,
-       -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.721500,
-       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706000,
-       -0.969635,0.000000,-0.244558,0.867922,0.481079,-0.677562,
-       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706000,
-       -0.976969,0.100277,-0.188350,0.870135,0.563579,-0.664625,
-       -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.721500,
-       -0.247400,0.003968,-0.968905,0.905451,0.476683,-0.737495,
-       -0.234090,0.368714,-0.899584,0.906322,0.571188,-0.721479,
-       -0.234090,0.368714,-0.899584,0.906322,0.571188,-0.721479,
-       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706000,
-       -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.721500,
-       -0.234090,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+       -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+       -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.7215,
+       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
+       -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
+       -0.976969,0.100277,-0.18835,0.870135,0.563579,-0.664625,
+       -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.7215,
+       -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+       -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+       -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
+       -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.7215,
+       -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
        -0.115437,0.702917,-0.701842,0.907098,0.650057,-0.673773,
        -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
        -0.714284,0.497638,-0.492092,0.884979,0.641954,-0.660875,
-       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706000,
-       -0.234090,0.368714,-0.899584,0.906322,0.571188,-0.721479,
-       -0.959446,-0.199329,-0.199329,0.874620,0.342412,-0.638667,
+       -0.859317,0.197434,-0.471799,0.883764,0.568579,-0.706,
+       -0.23409,0.368714,-0.899584,0.906322,0.571188,-0.721479,
+       -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
        -0.826325,-0.370128,-0.424489,0.884979,0.320204,-0.660875,
-       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706000,
-       -0.959446,-0.199329,-0.199329,0.874620,0.342412,-0.638667,
-       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706000,
-       -0.976969,-0.100277,-0.188350,0.870135,0.398579,-0.664625,
+       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+       -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
+       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+       -0.976969,-0.100277,-0.18835,0.870135,0.398579,-0.664625,
        -0.826325,-0.370128,-0.424489,0.884979,0.320204,-0.660875,
-       -0.455383,-0.616870,-0.641949,0.905018,0.303308,-0.673773,
+       -0.455383,-0.61687,-0.641949,0.905018,0.303308,-0.673773,
        -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
        -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
-       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706000,
+       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
        -0.826325,-0.370128,-0.424489,0.884979,0.320204,-0.660875,
-       -0.247400,0.003968,-0.968905,0.905451,0.476683,-0.737495,
-       -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.721500,
-       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706000,
-       -0.247400,0.003968,-0.968905,0.905451,0.476683,-0.737495,
-       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706000,
+       -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+       -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.7215,
+       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+       -0.2474,0.003968,-0.968905,0.905451,0.476683,-0.737495,
+       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
        -0.359172,-0.316853,-0.877838,0.905187,0.382177,-0.721479,
-       -0.969635,0.000000,-0.244558,0.867922,0.481079,-0.677562,
-       -0.976969,-0.100277,-0.188350,0.870135,0.398579,-0.664625,
-       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706000,
-       -0.969635,0.000000,-0.244558,0.867922,0.481079,-0.677562,
-       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706000,
-       -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.721500,
-       -0.959446,0.199329,0.199329,0.874620,0.619745,-0.361333,
-       -0.976969,0.100277,0.188350,0.870135,0.563579,-0.335375,
-       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.409500,
-       -0.959446,0.199329,0.199329,0.874620,0.619745,-0.361333,
-       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.409500,
-       -0.976969,0.188349,0.100277,0.870135,0.645704,-0.417500,
-       -0.976969,0.100277,0.188350,0.870135,0.563579,-0.335375,
-       -0.969635,-0.000000,0.244558,0.867922,0.481079,-0.322437,
-       -0.996384,0.000000,0.084960,0.859111,0.481079,-0.402250,
-       -0.996384,0.000000,0.084960,0.859111,0.481079,-0.402250,
-       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.409500,
-       -0.976969,0.100277,0.188350,0.870135,0.563579,-0.335375,
-       -1.000000,-0.000000,0.000000,0.856159,0.481079,-0.500000,
-       -0.996384,0.084960,0.000000,0.859111,0.578829,-0.500000,
-       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.409500,
-       -1.000000,-0.000000,0.000000,0.856159,0.481079,-0.500000,
-       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.409500,
-       -0.996384,0.000000,0.084960,0.859111,0.481079,-0.402250,
-       -0.996384,0.084960,0.000000,0.859111,0.578829,-0.500000,
-       -0.969635,0.244558,0.000000,0.867922,0.658641,-0.500000,
-       -0.976969,0.188349,0.100277,0.870135,0.645704,-0.417500,
-       -0.976969,0.188349,0.100277,0.870135,0.645704,-0.417500,
-       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.409500,
-       -0.996384,0.084960,0.000000,0.859111,0.578829,-0.500000,
-       -0.959446,-0.199329,0.199329,0.874620,0.342412,-0.361333,
-       -0.976969,-0.188350,0.100277,0.870135,0.316454,-0.417500,
-       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.409500,
-       -0.959446,-0.199329,0.199329,0.874620,0.342412,-0.361333,
-       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.409500,
-       -0.976969,-0.100277,0.188350,0.870135,0.398579,-0.335375,
-       -0.976969,-0.188350,0.100277,0.870135,0.316454,-0.417500,
-       -0.969635,-0.244558,-0.000000,0.867922,0.303516,-0.500000,
-       -0.996384,-0.084960,0.000000,0.859111,0.383329,-0.500000,
-       -0.996384,-0.084960,0.000000,0.859111,0.383329,-0.500000,
-       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.409500,
-       -0.976969,-0.188350,0.100277,0.870135,0.316454,-0.417500,
-       -1.000000,-0.000000,0.000000,0.856159,0.481079,-0.500000,
-       -0.996384,0.000000,0.084960,0.859111,0.481079,-0.402250,
-       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.409500,
-       -1.000000,-0.000000,0.000000,0.856159,0.481079,-0.500000,
-       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.409500,
-       -0.996384,-0.084960,0.000000,0.859111,0.383329,-0.500000,
-       -0.996384,0.000000,0.084960,0.859111,0.481079,-0.402250,
-       -0.969635,-0.000000,0.244558,0.867922,0.481079,-0.322437,
-       -0.976969,-0.100277,0.188350,0.870135,0.398579,-0.335375,
-       -0.976969,-0.100277,0.188350,0.870135,0.398579,-0.335375,
-       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.409500,
-       -0.996384,0.000000,0.084960,0.859111,0.481079,-0.402250,
-       -0.959446,-0.199329,-0.199329,0.874620,0.342412,-0.638667,
-       -0.976969,-0.100277,-0.188350,0.870135,0.398579,-0.664625,
-       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.590500,
-       -0.959446,-0.199329,-0.199329,0.874620,0.342412,-0.638667,
-       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.590500,
-       -0.976969,-0.188350,-0.100277,0.870135,0.316454,-0.582500,
-       -0.976969,-0.100277,-0.188350,0.870135,0.398579,-0.664625,
-       -0.969635,0.000000,-0.244558,0.867922,0.481079,-0.677562,
-       -0.996384,0.000000,-0.084960,0.859111,0.481079,-0.597750,
-       -0.996384,0.000000,-0.084960,0.859111,0.481079,-0.597750,
-       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.590500,
-       -0.976969,-0.100277,-0.188350,0.870135,0.398579,-0.664625,
-       -1.000000,-0.000000,0.000000,0.856159,0.481079,-0.500000,
-       -0.996384,-0.084960,0.000000,0.859111,0.383329,-0.500000,
-       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.590500,
-       -1.000000,-0.000000,0.000000,0.856159,0.481079,-0.500000,
-       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.590500,
-       -0.996384,0.000000,-0.084960,0.859111,0.481079,-0.597750,
-       -0.996384,-0.084960,0.000000,0.859111,0.383329,-0.500000,
-       -0.969635,-0.244558,-0.000000,0.867922,0.303516,-0.500000,
-       -0.976969,-0.188350,-0.100277,0.870135,0.316454,-0.582500,
-       -0.976969,-0.188350,-0.100277,0.870135,0.316454,-0.582500,
-       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.590500,
-       -0.996384,-0.084960,0.000000,0.859111,0.383329,-0.500000,
-       -0.959446,0.199329,-0.199329,0.874620,0.619745,-0.638667,
-       -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.582500,
-       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.590500,
-       -0.959446,0.199329,-0.199329,0.874620,0.619745,-0.638667,
-       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.590500,
-       -0.976969,0.100277,-0.188350,0.870135,0.563579,-0.664625,
-       -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.582500,
-       -0.969635,0.244558,0.000000,0.867922,0.658641,-0.500000,
-       -0.996384,0.084960,0.000000,0.859111,0.578829,-0.500000,
-       -0.996384,0.084960,0.000000,0.859111,0.578829,-0.500000,
-       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.590500,
-       -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.582500,
-       -1.000000,-0.000000,0.000000,0.856159,0.481079,-0.500000,
-       -0.996384,0.000000,-0.084960,0.859111,0.481079,-0.597750,
-       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.590500,
-       -1.000000,-0.000000,0.000000,0.856159,0.481079,-0.500000,
-       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.590500,
-       -0.996384,0.084960,0.000000,0.859111,0.578829,-0.500000,
-       -0.996384,0.000000,-0.084960,0.859111,0.481079,-0.597750,
-       -0.969635,0.000000,-0.244558,0.867922,0.481079,-0.677562,
-       -0.976969,0.100277,-0.188350,0.870135,0.563579,-0.664625,
-       -0.976969,0.100277,-0.188350,0.870135,0.563579,-0.664625,
-       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.590500,
-       -0.996384,0.000000,-0.084960,0.859111,0.481079,-0.597750,
-       0.642358,0.715039,-0.275852,0.998334,0.635570,-0.587230,
-       0.575185,0.562873,-0.593580,0.995497,0.593044,-0.659921,
+       -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+       -0.976969,-0.100277,-0.18835,0.870135,0.398579,-0.664625,
+       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+       -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+       -0.845588,-0.179708,-0.502678,0.883764,0.393579,-0.706,
+       -0.761523,0.030964,-0.647398,0.882548,0.481079,-0.7215,
+       -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
+       -0.976969,0.100277,0.18835,0.870135,0.563579,-0.335375,
+       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+       -0.959446,0.199329,0.199329,0.87462,0.619745,-0.361333,
+       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+       -0.976969,0.188349,0.100277,0.870135,0.645704,-0.4175,
+       -0.976969,0.100277,0.18835,0.870135,0.563579,-0.335375,
+       -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+       -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+       -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+       -0.976969,0.100277,0.18835,0.870135,0.563579,-0.335375,
+       -1,0,0,0.856159,0.481079,-0.5,
+       -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+       -1,0,0,0.856159,0.481079,-0.5,
+       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+       -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+       -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+       -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+       -0.976969,0.188349,0.100277,0.870135,0.645704,-0.4175,
+       -0.976969,0.188349,0.100277,0.870135,0.645704,-0.4175,
+       -0.993621,0.079739,0.079739,0.861889,0.571579,-0.4095,
+       -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+       -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
+       -0.976969,-0.18835,0.100277,0.870135,0.316454,-0.4175,
+       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+       -0.959446,-0.199329,0.199329,0.87462,0.342412,-0.361333,
+       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+       -0.976969,-0.100277,0.18835,0.870135,0.398579,-0.335375,
+       -0.976969,-0.18835,0.100277,0.870135,0.316454,-0.4175,
+       -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+       -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+       -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+       -0.976969,-0.18835,0.100277,0.870135,0.316454,-0.4175,
+       -1,0,0,0.856159,0.481079,-0.5,
+       -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+       -1,0,0,0.856159,0.481079,-0.5,
+       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+       -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+       -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+       -0.969635,0,0.244558,0.867922,0.481079,-0.322437,
+       -0.976969,-0.100277,0.18835,0.870135,0.398579,-0.335375,
+       -0.976969,-0.100277,0.18835,0.870135,0.398579,-0.335375,
+       -0.993621,-0.079739,0.079739,0.861889,0.390579,-0.4095,
+       -0.996384,0,0.08496,0.859111,0.481079,-0.40225,
+       -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
+       -0.976969,-0.100277,-0.18835,0.870135,0.398579,-0.664625,
+       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+       -0.959446,-0.199329,-0.199329,0.87462,0.342412,-0.638667,
+       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+       -0.976969,-0.18835,-0.100277,0.870135,0.316454,-0.5825,
+       -0.976969,-0.100277,-0.18835,0.870135,0.398579,-0.664625,
+       -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+       -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+       -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+       -0.976969,-0.100277,-0.18835,0.870135,0.398579,-0.664625,
+       -1,0,0,0.856159,0.481079,-0.5,
+       -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+       -1,0,0,0.856159,0.481079,-0.5,
+       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+       -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+       -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+       -0.969635,-0.244558,0,0.867922,0.303516,-0.5,
+       -0.976969,-0.18835,-0.100277,0.870135,0.316454,-0.5825,
+       -0.976969,-0.18835,-0.100277,0.870135,0.316454,-0.5825,
+       -0.993621,-0.079739,-0.079739,0.861889,0.390579,-0.5905,
+       -0.996384,-0.08496,0,0.859111,0.383329,-0.5,
+       -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
+       -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.5825,
+       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+       -0.959446,0.199329,-0.199329,0.87462,0.619745,-0.638667,
+       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+       -0.976969,0.100277,-0.18835,0.870135,0.563579,-0.664625,
+       -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.5825,
+       -0.969635,0.244558,0,0.867922,0.658641,-0.5,
+       -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+       -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+       -0.976969,0.188349,-0.100277,0.870135,0.645704,-0.5825,
+       -1,0,0,0.856159,0.481079,-0.5,
+       -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+       -1,0,0,0.856159,0.481079,-0.5,
+       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+       -0.996384,0.08496,0,0.859111,0.578829,-0.5,
+       -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+       -0.969635,0,-0.244558,0.867922,0.481079,-0.677562,
+       -0.976969,0.100277,-0.18835,0.870135,0.563579,-0.664625,
+       -0.976969,0.100277,-0.18835,0.870135,0.563579,-0.664625,
+       -0.993621,0.079739,-0.079739,0.861889,0.571579,-0.5905,
+       -0.996384,0,-0.08496,0.859111,0.481079,-0.59775,
+       0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
+       0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
        0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
        0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
        0.668157,0.701389,-0.248233,1.071585,0.569561,-0.579959,
-       0.642358,0.715039,-0.275852,0.998334,0.635570,-0.587230,
+       0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
        0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
-       0.585003,0.517563,-0.624420,1.149095,0.453892,-0.633787,
+       0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
        0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
        0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
        0.668157,0.701389,-0.248233,1.071585,0.569561,-0.579959,
        0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
        0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
-       0.700187,0.713960,0.000000,1.161726,0.497346,-0.500000,
-       0.687547,0.726140,0.000000,1.073477,0.582162,-0.500000,
-       0.687547,0.726140,0.000000,1.073477,0.582162,-0.500000,
+       0.700187,0.71396,0,1.161726,0.497346,-0.5,
+       0.687547,0.72614,0,1.073477,0.582162,-0.5,
+       0.687547,0.72614,0,1.073477,0.582162,-0.5,
        0.668157,0.701389,-0.248233,1.071585,0.569561,-0.579959,
        0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
-       0.662437,0.749118,0.000000,0.999280,0.649745,-0.500000,
-       0.642358,0.715039,-0.275852,0.998334,0.635570,-0.587230,
+       0.662437,0.749118,0,0.99928,0.649745,-0.5,
+       0.642358,0.715039,-0.275852,0.998334,0.63557,-0.58723,
        0.668157,0.701389,-0.248233,1.071585,0.569561,-0.579959,
-       0.662437,0.749118,0.000000,0.999280,0.649745,-0.500000,
+       0.662437,0.749118,0,0.99928,0.649745,-0.5,
        0.668157,0.701389,-0.248233,1.071585,0.569561,-0.579959,
-       0.687547,0.726140,0.000000,1.073477,0.582162,-0.500000,
-       0.568513,0.503436,-0.650650,1.239650,0.364075,-0.624059,
+       0.687547,0.72614,0,1.073477,0.582162,-0.5,
+       0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
        0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
        0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
        0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
        0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
-       0.568513,0.503436,-0.650650,1.239650,0.364075,-0.624059,
-       0.726158,0.687528,-0.000000,1.357882,0.297224,-0.500000,
-       0.712870,0.701296,0.000000,1.258403,0.400600,-0.500000,
+       0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
+       0.726158,0.687528,0,1.357882,0.297224,-0.5,
+       0.71287,0.701296,0,1.258403,0.4006,-0.5,
        0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
-       0.726158,0.687528,-0.000000,1.357882,0.297224,-0.500000,
+       0.726158,0.687528,0,1.357882,0.297224,-0.5,
        0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
        0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
-       0.712870,0.701296,0.000000,1.258403,0.400600,-0.500000,
-       0.700187,0.713960,0.000000,1.161726,0.497346,-0.500000,
+       0.71287,0.701296,0,1.258403,0.4006,-0.5,
+       0.700187,0.71396,0,1.161726,0.497346,-0.5,
        0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
        0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
        0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
-       0.712870,0.701296,0.000000,1.258403,0.400600,-0.500000,
-       0.585003,0.517563,-0.624420,1.149095,0.453892,-0.633787,
-       0.568513,0.503436,-0.650650,1.239650,0.364075,-0.624059,
+       0.71287,0.701296,0,1.258403,0.4006,-0.5,
+       0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
+       0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
        0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
-       0.585003,0.517563,-0.624420,1.149095,0.453892,-0.633787,
+       0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
        0.688382,0.659806,-0.301308,1.253715,0.391468,-0.567669,
        0.682874,0.680924,-0.264625,1.158568,0.486483,-0.572975,
        0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
        0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
-       0.568513,0.503436,0.650650,1.239650,0.364075,-0.375941,
-       0.568513,0.503436,0.650650,1.239650,0.364075,-0.375941,
+       0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
+       0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
        0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
        0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
-       0.585003,0.517563,0.624420,1.149095,0.453892,-0.366213,
+       0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
        0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
        0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
-       0.585003,0.517563,0.624420,1.149095,0.453892,-0.366213,
+       0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
        0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
-       0.568513,0.503436,0.650650,1.239650,0.364075,-0.375941,
+       0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
        0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
-       0.700187,0.713960,0.000000,1.161726,0.497346,-0.500000,
-       0.712870,0.701296,0.000000,1.258403,0.400600,-0.500000,
-       0.712870,0.701296,0.000000,1.258403,0.400600,-0.500000,
+       0.700187,0.71396,0,1.161726,0.497346,-0.5,
+       0.71287,0.701296,0,1.258403,0.4006,-0.5,
+       0.71287,0.701296,0,1.258403,0.4006,-0.5,
        0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
        0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
-       0.726158,0.687528,-0.000000,1.357882,0.297224,-0.500000,
+       0.726158,0.687528,0,1.357882,0.297224,-0.5,
        0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
        0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
-       0.726158,0.687528,-0.000000,1.357882,0.297224,-0.500000,
+       0.726158,0.687528,0,1.357882,0.297224,-0.5,
        0.688382,0.659806,0.301308,1.253715,0.391468,-0.432331,
-       0.712870,0.701296,0.000000,1.258403,0.400600,-0.500000,
+       0.71287,0.701296,0,1.258403,0.4006,-0.5,
        0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
-       0.575185,0.562873,0.593580,0.995497,0.593044,-0.340079,
-       0.642358,0.715039,0.275852,0.998334,0.635570,-0.412770,
-       0.642358,0.715039,0.275852,0.998334,0.635570,-0.412770,
+       0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
+       0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
+       0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
        0.668157,0.701389,0.248233,1.071585,0.569561,-0.420041,
        0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
-       0.662437,0.749118,0.000000,0.999280,0.649745,-0.500000,
-       0.687547,0.726140,0.000000,1.073477,0.582162,-0.500000,
+       0.662437,0.749118,0,0.99928,0.649745,-0.5,
+       0.687547,0.72614,0,1.073477,0.582162,-0.5,
        0.668157,0.701389,0.248233,1.071585,0.569561,-0.420041,
-       0.662437,0.749118,0.000000,0.999280,0.649745,-0.500000,
+       0.662437,0.749118,0,0.99928,0.649745,-0.5,
        0.668157,0.701389,0.248233,1.071585,0.569561,-0.420041,
-       0.642358,0.715039,0.275852,0.998334,0.635570,-0.412770,
-       0.687547,0.726140,0.000000,1.073477,0.582162,-0.500000,
-       0.700187,0.713960,0.000000,1.161726,0.497346,-0.500000,
+       0.642358,0.715039,0.275852,0.998334,0.63557,-0.41277,
+       0.687547,0.72614,0,1.073477,0.582162,-0.5,
+       0.700187,0.71396,0,1.161726,0.497346,-0.5,
        0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
        0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
        0.668157,0.701389,0.248233,1.071585,0.569561,-0.420041,
-       0.687547,0.726140,0.000000,1.073477,0.582162,-0.500000,
+       0.687547,0.72614,0,1.073477,0.582162,-0.5,
        0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
-       0.585003,0.517563,0.624420,1.149095,0.453892,-0.366213,
+       0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
        0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
        0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
        0.668157,0.701389,0.248233,1.071585,0.569561,-0.420041,
        0.682874,0.680923,0.264625,1.158568,0.486483,-0.427025,
        -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
        -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
-       0.010629,-0.366255,-0.930454,1.033759,0.317550,-0.686572,
+       0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
        -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
-       0.010629,-0.366255,-0.930454,1.033759,0.317550,-0.686572,
+       0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
        0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
        -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
-       -0.405056,-0.645141,-0.647860,1.079619,0.214898,-0.633787,
+       -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
        -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
        -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
-       0.010629,-0.366255,-0.930454,1.033759,0.317550,-0.686572,
+       0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
        -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
        0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
        0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
-       0.010629,-0.366255,-0.930454,1.033759,0.317550,-0.686572,
+       0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
        0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
-       0.010629,-0.366255,-0.930454,1.033759,0.317550,-0.686572,
+       0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
        -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
        0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
        0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
        0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
        0.110573,-0.360362,-0.926236,0.979421,0.352064,-0.703536,
-       0.010629,-0.366255,-0.930454,1.033759,0.317550,-0.686572,
+       0.010629,-0.366255,-0.930454,1.033759,0.31755,-0.686572,
        0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
        -0.469451,-0.529408,-0.706642,1.136509,0.163187,-0.624059,
        -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
-       -0.293198,-0.238286,-0.925881,1.222960,0.138221,-0.652683,
-       -0.293198,-0.238286,-0.925881,1.222960,0.138221,-0.652683,
-       -0.196230,-0.318838,-0.927274,1.159950,0.208844,-0.657894,
+       -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
+       -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
+       -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
        -0.469451,-0.529408,-0.706642,1.136509,0.163187,-0.624059,
-       0.003001,-0.001255,-0.999995,1.261509,0.183650,-0.663589,
-       0.084953,-0.045180,-0.995360,1.188080,0.263631,-0.669172,
-       -0.196230,-0.318838,-0.927274,1.159950,0.208844,-0.657894,
-       0.003001,-0.001255,-0.999995,1.261509,0.183650,-0.663589,
-       -0.196230,-0.318838,-0.927274,1.159950,0.208844,-0.657894,
-       -0.293198,-0.238286,-0.925881,1.222960,0.138221,-0.652683,
-       0.084953,-0.045180,-0.995360,1.188080,0.263631,-0.669172,
+       0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+       0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
+       -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
+       0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+       -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
+       -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
+       0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
        0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
        -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
        -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
-       -0.196230,-0.318838,-0.927274,1.159950,0.208844,-0.657894,
-       0.084953,-0.045180,-0.995360,1.188080,0.263631,-0.669172,
-       -0.405056,-0.645141,-0.647860,1.079619,0.214898,-0.633787,
+       -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
+       0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
+       -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
        -0.469451,-0.529408,-0.706642,1.136509,0.163187,-0.624059,
-       -0.196230,-0.318838,-0.927274,1.159950,0.208844,-0.657894,
-       -0.405056,-0.645141,-0.647860,1.079619,0.214898,-0.633787,
-       -0.196230,-0.318838,-0.927274,1.159950,0.208844,-0.657894,
+       -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
+       -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
+       -0.19623,-0.318838,-0.927274,1.15995,0.208844,-0.657894,
        -0.092335,-0.356775,-0.929616,1.095409,0.269215,-0.670274,
        0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
-       0.568513,0.503436,-0.650650,1.239650,0.364075,-0.624059,
+       0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
        0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
        0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
        0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
-       0.284277,0.249094,-0.925818,1.300058,0.229080,-0.652683,
-       0.568513,0.503436,-0.650650,1.239650,0.364075,-0.624059,
-       0.585003,0.517563,-0.624420,1.149095,0.453892,-0.633787,
+       0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
+       0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
+       0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
        0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
        0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
        0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
-       0.568513,0.503436,-0.650650,1.239650,0.364075,-0.624059,
+       0.568513,0.503436,-0.65065,1.23965,0.364075,-0.624059,
        0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
-       0.084953,-0.045180,-0.995360,1.188080,0.263631,-0.669172,
+       0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
        0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
        0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
        0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
        0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
-       0.084953,-0.045180,-0.995360,1.188080,0.263631,-0.669172,
-       0.003001,-0.001255,-0.999995,1.261509,0.183650,-0.663589,
-       0.284277,0.249094,-0.925818,1.300058,0.229080,-0.652683,
-       0.284277,0.249094,-0.925818,1.300058,0.229080,-0.652683,
+       0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
+       0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+       0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
+       0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
        0.340631,0.234777,-0.910412,1.216209,0.318418,-0.657894,
-       0.084953,-0.045180,-0.995360,1.188080,0.263631,-0.669172,
+       0.084953,-0.04518,-0.99536,1.18808,0.263631,-0.669172,
        0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
-       0.575185,0.562873,-0.593580,0.995497,0.593044,-0.659921,
-       0.447221,0.281892,-0.848840,0.990769,0.522168,-0.703536,
-       0.447221,0.281892,-0.848840,0.990769,0.522168,-0.703536,
-       0.431005,0.262774,-0.863240,1.056455,0.468757,-0.686572,
+       0.575185,0.562873,-0.59358,0.995497,0.593044,-0.659921,
+       0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
+       0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
+       0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
        0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
        0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
        0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
-       0.431005,0.262774,-0.863240,1.056455,0.468757,-0.686572,
+       0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
        0.291602,-0.024985,-0.956213,0.985095,0.437116,-0.718074,
-       0.431005,0.262774,-0.863240,1.056455,0.468757,-0.686572,
-       0.447221,0.281892,-0.848840,0.990769,0.522168,-0.703536,
+       0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
+       0.447221,0.281892,-0.84884,0.990769,0.522168,-0.703536,
        0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
        0.167416,-0.052778,-0.984473,1.114357,0.334395,-0.682436,
        0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
        0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
-       0.431005,0.262774,-0.863240,1.056455,0.468757,-0.686572,
+       0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
        0.238763,-0.041303,-0.970199,1.045107,0.393153,-0.699898,
-       0.585003,0.517563,-0.624420,1.149095,0.453892,-0.633787,
+       0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
        0.599141,0.555368,-0.576712,1.065911,0.531759,-0.646592,
-       0.431005,0.262774,-0.863240,1.056455,0.468757,-0.686572,
-       0.585003,0.517563,-0.624420,1.149095,0.453892,-0.633787,
-       0.431005,0.262774,-0.863240,1.056455,0.468757,-0.686572,
+       0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
+       0.585003,0.517563,-0.62442,1.149095,0.453892,-0.633787,
+       0.431005,0.262774,-0.86324,1.056455,0.468757,-0.686572,
        0.392854,0.244042,-0.886628,1.133305,0.399575,-0.670274,
        -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
        0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
-       0.010629,-0.366254,0.930454,1.033759,0.317550,-0.313428,
+       0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
        -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
-       0.010629,-0.366254,0.930454,1.033759,0.317550,-0.313428,
-       -0.251782,-0.681632,0.687010,1.024302,0.254547,-0.353408,
+       0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
+       -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
        0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
        0.291601,-0.024985,0.956214,0.985095,0.437116,-0.281926,
        0.238762,-0.041303,0.970199,1.045107,0.393153,-0.300102,
        0.238762,-0.041303,0.970199,1.045107,0.393153,-0.300102,
-       0.010629,-0.366254,0.930454,1.033759,0.317550,-0.313428,
+       0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
        0.110573,-0.360361,0.926236,0.979421,0.352064,-0.296464,
        0.167415,-0.052778,0.984473,1.114357,0.334395,-0.317564,
        -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
-       0.010629,-0.366254,0.930454,1.033759,0.317550,-0.313428,
+       0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
        0.167415,-0.052778,0.984473,1.114357,0.334395,-0.317564,
-       0.010629,-0.366254,0.930454,1.033759,0.317550,-0.313428,
+       0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
        0.238762,-0.041303,0.970199,1.045107,0.393153,-0.300102,
        -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
-       -0.405056,-0.645141,0.647860,1.079619,0.214898,-0.366213,
-       -0.251782,-0.681632,0.687010,1.024302,0.254547,-0.353408,
-       -0.251782,-0.681632,0.687010,1.024302,0.254547,-0.353408,
-       0.010629,-0.366254,0.930454,1.033759,0.317550,-0.313428,
+       -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
+       -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
+       -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
+       0.010629,-0.366254,0.930454,1.033759,0.31755,-0.313428,
        -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
        0.447221,0.281892,0.848841,0.990769,0.522168,-0.296464,
-       0.575185,0.562873,0.593580,0.995497,0.593044,-0.340079,
+       0.575185,0.562873,0.59358,0.995497,0.593044,-0.340079,
        0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
        0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
        0.431005,0.262774,0.863241,1.056455,0.468757,-0.313428,
        0.447221,0.281892,0.848841,0.990769,0.522168,-0.296464,
-       0.585003,0.517563,0.624420,1.149095,0.453892,-0.366213,
+       0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
        0.392854,0.244041,0.886628,1.133305,0.399575,-0.329726,
        0.431005,0.262774,0.863241,1.056455,0.468757,-0.313428,
-       0.585003,0.517563,0.624420,1.149095,0.453892,-0.366213,
+       0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
        0.431005,0.262774,0.863241,1.056455,0.468757,-0.313428,
        0.599141,0.555368,0.576712,1.065911,0.531759,-0.353408,
        0.392854,0.244041,0.886628,1.133305,0.399575,-0.329726,
@@ -721,101 +721,101 @@ static const float data[]={
        0.431005,0.262774,0.863241,1.056455,0.468757,-0.313428,
        0.238762,-0.041303,0.970199,1.045107,0.393153,-0.300102,
        0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
-       0.284277,0.249093,0.925818,1.300058,0.229080,-0.347317,
-       0.340630,0.234777,0.910412,1.216209,0.318418,-0.342106,
+       0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
+       0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
        0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
-       0.340630,0.234777,0.910412,1.216209,0.318418,-0.342106,
-       0.568513,0.503436,0.650650,1.239650,0.364075,-0.375941,
-       0.284277,0.249093,0.925818,1.300058,0.229080,-0.347317,
-       0.003001,-0.001255,0.999995,1.261509,0.183650,-0.336411,
-       0.084953,-0.045180,0.995360,1.188080,0.263631,-0.330828,
-       0.084953,-0.045180,0.995360,1.188080,0.263631,-0.330828,
-       0.340630,0.234777,0.910412,1.216209,0.318418,-0.342106,
-       0.284277,0.249093,0.925818,1.300058,0.229080,-0.347317,
+       0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
+       0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
+       0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
+       0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
+       0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
+       0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
+       0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
+       0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
        0.167415,-0.052778,0.984473,1.114357,0.334395,-0.317564,
        0.392854,0.244041,0.886628,1.133305,0.399575,-0.329726,
-       0.340630,0.234777,0.910412,1.216209,0.318418,-0.342106,
+       0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
        0.167415,-0.052778,0.984473,1.114357,0.334395,-0.317564,
-       0.340630,0.234777,0.910412,1.216209,0.318418,-0.342106,
-       0.084953,-0.045180,0.995360,1.188080,0.263631,-0.330828,
+       0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
+       0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
        0.392854,0.244041,0.886628,1.133305,0.399575,-0.329726,
-       0.585003,0.517563,0.624420,1.149095,0.453892,-0.366213,
-       0.568513,0.503436,0.650650,1.239650,0.364075,-0.375941,
-       0.568513,0.503436,0.650650,1.239650,0.364075,-0.375941,
-       0.340630,0.234777,0.910412,1.216209,0.318418,-0.342106,
+       0.585003,0.517563,0.62442,1.149095,0.453892,-0.366213,
+       0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
+       0.568513,0.503436,0.65065,1.23965,0.364075,-0.375941,
+       0.34063,0.234777,0.910412,1.216209,0.318418,-0.342106,
        0.392854,0.244041,0.886628,1.133305,0.399575,-0.329726,
-       -0.293197,-0.238286,0.925881,1.222960,0.138221,-0.347317,
+       -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
        -0.591819,-0.448047,0.670078,1.190836,0.100363,-0.380035,
        -0.469451,-0.529408,0.706642,1.136509,0.163187,-0.375941,
        -0.469451,-0.529408,0.706642,1.136509,0.163187,-0.375941,
-       -0.196230,-0.318838,0.927274,1.159950,0.208844,-0.342106,
-       -0.293197,-0.238286,0.925881,1.222960,0.138221,-0.347317,
-       -0.405056,-0.645141,0.647860,1.079619,0.214898,-0.366213,
+       -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
+       -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
+       -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
        -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
-       -0.196230,-0.318838,0.927274,1.159950,0.208844,-0.342106,
-       -0.405056,-0.645141,0.647860,1.079619,0.214898,-0.366213,
-       -0.196230,-0.318838,0.927274,1.159950,0.208844,-0.342106,
+       -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
+       -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
+       -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
        -0.469451,-0.529408,0.706642,1.136509,0.163187,-0.375941,
        -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
        0.167415,-0.052778,0.984473,1.114357,0.334395,-0.317564,
-       0.084953,-0.045180,0.995360,1.188080,0.263631,-0.330828,
-       0.084953,-0.045180,0.995360,1.188080,0.263631,-0.330828,
-       -0.196230,-0.318838,0.927274,1.159950,0.208844,-0.342106,
+       0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
+       0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
+       -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
        -0.092335,-0.356776,0.929616,1.095409,0.269215,-0.329726,
-       0.003001,-0.001255,0.999995,1.261509,0.183650,-0.336411,
-       -0.293197,-0.238286,0.925881,1.222960,0.138221,-0.347317,
-       -0.196230,-0.318838,0.927274,1.159950,0.208844,-0.342106,
-       0.003001,-0.001255,0.999995,1.261509,0.183650,-0.336411,
-       -0.196230,-0.318838,0.927274,1.159950,0.208844,-0.342106,
-       0.084953,-0.045180,0.995360,1.188080,0.263631,-0.330828,
+       0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
+       -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
+       -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
+       0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
+       -0.19623,-0.318838,0.927274,1.15995,0.208844,-0.342106,
+       0.084953,-0.04518,0.99536,1.18808,0.263631,-0.330828,
        -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
        -0.103837,-0.707557,-0.698986,0.974692,0.281188,-0.659921,
-       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.587230,
-       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.587230,
-       -0.428690,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
+       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
+       -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
        -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
-       -0.339022,-0.940778,-0.000000,0.970910,0.224487,-0.500000,
-       -0.499130,-0.866527,0.000000,1.016736,0.204145,-0.500000,
-       -0.428690,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
-       -0.339022,-0.940778,-0.000000,0.970910,0.224487,-0.500000,
-       -0.428690,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
-       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.587230,
-       -0.499130,-0.866527,0.000000,1.016736,0.204145,-0.500000,
-       -0.605110,-0.796142,0.000000,1.066987,0.171444,-0.500000,
+       -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+       -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
+       -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+       -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+       -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+       -0.260846,-0.906261,-0.332641,0.971855,0.238662,-0.58723,
+       -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
+       -0.60511,-0.796142,0,1.066987,0.171444,-0.5,
        -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
        -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
-       -0.428690,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
-       -0.499130,-0.866527,0.000000,1.016736,0.204145,-0.500000,
-       -0.405056,-0.645141,-0.647860,1.079619,0.214898,-0.633787,
+       -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+       -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
+       -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
        -0.251782,-0.681632,-0.687011,1.024302,0.254547,-0.646592,
-       -0.428690,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
-       -0.405056,-0.645141,-0.647860,1.079619,0.214898,-0.633787,
-       -0.428690,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+       -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
+       -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
+       -0.42869,-0.845027,-0.319616,1.018628,0.216746,-0.579959,
        -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
-       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.412770,
+       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
        -0.103837,-0.707557,0.698986,0.974692,0.281188,-0.340079,
-       -0.251782,-0.681632,0.687010,1.024302,0.254547,-0.353408,
-       -0.251782,-0.681632,0.687010,1.024302,0.254547,-0.353408,
-       -0.428690,-0.845027,0.319616,1.018628,0.216746,-0.420041,
-       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.412770,
-       -0.405056,-0.645141,0.647860,1.079619,0.214898,-0.366213,
+       -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
+       -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
+       -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
+       -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
        -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
-       -0.428690,-0.845027,0.319616,1.018628,0.216746,-0.420041,
-       -0.405056,-0.645141,0.647860,1.079619,0.214898,-0.366213,
-       -0.428690,-0.845027,0.319616,1.018628,0.216746,-0.420041,
-       -0.251782,-0.681632,0.687010,1.024302,0.254547,-0.353408,
+       -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+       -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
+       -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+       -0.251782,-0.681632,0.68701,1.024302,0.254547,-0.353408,
        -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
-       -0.605110,-0.796142,0.000000,1.066987,0.171444,-0.500000,
-       -0.499130,-0.866527,0.000000,1.016736,0.204145,-0.500000,
-       -0.499130,-0.866527,0.000000,1.016736,0.204145,-0.500000,
-       -0.428690,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+       -0.60511,-0.796142,0,1.066987,0.171444,-0.5,
+       -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
+       -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
+       -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
        -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
-       -0.339022,-0.940778,-0.000000,0.970910,0.224487,-0.500000,
-       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.412770,
-       -0.428690,-0.845027,0.319616,1.018628,0.216746,-0.420041,
-       -0.339022,-0.940778,-0.000000,0.970910,0.224487,-0.500000,
-       -0.428690,-0.845027,0.319616,1.018628,0.216746,-0.420041,
-       -0.499130,-0.866527,0.000000,1.016736,0.204145,-0.500000,
+       -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+       -0.260846,-0.906261,0.332641,0.971855,0.238662,-0.41277,
+       -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+       -0.339022,-0.940778,0,0.97091,0.224487,-0.5,
+       -0.42869,-0.845027,0.319616,1.018628,0.216746,-0.420041,
+       -0.49913,-0.866527,0,1.016736,0.204145,-0.5,
        -0.591819,-0.448047,0.670078,1.190836,0.100363,-0.380035,
        -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
        -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
@@ -823,21 +823,21 @@ static const float data[]={
        -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
        -0.469451,-0.529408,0.706642,1.136509,0.163187,-0.375941,
        -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
-       -0.831075,-0.556160,0.000000,1.165137,0.070077,-0.500000,
-       -0.713427,-0.700729,-0.000000,1.117756,0.126662,-0.500000,
-       -0.713427,-0.700729,-0.000000,1.117756,0.126662,-0.500000,
+       -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
+       -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+       -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
        -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
        -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
-       -0.713427,-0.700729,-0.000000,1.117756,0.126662,-0.500000,
-       -0.605110,-0.796142,0.000000,1.066987,0.171444,-0.500000,
+       -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+       -0.60511,-0.796142,0,1.066987,0.171444,-0.5,
        -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
        -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
        -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
-       -0.713427,-0.700729,-0.000000,1.117756,0.126662,-0.500000,
-       -0.405056,-0.645141,0.647860,1.079619,0.214898,-0.366213,
+       -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+       -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
        -0.469451,-0.529408,0.706642,1.136509,0.163187,-0.375941,
        -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
-       -0.405056,-0.645141,0.647860,1.079619,0.214898,-0.366213,
+       -0.405056,-0.645141,0.64786,1.079619,0.214898,-0.366213,
        -0.649709,-0.667916,0.362996,1.122445,0.135794,-0.432331,
        -0.573691,-0.778283,0.255254,1.070145,0.182308,-0.427025,
        -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
@@ -846,166 +846,166 @@ static const float data[]={
        -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
        -0.649709,-0.667916,-0.362996,1.122445,0.135794,-0.567669,
        -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
-       -0.405056,-0.645141,-0.647860,1.079619,0.214898,-0.633787,
+       -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
        -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
        -0.649709,-0.667916,-0.362996,1.122445,0.135794,-0.567669,
-       -0.405056,-0.645141,-0.647860,1.079619,0.214898,-0.633787,
+       -0.405056,-0.645141,-0.64786,1.079619,0.214898,-0.633787,
        -0.649709,-0.667916,-0.362996,1.122445,0.135794,-0.567669,
        -0.469451,-0.529408,-0.706642,1.136509,0.163187,-0.624059,
        -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
-       -0.605110,-0.796142,0.000000,1.066987,0.171444,-0.500000,
-       -0.713427,-0.700729,-0.000000,1.117756,0.126662,-0.500000,
-       -0.713427,-0.700729,-0.000000,1.117756,0.126662,-0.500000,
+       -0.60511,-0.796142,0,1.066987,0.171444,-0.5,
+       -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+       -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
        -0.649709,-0.667916,-0.362996,1.122445,0.135794,-0.567669,
        -0.573691,-0.778283,-0.255254,1.070145,0.182308,-0.572975,
-       -0.713427,-0.700729,-0.000000,1.117756,0.126662,-0.500000,
-       -0.831075,-0.556160,0.000000,1.165137,0.070077,-0.500000,
+       -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
+       -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
        -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
        -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
        -0.649709,-0.667916,-0.362996,1.122445,0.135794,-0.567669,
-       -0.713427,-0.700729,-0.000000,1.117756,0.126662,-0.500000,
+       -0.713427,-0.700729,0,1.117756,0.126662,-0.5,
        -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
-       -0.356933,0.091380,-0.929650,1.401596,-0.166219,-0.703536,
+       -0.356933,0.09138,-0.92965,1.401596,-0.166219,-0.703536,
        -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
        -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
        -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
-       -0.736772,-0.170063,-0.654405,1.310553,-0.123450,-0.646592,
-       -0.356933,0.091380,-0.929650,1.401596,-0.166219,-0.703536,
-       -0.077550,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
-       -0.076935,0.189453,-0.978871,1.442923,-0.070450,-0.699898,
-       -0.076935,0.189453,-0.978871,1.442923,-0.070450,-0.699898,
+       -0.736772,-0.170063,-0.654405,1.310553,-0.12345,-0.646592,
+       -0.356933,0.09138,-0.92965,1.401596,-0.166219,-0.703536,
+       -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+       -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
+       -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
        -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
-       -0.356933,0.091380,-0.929650,1.401596,-0.166219,-0.703536,
-       -0.094492,0.118807,-0.988411,1.391060,0.010509,-0.682436,
+       -0.356933,0.09138,-0.92965,1.401596,-0.166219,-0.703536,
+       -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
        -0.411811,-0.074302,-0.908235,1.329732,-0.022152,-0.670274,
        -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
-       -0.094492,0.118807,-0.988411,1.391060,0.010509,-0.682436,
+       -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
        -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
-       -0.076935,0.189453,-0.978871,1.442923,-0.070450,-0.699898,
-       -0.691037,-0.227740,-0.686005,1.278626,-0.049369,-0.633787,
-       -0.736772,-0.170063,-0.654405,1.310553,-0.123450,-0.646592,
+       -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
+       -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
+       -0.736772,-0.170063,-0.654405,1.310553,-0.12345,-0.646592,
        -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
-       -0.691037,-0.227740,-0.686005,1.278626,-0.049369,-0.633787,
+       -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
        -0.410606,0.007113,-0.911785,1.370721,-0.099359,-0.686572,
        -0.411811,-0.074302,-0.908235,1.329732,-0.022152,-0.670274,
-       0.223762,0.384640,-0.895535,1.565078,-0.112852,-0.703536,
-       0.523401,0.541230,-0.658120,1.633195,-0.090616,-0.659921,
-       0.523007,0.532590,-0.665441,1.575292,-0.017451,-0.646592,
-       0.523007,0.532590,-0.665441,1.575292,-0.017451,-0.646592,
-       0.223940,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
-       0.223762,0.384640,-0.895535,1.565078,-0.112852,-0.703536,
+       0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
+       0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
+       0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
+       0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
+       0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+       0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
        0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
-       0.227361,0.327503,-0.917087,1.452388,0.043170,-0.670274,
-       0.223940,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+       0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
+       0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
        0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
-       0.223940,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
-       0.523007,0.532590,-0.665441,1.575292,-0.017451,-0.646592,
-       0.227361,0.327503,-0.917087,1.452388,0.043170,-0.670274,
-       -0.094492,0.118807,-0.988411,1.391060,0.010509,-0.682436,
-       -0.076935,0.189453,-0.978871,1.442923,-0.070450,-0.699898,
-       -0.076935,0.189453,-0.978871,1.442923,-0.070450,-0.699898,
-       0.223940,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
-       0.227361,0.327503,-0.917087,1.452388,0.043170,-0.670274,
-       -0.077550,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
-       0.223762,0.384640,-0.895535,1.565078,-0.112852,-0.703536,
-       0.223940,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
-       -0.077550,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
-       0.223940,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
-       -0.076935,0.189453,-0.978871,1.442923,-0.070450,-0.699898,
+       0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+       0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
+       0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
+       -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+       -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
+       -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
+       0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+       0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
+       -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+       0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
+       0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+       -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+       0.22394,0.359068,-0.906047,1.515124,-0.041541,-0.686572,
+       -0.076935,0.189453,-0.978871,1.442923,-0.07045,-0.699898,
        0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
        0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
-       0.284277,0.249094,-0.925818,1.300058,0.229080,-0.652683,
-       0.284277,0.249094,-0.925818,1.300058,0.229080,-0.652683,
-       0.192479,0.250600,-0.948763,1.379742,0.135354,-0.657894,
+       0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
+       0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
+       0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
        0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
-       0.003001,-0.001255,-0.999995,1.261509,0.183650,-0.663589,
-       -0.080719,0.040880,-0.995898,1.329879,0.097243,-0.669172,
-       0.192479,0.250600,-0.948763,1.379742,0.135354,-0.657894,
-       0.003001,-0.001255,-0.999995,1.261509,0.183650,-0.663589,
-       0.192479,0.250600,-0.948763,1.379742,0.135354,-0.657894,
-       0.284277,0.249094,-0.925818,1.300058,0.229080,-0.652683,
-       -0.094492,0.118807,-0.988411,1.391060,0.010509,-0.682436,
-       0.227361,0.327503,-0.917087,1.452388,0.043170,-0.670274,
-       0.192479,0.250600,-0.948763,1.379742,0.135354,-0.657894,
-       -0.094492,0.118807,-0.988411,1.391060,0.010509,-0.682436,
-       0.192479,0.250600,-0.948763,1.379742,0.135354,-0.657894,
-       -0.080719,0.040880,-0.995898,1.329879,0.097243,-0.669172,
-       0.227361,0.327503,-0.917087,1.452388,0.043170,-0.670274,
+       0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+       -0.080719,0.04088,-0.995898,1.329879,0.097243,-0.669172,
+       0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
+       0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+       0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
+       0.284277,0.249094,-0.925818,1.300058,0.22908,-0.652683,
+       -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+       0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
+       0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
+       -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+       0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
+       -0.080719,0.04088,-0.995898,1.329879,0.097243,-0.669172,
+       0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
        0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
        0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
        0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
-       0.192479,0.250600,-0.948763,1.379742,0.135354,-0.657894,
-       0.227361,0.327503,-0.917087,1.452388,0.043170,-0.670274,
+       0.192479,0.2506,-0.948763,1.379742,0.135354,-0.657894,
+       0.227361,0.327503,-0.917087,1.452388,0.04317,-0.670274,
        -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
        -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
-       -0.356146,-0.136430,-0.924417,1.280017,0.059132,-0.657894,
+       -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
        -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
-       -0.356146,-0.136430,-0.924417,1.280017,0.059132,-0.657894,
-       -0.293198,-0.238286,-0.925881,1.222960,0.138221,-0.652683,
+       -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
+       -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
        -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
-       -0.691037,-0.227740,-0.686005,1.278626,-0.049369,-0.633787,
+       -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
        -0.411811,-0.074302,-0.908235,1.329732,-0.022152,-0.670274,
        -0.411811,-0.074302,-0.908235,1.329732,-0.022152,-0.670274,
-       -0.356146,-0.136430,-0.924417,1.280017,0.059132,-0.657894,
+       -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
        -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
-       -0.094492,0.118807,-0.988411,1.391060,0.010509,-0.682436,
-       -0.080719,0.040880,-0.995898,1.329879,0.097243,-0.669172,
-       -0.356146,-0.136430,-0.924417,1.280017,0.059132,-0.657894,
-       -0.094492,0.118807,-0.988411,1.391060,0.010509,-0.682436,
-       -0.356146,-0.136430,-0.924417,1.280017,0.059132,-0.657894,
+       -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+       -0.080719,0.04088,-0.995898,1.329879,0.097243,-0.669172,
+       -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
+       -0.094492,0.118807,-0.988411,1.39106,0.010509,-0.682436,
+       -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
        -0.411811,-0.074302,-0.908235,1.329732,-0.022152,-0.670274,
-       -0.080719,0.040880,-0.995898,1.329879,0.097243,-0.669172,
-       0.003001,-0.001255,-0.999995,1.261509,0.183650,-0.663589,
-       -0.293198,-0.238286,-0.925881,1.222960,0.138221,-0.652683,
-       -0.293198,-0.238286,-0.925881,1.222960,0.138221,-0.652683,
-       -0.356146,-0.136430,-0.924417,1.280017,0.059132,-0.657894,
-       -0.080719,0.040880,-0.995898,1.329879,0.097243,-0.669172,
+       -0.080719,0.04088,-0.995898,1.329879,0.097243,-0.669172,
+       0.003001,-0.001255,-0.999995,1.261509,0.18365,-0.663589,
+       -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
+       -0.293198,-0.238286,-0.925881,1.22296,0.138221,-0.652683,
+       -0.356146,-0.13643,-0.924417,1.280017,0.059132,-0.657894,
+       -0.080719,0.04088,-0.995898,1.329879,0.097243,-0.669172,
        -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
-       -0.736772,-0.170063,-0.654405,1.310553,-0.123450,-0.646592,
+       -0.736772,-0.170063,-0.654405,1.310553,-0.12345,-0.646592,
        -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
        -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
        -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
-       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.587230,
-       -0.736772,-0.170063,-0.654405,1.310553,-0.123450,-0.646592,
-       -0.691037,-0.227740,-0.686005,1.278626,-0.049369,-0.633787,
-       -0.880661,-0.339398,-0.330522,1.247962,-0.065700,-0.572975,
-       -0.880661,-0.339398,-0.330522,1.247962,-0.065700,-0.572975,
+       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+       -0.736772,-0.170063,-0.654405,1.310553,-0.12345,-0.646592,
+       -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
+       -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
+       -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
        -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
-       -0.736772,-0.170063,-0.654405,1.310553,-0.123450,-0.646592,
-       -0.934966,-0.354738,0.000000,1.237741,-0.071143,-0.500000,
-       -0.960468,-0.278392,0.000000,1.262419,-0.142723,-0.500000,
+       -0.736772,-0.170063,-0.654405,1.310553,-0.12345,-0.646592,
+       -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
+       -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
        -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
-       -0.934966,-0.354738,0.000000,1.237741,-0.071143,-0.500000,
+       -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
        -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
-       -0.880661,-0.339398,-0.330522,1.247962,-0.065700,-0.572975,
-       -0.960468,-0.278392,0.000000,1.262419,-0.142723,-0.500000,
-       -0.977953,-0.208824,0.000000,1.278985,-0.206245,-0.500000,
-       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.587230,
-       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.587230,
+       -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
+       -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
+       -0.977953,-0.208824,0,1.278985,-0.206245,-0.5,
+       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
        -0.904992,-0.260217,-0.336566,1.274453,-0.137904,-0.579959,
-       -0.960468,-0.278392,0.000000,1.262419,-0.142723,-0.500000,
+       -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
        -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
        -0.591819,-0.448047,-0.670078,1.190836,0.100363,-0.619965,
        -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
        -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
        -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
        -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
-       -0.831075,-0.556160,0.000000,1.165137,0.070077,-0.500000,
-       -0.896641,-0.442758,0.000000,1.205222,0.001966,-0.500000,
+       -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
+       -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
        -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
-       -0.831075,-0.556160,0.000000,1.165137,0.070077,-0.500000,
+       -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
        -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
        -0.769835,-0.555714,-0.313903,1.171562,0.077649,-0.565436,
-       -0.896641,-0.442758,0.000000,1.205222,0.001966,-0.500000,
-       -0.934966,-0.354738,0.000000,1.237741,-0.071143,-0.500000,
-       -0.880661,-0.339398,-0.330522,1.247962,-0.065700,-0.572975,
-       -0.880661,-0.339398,-0.330522,1.247962,-0.065700,-0.572975,
+       -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
+       -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
+       -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
+       -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
        -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
-       -0.896641,-0.442758,0.000000,1.205222,0.001966,-0.500000,
+       -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
        -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
-       -0.880661,-0.339398,-0.330522,1.247962,-0.065700,-0.572975,
-       -0.691037,-0.227740,-0.686005,1.278626,-0.049369,-0.633787,
-       -0.691037,-0.227740,-0.686005,1.278626,-0.049369,-0.633787,
+       -0.880661,-0.339398,-0.330522,1.247962,-0.0657,-0.572975,
+       -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
+       -0.691037,-0.22774,-0.686005,1.278626,-0.049369,-0.633787,
        -0.660133,-0.325846,-0.676793,1.238464,0.027373,-0.624059,
        -0.841533,-0.433873,-0.321832,1.213533,0.008318,-0.567669,
        -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
@@ -1016,718 +1016,718 @@ static const float data[]={
        -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
        -0.841533,-0.433873,0.321832,1.213533,0.008318,-0.432331,
        -0.660133,-0.325846,0.676793,1.238464,0.027373,-0.375941,
-       -0.691037,-0.227740,0.686005,1.278626,-0.049369,-0.366213,
-       -0.691037,-0.227740,0.686005,1.278626,-0.049369,-0.366213,
-       -0.880661,-0.339398,0.330522,1.247962,-0.065700,-0.427025,
+       -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
+       -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
+       -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
        -0.841533,-0.433873,0.321832,1.213533,0.008318,-0.432331,
-       -0.880661,-0.339398,0.330522,1.247962,-0.065700,-0.427025,
-       -0.934966,-0.354738,0.000000,1.237741,-0.071143,-0.500000,
-       -0.896641,-0.442758,0.000000,1.205222,0.001966,-0.500000,
-       -0.896641,-0.442758,0.000000,1.205222,0.001966,-0.500000,
+       -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
+       -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
+       -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
+       -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
        -0.841533,-0.433873,0.321832,1.213533,0.008318,-0.432331,
-       -0.880661,-0.339398,0.330522,1.247962,-0.065700,-0.427025,
-       -0.831075,-0.556160,0.000000,1.165137,0.070077,-0.500000,
+       -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
+       -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
        -0.769835,-0.555714,0.313903,1.171562,0.077649,-0.434564,
        -0.841533,-0.433873,0.321832,1.213533,0.008318,-0.432331,
-       -0.831075,-0.556160,0.000000,1.165137,0.070077,-0.500000,
+       -0.831075,-0.55616,0,1.165137,0.070077,-0.5,
        -0.841533,-0.433873,0.321832,1.213533,0.008318,-0.432331,
-       -0.896641,-0.442758,0.000000,1.205222,0.001966,-0.500000,
+       -0.896641,-0.442758,0,1.205222,0.001966,-0.5,
        -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
-       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.412770,
+       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
        -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
        -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
        -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
-       -0.736772,-0.170063,0.654405,1.310553,-0.123450,-0.353408,
-       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.412770,
-       -0.977953,-0.208824,0.000000,1.278985,-0.206245,-0.500000,
-       -0.960468,-0.278392,0.000000,1.262419,-0.142723,-0.500000,
-       -0.960468,-0.278392,0.000000,1.262419,-0.142723,-0.500000,
+       -0.736772,-0.170063,0.654405,1.310553,-0.12345,-0.353408,
+       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
+       -0.977953,-0.208824,0,1.278985,-0.206245,-0.5,
+       -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
+       -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
        -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
-       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.412770,
-       -0.934966,-0.354738,0.000000,1.237741,-0.071143,-0.500000,
-       -0.880661,-0.339398,0.330522,1.247962,-0.065700,-0.427025,
+       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
+       -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
+       -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
        -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
-       -0.934966,-0.354738,0.000000,1.237741,-0.071143,-0.500000,
+       -0.934966,-0.354738,0,1.237741,-0.071143,-0.5,
        -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
-       -0.960468,-0.278392,0.000000,1.262419,-0.142723,-0.500000,
-       -0.880661,-0.339398,0.330522,1.247962,-0.065700,-0.427025,
-       -0.691037,-0.227740,0.686005,1.278626,-0.049369,-0.366213,
-       -0.736772,-0.170063,0.654405,1.310553,-0.123450,-0.353408,
-       -0.736772,-0.170063,0.654405,1.310553,-0.123450,-0.353408,
+       -0.960468,-0.278392,0,1.262419,-0.142723,-0.5,
+       -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
+       -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
+       -0.736772,-0.170063,0.654405,1.310553,-0.12345,-0.353408,
+       -0.736772,-0.170063,0.654405,1.310553,-0.12345,-0.353408,
        -0.904992,-0.260217,0.336566,1.274453,-0.137904,-0.420041,
-       -0.880661,-0.339398,0.330522,1.247962,-0.065700,-0.427025,
+       -0.880661,-0.339398,0.330522,1.247962,-0.0657,-0.427025,
        -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
-       -0.736772,-0.170063,0.654405,1.310553,-0.123450,-0.353408,
+       -0.736772,-0.170063,0.654405,1.310553,-0.12345,-0.353408,
        -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
        -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
        -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
-       -0.356933,0.091380,0.929650,1.401596,-0.166219,-0.296464,
-       -0.691037,-0.227740,0.686005,1.278626,-0.049369,-0.366213,
+       -0.356933,0.09138,0.92965,1.401596,-0.166219,-0.296464,
+       -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
        -0.411811,-0.074302,0.908235,1.329732,-0.022152,-0.329726,
        -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
-       -0.691037,-0.227740,0.686005,1.278626,-0.049369,-0.366213,
+       -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
        -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
-       -0.736772,-0.170063,0.654405,1.310553,-0.123450,-0.353408,
-       -0.094492,0.118807,0.988411,1.391060,0.010509,-0.317564,
-       -0.076935,0.189453,0.978871,1.442923,-0.070450,-0.300102,
+       -0.736772,-0.170063,0.654405,1.310553,-0.12345,-0.353408,
+       -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
+       -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
        -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
-       -0.094492,0.118807,0.988411,1.391060,0.010509,-0.317564,
+       -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
        -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
        -0.411811,-0.074302,0.908235,1.329732,-0.022152,-0.329726,
-       -0.076935,0.189453,0.978871,1.442923,-0.070450,-0.300102,
-       -0.077550,0.232519,0.969495,1.483337,-0.139536,-0.281926,
-       -0.356933,0.091380,0.929650,1.401596,-0.166219,-0.296464,
-       -0.356933,0.091380,0.929650,1.401596,-0.166219,-0.296464,
+       -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
+       -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+       -0.356933,0.09138,0.92965,1.401596,-0.166219,-0.296464,
+       -0.356933,0.09138,0.92965,1.401596,-0.166219,-0.296464,
        -0.410607,0.007113,0.911785,1.370721,-0.099359,-0.313428,
-       -0.076935,0.189453,0.978871,1.442923,-0.070450,-0.300102,
+       -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
        -0.591819,-0.448047,0.670078,1.190836,0.100363,-0.380035,
-       -0.293197,-0.238286,0.925881,1.222960,0.138221,-0.347317,
-       -0.356146,-0.136430,0.924417,1.280017,0.059132,-0.342106,
+       -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
+       -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
        -0.591819,-0.448047,0.670078,1.190836,0.100363,-0.380035,
-       -0.356146,-0.136430,0.924417,1.280017,0.059132,-0.342106,
+       -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
        -0.660133,-0.325846,0.676793,1.238464,0.027373,-0.375941,
-       -0.293197,-0.238286,0.925881,1.222960,0.138221,-0.347317,
-       0.003001,-0.001255,0.999995,1.261509,0.183650,-0.336411,
-       -0.080719,0.040880,0.995898,1.329879,0.097243,-0.330828,
-       -0.080719,0.040880,0.995898,1.329879,0.097243,-0.330828,
-       -0.356146,-0.136430,0.924417,1.280017,0.059132,-0.342106,
-       -0.293197,-0.238286,0.925881,1.222960,0.138221,-0.347317,
-       -0.094492,0.118807,0.988411,1.391060,0.010509,-0.317564,
+       -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
+       0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
+       -0.080719,0.04088,0.995898,1.329879,0.097243,-0.330828,
+       -0.080719,0.04088,0.995898,1.329879,0.097243,-0.330828,
+       -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
+       -0.293197,-0.238286,0.925881,1.22296,0.138221,-0.347317,
+       -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
        -0.411811,-0.074302,0.908235,1.329732,-0.022152,-0.329726,
-       -0.356146,-0.136430,0.924417,1.280017,0.059132,-0.342106,
-       -0.094492,0.118807,0.988411,1.391060,0.010509,-0.317564,
-       -0.356146,-0.136430,0.924417,1.280017,0.059132,-0.342106,
-       -0.080719,0.040880,0.995898,1.329879,0.097243,-0.330828,
+       -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
+       -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
+       -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
+       -0.080719,0.04088,0.995898,1.329879,0.097243,-0.330828,
        -0.411811,-0.074302,0.908235,1.329732,-0.022152,-0.329726,
-       -0.691037,-0.227740,0.686005,1.278626,-0.049369,-0.366213,
+       -0.691037,-0.22774,0.686005,1.278626,-0.049369,-0.366213,
        -0.660133,-0.325846,0.676793,1.238464,0.027373,-0.375941,
        -0.660133,-0.325846,0.676793,1.238464,0.027373,-0.375941,
-       -0.356146,-0.136430,0.924417,1.280017,0.059132,-0.342106,
+       -0.356146,-0.13643,0.924417,1.280017,0.059132,-0.342106,
        -0.411811,-0.074302,0.908235,1.329732,-0.022152,-0.329726,
-       0.284277,0.249093,0.925818,1.300058,0.229080,-0.347317,
+       0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
        0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
        0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
        0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
        0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
-       0.284277,0.249093,0.925818,1.300058,0.229080,-0.347317,
+       0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
        0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
        0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
-       0.227361,0.327503,0.917087,1.452388,0.043170,-0.329726,
-       0.227361,0.327503,0.917087,1.452388,0.043170,-0.329726,
+       0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
+       0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
        0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
        0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
-       -0.094492,0.118807,0.988411,1.391060,0.010509,-0.317564,
-       -0.080719,0.040880,0.995898,1.329879,0.097243,-0.330828,
+       -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
+       -0.080719,0.04088,0.995898,1.329879,0.097243,-0.330828,
        0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
-       -0.094492,0.118807,0.988411,1.391060,0.010509,-0.317564,
+       -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
        0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
-       0.227361,0.327503,0.917087,1.452388,0.043170,-0.329726,
-       0.003001,-0.001255,0.999995,1.261509,0.183650,-0.336411,
-       0.284277,0.249093,0.925818,1.300058,0.229080,-0.347317,
+       0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
+       0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
+       0.284277,0.249093,0.925818,1.300058,0.22908,-0.347317,
        0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
-       0.003001,-0.001255,0.999995,1.261509,0.183650,-0.336411,
+       0.003001,-0.001255,0.999995,1.261509,0.18365,-0.336411,
        0.192478,0.250599,0.948763,1.379742,0.135354,-0.342106,
-       -0.080719,0.040880,0.995898,1.329879,0.097243,-0.330828,
-       0.523007,0.532590,0.665441,1.575292,-0.017451,-0.353408,
-       0.523401,0.541230,0.658120,1.633195,-0.090616,-0.340079,
+       -0.080719,0.04088,0.995898,1.329879,0.097243,-0.330828,
+       0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
+       0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
        0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
        0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
-       0.223940,0.359067,0.906047,1.515124,-0.041541,-0.313428,
-       0.523007,0.532590,0.665441,1.575292,-0.017451,-0.353408,
-       -0.077550,0.232519,0.969495,1.483337,-0.139536,-0.281926,
-       -0.076935,0.189453,0.978871,1.442923,-0.070450,-0.300102,
-       0.223940,0.359067,0.906047,1.515124,-0.041541,-0.313428,
-       -0.077550,0.232519,0.969495,1.483337,-0.139536,-0.281926,
-       0.223940,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+       0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+       0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
+       -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+       -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
+       0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+       -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+       0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
        0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
-       -0.076935,0.189453,0.978871,1.442923,-0.070450,-0.300102,
-       -0.094492,0.118807,0.988411,1.391060,0.010509,-0.317564,
-       0.227361,0.327503,0.917087,1.452388,0.043170,-0.329726,
-       0.227361,0.327503,0.917087,1.452388,0.043170,-0.329726,
-       0.223940,0.359067,0.906047,1.515124,-0.041541,-0.313428,
-       -0.076935,0.189453,0.978871,1.442923,-0.070450,-0.300102,
+       -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
+       -0.094492,0.118807,0.988411,1.39106,0.010509,-0.317564,
+       0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
+       0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
+       0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+       -0.076935,0.189453,0.978871,1.442923,-0.07045,-0.300102,
        0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
-       0.523007,0.532590,0.665441,1.575292,-0.017451,-0.353408,
-       0.223940,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+       0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
+       0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
        0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
-       0.223940,0.359067,0.906047,1.515124,-0.041541,-0.313428,
-       0.227361,0.327503,0.917087,1.452388,0.043170,-0.329726,
-       0.709684,0.628970,0.317403,1.674065,-0.077274,-0.412770,
-       0.523401,0.541230,0.658120,1.633195,-0.090616,-0.340079,
-       0.523007,0.532590,0.665441,1.575292,-0.017451,-0.353408,
-       0.523007,0.532590,0.665441,1.575292,-0.017451,-0.353408,
+       0.22394,0.359067,0.906047,1.515124,-0.041541,-0.313428,
+       0.227361,0.327503,0.917087,1.452388,0.04317,-0.329726,
+       0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
+       0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
+       0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
+       0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
        0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
-       0.709684,0.628970,0.317403,1.674065,-0.077274,-0.412770,
+       0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
        0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
-       0.703000,0.633573,0.323073,1.534158,0.086718,-0.427025,
+       0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
        0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
        0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
        0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
-       0.523007,0.532590,0.665441,1.575292,-0.017451,-0.353408,
-       0.703000,0.633573,0.323073,1.534158,0.086718,-0.427025,
-       0.747578,0.664174,-0.000000,1.544380,0.092162,-0.500000,
-       0.754132,0.656723,-0.000000,1.623426,0.001822,-0.500000,
-       0.754132,0.656723,-0.000000,1.623426,0.001822,-0.500000,
+       0.523007,0.53259,0.665441,1.575292,-0.017451,-0.353408,
+       0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
+       0.747578,0.664174,0,1.54438,0.092162,-0.5,
+       0.754132,0.656723,0,1.623426,0.001822,-0.5,
+       0.754132,0.656723,0,1.623426,0.001822,-0.5,
        0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
-       0.703000,0.633573,0.323073,1.534158,0.086718,-0.427025,
-       0.758437,0.651747,0.000000,1.687689,-0.072827,-0.500000,
-       0.709684,0.628970,0.317403,1.674065,-0.077274,-0.412770,
+       0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
+       0.758437,0.651747,0,1.687689,-0.072827,-0.5,
+       0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
        0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
-       0.758437,0.651747,0.000000,1.687689,-0.072827,-0.500000,
+       0.758437,0.651747,0,1.687689,-0.072827,-0.5,
        0.706952,0.630412,0.320624,1.611392,-0.002996,-0.420041,
-       0.754132,0.656723,-0.000000,1.623426,0.001822,-0.500000,
+       0.754132,0.656723,0,1.623426,0.001822,-0.5,
        0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
        0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
-       0.698693,0.638817,0.322090,1.446226,0.186168,-0.432331,
+       0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
        0.547232,0.498931,0.672016,1.332183,0.266938,-0.380035,
-       0.698693,0.638817,0.322090,1.446226,0.186168,-0.432331,
+       0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
        0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
        0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
-       0.726158,0.687528,-0.000000,1.357882,0.297224,-0.500000,
-       0.738573,0.674173,0.000000,1.454536,0.192520,-0.500000,
-       0.738573,0.674173,0.000000,1.454536,0.192520,-0.500000,
-       0.698693,0.638817,0.322090,1.446226,0.186168,-0.432331,
+       0.726158,0.687528,0,1.357882,0.297224,-0.5,
+       0.738573,0.674173,0,1.454536,0.19252,-0.5,
+       0.738573,0.674173,0,1.454536,0.19252,-0.5,
+       0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
        0.694102,0.647395,0.314805,1.351457,0.289652,-0.434564,
-       0.747578,0.664174,-0.000000,1.544380,0.092162,-0.500000,
-       0.703000,0.633573,0.323073,1.534158,0.086718,-0.427025,
-       0.698693,0.638817,0.322090,1.446226,0.186168,-0.432331,
-       0.747578,0.664174,-0.000000,1.544380,0.092162,-0.500000,
-       0.698693,0.638817,0.322090,1.446226,0.186168,-0.432331,
-       0.738573,0.674173,0.000000,1.454536,0.192520,-0.500000,
-       0.703000,0.633573,0.323073,1.534158,0.086718,-0.427025,
+       0.747578,0.664174,0,1.54438,0.092162,-0.5,
+       0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
+       0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
+       0.747578,0.664174,0,1.54438,0.092162,-0.5,
+       0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
+       0.738573,0.674173,0,1.454536,0.19252,-0.5,
+       0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
        0.522827,0.522069,0.673866,1.503495,0.070388,-0.366213,
        0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
        0.509286,0.493808,0.704828,1.421294,0.167113,-0.375941,
-       0.698693,0.638817,0.322090,1.446226,0.186168,-0.432331,
-       0.703000,0.633573,0.323073,1.534158,0.086718,-0.427025,
+       0.698693,0.638817,0.32209,1.446226,0.186168,-0.432331,
+       0.703,0.633573,0.323073,1.534158,0.086718,-0.427025,
        0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
        0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
-       0.698693,0.638817,-0.322090,1.446226,0.186168,-0.567669,
+       0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
        0.547232,0.498931,-0.672015,1.332183,0.266938,-0.619965,
-       0.698693,0.638817,-0.322090,1.446226,0.186168,-0.567669,
+       0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
        0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
        0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
        0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
-       0.703000,0.633573,-0.323073,1.534158,0.086718,-0.572975,
-       0.703000,0.633573,-0.323073,1.534158,0.086718,-0.572975,
-       0.698693,0.638817,-0.322090,1.446226,0.186168,-0.567669,
+       0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+       0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+       0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
        0.509286,0.493808,-0.704828,1.421294,0.167113,-0.624059,
-       0.747578,0.664174,-0.000000,1.544380,0.092162,-0.500000,
-       0.738573,0.674173,0.000000,1.454536,0.192520,-0.500000,
-       0.698693,0.638817,-0.322090,1.446226,0.186168,-0.567669,
-       0.747578,0.664174,-0.000000,1.544380,0.092162,-0.500000,
-       0.698693,0.638817,-0.322090,1.446226,0.186168,-0.567669,
-       0.703000,0.633573,-0.323073,1.534158,0.086718,-0.572975,
-       0.738573,0.674173,0.000000,1.454536,0.192520,-0.500000,
-       0.726158,0.687528,-0.000000,1.357882,0.297224,-0.500000,
+       0.747578,0.664174,0,1.54438,0.092162,-0.5,
+       0.738573,0.674173,0,1.454536,0.19252,-0.5,
+       0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
+       0.747578,0.664174,0,1.54438,0.092162,-0.5,
+       0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
+       0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+       0.738573,0.674173,0,1.454536,0.19252,-0.5,
+       0.726158,0.687528,0,1.357882,0.297224,-0.5,
        0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
        0.694102,0.647395,-0.314805,1.351457,0.289652,-0.565436,
-       0.698693,0.638817,-0.322090,1.446226,0.186168,-0.567669,
-       0.738573,0.674173,0.000000,1.454536,0.192520,-0.500000,
-       0.523007,0.532590,-0.665441,1.575292,-0.017451,-0.646592,
-       0.523401,0.541230,-0.658120,1.633195,-0.090616,-0.659921,
-       0.709684,0.628970,-0.317403,1.674065,-0.077274,-0.587230,
-       0.709684,0.628970,-0.317403,1.674065,-0.077274,-0.587230,
+       0.698693,0.638817,-0.32209,1.446226,0.186168,-0.567669,
+       0.738573,0.674173,0,1.454536,0.19252,-0.5,
+       0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
+       0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
+       0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
+       0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
        0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
-       0.523007,0.532590,-0.665441,1.575292,-0.017451,-0.646592,
-       0.758437,0.651747,0.000000,1.687689,-0.072827,-0.500000,
-       0.754132,0.656723,-0.000000,1.623426,0.001822,-0.500000,
+       0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
+       0.758437,0.651747,0,1.687689,-0.072827,-0.5,
+       0.754132,0.656723,0,1.623426,0.001822,-0.5,
        0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
-       0.758437,0.651747,0.000000,1.687689,-0.072827,-0.500000,
+       0.758437,0.651747,0,1.687689,-0.072827,-0.5,
        0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
-       0.709684,0.628970,-0.317403,1.674065,-0.077274,-0.587230,
-       0.754132,0.656723,-0.000000,1.623426,0.001822,-0.500000,
-       0.747578,0.664174,-0.000000,1.544380,0.092162,-0.500000,
-       0.703000,0.633573,-0.323073,1.534158,0.086718,-0.572975,
-       0.703000,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+       0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
+       0.754132,0.656723,0,1.623426,0.001822,-0.5,
+       0.747578,0.664174,0,1.54438,0.092162,-0.5,
+       0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+       0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
        0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
-       0.754132,0.656723,-0.000000,1.623426,0.001822,-0.500000,
+       0.754132,0.656723,0,1.623426,0.001822,-0.5,
        0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
-       0.523007,0.532590,-0.665441,1.575292,-0.017451,-0.646592,
+       0.523007,0.53259,-0.665441,1.575292,-0.017451,-0.646592,
        0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
        0.522827,0.522069,-0.673866,1.503495,0.070388,-0.633787,
        0.706952,0.630412,-0.320624,1.611392,-0.002996,-0.579959,
-       0.703000,0.633573,-0.323073,1.534158,0.086718,-0.572975,
-       0.523401,0.541230,0.658120,1.633195,-0.090616,-0.340079,
-       0.709684,0.628970,0.317403,1.674065,-0.077274,-0.412770,
+       0.703,0.633573,-0.323073,1.534158,0.086718,-0.572975,
+       0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
+       0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
        0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
-       0.523401,0.541230,0.658120,1.633195,-0.090616,-0.340079,
+       0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
        0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
-       0.585450,0.437052,0.682813,1.673712,-0.143320,-0.328782,
-       0.709684,0.628970,0.317403,1.674065,-0.077274,-0.412770,
-       0.758437,0.651747,0.000000,1.687689,-0.072827,-0.500000,
-       0.798106,0.602517,0.000000,1.733181,-0.126110,-0.500000,
-       0.798106,0.602517,0.000000,1.733181,-0.126110,-0.500000,
+       0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
+       0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
+       0.758437,0.651747,0,1.687689,-0.072827,-0.5,
+       0.798106,0.602517,0,1.733181,-0.12611,-0.5,
+       0.798106,0.602517,0,1.733181,-0.12611,-0.5,
        0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
-       0.709684,0.628970,0.317403,1.674065,-0.077274,-0.412770,
-       0.990091,0.140430,0.000000,1.755118,-0.163978,-0.500000,
-       0.911574,0.083749,0.402517,1.739610,-0.167898,-0.405277,
+       0.709684,0.62897,0.317403,1.674065,-0.077274,-0.41277,
+       0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+       0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
        0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
-       0.990091,0.140430,0.000000,1.755118,-0.163978,-0.500000,
+       0.990091,0.14043,0,1.755118,-0.163978,-0.5,
        0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
-       0.798106,0.602517,0.000000,1.733181,-0.126110,-0.500000,
-       0.911574,0.083749,0.402517,1.739610,-0.167898,-0.405277,
+       0.798106,0.602517,0,1.733181,-0.12611,-0.5,
+       0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
        0.722198,-0.015351,0.691516,1.693578,-0.180157,-0.326227,
-       0.585450,0.437052,0.682813,1.673712,-0.143320,-0.328782,
-       0.585450,0.437052,0.682813,1.673712,-0.143320,-0.328782,
+       0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
+       0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
        0.765571,0.555064,0.325277,1.718314,-0.130413,-0.406608,
-       0.911574,0.083749,0.402517,1.739610,-0.167898,-0.405277,
-       0.523401,0.541230,-0.658120,1.633195,-0.090616,-0.659921,
-       0.585450,0.437052,-0.682813,1.673712,-0.143320,-0.671218,
+       0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
+       0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
+       0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
        0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
-       0.523401,0.541230,-0.658120,1.633195,-0.090616,-0.659921,
+       0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
        0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
-       0.709684,0.628970,-0.317403,1.674065,-0.077274,-0.587230,
-       0.585450,0.437052,-0.682813,1.673712,-0.143320,-0.671218,
+       0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
+       0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
        0.722198,-0.015351,-0.691516,1.693578,-0.180157,-0.673773,
-       0.911574,0.083749,-0.402516,1.739610,-0.167898,-0.594723,
-       0.911574,0.083749,-0.402516,1.739610,-0.167898,-0.594723,
+       0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
+       0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
        0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
-       0.585450,0.437052,-0.682813,1.673712,-0.143320,-0.671218,
-       0.990091,0.140430,0.000000,1.755118,-0.163978,-0.500000,
-       0.798106,0.602517,0.000000,1.733181,-0.126110,-0.500000,
+       0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
+       0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+       0.798106,0.602517,0,1.733181,-0.12611,-0.5,
        0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
-       0.990091,0.140430,0.000000,1.755118,-0.163978,-0.500000,
+       0.990091,0.14043,0,1.755118,-0.163978,-0.5,
        0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
-       0.911574,0.083749,-0.402516,1.739610,-0.167898,-0.594723,
-       0.798106,0.602517,0.000000,1.733181,-0.126110,-0.500000,
-       0.758437,0.651747,0.000000,1.687689,-0.072827,-0.500000,
-       0.709684,0.628970,-0.317403,1.674065,-0.077274,-0.587230,
-       0.709684,0.628970,-0.317403,1.674065,-0.077274,-0.587230,
+       0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
+       0.798106,0.602517,0,1.733181,-0.12611,-0.5,
+       0.758437,0.651747,0,1.687689,-0.072827,-0.5,
+       0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
+       0.709684,0.62897,-0.317403,1.674065,-0.077274,-0.58723,
        0.765571,0.555064,-0.325277,1.718314,-0.130413,-0.593392,
-       0.798106,0.602517,0.000000,1.733181,-0.126110,-0.500000,
+       0.798106,0.602517,0,1.733181,-0.12611,-0.5,
        0.442953,-0.878385,-0.179534,1.670754,-0.221475,-0.638667,
-       0.434790,-0.894931,-0.100277,1.696988,-0.219088,-0.582500,
-       0.746757,-0.634940,-0.198004,1.733426,-0.195216,-0.587500,
+       0.43479,-0.894931,-0.100277,1.696988,-0.219088,-0.5825,
+       0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
        0.442953,-0.878385,-0.179534,1.670754,-0.221475,-0.638667,
-       0.746757,-0.634940,-0.198004,1.733426,-0.195216,-0.587500,
+       0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
        0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
-       0.487185,-0.873299,0.000000,1.710058,-0.217878,-0.500000,
-       0.821423,-0.570320,0.000000,1.748713,-0.192378,-0.500000,
-       0.746757,-0.634940,-0.198004,1.733426,-0.195216,-0.587500,
-       0.487185,-0.873299,0.000000,1.710058,-0.217878,-0.500000,
-       0.746757,-0.634940,-0.198004,1.733426,-0.195216,-0.587500,
-       0.434790,-0.894931,-0.100277,1.696988,-0.219088,-0.582500,
-       0.990091,0.140430,0.000000,1.755118,-0.163978,-0.500000,
-       0.911574,0.083749,-0.402516,1.739610,-0.167898,-0.594723,
-       0.746757,-0.634940,-0.198004,1.733426,-0.195216,-0.587500,
-       0.990091,0.140430,0.000000,1.755118,-0.163978,-0.500000,
-       0.746757,-0.634940,-0.198004,1.733426,-0.195216,-0.587500,
-       0.821423,-0.570320,0.000000,1.748713,-0.192378,-0.500000,
-       0.911574,0.083749,-0.402516,1.739610,-0.167898,-0.594723,
+       0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+       0.821423,-0.57032,0,1.748713,-0.192378,-0.5,
+       0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+       0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+       0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+       0.43479,-0.894931,-0.100277,1.696988,-0.219088,-0.5825,
+       0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+       0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
+       0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+       0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+       0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+       0.821423,-0.57032,0,1.748713,-0.192378,-0.5,
+       0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
        0.722198,-0.015351,-0.691516,1.693578,-0.180157,-0.673773,
        0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
        0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
-       0.746757,-0.634940,-0.198004,1.733426,-0.195216,-0.587500,
-       0.911574,0.083749,-0.402516,1.739610,-0.167898,-0.594723,
+       0.746757,-0.63494,-0.198004,1.733426,-0.195216,-0.5875,
+       0.911574,0.083749,-0.402516,1.73961,-0.167898,-0.594723,
        0.442953,-0.878385,0.179534,1.670754,-0.221475,-0.361333,
-       0.633983,-0.622540,0.458813,1.689524,-0.205721,-0.339125,
-       0.746757,-0.634940,0.198005,1.733426,-0.195216,-0.412500,
+       0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+       0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
        0.442953,-0.878385,0.179534,1.670754,-0.221475,-0.361333,
-       0.746757,-0.634940,0.198005,1.733426,-0.195216,-0.412500,
-       0.434790,-0.894931,0.100278,1.696988,-0.219088,-0.417500,
-       0.633983,-0.622540,0.458813,1.689524,-0.205721,-0.339125,
+       0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+       0.43479,-0.894931,0.100278,1.696988,-0.219088,-0.4175,
+       0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
        0.722198,-0.015351,0.691516,1.693578,-0.180157,-0.326227,
-       0.911574,0.083749,0.402517,1.739610,-0.167898,-0.405277,
-       0.911574,0.083749,0.402517,1.739610,-0.167898,-0.405277,
-       0.746757,-0.634940,0.198005,1.733426,-0.195216,-0.412500,
-       0.633983,-0.622540,0.458813,1.689524,-0.205721,-0.339125,
-       0.990091,0.140430,0.000000,1.755118,-0.163978,-0.500000,
-       0.821423,-0.570320,0.000000,1.748713,-0.192378,-0.500000,
-       0.746757,-0.634940,0.198005,1.733426,-0.195216,-0.412500,
-       0.990091,0.140430,0.000000,1.755118,-0.163978,-0.500000,
-       0.746757,-0.634940,0.198005,1.733426,-0.195216,-0.412500,
-       0.911574,0.083749,0.402517,1.739610,-0.167898,-0.405277,
-       0.487185,-0.873299,0.000000,1.710058,-0.217878,-0.500000,
-       0.434790,-0.894931,0.100278,1.696988,-0.219088,-0.417500,
-       0.746757,-0.634940,0.198005,1.733426,-0.195216,-0.412500,
-       0.487185,-0.873299,0.000000,1.710058,-0.217878,-0.500000,
-       0.746757,-0.634940,0.198005,1.733426,-0.195216,-0.412500,
-       0.821423,-0.570320,0.000000,1.748713,-0.192378,-0.500000,
-       0.523401,0.541230,-0.658120,1.633195,-0.090616,-0.659921,
-       0.223762,0.384640,-0.895535,1.565078,-0.112852,-0.703536,
-       0.256589,0.317230,-0.912977,1.599377,-0.164832,-0.717914,
-       0.523401,0.541230,-0.658120,1.633195,-0.090616,-0.659921,
-       0.256589,0.317230,-0.912977,1.599377,-0.164832,-0.717914,
-       0.585450,0.437052,-0.682813,1.673712,-0.143320,-0.671218,
-       0.223762,0.384640,-0.895535,1.565078,-0.112852,-0.703536,
-       -0.077550,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
-       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.733480,
-       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.733480,
-       0.256589,0.317230,-0.912977,1.599377,-0.164832,-0.717914,
-       0.223762,0.384640,-0.895535,1.565078,-0.112852,-0.703536,
-       0.100693,-0.274502,-0.956300,1.526344,-0.226473,-0.737495,
+       0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
+       0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
+       0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+       0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+       0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+       0.821423,-0.57032,0,1.748713,-0.192378,-0.5,
+       0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+       0.990091,0.14043,0,1.755118,-0.163978,-0.5,
+       0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+       0.911574,0.083749,0.402517,1.73961,-0.167898,-0.405277,
+       0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+       0.43479,-0.894931,0.100278,1.696988,-0.219088,-0.4175,
+       0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+       0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+       0.746757,-0.63494,0.198005,1.733426,-0.195216,-0.4125,
+       0.821423,-0.57032,0,1.748713,-0.192378,-0.5,
+       0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
+       0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
+       0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
+       0.523401,0.54123,-0.65812,1.633195,-0.090616,-0.659921,
+       0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
+       0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
+       0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
+       -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
+       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
+       0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
+       0.223762,0.38464,-0.895535,1.565078,-0.112852,-0.703536,
+       0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
        0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
-       0.256589,0.317230,-0.912977,1.599377,-0.164832,-0.717914,
-       0.100693,-0.274502,-0.956300,1.526344,-0.226473,-0.737495,
-       0.256589,0.317230,-0.912977,1.599377,-0.164832,-0.717914,
-       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.733480,
+       0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
+       0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+       0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
+       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
        0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
        0.722198,-0.015351,-0.691516,1.693578,-0.180157,-0.673773,
-       0.585450,0.437052,-0.682813,1.673712,-0.143320,-0.671218,
-       0.585450,0.437052,-0.682813,1.673712,-0.143320,-0.671218,
-       0.256589,0.317230,-0.912977,1.599377,-0.164832,-0.717914,
+       0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
+       0.58545,0.437052,-0.682813,1.673712,-0.14332,-0.671218,
+       0.256589,0.31723,-0.912977,1.599377,-0.164832,-0.717914,
        0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
        -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
        -0.738864,-0.111606,-0.664548,1.346635,-0.237972,-0.671218,
-       -0.397190,0.033721,-0.917117,1.420971,-0.216460,-0.717914,
+       -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
        -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
-       -0.397190,0.033721,-0.917117,1.420971,-0.216460,-0.717914,
-       -0.356933,0.091380,-0.929650,1.401596,-0.166219,-0.703536,
+       -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
+       -0.356933,0.09138,-0.92965,1.401596,-0.166219,-0.703536,
        -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
        -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
-       -0.397190,0.033721,-0.917117,1.420971,-0.216460,-0.717914,
+       -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
        -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
-       -0.397190,0.033721,-0.917117,1.420971,-0.216460,-0.717914,
+       -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
        -0.738864,-0.111606,-0.664548,1.346635,-0.237972,-0.671218,
        -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
-       0.100693,-0.274502,-0.956300,1.526344,-0.226473,-0.737495,
-       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.733480,
-       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.733480,
-       -0.397190,0.033721,-0.917117,1.420971,-0.216460,-0.717914,
+       0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
+       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
+       -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
        -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
-       -0.077550,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
-       -0.356933,0.091380,-0.929650,1.401596,-0.166219,-0.703536,
-       -0.397190,0.033721,-0.917117,1.420971,-0.216460,-0.717914,
-       -0.077550,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
-       -0.397190,0.033721,-0.917117,1.420971,-0.216460,-0.717914,
-       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.733480,
-       0.055786,-0.978343,-0.199329,1.402870,-0.293254,-0.638667,
-       0.155998,-0.969633,-0.188350,1.458284,-0.283049,-0.664625,
-       0.035730,-0.852716,-0.521152,1.449927,-0.271179,-0.706000,
-       0.055786,-0.978343,-0.199329,1.402870,-0.293254,-0.638667,
-       0.035730,-0.852716,-0.521152,1.449927,-0.271179,-0.706000,
+       -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+       -0.356933,0.09138,-0.92965,1.401596,-0.166219,-0.703536,
+       -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
+       -0.07755,0.232519,-0.969495,1.483337,-0.139536,-0.718074,
+       -0.39719,0.033721,-0.917117,1.420971,-0.21646,-0.717914,
+       -0.053569,0.174234,-0.983246,1.510174,-0.190646,-0.73348,
+       0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
+       0.155998,-0.969633,-0.18835,1.458284,-0.283049,-0.664625,
+       0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+       0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
+       0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
        -0.175453,-0.874143,-0.452869,1.378738,-0.288996,-0.660875,
-       0.250960,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
-       0.205519,-0.765110,-0.610220,1.534760,-0.249706,-0.721500,
-       0.035730,-0.852716,-0.521152,1.449927,-0.271179,-0.706000,
-       0.250960,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
-       0.035730,-0.852716,-0.521152,1.449927,-0.271179,-0.706000,
-       0.155998,-0.969633,-0.188350,1.458284,-0.283049,-0.664625,
-       0.100693,-0.274502,-0.956300,1.526344,-0.226473,-0.737495,
+       0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+       0.205519,-0.76511,-0.61022,1.53476,-0.249706,-0.7215,
+       0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+       0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+       0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+       0.155998,-0.969633,-0.18835,1.458284,-0.283049,-0.664625,
+       0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
        -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
-       0.035730,-0.852716,-0.521152,1.449927,-0.271179,-0.706000,
-       0.100693,-0.274502,-0.956300,1.526344,-0.226473,-0.737495,
-       0.035730,-0.852716,-0.521152,1.449927,-0.271179,-0.706000,
-       0.205519,-0.765110,-0.610220,1.534760,-0.249706,-0.721500,
+       0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+       0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+       0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
+       0.205519,-0.76511,-0.61022,1.53476,-0.249706,-0.7215,
        -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
        -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
        -0.175453,-0.874143,-0.452869,1.378738,-0.288996,-0.660875,
        -0.175453,-0.874143,-0.452869,1.378738,-0.288996,-0.660875,
-       0.035730,-0.852716,-0.521152,1.449927,-0.271179,-0.706000,
+       0.03573,-0.852716,-0.521152,1.449927,-0.271179,-0.706,
        -0.236076,-0.378114,-0.895152,1.435022,-0.251106,-0.721479,
-       0.361333,-0.910870,-0.199385,1.617662,-0.240344,-0.664625,
+       0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
        0.442953,-0.878385,-0.179534,1.670754,-0.221475,-0.638667,
        0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
        0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
-       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706000,
-       0.361333,-0.910870,-0.199385,1.617662,-0.240344,-0.664625,
+       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
+       0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
        0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
        0.722198,-0.015351,-0.691516,1.693578,-0.180157,-0.673773,
        0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
        0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
-       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706000,
+       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
        0.633983,-0.622541,-0.458813,1.689524,-0.205721,-0.660875,
-       0.100693,-0.274502,-0.956300,1.526344,-0.226473,-0.737495,
-       0.205519,-0.765110,-0.610220,1.534760,-0.249706,-0.721500,
-       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706000,
-       0.100693,-0.274502,-0.956300,1.526344,-0.226473,-0.737495,
-       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706000,
+       0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+       0.205519,-0.76511,-0.61022,1.53476,-0.249706,-0.7215,
+       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
+       0.100693,-0.274502,-0.9563,1.526344,-0.226473,-0.737495,
+       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
        0.442231,-0.107524,-0.890433,1.617509,-0.201252,-0.721479,
-       0.250960,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
-       0.361333,-0.910870,-0.199385,1.617662,-0.240344,-0.664625,
-       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706000,
-       0.250960,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
-       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706000,
-       0.205519,-0.765110,-0.610220,1.534760,-0.249706,-0.721500,
+       0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+       0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
+       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
+       0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+       0.389599,-0.715498,-0.579893,1.618964,-0.225886,-0.706,
+       0.205519,-0.76511,-0.61022,1.53476,-0.249706,-0.7215,
        -0.738864,-0.111606,-0.664548,1.346635,-0.237972,-0.671218,
        -0.693597,-0.068529,-0.717096,1.333479,-0.188456,-0.659921,
-       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.587230,
-       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.587230,
-       -0.899118,-0.217870,-0.379630,1.302034,-0.250880,-0.593392,
+       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+       -0.899118,-0.21787,-0.37963,1.302034,-0.25088,-0.593392,
        -0.738864,-0.111606,-0.664548,1.346635,-0.237972,-0.671218,
-       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.587230,
-       -0.977953,-0.208824,0.000000,1.278985,-0.206245,-0.500000,
-       -0.972456,-0.233085,0.000000,1.287166,-0.255182,-0.500000,
-       -0.972456,-0.233085,0.000000,1.287166,-0.255182,-0.500000,
-       -0.899118,-0.217870,-0.379630,1.302034,-0.250880,-0.593392,
-       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.587230,
-       -0.972456,-0.233085,0.000000,1.287166,-0.255182,-0.500000,
-       -0.822459,-0.568824,0.000000,1.297571,-0.288968,-0.500000,
-       -0.775520,-0.569812,-0.271814,1.312921,-0.284460,-0.594723,
-       -0.775520,-0.569812,-0.271814,1.312921,-0.284460,-0.594723,
-       -0.899118,-0.217870,-0.379630,1.302034,-0.250880,-0.593392,
-       -0.972456,-0.233085,0.000000,1.287166,-0.255182,-0.500000,
+       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+       -0.977953,-0.208824,0,1.278985,-0.206245,-0.5,
+       -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+       -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+       -0.899118,-0.21787,-0.37963,1.302034,-0.25088,-0.593392,
+       -0.932432,-0.178414,-0.314228,1.292609,-0.201797,-0.58723,
+       -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+       -0.822459,-0.568824,0,1.297571,-0.288968,-0.5,
+       -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+       -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+       -0.899118,-0.21787,-0.37963,1.302034,-0.25088,-0.593392,
+       -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
        -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
        -0.738864,-0.111606,-0.664548,1.346635,-0.237972,-0.671218,
-       -0.899118,-0.217870,-0.379630,1.302034,-0.250880,-0.593392,
+       -0.899118,-0.21787,-0.37963,1.302034,-0.25088,-0.593392,
        -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
-       -0.899118,-0.217870,-0.379630,1.302034,-0.250880,-0.593392,
-       -0.775520,-0.569812,-0.271814,1.312921,-0.284460,-0.594723,
-       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.412770,
+       -0.899118,-0.21787,-0.37963,1.302034,-0.25088,-0.593392,
+       -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
        -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
        -0.738864,-0.111606,0.664548,1.346635,-0.237972,-0.328782,
        -0.738864,-0.111606,0.664548,1.346635,-0.237972,-0.328782,
-       -0.899119,-0.217869,0.379630,1.302034,-0.250880,-0.406608,
-       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.412770,
+       -0.899119,-0.217869,0.37963,1.302034,-0.25088,-0.406608,
+       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
        -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
-       -0.775521,-0.569812,0.271814,1.312921,-0.284460,-0.405277,
-       -0.899119,-0.217869,0.379630,1.302034,-0.250880,-0.406608,
+       -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+       -0.899119,-0.217869,0.37963,1.302034,-0.25088,-0.406608,
        -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
-       -0.899119,-0.217869,0.379630,1.302034,-0.250880,-0.406608,
+       -0.899119,-0.217869,0.37963,1.302034,-0.25088,-0.406608,
        -0.738864,-0.111606,0.664548,1.346635,-0.237972,-0.328782,
-       -0.775521,-0.569812,0.271814,1.312921,-0.284460,-0.405277,
-       -0.822459,-0.568824,0.000000,1.297571,-0.288968,-0.500000,
-       -0.972456,-0.233085,0.000000,1.287166,-0.255182,-0.500000,
-       -0.972456,-0.233085,0.000000,1.287166,-0.255182,-0.500000,
-       -0.899119,-0.217869,0.379630,1.302034,-0.250880,-0.406608,
-       -0.775521,-0.569812,0.271814,1.312921,-0.284460,-0.405277,
-       -0.972456,-0.233085,0.000000,1.287166,-0.255182,-0.500000,
-       -0.977953,-0.208824,0.000000,1.278985,-0.206245,-0.500000,
-       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.412770,
-       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.412770,
-       -0.899119,-0.217869,0.379630,1.302034,-0.250880,-0.406608,
-       -0.972456,-0.233085,0.000000,1.287166,-0.255182,-0.500000,
-       0.055786,-0.978344,0.199328,1.402870,-0.293254,-0.361333,
-       0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.417500,
-       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.412500,
-       0.055786,-0.978344,0.199328,1.402870,-0.293254,-0.361333,
-       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.412500,
+       -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+       -0.822459,-0.568824,0,1.297571,-0.288968,-0.5,
+       -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+       -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+       -0.899119,-0.217869,0.37963,1.302034,-0.25088,-0.406608,
+       -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+       -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+       -0.977953,-0.208824,0,1.278985,-0.206245,-0.5,
+       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
+       -0.932432,-0.178414,0.314228,1.292609,-0.201797,-0.41277,
+       -0.899119,-0.217869,0.37963,1.302034,-0.25088,-0.406608,
+       -0.972456,-0.233085,0,1.287166,-0.255182,-0.5,
+       0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
+       0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.4175,
+       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+       0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
+       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
        -0.175453,-0.874143,0.452869,1.378738,-0.288996,-0.339125,
-       0.014735,-0.999891,0.000000,1.367033,-0.309791,-0.500000,
-       -0.433457,-0.901174,-0.000000,1.320807,-0.307035,-0.500000,
-       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.412500,
-       0.014735,-0.999891,0.000000,1.367033,-0.309791,-0.500000,
-       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.412500,
-       0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.417500,
-       -0.433457,-0.901174,-0.000000,1.320807,-0.307035,-0.500000,
-       -0.822459,-0.568824,0.000000,1.297571,-0.288968,-0.500000,
-       -0.775521,-0.569812,0.271814,1.312921,-0.284460,-0.405277,
-       -0.775521,-0.569812,0.271814,1.312921,-0.284460,-0.405277,
-       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.412500,
-       -0.433457,-0.901174,-0.000000,1.320807,-0.307035,-0.500000,
+       0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+       -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
+       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+       0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+       0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.4175,
+       -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
+       -0.822459,-0.568824,0,1.297571,-0.288968,-0.5,
+       -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+       -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+       -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
        -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
        -0.175453,-0.874143,0.452869,1.378738,-0.288996,-0.339125,
-       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.412500,
+       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
        -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
-       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.412500,
-       -0.775521,-0.569812,0.271814,1.312921,-0.284460,-0.405277,
-       0.055786,-0.978343,-0.199329,1.402870,-0.293254,-0.638667,
+       -0.244016,-0.944635,0.219364,1.335465,-0.301849,-0.4125,
+       -0.775521,-0.569812,0.271814,1.312921,-0.28446,-0.405277,
+       0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
        -0.175453,-0.874143,-0.452869,1.378738,-0.288996,-0.660875,
-       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.587500,
-       0.055786,-0.978343,-0.199329,1.402870,-0.293254,-0.638667,
-       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.587500,
-       0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.582500,
+       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+       0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
+       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+       0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.5825,
        -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
-       -0.775520,-0.569812,-0.271814,1.312921,-0.284460,-0.594723,
-       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.587500,
+       -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
        -0.588534,-0.475384,-0.653941,1.358796,-0.271614,-0.673773,
-       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.587500,
+       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
        -0.175453,-0.874143,-0.452869,1.378738,-0.288996,-0.660875,
-       -0.775520,-0.569812,-0.271814,1.312921,-0.284460,-0.594723,
-       -0.822459,-0.568824,0.000000,1.297571,-0.288968,-0.500000,
-       -0.433457,-0.901174,-0.000000,1.320807,-0.307035,-0.500000,
-       -0.433457,-0.901174,-0.000000,1.320807,-0.307035,-0.500000,
-       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.587500,
-       -0.775520,-0.569812,-0.271814,1.312921,-0.284460,-0.594723,
-       0.014735,-0.999891,0.000000,1.367033,-0.309791,-0.500000,
-       0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.582500,
-       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.587500,
-       0.014735,-0.999891,0.000000,1.367033,-0.309791,-0.500000,
-       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.587500,
-       -0.433457,-0.901174,-0.000000,1.320807,-0.307035,-0.500000,
+       -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+       -0.822459,-0.568824,0,1.297571,-0.288968,-0.5,
+       -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
+       -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
+       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+       -0.77552,-0.569812,-0.271814,1.312921,-0.28446,-0.594723,
+       0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+       0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.5825,
+       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+       0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+       -0.244016,-0.944635,-0.219364,1.335465,-0.301849,-0.5875,
+       -0.433457,-0.901174,0,1.320807,-0.307035,-0.5,
        -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
-       -0.356933,0.091380,0.929650,1.401596,-0.166219,-0.296464,
-       -0.397190,0.033722,0.917117,1.420971,-0.216460,-0.282086,
+       -0.356933,0.09138,0.92965,1.401596,-0.166219,-0.296464,
+       -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
        -0.693597,-0.068529,0.717096,1.333479,-0.188456,-0.340079,
-       -0.397190,0.033722,0.917117,1.420971,-0.216460,-0.282086,
+       -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
        -0.738864,-0.111606,0.664548,1.346635,-0.237972,-0.328782,
-       -0.077550,0.232519,0.969495,1.483337,-0.139536,-0.281926,
-       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.266520,
-       -0.397190,0.033722,0.917117,1.420971,-0.216460,-0.282086,
-       -0.077550,0.232519,0.969495,1.483337,-0.139536,-0.281926,
-       -0.397190,0.033722,0.917117,1.420971,-0.216460,-0.282086,
-       -0.356933,0.091380,0.929650,1.401596,-0.166219,-0.296464,
-       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.266520,
-       0.100693,-0.274502,0.956300,1.526344,-0.226473,-0.262505,
+       -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
+       -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
+       -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+       -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
+       -0.356933,0.09138,0.92965,1.401596,-0.166219,-0.296464,
+       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
+       0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
        -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
        -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
-       -0.397190,0.033722,0.917117,1.420971,-0.216460,-0.282086,
-       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.266520,
+       -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
+       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
        -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
        -0.738864,-0.111606,0.664548,1.346635,-0.237972,-0.328782,
-       -0.397190,0.033722,0.917117,1.420971,-0.216460,-0.282086,
+       -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
        -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
-       -0.397190,0.033722,0.917117,1.420971,-0.216460,-0.282086,
+       -0.39719,0.033722,0.917117,1.420971,-0.21646,-0.282086,
        -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
-       0.523401,0.541230,0.658120,1.633195,-0.090616,-0.340079,
-       0.585450,0.437052,0.682813,1.673712,-0.143320,-0.328782,
-       0.256589,0.317230,0.912977,1.599377,-0.164832,-0.282086,
-       0.523401,0.541230,0.658120,1.633195,-0.090616,-0.340079,
-       0.256589,0.317230,0.912977,1.599377,-0.164832,-0.282086,
+       0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
+       0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
+       0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
+       0.523401,0.54123,0.65812,1.633195,-0.090616,-0.340079,
+       0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
        0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
-       0.585450,0.437052,0.682813,1.673712,-0.143320,-0.328782,
+       0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
        0.722198,-0.015351,0.691516,1.693578,-0.180157,-0.326227,
        0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
        0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
-       0.256589,0.317230,0.912977,1.599377,-0.164832,-0.282086,
-       0.585450,0.437052,0.682813,1.673712,-0.143320,-0.328782,
-       0.100693,-0.274502,0.956300,1.526344,-0.226473,-0.262505,
-       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.266520,
-       0.256589,0.317230,0.912977,1.599377,-0.164832,-0.282086,
-       0.100693,-0.274502,0.956300,1.526344,-0.226473,-0.262505,
-       0.256589,0.317230,0.912977,1.599377,-0.164832,-0.282086,
+       0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
+       0.58545,0.437052,0.682813,1.673712,-0.14332,-0.328782,
+       0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
+       0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
+       0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+       0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
        0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
-       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.266520,
-       -0.077550,0.232519,0.969495,1.483337,-0.139536,-0.281926,
+       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
+       -0.07755,0.232519,0.969495,1.483337,-0.139536,-0.281926,
        0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
        0.223762,0.384639,0.895535,1.565078,-0.112852,-0.296464,
-       0.256589,0.317230,0.912977,1.599377,-0.164832,-0.282086,
-       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.266520,
-       0.633983,-0.622540,0.458813,1.689524,-0.205721,-0.339125,
+       0.256589,0.31723,0.912977,1.599377,-0.164832,-0.282086,
+       -0.053569,0.174235,0.983246,1.510174,-0.190646,-0.26652,
+       0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
        0.442953,-0.878385,0.179534,1.670754,-0.221475,-0.361333,
-       0.361333,-0.910870,0.199385,1.617662,-0.240344,-0.335375,
-       0.361333,-0.910870,0.199385,1.617662,-0.240344,-0.335375,
-       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294000,
-       0.633983,-0.622540,0.458813,1.689524,-0.205721,-0.339125,
-       0.250960,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
-       0.205519,-0.765110,0.610221,1.534760,-0.249706,-0.278500,
-       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294000,
-       0.250960,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
-       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294000,
-       0.361333,-0.910870,0.199385,1.617662,-0.240344,-0.335375,
-       0.100693,-0.274502,0.956300,1.526344,-0.226473,-0.262505,
+       0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+       0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
+       0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+       0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+       0.205519,-0.76511,0.610221,1.53476,-0.249706,-0.2785,
+       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
+       0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
+       0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+       0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
        0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
-       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294000,
-       0.100693,-0.274502,0.956300,1.526344,-0.226473,-0.262505,
-       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294000,
-       0.205519,-0.765110,0.610221,1.534760,-0.249706,-0.278500,
+       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
+       0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
+       0.205519,-0.76511,0.610221,1.53476,-0.249706,-0.2785,
        0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
        0.722198,-0.015351,0.691516,1.693578,-0.180157,-0.326227,
-       0.633983,-0.622540,0.458813,1.689524,-0.205721,-0.339125,
-       0.633983,-0.622540,0.458813,1.689524,-0.205721,-0.339125,
-       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294000,
+       0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+       0.633983,-0.62254,0.458813,1.689524,-0.205721,-0.339125,
+       0.389599,-0.715497,0.579893,1.618964,-0.225886,-0.294,
        0.442231,-0.107524,0.890433,1.617509,-0.201252,-0.278521,
-       0.055786,-0.978344,0.199328,1.402870,-0.293254,-0.361333,
+       0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
        -0.175453,-0.874143,0.452869,1.378738,-0.288996,-0.339125,
-       0.035730,-0.852716,0.521152,1.449927,-0.271179,-0.294000,
-       0.055786,-0.978344,0.199328,1.402870,-0.293254,-0.361333,
-       0.035730,-0.852716,0.521152,1.449927,-0.271179,-0.294000,
+       0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
+       0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
+       0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
        0.155998,-0.969634,0.188349,1.458284,-0.283049,-0.335375,
        -0.175453,-0.874143,0.452869,1.378738,-0.288996,-0.339125,
        -0.588534,-0.475383,0.653941,1.358796,-0.271614,-0.326227,
        -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
        -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
-       0.035730,-0.852716,0.521152,1.449927,-0.271179,-0.294000,
+       0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
        -0.175453,-0.874143,0.452869,1.378738,-0.288996,-0.339125,
-       0.100693,-0.274502,0.956300,1.526344,-0.226473,-0.262505,
-       0.205519,-0.765110,0.610221,1.534760,-0.249706,-0.278500,
-       0.035730,-0.852716,0.521152,1.449927,-0.271179,-0.294000,
-       0.100693,-0.274502,0.956300,1.526344,-0.226473,-0.262505,
-       0.035730,-0.852716,0.521152,1.449927,-0.271179,-0.294000,
+       0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+       0.205519,-0.76511,0.610221,1.53476,-0.249706,-0.2785,
+       0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
+       0.100693,-0.274502,0.9563,1.526344,-0.226473,-0.262505,
+       0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
        -0.236076,-0.378113,0.895153,1.435022,-0.251106,-0.278521,
-       0.250960,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+       0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
        0.155998,-0.969634,0.188349,1.458284,-0.283049,-0.335375,
-       0.035730,-0.852716,0.521152,1.449927,-0.271179,-0.294000,
-       0.250960,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
-       0.035730,-0.852716,0.521152,1.449927,-0.271179,-0.294000,
-       0.205519,-0.765110,0.610221,1.534760,-0.249706,-0.278500,
+       0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
+       0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+       0.03573,-0.852716,0.521152,1.449927,-0.271179,-0.294,
+       0.205519,-0.76511,0.610221,1.53476,-0.249706,-0.2785,
        0.442953,-0.878385,-0.179534,1.670754,-0.221475,-0.638667,
-       0.361333,-0.910870,-0.199385,1.617662,-0.240344,-0.664625,
-       0.334190,-0.939127,-0.079739,1.627523,-0.246239,-0.590500,
+       0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
+       0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
        0.442953,-0.878385,-0.179534,1.670754,-0.221475,-0.638667,
-       0.334190,-0.939127,-0.079739,1.627523,-0.246239,-0.590500,
-       0.434790,-0.894931,-0.100277,1.696988,-0.219088,-0.582500,
-       0.361333,-0.910870,-0.199385,1.617662,-0.240344,-0.664625,
-       0.250960,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
-       0.257883,-0.962433,-0.084960,1.540826,-0.272345,-0.597750,
-       0.257883,-0.962433,-0.084960,1.540826,-0.272345,-0.597750,
-       0.334190,-0.939127,-0.079739,1.627523,-0.246239,-0.590500,
-       0.361333,-0.910870,-0.199385,1.617662,-0.240344,-0.664625,
-       0.258819,-0.965926,0.000000,1.541590,-0.275196,-0.500000,
-       0.339948,-0.940444,0.000000,1.635245,-0.247046,-0.500000,
-       0.334190,-0.939127,-0.079739,1.627523,-0.246239,-0.590500,
-       0.258819,-0.965926,0.000000,1.541590,-0.275196,-0.500000,
-       0.334190,-0.939127,-0.079739,1.627523,-0.246239,-0.590500,
-       0.257883,-0.962433,-0.084960,1.540826,-0.272345,-0.597750,
-       0.339948,-0.940444,0.000000,1.635245,-0.247046,-0.500000,
-       0.487185,-0.873299,0.000000,1.710058,-0.217878,-0.500000,
-       0.434790,-0.894931,-0.100277,1.696988,-0.219088,-0.582500,
-       0.434790,-0.894931,-0.100277,1.696988,-0.219088,-0.582500,
-       0.334190,-0.939127,-0.079739,1.627523,-0.246239,-0.590500,
-       0.339948,-0.940444,0.000000,1.635245,-0.247046,-0.500000,
-       0.055786,-0.978343,-0.199329,1.402870,-0.293254,-0.638667,
-       0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.582500,
-       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.590500,
-       0.055786,-0.978343,-0.199329,1.402870,-0.293254,-0.638667,
-       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.590500,
-       0.155998,-0.969633,-0.188350,1.458284,-0.283049,-0.664625,
-       0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.582500,
-       0.014735,-0.999891,0.000000,1.367033,-0.309791,-0.500000,
-       0.175818,-0.984423,0.000000,1.446407,-0.297645,-0.500000,
-       0.175818,-0.984423,0.000000,1.446407,-0.297645,-0.500000,
-       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.590500,
-       0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.582500,
-       0.258819,-0.965926,0.000000,1.541590,-0.275196,-0.500000,
-       0.257883,-0.962433,-0.084960,1.540826,-0.272345,-0.597750,
-       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.590500,
-       0.258819,-0.965926,0.000000,1.541590,-0.275196,-0.500000,
-       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.590500,
-       0.175818,-0.984423,0.000000,1.446407,-0.297645,-0.500000,
-       0.257883,-0.962433,-0.084960,1.540826,-0.272345,-0.597750,
-       0.250960,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
-       0.155998,-0.969633,-0.188350,1.458284,-0.283049,-0.664625,
-       0.155998,-0.969633,-0.188350,1.458284,-0.283049,-0.664625,
-       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.590500,
-       0.257883,-0.962433,-0.084960,1.540826,-0.272345,-0.597750,
-       0.055786,-0.978344,0.199328,1.402870,-0.293254,-0.361333,
+       0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
+       0.43479,-0.894931,-0.100277,1.696988,-0.219088,-0.5825,
+       0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
+       0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+       0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+       0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+       0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
+       0.361333,-0.91087,-0.199385,1.617662,-0.240344,-0.664625,
+       0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+       0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+       0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
+       0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+       0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
+       0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+       0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+       0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+       0.43479,-0.894931,-0.100277,1.696988,-0.219088,-0.5825,
+       0.43479,-0.894931,-0.100277,1.696988,-0.219088,-0.5825,
+       0.33419,-0.939127,-0.079739,1.627523,-0.246239,-0.5905,
+       0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+       0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
+       0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.5825,
+       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+       0.055786,-0.978343,-0.199329,1.40287,-0.293254,-0.638667,
+       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+       0.155998,-0.969633,-0.18835,1.458284,-0.283049,-0.664625,
+       0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.5825,
+       0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+       0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
+       0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
+       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+       0.070927,-0.992428,-0.100277,1.378957,-0.304305,-0.5825,
+       0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+       0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+       0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+       0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
+       0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+       0.25096,-0.936595,-0.244557,1.538546,-0.263835,-0.677562,
+       0.155998,-0.969633,-0.18835,1.458284,-0.283049,-0.664625,
+       0.155998,-0.969633,-0.18835,1.458284,-0.283049,-0.664625,
+       0.180146,-0.980403,-0.079739,1.452691,-0.293085,-0.5905,
+       0.257883,-0.962433,-0.08496,1.540826,-0.272345,-0.59775,
+       0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
        0.155998,-0.969634,0.188349,1.458284,-0.283049,-0.335375,
-       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.409500,
-       0.055786,-0.978344,0.199328,1.402870,-0.293254,-0.361333,
-       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.409500,
-       0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.417500,
+       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
+       0.055786,-0.978344,0.199328,1.40287,-0.293254,-0.361333,
+       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
+       0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.4175,
        0.155998,-0.969634,0.188349,1.458284,-0.283049,-0.335375,
-       0.250960,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
-       0.257883,-0.962433,0.084960,1.540826,-0.272345,-0.402250,
-       0.257883,-0.962433,0.084960,1.540826,-0.272345,-0.402250,
-       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.409500,
+       0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+       0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
+       0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
+       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
        0.155998,-0.969634,0.188349,1.458284,-0.283049,-0.335375,
-       0.258819,-0.965926,0.000000,1.541590,-0.275196,-0.500000,
-       0.175818,-0.984423,0.000000,1.446407,-0.297645,-0.500000,
-       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.409500,
-       0.258819,-0.965926,0.000000,1.541590,-0.275196,-0.500000,
-       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.409500,
-       0.257883,-0.962433,0.084960,1.540826,-0.272345,-0.402250,
-       0.175818,-0.984423,0.000000,1.446407,-0.297645,-0.500000,
-       0.014735,-0.999891,0.000000,1.367033,-0.309791,-0.500000,
-       0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.417500,
-       0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.417500,
-       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.409500,
-       0.175818,-0.984423,0.000000,1.446407,-0.297645,-0.500000,
+       0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+       0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
+       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
+       0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
+       0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
+       0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
+       0.014735,-0.999891,0,1.367033,-0.309791,-0.5,
+       0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.4175,
+       0.070927,-0.992428,0.100277,1.378957,-0.304305,-0.4175,
+       0.180146,-0.980403,0.079739,1.452691,-0.293085,-0.4095,
+       0.175818,-0.984423,0,1.446407,-0.297645,-0.5,
        0.442953,-0.878385,0.179534,1.670754,-0.221475,-0.361333,
-       0.434790,-0.894931,0.100278,1.696988,-0.219088,-0.417500,
-       0.334190,-0.939126,0.079739,1.627523,-0.246239,-0.409500,
+       0.43479,-0.894931,0.100278,1.696988,-0.219088,-0.4175,
+       0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
        0.442953,-0.878385,0.179534,1.670754,-0.221475,-0.361333,
-       0.334190,-0.939126,0.079739,1.627523,-0.246239,-0.409500,
-       0.361333,-0.910870,0.199385,1.617662,-0.240344,-0.335375,
-       0.434790,-0.894931,0.100278,1.696988,-0.219088,-0.417500,
-       0.487185,-0.873299,0.000000,1.710058,-0.217878,-0.500000,
-       0.339948,-0.940444,0.000000,1.635245,-0.247046,-0.500000,
-       0.339948,-0.940444,0.000000,1.635245,-0.247046,-0.500000,
-       0.334190,-0.939126,0.079739,1.627523,-0.246239,-0.409500,
-       0.434790,-0.894931,0.100278,1.696988,-0.219088,-0.417500,
-       0.258819,-0.965926,0.000000,1.541590,-0.275196,-0.500000,
-       0.257883,-0.962433,0.084960,1.540826,-0.272345,-0.402250,
-       0.334190,-0.939126,0.079739,1.627523,-0.246239,-0.409500,
-       0.258819,-0.965926,0.000000,1.541590,-0.275196,-0.500000,
-       0.334190,-0.939126,0.079739,1.627523,-0.246239,-0.409500,
-       0.339948,-0.940444,0.000000,1.635245,-0.247046,-0.500000,
-       0.257883,-0.962433,0.084960,1.540826,-0.272345,-0.402250,
-       0.250960,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
-       0.361333,-0.910870,0.199385,1.617662,-0.240344,-0.335375,
-       0.361333,-0.910870,0.199385,1.617662,-0.240344,-0.335375,
-       0.334190,-0.939126,0.079739,1.627523,-0.246239,-0.409500,
-       0.257883,-0.962433,0.084960,1.540826,-0.272345,-0.402250,
+       0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
+       0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+       0.43479,-0.894931,0.100278,1.696988,-0.219088,-0.4175,
+       0.487185,-0.873299,0,1.710058,-0.217878,-0.5,
+       0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+       0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+       0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
+       0.43479,-0.894931,0.100278,1.696988,-0.219088,-0.4175,
+       0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+       0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
+       0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
+       0.258819,-0.965926,0,1.54159,-0.275196,-0.5,
+       0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
+       0.339948,-0.940444,0,1.635245,-0.247046,-0.5,
+       0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
+       0.25096,-0.936595,0.244557,1.538546,-0.263835,-0.322437,
+       0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+       0.361333,-0.91087,0.199385,1.617662,-0.240344,-0.335375,
+       0.33419,-0.939126,0.079739,1.627523,-0.246239,-0.4095,
+       0.257883,-0.962433,0.08496,1.540826,-0.272345,-0.40225,
 };
 static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
 const struct gllist *s1_5=&frame;
index 6b84b07e23305719c419bd555ebf65db541a6d76..bf2490e153f0747da4f509773e2d6b7a1fd9a1a4 100644 (file)
 #include "gllist.h"
 static const float data[]={
-       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.671590,
+       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
        0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
        0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
        0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
        0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
-       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.671590,
-       0.964484,0.264141,-0.000000,1.502855,0.449898,-0.500000,
-       0.923004,0.384789,0.000000,1.481548,0.525864,-0.500000,
+       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
+       0.964484,0.264141,0,1.502855,0.449898,-0.5,
+       0.923004,0.384789,0,1.481548,0.525864,-0.5,
        0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
-       0.964484,0.264141,-0.000000,1.502855,0.449898,-0.500000,
+       0.964484,0.264141,0,1.502855,0.449898,-0.5,
        0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
        0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
-       0.923004,0.384789,0.000000,1.481548,0.525864,-0.500000,
-       0.551211,0.834366,0.000000,1.460683,0.568581,-0.500000,
-       0.590668,0.729279,-0.345345,1.449724,0.556950,-0.594774,
-       0.590668,0.729279,-0.345345,1.449724,0.556950,-0.594774,
+       0.923004,0.384789,0,1.481548,0.525864,-0.5,
+       0.551211,0.834366,0,1.460683,0.568581,-0.5,
+       0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
+       0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
        0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
-       0.923004,0.384789,0.000000,1.481548,0.525864,-0.500000,
-       0.478093,0.571140,-0.667253,1.416649,0.522728,-0.673866,
-       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.671590,
+       0.923004,0.384789,0,1.481548,0.525864,-0.5,
+       0.478093,0.57114,-0.667253,1.416649,0.522728,-0.673866,
+       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
        0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
-       0.478093,0.571140,-0.667253,1.416649,0.522728,-0.673866,
+       0.478093,0.57114,-0.667253,1.416649,0.522728,-0.673866,
        0.888327,0.330007,-0.319329,1.470529,0.515074,-0.593594,
-       0.590668,0.729279,-0.345345,1.449724,0.556950,-0.594774,
+       0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
        0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
        0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
-       0.710152,0.225044,0.667112,1.437472,0.482703,-0.328410,
-       0.710152,0.225044,0.667112,1.437472,0.482703,-0.328410,
+       0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
+       0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
        0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
        0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
-       0.478094,0.571140,0.667253,1.416649,0.522728,-0.326134,
-       0.590668,0.729279,0.345345,1.449724,0.556950,-0.405226,
+       0.478094,0.57114,0.667253,1.416649,0.522728,-0.326134,
+       0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
        0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
-       0.478094,0.571140,0.667253,1.416649,0.522728,-0.326134,
+       0.478094,0.57114,0.667253,1.416649,0.522728,-0.326134,
        0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
-       0.710152,0.225044,0.667112,1.437472,0.482703,-0.328410,
-       0.590668,0.729279,0.345345,1.449724,0.556950,-0.405226,
-       0.551211,0.834366,0.000000,1.460683,0.568581,-0.500000,
-       0.923004,0.384789,0.000000,1.481548,0.525864,-0.500000,
-       0.923004,0.384789,0.000000,1.481548,0.525864,-0.500000,
+       0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
+       0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
+       0.551211,0.834366,0,1.460683,0.568581,-0.5,
+       0.923004,0.384789,0,1.481548,0.525864,-0.5,
+       0.923004,0.384789,0,1.481548,0.525864,-0.5,
        0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
-       0.590668,0.729279,0.345345,1.449724,0.556950,-0.405226,
-       0.964484,0.264141,-0.000000,1.502855,0.449898,-0.500000,
+       0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
+       0.964484,0.264141,0,1.502855,0.449898,-0.5,
        0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
        0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
-       0.964484,0.264141,-0.000000,1.502855,0.449898,-0.500000,
+       0.964484,0.264141,0,1.502855,0.449898,-0.5,
        0.888327,0.330007,0.319329,1.470529,0.515074,-0.406406,
-       0.923004,0.384789,0.000000,1.481548,0.525864,-0.500000,
+       0.923004,0.384789,0,1.481548,0.525864,-0.5,
        -0.553505,0.813265,0.179534,1.370035,0.524394,-0.361333,
-       -0.571934,0.814147,0.100277,1.384841,0.546182,-0.417500,
-       -0.169784,0.964201,0.203690,1.423386,0.566478,-0.412500,
+       -0.571934,0.814147,0.100277,1.384841,0.546182,-0.4175,
+       -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
        -0.553505,0.813265,0.179534,1.370035,0.524394,-0.361333,
-       -0.169784,0.964201,0.203690,1.423386,0.566478,-0.412500,
+       -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
        -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
-       -0.527613,0.849485,0.000000,1.392236,0.557026,-0.500000,
-       -0.070011,0.997546,0.000000,1.433279,0.578472,-0.500000,
-       -0.169784,0.964201,0.203690,1.423386,0.566478,-0.412500,
-       -0.527613,0.849485,0.000000,1.392236,0.557026,-0.500000,
-       -0.169784,0.964201,0.203690,1.423386,0.566478,-0.412500,
-       -0.571934,0.814147,0.100277,1.384841,0.546182,-0.417500,
-       0.551211,0.834366,0.000000,1.460683,0.568581,-0.500000,
-       0.590668,0.729279,0.345345,1.449724,0.556950,-0.405226,
-       -0.169784,0.964201,0.203690,1.423386,0.566478,-0.412500,
-       0.551211,0.834366,0.000000,1.460683,0.568581,-0.500000,
-       -0.169784,0.964201,0.203690,1.423386,0.566478,-0.412500,
-       -0.070011,0.997546,0.000000,1.433279,0.578472,-0.500000,
-       0.590668,0.729279,0.345345,1.449724,0.556950,-0.405226,
-       0.478094,0.571140,0.667253,1.416649,0.522728,-0.326134,
+       -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+       -0.070011,0.997546,0,1.433279,0.578472,-0.5,
+       -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+       -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+       -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+       -0.571934,0.814147,0.100277,1.384841,0.546182,-0.4175,
+       0.551211,0.834366,0,1.460683,0.568581,-0.5,
+       0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
+       -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+       0.551211,0.834366,0,1.460683,0.568581,-0.5,
+       -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+       -0.070011,0.997546,0,1.433279,0.578472,-0.5,
+       0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
+       0.478094,0.57114,0.667253,1.416649,0.522728,-0.326134,
        -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
        -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
-       -0.169784,0.964201,0.203690,1.423386,0.566478,-0.412500,
-       0.590668,0.729279,0.345345,1.449724,0.556950,-0.405226,
+       -0.169784,0.964201,0.20369,1.423386,0.566478,-0.4125,
+       0.590668,0.729279,0.345345,1.449724,0.55695,-0.405226,
        -0.553505,0.813265,-0.179534,1.370035,0.524394,-0.638667,
        -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
-       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.587500,
+       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
        -0.553505,0.813265,-0.179534,1.370035,0.524394,-0.638667,
-       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.587500,
-       -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.582500,
+       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+       -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.5825,
        -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
-       0.478093,0.571140,-0.667253,1.416649,0.522728,-0.673866,
-       0.590668,0.729279,-0.345345,1.449724,0.556950,-0.594774,
-       0.590668,0.729279,-0.345345,1.449724,0.556950,-0.594774,
-       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.587500,
+       0.478093,0.57114,-0.667253,1.416649,0.522728,-0.673866,
+       0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
+       0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
+       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
        -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
-       0.551211,0.834366,0.000000,1.460683,0.568581,-0.500000,
-       -0.070011,0.997546,0.000000,1.433279,0.578472,-0.500000,
-       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.587500,
-       0.551211,0.834366,0.000000,1.460683,0.568581,-0.500000,
-       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.587500,
-       0.590668,0.729279,-0.345345,1.449724,0.556950,-0.594774,
-       -0.527613,0.849485,0.000000,1.392236,0.557026,-0.500000,
-       -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.582500,
-       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.587500,
-       -0.527613,0.849485,0.000000,1.392236,0.557026,-0.500000,
-       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.587500,
-       -0.070011,0.997546,0.000000,1.433279,0.578472,-0.500000,
+       0.551211,0.834366,0,1.460683,0.568581,-0.5,
+       -0.070011,0.997546,0,1.433279,0.578472,-0.5,
+       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+       0.551211,0.834366,0,1.460683,0.568581,-0.5,
+       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+       0.590668,0.729279,-0.345345,1.449724,0.55695,-0.594774,
+       -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+       -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.5825,
+       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+       -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+       -0.169784,0.964201,-0.203689,1.423386,0.566478,-0.5875,
+       -0.070011,0.997546,0,1.433279,0.578472,-0.5,
        0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
-       0.453280,-0.007610,0.891335,1.407319,0.364926,-0.295283,
+       0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
        0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
        0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
        0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
-       0.710152,0.225044,0.667112,1.437472,0.482703,-0.328410,
-       0.453280,-0.007610,0.891335,1.407319,0.364926,-0.295283,
-       0.144715,-0.166180,0.975419,1.343629,0.308278,-0.280660,
+       0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
+       0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
+       0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
        0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
        0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
        0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
-       0.453280,-0.007610,0.891335,1.407319,0.364926,-0.295283,
+       0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
        -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
-       0.141626,0.422273,0.895336,1.361260,0.466583,-0.278403,
+       0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
        0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
        -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
        0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
        0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
-       0.141626,0.422273,0.895336,1.361260,0.466583,-0.278403,
-       0.478094,0.571140,0.667253,1.416649,0.522728,-0.326134,
-       0.710152,0.225044,0.667112,1.437472,0.482703,-0.328410,
-       0.710152,0.225044,0.667112,1.437472,0.482703,-0.328410,
+       0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
+       0.478094,0.57114,0.667253,1.416649,0.522728,-0.326134,
+       0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
+       0.710152,0.225044,0.667112,1.437472,0.482703,-0.32841,
        0.413326,0.054801,0.908933,1.382377,0.428753,-0.281613,
-       0.141626,0.422273,0.895336,1.361260,0.466583,-0.278403,
-       -0.172340,-0.336344,0.925836,1.279939,0.251630,-0.295283,
+       0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
+       -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
        -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
-       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.328410,
-       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.328410,
-       -0.193390,-0.303475,0.933008,1.250150,0.299272,-0.281613,
-       -0.172340,-0.336344,0.925836,1.279939,0.251630,-0.295283,
-       -0.730560,-0.181076,0.658402,1.174088,0.274960,-0.326134,
-       -0.461199,-0.002494,0.887293,1.229040,0.331527,-0.278403,
-       -0.193390,-0.303475,0.933008,1.250150,0.299272,-0.281613,
-       -0.730560,-0.181076,0.658402,1.174088,0.274960,-0.326134,
-       -0.193390,-0.303475,0.933008,1.250150,0.299272,-0.281613,
-       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.328410,
-       -0.461199,-0.002494,0.887293,1.229040,0.331527,-0.278403,
+       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
+       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
+       -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
+       -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
+       -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
+       -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
+       -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
+       -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
+       -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
+       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
+       -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
        -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
        0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
        0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
-       -0.193390,-0.303475,0.933008,1.250150,0.299272,-0.281613,
-       -0.461199,-0.002494,0.887293,1.229040,0.331527,-0.278403,
-       0.144715,-0.166180,0.975419,1.343629,0.308278,-0.280660,
-       -0.172340,-0.336344,0.925836,1.279939,0.251630,-0.295283,
-       -0.193390,-0.303475,0.933008,1.250150,0.299272,-0.281613,
-       0.144715,-0.166180,0.975419,1.343629,0.308278,-0.280660,
-       -0.193390,-0.303475,0.933008,1.250150,0.299272,-0.281613,
+       -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
+       -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
+       0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
+       -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
+       -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
+       0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
+       -0.19339,-0.303475,0.933008,1.25015,0.299272,-0.281613,
        0.112951,-0.120534,0.986262,1.316263,0.364012,-0.266014,
        -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
        -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
-       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294000,
+       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
        -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
-       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294000,
+       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
        -0.850149,0.280677,0.445496,1.169407,0.301726,-0.339125,
        -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
-       -0.702693,0.678582,0.213890,1.268890,0.429299,-0.322437,
-       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.278500,
-       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.278500,
-       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294000,
+       -0.702693,0.678582,0.21389,1.26889,0.429299,-0.322437,
+       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
+       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
+       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
        -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
        -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
-       -0.461199,-0.002494,0.887293,1.229040,0.331527,-0.278403,
-       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294000,
+       -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
+       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
        -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
-       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294000,
-       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.278500,
-       -0.461199,-0.002494,0.887293,1.229040,0.331527,-0.278403,
-       -0.730560,-0.181076,0.658402,1.174088,0.274960,-0.326134,
+       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
+       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
+       -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
+       -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
        -0.850149,0.280677,0.445496,1.169407,0.301726,-0.339125,
        -0.850149,0.280677,0.445496,1.169407,0.301726,-0.339125,
-       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294000,
-       -0.461199,-0.002494,0.887293,1.229040,0.331527,-0.278403,
+       -0.723455,0.416599,0.550508,1.219504,0.355352,-0.294,
+       -0.461199,-0.002494,0.887293,1.22904,0.331527,-0.278403,
        -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
        -0.553505,0.813265,0.179534,1.370035,0.524394,-0.361333,
        -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
        -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
-       -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294000,
+       -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294,
        -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
        -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
-       0.478094,0.571140,0.667253,1.416649,0.522728,-0.326134,
-       0.141626,0.422273,0.895336,1.361260,0.466583,-0.278403,
-       0.141626,0.422273,0.895336,1.361260,0.466583,-0.278403,
-       -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294000,
+       0.478094,0.57114,0.667253,1.416649,0.522728,-0.326134,
+       0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
+       0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
+       -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294,
        -0.216141,0.855174,0.471127,1.392914,0.533174,-0.339125,
        -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
-       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.278500,
-       -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294000,
+       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
+       -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294,
        -0.191431,0.222135,0.956039,1.294932,0.399266,-0.262379,
-       -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294000,
-       0.141626,0.422273,0.895336,1.361260,0.466583,-0.278403,
-       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.278500,
-       -0.702693,0.678582,0.213890,1.268890,0.429299,-0.322437,
+       -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294,
+       0.141626,0.422273,0.895336,1.36126,0.466583,-0.278403,
+       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
+       -0.702693,0.678582,0.21389,1.26889,0.429299,-0.322437,
        -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
        -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
-       -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294000,
-       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.278500,
+       -0.382645,0.670188,0.635949,1.341069,0.481236,-0.294,
+       -0.617508,0.597059,0.512059,1.279412,0.419138,-0.2785,
        -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
        -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
-       -0.707587,-0.618740,0.341293,1.161998,0.212951,-0.406406,
+       -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
        -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
-       -0.707587,-0.618740,0.341293,1.161998,0.212951,-0.406406,
-       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.328410,
+       -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
+       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
        -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
-       -0.784292,-0.620391,0.000000,1.184403,0.166658,-0.500000,
-       -0.749482,-0.662025,-0.000000,1.150979,0.202161,-0.500000,
-       -0.749482,-0.662025,-0.000000,1.150979,0.202161,-0.500000,
-       -0.707587,-0.618740,0.341293,1.161998,0.212951,-0.406406,
+       -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
+       -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
+       -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
+       -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
        -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
-       -0.928360,-0.371683,-0.000000,1.129180,0.229952,-0.500000,
-       -0.856012,-0.369954,0.361078,1.140576,0.241160,-0.405226,
-       -0.707587,-0.618740,0.341293,1.161998,0.212951,-0.406406,
-       -0.928360,-0.371683,-0.000000,1.129180,0.229952,-0.500000,
-       -0.707587,-0.618740,0.341293,1.161998,0.212951,-0.406406,
-       -0.749482,-0.662025,-0.000000,1.150979,0.202161,-0.500000,
-       -0.856012,-0.369954,0.361078,1.140576,0.241160,-0.405226,
-       -0.730560,-0.181076,0.658402,1.174088,0.274960,-0.326134,
-       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.328410,
-       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.328410,
-       -0.707587,-0.618740,0.341293,1.161998,0.212951,-0.406406,
-       -0.856012,-0.369954,0.361078,1.140576,0.241160,-0.405226,
+       -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+       -0.856012,-0.369954,0.361078,1.140576,0.24116,-0.405226,
+       -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
+       -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+       -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
+       -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
+       -0.856012,-0.369954,0.361078,1.140576,0.24116,-0.405226,
+       -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
+       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
+       -0.508694,-0.497612,0.702576,1.195055,0.245321,-0.32841,
+       -0.707587,-0.61874,0.341293,1.161998,0.212951,-0.406406,
+       -0.856012,-0.369954,0.361078,1.140576,0.24116,-0.405226,
        -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
-       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.671590,
-       -0.707587,-0.618740,-0.341293,1.161998,0.212951,-0.593594,
+       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
+       -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
        -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
-       -0.707587,-0.618740,-0.341293,1.161998,0.212951,-0.593594,
+       -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
        -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
-       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.671590,
-       -0.730560,-0.181076,-0.658402,1.174088,0.274960,-0.673866,
-       -0.856012,-0.369954,-0.361078,1.140576,0.241160,-0.594774,
-       -0.856012,-0.369954,-0.361078,1.140576,0.241160,-0.594774,
-       -0.707587,-0.618740,-0.341293,1.161998,0.212951,-0.593594,
-       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.671590,
-       -0.928360,-0.371683,-0.000000,1.129180,0.229952,-0.500000,
-       -0.749482,-0.662025,-0.000000,1.150979,0.202161,-0.500000,
-       -0.707587,-0.618740,-0.341293,1.161998,0.212951,-0.593594,
-       -0.928360,-0.371683,-0.000000,1.129180,0.229952,-0.500000,
-       -0.707587,-0.618740,-0.341293,1.161998,0.212951,-0.593594,
-       -0.856012,-0.369954,-0.361078,1.140576,0.241160,-0.594774,
-       -0.749482,-0.662025,-0.000000,1.150979,0.202161,-0.500000,
-       -0.784292,-0.620391,0.000000,1.184403,0.166658,-0.500000,
+       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
+       -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
+       -0.856012,-0.369954,-0.361078,1.140576,0.24116,-0.594774,
+       -0.856012,-0.369954,-0.361078,1.140576,0.24116,-0.594774,
+       -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
+       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
+       -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+       -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
+       -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
+       -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+       -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
+       -0.856012,-0.369954,-0.361078,1.140576,0.24116,-0.594774,
+       -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
+       -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
        -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
        -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
-       -0.707587,-0.618740,-0.341293,1.161998,0.212951,-0.593594,
-       -0.749482,-0.662025,-0.000000,1.150979,0.202161,-0.500000,
+       -0.707587,-0.61874,-0.341293,1.161998,0.212951,-0.593594,
+       -0.749482,-0.662025,0,1.150979,0.202161,-0.5,
        -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
-       -0.833612,0.543172,-0.100277,1.156124,0.309340,-0.582500,
-       -0.955913,0.208955,-0.206320,1.137187,0.270110,-0.587500,
+       -0.833612,0.543172,-0.100277,1.156124,0.30934,-0.5825,
+       -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
        -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
-       -0.955913,0.208955,-0.206320,1.137187,0.270110,-0.587500,
+       -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
        -0.850149,0.280677,-0.445496,1.169407,0.301726,-0.660875,
-       -0.867381,0.497645,-0.000000,1.145545,0.301571,-0.500000,
-       -0.986597,0.163178,0.000000,1.125545,0.259804,-0.500000,
-       -0.955913,0.208955,-0.206320,1.137187,0.270110,-0.587500,
-       -0.867381,0.497645,-0.000000,1.145545,0.301571,-0.500000,
-       -0.955913,0.208955,-0.206320,1.137187,0.270110,-0.587500,
-       -0.833612,0.543172,-0.100277,1.156124,0.309340,-0.582500,
-       -0.928360,-0.371683,-0.000000,1.129180,0.229952,-0.500000,
-       -0.856012,-0.369954,-0.361078,1.140576,0.241160,-0.594774,
-       -0.955913,0.208955,-0.206320,1.137187,0.270110,-0.587500,
-       -0.928360,-0.371683,-0.000000,1.129180,0.229952,-0.500000,
-       -0.955913,0.208955,-0.206320,1.137187,0.270110,-0.587500,
-       -0.986597,0.163178,0.000000,1.125545,0.259804,-0.500000,
-       -0.730560,-0.181076,-0.658402,1.174088,0.274960,-0.673866,
+       -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+       -0.986597,0.163178,0,1.125545,0.259804,-0.5,
+       -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+       -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+       -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+       -0.833612,0.543172,-0.100277,1.156124,0.30934,-0.5825,
+       -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+       -0.856012,-0.369954,-0.361078,1.140576,0.24116,-0.594774,
+       -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+       -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+       -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+       -0.986597,0.163178,0,1.125545,0.259804,-0.5,
+       -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
        -0.850149,0.280677,-0.445496,1.169407,0.301726,-0.660875,
-       -0.955913,0.208955,-0.206320,1.137187,0.270110,-0.587500,
-       -0.730560,-0.181076,-0.658402,1.174088,0.274960,-0.673866,
-       -0.955913,0.208955,-0.206320,1.137187,0.270110,-0.587500,
-       -0.856012,-0.369954,-0.361078,1.140576,0.241160,-0.594774,
+       -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+       -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
+       -0.955913,0.208955,-0.20632,1.137187,0.27011,-0.5875,
+       -0.856012,-0.369954,-0.361078,1.140576,0.24116,-0.594774,
        -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
        -0.850149,0.280677,0.445496,1.169407,0.301726,-0.339125,
-       -0.955913,0.208955,0.206320,1.137187,0.270110,-0.412500,
+       -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
        -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
-       -0.955913,0.208955,0.206320,1.137187,0.270110,-0.412500,
-       -0.833612,0.543172,0.100277,1.156124,0.309340,-0.417500,
-       -0.730560,-0.181076,0.658402,1.174088,0.274960,-0.326134,
-       -0.856012,-0.369954,0.361078,1.140576,0.241160,-0.405226,
-       -0.955913,0.208955,0.206320,1.137187,0.270110,-0.412500,
-       -0.730560,-0.181076,0.658402,1.174088,0.274960,-0.326134,
-       -0.955913,0.208955,0.206320,1.137187,0.270110,-0.412500,
+       -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+       -0.833612,0.543172,0.100277,1.156124,0.30934,-0.4175,
+       -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
+       -0.856012,-0.369954,0.361078,1.140576,0.24116,-0.405226,
+       -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+       -0.73056,-0.181076,0.658402,1.174088,0.27496,-0.326134,
+       -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
        -0.850149,0.280677,0.445496,1.169407,0.301726,-0.339125,
-       -0.928360,-0.371683,-0.000000,1.129180,0.229952,-0.500000,
-       -0.986597,0.163178,0.000000,1.125545,0.259804,-0.500000,
-       -0.955913,0.208955,0.206320,1.137187,0.270110,-0.412500,
-       -0.928360,-0.371683,-0.000000,1.129180,0.229952,-0.500000,
-       -0.955913,0.208955,0.206320,1.137187,0.270110,-0.412500,
-       -0.856012,-0.369954,0.361078,1.140576,0.241160,-0.405226,
-       -0.867381,0.497645,-0.000000,1.145545,0.301571,-0.500000,
-       -0.833612,0.543172,0.100277,1.156124,0.309340,-0.417500,
-       -0.955913,0.208955,0.206320,1.137187,0.270110,-0.412500,
-       -0.867381,0.497645,-0.000000,1.145545,0.301571,-0.500000,
-       -0.955913,0.208955,0.206320,1.137187,0.270110,-0.412500,
-       -0.986597,0.163178,0.000000,1.125545,0.259804,-0.500000,
-       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.671590,
+       -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+       -0.986597,0.163178,0,1.125545,0.259804,-0.5,
+       -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+       -0.92836,-0.371683,0,1.12918,0.229952,-0.5,
+       -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+       -0.856012,-0.369954,0.361078,1.140576,0.24116,-0.405226,
+       -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+       -0.833612,0.543172,0.100277,1.156124,0.30934,-0.4175,
+       -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+       -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+       -0.955913,0.208955,0.20632,1.137187,0.27011,-0.4125,
+       -0.986597,0.163178,0,1.125545,0.259804,-0.5,
+       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
        -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
-       -0.172340,-0.336344,-0.925836,1.279939,0.251630,-0.704717,
-       -0.172340,-0.336344,-0.925836,1.279939,0.251630,-0.704717,
-       -0.193391,-0.303475,-0.933008,1.250150,0.299272,-0.718387,
-       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.671590,
-       0.144715,-0.166180,-0.975419,1.343629,0.308278,-0.719340,
+       -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
+       -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
+       -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
+       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
+       0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
        0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
-       -0.193391,-0.303475,-0.933008,1.250150,0.299272,-0.718387,
-       0.144715,-0.166180,-0.975419,1.343629,0.308278,-0.719340,
-       -0.193391,-0.303475,-0.933008,1.250150,0.299272,-0.718387,
-       -0.172340,-0.336344,-0.925836,1.279939,0.251630,-0.704717,
+       -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
+       0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
+       -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
+       -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
        0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
        -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
-       -0.461199,-0.002494,-0.887293,1.229040,0.331527,-0.721597,
-       -0.461199,-0.002494,-0.887293,1.229040,0.331527,-0.721597,
-       -0.193391,-0.303475,-0.933008,1.250150,0.299272,-0.718387,
+       -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
+       -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
+       -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
        0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
-       -0.730560,-0.181076,-0.658402,1.174088,0.274960,-0.673866,
-       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.671590,
-       -0.193391,-0.303475,-0.933008,1.250150,0.299272,-0.718387,
-       -0.730560,-0.181076,-0.658402,1.174088,0.274960,-0.673866,
-       -0.193391,-0.303475,-0.933008,1.250150,0.299272,-0.718387,
-       -0.461199,-0.002494,-0.887293,1.229040,0.331527,-0.721597,
+       -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
+       -0.508694,-0.497611,-0.702576,1.195055,0.245321,-0.67159,
+       -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
+       -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
+       -0.193391,-0.303475,-0.933008,1.25015,0.299272,-0.718387,
+       -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
        0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
-       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.671590,
+       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
        0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
        0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
        0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
-       0.453280,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
-       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.671590,
-       0.478093,0.571140,-0.667253,1.416649,0.522728,-0.673866,
-       0.141625,0.422274,-0.895336,1.361260,0.466583,-0.721597,
-       0.141625,0.422274,-0.895336,1.361260,0.466583,-0.721597,
+       0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
+       0.478093,0.57114,-0.667253,1.416649,0.522728,-0.673866,
+       0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
+       0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
        0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
-       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.671590,
+       0.710152,0.225044,-0.667113,1.437472,0.482703,-0.67159,
        -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
        0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
        0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
        -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
        0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
-       0.141625,0.422274,-0.895336,1.361260,0.466583,-0.721597,
+       0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
        0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
-       0.144715,-0.166180,-0.975419,1.343629,0.308278,-0.719340,
-       0.453280,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
-       0.453280,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+       0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
+       0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+       0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
        0.413326,0.054801,-0.908933,1.382377,0.428753,-0.718387,
        0.112951,-0.120534,-0.986262,1.316263,0.364012,-0.733986,
        -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
        -0.553505,0.813265,-0.179534,1.370035,0.524394,-0.638667,
        -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
        -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
-       -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706000,
+       -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706,
        -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
        -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
-       -0.702693,0.678582,-0.213890,1.268890,0.429299,-0.677562,
-       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.721500,
-       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.721500,
-       -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706000,
+       -0.702693,0.678582,-0.21389,1.26889,0.429299,-0.677562,
+       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
+       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
+       -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706,
        -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
        -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
-       0.141625,0.422274,-0.895336,1.361260,0.466583,-0.721597,
-       -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706000,
+       0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
+       -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706,
        -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
-       -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706000,
-       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.721500,
-       0.141625,0.422274,-0.895336,1.361260,0.466583,-0.721597,
-       0.478093,0.571140,-0.667253,1.416649,0.522728,-0.673866,
+       -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706,
+       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
+       0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
+       0.478093,0.57114,-0.667253,1.416649,0.522728,-0.673866,
        -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
        -0.216141,0.855174,-0.471127,1.392914,0.533174,-0.660875,
-       -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706000,
-       0.141625,0.422274,-0.895336,1.361260,0.466583,-0.721597,
+       -0.382645,0.670188,-0.635948,1.341069,0.481236,-0.706,
+       0.141625,0.422274,-0.895336,1.36126,0.466583,-0.721597,
        -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
        -0.850149,0.280677,-0.445496,1.169407,0.301726,-0.660875,
-       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706000,
+       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
        -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
-       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706000,
+       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
        -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
        -0.850149,0.280677,-0.445496,1.169407,0.301726,-0.660875,
-       -0.730560,-0.181076,-0.658402,1.174088,0.274960,-0.673866,
-       -0.461199,-0.002494,-0.887293,1.229040,0.331527,-0.721597,
-       -0.461199,-0.002494,-0.887293,1.229040,0.331527,-0.721597,
-       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706000,
+       -0.73056,-0.181076,-0.658402,1.174088,0.27496,-0.673866,
+       -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
+       -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
+       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
        -0.850149,0.280677,-0.445496,1.169407,0.301726,-0.660875,
        -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
-       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.721500,
-       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706000,
+       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
+       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
        -0.191432,0.222135,-0.956039,1.294932,0.399266,-0.737621,
-       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706000,
-       -0.461199,-0.002494,-0.887293,1.229040,0.331527,-0.721597,
-       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.721500,
-       -0.702693,0.678582,-0.213890,1.268890,0.429299,-0.677562,
+       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
+       -0.461199,-0.002494,-0.887293,1.22904,0.331527,-0.721597,
+       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
+       -0.702693,0.678582,-0.21389,1.26889,0.429299,-0.677562,
        -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
        -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
-       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706000,
-       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.721500,
+       -0.723455,0.416599,-0.550508,1.219504,0.355352,-0.706,
+       -0.617508,0.597059,-0.512058,1.279412,0.419138,-0.7215,
        -0.553505,0.813265,0.179534,1.370035,0.524394,-0.361333,
        -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
-       -0.659360,0.747587,0.079739,1.327417,0.498590,-0.409500,
+       -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
        -0.553505,0.813265,0.179534,1.370035,0.524394,-0.361333,
-       -0.659360,0.747587,0.079739,1.327417,0.498590,-0.409500,
-       -0.571934,0.814147,0.100277,1.384841,0.546182,-0.417500,
+       -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
+       -0.571934,0.814147,0.100277,1.384841,0.546182,-0.4175,
        -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
-       -0.702693,0.678582,0.213890,1.268890,0.429299,-0.322437,
-       -0.716739,0.692147,0.084960,1.262552,0.435419,-0.402250,
-       -0.716739,0.692147,0.084960,1.262552,0.435419,-0.402250,
-       -0.659360,0.747587,0.079739,1.327417,0.498590,-0.409500,
+       -0.702693,0.678582,0.21389,1.26889,0.429299,-0.322437,
+       -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
+       -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
+       -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
        -0.623755,0.751092,0.216309,1.327792,0.487107,-0.335375,
-       -0.719340,0.694658,0.000000,1.260429,0.437469,-0.500000,
-       -0.657720,0.753262,-0.000000,1.330455,0.505735,-0.500000,
-       -0.659360,0.747587,0.079739,1.327417,0.498590,-0.409500,
-       -0.719340,0.694658,0.000000,1.260429,0.437469,-0.500000,
-       -0.659360,0.747587,0.079739,1.327417,0.498590,-0.409500,
-       -0.716739,0.692147,0.084960,1.262552,0.435419,-0.402250,
-       -0.657720,0.753262,-0.000000,1.330455,0.505735,-0.500000,
-       -0.527613,0.849485,0.000000,1.392236,0.557026,-0.500000,
-       -0.571934,0.814147,0.100277,1.384841,0.546182,-0.417500,
-       -0.571934,0.814147,0.100277,1.384841,0.546182,-0.417500,
-       -0.659360,0.747587,0.079739,1.327417,0.498590,-0.409500,
-       -0.657720,0.753262,-0.000000,1.330455,0.505735,-0.500000,
+       -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+       -0.65772,0.753262,0,1.330455,0.505735,-0.5,
+       -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
+       -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+       -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
+       -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
+       -0.65772,0.753262,0,1.330455,0.505735,-0.5,
+       -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+       -0.571934,0.814147,0.100277,1.384841,0.546182,-0.4175,
+       -0.571934,0.814147,0.100277,1.384841,0.546182,-0.4175,
+       -0.65936,0.747587,0.079739,1.327417,0.49859,-0.4095,
+       -0.65772,0.753262,0,1.330455,0.505735,-0.5,
        -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
-       -0.833612,0.543172,0.100277,1.156124,0.309340,-0.417500,
-       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.409500,
+       -0.833612,0.543172,0.100277,1.156124,0.30934,-0.4175,
+       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
        -0.828633,0.523102,0.199328,1.177383,0.324897,-0.361333,
-       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.409500,
+       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
        -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
-       -0.833612,0.543172,0.100277,1.156124,0.309340,-0.417500,
-       -0.867381,0.497645,-0.000000,1.145545,0.301571,-0.500000,
-       -0.775757,0.631031,0.000000,1.194650,0.365104,-0.500000,
-       -0.775757,0.631031,0.000000,1.194650,0.365104,-0.500000,
-       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.409500,
-       -0.833612,0.543172,0.100277,1.156124,0.309340,-0.417500,
-       -0.719340,0.694658,0.000000,1.260429,0.437469,-0.500000,
-       -0.716739,0.692147,0.084960,1.262552,0.435419,-0.402250,
-       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.409500,
-       -0.719340,0.694658,0.000000,1.260429,0.437469,-0.500000,
-       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.409500,
-       -0.775757,0.631031,0.000000,1.194650,0.365104,-0.500000,
-       -0.716739,0.692147,0.084960,1.262552,0.435419,-0.402250,
-       -0.702693,0.678582,0.213890,1.268890,0.429299,-0.322437,
+       -0.833612,0.543172,0.100277,1.156124,0.30934,-0.4175,
+       -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+       -0.775757,0.631031,0,1.19465,0.365104,-0.5,
+       -0.775757,0.631031,0,1.19465,0.365104,-0.5,
+       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
+       -0.833612,0.543172,0.100277,1.156124,0.30934,-0.4175,
+       -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+       -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
+       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
+       -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
+       -0.775757,0.631031,0,1.19465,0.365104,-0.5,
+       -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
+       -0.702693,0.678582,0.21389,1.26889,0.429299,-0.322437,
        -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
        -0.766049,0.607525,0.209958,1.213173,0.368416,-0.335375,
-       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.409500,
-       -0.716739,0.692147,0.084960,1.262552,0.435419,-0.402250,
+       -0.770142,0.632868,0.079739,1.201684,0.368389,-0.4095,
+       -0.716739,0.692147,0.08496,1.262552,0.435419,-0.40225,
        -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
        -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
-       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.590500,
+       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
        -0.828633,0.523102,-0.199328,1.177383,0.324897,-0.638667,
-       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.590500,
-       -0.833612,0.543172,-0.100277,1.156124,0.309340,-0.582500,
+       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
+       -0.833612,0.543172,-0.100277,1.156124,0.30934,-0.5825,
        -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
-       -0.702693,0.678582,-0.213890,1.268890,0.429299,-0.677562,
-       -0.716739,0.692147,-0.084960,1.262552,0.435419,-0.597750,
-       -0.716739,0.692147,-0.084960,1.262552,0.435419,-0.597750,
-       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.590500,
+       -0.702693,0.678582,-0.21389,1.26889,0.429299,-0.677562,
+       -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
+       -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
+       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
        -0.766049,0.607525,-0.209958,1.213173,0.368416,-0.664625,
-       -0.719340,0.694658,0.000000,1.260429,0.437469,-0.500000,
-       -0.775757,0.631031,0.000000,1.194650,0.365104,-0.500000,
-       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.590500,
-       -0.719340,0.694658,0.000000,1.260429,0.437469,-0.500000,
-       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.590500,
-       -0.716739,0.692147,-0.084960,1.262552,0.435419,-0.597750,
-       -0.775757,0.631031,0.000000,1.194650,0.365104,-0.500000,
-       -0.867381,0.497645,-0.000000,1.145545,0.301571,-0.500000,
-       -0.833612,0.543172,-0.100277,1.156124,0.309340,-0.582500,
-       -0.833612,0.543172,-0.100277,1.156124,0.309340,-0.582500,
-       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.590500,
-       -0.775757,0.631031,0.000000,1.194650,0.365104,-0.500000,
+       -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+       -0.775757,0.631031,0,1.19465,0.365104,-0.5,
+       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
+       -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
+       -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
+       -0.775757,0.631031,0,1.19465,0.365104,-0.5,
+       -0.867381,0.497645,0,1.145545,0.301571,-0.5,
+       -0.833612,0.543172,-0.100277,1.156124,0.30934,-0.5825,
+       -0.833612,0.543172,-0.100277,1.156124,0.30934,-0.5825,
+       -0.770142,0.632868,-0.079739,1.201684,0.368389,-0.5905,
+       -0.775757,0.631031,0,1.19465,0.365104,-0.5,
        -0.553505,0.813265,-0.179534,1.370035,0.524394,-0.638667,
-       -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.582500,
-       -0.659360,0.747587,-0.079739,1.327417,0.498590,-0.590500,
+       -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.5825,
+       -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
        -0.553505,0.813265,-0.179534,1.370035,0.524394,-0.638667,
-       -0.659360,0.747587,-0.079739,1.327417,0.498590,-0.590500,
+       -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
        -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
-       -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.582500,
-       -0.527613,0.849485,0.000000,1.392236,0.557026,-0.500000,
-       -0.657720,0.753262,-0.000000,1.330455,0.505735,-0.500000,
-       -0.657720,0.753262,-0.000000,1.330455,0.505735,-0.500000,
-       -0.659360,0.747587,-0.079739,1.327417,0.498590,-0.590500,
-       -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.582500,
-       -0.719340,0.694658,0.000000,1.260429,0.437469,-0.500000,
-       -0.716739,0.692147,-0.084960,1.262552,0.435419,-0.597750,
-       -0.659360,0.747587,-0.079739,1.327417,0.498590,-0.590500,
-       -0.719340,0.694658,0.000000,1.260429,0.437469,-0.500000,
-       -0.659360,0.747587,-0.079739,1.327417,0.498590,-0.590500,
-       -0.657720,0.753262,-0.000000,1.330455,0.505735,-0.500000,
-       -0.716739,0.692147,-0.084960,1.262552,0.435419,-0.597750,
-       -0.702693,0.678582,-0.213890,1.268890,0.429299,-0.677562,
+       -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.5825,
+       -0.527613,0.849485,0,1.392236,0.557026,-0.5,
+       -0.65772,0.753262,0,1.330455,0.505735,-0.5,
+       -0.65772,0.753262,0,1.330455,0.505735,-0.5,
+       -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
+       -0.571934,0.814147,-0.100277,1.384841,0.546182,-0.5825,
+       -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+       -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
+       -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
+       -0.71934,0.694658,0,1.260429,0.437469,-0.5,
+       -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
+       -0.65772,0.753262,0,1.330455,0.505735,-0.5,
+       -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
+       -0.702693,0.678582,-0.21389,1.26889,0.429299,-0.677562,
        -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
        -0.623755,0.751092,-0.216309,1.327792,0.487107,-0.664625,
-       -0.659360,0.747587,-0.079739,1.327417,0.498590,-0.590500,
-       -0.716739,0.692147,-0.084960,1.262552,0.435419,-0.597750,
+       -0.65936,0.747587,-0.079739,1.327417,0.49859,-0.5905,
+       -0.716739,0.692147,-0.08496,1.262552,0.435419,-0.59775,
        0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
-       0.744750,0.138417,-0.652831,1.490430,0.310049,-0.648448,
+       0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
        0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
        0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
        0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
        0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
-       0.744750,0.138417,-0.652831,1.490430,0.310049,-0.648448,
+       0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
        0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
        0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
        0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
        0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
-       0.744750,0.138417,-0.652831,1.490430,0.310049,-0.648448,
-       0.971020,0.238998,0.000000,1.564666,0.208184,-0.500000,
-       0.968395,0.249424,0.000000,1.531587,0.340261,-0.500000,
+       0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
+       0.97102,0.238998,0,1.564666,0.208184,-0.5,
+       0.968395,0.249424,0,1.531587,0.340261,-0.5,
        0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
-       0.971020,0.238998,0.000000,1.564666,0.208184,-0.500000,
+       0.97102,0.238998,0,1.564666,0.208184,-0.5,
        0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
        0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
-       0.968395,0.249424,0.000000,1.531587,0.340261,-0.500000,
-       0.964484,0.264141,-0.000000,1.502855,0.449898,-0.500000,
+       0.968395,0.249424,0,1.531587,0.340261,-0.5,
+       0.964484,0.264141,0,1.502855,0.449898,-0.5,
        0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
        0.922813,0.236109,-0.304415,1.492239,0.440457,-0.587736,
        0.924767,0.224636,-0.307154,1.521298,0.332708,-0.580972,
-       0.968395,0.249424,0.000000,1.531587,0.340261,-0.500000,
+       0.968395,0.249424,0,1.531587,0.340261,-0.5,
        0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
-       0.683950,0.142900,-0.715397,1.589301,-0.085107,-0.624049,
-       0.923419,0.197980,-0.328787,1.620986,-0.080049,-0.567663,
-       0.923419,0.197980,-0.328787,1.620986,-0.080049,-0.567663,
-       0.924112,0.207820,-0.320669,1.588828,0.061527,-0.569694,
+       0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
+       0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
+       0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
+       0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
        0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
-       0.976556,0.215262,0.000000,1.631547,-0.078363,-0.500000,
-       0.973545,0.228495,-0.000000,1.599013,0.064899,-0.500000,
-       0.924112,0.207820,-0.320669,1.588828,0.061527,-0.569694,
-       0.976556,0.215262,0.000000,1.631547,-0.078363,-0.500000,
-       0.924112,0.207820,-0.320669,1.588828,0.061527,-0.569694,
-       0.923419,0.197980,-0.328787,1.620986,-0.080049,-0.567663,
-       0.973545,0.228495,-0.000000,1.599013,0.064899,-0.500000,
-       0.971020,0.238998,0.000000,1.564666,0.208184,-0.500000,
+       0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+       0.973545,0.228495,0,1.599013,0.064899,-0.5,
+       0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
+       0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+       0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
+       0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
+       0.973545,0.228495,0,1.599013,0.064899,-0.5,
+       0.97102,0.238998,0,1.564666,0.208184,-0.5,
        0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
        0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
-       0.924112,0.207820,-0.320669,1.588828,0.061527,-0.569694,
-       0.973545,0.228495,-0.000000,1.599013,0.064899,-0.500000,
+       0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
+       0.973545,0.228495,0,1.599013,0.064899,-0.5,
        0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
        0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
-       0.924112,0.207820,-0.320669,1.588828,0.061527,-0.569694,
+       0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
        0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
-       0.924112,0.207820,-0.320669,1.588828,0.061527,-0.569694,
+       0.924112,0.20782,-0.320669,1.588828,0.061527,-0.569694,
        0.924854,0.216174,-0.312912,1.554547,0.202755,-0.574544,
-       0.923419,0.197980,0.328787,1.620986,-0.080049,-0.432337,
-       0.683950,0.142900,0.715397,1.589301,-0.085107,-0.375951,
+       0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
+       0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
        0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
        0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
-       0.924112,0.207820,0.320669,1.588828,0.061527,-0.430306,
-       0.923419,0.197980,0.328787,1.620986,-0.080049,-0.432337,
+       0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
+       0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
        0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
        0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
-       0.924112,0.207820,0.320669,1.588828,0.061527,-0.430306,
+       0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
        0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
-       0.924112,0.207820,0.320669,1.588828,0.061527,-0.430306,
+       0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
        0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
        0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
-       0.971020,0.238998,0.000000,1.564666,0.208184,-0.500000,
-       0.973545,0.228495,-0.000000,1.599013,0.064899,-0.500000,
-       0.973545,0.228495,-0.000000,1.599013,0.064899,-0.500000,
-       0.924112,0.207820,0.320669,1.588828,0.061527,-0.430306,
+       0.97102,0.238998,0,1.564666,0.208184,-0.5,
+       0.973545,0.228495,0,1.599013,0.064899,-0.5,
+       0.973545,0.228495,0,1.599013,0.064899,-0.5,
+       0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
        0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
-       0.976556,0.215262,0.000000,1.631547,-0.078363,-0.500000,
-       0.923419,0.197980,0.328787,1.620986,-0.080049,-0.432337,
-       0.924112,0.207820,0.320669,1.588828,0.061527,-0.430306,
-       0.976556,0.215262,0.000000,1.631547,-0.078363,-0.500000,
-       0.924112,0.207820,0.320669,1.588828,0.061527,-0.430306,
-       0.973545,0.228495,-0.000000,1.599013,0.064899,-0.500000,
+       0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+       0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
+       0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
+       0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+       0.924112,0.20782,0.320669,1.588828,0.061527,-0.430306,
+       0.973545,0.228495,0,1.599013,0.064899,-0.5,
        0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
        0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
        0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
        0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
        0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
-       0.744750,0.138417,0.652831,1.490430,0.310049,-0.351552,
+       0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
        0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
-       0.964484,0.264141,-0.000000,1.502855,0.449898,-0.500000,
-       0.968395,0.249424,0.000000,1.531587,0.340261,-0.500000,
-       0.968395,0.249424,0.000000,1.531587,0.340261,-0.500000,
+       0.964484,0.264141,0,1.502855,0.449898,-0.5,
+       0.968395,0.249424,0,1.531587,0.340261,-0.5,
+       0.968395,0.249424,0,1.531587,0.340261,-0.5,
        0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
        0.922813,0.236109,0.304415,1.492239,0.440457,-0.412264,
-       0.971020,0.238998,0.000000,1.564666,0.208184,-0.500000,
+       0.97102,0.238998,0,1.564666,0.208184,-0.5,
        0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
        0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
-       0.971020,0.238998,0.000000,1.564666,0.208184,-0.500000,
+       0.97102,0.238998,0,1.564666,0.208184,-0.5,
        0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
-       0.968395,0.249424,0.000000,1.531587,0.340261,-0.500000,
+       0.968395,0.249424,0,1.531587,0.340261,-0.5,
        0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
        0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
-       0.744750,0.138417,0.652831,1.490430,0.310049,-0.351552,
-       0.744750,0.138417,0.652831,1.490430,0.310049,-0.351552,
+       0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
+       0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
        0.924767,0.224636,0.307154,1.521298,0.332708,-0.419028,
        0.924854,0.216174,0.312912,1.554547,0.202755,-0.425456,
        -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
@@ -581,385 +581,385 @@ static const float data[]={
        -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
        -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
        -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
-       -0.172340,-0.336344,-0.925836,1.279939,0.251630,-0.704717,
+       -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
        -0.575759,-0.440808,-0.688615,1.264067,0.143881,-0.648448,
        -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
-       -0.287334,-0.241218,-0.926959,1.352154,0.094180,-0.673936,
-       -0.287334,-0.241218,-0.926959,1.352154,0.094180,-0.673936,
+       -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
+       -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
        -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
        -0.575759,-0.440808,-0.688615,1.264067,0.143881,-0.648448,
-       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.686360,
-       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.702430,
+       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
+       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
        -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
-       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.686360,
+       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
        -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
-       -0.287334,-0.241218,-0.926959,1.352154,0.094180,-0.673936,
-       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.702430,
-       0.144715,-0.166180,-0.975419,1.343629,0.308278,-0.719340,
-       -0.172340,-0.336344,-0.925836,1.279939,0.251630,-0.704717,
-       -0.172340,-0.336344,-0.925836,1.279939,0.251630,-0.704717,
+       -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
+       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
+       0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
+       -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
+       -0.17234,-0.336344,-0.925836,1.279939,0.25163,-0.704717,
        -0.232261,-0.293469,-0.927325,1.315513,0.181646,-0.688934,
-       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.702430,
-       -0.686016,-0.251158,-0.682863,1.334220,-0.022771,-0.627772,
-       -0.714150,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
+       -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
+       -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
        -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
        -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
        -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
-       -0.686016,-0.251158,-0.682863,1.334220,-0.022771,-0.627772,
+       -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
        -0.032665,-0.015822,-0.999341,1.473124,-0.103652,-0.669158,
-       0.024003,-0.070986,-0.997189,1.446248,0.014320,-0.674234,
+       0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
        -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
        -0.032665,-0.015822,-0.999341,1.473124,-0.103652,-0.669158,
        -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
        -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
-       0.024003,-0.070986,-0.997189,1.446248,0.014320,-0.674234,
-       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.686360,
-       -0.287334,-0.241218,-0.926959,1.352154,0.094180,-0.673936,
-       -0.287334,-0.241218,-0.926959,1.352154,0.094180,-0.673936,
+       0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
+       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
+       -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
+       -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
        -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
-       0.024003,-0.070986,-0.997189,1.446248,0.014320,-0.674234,
+       0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
        -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
-       -0.686016,-0.251158,-0.682863,1.334220,-0.022771,-0.627772,
+       -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
        -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
        -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
        -0.331282,-0.167258,-0.928589,1.385142,-0.005911,-0.662619,
-       -0.287334,-0.241218,-0.926959,1.352154,0.094180,-0.673936,
-       0.683950,0.142900,-0.715397,1.589301,-0.085107,-0.624049,
+       -0.287334,-0.241218,-0.926959,1.352154,0.09418,-0.673936,
+       0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
        0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
        0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
-       0.683950,0.142900,-0.715397,1.589301,-0.085107,-0.624049,
+       0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
        0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
        0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
        0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
        0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
-       0.403594,0.012135,-0.914858,1.473590,0.159325,-0.673936,
-       0.403594,0.012135,-0.914858,1.473590,0.159325,-0.673936,
+       0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
+       0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
        0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
        0.721766,0.139046,-0.678027,1.558275,0.051411,-0.627772,
-       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.686360,
-       0.024003,-0.070986,-0.997189,1.446248,0.014320,-0.674234,
+       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
+       0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
        0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
-       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.686360,
+       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
        0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
-       0.403594,0.012135,-0.914858,1.473590,0.159325,-0.673936,
-       0.024003,-0.070986,-0.997189,1.446248,0.014320,-0.674234,
+       0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
+       0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
        -0.032665,-0.015822,-0.999341,1.473124,-0.103652,-0.669158,
        0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
        0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
        0.376201,0.032359,-0.925973,1.507354,0.034552,-0.662619,
-       0.024003,-0.070986,-0.997189,1.446248,0.014320,-0.674234,
-       0.744750,0.138417,-0.652831,1.490430,0.310049,-0.648448,
+       0.024003,-0.070986,-0.997189,1.446248,0.01432,-0.674234,
+       0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
        0.751095,0.142007,-0.644741,1.460394,0.412133,-0.660849,
-       0.453280,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
-       0.453280,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+       0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+       0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
        0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
-       0.744750,0.138417,-0.652831,1.490430,0.310049,-0.648448,
-       0.144715,-0.166180,-0.975419,1.343629,0.308278,-0.719340,
-       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.702430,
+       0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
+       0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
+       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
        0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
-       0.144715,-0.166180,-0.975419,1.343629,0.308278,-0.719340,
+       0.144715,-0.16618,-0.975419,1.343629,0.308278,-0.71934,
        0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
-       0.453280,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
-       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.702430,
-       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.686360,
-       0.403594,0.012135,-0.914858,1.473590,0.159325,-0.673936,
-       0.403594,0.012135,-0.914858,1.473590,0.159325,-0.673936,
+       0.45328,-0.007609,-0.891335,1.407319,0.364926,-0.704717,
+       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
+       0.061121,-0.115002,-0.991483,1.412872,0.126752,-0.68636,
+       0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
+       0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
        0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
-       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.702430,
+       0.103365,-0.143519,-0.984235,1.377249,0.226965,-0.70243,
        0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
-       0.744750,0.138417,-0.652831,1.490430,0.310049,-0.648448,
+       0.74475,0.138417,-0.652831,1.49043,0.310049,-0.648448,
        0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
        0.734405,0.137212,-0.664697,1.524188,0.186469,-0.636664,
        0.430582,0.000669,-0.902551,1.438984,0.272283,-0.688934,
-       0.403594,0.012135,-0.914858,1.473590,0.159325,-0.673936,
+       0.403594,0.012135,-0.914858,1.47359,0.159325,-0.673936,
        -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
-       -0.172340,-0.336344,0.925836,1.279939,0.251630,-0.295283,
+       -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
        -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
        -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
        -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
        -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
-       -0.172340,-0.336344,0.925836,1.279939,0.251630,-0.295283,
-       0.144715,-0.166180,0.975419,1.343629,0.308278,-0.280660,
-       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.297570,
-       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.297570,
+       -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
+       0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
+       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
+       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
        -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
-       -0.172340,-0.336344,0.925836,1.279939,0.251630,-0.295283,
-       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.313640,
-       -0.287334,-0.241218,0.926959,1.352154,0.094180,-0.326064,
+       -0.17234,-0.336344,0.925836,1.279939,0.25163,-0.295283,
+       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
+       -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
        -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
-       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.313640,
+       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
        -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
-       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.297570,
-       -0.287334,-0.241218,0.926959,1.352154,0.094180,-0.326064,
+       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
+       -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
        -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
        -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
        -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
        -0.232261,-0.293468,0.927325,1.315513,0.181646,-0.311066,
-       -0.287334,-0.241218,0.926959,1.352154,0.094180,-0.326064,
-       0.453280,-0.007610,0.891335,1.407319,0.364926,-0.295283,
+       -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
+       0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
        0.751095,0.142007,0.644741,1.460394,0.412133,-0.339151,
-       0.744750,0.138417,0.652831,1.490430,0.310049,-0.351552,
-       0.744750,0.138417,0.652831,1.490430,0.310049,-0.351552,
+       0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
+       0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
        0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
-       0.453280,-0.007610,0.891335,1.407319,0.364926,-0.295283,
+       0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
        0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
-       0.403594,0.012135,0.914858,1.473590,0.159325,-0.326064,
+       0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
        0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
        0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
        0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
-       0.744750,0.138417,0.652831,1.490430,0.310049,-0.351552,
-       0.403594,0.012135,0.914858,1.473590,0.159325,-0.326064,
-       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.313640,
-       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.297570,
-       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.297570,
+       0.74475,0.138417,0.652831,1.49043,0.310049,-0.351552,
+       0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
+       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
+       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
+       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
        0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
-       0.403594,0.012135,0.914858,1.473590,0.159325,-0.326064,
-       0.144715,-0.166180,0.975419,1.343629,0.308278,-0.280660,
-       0.453280,-0.007610,0.891335,1.407319,0.364926,-0.295283,
+       0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
+       0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
+       0.45328,-0.00761,0.891335,1.407319,0.364926,-0.295283,
        0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
-       0.144715,-0.166180,0.975419,1.343629,0.308278,-0.280660,
+       0.144715,-0.16618,0.975419,1.343629,0.308278,-0.28066,
        0.430582,0.000669,0.902551,1.438984,0.272283,-0.311066,
-       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.297570,
-       0.683950,0.142900,0.715397,1.589301,-0.085107,-0.375951,
+       0.103365,-0.143519,0.984235,1.377249,0.226965,-0.29757,
+       0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
        0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
        0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
-       0.683950,0.142900,0.715397,1.589301,-0.085107,-0.375951,
+       0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
        0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
        0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
        0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
        -0.032665,-0.015822,0.999341,1.473124,-0.103652,-0.330842,
-       0.024003,-0.070986,0.997189,1.446248,0.014320,-0.325766,
-       0.024003,-0.070986,0.997189,1.446248,0.014320,-0.325766,
+       0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
+       0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
        0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
        0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
-       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.313640,
-       0.403594,0.012135,0.914858,1.473590,0.159325,-0.326064,
+       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
+       0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
        0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
-       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.313640,
+       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
        0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
-       0.024003,-0.070986,0.997189,1.446248,0.014320,-0.325766,
-       0.403594,0.012135,0.914858,1.473590,0.159325,-0.326064,
+       0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
+       0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
        0.734405,0.137212,0.664697,1.524188,0.186469,-0.363336,
        0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
        0.721766,0.139046,0.678027,1.558275,0.051411,-0.372228,
        0.376201,0.032359,0.925973,1.507354,0.034552,-0.337381,
-       0.403594,0.012135,0.914858,1.473590,0.159325,-0.326064,
+       0.403594,0.012135,0.914858,1.47359,0.159325,-0.326064,
        -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
        -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
-       -0.686016,-0.251158,0.682863,1.334220,-0.022771,-0.372228,
-       -0.686016,-0.251158,0.682863,1.334220,-0.022771,-0.372228,
+       -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
+       -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
        -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
        -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
        -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
-       -0.287334,-0.241218,0.926959,1.352154,0.094180,-0.326064,
+       -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
        -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
        -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
        -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
-       -0.686016,-0.251158,0.682863,1.334220,-0.022771,-0.372228,
-       -0.287334,-0.241218,0.926959,1.352154,0.094180,-0.326064,
-       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.313640,
-       0.024003,-0.070986,0.997189,1.446248,0.014320,-0.325766,
-       0.024003,-0.070986,0.997189,1.446248,0.014320,-0.325766,
+       -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
+       -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
+       0.061121,-0.115002,0.991483,1.412872,0.126752,-0.31364,
+       0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
+       0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
        -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
-       -0.287334,-0.241218,0.926959,1.352154,0.094180,-0.326064,
+       -0.287334,-0.241218,0.926959,1.352154,0.09418,-0.326064,
        -0.032665,-0.015822,0.999341,1.473124,-0.103652,-0.330842,
        -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
        -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
        -0.032665,-0.015822,0.999341,1.473124,-0.103652,-0.330842,
        -0.331282,-0.167257,0.928589,1.385142,-0.005911,-0.337381,
-       0.024003,-0.070986,0.997189,1.446248,0.014320,-0.325766,
+       0.024003,-0.070986,0.997189,1.446248,0.01432,-0.325766,
        -0.575759,-0.440808,-0.688615,1.264067,0.143881,-0.648448,
        -0.503423,-0.512227,-0.695836,1.226863,0.204423,-0.660849,
        -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
        -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
-       -0.788495,-0.519776,-0.328798,1.233200,0.121222,-0.580972,
+       -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
        -0.575759,-0.440808,-0.688615,1.264067,0.143881,-0.648448,
-       -0.784292,-0.620391,0.000000,1.184403,0.166658,-0.500000,
-       -0.853449,-0.521176,0.000000,1.222911,0.113669,-0.500000,
-       -0.788495,-0.519776,-0.328798,1.233200,0.121222,-0.580972,
-       -0.784292,-0.620391,0.000000,1.184403,0.166658,-0.500000,
-       -0.788495,-0.519776,-0.328798,1.233200,0.121222,-0.580972,
+       -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
+       -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
+       -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
+       -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
+       -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
        -0.715537,-0.612433,-0.336055,1.195018,0.176099,-0.587736,
-       -0.853449,-0.521176,0.000000,1.222911,0.113669,-0.500000,
-       -0.912287,-0.409552,0.000000,1.261078,0.045321,-0.500000,
-       -0.849326,-0.416862,-0.323838,1.271198,0.050750,-0.574544,
-       -0.849326,-0.416862,-0.323838,1.271198,0.050750,-0.574544,
-       -0.788495,-0.519776,-0.328798,1.233200,0.121222,-0.580972,
-       -0.853449,-0.521176,0.000000,1.222911,0.113669,-0.500000,
+       -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
+       -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
+       -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
+       -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
+       -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
+       -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
        -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
        -0.575759,-0.440808,-0.688615,1.264067,0.143881,-0.648448,
-       -0.788495,-0.519776,-0.328798,1.233200,0.121222,-0.580972,
+       -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
        -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
-       -0.788495,-0.519776,-0.328798,1.233200,0.121222,-0.580972,
-       -0.849326,-0.416862,-0.323838,1.271198,0.050750,-0.574544,
+       -0.788495,-0.519776,-0.328798,1.2332,0.121222,-0.580972,
+       -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
        -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
        -0.503423,-0.512227,0.695837,1.226863,0.204423,-0.339151,
        -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
        -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
-       -0.788495,-0.519776,0.328798,1.233200,0.121222,-0.419028,
+       -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
        -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
        -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
-       -0.849326,-0.416862,0.323838,1.271198,0.050750,-0.425456,
-       -0.788495,-0.519776,0.328798,1.233200,0.121222,-0.419028,
+       -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
+       -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
        -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
-       -0.788495,-0.519776,0.328798,1.233200,0.121222,-0.419028,
+       -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
        -0.575759,-0.440808,0.688615,1.264067,0.143881,-0.351552,
-       -0.849326,-0.416862,0.323838,1.271198,0.050750,-0.425456,
-       -0.912287,-0.409552,0.000000,1.261078,0.045321,-0.500000,
-       -0.853449,-0.521176,0.000000,1.222911,0.113669,-0.500000,
-       -0.853449,-0.521176,0.000000,1.222911,0.113669,-0.500000,
-       -0.788495,-0.519776,0.328798,1.233200,0.121222,-0.419028,
-       -0.849326,-0.416862,0.323838,1.271198,0.050750,-0.425456,
-       -0.784292,-0.620391,0.000000,1.184403,0.166658,-0.500000,
+       -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
+       -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
+       -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
+       -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
+       -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
+       -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
+       -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
        -0.715537,-0.612433,0.336055,1.195018,0.176099,-0.412264,
-       -0.788495,-0.519776,0.328798,1.233200,0.121222,-0.419028,
-       -0.784292,-0.620391,0.000000,1.184403,0.166658,-0.500000,
-       -0.788495,-0.519776,0.328798,1.233200,0.121222,-0.419028,
-       -0.853449,-0.521176,0.000000,1.222911,0.113669,-0.500000,
+       -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
+       -0.784292,-0.620391,0,1.184403,0.166658,-0.5,
+       -0.788495,-0.519776,0.328798,1.2332,0.121222,-0.419028,
+       -0.853449,-0.521176,0,1.222911,0.113669,-0.5,
        -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
        -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
        -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
        -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
        -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
-       -0.686016,-0.251158,0.682863,1.334220,-0.022771,-0.372228,
+       -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
        -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
-       -0.994338,-0.106266,0.000000,1.314701,-0.128942,-0.500000,
-       -0.961859,-0.273547,0.000000,1.293483,-0.036258,-0.500000,
-       -0.961859,-0.273547,0.000000,1.293483,-0.036258,-0.500000,
+       -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
+       -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
+       -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
        -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
        -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
-       -0.912287,-0.409552,0.000000,1.261078,0.045321,-0.500000,
-       -0.849326,-0.416862,0.323838,1.271198,0.050750,-0.425456,
+       -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
+       -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
        -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
-       -0.912287,-0.409552,0.000000,1.261078,0.045321,-0.500000,
+       -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
        -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
-       -0.961859,-0.273547,0.000000,1.293483,-0.036258,-0.500000,
-       -0.849326,-0.416862,0.323838,1.271198,0.050750,-0.425456,
+       -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
+       -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
        -0.637408,-0.358226,0.682191,1.301556,0.067036,-0.363336,
-       -0.686016,-0.251158,0.682863,1.334220,-0.022771,-0.372228,
-       -0.686016,-0.251158,0.682863,1.334220,-0.022771,-0.372228,
+       -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
+       -0.686016,-0.251158,0.682863,1.33422,-0.022771,-0.372228,
        -0.899929,-0.290508,0.325166,1.303667,-0.032887,-0.430306,
-       -0.849326,-0.416862,0.323838,1.271198,0.050750,-0.425456,
-       -0.714150,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
-       -0.686016,-0.251158,-0.682863,1.334220,-0.022771,-0.627772,
+       -0.849326,-0.416862,0.323838,1.271198,0.05075,-0.425456,
+       -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+       -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
        -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
-       -0.714150,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+       -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
        -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
        -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
-       -0.686016,-0.251158,-0.682863,1.334220,-0.022771,-0.627772,
+       -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
        -0.637408,-0.358226,-0.682191,1.301556,0.067036,-0.636664,
-       -0.849326,-0.416862,-0.323838,1.271198,0.050750,-0.574544,
-       -0.849326,-0.416862,-0.323838,1.271198,0.050750,-0.574544,
+       -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
+       -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
        -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
-       -0.686016,-0.251158,-0.682863,1.334220,-0.022771,-0.627772,
-       -0.912287,-0.409552,0.000000,1.261078,0.045321,-0.500000,
-       -0.961859,-0.273547,0.000000,1.293483,-0.036258,-0.500000,
+       -0.686016,-0.251158,-0.682863,1.33422,-0.022771,-0.627772,
+       -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
+       -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
        -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
-       -0.912287,-0.409552,0.000000,1.261078,0.045321,-0.500000,
+       -0.912287,-0.409552,0,1.261078,0.045321,-0.5,
        -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
-       -0.849326,-0.416862,-0.323838,1.271198,0.050750,-0.574544,
-       -0.961859,-0.273547,0.000000,1.293483,-0.036258,-0.500000,
-       -0.994338,-0.106266,0.000000,1.314701,-0.128942,-0.500000,
+       -0.849326,-0.416862,-0.323838,1.271198,0.05075,-0.574544,
+       -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
+       -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
        -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
        -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
        -0.899929,-0.290508,-0.325166,1.303667,-0.032887,-0.569694,
-       -0.961859,-0.273547,0.000000,1.293483,-0.036258,-0.500000,
+       -0.961859,-0.273547,0,1.293483,-0.036258,-0.5,
        -0.693871,0.192788,-0.693812,1.351552,-0.429344,-0.648448,
        -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
-       -0.336776,0.225597,-0.914160,1.412264,-0.510672,-0.704717,
-       -0.336776,0.225597,-0.914160,1.412264,-0.510672,-0.704717,
+       -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
+       -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
        -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
        -0.693871,0.192788,-0.693812,1.351552,-0.429344,-0.648448,
-       0.000000,0.216323,-0.976322,1.500000,-0.510672,-0.719340,
-       -0.000776,0.175432,-0.984491,1.500000,-0.429344,-0.702430,
+       0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
+       -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
        -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
-       0.000000,0.216323,-0.976322,1.500000,-0.510672,-0.719340,
+       0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
        -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
-       -0.336776,0.225597,-0.914160,1.412264,-0.510672,-0.704717,
-       -0.000776,0.175432,-0.984491,1.500000,-0.429344,-0.702430,
-       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.686360,
+       -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
+       -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
+       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
        -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
        -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
        -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
-       -0.000776,0.175432,-0.984491,1.500000,-0.429344,-0.702430,
+       -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
        -0.702754,0.131399,-0.699193,1.361436,-0.332687,-0.636664,
        -0.693871,0.192788,-0.693812,1.351552,-0.429344,-0.648448,
        -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
        -0.702754,0.131399,-0.699193,1.361436,-0.332687,-0.636664,
        -0.340683,0.181594,-0.922474,1.419028,-0.429344,-0.688934,
        -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
-       0.336776,0.225597,-0.914160,1.587736,-0.510672,-0.704717,
+       0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
        0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
        0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
        0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
-       0.339336,0.190036,-0.921270,1.580972,-0.429344,-0.688934,
-       0.336776,0.225597,-0.914160,1.587736,-0.510672,-0.704717,
-       0.695529,0.181420,-0.695217,1.633189,-0.328978,-0.636664,
+       0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
+       0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
+       0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
        0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
-       0.339336,0.190036,-0.921270,1.580972,-0.429344,-0.688934,
-       0.695529,0.181420,-0.695217,1.633189,-0.328978,-0.636664,
-       0.339336,0.190036,-0.921270,1.580972,-0.429344,-0.688934,
+       0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
+       0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
+       0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
        0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
        0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
-       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.686360,
-       -0.000776,0.175432,-0.984491,1.500000,-0.429344,-0.702430,
-       -0.000776,0.175432,-0.984491,1.500000,-0.429344,-0.702430,
-       0.339336,0.190036,-0.921270,1.580972,-0.429344,-0.688934,
+       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
+       -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
+       -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
+       0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
        0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
-       0.000000,0.216323,-0.976322,1.500000,-0.510672,-0.719340,
-       0.336776,0.225597,-0.914160,1.587736,-0.510672,-0.704717,
-       0.339336,0.190036,-0.921270,1.580972,-0.429344,-0.688934,
-       0.000000,0.216323,-0.976322,1.500000,-0.510672,-0.719340,
-       0.339336,0.190036,-0.921270,1.580972,-0.429344,-0.688934,
-       -0.000776,0.175432,-0.984491,1.500000,-0.429344,-0.702430,
-       0.683950,0.142900,-0.715397,1.589301,-0.085107,-0.624049,
+       0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
+       0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
+       0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
+       0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
+       0.339336,0.190036,-0.92127,1.580972,-0.429344,-0.688934,
+       -0.000776,0.175432,-0.984491,1.5,-0.429344,-0.70243,
+       0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
        0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
-       0.345572,0.118142,-0.930926,1.557226,-0.216440,-0.662619,
-       0.683950,0.142900,-0.715397,1.589301,-0.085107,-0.624049,
-       0.345572,0.118142,-0.930926,1.557226,-0.216440,-0.662619,
+       0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
+       0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
+       0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
        0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
        0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
        -0.032665,-0.015822,-0.999341,1.473124,-0.103652,-0.669158,
-       -0.005360,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
-       -0.005360,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
-       0.345572,0.118142,-0.930926,1.557226,-0.216440,-0.662619,
+       -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+       -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+       0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
        0.294772,0.058288,-0.953788,1.536493,-0.093537,-0.657881,
-       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.686360,
+       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
        0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
-       0.345572,0.118142,-0.930926,1.557226,-0.216440,-0.662619,
-       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.686360,
-       0.345572,0.118142,-0.930926,1.557226,-0.216440,-0.662619,
-       -0.005360,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+       0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
+       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
+       0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
+       -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
        0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
-       0.695529,0.181420,-0.695217,1.633189,-0.328978,-0.636664,
+       0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
        0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
        0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
-       0.345572,0.118142,-0.930926,1.557226,-0.216440,-0.662619,
+       0.345572,0.118142,-0.930926,1.557226,-0.21644,-0.662619,
        0.341595,0.155693,-0.926862,1.571427,-0.329821,-0.673936,
-       -0.714150,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
-       -0.739331,0.033050,-0.672531,1.364627,-0.227904,-0.627772,
+       -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+       -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
        -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
-       -0.714150,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+       -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
        -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
        -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
-       -0.739331,0.033050,-0.672531,1.364627,-0.227904,-0.627772,
+       -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
        -0.702754,0.131399,-0.699193,1.361436,-0.332687,-0.636664,
        -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
        -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
        -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
-       -0.739331,0.033050,-0.672531,1.364627,-0.227904,-0.627772,
-       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.686360,
-       -0.005360,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+       -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
+       -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
        -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
-       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.686360,
+       -0.003469,0.126882,-0.991912,1.497312,-0.330832,-0.68636,
        -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
        -0.347569,0.124206,-0.929392,1.423198,-0.331844,-0.673936,
-       -0.005360,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+       -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
        -0.032665,-0.015822,-0.999341,1.473124,-0.103652,-0.669158,
        -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
        -0.355153,-0.061801,-0.932763,1.409755,-0.113768,-0.657881,
        -0.356256,0.046266,-0.933242,1.421273,-0.224532,-0.662619,
-       -0.005360,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
+       -0.00536,0.065692,-0.997826,1.489249,-0.220486,-0.674234,
        -0.914159,0.225597,-0.336777,1.295283,-0.510672,-0.587736,
        -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
        -0.693871,0.192788,-0.693812,1.351552,-0.429344,-0.648448,
@@ -973,83 +973,83 @@ static const float data[]={
        -0.923459,0.178536,-0.339629,1.311066,-0.429344,-0.580972,
        -0.693871,0.192788,-0.693812,1.351552,-0.429344,-0.648448,
        -0.933761,0.111444,-0.340103,1.324378,-0.333193,-0.574544,
-       -0.995379,0.096022,-0.000000,1.312026,-0.333361,-0.500000,
-       -0.985978,0.166878,0.000000,1.297570,-0.429344,-0.500000,
-       -0.985978,0.166878,0.000000,1.297570,-0.429344,-0.500000,
+       -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
+       -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
+       -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
        -0.923459,0.178536,-0.339629,1.311066,-0.429344,-0.580972,
        -0.933761,0.111444,-0.340103,1.324378,-0.333193,-0.574544,
-       -0.976322,0.216322,0.000000,1.280660,-0.510672,-0.500000,
+       -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
        -0.914159,0.225597,-0.336777,1.295283,-0.510672,-0.587736,
        -0.923459,0.178536,-0.339629,1.311066,-0.429344,-0.580972,
-       -0.976322,0.216322,0.000000,1.280660,-0.510672,-0.500000,
+       -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
        -0.923459,0.178536,-0.339629,1.311066,-0.429344,-0.580972,
-       -0.985978,0.166878,0.000000,1.297570,-0.429344,-0.500000,
-       -0.739331,0.033050,-0.672531,1.364627,-0.227904,-0.627772,
-       -0.714150,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
+       -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
+       -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+       -0.71415,-0.110296,-0.691249,1.356947,-0.122198,-0.624049,
        -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
        -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
-       -0.960211,0.014320,-0.278910,1.330638,-0.229927,-0.569694,
-       -0.739331,0.033050,-0.672531,1.364627,-0.227904,-0.627772,
-       -0.994338,-0.106266,0.000000,1.314701,-0.128942,-0.500000,
-       -0.999919,0.012734,0.000000,1.319309,-0.230602,-0.500000,
-       -0.960211,0.014320,-0.278910,1.330638,-0.229927,-0.569694,
-       -0.994338,-0.106266,0.000000,1.314701,-0.128942,-0.500000,
-       -0.960211,0.014320,-0.278910,1.330638,-0.229927,-0.569694,
+       -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
+       -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+       -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
+       -0.999919,0.012734,0,1.319309,-0.230602,-0.5,
+       -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
+       -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
+       -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
        -0.933801,-0.132296,-0.332437,1.325262,-0.127256,-0.567663,
-       -0.995379,0.096022,-0.000000,1.312026,-0.333361,-0.500000,
+       -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
        -0.933761,0.111444,-0.340103,1.324378,-0.333193,-0.574544,
-       -0.960211,0.014320,-0.278910,1.330638,-0.229927,-0.569694,
-       -0.995379,0.096022,-0.000000,1.312026,-0.333361,-0.500000,
-       -0.960211,0.014320,-0.278910,1.330638,-0.229927,-0.569694,
-       -0.999919,0.012734,0.000000,1.319309,-0.230602,-0.500000,
+       -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
+       -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
+       -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
+       -0.999919,0.012734,0,1.319309,-0.230602,-0.5,
        -0.933761,0.111444,-0.340103,1.324378,-0.333193,-0.574544,
        -0.702754,0.131399,-0.699193,1.361436,-0.332687,-0.636664,
-       -0.739331,0.033050,-0.672531,1.364627,-0.227904,-0.627772,
-       -0.739331,0.033050,-0.672531,1.364627,-0.227904,-0.627772,
-       -0.960211,0.014320,-0.278910,1.330638,-0.229927,-0.569694,
+       -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+       -0.739331,0.03305,-0.672531,1.364627,-0.227904,-0.627772,
+       -0.960211,0.01432,-0.27891,1.330638,-0.229927,-0.569694,
        -0.933761,0.111444,-0.340103,1.324378,-0.333193,-0.574544,
        -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
        -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
-       -0.739331,0.033050,0.672531,1.364627,-0.227904,-0.372228,
-       -0.739331,0.033050,0.672531,1.364627,-0.227904,-0.372228,
-       -0.960211,0.014320,0.278910,1.330638,-0.229927,-0.430306,
+       -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
+       -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
+       -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
        -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
-       -0.739331,0.033050,0.672531,1.364627,-0.227904,-0.372228,
+       -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
        -0.702754,0.131399,0.699193,1.361436,-0.332687,-0.363336,
        -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
        -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
-       -0.960211,0.014320,0.278910,1.330638,-0.229927,-0.430306,
-       -0.739331,0.033050,0.672531,1.364627,-0.227904,-0.372228,
-       -0.995379,0.096022,-0.000000,1.312026,-0.333361,-0.500000,
-       -0.999919,0.012734,0.000000,1.319309,-0.230602,-0.500000,
-       -0.960211,0.014320,0.278910,1.330638,-0.229927,-0.430306,
-       -0.995379,0.096022,-0.000000,1.312026,-0.333361,-0.500000,
-       -0.960211,0.014320,0.278910,1.330638,-0.229927,-0.430306,
+       -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
+       -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
+       -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
+       -0.999919,0.012734,0,1.319309,-0.230602,-0.5,
+       -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
+       -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
+       -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
        -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
-       -0.994338,-0.106266,0.000000,1.314701,-0.128942,-0.500000,
+       -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
        -0.933801,-0.132296,0.332437,1.325262,-0.127256,-0.432337,
-       -0.960211,0.014320,0.278910,1.330638,-0.229927,-0.430306,
-       -0.994338,-0.106266,0.000000,1.314701,-0.128942,-0.500000,
-       -0.960211,0.014320,0.278910,1.330638,-0.229927,-0.430306,
-       -0.999919,0.012734,0.000000,1.319309,-0.230602,-0.500000,
+       -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
+       -0.994338,-0.106266,0,1.314701,-0.128942,-0.5,
+       -0.960211,0.01432,0.27891,1.330638,-0.229927,-0.430306,
+       -0.999919,0.012734,0,1.319309,-0.230602,-0.5,
        -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
-       -0.686950,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+       -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
        -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
        -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
        -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
        -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
-       -0.976322,0.216322,0.000000,1.280660,-0.510672,-0.500000,
-       -0.985978,0.166878,0.000000,1.297570,-0.429344,-0.500000,
+       -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
+       -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
        -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
-       -0.976322,0.216322,0.000000,1.280660,-0.510672,-0.500000,
+       -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
        -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
        -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
-       -0.985978,0.166878,0.000000,1.297570,-0.429344,-0.500000,
-       -0.995379,0.096022,-0.000000,1.312026,-0.333361,-0.500000,
+       -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
+       -0.995379,0.096022,0,1.312026,-0.333361,-0.5,
        -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
        -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
        -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
-       -0.985978,0.166878,0.000000,1.297570,-0.429344,-0.500000,
+       -0.985978,0.166878,0,1.29757,-0.429344,-0.5,
        -0.702754,0.131399,0.699193,1.361436,-0.332687,-0.363336,
        -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
        -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
@@ -1057,7 +1057,7 @@ static const float data[]={
        -0.923459,0.178536,0.339629,1.311066,-0.429344,-0.419028,
        -0.933761,0.111444,0.340103,1.324378,-0.333193,-0.425456,
        -0.336776,0.225598,0.914159,1.412264,-0.510672,-0.295283,
-       -0.686950,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+       -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
        -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
        -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
        -0.340683,0.181594,0.922474,1.419028,-0.429344,-0.311066,
@@ -1069,665 +1069,665 @@ static const float data[]={
        -0.340683,0.181594,0.922474,1.419028,-0.429344,-0.311066,
        -0.693871,0.192788,0.693812,1.351552,-0.429344,-0.351552,
        -0.347569,0.124206,0.929392,1.423198,-0.331844,-0.326064,
-       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.313640,
-       -0.000776,0.175432,0.984491,1.500000,-0.429344,-0.297570,
-       -0.000776,0.175432,0.984491,1.500000,-0.429344,-0.297570,
+       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
+       -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
+       -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
        -0.340683,0.181594,0.922474,1.419028,-0.429344,-0.311066,
        -0.347569,0.124206,0.929392,1.423198,-0.331844,-0.326064,
-       0.000000,0.216323,0.976322,1.500000,-0.510672,-0.280660,
+       0,0.216323,0.976322,1.5,-0.510672,-0.28066,
        -0.336776,0.225598,0.914159,1.412264,-0.510672,-0.295283,
        -0.340683,0.181594,0.922474,1.419028,-0.429344,-0.311066,
-       0.000000,0.216323,0.976322,1.500000,-0.510672,-0.280660,
+       0,0.216323,0.976322,1.5,-0.510672,-0.28066,
        -0.340683,0.181594,0.922474,1.419028,-0.429344,-0.311066,
-       -0.000776,0.175432,0.984491,1.500000,-0.429344,-0.297570,
+       -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
        -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
        -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
        -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
        -0.714149,-0.110296,0.691249,1.356947,-0.122198,-0.375951,
        -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
-       -0.739331,0.033050,0.672531,1.364627,-0.227904,-0.372228,
+       -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
        -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
        -0.032665,-0.015822,0.999341,1.473124,-0.103652,-0.330842,
        -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
        -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
        -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
        -0.355153,-0.061801,0.932763,1.409755,-0.113768,-0.342119,
-       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.313640,
+       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
        -0.347569,0.124206,0.929392,1.423198,-0.331844,-0.326064,
        -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
-       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.313640,
+       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
        -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
        -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
        -0.347569,0.124206,0.929392,1.423198,-0.331844,-0.326064,
        -0.702754,0.131399,0.699193,1.361436,-0.332687,-0.363336,
-       -0.739331,0.033050,0.672531,1.364627,-0.227904,-0.372228,
-       -0.739331,0.033050,0.672531,1.364627,-0.227904,-0.372228,
+       -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
+       -0.739331,0.03305,0.672531,1.364627,-0.227904,-0.372228,
        -0.356256,0.046266,0.933242,1.421273,-0.224532,-0.337381,
        -0.347569,0.124206,0.929392,1.423198,-0.331844,-0.326064,
-       0.683950,0.142900,0.715397,1.589301,-0.085107,-0.375951,
+       0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
        0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
-       0.345572,0.118142,0.930926,1.557226,-0.216440,-0.337381,
-       0.683950,0.142900,0.715397,1.589301,-0.085107,-0.375951,
-       0.345572,0.118142,0.930926,1.557226,-0.216440,-0.337381,
+       0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
+       0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
+       0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
        0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
        0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
-       0.695529,0.181420,0.695217,1.633189,-0.328978,-0.363336,
+       0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
        0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
        0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
-       0.345572,0.118142,0.930926,1.557226,-0.216440,-0.337381,
+       0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
        0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
-       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.313640,
+       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
        -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
-       0.345572,0.118142,0.930926,1.557226,-0.216440,-0.337381,
-       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.313640,
-       0.345572,0.118142,0.930926,1.557226,-0.216440,-0.337381,
+       0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
+       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
+       0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
        0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
        -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
        -0.032665,-0.015822,0.999341,1.473124,-0.103652,-0.330842,
        0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
        0.294772,0.058287,0.953788,1.536493,-0.093537,-0.342119,
-       0.345572,0.118142,0.930926,1.557226,-0.216440,-0.337381,
+       0.345572,0.118142,0.930926,1.557226,-0.21644,-0.337381,
        -0.005359,0.065692,0.997826,1.489249,-0.220486,-0.325766,
        0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
-       0.686950,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+       0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
        0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
        0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
        0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
        0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
-       0.000000,0.216323,0.976322,1.500000,-0.510672,-0.280660,
-       -0.000776,0.175432,0.984491,1.500000,-0.429344,-0.297570,
+       0,0.216323,0.976322,1.5,-0.510672,-0.28066,
+       -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
        0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
-       0.000000,0.216323,0.976322,1.500000,-0.510672,-0.280660,
+       0,0.216323,0.976322,1.5,-0.510672,-0.28066,
        0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
        0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
-       -0.000776,0.175432,0.984491,1.500000,-0.429344,-0.297570,
-       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.313640,
+       -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
+       -0.003469,0.126882,0.991912,1.497312,-0.330832,-0.31364,
        0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
        0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
        0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
-       -0.000776,0.175432,0.984491,1.500000,-0.429344,-0.297570,
-       0.695529,0.181420,0.695217,1.633189,-0.328978,-0.363336,
+       -0.000776,0.175432,0.984491,1.5,-0.429344,-0.29757,
+       0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
        0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
        0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
-       0.695529,0.181420,0.695217,1.633189,-0.328978,-0.363336,
+       0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
        0.339336,0.190036,0.921269,1.580972,-0.429344,-0.311066,
        0.341595,0.155693,0.926862,1.571427,-0.329821,-0.326064,
        0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
-       0.686950,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+       0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
        0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
        0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
-       0.919751,0.198680,0.338503,1.688934,-0.429344,-0.419028,
+       0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
        0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
-       0.695529,0.181420,0.695217,1.633189,-0.328978,-0.363336,
+       0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
        0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
-       0.919751,0.198680,0.338503,1.688934,-0.429344,-0.419028,
-       0.695529,0.181420,0.695217,1.633189,-0.328978,-0.363336,
-       0.919751,0.198680,0.338503,1.688934,-0.429344,-0.419028,
+       0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
+       0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
+       0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
        0.692333,0.202929,0.692456,1.648448,-0.429344,-0.351552,
        0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
-       0.981065,0.193680,-0.000000,1.682599,-0.328303,-0.500000,
-       0.980577,0.196136,0.000000,1.702430,-0.429344,-0.500000,
-       0.980577,0.196136,0.000000,1.702430,-0.429344,-0.500000,
-       0.919751,0.198680,0.338503,1.688934,-0.429344,-0.419028,
+       0.981065,0.19368,0,1.682599,-0.328303,-0.5,
+       0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+       0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+       0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
        0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
-       0.976322,0.216322,0.000000,1.719340,-0.510672,-0.500000,
+       0.976322,0.216322,0,1.71934,-0.510672,-0.5,
        0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
-       0.919751,0.198680,0.338503,1.688934,-0.429344,-0.419028,
-       0.976322,0.216322,0.000000,1.719340,-0.510672,-0.500000,
-       0.919751,0.198680,0.338503,1.688934,-0.429344,-0.419028,
-       0.980577,0.196136,0.000000,1.702430,-0.429344,-0.500000,
-       0.683950,0.142900,0.715397,1.589301,-0.085107,-0.375951,
-       0.923419,0.197980,0.328787,1.620986,-0.080049,-0.432337,
+       0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
+       0.976322,0.216322,0,1.71934,-0.510672,-0.5,
+       0.919751,0.19868,0.338503,1.688934,-0.429344,-0.419028,
+       0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+       0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
+       0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
        0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
-       0.683950,0.142900,0.715397,1.589301,-0.085107,-0.375951,
+       0.68395,0.1429,0.715397,1.589301,-0.085107,-0.375951,
        0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
        0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
-       0.923419,0.197980,0.328787,1.620986,-0.080049,-0.432337,
-       0.976556,0.215262,0.000000,1.631547,-0.078363,-0.500000,
-       0.979589,0.201011,0.000000,1.659190,-0.210370,-0.500000,
-       0.979589,0.201011,0.000000,1.659190,-0.210370,-0.500000,
+       0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
+       0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+       0.979589,0.201011,0,1.65919,-0.21037,-0.5,
+       0.979589,0.201011,0,1.65919,-0.21037,-0.5,
        0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
-       0.923419,0.197980,0.328787,1.620986,-0.080049,-0.432337,
-       0.981065,0.193680,-0.000000,1.682599,-0.328303,-0.500000,
+       0.923419,0.19798,0.328787,1.620986,-0.080049,-0.432337,
+       0.981065,0.19368,0,1.682599,-0.328303,-0.5,
        0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
        0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
-       0.981065,0.193680,-0.000000,1.682599,-0.328303,-0.500000,
+       0.981065,0.19368,0,1.682599,-0.328303,-0.5,
        0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
-       0.979589,0.201011,0.000000,1.659190,-0.210370,-0.500000,
+       0.979589,0.201011,0,1.65919,-0.21037,-0.5,
        0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
-       0.695529,0.181420,0.695217,1.633189,-0.328978,-0.363336,
+       0.695529,0.18142,0.695217,1.633189,-0.328978,-0.363336,
        0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
        0.699329,0.164944,0.695509,1.613873,-0.213068,-0.372228,
        0.922767,0.190694,0.334869,1.647861,-0.211045,-0.430306,
        0.921783,0.189963,0.337979,1.670246,-0.328472,-0.425456,
-       0.683950,0.142900,-0.715397,1.589301,-0.085107,-0.624049,
+       0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
        0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
        0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
-       0.683950,0.142900,-0.715397,1.589301,-0.085107,-0.624049,
+       0.68395,0.1429,-0.715397,1.589301,-0.085107,-0.624049,
        0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
-       0.923419,0.197980,-0.328787,1.620986,-0.080049,-0.567663,
+       0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
        0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
-       0.695529,0.181420,-0.695217,1.633189,-0.328978,-0.636664,
+       0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
        0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
        0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
        0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
        0.699329,0.164944,-0.695509,1.613873,-0.213068,-0.627772,
-       0.981065,0.193680,-0.000000,1.682599,-0.328303,-0.500000,
-       0.979589,0.201011,0.000000,1.659190,-0.210370,-0.500000,
+       0.981065,0.19368,0,1.682599,-0.328303,-0.5,
+       0.979589,0.201011,0,1.65919,-0.21037,-0.5,
        0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
-       0.981065,0.193680,-0.000000,1.682599,-0.328303,-0.500000,
+       0.981065,0.19368,0,1.682599,-0.328303,-0.5,
        0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
        0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
-       0.979589,0.201011,0.000000,1.659190,-0.210370,-0.500000,
-       0.976556,0.215262,0.000000,1.631547,-0.078363,-0.500000,
-       0.923419,0.197980,-0.328787,1.620986,-0.080049,-0.567663,
-       0.923419,0.197980,-0.328787,1.620986,-0.080049,-0.567663,
+       0.979589,0.201011,0,1.65919,-0.21037,-0.5,
+       0.976556,0.215262,0,1.631547,-0.078363,-0.5,
+       0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
+       0.923419,0.19798,-0.328787,1.620986,-0.080049,-0.567663,
        0.922767,0.190694,-0.334869,1.647861,-0.211045,-0.569694,
-       0.979589,0.201011,0.000000,1.659190,-0.210370,-0.500000,
+       0.979589,0.201011,0,1.65919,-0.21037,-0.5,
        0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
        0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
        0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
        0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
-       0.919751,0.198680,-0.338503,1.688934,-0.429344,-0.580972,
+       0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
        0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
-       0.976322,0.216322,0.000000,1.719340,-0.510672,-0.500000,
-       0.980577,0.196136,0.000000,1.702430,-0.429344,-0.500000,
-       0.919751,0.198680,-0.338503,1.688934,-0.429344,-0.580972,
-       0.976322,0.216322,0.000000,1.719340,-0.510672,-0.500000,
-       0.919751,0.198680,-0.338503,1.688934,-0.429344,-0.580972,
+       0.976322,0.216322,0,1.71934,-0.510672,-0.5,
+       0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+       0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
+       0.976322,0.216322,0,1.71934,-0.510672,-0.5,
+       0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
        0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
-       0.980577,0.196136,0.000000,1.702430,-0.429344,-0.500000,
-       0.981065,0.193680,-0.000000,1.682599,-0.328303,-0.500000,
+       0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+       0.981065,0.19368,0,1.682599,-0.328303,-0.5,
        0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
        0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
-       0.919751,0.198680,-0.338503,1.688934,-0.429344,-0.580972,
-       0.980577,0.196136,0.000000,1.702430,-0.429344,-0.500000,
-       0.695529,0.181420,-0.695217,1.633189,-0.328978,-0.636664,
+       0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
+       0.980577,0.196136,0,1.70243,-0.429344,-0.5,
+       0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
        0.692333,0.202928,-0.692456,1.648448,-0.429344,-0.648448,
-       0.919751,0.198680,-0.338503,1.688934,-0.429344,-0.580972,
-       0.695529,0.181420,-0.695217,1.633189,-0.328978,-0.636664,
-       0.919751,0.198680,-0.338503,1.688934,-0.429344,-0.580972,
+       0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
+       0.695529,0.18142,-0.695217,1.633189,-0.328978,-0.636664,
+       0.919751,0.19868,-0.338503,1.688934,-0.429344,-0.580972,
        0.921783,0.189963,-0.337979,1.670246,-0.328472,-0.574544,
-       0.686950,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+       0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
        0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
        0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
-       0.686950,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+       0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
        0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
-       0.700149,0.139938,0.700149,1.671590,-0.569469,-0.328410,
+       0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
        0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
-       0.976322,0.216322,0.000000,1.719340,-0.510672,-0.500000,
-       0.981432,0.191813,0.000000,1.733986,-0.569469,-0.500000,
-       0.981432,0.191813,0.000000,1.733986,-0.569469,-0.500000,
+       0.976322,0.216322,0,1.71934,-0.510672,-0.5,
+       0.981432,0.191813,0,1.733986,-0.569469,-0.5,
+       0.981432,0.191813,0,1.733986,-0.569469,-0.5,
        0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
        0.914159,0.225597,0.336777,1.704717,-0.510672,-0.412264,
-       0.968451,-0.249205,-0.000000,1.737621,-0.609501,-0.500000,
+       0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
        0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
        0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
-       0.968451,-0.249205,-0.000000,1.737621,-0.609501,-0.500000,
+       0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
        0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
-       0.981432,0.191813,0.000000,1.733986,-0.569469,-0.500000,
+       0.981432,0.191813,0,1.733986,-0.569469,-0.5,
        0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
        0.676292,-0.291987,0.676293,1.673866,-0.608893,-0.326134,
-       0.700149,0.139938,0.700149,1.671590,-0.569469,-0.328410,
-       0.700149,0.139938,0.700149,1.671590,-0.569469,-0.328410,
+       0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
+       0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
        0.925394,0.167122,0.340171,1.718387,-0.569469,-0.406406,
        0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
        0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
-       0.700149,0.139938,-0.700149,1.671590,-0.569469,-0.671590,
+       0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
        0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
        0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
        0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
        0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
-       0.700149,0.139938,-0.700149,1.671590,-0.569469,-0.671590,
+       0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
        0.676292,-0.291988,-0.676293,1.673866,-0.608893,-0.673866,
        0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
        0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
        0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
-       0.700149,0.139938,-0.700149,1.671590,-0.569469,-0.671590,
-       0.968451,-0.249205,-0.000000,1.737621,-0.609501,-0.500000,
-       0.981432,0.191813,0.000000,1.733986,-0.569469,-0.500000,
+       0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
+       0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+       0.981432,0.191813,0,1.733986,-0.569469,-0.5,
        0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
-       0.968451,-0.249205,-0.000000,1.737621,-0.609501,-0.500000,
+       0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
        0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
        0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
-       0.981432,0.191813,0.000000,1.733986,-0.569469,-0.500000,
-       0.976322,0.216322,0.000000,1.719340,-0.510672,-0.500000,
+       0.981432,0.191813,0,1.733986,-0.569469,-0.5,
+       0.976322,0.216322,0,1.71934,-0.510672,-0.5,
        0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
        0.914159,0.225597,-0.336777,1.704717,-0.510672,-0.587736,
        0.925394,0.167122,-0.340171,1.718387,-0.569469,-0.593594,
-       0.981432,0.191813,0.000000,1.733986,-0.569469,-0.500000,
+       0.981432,0.191813,0,1.733986,-0.569469,-0.5,
        0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
-       0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.582500,
-       0.529853,-0.826565,-0.189859,1.706000,-0.633319,-0.587500,
+       0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.5825,
+       0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
        0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
-       0.529853,-0.826565,-0.189859,1.706000,-0.633319,-0.587500,
+       0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
        0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
-       0.244558,-0.969635,0.000000,1.677562,-0.649161,-0.500000,
-       0.611773,-0.791034,0.000000,1.721500,-0.634535,-0.500000,
-       0.529853,-0.826565,-0.189859,1.706000,-0.633319,-0.587500,
-       0.244558,-0.969635,0.000000,1.677562,-0.649161,-0.500000,
-       0.529853,-0.826565,-0.189859,1.706000,-0.633319,-0.587500,
-       0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.582500,
-       0.968451,-0.249205,-0.000000,1.737621,-0.609501,-0.500000,
+       0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+       0.611773,-0.791034,0,1.7215,-0.634535,-0.5,
+       0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
+       0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+       0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
+       0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.5825,
+       0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
        0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
-       0.529853,-0.826565,-0.189859,1.706000,-0.633319,-0.587500,
-       0.968451,-0.249205,-0.000000,1.737621,-0.609501,-0.500000,
-       0.529853,-0.826565,-0.189859,1.706000,-0.633319,-0.587500,
-       0.611773,-0.791034,0.000000,1.721500,-0.634535,-0.500000,
+       0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
+       0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+       0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
+       0.611773,-0.791034,0,1.7215,-0.634535,-0.5,
        0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
        0.676292,-0.291988,-0.676293,1.673866,-0.608893,-0.673866,
        0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
        0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
-       0.529853,-0.826565,-0.189859,1.706000,-0.633319,-0.587500,
+       0.529853,-0.826565,-0.189859,1.706,-0.633319,-0.5875,
        0.878536,-0.271725,-0.392861,1.721597,-0.609197,-0.594774,
        0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
        0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
-       0.529853,-0.826565,0.189859,1.706000,-0.633319,-0.412500,
+       0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
        0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
-       0.529853,-0.826565,0.189859,1.706000,-0.633319,-0.412500,
-       0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.417500,
+       0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
+       0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.4175,
        0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
        0.676292,-0.291987,0.676293,1.673866,-0.608893,-0.326134,
        0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
        0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
-       0.529853,-0.826565,0.189859,1.706000,-0.633319,-0.412500,
+       0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
        0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
-       0.968451,-0.249205,-0.000000,1.737621,-0.609501,-0.500000,
-       0.611773,-0.791034,0.000000,1.721500,-0.634535,-0.500000,
-       0.529853,-0.826565,0.189859,1.706000,-0.633319,-0.412500,
-       0.968451,-0.249205,-0.000000,1.737621,-0.609501,-0.500000,
-       0.529853,-0.826565,0.189859,1.706000,-0.633319,-0.412500,
+       0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+       0.611773,-0.791034,0,1.7215,-0.634535,-0.5,
+       0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
+       0.968451,-0.249205,0,1.737621,-0.609501,-0.5,
+       0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
        0.878536,-0.271725,0.392861,1.721597,-0.609197,-0.405226,
-       0.244558,-0.969635,0.000000,1.677562,-0.649161,-0.500000,
-       0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.417500,
-       0.529853,-0.826565,0.189859,1.706000,-0.633319,-0.412500,
-       0.244558,-0.969635,0.000000,1.677562,-0.649161,-0.500000,
-       0.529853,-0.826565,0.189859,1.706000,-0.633319,-0.412500,
-       0.611773,-0.791034,0.000000,1.721500,-0.634535,-0.500000,
+       0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+       0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.4175,
+       0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
+       0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+       0.529853,-0.826565,0.189859,1.706,-0.633319,-0.4125,
+       0.611773,-0.791034,0,1.7215,-0.634535,-0.5,
        0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
-       0.336776,0.225597,-0.914160,1.587736,-0.510672,-0.704717,
+       0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
        0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
        0.686951,0.237061,-0.686951,1.660849,-0.510672,-0.660849,
        0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
-       0.700149,0.139938,-0.700149,1.671590,-0.569469,-0.671590,
-       0.336776,0.225597,-0.914160,1.587736,-0.510672,-0.704717,
-       0.000000,0.216323,-0.976322,1.500000,-0.510672,-0.719340,
-       0.000000,0.191813,-0.981432,1.500000,-0.569469,-0.733986,
-       0.000000,0.191813,-0.981432,1.500000,-0.569469,-0.733986,
+       0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
+       0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
+       0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
+       0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
+       0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
        0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
-       0.336776,0.225597,-0.914160,1.587736,-0.510672,-0.704717,
-       0.000000,-0.249205,-0.968451,1.500000,-0.609501,-0.737621,
+       0.336776,0.225597,-0.91416,1.587736,-0.510672,-0.704717,
+       0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
        0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
        0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
-       0.000000,-0.249205,-0.968451,1.500000,-0.609501,-0.737621,
+       0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
        0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
-       0.000000,0.191813,-0.981432,1.500000,-0.569469,-0.733986,
+       0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
        0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
        0.676292,-0.291988,-0.676293,1.673866,-0.608893,-0.673866,
-       0.700149,0.139938,-0.700149,1.671590,-0.569469,-0.671590,
-       0.700149,0.139938,-0.700149,1.671590,-0.569469,-0.671590,
+       0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
+       0.700149,0.139938,-0.700149,1.67159,-0.569469,-0.67159,
        0.340171,0.167122,-0.925394,1.593594,-0.569469,-0.718387,
        0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
        -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
-       -0.700149,0.139938,-0.700149,1.328410,-0.569469,-0.671590,
+       -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
        -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
        -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
        -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
-       -0.336776,0.225597,-0.914160,1.412264,-0.510672,-0.704717,
-       -0.700149,0.139938,-0.700149,1.328410,-0.569469,-0.671590,
+       -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
+       -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
        -0.676292,-0.291988,-0.676293,1.326134,-0.608893,-0.673866,
        -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
        -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
        -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
-       -0.700149,0.139938,-0.700149,1.328410,-0.569469,-0.671590,
-       0.000000,-0.249205,-0.968451,1.500000,-0.609501,-0.737621,
-       0.000000,0.191813,-0.981432,1.500000,-0.569469,-0.733986,
+       -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
+       0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+       0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
        -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
-       0.000000,-0.249205,-0.968451,1.500000,-0.609501,-0.737621,
+       0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
        -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
        -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
-       0.000000,0.191813,-0.981432,1.500000,-0.569469,-0.733986,
-       0.000000,0.216323,-0.976322,1.500000,-0.510672,-0.719340,
-       -0.336776,0.225597,-0.914160,1.412264,-0.510672,-0.704717,
-       -0.336776,0.225597,-0.914160,1.412264,-0.510672,-0.704717,
+       0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
+       0,0.216323,-0.976322,1.5,-0.510672,-0.71934,
+       -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
+       -0.336776,0.225597,-0.91416,1.412264,-0.510672,-0.704717,
        -0.340171,0.167122,-0.925394,1.406406,-0.569469,-0.718387,
-       0.000000,0.191813,-0.981432,1.500000,-0.569469,-0.733986,
+       0,0.191813,-0.981432,1.5,-0.569469,-0.733986,
        -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
-       -0.100277,-0.976969,-0.188350,1.417500,-0.646948,-0.664625,
-       -0.189859,-0.826565,-0.529853,1.412500,-0.633319,-0.706000,
+       -0.100277,-0.976969,-0.18835,1.4175,-0.646948,-0.664625,
+       -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
        -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
-       -0.189859,-0.826565,-0.529853,1.412500,-0.633319,-0.706000,
+       -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
        -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
-       -0.000000,-0.969635,-0.244558,1.500000,-0.649161,-0.677562,
-       0.000000,-0.791034,-0.611773,1.500000,-0.634535,-0.721500,
-       -0.189859,-0.826565,-0.529853,1.412500,-0.633319,-0.706000,
-       -0.000000,-0.969635,-0.244558,1.500000,-0.649161,-0.677562,
-       -0.189859,-0.826565,-0.529853,1.412500,-0.633319,-0.706000,
-       -0.100277,-0.976969,-0.188350,1.417500,-0.646948,-0.664625,
-       0.000000,-0.249205,-0.968451,1.500000,-0.609501,-0.737621,
+       0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+       0,-0.791034,-0.611773,1.5,-0.634535,-0.7215,
+       -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
+       0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+       -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
+       -0.100277,-0.976969,-0.18835,1.4175,-0.646948,-0.664625,
+       0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
        -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
-       -0.189859,-0.826565,-0.529853,1.412500,-0.633319,-0.706000,
-       0.000000,-0.249205,-0.968451,1.500000,-0.609501,-0.737621,
-       -0.189859,-0.826565,-0.529853,1.412500,-0.633319,-0.706000,
-       0.000000,-0.791034,-0.611773,1.500000,-0.634535,-0.721500,
+       -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
+       0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+       -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
+       0,-0.791034,-0.611773,1.5,-0.634535,-0.7215,
        -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
        -0.676292,-0.291988,-0.676293,1.326134,-0.608893,-0.673866,
        -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
        -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
-       -0.189859,-0.826565,-0.529853,1.412500,-0.633319,-0.706000,
+       -0.189859,-0.826565,-0.529853,1.4125,-0.633319,-0.706,
        -0.392861,-0.271725,-0.878536,1.405226,-0.609197,-0.721597,
        0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
        0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
-       0.189859,-0.826565,-0.529853,1.587500,-0.633319,-0.706000,
+       0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
        0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
-       0.189859,-0.826565,-0.529853,1.587500,-0.633319,-0.706000,
-       0.100277,-0.976969,-0.188350,1.582500,-0.646948,-0.664625,
+       0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
+       0.100277,-0.976969,-0.18835,1.5825,-0.646948,-0.664625,
        0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
        0.676292,-0.291988,-0.676293,1.673866,-0.608893,-0.673866,
        0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
        0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
-       0.189859,-0.826565,-0.529853,1.587500,-0.633319,-0.706000,
+       0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
        0.467068,-0.750796,-0.467068,1.660875,-0.632104,-0.660875,
-       0.000000,-0.249205,-0.968451,1.500000,-0.609501,-0.737621,
-       0.000000,-0.791034,-0.611773,1.500000,-0.634535,-0.721500,
-       0.189859,-0.826565,-0.529853,1.587500,-0.633319,-0.706000,
-       0.000000,-0.249205,-0.968451,1.500000,-0.609501,-0.737621,
-       0.189859,-0.826565,-0.529853,1.587500,-0.633319,-0.706000,
+       0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+       0,-0.791034,-0.611773,1.5,-0.634535,-0.7215,
+       0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
+       0,-0.249205,-0.968451,1.5,-0.609501,-0.737621,
+       0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
        0.392861,-0.271725,-0.878536,1.594774,-0.609197,-0.721597,
-       -0.000000,-0.969635,-0.244558,1.500000,-0.649161,-0.677562,
-       0.100277,-0.976969,-0.188350,1.582500,-0.646948,-0.664625,
-       0.189859,-0.826565,-0.529853,1.587500,-0.633319,-0.706000,
-       -0.000000,-0.969635,-0.244558,1.500000,-0.649161,-0.677562,
-       0.189859,-0.826565,-0.529853,1.587500,-0.633319,-0.706000,
-       0.000000,-0.791034,-0.611773,1.500000,-0.634535,-0.721500,
+       0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+       0.100277,-0.976969,-0.18835,1.5825,-0.646948,-0.664625,
+       0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
+       0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+       0.189859,-0.826565,-0.529853,1.5875,-0.633319,-0.706,
+       0,-0.791034,-0.611773,1.5,-0.634535,-0.7215,
        -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
        -0.914159,0.225597,-0.336777,1.295283,-0.510672,-0.587736,
        -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
        -0.686951,0.237061,-0.686951,1.339151,-0.510672,-0.660849,
        -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
-       -0.700149,0.139938,-0.700149,1.328410,-0.569469,-0.671590,
+       -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
        -0.914159,0.225597,-0.336777,1.295283,-0.510672,-0.587736,
-       -0.976322,0.216322,0.000000,1.280660,-0.510672,-0.500000,
-       -0.981432,0.191813,-0.000000,1.266014,-0.569469,-0.500000,
-       -0.981432,0.191813,-0.000000,1.266014,-0.569469,-0.500000,
+       -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
+       -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
+       -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
        -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
        -0.914159,0.225597,-0.336777,1.295283,-0.510672,-0.587736,
-       -0.968451,-0.249205,0.000000,1.262379,-0.609501,-0.500000,
+       -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
        -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
        -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
-       -0.968451,-0.249205,0.000000,1.262379,-0.609501,-0.500000,
+       -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
        -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
-       -0.981432,0.191813,-0.000000,1.266014,-0.569469,-0.500000,
+       -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
        -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
        -0.676292,-0.291988,-0.676293,1.326134,-0.608893,-0.673866,
-       -0.700149,0.139938,-0.700149,1.328410,-0.569469,-0.671590,
-       -0.700149,0.139938,-0.700149,1.328410,-0.569469,-0.671590,
+       -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
+       -0.700149,0.139938,-0.700149,1.32841,-0.569469,-0.67159,
        -0.925394,0.167122,-0.340171,1.281613,-0.569469,-0.593594,
        -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
-       -0.686950,0.237061,0.686951,1.339151,-0.510672,-0.339151,
-       -0.700149,0.139938,0.700149,1.328410,-0.569469,-0.328410,
+       -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+       -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
        -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
-       -0.686950,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+       -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
        -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
        -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
-       -0.700149,0.139938,0.700149,1.328410,-0.569469,-0.328410,
+       -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
        -0.676292,-0.291987,0.676293,1.326134,-0.608893,-0.326134,
        -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
        -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
        -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
-       -0.700149,0.139938,0.700149,1.328410,-0.569469,-0.328410,
-       -0.968451,-0.249205,0.000000,1.262379,-0.609501,-0.500000,
-       -0.981432,0.191813,-0.000000,1.266014,-0.569469,-0.500000,
+       -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
+       -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+       -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
        -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
-       -0.968451,-0.249205,0.000000,1.262379,-0.609501,-0.500000,
+       -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
        -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
        -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
-       -0.981432,0.191813,-0.000000,1.266014,-0.569469,-0.500000,
-       -0.976322,0.216322,0.000000,1.280660,-0.510672,-0.500000,
+       -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
+       -0.976322,0.216322,0,1.28066,-0.510672,-0.5,
        -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
        -0.914159,0.225597,0.336777,1.295283,-0.510672,-0.412264,
        -0.925394,0.167122,0.340171,1.281613,-0.569469,-0.406406,
-       -0.981432,0.191813,-0.000000,1.266014,-0.569469,-0.500000,
+       -0.981432,0.191813,0,1.266014,-0.569469,-0.5,
        -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
-       -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.417500,
-       -0.529853,-0.826565,0.189859,1.294000,-0.633319,-0.412500,
+       -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.4175,
+       -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
        -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
-       -0.529853,-0.826565,0.189859,1.294000,-0.633319,-0.412500,
+       -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
        -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
-       -0.244558,-0.969635,0.000000,1.322438,-0.649161,-0.500000,
-       -0.611773,-0.791034,0.000000,1.278500,-0.634535,-0.500000,
-       -0.529853,-0.826565,0.189859,1.294000,-0.633319,-0.412500,
-       -0.244558,-0.969635,0.000000,1.322438,-0.649161,-0.500000,
-       -0.529853,-0.826565,0.189859,1.294000,-0.633319,-0.412500,
-       -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.417500,
-       -0.968451,-0.249205,0.000000,1.262379,-0.609501,-0.500000,
+       -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+       -0.611773,-0.791034,0,1.2785,-0.634535,-0.5,
+       -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
+       -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+       -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
+       -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.4175,
+       -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
        -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
-       -0.529853,-0.826565,0.189859,1.294000,-0.633319,-0.412500,
-       -0.968451,-0.249205,0.000000,1.262379,-0.609501,-0.500000,
-       -0.529853,-0.826565,0.189859,1.294000,-0.633319,-0.412500,
-       -0.611773,-0.791034,0.000000,1.278500,-0.634535,-0.500000,
+       -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
+       -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+       -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
+       -0.611773,-0.791034,0,1.2785,-0.634535,-0.5,
        -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
        -0.676292,-0.291987,0.676293,1.326134,-0.608893,-0.326134,
        -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
        -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
-       -0.529853,-0.826565,0.189859,1.294000,-0.633319,-0.412500,
+       -0.529853,-0.826565,0.189859,1.294,-0.633319,-0.4125,
        -0.878536,-0.271725,0.392861,1.278403,-0.609197,-0.405226,
        -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
        -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
-       -0.529853,-0.826565,-0.189859,1.294000,-0.633319,-0.587500,
+       -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
        -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
-       -0.529853,-0.826565,-0.189859,1.294000,-0.633319,-0.587500,
-       -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.582500,
+       -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
+       -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.5825,
        -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
        -0.676292,-0.291988,-0.676293,1.326134,-0.608893,-0.673866,
        -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
        -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
-       -0.529853,-0.826565,-0.189859,1.294000,-0.633319,-0.587500,
+       -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
        -0.467068,-0.750796,-0.467068,1.339125,-0.632104,-0.660875,
-       -0.968451,-0.249205,0.000000,1.262379,-0.609501,-0.500000,
-       -0.611773,-0.791034,0.000000,1.278500,-0.634535,-0.500000,
-       -0.529853,-0.826565,-0.189859,1.294000,-0.633319,-0.587500,
-       -0.968451,-0.249205,0.000000,1.262379,-0.609501,-0.500000,
-       -0.529853,-0.826565,-0.189859,1.294000,-0.633319,-0.587500,
+       -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+       -0.611773,-0.791034,0,1.2785,-0.634535,-0.5,
+       -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
+       -0.968451,-0.249205,0,1.262379,-0.609501,-0.5,
+       -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
        -0.878536,-0.271725,-0.392861,1.278403,-0.609197,-0.594774,
-       -0.244558,-0.969635,0.000000,1.322438,-0.649161,-0.500000,
-       -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.582500,
-       -0.529853,-0.826565,-0.189859,1.294000,-0.633319,-0.587500,
-       -0.244558,-0.969635,0.000000,1.322438,-0.649161,-0.500000,
-       -0.529853,-0.826565,-0.189859,1.294000,-0.633319,-0.587500,
-       -0.611773,-0.791034,0.000000,1.278500,-0.634535,-0.500000,
-       -0.686950,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+       -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+       -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.5825,
+       -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
+       -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+       -0.529853,-0.826565,-0.189859,1.294,-0.633319,-0.5875,
+       -0.611773,-0.791034,0,1.2785,-0.634535,-0.5,
+       -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
        -0.336776,0.225598,0.914159,1.412264,-0.510672,-0.295283,
        -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
-       -0.686950,0.237061,0.686951,1.339151,-0.510672,-0.339151,
+       -0.68695,0.237061,0.686951,1.339151,-0.510672,-0.339151,
        -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
-       -0.700149,0.139938,0.700149,1.328410,-0.569469,-0.328410,
+       -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
        -0.336776,0.225598,0.914159,1.412264,-0.510672,-0.295283,
-       0.000000,0.216323,0.976322,1.500000,-0.510672,-0.280660,
-       -0.000000,0.191813,0.981432,1.500000,-0.569469,-0.266014,
-       -0.000000,0.191813,0.981432,1.500000,-0.569469,-0.266014,
+       0,0.216323,0.976322,1.5,-0.510672,-0.28066,
+       0,0.191813,0.981432,1.5,-0.569469,-0.266014,
+       0,0.191813,0.981432,1.5,-0.569469,-0.266014,
        -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
        -0.336776,0.225598,0.914159,1.412264,-0.510672,-0.295283,
-       0.000000,-0.249205,0.968451,1.500000,-0.609501,-0.262379,
+       0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
        -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
        -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
-       0.000000,-0.249205,0.968451,1.500000,-0.609501,-0.262379,
+       0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
        -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
-       -0.000000,0.191813,0.981432,1.500000,-0.569469,-0.266014,
+       0,0.191813,0.981432,1.5,-0.569469,-0.266014,
        -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
        -0.676292,-0.291987,0.676293,1.326134,-0.608893,-0.326134,
-       -0.700149,0.139938,0.700149,1.328410,-0.569469,-0.328410,
-       -0.700149,0.139938,0.700149,1.328410,-0.569469,-0.328410,
+       -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
+       -0.700149,0.139938,0.700149,1.32841,-0.569469,-0.32841,
        -0.340171,0.167122,0.925394,1.406406,-0.569469,-0.281613,
        -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
-       0.686950,0.237061,0.686951,1.660849,-0.510672,-0.339151,
-       0.700149,0.139938,0.700149,1.671590,-0.569469,-0.328410,
+       0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+       0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
        0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
-       0.686950,0.237061,0.686951,1.660849,-0.510672,-0.339151,
+       0.68695,0.237061,0.686951,1.660849,-0.510672,-0.339151,
        0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
        0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
-       0.700149,0.139938,0.700149,1.671590,-0.569469,-0.328410,
+       0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
        0.676292,-0.291987,0.676293,1.673866,-0.608893,-0.326134,
        0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
        0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
        0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
-       0.700149,0.139938,0.700149,1.671590,-0.569469,-0.328410,
-       0.000000,-0.249205,0.968451,1.500000,-0.609501,-0.262379,
-       -0.000000,0.191813,0.981432,1.500000,-0.569469,-0.266014,
+       0.700149,0.139938,0.700149,1.67159,-0.569469,-0.32841,
+       0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+       0,0.191813,0.981432,1.5,-0.569469,-0.266014,
        0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
-       0.000000,-0.249205,0.968451,1.500000,-0.609501,-0.262379,
+       0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
        0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
        0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
-       -0.000000,0.191813,0.981432,1.500000,-0.569469,-0.266014,
-       0.000000,0.216323,0.976322,1.500000,-0.510672,-0.280660,
+       0,0.191813,0.981432,1.5,-0.569469,-0.266014,
+       0,0.216323,0.976322,1.5,-0.510672,-0.28066,
        0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
        0.336776,0.225598,0.914159,1.587736,-0.510672,-0.295283,
        0.340171,0.167122,0.925394,1.593594,-0.569469,-0.281613,
-       -0.000000,0.191813,0.981432,1.500000,-0.569469,-0.266014,
+       0,0.191813,0.981432,1.5,-0.569469,-0.266014,
        0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
-       0.100277,-0.976969,0.188350,1.582500,-0.646948,-0.335375,
-       0.189859,-0.826565,0.529853,1.587500,-0.633319,-0.294000,
+       0.100277,-0.976969,0.18835,1.5825,-0.646948,-0.335375,
+       0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
        0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
-       0.189859,-0.826565,0.529853,1.587500,-0.633319,-0.294000,
+       0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
        0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
-       0.000000,-0.969635,0.244558,1.500000,-0.649161,-0.322437,
-       0.000000,-0.791034,0.611773,1.500000,-0.634535,-0.278500,
-       0.189859,-0.826565,0.529853,1.587500,-0.633319,-0.294000,
-       0.000000,-0.969635,0.244558,1.500000,-0.649161,-0.322437,
-       0.189859,-0.826565,0.529853,1.587500,-0.633319,-0.294000,
-       0.100277,-0.976969,0.188350,1.582500,-0.646948,-0.335375,
-       0.000000,-0.249205,0.968451,1.500000,-0.609501,-0.262379,
+       0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+       0,-0.791034,0.611773,1.5,-0.634535,-0.2785,
+       0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
+       0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+       0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
+       0.100277,-0.976969,0.18835,1.5825,-0.646948,-0.335375,
+       0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
        0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
-       0.189859,-0.826565,0.529853,1.587500,-0.633319,-0.294000,
-       0.000000,-0.249205,0.968451,1.500000,-0.609501,-0.262379,
-       0.189859,-0.826565,0.529853,1.587500,-0.633319,-0.294000,
-       0.000000,-0.791034,0.611773,1.500000,-0.634535,-0.278500,
+       0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
+       0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+       0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
+       0,-0.791034,0.611773,1.5,-0.634535,-0.2785,
        0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
        0.676292,-0.291987,0.676293,1.673866,-0.608893,-0.326134,
        0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
        0.467068,-0.750796,0.467068,1.660875,-0.632104,-0.339125,
-       0.189859,-0.826565,0.529853,1.587500,-0.633319,-0.294000,
+       0.189859,-0.826565,0.529853,1.5875,-0.633319,-0.294,
        0.392861,-0.271724,0.878536,1.594774,-0.609197,-0.278403,
        -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
        -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
-       -0.189859,-0.826565,0.529853,1.412500,-0.633319,-0.294000,
+       -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
        -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
-       -0.189859,-0.826565,0.529853,1.412500,-0.633319,-0.294000,
-       -0.100277,-0.976969,0.188350,1.417500,-0.646948,-0.335375,
+       -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
+       -0.100277,-0.976969,0.18835,1.4175,-0.646948,-0.335375,
        -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
        -0.676292,-0.291987,0.676293,1.326134,-0.608893,-0.326134,
        -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
        -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
-       -0.189859,-0.826565,0.529853,1.412500,-0.633319,-0.294000,
+       -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
        -0.467068,-0.750796,0.467068,1.339125,-0.632104,-0.339125,
-       0.000000,-0.249205,0.968451,1.500000,-0.609501,-0.262379,
-       0.000000,-0.791034,0.611773,1.500000,-0.634535,-0.278500,
-       -0.189859,-0.826565,0.529853,1.412500,-0.633319,-0.294000,
-       0.000000,-0.249205,0.968451,1.500000,-0.609501,-0.262379,
-       -0.189859,-0.826565,0.529853,1.412500,-0.633319,-0.294000,
+       0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+       0,-0.791034,0.611773,1.5,-0.634535,-0.2785,
+       -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
+       0,-0.249205,0.968451,1.5,-0.609501,-0.262379,
+       -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
        -0.392861,-0.271724,0.878536,1.405226,-0.609197,-0.278403,
-       0.000000,-0.969635,0.244558,1.500000,-0.649161,-0.322437,
-       -0.100277,-0.976969,0.188350,1.417500,-0.646948,-0.335375,
-       -0.189859,-0.826565,0.529853,1.412500,-0.633319,-0.294000,
-       0.000000,-0.969635,0.244558,1.500000,-0.649161,-0.322437,
-       -0.189859,-0.826565,0.529853,1.412500,-0.633319,-0.294000,
-       0.000000,-0.791034,0.611773,1.500000,-0.634535,-0.278500,
+       0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+       -0.100277,-0.976969,0.18835,1.4175,-0.646948,-0.335375,
+       -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
+       0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+       -0.189859,-0.826565,0.529853,1.4125,-0.633319,-0.294,
+       0,-0.791034,0.611773,1.5,-0.634535,-0.2785,
        0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
-       0.100277,-0.976969,-0.188350,1.582500,-0.646948,-0.664625,
-       0.079739,-0.993621,-0.079739,1.590500,-0.655194,-0.590500,
+       0.100277,-0.976969,-0.18835,1.5825,-0.646948,-0.664625,
+       0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
        0.199329,-0.959446,-0.199329,1.638667,-0.642463,-0.638667,
-       0.079739,-0.993621,-0.079739,1.590500,-0.655194,-0.590500,
-       0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.582500,
-       0.100277,-0.976969,-0.188350,1.582500,-0.646948,-0.664625,
-       -0.000000,-0.969635,-0.244558,1.500000,-0.649161,-0.677562,
-       0.000000,-0.996384,-0.084960,1.500000,-0.657972,-0.597750,
-       0.000000,-0.996384,-0.084960,1.500000,-0.657972,-0.597750,
-       0.079739,-0.993621,-0.079739,1.590500,-0.655194,-0.590500,
-       0.100277,-0.976969,-0.188350,1.582500,-0.646948,-0.664625,
-       -0.000000,-1.000000,0.000000,1.500000,-0.660924,-0.500000,
-       0.084960,-0.996384,0.000000,1.597750,-0.657972,-0.500000,
-       0.079739,-0.993621,-0.079739,1.590500,-0.655194,-0.590500,
-       -0.000000,-1.000000,0.000000,1.500000,-0.660924,-0.500000,
-       0.079739,-0.993621,-0.079739,1.590500,-0.655194,-0.590500,
-       0.000000,-0.996384,-0.084960,1.500000,-0.657972,-0.597750,
-       0.084960,-0.996384,0.000000,1.597750,-0.657972,-0.500000,
-       0.244558,-0.969635,0.000000,1.677562,-0.649161,-0.500000,
-       0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.582500,
-       0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.582500,
-       0.079739,-0.993621,-0.079739,1.590500,-0.655194,-0.590500,
-       0.084960,-0.996384,0.000000,1.597750,-0.657972,-0.500000,
+       0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
+       0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.5825,
+       0.100277,-0.976969,-0.18835,1.5825,-0.646948,-0.664625,
+       0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+       0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
+       0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
+       0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
+       0.100277,-0.976969,-0.18835,1.5825,-0.646948,-0.664625,
+       0,-1,0,1.5,-0.660924,-0.5,
+       0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
+       0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
+       0,-1,0,1.5,-0.660924,-0.5,
+       0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
+       0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
+       0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
+       0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+       0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.5825,
+       0.188349,-0.976969,-0.100277,1.664625,-0.646948,-0.5825,
+       0.079739,-0.993621,-0.079739,1.5905,-0.655194,-0.5905,
+       0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
        -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
-       -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.582500,
-       -0.079739,-0.993621,-0.079739,1.409500,-0.655194,-0.590500,
+       -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.5825,
+       -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
        -0.199329,-0.959446,-0.199329,1.361333,-0.642463,-0.638667,
-       -0.079739,-0.993621,-0.079739,1.409500,-0.655194,-0.590500,
-       -0.100277,-0.976969,-0.188350,1.417500,-0.646948,-0.664625,
-       -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.582500,
-       -0.244558,-0.969635,0.000000,1.322438,-0.649161,-0.500000,
-       -0.084960,-0.996384,0.000000,1.402250,-0.657972,-0.500000,
-       -0.084960,-0.996384,0.000000,1.402250,-0.657972,-0.500000,
-       -0.079739,-0.993621,-0.079739,1.409500,-0.655194,-0.590500,
-       -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.582500,
-       -0.000000,-1.000000,0.000000,1.500000,-0.660924,-0.500000,
-       0.000000,-0.996384,-0.084960,1.500000,-0.657972,-0.597750,
-       -0.079739,-0.993621,-0.079739,1.409500,-0.655194,-0.590500,
-       -0.000000,-1.000000,0.000000,1.500000,-0.660924,-0.500000,
-       -0.079739,-0.993621,-0.079739,1.409500,-0.655194,-0.590500,
-       -0.084960,-0.996384,0.000000,1.402250,-0.657972,-0.500000,
-       0.000000,-0.996384,-0.084960,1.500000,-0.657972,-0.597750,
-       -0.000000,-0.969635,-0.244558,1.500000,-0.649161,-0.677562,
-       -0.100277,-0.976969,-0.188350,1.417500,-0.646948,-0.664625,
-       -0.100277,-0.976969,-0.188350,1.417500,-0.646948,-0.664625,
-       -0.079739,-0.993621,-0.079739,1.409500,-0.655194,-0.590500,
-       0.000000,-0.996384,-0.084960,1.500000,-0.657972,-0.597750,
+       -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
+       -0.100277,-0.976969,-0.18835,1.4175,-0.646948,-0.664625,
+       -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.5825,
+       -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+       -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
+       -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
+       -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
+       -0.188349,-0.976969,-0.100277,1.335375,-0.646948,-0.5825,
+       0,-1,0,1.5,-0.660924,-0.5,
+       0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
+       -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
+       0,-1,0,1.5,-0.660924,-0.5,
+       -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
+       -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
+       0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
+       0,-0.969635,-0.244558,1.5,-0.649161,-0.677562,
+       -0.100277,-0.976969,-0.18835,1.4175,-0.646948,-0.664625,
+       -0.100277,-0.976969,-0.18835,1.4175,-0.646948,-0.664625,
+       -0.079739,-0.993621,-0.079739,1.4095,-0.655194,-0.5905,
+       0,-0.996384,-0.08496,1.5,-0.657972,-0.59775,
        -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
-       -0.100277,-0.976969,0.188350,1.417500,-0.646948,-0.335375,
-       -0.079739,-0.993621,0.079739,1.409500,-0.655194,-0.409500,
+       -0.100277,-0.976969,0.18835,1.4175,-0.646948,-0.335375,
+       -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
        -0.199329,-0.959446,0.199329,1.361333,-0.642463,-0.361333,
-       -0.079739,-0.993621,0.079739,1.409500,-0.655194,-0.409500,
-       -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.417500,
-       -0.100277,-0.976969,0.188350,1.417500,-0.646948,-0.335375,
-       0.000000,-0.969635,0.244558,1.500000,-0.649161,-0.322437,
-       0.000000,-0.996384,0.084960,1.500000,-0.657972,-0.402250,
-       0.000000,-0.996384,0.084960,1.500000,-0.657972,-0.402250,
-       -0.079739,-0.993621,0.079739,1.409500,-0.655194,-0.409500,
-       -0.100277,-0.976969,0.188350,1.417500,-0.646948,-0.335375,
-       -0.000000,-1.000000,0.000000,1.500000,-0.660924,-0.500000,
-       -0.084960,-0.996384,0.000000,1.402250,-0.657972,-0.500000,
-       -0.079739,-0.993621,0.079739,1.409500,-0.655194,-0.409500,
-       -0.000000,-1.000000,0.000000,1.500000,-0.660924,-0.500000,
-       -0.079739,-0.993621,0.079739,1.409500,-0.655194,-0.409500,
-       0.000000,-0.996384,0.084960,1.500000,-0.657972,-0.402250,
-       -0.084960,-0.996384,0.000000,1.402250,-0.657972,-0.500000,
-       -0.244558,-0.969635,0.000000,1.322438,-0.649161,-0.500000,
-       -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.417500,
-       -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.417500,
-       -0.079739,-0.993621,0.079739,1.409500,-0.655194,-0.409500,
-       -0.084960,-0.996384,0.000000,1.402250,-0.657972,-0.500000,
+       -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
+       -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.4175,
+       -0.100277,-0.976969,0.18835,1.4175,-0.646948,-0.335375,
+       0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+       0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
+       0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
+       -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
+       -0.100277,-0.976969,0.18835,1.4175,-0.646948,-0.335375,
+       0,-1,0,1.5,-0.660924,-0.5,
+       -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
+       -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
+       0,-1,0,1.5,-0.660924,-0.5,
+       -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
+       0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
+       -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
+       -0.244558,-0.969635,0,1.322438,-0.649161,-0.5,
+       -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.4175,
+       -0.188349,-0.976969,0.100277,1.335375,-0.646948,-0.4175,
+       -0.079739,-0.993621,0.079739,1.4095,-0.655194,-0.4095,
+       -0.08496,-0.996384,0,1.40225,-0.657972,-0.5,
        0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
-       0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.417500,
-       0.079739,-0.993621,0.079739,1.590500,-0.655194,-0.409500,
+       0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.4175,
+       0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
        0.199329,-0.959446,0.199329,1.638667,-0.642463,-0.361333,
-       0.079739,-0.993621,0.079739,1.590500,-0.655194,-0.409500,
-       0.100277,-0.976969,0.188350,1.582500,-0.646948,-0.335375,
-       0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.417500,
-       0.244558,-0.969635,0.000000,1.677562,-0.649161,-0.500000,
-       0.084960,-0.996384,0.000000,1.597750,-0.657972,-0.500000,
-       0.084960,-0.996384,0.000000,1.597750,-0.657972,-0.500000,
-       0.079739,-0.993621,0.079739,1.590500,-0.655194,-0.409500,
-       0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.417500,
-       -0.000000,-1.000000,0.000000,1.500000,-0.660924,-0.500000,
-       0.000000,-0.996384,0.084960,1.500000,-0.657972,-0.402250,
-       0.079739,-0.993621,0.079739,1.590500,-0.655194,-0.409500,
-       -0.000000,-1.000000,0.000000,1.500000,-0.660924,-0.500000,
-       0.079739,-0.993621,0.079739,1.590500,-0.655194,-0.409500,
-       0.084960,-0.996384,0.000000,1.597750,-0.657972,-0.500000,
-       0.000000,-0.996384,0.084960,1.500000,-0.657972,-0.402250,
-       0.000000,-0.969635,0.244558,1.500000,-0.649161,-0.322437,
-       0.100277,-0.976969,0.188350,1.582500,-0.646948,-0.335375,
-       0.100277,-0.976969,0.188350,1.582500,-0.646948,-0.335375,
-       0.079739,-0.993621,0.079739,1.590500,-0.655194,-0.409500,
-       0.000000,-0.996384,0.084960,1.500000,-0.657972,-0.402250,
+       0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
+       0.100277,-0.976969,0.18835,1.5825,-0.646948,-0.335375,
+       0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.4175,
+       0.244558,-0.969635,0,1.677562,-0.649161,-0.5,
+       0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
+       0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
+       0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
+       0.188349,-0.976969,0.100277,1.664625,-0.646948,-0.4175,
+       0,-1,0,1.5,-0.660924,-0.5,
+       0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
+       0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
+       0,-1,0,1.5,-0.660924,-0.5,
+       0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
+       0.08496,-0.996384,0,1.59775,-0.657972,-0.5,
+       0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
+       0,-0.969635,0.244558,1.5,-0.649161,-0.322437,
+       0.100277,-0.976969,0.18835,1.5825,-0.646948,-0.335375,
+       0.100277,-0.976969,0.18835,1.5825,-0.646948,-0.335375,
+       0.079739,-0.993621,0.079739,1.5905,-0.655194,-0.4095,
+       0,-0.996384,0.08496,1.5,-0.657972,-0.40225,
 };
 static const struct gllist frame={GL_N3F_V3F,GL_TRIANGLES,1728,data,NULL};
 const struct gllist *s1_6=&frame;
index 239516725241db59a8f1e08c3bbc8b7ba43aebe3..33cb94210c63eb57660ede0a31b08db06377faca 100644 (file)
@@ -24,7 +24,7 @@ sballs - draws balls spinning like crazy in GL
 [\-texture] [\-no-texture]
 [\-wireframe] [\-no-wireframe]
 [\-trackmouse] [\-no-trackmouse]
-[\-fps] [\-no-fps]
+[\-fps]
 .SH DESCRIPTION
 The \fIsballs\fP program draws an animation of balls spinning like crazy in GL.
 .SH OPTIONS
@@ -45,9 +45,7 @@ Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-object \fIobject_number\fP\fP
 Specify how the spheres are grouped (forming an object).
index ed05e89dd131cb672ce414a8ca9a5aba086174d9..682ed6e856bb6fb00412ca21f9ed4783dea30ac1 100644 (file)
@@ -78,169 +78,169 @@ static const char sccsid[] = "@(#)shark.c 1.2 98/06/16 xlockmore";
 
 /* *INDENT-OFF* */
 #if 0
-static const float N001[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N001[3] = {0, 1, 0};
 #endif
-static const float N002[3] = {0.000077 ,-0.020611 ,0.999788};
-static const float N003[3] = {0.961425 ,0.258729 ,-0.093390};
-static const float N004[3] = {0.510811 ,-0.769633 ,-0.383063};
-static const float N005[3] = {0.400123 ,0.855734 ,-0.328055};
-static const float N006[3] = {-0.770715 ,0.610204 ,-0.183440};
-static const float N007[3] = {-0.915597 ,-0.373345 ,-0.149316};
-static const float N008[3] = {-0.972788 ,0.208921 ,-0.100179};
-static const float N009[3] = {-0.939713 ,-0.312268 ,-0.139383};
-static const float N010[3] = {-0.624138 ,-0.741047 ,-0.247589};
-static const float N011[3] = {0.591434 ,-0.768401 ,-0.244471};
-static const float N012[3] = {0.935152 ,-0.328495 ,-0.132598};
-static const float N013[3] = {0.997102 ,0.074243 ,-0.016593};
-static const float N014[3] = {0.969995 ,0.241712 ,-0.026186};
-static const float N015[3] = {0.844539 ,0.502628 ,-0.184714};
-static const float N016[3] = {-0.906608 ,0.386308 ,-0.169787};
-static const float N017[3] = {-0.970016 ,0.241698 ,-0.025516};
-static const float N018[3] = {-0.998652 ,0.050493 ,-0.012045};
-static const float N019[3] = {-0.942685 ,-0.333051 ,-0.020556};
-static const float N020[3] = {-0.660944 ,-0.750276 ,0.015480};
-static const float N021[3] = {0.503549 ,-0.862908 ,-0.042749};
-static const float N022[3] = {0.953202 ,-0.302092 ,-0.012089};
-static const float N023[3] = {0.998738 ,0.023574 ,0.044344};
-static const float N024[3] = {0.979297 ,0.193272 ,0.060202};
-static const float N025[3] = {0.798300 ,0.464885 ,0.382883};
-static const float N026[3] = {-0.756590 ,0.452403 ,0.472126};
-static const float N027[3] = {-0.953855 ,0.293003 ,0.065651};
-static const float N028[3] = {-0.998033 ,0.040292 ,0.048028};
-static const float N029[3] = {-0.977079 ,-0.204288 ,0.059858};
-static const float N030[3] = {-0.729117 ,-0.675304 ,0.111140};
-static const float N031[3] = {0.598361 ,-0.792753 ,0.116221};
-static const float N032[3] = {0.965192 ,-0.252991 ,0.066332};
-static const float N033[3] = {0.998201 ,-0.002790 ,0.059892};
-static const float N034[3] = {0.978657 ,0.193135 ,0.070207};
-static const float N035[3] = {0.718815 ,0.680392 ,0.142733};
-static const float N036[3] = {-0.383096 ,0.906212 ,0.178936};
-static const float N037[3] = {-0.952831 ,0.292590 ,0.080647};
-static const float N038[3] = {-0.997680 ,0.032417 ,0.059861};
-static const float N039[3] = {-0.982629 ,-0.169881 ,0.074700};
-static const float N040[3] = {-0.695424 ,-0.703466 ,0.146700};
-static const float N041[3] = {0.359323 ,-0.915531 ,0.180805};
-static const float N042[3] = {0.943356 ,-0.319387 ,0.089842};
-static const float N043[3] = {0.998272 ,-0.032435 ,0.048993};
-static const float N044[3] = {0.978997 ,0.193205 ,0.065084};
-static const float N045[3] = {0.872144 ,0.470094 ,-0.135565};
-static const float N046[3] = {-0.664282 ,0.737945 ,-0.119027};
-static const float N047[3] = {-0.954508 ,0.288570 ,0.075107};
-static const float N048[3] = {-0.998273 ,0.032406 ,0.048993};
-static const float N049[3] = {-0.979908 ,-0.193579 ,0.048038};
-static const float N050[3] = {-0.858736 ,-0.507202 ,-0.072938};
-static const float N051[3] = {0.643545 ,-0.763887 ,-0.048237};
-static const float N052[3] = {0.955580 ,-0.288954 ,0.058068};
+static const float N002[3] = {0.000077, -0.020611, 0.999788};
+static const float N003[3] = {0.961425, 0.258729, -0.09339};
+static const float N004[3] = {0.510811, -0.769633, -0.383063};
+static const float N005[3] = {0.400123, 0.855734, -0.328055};
+static const float N006[3] = {-0.770715, 0.610204, -0.18344};
+static const float N007[3] = {-0.915597, -0.373345, -0.149316};
+static const float N008[3] = {-0.972788, 0.208921, -0.100179};
+static const float N009[3] = {-0.939713, -0.312268, -0.139383};
+static const float N010[3] = {-0.624138, -0.741047, -0.247589};
+static const float N011[3] = {0.591434, -0.768401, -0.244471};
+static const float N012[3] = {0.935152, -0.328495, -0.132598};
+static const float N013[3] = {0.997102, 0.074243, -0.016593};
+static const float N014[3] = {0.969995, 0.241712, -0.026186};
+static const float N015[3] = {0.844539, 0.502628, -0.184714};
+static const float N016[3] = {-0.906608, 0.386308, -0.169787};
+static const float N017[3] = {-0.970016, 0.241698, -0.025516};
+static const float N018[3] = {-0.998652, 0.050493, -0.012045};
+static const float N019[3] = {-0.942685, -0.333051, -0.020556};
+static const float N020[3] = {-0.660944, -0.750276, 0.01548};
+static const float N021[3] = {0.503549, -0.862908, -0.042749};
+static const float N022[3] = {0.953202, -0.302092, -0.012089};
+static const float N023[3] = {0.998738, 0.023574, 0.044344};
+static const float N024[3] = {0.979297, 0.193272, 0.060202};
+static const float N025[3] = {0.7983, 0.464885, 0.382883};
+static const float N026[3] = {-0.75659, 0.452403, 0.472126};
+static const float N027[3] = {-0.953855, 0.293003, 0.065651};
+static const float N028[3] = {-0.998033, 0.040292, 0.048028};
+static const float N029[3] = {-0.977079, -0.204288, 0.059858};
+static const float N030[3] = {-0.729117, -0.675304, 0.11114};
+static const float N031[3] = {0.598361, -0.792753, 0.116221};
+static const float N032[3] = {0.965192, -0.252991, 0.066332};
+static const float N033[3] = {0.998201, -0.00279, 0.059892};
+static const float N034[3] = {0.978657, 0.193135, 0.070207};
+static const float N035[3] = {0.718815, 0.680392, 0.142733};
+static const float N036[3] = {-0.383096, 0.906212, 0.178936};
+static const float N037[3] = {-0.952831, 0.29259, 0.080647};
+static const float N038[3] = {-0.99768, 0.032417, 0.059861};
+static const float N039[3] = {-0.982629, -0.169881, 0.0747};
+static const float N040[3] = {-0.695424, -0.703466, 0.1467};
+static const float N041[3] = {0.359323, -0.915531, 0.180805};
+static const float N042[3] = {0.943356, -0.319387, 0.089842};
+static const float N043[3] = {0.998272, -0.032435, 0.048993};
+static const float N044[3] = {0.978997, 0.193205, 0.065084};
+static const float N045[3] = {0.872144, 0.470094, -0.135565};
+static const float N046[3] = {-0.664282, 0.737945, -0.119027};
+static const float N047[3] = {-0.954508, 0.28857, 0.075107};
+static const float N048[3] = {-0.998273, 0.032406, 0.048993};
+static const float N049[3] = {-0.979908, -0.193579, 0.048038};
+static const float N050[3] = {-0.858736, -0.507202, -0.072938};
+static const float N051[3] = {0.643545, -0.763887, -0.048237};
+static const float N052[3] = {0.95558, -0.288954, 0.058068};
 #if 0
-static const float N053[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N054[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N055[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N056[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N057[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N053[3] = {0, 1, 0};
+static const float N054[3] = {0, 1, 0};
+static const float N055[3] = {0, 1, 0};
+static const float N056[3] = {0, 1, 0};
+static const float N057[3] = {0, 1, 0};
 #endif
-static const float N058[3] = {0.000050 ,0.793007 ,-0.609213};
-static const float N059[3] = {0.913510 ,0.235418 ,-0.331779};
-static const float N060[3] = {-0.807970 ,0.495000 ,-0.319625};
-static const float N061[3] = {0.000000 ,0.784687 ,-0.619892};
-static const float N062[3] = {0.000000 ,-1.000000 ,0.000000};
-static const float N063[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N064[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N065[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N066[3] = {-0.055784 ,0.257059 ,0.964784};
+static const float N058[3] = {0.00005, 0.793007, -0.609213};
+static const float N059[3] = {0.91351, 0.235418, -0.331779};
+static const float N060[3] = {-0.80797, 0.495, -0.319625};
+static const float N061[3] = {0, 0.784687, -0.619892};
+static const float N062[3] = {0, -1, 0};
+static const float N063[3] = {0, 1, 0};
+static const float N064[3] = {0, 1, 0};
+static const float N065[3] = {0, 1, 0};
+static const float N066[3] = {-0.055784, 0.257059, 0.964784};
 #if 0
-static const float N067[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N068[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N067[3] = {0, 1, 0};
+static const float N068[3] = {0, 1, 0};
 #endif
-static const float N069[3] = {-0.000505 ,-0.929775 ,-0.368127};
-static const float N070[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N069[3] = {-0.000505, -0.929775, -0.368127};
+static const float N070[3] = {0, 1, 0};
 #if 0
-static const float N071[3] = {-0.987102 ,0.131723 ,-0.090984};
-static const float N072[3] = {-0.987102 ,0.131723 ,-0.090984};
-static const float N073[3] = {-0.987102 ,0.131723 ,-0.090984};
-static const float N074[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N075[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N076[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N077[3] = {0.995210 ,0.071962 ,-0.066168};
-static const float N078[3] = {0.995210 ,0.071962 ,-0.066168};
-static const float N079[3] = {0.995210 ,0.071962 ,-0.066168};
-static const float N080[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N081[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N082[3] = {0.000000 ,1.000000 ,0.000000};
-static const float P001[3] = {0.00, 0.00, 0.00};
+static const float N071[3] = {-0.987102, 0.131723, -0.090984};
+static const float N072[3] = {-0.987102, 0.131723, -0.090984};
+static const float N073[3] = {-0.987102, 0.131723, -0.090984};
+static const float N074[3] = {0, 1, 0};
+static const float N075[3] = {0, 1, 0};
+static const float N076[3] = {0, 1, 0};
+static const float N077[3] = {0.99521, 0.071962, -0.066168};
+static const float N078[3] = {0.99521, 0.071962, -0.066168};
+static const float N079[3] = {0.99521, 0.071962, -0.066168};
+static const float N080[3] = {0, 1, 0};
+static const float N081[3] = {0, 1, 0};
+static const float N082[3] = {0, 1, 0};
+static const float P001[3] = {0, 0, 0};
 #endif
-static       float P002[3] = {0.00, -36.59, 5687.72};
-static const float P003[3] = {90.00, 114.73, 724.38};
+static       float P002[3] = {0, -36.59, 5687.72};
+static const float P003[3] = {90, 114.73, 724.38};
 static       float P004[3] = {58.24, -146.84, 262.35};
 static const float P005[3] = {27.81, 231.52, 510.43};
 static const float P006[3] = {-27.81, 230.43, 509.76};
 static       float P007[3] = {-46.09, -146.83, 265.84};
-static const float P008[3] = {-90.00, 103.84, 718.53};
-static const float P009[3] = {-131.10, -165.92, 834.85};
-static       float P010[3] = {-27.81, -285.31, 500.00};
-static       float P011[3] = {27.81, -285.32, 500.00};
-static const float P012[3] = {147.96, -170.89, 845.50};
-static const float P013[3] = {180.00, 0.00, 2000.00};
-static const float P014[3] = {145.62, 352.67, 2000.00};
-static const float P015[3] = {55.62, 570.63, 2000.00};
-static const float P016[3] = {-55.62, 570.64, 2000.00};
-static const float P017[3] = {-145.62, 352.68, 2000.00};
-static const float P018[3] = {-180.00, 0.01, 2000.00};
-static const float P019[3] = {-178.20, -352.66, 2001.61};
-static const float P020[3] = {-55.63, -570.63, 2000.00};
-static const float P021[3] = {55.62, -570.64, 2000.00};
+static const float P008[3] = {-90, 103.84, 718.53};
+static const float P009[3] = {-131.1, -165.92, 834.85};
+static       float P010[3] = {-27.81, -285.31, 500};
+static       float P011[3] = {27.81, -285.32, 500};
+static const float P012[3] = {147.96, -170.89, 845.5};
+static const float P013[3] = {180, 0, 2000};
+static const float P014[3] = {145.62, 352.67, 2000};
+static const float P015[3] = {55.62, 570.63, 2000};
+static const float P016[3] = {-55.62, 570.64, 2000};
+static const float P017[3] = {-145.62, 352.68, 2000};
+static const float P018[3] = {-180, 0.01, 2000};
+static const float P019[3] = {-178.2, -352.66, 2001.61};
+static const float P020[3] = {-55.63, -570.63, 2000};
+static const float P021[3] = {55.62, -570.64, 2000};
 static const float P022[3] = {179.91, -352.69, 1998.39};
-static       float P023[3] = {150.00, 0.00, 3000.00};
-static       float P024[3] = {121.35, 293.89, 3000.00};
+static       float P023[3] = {150, 0, 3000};
+static       float P024[3] = {121.35, 293.89, 3000};
 static       float P025[3] = {46.35, 502.93, 2883.09};
 static       float P026[3] = {-46.35, 497.45, 2877.24};
-static       float P027[3] = {-121.35, 293.90, 3000.00};
-static       float P028[3] = {-150.00, 0.00, 3000.00};
+static       float P027[3] = {-121.35, 293.9, 3000};
+static       float P028[3] = {-150, 0, 3000};
 static       float P029[3] = {-152.21, -304.84, 2858.68};
-static       float P030[3] = {-46.36, -475.52, 3000.00};
-static       float P031[3] = {46.35, -475.53, 3000.00};
-static       float P032[3] = {155.64, -304.87, 2863.50};
-static       float P033[3] = {90.00, 0.00, 4000.00};
-static       float P034[3] = {72.81, 176.33, 4000.00};
-static       float P035[3] = {27.81, 285.32, 4000.00};
-static       float P036[3] = {-27.81, 285.32, 4000.00};
-static       float P037[3] = {-72.81, 176.34, 4000.00};
-static       float P038[3] = {-90.00, 0.00, 4000.00};
-static       float P039[3] = {-72.81, -176.33, 4000.00};
-static       float P040[3] = {-27.81, -285.31, 4000.00};
-static       float P041[3] = {27.81, -285.32, 4000.00};
-static       float P042[3] = {72.81, -176.34, 4000.00};
-static       float P043[3] = {30.00, 0.00, 5000.00};
-static       float P044[3] = {24.27, 58.78, 5000.00};
-static       float P045[3] = {9.27, 95.11, 5000.00};
-static       float P046[3] = {-9.27, 95.11, 5000.00};
-static       float P047[3] = {-24.27, 58.78, 5000.00};
-static       float P048[3] = {-30.00, 0.00, 5000.00};
-static       float P049[3] = {-24.27, -58.78, 5000.00};
-static       float P050[3] = {-9.27, -95.10, 5000.00};
-static       float P051[3] = {9.27, -95.11, 5000.00};
-static       float P052[3] = {24.27, -58.78, 5000.00};
+static       float P030[3] = {-46.36, -475.52, 3000};
+static       float P031[3] = {46.35, -475.53, 3000};
+static       float P032[3] = {155.64, -304.87, 2863.5};
+static       float P033[3] = {90, 0, 4000};
+static       float P034[3] = {72.81, 176.33, 4000};
+static       float P035[3] = {27.81, 285.32, 4000};
+static       float P036[3] = {-27.81, 285.32, 4000};
+static       float P037[3] = {-72.81, 176.34, 4000};
+static       float P038[3] = {-90, 0, 4000};
+static       float P039[3] = {-72.81, -176.33, 4000};
+static       float P040[3] = {-27.81, -285.31, 4000};
+static       float P041[3] = {27.81, -285.32, 4000};
+static       float P042[3] = {72.81, -176.34, 4000};
+static       float P043[3] = {30, 0, 5000};
+static       float P044[3] = {24.27, 58.78, 5000};
+static       float P045[3] = {9.27, 95.11, 5000};
+static       float P046[3] = {-9.27, 95.11, 5000};
+static       float P047[3] = {-24.27, 58.78, 5000};
+static       float P048[3] = {-30, 0, 5000};
+static       float P049[3] = {-24.27, -58.78, 5000};
+static       float P050[3] = {-9.27, -95.1, 5000};
+static       float P051[3] = {9.27, -95.11, 5000};
+static       float P052[3] = {24.27, -58.78, 5000};
 #if 0
-static const float P053[3] = {0.00, 0.00, 0.00};
-static const float P054[3] = {0.00, 0.00, 0.00};
-static const float P055[3] = {0.00, 0.00, 0.00};
-static const float P056[3] = {0.00, 0.00, 0.00};
-static const float P057[3] = {0.00, 0.00, 0.00};
+static const float P053[3] = {0, 0, 0};
+static const float P054[3] = {0, 0, 0};
+static const float P055[3] = {0, 0, 0};
+static const float P056[3] = {0, 0, 0};
+static const float P057[3] = {0, 0, 0};
 #endif
-static const float P058[3] = {0.00, 1212.72, 2703.08};
-static const float P059[3] = {50.36, 0.00, 108.14};
-static const float P060[3] = {-22.18, 0.00, 108.14};
-static       float P061[3] = {0.00, 1181.61, 6344.65};
+static const float P058[3] = {0, 1212.72, 2703.08};
+static const float P059[3] = {50.36, 0, 108.14};
+static const float P060[3] = {-22.18, 0, 108.14};
+static       float P061[3] = {0, 1181.61, 6344.65};
 static const float P062[3] = {516.45, -887.08, 2535.45};
 static const float P063[3] = {-545.69, -879.31, 2555.63};
 static const float P064[3] = {618.89, -1005.64, 2988.32};
 static const float P065[3] = {-635.37, -1014.79, 2938.68};
-static const float P066[3] = {0.00, 1374.43, 3064.18};
+static const float P066[3] = {0, 1374.43, 3064.18};
 #if 0
 static const float P067[3] = {158.49, -11.89, 1401.56};
-static const float P068[3] = {-132.08, -17.90, 1394.31};
+static const float P068[3] = {-132.08, -17.9, 1394.31};
 #endif
-static       float P069[3] = {0.00, -418.25, 5765.04};
-static       float P070[3] = {0.00, 1266.91, 6629.60};
+static       float P069[3] = {0, -418.25, 5765.04};
+static       float P070[3] = {0, 1266.91, 6629.6};
 static const float P071[3] = {-139.12, -124.96, 997.98};
 static const float P072[3] = {-139.24, -110.18, 1020.68};
 static const float P073[3] = {-137.33, -94.52, 1022.63};
@@ -249,51 +249,51 @@ static const float P075[3] = {-135.21, -91.48, 969.14};
 static const float P076[3] = {-135.39, -110.87, 968.76};
 static const float P077[3] = {150.23, -78.44, 995.53};
 static const float P078[3] = {152.79, -92.76, 1018.46};
-static const float P079[3] = {154.19, -110.20, 1020.55};
+static const float P079[3] = {154.19, -110.2, 1020.55};
 static const float P080[3] = {151.33, -124.15, 993.77};
 static const float P081[3] = {150.49, -111.19, 969.86};
-static const float P082[3] = {150.79, -92.41, 969.70};
-static const float iP002[3] = {0.00, -36.59, 5687.72};
+static const float P082[3] = {150.79, -92.41, 969.7};
+static const float iP002[3] = {0, -36.59, 5687.72};
 static const float iP004[3] = {58.24, -146.84, 262.35};
 static const float iP007[3] = {-46.09, -146.83, 265.84};
-static const float iP010[3] = {-27.81, -285.31, 500.00};
-static const float iP011[3] = {27.81, -285.32, 500.00};
-static const float iP023[3] = {150.00, 0.00, 3000.00};
-static const float iP024[3] = {121.35, 293.89, 3000.00};
+static const float iP010[3] = {-27.81, -285.31, 500};
+static const float iP011[3] = {27.81, -285.32, 500};
+static const float iP023[3] = {150, 0, 3000};
+static const float iP024[3] = {121.35, 293.89, 3000};
 static const float iP025[3] = {46.35, 502.93, 2883.09};
 static const float iP026[3] = {-46.35, 497.45, 2877.24};
-static const float iP027[3] = {-121.35, 293.90, 3000.00};
-static const float iP028[3] = {-150.00, 0.00, 3000.00};
+static const float iP027[3] = {-121.35, 293.9, 3000};
+static const float iP028[3] = {-150, 0, 3000};
 static const float iP029[3] = {-121.35, -304.84, 2853.86};
-static const float iP030[3] = {-46.36, -475.52, 3000.00};
-static const float iP031[3] = {46.35, -475.53, 3000.00};
+static const float iP030[3] = {-46.36, -475.52, 3000};
+static const float iP031[3] = {46.35, -475.53, 3000};
 static const float iP032[3] = {121.35, -304.87, 2853.86};
-static const float iP033[3] = {90.00, 0.00, 4000.00};
-static const float iP034[3] = {72.81, 176.33, 4000.00};
-static const float iP035[3] = {27.81, 285.32, 4000.00};
-static const float iP036[3] = {-27.81, 285.32, 4000.00};
-static const float iP037[3] = {-72.81, 176.34, 4000.00};
-static const float iP038[3] = {-90.00, 0.00, 4000.00};
-static const float iP039[3] = {-72.81, -176.33, 4000.00};
-static const float iP040[3] = {-27.81, -285.31, 4000.00};
-static const float iP041[3] = {27.81, -285.32, 4000.00};
-static const float iP042[3] = {72.81, -176.34, 4000.00};
-static const float iP043[3] = {30.00, 0.00, 5000.00};
-static const float iP044[3] = {24.27, 58.78, 5000.00};
-static const float iP045[3] = {9.27, 95.11, 5000.00};
-static const float iP046[3] = {-9.27, 95.11, 5000.00};
-static const float iP047[3] = {-24.27, 58.78, 5000.00};
-static const float iP048[3] = {-30.00, 0.00, 5000.00};
-static const float iP049[3] = {-24.27, -58.78, 5000.00};
-static const float iP050[3] = {-9.27, -95.10, 5000.00};
-static const float iP051[3] = {9.27, -95.11, 5000.00};
-static const float iP052[3] = {24.27, -58.78, 5000.00};
+static const float iP033[3] = {90, 0, 4000};
+static const float iP034[3] = {72.81, 176.33, 4000};
+static const float iP035[3] = {27.81, 285.32, 4000};
+static const float iP036[3] = {-27.81, 285.32, 4000};
+static const float iP037[3] = {-72.81, 176.34, 4000};
+static const float iP038[3] = {-90, 0, 4000};
+static const float iP039[3] = {-72.81, -176.33, 4000};
+static const float iP040[3] = {-27.81, -285.31, 4000};
+static const float iP041[3] = {27.81, -285.32, 4000};
+static const float iP042[3] = {72.81, -176.34, 4000};
+static const float iP043[3] = {30, 0, 5000};
+static const float iP044[3] = {24.27, 58.78, 5000};
+static const float iP045[3] = {9.27, 95.11, 5000};
+static const float iP046[3] = {-9.27, 95.11, 5000};
+static const float iP047[3] = {-24.27, 58.78, 5000};
+static const float iP048[3] = {-30, 0, 5000};
+static const float iP049[3] = {-24.27, -58.78, 5000};
+static const float iP050[3] = {-9.27, -95.1, 5000};
+static const float iP051[3] = {9.27, -95.11, 5000};
+static const float iP052[3] = {24.27, -58.78, 5000};
 #if 0
-static const float iP053[3] = {0.00, 0.00, 0.00};
+static const float iP053[3] = {0, 0, 0};
 #endif
-static const float iP061[3] = {0.00, 1181.61, 6344.65};
-static const float iP069[3] = {0.00, -418.25, 5765.04};
-static const float iP070[3] = {0.00, 1266.91, 6629.60};
+static const float iP061[3] = {0, 1181.61, 6344.65};
+static const float iP069[3] = {0, -418.25, 5765.04};
+static const float iP070[3] = {0, 1266.91, 6629.6};
 /* *INDENT-ON* */
 
 
@@ -1246,18 +1246,18 @@ DrawShark(fishRec * fish, int wire)
        float       thrash, chomp;
        GLenum      cap;
 
-       fish->htail = (int) (fish->htail - (int) (5.0 * fish->v)) % 360;
+       fish->htail = (int) (fish->htail - (int) (5 * fish->v)) % 360;
 
-       thrash = 50.0 * fish->v;
+       thrash = 50 * fish->v;
 
        seg1 = 0.6 * thrash * sin(fish->htail * RRAD);
-       seg2 = 1.8 * thrash * sin((fish->htail + 45.0) * RRAD);
-       seg3 = 3.0 * thrash * sin((fish->htail + 90.0) * RRAD);
-       seg4 = 4.0 * thrash * sin((fish->htail + 110.0) * RRAD);
+       seg2 = 1.8 * thrash * sin((fish->htail + 45) * RRAD);
+       seg3 = 3 * thrash * sin((fish->htail + 90) * RRAD);
+       seg4 = 4 * thrash * sin((fish->htail + 110) * RRAD);
 
-       chomp = 0.0;
-       if (fish->v > 2.0) {
-               chomp = -(fish->v - 2.0) * 200.0;
+       chomp = 0;
+       if (fish->v > 2) {
+               chomp = -(fish->v - 2) * 200;
        }
        P004[1] = iP004[1] + chomp;
        P007[1] = iP007[1] + chomp;
@@ -1318,47 +1318,47 @@ DrawShark(fishRec * fish, int wire)
        P030[1] = iP030[1] + segup;
        P031[1] = iP031[1] + segup;
        P032[1] = iP032[1] + segup;
-       P033[1] = iP033[1] + segup * 5.0;
-       P034[1] = iP034[1] + segup * 5.0;
-       P035[1] = iP035[1] + segup * 5.0;
-       P036[1] = iP036[1] + segup * 5.0;
-       P037[1] = iP037[1] + segup * 5.0;
-       P038[1] = iP038[1] + segup * 5.0;
-       P039[1] = iP039[1] + segup * 5.0;
-       P040[1] = iP040[1] + segup * 5.0;
-       P041[1] = iP041[1] + segup * 5.0;
-       P042[1] = iP042[1] + segup * 5.0;
-       P043[1] = iP043[1] + segup * 12.0;
-       P044[1] = iP044[1] + segup * 12.0;
-       P045[1] = iP045[1] + segup * 12.0;
-       P046[1] = iP046[1] + segup * 12.0;
-       P047[1] = iP047[1] + segup * 12.0;
-       P048[1] = iP048[1] + segup * 12.0;
-       P049[1] = iP049[1] + segup * 12.0;
-       P050[1] = iP050[1] + segup * 12.0;
-       P051[1] = iP051[1] + segup * 12.0;
-       P052[1] = iP052[1] + segup * 12.0;
-       P002[1] = iP002[1] + segup * 17.0;
-       P061[1] = iP061[1] + segup * 17.0;
-       P069[1] = iP069[1] + segup * 17.0;
-       P070[1] = iP070[1] + segup * 17.0;
+       P033[1] = iP033[1] + segup * 5;
+       P034[1] = iP034[1] + segup * 5;
+       P035[1] = iP035[1] + segup * 5;
+       P036[1] = iP036[1] + segup * 5;
+       P037[1] = iP037[1] + segup * 5;
+       P038[1] = iP038[1] + segup * 5;
+       P039[1] = iP039[1] + segup * 5;
+       P040[1] = iP040[1] + segup * 5;
+       P041[1] = iP041[1] + segup * 5;
+       P042[1] = iP042[1] + segup * 5;
+       P043[1] = iP043[1] + segup * 12;
+       P044[1] = iP044[1] + segup * 12;
+       P045[1] = iP045[1] + segup * 12;
+       P046[1] = iP046[1] + segup * 12;
+       P047[1] = iP047[1] + segup * 12;
+       P048[1] = iP048[1] + segup * 12;
+       P049[1] = iP049[1] + segup * 12;
+       P050[1] = iP050[1] + segup * 12;
+       P051[1] = iP051[1] + segup * 12;
+       P052[1] = iP052[1] + segup * 12;
+       P002[1] = iP002[1] + segup * 17;
+       P061[1] = iP061[1] + segup * 17;
+       P069[1] = iP069[1] + segup * 17;
+       P070[1] = iP070[1] + segup * 17;
 
        glPushMatrix();
 
-       glTranslatef(0.0, 0.0, -3000.0);
+       glTranslatef(0, 0, -3000);
 
        glGetFloatv(GL_MODELVIEW_MATRIX, &mat[0][0]);
        n = 0;
-       if (mat[0][2] >= 0.0) {
+       if (mat[0][2] >= 0) {
                n += 1;
        }
-       if (mat[1][2] >= 0.0) {
+       if (mat[1][2] >= 0) {
                n += 2;
        }
-       if (mat[2][2] >= 0.0) {
+       if (mat[2][2] >= 0) {
                n += 4;
        }
-       glScalef(2.0, 1.0, 1.0);
+       glScalef(2, 1, 1);
 
        glEnable(GL_CULL_FACE);
        cap = wire ? GL_LINE_LOOP : GL_POLYGON;
index 41a8fd2ea92f02bbfe0a4cbad5de6dd27050f6be..fd6fa6e89f55af080d576b8116475b29da6ac524 100644 (file)
@@ -42,7 +42,7 @@ static const char sccsid[] = "@(#)sierpinski3D.c      00.01 99/11/04 xlockmore";
 #define DEF_SPIN                               "True"
 #define DEF_WANDER                             "True"
 #define DEF_SPEED                              "150"
-#define DEF_MAXDEPTH                   "5"
+#define DEF_MAX_DEPTH                  "5"
 
 #include "rotator.h"
 #include "gltrackball.h"
@@ -65,10 +65,10 @@ static XrmOptionDescRec opts[] = {
 };
 
 static argtype vars[] = {
-  {&do_spin,   "spin",     "Spin",     DEF_SPIN,     t_Bool},
-  {&do_wander, "wander",   "Wander",   DEF_WANDER,   t_Bool},
-  {&speed,     "speed",    "Speed",    DEF_SPEED,    t_Int},
-  {&max_depth, "maxDepth", "MaxDepth", DEF_MAXDEPTH, t_Int},
+  {&do_spin,   "spin",     "Spin",     DEF_SPIN,      t_Bool},
+  {&do_wander, "wander",   "Wander",   DEF_WANDER,    t_Bool},
+  {&speed,     "speed",    "Speed",    DEF_SPEED,     t_Int},
+  {&max_depth, "maxDepth", "MaxDepth", DEF_MAX_DEPTH, t_Int},
 };
 
 
index a069921181305aedabc1356a5f40b9bc59f78387..ed3b69a98b9a782ddccb258aa09f036dfb9209cb 100644 (file)
@@ -40,8 +40,8 @@ memory for 6.
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index c4edc37c9a7a13048b7a44552b288d9bf96005e0..7fa84b4c4d0c74f49b609c178d573173362628c4 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 #define DEFAULTS       "*delay:        30000       \n" \
-                       "*count:        8           \n" \
+                       "*count:        9           \n" \
                        "*showFPS:      False       \n" \
                        "*wireframe:    False       \n" \
 
 #include "gltrackball.h"
 #include <ctype.h>
 
+#include "xpm-ximage.h"
+#include "../images/scales.xpm"
+
+static char *grey_texture[] = {
+  "16 1 3 1",
+  "X c #808080",
+  "x c #C0C0C0",
+  ". c #FFFFFF",
+  "XXXxxxxx........"
+};
+
 #ifdef USE_GL /* whole file */
 
 #define DEF_SPEED       "1.0"
 #define DEF_SMOOTH      "True"
-#define DEF_SLICES      "32"
-#define DEF_SEGMENTS    "32"
+#define DEF_TEXTURE     "True"
+#define DEF_CEL         "False"
+#define DEF_INTERSECT   "False"
+#define DEF_SLICES      "16"
+#define DEF_SEGMENTS    "24"
 #define DEF_WIGGLINESS  "0.35"
 #define DEF_FLEXIBILITY "0.35"
 #define DEF_THICKNESS   "1.0"
@@ -47,7 +61,7 @@ typedef struct {
   GLfloat length;     /* length of the segment coming out of this segment */
   GLfloat th;         /* vector tilt (on yz plane) from previous segment */
   GLfloat phi;       /* vector rotation (on xy plane) from previous segment */
-  GLfloat thickness;  /* radius of tentacle at this segment */
+  GLfloat thickness;  /* radius of tentacle at the bottom of this segment */
   rotator *rot;              /* motion modeller */
 } segment;
 
@@ -69,8 +83,15 @@ typedef struct {
   tentacle **tentacles;
   GLfloat tentacle_color[4], stripe_color[4], sucker_color[4];
 
-  GLuint sucker_list;
-  int sucker_polys;
+  int torus_polys;
+  int torus_step;
+  XYZ *torus_points;
+  XYZ *torus_normals;
+
+  GLfloat line_thickness;
+  GLfloat outline_color[4];
+  XImage *texture;
+  GLuint texid;
 
   Bool left_p;
   
@@ -82,6 +103,9 @@ static tentacles_configuration *tcs = NULL;
 static int debug_p;
 static GLfloat arg_speed;
 static int smooth_p;
+static int texture_p;
+static int cel_p;
+static int intersect_p;
 static int arg_slices;
 static int arg_segments;
 static GLfloat arg_thickness;
@@ -90,9 +114,19 @@ static GLfloat arg_wiggliness;
 static GLfloat arg_flexibility;
 static char *arg_color, *arg_stripe, *arg_sucker;
 
+/* we can only have one light when doing cel shading */
+static GLfloat light_pos[4] = {1.0, 1.0, 1.0, 0.0};
+
+
 static XrmOptionDescRec opts[] = {
   { "-speed",        ".speed",         XrmoptionSepArg, 0 },
   { "-no-smooth",    ".smooth",        XrmoptionNoArg, "False" },
+  { "-texture",      ".texture",       XrmoptionNoArg, "True" },
+  { "-no-texture",   ".texture",       XrmoptionNoArg, "False" },
+  { "-cel",          ".cel",           XrmoptionNoArg, "True" },
+  { "-no-cel",       ".cel",           XrmoptionNoArg, "False" },
+  { "-intersect",    ".intersect",     XrmoptionNoArg, "True" },
+  { "-no-intersect", ".intersect",     XrmoptionNoArg, "False" },
   { "-slices",       ".slices",        XrmoptionSepArg, 0 },
   { "-segments",     ".segments",      XrmoptionSepArg, 0 },
   { "-thickness",    ".thickness",     XrmoptionSepArg, 0 },
@@ -108,6 +142,9 @@ static XrmOptionDescRec opts[] = {
 static argtype vars[] = {
   {&arg_speed,       "speed",         "Speed",       DEF_SPEED,       t_Float},
   {&smooth_p,        "smooth",        "Smooth",      DEF_SMOOTH,      t_Bool},
+  {&texture_p,       "texture",       "Texture",     DEF_TEXTURE,     t_Bool},
+  {&cel_p,           "cel",           "Cel",         DEF_CEL,         t_Bool},
+  {&intersect_p,     "intersect",     "Intersect",   DEF_INTERSECT,   t_Bool},
   {&arg_slices,      "slices",        "Slices",      DEF_SLICES,      t_Int},
   {&arg_segments,    "segments",      "Segments",    DEF_SEGMENTS,    t_Int},
   {&arg_thickness,   "thickness",     "Thickness",   DEF_THICKNESS,   t_Float},
@@ -128,6 +165,7 @@ ENTRYPOINT ModeSpecOpt tentacles_opts = {countof(opts), opts, countof(vars), var
 ENTRYPOINT void
 reshape_tentacles (ModeInfo *mi, int width, int height)
 {
+  tentacles_configuration *tc = &tcs[MI_SCREEN(mi)];
   GLfloat h = (GLfloat) height / (GLfloat) width;
 
   glViewport (0, 0, (GLint) width, (GLint) height);
@@ -143,47 +181,70 @@ reshape_tentacles (ModeInfo *mi, int width, int height)
              0.0, 1.0, 0.0);
 
   glClear(GL_COLOR_BUFFER_BIT);
+
+  tc->line_thickness = (MI_IS_WIREFRAME (mi) ? 1 : MAX (3, width / 200));
 }
 
 
+static void
+normalize (GLfloat *x, GLfloat *y, GLfloat *z)
+{
+  GLfloat d = sqrt((*x)*(*x) + (*y)*(*y) + (*z)*(*z));
+  *x /= d;
+  *y /= d;
+  *z /= d;
+}
+
+static GLfloat
+dot (GLfloat x0, GLfloat y0, GLfloat z0,
+     GLfloat x1, GLfloat y1, GLfloat z1)
+{
+  return x0*x1 + y0*y1 + z0*z1;
+}
+
 
-static int
-unit_torus (double ratio, int slices1, int slices2, Bool wire)
+static void
+compute_unit_torus (ModeInfo *mi, double ratio, int slices1, int slices2)
 {
-  int i, j, k, polys = 0;
+  tentacles_configuration *tc = &tcs[MI_SCREEN(mi)];
+  Bool wire = MI_IS_WIREFRAME (mi);
+  int i, j, k, fp;
 
   if (wire) slices1 /= 2;
   if (wire) slices2 /= 4;
   if (slices1 < 3) slices1 = 3;
   if (slices2 < 3) slices2 = 3;
 
-  glFrontFace (GL_CW);
-  glBegin (wire ? GL_LINE_STRIP : GL_QUAD_STRIP);
+  tc->torus_polys = slices1 * (slices2+1) * 2;
+  tc->torus_points  = (XYZ *) calloc (tc->torus_polys + 1,
+                                      sizeof (*tc->torus_points));
+  tc->torus_normals = (XYZ *) calloc (tc->torus_polys + 1,
+                                      sizeof (*tc->torus_normals));
+  tc->torus_step = 2 * (slices2+1);
+  fp = 0;
   for (i = 0; i < slices1; i++)
     for (j = 0; j <= slices2; j++)
       for (k = 0; k <= 1; k++)
         {
           double s = (i + k) % slices1 + 0.5;
           double t = j % slices2;
-
-          double x = cos(t*M_PI*2/slices2) * cos(s*M_PI*2/slices1);
-          double y = sin(t*M_PI*2/slices2) * cos(s*M_PI*2/slices1);
-          double z = sin(s*M_PI*2/slices1);
-          glNormal3f(x, y, z);
-
-          x = (1 + ratio * cos(s*M_PI*2/slices1)) * cos(t*M_PI*2/slices2) / 2;
-          y = (1 + ratio * cos(s*M_PI*2/slices1)) * sin(t*M_PI*2/slices2) / 2;
-          z = ratio * sin(s*M_PI*2/slices1) / 2;
-          glVertex3f(x, y, z);
-          polys++;
+          XYZ p;
+          p.x = cos(t*M_PI*2/slices2) * cos(s*M_PI*2/slices1);
+          p.y = sin(t*M_PI*2/slices2) * cos(s*M_PI*2/slices1);
+          p.z = sin(s*M_PI*2/slices1);
+          tc->torus_normals[fp] = p;
+
+          p.x = (1 + ratio * cos(s*M_PI*2/slices1)) * cos(t*M_PI*2/slices2) / 2;
+          p.y = (1 + ratio * cos(s*M_PI*2/slices1)) * sin(t*M_PI*2/slices2) / 2;
+          p.z = ratio * sin(s*M_PI*2/slices1) / 2;
+          tc->torus_points[fp] = p;
+          fp++;
         }
-  glEnd();
-  return polys;
+  if (fp != tc->torus_polys) abort();
+  tc->torus_polys = fp;
 }
 
 
-
-
 /* Initializes a new tentacle and stores it in the list.
  */
 static tentacle *
@@ -203,6 +264,7 @@ make_tentacle (ModeInfo *mi, int which, int total)
     int xx = which % cols;
     int yy = which / cols;
     double spc = arg_thickness * 0.8;
+    if (!intersect_p) cols = 1, xx = 0;
     t->x = (cols * spc / 2) - (spc * (xx + 0.5));
     t->y = (rows * spc / 2) - (spc * (yy + 0.5));
     t->z = 0;
@@ -241,7 +303,7 @@ make_tentacle (ModeInfo *mi, int which, int total)
 
   if (tc->tentacles_size <= tc->ntentacles)
     {
-      tc->tentacles_size = (tc->tentacles_size * 1.2) + tc->ntentacles;
+      tc->tentacles_size = (tc->tentacles_size * 1.2) + tc->ntentacles + 2;
       tc->tentacles = (tentacle **)
         realloc (tc->tentacles, tc->tentacles_size * sizeof(*tc->tentacles));
       if (! tc->tentacles)
@@ -258,7 +320,41 @@ make_tentacle (ModeInfo *mi, int which, int total)
 
 
 static void
-draw_tentacle (tentacle *t)
+draw_sucker (tentacle *t, Bool front_p)
+{
+  tentacles_configuration *tc = &tcs[MI_SCREEN(t->mi)];
+  Bool wire = MI_IS_WIREFRAME (t->mi);
+  int i, j;
+  int strips = tc->torus_polys / tc->torus_step;
+  int points = 0;
+
+  glFrontFace (front_p ? GL_CW : GL_CCW);
+  for (i = 0; i < strips; i++)
+    {
+      int ii = i * tc->torus_step;
+
+      /* Leave off the polygons on the underside.  This reduces polygon
+         count by about 10% with the default settings. */
+      if (strips > 4 && i >= strips/2 && i < strips-1)
+        continue;
+
+      glBegin (wire ? GL_LINE_STRIP : GL_QUAD_STRIP);
+      for (j = 0; j < tc->torus_step; j++)
+        {
+          XYZ sp = tc->torus_points[ii+j];
+          XYZ sn = tc->torus_normals[ii+j];
+          glNormal3f(sn.x, sn.y, sn.z);
+          glVertex3f(sp.x, sp.y, sp.z);
+          points++;
+        }
+      glEnd();
+    }
+  t->mi->polygon_count += points/2;
+}
+
+
+static void
+draw_tentacle (tentacle *t, Bool front_p)
 {
   tentacles_configuration *tc = &tcs[MI_SCREEN(t->mi)];
   int i;
@@ -269,70 +365,103 @@ draw_tentacle (tentacle *t)
   double cth_cos  = 1, cth_sin  = 0;
   double cphi_cos = 1, cphi_sin = 0;
 
+  GLfloat light[3];       /* vector to the light */
+
+  GLfloat t0 = 0.0;        /* texture coordinate */
+
   XYZ *ring, *oring;       /* points around the edge (this, and previous) */
   XYZ *norm, *onorm;       /* their normals */
+  XYZ *ucirc;             /* unit circle, to save some trig */
 
-  /* Which portion of the radius the colored stripe takes up */
+  /* Which portion of the radius the indented/colored stripe takes up */
   int indented_points = arg_slices * 0.2;
 
-  /* We do rotation way to minimize number of calls to sin/cos. */
-# define ROT(P) do { \
-    XYZ _p = P; \
-    _p.y = ((P.y * cth_sin - P.x * cth_cos)); \
+  /* We do rotation this way to minimize the number of calls to sin/cos.
+     We have to hack the transformations manually instead of using
+     glRotate/glTranslate because those calls are not allowed *inside*
+     of a glBegin/glEnd block...
+   */
+# define ROT(P) do {                                                    \
+    XYZ _p = P;                                                         \
+    _p.y = ((P.y * cth_sin - P.x * cth_cos));                           \
     _p.x = ((P.y * cth_cos + P.x * cth_sin) * cphi_sin - (P.z * cphi_cos)); \
     _p.z = ((P.y * cth_cos + P.x * cth_sin) * cphi_cos + (P.z * cphi_sin)); \
-    P = _p; \
+    P = _p;                                                             \
   } while(0)
 
   ring  = (XYZ *) malloc (arg_slices * sizeof(*ring));
   norm  = (XYZ *) malloc (arg_slices * sizeof(*norm));
   oring = (XYZ *) malloc (arg_slices * sizeof(*oring));
   onorm = (XYZ *) malloc (arg_slices * sizeof(*onorm));
+  ucirc = (XYZ *) malloc (arg_slices * sizeof(*ucirc));
 
-  if (wire)
-    glColor4fv (t->tentacle_color);
-  else
+  light[0] = light_pos[0];
+  light[1] = light_pos[1];
+  light[2] = light_pos[2];
+  normalize (&light[0], &light[1], &light[2]);
+
+  for (i = 0; i < arg_slices; i++)
     {
-      static const GLfloat bspec[4]  = {1.0, 1.0, 1.0, 1.0};
-      static const GLfloat bshiny    = 128.0;
-      glMaterialfv (GL_FRONT, GL_SPECULAR,            bspec);
-      glMateriali  (GL_FRONT, GL_SHININESS,           bshiny);
+      double a = M_PI * 2 * i / arg_slices;
+      ucirc[i].x = cos(a);
+      ucirc[i].y = sin(a);
+      ucirc[i].z = 0;
     }
 
+
+  if (cel_p)
+    glPolygonMode (GL_FRONT_AND_BACK, (front_p ? GL_FILL : GL_LINE));
+
   glPushMatrix();
   glTranslatef (t->x, t->y, t->z);
 
   if (debug_p)
     {
-      if (!wire) glDisable(GL_LIGHTING);
+      glPushAttrib (GL_ENABLE_BIT);
+      glDisable (GL_LIGHTING);
+      glDisable (GL_TEXTURE_1D);
+      glDisable (GL_TEXTURE_2D);
+      glColor3f (1, 1, 1);
+      glLineWidth (1);
       glBegin(GL_LINE_LOOP);
       for (i = 0; i < arg_slices; i++)
         glVertex3f (arg_thickness / 2 * cos (M_PI * 2 * i / arg_slices),
                     arg_thickness / 2 * sin (M_PI * 2 * i / arg_slices),
                     0);
       glEnd();
-      if (!wire) glEnable(GL_LIGHTING);
+      glPopAttrib();
+    }
+
+  if (!front_p)
+    glColor4fv (tc->outline_color);
+  else if (wire)
+    glColor4fv (t->tentacle_color);
+  else
+    {
+      static const GLfloat bspec[4]  = {1.0, 1.0, 1.0, 1.0};
+      static const GLfloat bshiny    = 128.0;
+      glMaterialfv (GL_FRONT, GL_SPECULAR,            bspec);
+      glMateriali  (GL_FRONT, GL_SHININESS,           bshiny);
     }
 
   for (i = 0; i < t->nsegments; i++)
     {
       int j;
-      XYZ p;
+      GLfloat t1 = t0 + i / (t->nsegments * M_PI * 2);
 
       for (j = 0; j < arg_slices; j++)
         {
           /* Construct a vertical disc at the origin, to use as the
              base of this segment.
-           */
+          */
           double r = t->segments[i].thickness / 2;
-          double a = M_PI * 2 * j / arg_slices;
 
           if (j <= indented_points/2 || j >= arg_slices-indented_points/2)
-            r *= 0.75;
+            r *= 0.75;  /* indent the stripe */
 
-          ring[j].x = r * cos (a);
+          ring[j].x = r * ucirc[j].x;
           ring[j].y = 0;
-          ring[j].z = r * sin (a);
+          ring[j].z = r * ucirc[j].y;
 
           /* Then rotate the points by the angle of the current segment. */
           ROT(ring[j]);
@@ -348,8 +477,8 @@ draw_tentacle (tentacle *t)
          first so that the normals of the vertexes can be the average
          of the normals of the faces.
          #### Uh, except I didn't actually implement that...
-              but it would be a good idea.
-       */
+         but it would be a good idea.
+      */
       if (i > 0)
         for (j = 0; j <= arg_slices; j++)
           {
@@ -360,31 +489,62 @@ draw_tentacle (tentacle *t)
 
       /* Draw!
        */
-
       if (i > 0)
         {
           int j;
-          glFrontFace (GL_CCW);
+          glLineWidth (tc->line_thickness);
+          glFrontFace (front_p ? GL_CCW : GL_CW);
           glBegin (wire ? GL_LINES : smooth_p ? GL_QUAD_STRIP : GL_QUADS);
           for (j = 0; j <= arg_slices; j++)
             {
               int j0 = j     % arg_slices;
               int j1 = (j+1) % arg_slices;
 
-              if (j <= indented_points/2 || j >= arg_slices-indented_points/2)
-                glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
-                              t->stripe_color);
+              GLfloat ts = j / (double) arg_slices;
+
+              if (!front_p)
+                glColor4fv (tc->outline_color);
+              else if (j <= indented_points/2 || 
+                       j >= arg_slices-indented_points/2)
+                {
+                  glColor4fv (t->stripe_color);
+                  glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
+                                t->stripe_color);
+                }
               else
-                glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
-                              t->tentacle_color);
+                {
+                  glColor4fv (t->tentacle_color);
+                  glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,
+                                t->tentacle_color);
+                }
+
+              /* For cel shading, the 1d texture coordinate (s) is the 
+                 dot product of the lighting vector and the vertex normal.
+              */
+              if (cel_p)
+                {
+                  t0 = dot (light[0], light[1], light[2],
+                            onorm[j0].x, onorm[j0].y, onorm[j0].z);
+                  t1 = dot (light[0], light[1], light[2],
+                            norm[j0].x, norm[j0].y, norm[j0].z);
+                  if (t0 < 0) t0 = 0;
+                  if (t1 < 0) t1 = 0;
+                }
 
+              glTexCoord2f (t0, ts);
               glNormal3f (onorm[j0].x, onorm[j0].y, onorm[j0].z);
               glVertex3f (oring[j0].x, oring[j0].y, oring[j0].z);
+
+              glTexCoord2f (t1, ts);
               glNormal3f ( norm[j0].x,  norm[j0].y,  norm[j0].z);
               glVertex3f ( ring[j0].x,  ring[j0].y,  ring[j0].z);
+
               if (!smooth_p)
                 {
+                  ts = j1 / (double) arg_slices;
+                  glTexCoord2f (t1, ts);
                   glVertex3f ( ring[j1].x,  ring[j1].y,  ring[j1].z);
+                  glTexCoord2f (t0, ts);
                   glVertex3f (oring[j1].x, oring[j1].y, oring[j1].z);
                 }
               t->mi->polygon_count++;
@@ -403,13 +563,19 @@ draw_tentacle (tentacle *t)
            */
           {
             double seg_length = arg_length / t->nsegments;
-            double sucker_size = arg_thickness / 8;
-            double sucker_spacing = sucker_size * 1.5;
+            double sucker_size = arg_thickness / 5;
+            double sucker_spacing = sucker_size * 1.3;
             int nsuckers = seg_length / sucker_spacing;
             double oth  = cth  - t->segments[i-1].th;
             double ophi = cphi - t->segments[i-1].phi;
             int k;
 
+            if (!wire)
+              glLineWidth (MAX (2, tc->line_thickness / 2.0));
+            glDisable (GL_TEXTURE_2D);
+
+            /* Sometimes we have N suckers on one segment; 
+               sometimes we have one sucker every N segments. */
             if (nsuckers == 0)
               {
                 int segs_per_sucker =
@@ -417,7 +583,12 @@ draw_tentacle (tentacle *t)
                 nsuckers = (i % segs_per_sucker) ? 0 : 1;
               }
 
-            glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, t->sucker_color);
+            if (front_p)
+              {
+                glColor4fv (t->sucker_color);
+                glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, 
+                              t->sucker_color);
+              }
 
             for (k = 0; k < nsuckers; k++)
               {
@@ -447,44 +618,48 @@ draw_tentacle (tentacle *t)
                 }
 
                 scale = t->segments[i].thickness / arg_thickness;
-                scale *= 0.7;
-                glTranslatef (0, 0, -0.15 * sucker_size);
-                glScalef (scale, scale, scale*4);
-                {
-                  double off = sucker_size * 1.4;
-                  glPushMatrix();
-                  glTranslatef (off, 0, 0);
-                  glCallList (tc->sucker_list);
-                  t->mi->polygon_count += tc->sucker_polys;
-                  glPopMatrix();
-
-                  glPushMatrix();
-                  glTranslatef (-off, 0, 0);
-                  glCallList (tc->sucker_list);
-                  t->mi->polygon_count += tc->sucker_polys;
-                  glPopMatrix();
-                }
+                scale *= 0.7 * sucker_size;
+                glScalef (scale, scale, scale * 4);
+
+                glTranslatef (0, 0, -0.1);  /* embed */
+
+                glTranslatef (1, 0, 0);     /* left */
+                draw_sucker (t, front_p);
+
+                glTranslatef (-2, 0, 0);    /* right */
+                draw_sucker (t, front_p);
 
                 glPopMatrix();
               }
+
+            if (texture_p) glEnable (GL_TEXTURE_2D);
           }
         }
 
       /* Now draw the end caps.
        */
+      glLineWidth (tc->line_thickness);
       if (i == 0 || i == t->nsegments-1)
         {
           int j;
           GLfloat ctrz = ctr.z + ((i == 0 ? -1 : 1) *
                                   t->segments[i].thickness / 4);
-          glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, t->tentacle_color);
-          glFrontFace (i == 0 ? GL_CCW : GL_CW);
+          if (front_p)
+            {
+              glColor4fv (t->tentacle_color);
+              glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE, 
+                            t->tentacle_color);
+            }
+          glFrontFace ((front_p ? i == 0 : i != 0) ? GL_CCW : GL_CW);
           glBegin (wire ? GL_LINES : GL_TRIANGLE_FAN);
           glNormal3f (0, 0, (i == 0 ? -1 : 1));
+          glTexCoord2f (t0 - 0.25, 0.5);
           glVertex3f (ctr.x, ctr.y, ctrz);
           for (j = 0; j <= arg_slices; j++)
             {
               int jj = j % arg_slices;
+              GLfloat ts = j / (double) arg_slices;
+              glTexCoord2f (t0, ts);
               glNormal3f (norm[jj].x, norm[jj].y, norm[jj].z);
               glVertex3f (ring[jj].x, ring[jj].y, ring[jj].z);
               if (wire) glVertex3f (ctr.x, ctr.y, ctrz);
@@ -497,6 +672,7 @@ draw_tentacle (tentacle *t)
        */
       if (i != t->nsegments-1)
         {
+          XYZ p;
           p.x = 0;
           p.y = t->segments[i].length;
           p.z = 0;
@@ -507,7 +683,7 @@ draw_tentacle (tentacle *t)
 
           /* Accumulate the current angle and rotation, to keep track of the
              rotation of the upcoming segment.
-           */
+          */
           cth  += t->segments[i].th;
           cphi += t->segments[i].phi;
 
@@ -519,6 +695,8 @@ draw_tentacle (tentacle *t)
           memcpy (oring, ring, arg_slices * sizeof(*ring));
           memcpy (onorm, norm, arg_slices * sizeof(*norm));
         }
+
+      t0 = t1;
     }
 
   glPopMatrix();
@@ -527,6 +705,7 @@ draw_tentacle (tentacle *t)
   free (norm);
   free (oring);
   free (onorm);
+  free (ucirc);
 }
 
 
@@ -624,6 +803,17 @@ tentacles_handle_event (ModeInfo *mi, XEvent *event)
                          MI_WIDTH (mi), MI_HEIGHT (mi));
       return True;
     }
+  else if (event->xany.type == KeyPress)
+    {
+      KeySym keysym;
+      char c = 0;
+      XLookupString (&event->xkey, &c, 1, &keysym, 0);
+      if (c == ' ')
+        {
+          gltrackball_reset (tc->trackball);
+          return True;
+        }
+    }
 
   return False;
 }
@@ -672,22 +862,21 @@ init_tentacles (ModeInfo *mi)
 
   if (!wire)
     {
-      GLfloat pos[4] = {1.0, 1.0, 1.0, 0.0};
       GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};
       GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
       GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0};
-
-      glEnable(GL_LIGHTING);
-      glEnable(GL_LIGHT0);
-      glEnable(GL_DEPTH_TEST);
-      glEnable(GL_CULL_FACE);
-
-      glLightfv(GL_LIGHT0, GL_POSITION, pos);
+      glLightfv(GL_LIGHT0, GL_POSITION, light_pos);
       glLightfv(GL_LIGHT0, GL_AMBIENT,  amb);
       glLightfv(GL_LIGHT0, GL_DIFFUSE,  dif);
       glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
     }
 
+  if (!wire && !cel_p)
+    {
+      glEnable (GL_LIGHTING);
+      glEnable (GL_LIGHT0);
+    }
+
   tc->trackball = gltrackball_init ();
 
   tc->left_p = !(random() % 5);
@@ -704,17 +893,83 @@ init_tentacles (ModeInfo *mi)
   parse_color (mi, "stripeColor",   arg_stripe, tc->stripe_color);
   parse_color (mi, "suckerColor",   arg_sucker, tc->sucker_color);
 
+  /* Black outlines for light colors, white outlines for dark colors. */
+  if (tc->tentacle_color[0] + tc->tentacle_color[1] + tc->tentacle_color[2]
+      < 0.4)
+    tc->outline_color[0] = 1;
+  tc->outline_color[1] = tc->outline_color[0];
+  tc->outline_color[2] = tc->outline_color[0];
+  tc->outline_color[3] = 1;
+
   for (i = 0; i < MI_COUNT(mi); i++)
     move_tentacle (make_tentacle (mi, i, MI_COUNT(mi)));
 
-  tc->sucker_list = glGenLists (1);
-  glNewList (tc->sucker_list, GL_COMPILE);
-  { GLfloat s = arg_thickness / 5; glScalef (s, s, s); }
-  tc->sucker_polys = unit_torus (0.5, 
-                                 MIN(8,  arg_slices/6),
-                                 MIN(12, arg_slices/3), 
-                                 MI_IS_WIREFRAME(mi));
-  glEndList();
+  if (wire) texture_p = cel_p = False;
+  if (cel_p) texture_p = False;
+
+  if (texture_p || cel_p) {
+    glGenTextures(1, &tc->texid);
+# ifdef HAVE_GLBINDTEXTURE
+    glBindTexture ((cel_p ? GL_TEXTURE_1D : GL_TEXTURE_2D), tc->texid);
+# endif
+
+    tc->texture = xpm_to_ximage (MI_DISPLAY(mi), MI_VISUAL(mi), 
+                                 MI_COLORMAP(mi), 
+                                 (cel_p ? grey_texture : scales));
+    if (!tc->texture) texture_p = cel_p = False;
+  }
+
+  if (texture_p) {
+    glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
+    clear_gl_error();
+    glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
+                  tc->texture->width, tc->texture->height, 0,
+                  GL_RGBA,
+                  /* GL_UNSIGNED_BYTE, */
+                  GL_UNSIGNED_INT_8_8_8_8_REV,
+                  tc->texture->data);
+    check_gl_error("texture");
+
+    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
+    glEnable(GL_TEXTURE_2D);
+  } else if (cel_p) {
+    clear_gl_error();
+    glTexImage1D (GL_TEXTURE_1D, 0, GL_RGBA,
+                  tc->texture->width, 0,
+                  GL_RGBA,
+                  /* GL_UNSIGNED_BYTE, */
+                  GL_UNSIGNED_INT_8_8_8_8_REV,
+                  tc->texture->data);
+    check_gl_error("texture");
+
+    glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+    glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+
+    glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+
+    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
+    glEnable(GL_TEXTURE_1D);
+    glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+    glEnable (GL_LINE_SMOOTH);
+    glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
+    glEnable (GL_BLEND);
+
+    /* Dark gray instead of black, so the outlines show up */
+    glClearColor (0.08, 0.08, 0.08, 1.0);
+  }
+
+  compute_unit_torus (mi, 0.5, 
+                      MAX(5, arg_slices/6),
+                      MAX(9, arg_slices/3));
 }
 
 
@@ -722,7 +977,6 @@ ENTRYPOINT void
 draw_tentacles (ModeInfo *mi)
 {
   tentacles_configuration *tc = &tcs[MI_SCREEN(mi)];
-  int wire = MI_IS_WIREFRAME(mi);
   Display *dpy = MI_DISPLAY(mi);
   Window window = MI_WINDOW(mi);
   int i;
@@ -746,18 +1000,22 @@ draw_tentacles (ModeInfo *mi)
 # if 1
   glScalef (3, 3, 3);
 # else
+  glPushAttrib (GL_ENABLE_BIT);
   glPushMatrix();
   { GLfloat s = 8.7/1600; glScalef(s,s,s); }
   glTranslatef(-800,-514,0);
-  if (!wire) glDisable(GL_LIGHTING);
+  glDisable(GL_LIGHTING);
+  glDisable(GL_TEXTURE_1D);
+  glDisable(GL_TEXTURE_2D);
+  glColor3f (1, 1, 1);
   glBegin(GL_LINE_LOOP);
   glVertex3f(0,0,0);
   glVertex3f(0,1028,0);
   glVertex3f(1600,1028,0);
   glVertex3f(1600,0,0);
   glEnd();
-  if (!wire) glEnable(GL_LIGHTING);
   glPopMatrix();
+  glPopAttrib();
 # endif
 
   gltrackball_rotate (tc->trackball);
@@ -766,34 +1024,61 @@ draw_tentacles (ModeInfo *mi)
 
   if (debug_p)
     {
-      if (!wire) glDisable(GL_LIGHTING);
+      glPushAttrib (GL_ENABLE_BIT);
+      glDisable (GL_LIGHTING);
+      glDisable (GL_TEXTURE_1D);
+      glDisable (GL_TEXTURE_2D);
+      glColor3f (1, 1, 1);
+      glLineWidth (1);
       glBegin(GL_LINES);
       glVertex3f(-0.5, 0, 0); glVertex3f(0.5, 0, 0);
       glVertex3f(0, -0.5, 0); glVertex3f(0, 0.5, 0);
       glEnd();
-      if (!wire) glEnable(GL_LIGHTING);
-    }
-  else if (tc->left_p)
-    {
-      glRotatef ( 45, 0, 1, 0);                /* upper left */
-      glRotatef ( 45, 1, 0, 0);
-      glRotatef (-70, 0, 0, 1);
-      glTranslatef (0, -2, -4.5);
+      glPopAttrib();
     }
   else
     {
-      glRotatef (-45, 0, 1, 0);                /* upper right */
-      glRotatef ( 45, 1, 0, 0);
-      glRotatef ( 70, 0, 0, 1);
-      glTranslatef (0, -2, -4.5);
+      GLfloat rx =  45;
+      GLfloat ry = -45;
+      GLfloat rz =  70;
+      if (tc->left_p)
+        ry = -ry, rz = -rz;
+      glRotatef (ry, 0, 1, 0);
+      glRotatef (rx, 1, 0, 0);
+      glRotatef (rz, 0, 0, 1);
+      if (intersect_p)
+        glTranslatef (0, -2.0, -4.5);
+      else
+        glTranslatef (0, -2.5, -5.0);
     }
 
   if (!tc->button_down_p)
     for (i = 0; i < tc->ntentacles; i++)
       move_tentacle (tc->tentacles[i]);
 
+#if 1
   for (i = 0; i < tc->ntentacles; i++)
-    draw_tentacle (tc->tentacles[i]);
+    {
+      if (! intersect_p)
+        glClear(GL_DEPTH_BUFFER_BIT);
+      draw_tentacle (tc->tentacles[i], True);
+      if (cel_p)
+        draw_tentacle (tc->tentacles[i], False);
+    }
+#else
+  glScalef (3, 3, 3);
+  glScalef (1, 1, 4);
+  glColor3f(1,1,1);
+  glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);
+  draw_sucker (tc->tentacles[0], True);
+  if (cel_p)
+    {
+      glPolygonMode (GL_FRONT_AND_BACK, GL_LINE);
+      glLineWidth (tc->line_thickness);
+      glColor4fv (tc->outline_color);
+      draw_sucker (tc->tentacles[0], False);
+    }
+#endif
 
   glPopMatrix ();
 
index 0bcc586221cbdf3178bdfae549554ef32909dc49..2e5cd16e5219477479e142b397b989975796db02 100644 (file)
@@ -76,8 +76,8 @@ Default 32.
 .B \-no\-smooth
 Make the tentacles appear faceted instead of smooth.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 29177c290a0f197f969d50a4ca5e15d2ebd3da81..f3a03f2b62655c9d27d53d97a2520f3b8fb377fd 100644 (file)
@@ -63,7 +63,7 @@
 #define DEFAULTS "*delay:      30000       \n" \
                 "*showFPS:     False       \n" \
                 "*wireframe:   False       \n" \
-                "*labelfont:   -*-times-bold-r-normal-*-180-*\n"
+                "*labelfont:   -*-helvetica-medium-r-normal-*-180-*\n"
 
 # define refresh_spheremonics 0
 # define release_spheremonics 0
@@ -888,7 +888,7 @@ draw_spheremonics (ModeInfo *mi)
       print_gl_string (mi->dpy, cc->font, cc->font_list,
                        mi->xgwa.width, mi->xgwa.height,
                        10, mi->xgwa.height - 10,
-                       buf);
+                       buf, False);
     }
 
   if (!static_parms)
index 5d53a4a0a5b308e440e0134b96ec20a82c3cf95f..5e6f437e50d8df7e578c89419d0eed42c972988f 100644 (file)
@@ -65,8 +65,8 @@ Draw Grid.  Boolean.
 .B \-bbox | \-no-bbox
 Draw Bounding Box.  Boolean.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index d00c93b8fe628b33d77020bdc4019265ee9f6887..1a432d12112923b840f2c7b83ccd33c0ddce3ba2 100644 (file)
@@ -42,8 +42,8 @@ Make sproingies "smart", so they do not fall down the edge.
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 10f96b5f55dffa674361d1d5b94c257dbeaebb7e..3216dd37b27c4b14443e2203e14a7c25ca07b1ee 100644 (file)
@@ -5,8 +5,6 @@
 static const char sccsid[] = "@(#)stairs.c     4.07 97/11/24 xlockmore";
 #endif
 
-#undef DEBUG_LISTS
-
 /*-
  * Permission to use, copy, modify, and distribute this software and its
  * documentation for any purpose and without fee is hereby granted,
@@ -60,8 +58,8 @@ static const char sccsid[] = "@(#)stairs.c    4.07 97/11/24 xlockmore";
 #ifdef STANDALONE
 # define DEFAULTS                      "*delay:                20000   \n" \
                                                        "*showFPS:      False   \n"
+
 # define refresh_stairs 0
-# define stairs_handle_event 0
 # include "xlockmore.h"                /* from the xscreensaver distribution */
 #else /* !STANDALONE */
 # include "xlock.h"                    /* from the xlockmore distribution */
@@ -71,6 +69,8 @@ static const char sccsid[] = "@(#)stairs.c    4.07 97/11/24 xlockmore";
 #ifdef USE_GL
 
 #include "e_textures.h"
+#include "sphere.h"
+#include "gltrackball.h"
 
 ENTRYPOINT ModeSpecOpt stairs_opts =
 {0, NULL, 0, NULL, NULL};
@@ -98,11 +98,13 @@ ModStruct   stairs_description =
 typedef struct {
        GLint       WindH, WindW;
        GLfloat     step;
-       Bool        direction;
+       int         rotating;
        int         AreObjectsDefined[1];
        int         sphere_position;
        int         sphere_tick;
        GLXContext *glx_context;
+    trackball_state *trackball;
+    Bool button_down_p;
     GLuint objects;
 } stairsstruct;
 
@@ -115,86 +117,41 @@ static const float position1[] = {-1.0, -1.0, 1.0, 0.0};
 static const float lmodel_ambient[] = {0.5, 0.5, 0.5, 1.0};
 static const float lmodel_twoside[] = {GL_TRUE};
 
-#if 0
-static const float MaterialRed[] = {0.7, 0.0, 0.0, 1.0};
-static const float MaterialGreen[] = {0.1, 0.5, 0.2, 1.0};
-static const float MaterialBlue[] = {0.0, 0.0, 0.7, 1.0};
-static const float MaterialCyan[] = {0.2, 0.5, 0.7, 1.0};
-static const float MaterialMagenta[] = {0.6, 0.2, 0.5, 1.0};
-static const float MaterialGray[] = {0.2, 0.2, 0.2, 1.0};
-static const float MaterialGray5[] = {0.5, 0.5, 0.5, 1.0};
-static const float MaterialGray6[] = {0.6, 0.6, 0.6, 1.0};
-static const float MaterialGray8[] = {0.8, 0.8, 0.8, 1.0};
-
-#endif
 static const float MaterialYellow[] = {0.7, 0.7, 0.0, 1.0};
 static const float MaterialWhite[] = {0.7, 0.7, 0.7, 1.0};
 
-static const float positions[] =
-{
-       -2.5, 4.0, 0.0,         /* First one is FUDGED :) */
-       -3.0, 3.25, 1.0,
-       -3.0, 4.4, 1.5,
-       -3.0, 3.05, 2.0,
-       -3.0, 4.2, 2.5,
-
-       -3.0, 2.85, 3.0,
-       -2.5, 4.0, 3.0,
-       -2.0, 2.75, 3.0,
-       -1.5, 3.9, 3.0,
-       -1.0, 2.65, 3.0,
-       -0.5, 3.8, 3.0,
-       0.0, 2.55, 3.0,
-       0.5, 3.7, 3.0,
-       1.0, 2.45, 3.0,
-       1.5, 3.6, 3.0,
-       2.0, 2.35, 3.0,
-
-       2.0, 3.5, 2.5,
-       2.0, 2.25, 2.0,
-       2.0, 3.4, 1.5,
-       2.0, 2.15, 1.0,
-       2.0, 3.3, 0.5,
-       2.0, 2.05, 0.0,
-       2.0, 3.2, -0.5,
-       2.0, 1.95, -1.0,
-       2.0, 3.1, -1.5,
-       2.0, 1.85, -2.0,
-
-       1.5, 2.9, -2.0,
-       1.0, 1.65, -2.0,
-       0.5, 2.7, -2.0,
-       0.0, 1.55, -2.0,
-       -0.5, 2.5, -2.0,
-       -1.0, 1.45, -2.0,
+static const float ball_positions[] = {
+  -3.0, 3.0, 1.0,
+  -3.0, 2.8, 2.0,
+  -3.0, 2.6, 3.0,
+
+  -2.0, 2.4, 3.0,
+  -1.0, 2.2, 3.0,
+   0.0, 2.0, 3.0,
+   1.0, 1.8, 3.0,
+   2.0, 1.6, 3.0,
+
+   2.0, 1.5, 2.0,
+   2.0, 1.4, 1.0,
+   2.0, 1.3, 0.0,
+   2.0, 1.2, -1.0,
+   2.0, 1.1, -2.0,
+
+   1.0, 0.9, -2.0,
+   0.0, 0.7, -2.0,
+  -1.0, 0.5, -2.0,
 };
 
-#define NPOSITIONS ((sizeof positions) / (sizeof positions[0]))
-
-#define SPHERE_TICKS 8
+#define NPOSITIONS ((sizeof ball_positions) / (sizeof ball_positions[0]) / 3)
+#define SPHERE_TICKS 32
 
 static stairsstruct *stairs = NULL;
 
-#define ObjSphere    0
-
-#define PlankWidth      3.0
-#define PlankHeight     0.35
-#define PlankThickness  0.15
-
-static void
-mySphere(float radius)
-{
-       GLUquadricObj *quadObj;
-
-       quadObj = gluNewQuadric();
-       gluQuadricDrawStyle(quadObj, (GLenum) GLU_FILL);
-       gluSphere(quadObj, radius, 16, 16);
-       gluDeleteQuadric(quadObj);
-}
-
-static void
+static int
 draw_block(GLfloat width, GLfloat height, GLfloat thickness)
 {
+    int polys = 0;
+       glFrontFace(GL_CCW);
        glBegin(GL_QUADS);
        glNormal3f(0, 0, 1);
        glTexCoord2f(0, 0);
@@ -205,6 +162,7 @@ draw_block(GLfloat width, GLfloat height, GLfloat thickness)
        glVertex3f(width, height, thickness);
        glTexCoord2f(0, 1);
        glVertex3f(-width, height, thickness);
+    polys++;
        glNormal3f(0, 0, -1);
        glTexCoord2f(0, 0);
        glVertex3f(-width, height, -thickness);
@@ -214,6 +172,7 @@ draw_block(GLfloat width, GLfloat height, GLfloat thickness)
        glVertex3f(width, -height, -thickness);
        glTexCoord2f(0, 1);
        glVertex3f(-width, -height, -thickness);
+    polys++;
        glNormal3f(0, 1, 0);
        glTexCoord2f(0, 0);
        glVertex3f(-width, height, thickness);
@@ -223,6 +182,7 @@ draw_block(GLfloat width, GLfloat height, GLfloat thickness)
        glVertex3f(width, height, -thickness);
        glTexCoord2f(0, 1);
        glVertex3f(-width, height, -thickness);
+    polys++;
        glNormal3f(0, -1, 0);
        glTexCoord2f(0, 0);
        glVertex3f(-width, -height, -thickness);
@@ -232,6 +192,7 @@ draw_block(GLfloat width, GLfloat height, GLfloat thickness)
        glVertex3f(width, -height, thickness);
        glTexCoord2f(0, 1);
        glVertex3f(-width, -height, thickness);
+    polys++;
        glNormal3f(1, 0, 0);
        glTexCoord2f(0, 0);
        glVertex3f(width, -height, thickness);
@@ -241,6 +202,7 @@ draw_block(GLfloat width, GLfloat height, GLfloat thickness)
        glVertex3f(width, height, -thickness);
        glTexCoord2f(0, 1);
        glVertex3f(width, height, thickness);
+    polys++;
        glNormal3f(-1, 0, 0);
        glTexCoord2f(0, 0);
        glVertex3f(-width, height, thickness);
@@ -250,20 +212,23 @@ draw_block(GLfloat width, GLfloat height, GLfloat thickness)
        glVertex3f(-width, -height, -thickness);
        glTexCoord2f(0, 1);
        glVertex3f(-width, -height, thickness);
+    polys++;
        glEnd();
+    return polys;
 }
 
 static void
 draw_stairs_internal(ModeInfo * mi)
 {
-       stairsstruct *sp = &stairs[MI_SCREEN(mi)];
        GLfloat     X;
 
+    mi->polygon_count = 0;
+
        glPushMatrix();
        glPushMatrix();
        glTranslatef(-3.0, 0.1, 2.0);
        for (X = 0; X < 2; X++) {
-               draw_block(0.5, 2.7 + 0.1 * X, 0.5);
+        mi->polygon_count += draw_block(0.5, 2.7 + 0.1 * X, 0.5);
                glTranslatef(0.0, 0.1, -1.0);
        }
        glPopMatrix();
@@ -271,122 +236,78 @@ draw_stairs_internal(ModeInfo * mi)
        glPushMatrix();
 
        for (X = 0; X < 6; X++) {
-               draw_block(0.5, 2.6 - 0.1 * X, 0.5);
+               mi->polygon_count += draw_block(0.5, 2.6 - 0.1 * X, 0.5);
                glTranslatef(1.0, -0.1, 0.0);
        }
        glTranslatef(-1.0, -0.9, -1.0);
        for (X = 0; X < 5; X++) {
-               draw_block(0.5, 3.0 - 0.1 * X, 0.5);
+               mi->polygon_count += draw_block(0.5, 3.0 - 0.1 * X, 0.5);
                glTranslatef(0.0, 0.0, -1.0);
        }
        glTranslatef(-1.0, -1.1, 1.0);
        for (X = 0; X < 3; X++) {
-               draw_block(0.5, 3.5 - 0.1 * X, 0.5);
+               mi->polygon_count += draw_block(0.5, 3.5 - 0.1 * X, 0.5);
                glTranslatef(-1.0, -0.1, 0.0);
        }
        glPopMatrix();
        glPopMatrix();
+}
 
-       glPushMatrix();
-       glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialYellow);
-
-    {
-      int pos  = sp->sphere_position;
-      int ppos = sp->sphere_position - 3;
-      int npos = sp->sphere_position + 3;
-      GLfloat spx, spy, spz;
-      GLfloat dx, dy, dz;
-      int div;
-
-      if (ppos < 0) ppos += NPOSITIONS;
-      if (npos >= NPOSITIONS) npos -= NPOSITIONS;
-
-      if (sp->sphere_tick < 0)
-        {
-          dx = positions[ppos]   - positions[pos];
-          dy = positions[ppos+1] - positions[pos+1];
-          dz = positions[ppos+2] - positions[pos+2];
-          div = SPHERE_TICKS + sp->sphere_tick;
-        }
-      else
-        {
-          dx = positions[npos]   - positions[pos];
-          dy = positions[npos+1] - positions[pos+1];
-          dz = positions[npos+2] - positions[ppos+2];
-          div = SPHERE_TICKS - sp->sphere_tick;
-        }
-        
-      spx = positions[pos];
-      spy = positions[pos+1];
-      spz = positions[pos+2];
-      if (div != 0)
-        {
-          spx += dx / div;
-          spy += dy / div;
-          spz += dz / div;
-        }
-
-
-      spy -= 0.5;   /* move the bottom of the ball closer to the stairs */
-
-
-#ifdef DEBUG
-      fprintf(stderr, "%3d %3d   %2.2f %2.2f %2.2f  %2.2f %2.2f %2.2f\n",
-              sp->sphere_position, sp->sphere_tick,
-              dx, dy, dz,
-              spx, spy, spz);
+/*#define DEBUG*/
+/*#define DEBUG_PATH*/
 
-      glBegin(GL_LINE_LOOP);   /* path 1 */
-      glVertex3f(positions[pos],  positions[pos+1],  positions[pos+2]);
-      glVertex3f(positions[npos], positions[npos+1], positions[npos+2]);
-      glEnd();
+static int
+draw_sphere(int pos, int tick)
+{
+    int pos2 = (pos+1) % NPOSITIONS;
+    GLfloat x1 = ball_positions[pos*3];
+    GLfloat y1 = ball_positions[pos*3+1];
+    GLfloat z1 = ball_positions[pos*3+2];
+    GLfloat x2 = ball_positions[pos2*3];
+    GLfloat y2 = ball_positions[pos2*3+1];
+    GLfloat z2 = ball_positions[pos2*3+2];
+    GLfloat frac = tick / (GLfloat) SPHERE_TICKS;
+    GLfloat x = x1 + (x2 - x1) * frac;
+    GLfloat y = y1 + (y2 - y1) * frac + (2 * sin (M_PI * frac));
+    GLfloat z = z1 + (z2 - z1) * frac;
+    int polys = 0;
 
-      glBegin(GL_LINE_LOOP);   /* path 2 */
-      glVertex3f(positions[pos],  positions[pos+1],  positions[pos+2]);
-      glVertex3f(positions[ppos], positions[ppos+1], positions[ppos+2]);
-      glEnd();
+       glPushMatrix();
 
-      glBegin(GL_LINE_LOOP);  /* base origin */
-      glVertex3f(positions[pos], positions[pos+1]-10, positions[pos+2]);
-      glVertex3f(positions[pos], positions[pos+1]+10, positions[pos+2]);
-      glEnd();
+# ifdef DEBUG_PATH
+    glVertex3f(x, y, z);
+    if (tick == 0) {
+      glVertex3f(x, y-7.5, z);
+      glVertex3f(x, y, z); glVertex3f(x, y, z-0.6);
+      glVertex3f(x, y, z); glVertex3f(x, y, z+0.6);
+      glVertex3f(x, y, z); glVertex3f(x+0.6, y, z);
+      glVertex3f(x, y, z); glVertex3f(x-0.6, y, z);
+      glVertex3f(x, y, z);
+    }
 
-      glBegin(GL_LINE_LOOP);  /* base origin */
-      glVertex3f(positions[pos]-10, positions[pos+1], positions[pos+2]);
-      glVertex3f(positions[pos]+10, positions[pos+1], positions[pos+2]);
-      glEnd();
+# else /* !DEBUG_PATH */
+    y += 0.5;
+    glTranslatef(x, y, z);
 
-      glBegin(GL_LINE_LOOP);  /* base origin */
-      glVertex3f(positions[pos], positions[pos+1], positions[pos+2]-10);
-      glVertex3f(positions[pos], positions[pos+1], positions[pos+2]+10);
-      glEnd();
-#endif /* DEBUG */
+    glScalef (0.5, 0.5, 0.5);
 
-      glTranslatef(spx, spy, spz);
+    /* make ball a little smaller on the gap to obscure distance */
+       if (pos == NPOSITIONS-1)
+      glScalef (0.95, 0.95, 0.95);
 
-#ifdef DEBUG  /* ball origin */
-      glBegin(GL_LINE_LOOP); glVertex3f(0,-2,0); glVertex3f(0,2,0); glEnd();
-      glBegin(GL_LINE_LOOP); glVertex3f(-2,0,0); glVertex3f(2,0,0); glEnd();
-      glBegin(GL_LINE_LOOP); glVertex3f(0,0,-2); glVertex3f(0,0,2); glEnd();
-#endif /* DEBUG */
-    }
+       glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialYellow);
+    glDisable (GL_TEXTURE_2D);
+       glShadeModel(GL_SMOOTH);
+    polys += unit_sphere (32, 32, False);
+       glShadeModel(GL_FLAT);
+    glEnable (GL_TEXTURE_2D);
+#endif /* !DEBUG_PATH */
 
-       if (sp->sphere_position == 0)   /* FUDGE soo its not so obvious */
-               mySphere(0.48);
-       else
-               mySphere(0.5);
        glPopMatrix();
+    return polys;
+}
 
-    if (++sp->sphere_tick >= SPHERE_TICKS-1)
-      {
-        sp->sphere_tick = -(SPHERE_TICKS-2);
-        sp->sphere_position += 3;
-        sp->sphere_position += 3;
-      }
 
-       if (sp->sphere_position >= NPOSITIONS)
-               sp->sphere_position = 0;
-}
 
 ENTRYPOINT void
 reshape_stairs (ModeInfo * mi, int width, int height)
@@ -410,6 +331,60 @@ reshape_stairs (ModeInfo * mi, int width, int height)
        }
 }
 
+ENTRYPOINT Bool
+stairs_handle_event (ModeInfo *mi, XEvent *event)
+{
+  stairsstruct *sp = &stairs[MI_SCREEN(mi)];
+
+  if (event->xany.type == ButtonPress &&
+      event->xbutton.button == Button1)
+    {
+      sp->button_down_p = True;
+      gltrackball_start (sp->trackball,
+                         event->xbutton.x, event->xbutton.y,
+                         MI_WIDTH (mi), MI_HEIGHT (mi));
+      return True;
+    }
+  else if (event->xany.type == ButtonRelease &&
+           event->xbutton.button == Button1)
+    {
+      sp->button_down_p = False;
+      return True;
+    }
+  else if (event->xany.type == ButtonPress &&
+           (event->xbutton.button == Button4 ||
+            event->xbutton.button == Button5 ||
+            event->xbutton.button == Button6 ||
+            event->xbutton.button == Button7))
+    {
+      gltrackball_mousewheel (sp->trackball, event->xbutton.button, 10,
+                              !!event->xbutton.state);
+      return True;
+    }
+  else if (event->xany.type == MotionNotify &&
+           sp->button_down_p)
+    {
+      gltrackball_track (sp->trackball,
+                         event->xmotion.x, event->xmotion.y,
+                         MI_WIDTH (mi), MI_HEIGHT (mi));
+      return True;
+    }
+  else if (event->xany.type == KeyPress)
+    {
+      KeySym keysym;
+      char c = 0;
+      XLookupString (&event->xkey, &c, 1, &keysym, 0);
+      if (c == ' ')
+        {
+          gltrackball_reset (sp->trackball);
+          return True;
+        }
+    }
+
+  return False;
+}
+
+
 static void
 pinit(void)
 {
@@ -429,7 +404,6 @@ pinit(void)
        glEnable(GL_LIGHT0);
        glEnable(GL_LIGHT1);
        glEnable(GL_NORMALIZE);
-       glFrontFace(GL_CCW);
        glCullFace(GL_BACK);
 
        glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialWhite);
@@ -476,13 +450,10 @@ init_stairs (ModeInfo * mi)
                        return;
        }
        sp = &stairs[screen];
-       sp->step = 0.0;
-
-    /* make multiple screens rotate at slightly different rates. */
-    sp->step -= frand(5.0);
 
-       sp->direction = LRAND() & 1;
-       sp->sphere_position = NRAND(NPOSITIONS / 3) * 3;
+       sp->step = 0.0;
+       sp->rotating = 0;
+       sp->sphere_position = NRAND(NPOSITIONS);
        sp->sphere_tick = 0;
 
        if ((sp->glx_context = init_GL(mi)) != NULL) {
@@ -495,6 +466,8 @@ init_stairs (ModeInfo * mi)
        } else {
                MI_CLEARWINDOW(mi);
        }
+
+    sp->trackball = gltrackball_init ();
 }
 
 ENTRYPOINT void
@@ -522,23 +495,69 @@ draw_stairs (ModeInfo * mi)
                glScalef(Scale4Iconic * sp->WindH / sp->WindW, Scale4Iconic, Scale4Iconic);
        }
 
+    gltrackball_rotate (sp->trackball);
+
+    glTranslatef(0, 0.5, 0);
        glRotatef(44.5, 1, 0, 0);
-       glRotatef(50 + ((sp->direction) ? 1 : -1) *
-              ((sp->step * 100 > 120) ? sp->step * 100 - 120 : 0), 0, 1, 0);
-       if (sp->step * 100 >= 360 + 120) {      /* stop showing secrets */
+    glRotatef(50, 0, 1, 0);
+
+    if (!sp->rotating) {
+      if ((LRAND() % 500) == 0)
+        sp->rotating = (LRAND() & 1) ? 1 : -1;
+    }
+
+    if (sp->rotating) {
+      glRotatef(sp->rotating * sp->step, 0, 1, 0);
+      if (sp->step >= 360) {
+        sp->rotating = 0;
                sp->step = 0;
-               sp->direction = LRAND() & 1;
-       }
+      }
+
+# ifndef DEBUG
+      if (!sp->button_down_p)
+        sp->step += 2;
+# endif /* DEBUG */
+    }
+
        draw_stairs_internal(mi);
 
+
+# ifdef DEBUG
+    {
+      int i, j;
+#  ifdef DEBUG_PATH
+      glDisable(GL_LIGHTING);
+      glDisable(GL_TEXTURE_2D);
+      glBegin (GL_LINE_LOOP);
+#  endif /* DEBUG_PATH */
+      for (i = 0; i < NPOSITIONS; i ++)
+        for (j = 0; j < SPHERE_TICKS; j++)
+          mi->polygon_count += draw_sphere(i, j);
+#  ifdef DEBUG_PATH
+      glEnd();
+      glEnable(GL_LIGHTING);
+      glEnable(GL_TEXTURE_2D);
+#  endif /* DEBUG_PATH */
+    }
+#else  /* !DEBUG */
+    mi->polygon_count += draw_sphere(sp->sphere_position, sp->sphere_tick);
+#endif /* !DEBUG */
+
+    if (sp->button_down_p)
+      ;
+    else if (++sp->sphere_tick >= SPHERE_TICKS)
+      {
+        sp->sphere_tick = 0;
+        if (++sp->sphere_position >= NPOSITIONS)
+          sp->sphere_position = 0;
+      }
+
        glPopMatrix();
 
     if (mi->fps_p) do_fps (mi);
        glFlush();
 
        glXSwapBuffers(display, window);
-
-       sp->step += 0.025;
 }
 
 #ifndef STANDALONE
index f741999652ec7c118abc32d07f54bcbf29c10cce..898f7ffac2ba87a168341983dc745f28dd88bf5c 100644 (file)
@@ -30,8 +30,8 @@ Per-frame delay, in microseconds.  Default: 20000 (0.02 seconds.).
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 5827da7538cbe526dcf36fad608af1a5a2ccdecc..9823e03ab9a76d8fbc074fbd399076c4c749f016 100644 (file)
@@ -1,5 +1,4 @@
-/*
- * starwars, Copyright (c) 1998-2007 Jamie Zawinski <jwz@jwz.org> and
+/* starwars, Copyright (c) 1998-2008 Jamie Zawinski <jwz@jwz.org> and
  * Claudio Matsuoka <claudio@helllabs.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
 #define DEF_LINES      "125"
 #define DEF_STEPS      "35"
 #define DEF_SPIN       "0.03"
-#define DEF_FONT_SIZE  "-1"
+#define DEF_SIZE       "-1"
 #define DEF_COLUMNS    "-1"
-#define DEF_WRAP       "True"
-#define DEF_ALIGN      "Center"
+#define DEF_LINE_WRAP  "True"
+#define DEF_ALIGNMENT  "Center"
 #define DEF_SMOOTH     "True"
 #define DEF_THICK      "True"
 #define DEF_FADE       "True"
@@ -158,7 +157,7 @@ static XrmOptionDescRec opts[] = {
   {"-lines",       ".lines",     XrmoptionSepArg, 0 },
   {"-steps",       ".steps",     XrmoptionSepArg, 0 },
   {"-spin",        ".spin",      XrmoptionSepArg, 0 },
-  {"-size",       ".fontSize",  XrmoptionSepArg, 0 },
+  {"-size",       ".size",      XrmoptionSepArg, 0 },
   {"-columns",    ".columns",   XrmoptionSepArg, 0 },
 /*{"-font",        ".font",      XrmoptionSepArg, 0 },*/
   {"-fade",        ".fade",      XrmoptionNoArg,  "True"   },
@@ -184,10 +183,10 @@ static argtype vars[] = {
   {&max_lines,      "lines",     "Integer",    DEF_LINES,     t_Int},
   {&scroll_steps,   "steps",     "Integer",    DEF_STEPS,     t_Int},
   {&star_spin,      "spin",      "Float",      DEF_SPIN,      t_Float},
-  {&font_size,      "fontSize",  "Float",      DEF_FONT_SIZE, t_Float},
+  {&font_size,      "size",      "Float",      DEF_SIZE,      t_Float},
   {&target_columns, "columns",   "Integer",    DEF_COLUMNS,   t_Int},
-  {&wrap_p,         "lineWrap",  "Boolean",    DEF_WRAP,      t_Bool},
-  {&alignment_str,  "alignment", "Alignment",  DEF_ALIGN,     t_String},
+  {&wrap_p,         "lineWrap",  "Boolean",    DEF_LINE_WRAP, t_Bool},
+  {&alignment_str,  "alignment", "Alignment",  DEF_ALIGNMENT, t_String},
   {&smooth_p,       "smooth",    "Boolean",    DEF_SMOOTH,    t_Bool},
   {&thick_p,        "thick",     "Boolean",    DEF_THICK,     t_Bool},
   {&fade_p,         "fade",      "Boolean",    DEF_FADE,      t_Bool},
index f5f717b48701158193077356947334a4af68c6b1..d7dc7f22b7c6300218c9dd7460819b37adce6386 100644 (file)
@@ -145,9 +145,7 @@ characters that are close to the foreground.  This will make the text
 appear unnaturally skinny, but may improve performance.
 .TP 8
 .B \-fps
-Display a running tally of how many frames per second are being rendered.
-In conjunction with \fB\-delay 0\fP, this can be a useful benchmark of 
-your GL performance.
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index fe40f557c1174d1dc3c7456c78c19ac4198cee99..096dbbc105c8697e3053cc1c135b8a6784e1d59c 100644 (file)
@@ -24,7 +24,7 @@ extern void final_move(stonerview_state *);
 extern void move_increment(stonerview_state *);
 
 
-extern stonerview_state * init_view(int wireframe_p);
+extern stonerview_state * init_view(int wireframe_p, int transparent_p);
 extern void win_draw(stonerview_state *);
 extern void win_release(stonerview_state *);
 
index 167b6948625ba6a6d88cabc305cafaf9a0d0995a..08fc525e9a7e4a007f53dca57b4598307aa480c2 100644 (file)
 #include <stdlib.h>
 #include "stonerview.h"
 
-static GLfloat view_rotx = -45.0, view_roty = 0.0, view_rotz = 0.0;
+static GLfloat view_rotx = -45.0, view_roty = 0.0, view_rotz = 15.0;
 static GLfloat view_scale = 4.0;
 
 
 stonerview_state *
-init_view(int wireframe_p)
+init_view(int wireframe_p, int transparent_p)
 {
   stonerview_state *st = (stonerview_state *) calloc (1, sizeof(*st));
 
   st->wireframe = wireframe_p;
+  st->transparent = transparent_p;
   st->num_els = NUM_ELS;
   st->elist = (elem_t *) calloc (st->num_els, sizeof(*st->elist));
 
@@ -40,12 +41,20 @@ init_view(int wireframe_p)
   /* for trackball, two-sided lighting and no face culling */
   glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
 
+  glEnable(GL_CULL_FACE);
   glEnable(GL_LIGHTING);
   glEnable(GL_LIGHT0);
   glEnable(GL_DEPTH_TEST);
 
   glEnable(GL_NORMALIZE);
 
+  glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
+  glEnable(GL_LINE_SMOOTH);
+  glEnable(GL_BLEND);
+
+  if (st->transparent)
+    glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+
   return st;
 }
 
index dc578622d60f44a7008103397c53ce90e50249fd..0354431b65b33a8cddbb94366db1427e9d7f622e 100644 (file)
@@ -35,6 +35,8 @@
 #include "stonerview.h"
 #include "gltrackball.h"
 
+#define DEF_TRANSPARENT "True"
+
 typedef struct {
   GLXContext *glx_context;
   stonerview_state *st;
@@ -44,7 +46,19 @@ typedef struct {
 
 static stonerview_configuration *bps = NULL;
 
-ENTRYPOINT ModeSpecOpt stonerview_opts = {0, NULL, 0, NULL, NULL};
+static Bool transparent_p;
+
+
+static XrmOptionDescRec opts[] = {
+  { "-transparent",   ".transparent",   XrmoptionNoArg, "True" },
+  { "+transparent",   ".transparent",   XrmoptionNoArg, "False" },
+};
+
+static argtype vars[] = {
+  {&transparent_p, "transparent", "Transparent", DEF_TRANSPARENT, t_Bool},
+};
+
+ENTRYPOINT ModeSpecOpt stonerview_opts = {countof(opts), opts, countof(vars), vars, NULL};
 
 
 ENTRYPOINT void
@@ -83,7 +97,7 @@ init_stonerview (ModeInfo *mi)
   bp->glx_context = init_GL(mi);
 
   bp->trackball = gltrackball_init ();
-  bp->st = init_view(MI_IS_WIREFRAME(mi));
+  bp->st = init_view(MI_IS_WIREFRAME(mi), transparent_p);
   init_move(bp->st);
 
   reshape_stonerview (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
index 7a428dc8f274f606f019ef7c8f4561784590154f..4ba6aed7c96ad191d9d31fb5e25c5c5091448d95 100644 (file)
@@ -27,6 +27,7 @@ typedef struct stonerview_state stonerview_state;
 struct stonerview_state {
 
   int wireframe;
+  int transparent;
 
   /* The list of polygons. This is filled in by move_increment(), and rendered
      by perform_render(). */
index 83d439db7de553c0db83318fae5d95e512367271..820e9af198fdecb9bf6a377a8f9da6e46d795718 100644 (file)
@@ -8,6 +8,7 @@ stonerview - 3D undulating ribbons of squares.
 [\-window]
 [\-root]
 [\-wireframe]
+[\-fps]
 .SH DESCRIPTION
 Chains of colorful squares dance around each other in complex spiral
 patterns.  This is a clone of the SGI "electropaint" screen saver.
@@ -25,6 +26,9 @@ Draw on the root window.
 .TP 8
 .B \-wireframe
 Render in wireframe instead of solid.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 68dacee47dc8d396225da5a48d27520a8a11682f..f7eb3e6f9b2c6eff5c4a38d160d6928a96e58e04 100644 (file)
@@ -76,6 +76,7 @@ static const char sccsid[] = "@(#)superquadrics.c     4.07 97/11/24 xlockmore";
                                        "*cycles:               40      \n"                     \
                                        "*showFPS:      False   \n"                     \
                                        "*wireframe:    False   \n"
+
 # define superquadrics_handle_event 0
 # include "xlockmore.h"                                /* from the xscreensaver distribution */
 #else  /* !STANDALONE */
@@ -344,12 +345,13 @@ inputs(superquadricsstruct * sp)
 }
 
 
-static void
+static int
 DoneScale(superquadricsstruct * sp)
 {
        double      xx, yy, zz, xp = 0, yp = 0, zp = 0, xn, yn, zn, xnp = 0,
                    ynp = 0, znp = 0;
        int         ih, iv;
+    int polys = 0;
 
        /* Hey don't knock my 2-letter variable names.  Simon's BASIC rules, man! ;-> */
        /* Just kidding..... */
@@ -374,10 +376,12 @@ DoneScale(superquadricsstruct * sp)
                                        if (ih > 1) {
                                                glVertex3f(xx, yy, zz);
                                                glVertex3f(sp->Prevxx[iv], sp->Prevyy[iv], sp->Prevzz[iv]);
+                        polys++;
                                        }
                                        if (iv > 1) {
                                                glVertex3f(xx, yy, zz);
                                                glVertex3f(sp->Prevxx[iv - 1], sp->Prevyy[iv - 1], sp->Prevzz[iv - 1]);
+                        polys++;
                                        }
 /* PURIFY 4.0.1 reports an unitialized memory read on the next line when using
    * MesaGL 2.2 and -mono.  This has been fixed in MesaGL 2.3 and later. */
@@ -406,6 +410,7 @@ DoneScale(superquadricsstruct * sp)
                                        if (!sp->flatshade)
                                                glNormal3f(sp->Prevxn[iv - 1], sp->Prevyn[iv - 1], sp->Prevzn[iv - 1]);
                                        glVertex3f(sp->Prevxx[iv - 1], sp->Prevyy[iv - 1], sp->Prevzz[iv - 1]);
+                    polys++;
                                        glEnd();
                                }
                                if (sp->shownorms) {
@@ -415,6 +420,7 @@ DoneScale(superquadricsstruct * sp)
                                        glBegin(GL_LINES);
                                        glVertex3f(xx, yy, zz);
                                        glVertex3f(xx + xn, yy + yn, zz + zn);
+                    polys++;
                                        glEnd();
                                        if (!sp->flatshade)
                                                glShadeModel(GL_SMOOTH);
@@ -437,6 +443,7 @@ DoneScale(superquadricsstruct * sp)
 
                }               /* next */
        }                       /* next */
+    return polys;
 }
 
 /**** End of really old code ****/
@@ -539,9 +546,10 @@ NextSuperquadric(superquadricsstruct * sp)
        }
 }
 
-static void
+static int
 DisplaySuperquadrics(superquadricsstruct * sp)
 {
+    int polys = 0;
        glDrawBuffer(GL_BACK);
        if (sp->wireframe)
                glClear(GL_COLOR_BUFFER_BIT);
@@ -560,18 +568,19 @@ DisplaySuperquadrics(superquadricsstruct * sp)
 
        SetCull(0, sp);
 
-       DoneScale(sp);
+       polys = DoneScale(sp);
 
        glPopMatrix();
 
        /* Remember to flush & swap the buffers after calling this function! */
+    return polys;
 }
 
-static void
+static int
 NextSuperquadricDisplay(superquadricsstruct * sp)
 {
        NextSuperquadric(sp);
-       DisplaySuperquadrics(sp);
+       return DisplaySuperquadrics(sp);
 }
 
 #define MINSIZE 200
@@ -751,7 +760,7 @@ draw_superquadrics(ModeInfo * mi)
 
        glXMakeCurrent(display, window, *(sp->glx_context));
 
-       NextSuperquadricDisplay(sp);
+    mi->polygon_count = NextSuperquadricDisplay(sp);
 
     if (mi->fps_p) do_fps (mi);
        glFinish();
index e925b17dad1603c1f3253987630a012cbd125c98..8a127f0ba78e98053bc525065a30f4dbdd30a1f5 100644 (file)
@@ -44,8 +44,8 @@ Per-frame delay, in microseconds.  Default: 40000 (0.04 seconds.).
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 187c3a712ff1a2493660c4973fa525020c52bcb6..5a20c3b95a719c2848f6f49532b7c92651ef31eb 100644 (file)
@@ -18,9 +18,9 @@
 
 #define DEFAULTS       "*delay:        10000            \n" \
                        "*wireframe:    False         \n" \
-                       "*titleFont:  -*-times-bold-r-normal-*-180-*\n" \
-                       "*titleFont2: -*-times-bold-r-normal-*-120-*\n" \
-                       "*titleFont3: -*-times-bold-r-normal-*-80-*\n"  \
+                       "*titleFont:  -*-helvetica-medium-r-normal-*-180-*\n" \
+                       "*titleFont2: -*-helvetica-medium-r-normal-*-120-*\n" \
+                       "*titleFont3: -*-helvetica-medium-r-normal-*-80-*\n"  \
 
 # define refresh_tangram 0
 # define release_tangram 0
@@ -115,34 +115,38 @@ typedef struct {
 static tangram_configuration *tps = NULL;
 
 #define DEF_VIEWING_TIME "5"
-#define DEF_ROTATE_CAMERA "True"
+#define DEF_ROTATE "True"
 #define DEF_X_CAMERA_ROTATE "0.2"
 #define DEF_Y_CAMERA_ROTATE "0.5"
 #define DEF_Z_CAMERA_ROTATE "0"
-
+#define DEF_LABELS "True"
 
 static GLuint viewing_time;
 static Bool do_rotate;
+static Bool do_labels;
 static GLfloat x_camera_rotate;
 static GLfloat y_camera_rotate;
 static GLfloat z_camera_rotate;
 static int wire;
 
 static XrmOptionDescRec opts[] = {
-    {"-viewing_time", ".viewing_time", XrmoptionSepArg, 0},
+    {"-viewing_time", ".viewingTime", XrmoptionSepArg, 0},
     {"-rotate", ".rotate", XrmoptionNoArg, "True"},
     {"+rotate", ".rotate", XrmoptionNoArg, "False"},
-    {"-x_camera_rotate", ".x_camera_rotate", XrmoptionSepArg, 0},
-    {"-y_camera_rotate", ".y_camera_rotate", XrmoptionSepArg, 0},
-    {"-z_camera_rotate", ".z_camera_rotate", XrmoptionSepArg, 0}
+    {"-labels", ".labels", XrmoptionNoArg, "True"},
+    {"+labels", ".labels", XrmoptionNoArg, "False"},
+    {"-x_camera_rotate", ".xCameraRotate", XrmoptionSepArg, 0},
+    {"-y_camera_rotate", ".yCameraRotate", XrmoptionSepArg, 0},
+    {"-z_camera_rotate", ".zCameraRotate", XrmoptionSepArg, 0}
 };
 
 static argtype vars[] = {
-    {&viewing_time, "viewing_time", "Viewing Time", DEF_VIEWING_TIME, t_Int},
-    {&do_rotate, "rotate", "Rotate", DEF_ROTATE_CAMERA, t_Bool},
-    {&x_camera_rotate, "x_camera_rotate", "X Camera Rotate", DEF_X_CAMERA_ROTATE, t_Float},
-    {&y_camera_rotate, "y_camera_rotate", "Y Camera Rotate", DEF_Y_CAMERA_ROTATE, t_Float},
-    {&z_camera_rotate, "z_camera_rotate", "Z Camera Rotate", DEF_Z_CAMERA_ROTATE, t_Float}
+    {&viewing_time, "viewingTime", "ViewingTime", DEF_VIEWING_TIME, t_Int},
+    {&do_rotate, "rotate", "Rotate", DEF_ROTATE, t_Bool},
+    {&do_labels, "labels", "Labels", DEF_LABELS, t_Bool},
+    {&x_camera_rotate, "xCameraRotate", "XCameraRotate", DEF_X_CAMERA_ROTATE, t_Float},
+    {&y_camera_rotate, "yCameraRotate", "YCameraRotate", DEF_Y_CAMERA_ROTATE, t_Float},
+    {&z_camera_rotate, "zCameraRotate", "ZCameraRotate", DEF_Z_CAMERA_ROTATE, t_Float}
 };
 
 ENTRYPOINT ModeSpecOpt tangram_opts = { countof(opts), opts, countof(vars), vars, NULL };
@@ -752,7 +756,7 @@ static void draw_shapes(ModeInfo * mi)
     draw_tangram_shape(tp->tlg2);
     draw_tangram_shape(tp->sq);
     draw_tangram_shape(tp->rh);
-    glCallList(tp->name_list);
+    if (do_labels) glCallList(tp->name_list);
 }
 
 static void set_perspective(void)
@@ -1025,10 +1029,11 @@ ENTRYPOINT void draw_tangram(ModeInfo * mi)
     glPushMatrix();
 
     glLoadIdentity();
-    glNewList(tp->name_list, GL_COMPILE);
-    {
+    if (do_labels)
+      {
         XFontStruct *f;
         GLuint fl;
+        glNewList(tp->name_list, GL_COMPILE);
         if (MI_WIDTH(mi) >= 500 && MI_HEIGHT(mi) >= 375)
             f = tp->xfont1, fl = tp->font1_dlist;
         else if (MI_WIDTH(mi) >= 350 && MI_HEIGHT(mi) >= 260)
@@ -1039,9 +1044,9 @@ ENTRYPOINT void draw_tangram(ModeInfo * mi)
         glColor3f(0.8, 0.8, 0);
         print_gl_string(mi->dpy, f, fl,
                         mi->xgwa.width, mi->xgwa.height,
-                        10, mi->xgwa.height - 10, tp->pn);
-    }
-    glEndList();
+                        10, mi->xgwa.height - 10, tp->pn, False);
+        glEndList();
+      }
 
     glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white);
     glMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 128);
index 784651e0a8cf7a3d2a5deb636003fbc078b60805..c5d3980974a3f7b6824c6dd5063d5e3232283455 100644 (file)
@@ -11,6 +11,7 @@ tangram - watch the computer solve tangram puzzles.
 [\-wireframe]
 [\-viewing_time \fInumber\fP]
 [\-rotate]
+[\-fps]
 .SH DESCRIPTION
 The \fItangram\fP program uses a few basic shapes to build silhouettes of recognizable objects.
 .SH OPTIONS
@@ -39,6 +40,9 @@ should be displayed. Default: 5
 .TP 8
 .B \-rotate | \-no-rotate
 Rotate the camera around the puzzle.
+.TP 8
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
diff --git a/hacks/glx/teapot.c b/hacks/glx/teapot.c
new file mode 100644 (file)
index 0000000..373a8b2
--- /dev/null
@@ -0,0 +1,214 @@
+
+/* Copyright (c) Mark J. Kilgard, 1994. */
+
+/**
+(c) Copyright 1993, Silicon Graphics, Inc.
+
+ALL RIGHTS RESERVED
+
+Permission to use, copy, modify, and distribute this software
+for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that
+both the copyright notice and this permission notice appear in
+supporting documentation, and that the name of Silicon
+Graphics, Inc. not be used in advertising or publicity
+pertaining to distribution of the software without specific,
+written prior permission.
+
+THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU
+"AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR
+OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  IN NO
+EVENT SHALL SILICON GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE
+ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER,
+INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE,
+SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR
+NOT SILICON GRAPHICS, INC.  HAS BEEN ADVISED OF THE POSSIBILITY
+OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+US Government Users Restricted Rights
+
+Use, duplication, or disclosure by the Government is subject to
+restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+(c)(1)(ii) of the Rights in Technical Data and Computer
+Software clause at DFARS 252.227-7013 and/or in similar or
+successor clauses in the FAR or the DOD or NASA FAR
+Supplement.  Unpublished-- rights reserved under the copyright
+laws of the United States.  Contractor/manufacturer is Silicon
+Graphics, Inc., 2011 N.  Shoreline Blvd., Mountain View, CA
+94039-7311.
+
+OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+*/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "teapot.h"
+
+#ifdef HAVE_COCOA
+# include <OpenGL/gl.h>
+#else
+# include <GL/gl.h>
+#endif
+
+
+/* Rim, body, lid, and bottom data must be reflected in x
+   and y; handle and spout data across the y axis only.  */
+
+static long patchdata[][16] =
+{
+    /* rim */
+  {102, 103, 104, 105, 4, 5, 6, 7, 8, 9, 10, 11,
+    12, 13, 14, 15},
+    /* body */
+  {12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+    24, 25, 26, 27},
+  {24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36,
+    37, 38, 39, 40},
+    /* lid */
+  {96, 96, 96, 96, 97, 98, 99, 100, 101, 101, 101,
+    101, 0, 1, 2, 3,},
+  {0, 1, 2, 3, 106, 107, 108, 109, 110, 111, 112,
+    113, 114, 115, 116, 117},
+    /* bottom */
+  {118, 118, 118, 118, 124, 122, 119, 121, 123, 126,
+    125, 120, 40, 39, 38, 37},
+    /* handle */
+  {41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+    53, 54, 55, 56},
+  {53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+    28, 65, 66, 67},
+    /* spout */
+  {68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+    80, 81, 82, 83},
+  {80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+    92, 93, 94, 95}
+};
+/* *INDENT-OFF* */
+
+static float cpdata[][3] =
+{
+    {0.2, 0, 2.7}, {0.2, -0.112, 2.7}, {0.112, -0.2, 2.7}, {0,
+    -0.2, 2.7}, {1.3375, 0, 2.53125}, {1.3375, -0.749, 2.53125},
+    {0.749, -1.3375, 2.53125}, {0, -1.3375, 2.53125}, {1.4375,
+    0, 2.53125}, {1.4375, -0.805, 2.53125}, {0.805, -1.4375,
+    2.53125}, {0, -1.4375, 2.53125}, {1.5, 0, 2.4}, {1.5, -0.84,
+    2.4}, {0.84, -1.5, 2.4}, {0, -1.5, 2.4}, {1.75, 0, 1.875},
+    {1.75, -0.98, 1.875}, {0.98, -1.75, 1.875}, {0, -1.75,
+    1.875}, {2, 0, 1.35}, {2, -1.12, 1.35}, {1.12, -2, 1.35},
+    {0, -2, 1.35}, {2, 0, 0.9}, {2, -1.12, 0.9}, {1.12, -2,
+    0.9}, {0, -2, 0.9}, {-2, 0, 0.9}, {2, 0, 0.45}, {2, -1.12,
+    0.45}, {1.12, -2, 0.45}, {0, -2, 0.45}, {1.5, 0, 0.225},
+    {1.5, -0.84, 0.225}, {0.84, -1.5, 0.225}, {0, -1.5, 0.225},
+    {1.5, 0, 0.15}, {1.5, -0.84, 0.15}, {0.84, -1.5, 0.15}, {0,
+    -1.5, 0.15}, {-1.6, 0, 2.025}, {-1.6, -0.3, 2.025}, {-1.5,
+    -0.3, 2.25}, {-1.5, 0, 2.25}, {-2.3, 0, 2.025}, {-2.3, -0.3,
+    2.025}, {-2.5, -0.3, 2.25}, {-2.5, 0, 2.25}, {-2.7, 0,
+    2.025}, {-2.7, -0.3, 2.025}, {-3, -0.3, 2.25}, {-3, 0,
+    2.25}, {-2.7, 0, 1.8}, {-2.7, -0.3, 1.8}, {-3, -0.3, 1.8},
+    {-3, 0, 1.8}, {-2.7, 0, 1.575}, {-2.7, -0.3, 1.575}, {-3,
+    -0.3, 1.35}, {-3, 0, 1.35}, {-2.5, 0, 1.125}, {-2.5, -0.3,
+    1.125}, {-2.65, -0.3, 0.9375}, {-2.65, 0, 0.9375}, {-2,
+    -0.3, 0.9}, {-1.9, -0.3, 0.6}, {-1.9, 0, 0.6}, {1.7, 0,
+    1.425}, {1.7, -0.66, 1.425}, {1.7, -0.66, 0.6}, {1.7, 0,
+    0.6}, {2.6, 0, 1.425}, {2.6, -0.66, 1.425}, {3.1, -0.66,
+    0.825}, {3.1, 0, 0.825}, {2.3, 0, 2.1}, {2.3, -0.25, 2.1},
+    {2.4, -0.25, 2.025}, {2.4, 0, 2.025}, {2.7, 0, 2.4}, {2.7,
+    -0.25, 2.4}, {3.3, -0.25, 2.4}, {3.3, 0, 2.4}, {2.8, 0,
+    2.475}, {2.8, -0.25, 2.475}, {3.525, -0.25, 2.49375},
+    {3.525, 0, 2.49375}, {2.9, 0, 2.475}, {2.9, -0.15, 2.475},
+    {3.45, -0.15, 2.5125}, {3.45, 0, 2.5125}, {2.8, 0, 2.4},
+    {2.8, -0.15, 2.4}, {3.2, -0.15, 2.4}, {3.2, 0, 2.4}, {0, 0,
+    3.15}, {0.8, 0, 3.15}, {0.8, -0.45, 3.15}, {0.45, -0.8,
+    3.15}, {0, -0.8, 3.15}, {0, 0, 2.85}, {1.4, 0, 2.4}, {1.4,
+    -0.784, 2.4}, {0.784, -1.4, 2.4}, {0, -1.4, 2.4}, {0.4, 0,
+    2.55}, {0.4, -0.224, 2.55}, {0.224, -0.4, 2.55}, {0, -0.4,
+    2.55}, {1.3, 0, 2.55}, {1.3, -0.728, 2.55}, {0.728, -1.3,
+    2.55}, {0, -1.3, 2.55}, {1.3, 0, 2.4}, {1.3, -0.728, 2.4},
+    {0.728, -1.3, 2.4}, {0, -1.3, 2.4}, {0, 0, 0}, {1.425,
+    -0.798, 0}, {1.5, 0, 0.075}, {1.425, 0, 0}, {0.798, -1.425,
+    0}, {0, -1.5, 0.075}, {0, -1.425, 0}, {1.5, -0.84, 0.075},
+    {0.84, -1.5, 0.075}
+};
+
+static float tex[2][2][2] =
+{
+  { {0, 0},
+    {1, 0}},
+  { {0, 1},
+    {1, 1}}
+};
+
+
+int
+unit_teapot (int grid, int wire_p)
+{
+  GLenum type = wire_p ? GL_LINE : GL_FILL;
+  float p[4][4][3], q[4][4][3], r[4][4][3], s[4][4][3];
+  long i, j, k, l;
+  int polys = 0;
+
+  glPushAttrib(GL_ENABLE_BIT | GL_EVAL_BIT);
+  glEnable(GL_AUTO_NORMAL);
+  glEnable(GL_NORMALIZE);
+  glEnable(GL_MAP2_VERTEX_3);
+  glEnable(GL_MAP2_TEXTURE_COORD_2);
+  glFrontFace (GL_CW);
+  glPushMatrix();
+  glRotatef(270.0, 1.0, 0.0, 0.0);
+  glScalef(0.5, 0.5, 0.5);
+  glTranslatef(0.0, 0.0, -1.5);
+  for (i = 0; i < 10; i++) {
+    for (j = 0; j < 4; j++) {
+      for (k = 0; k < 4; k++) {
+        for (l = 0; l < 3; l++) {
+          p[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l];
+          q[j][k][l] = cpdata[patchdata[i][j * 4 + (3 - k)]][l];
+          if (l == 1)
+            q[j][k][l] *= -1.0;
+          if (i < 6) {
+            r[j][k][l] =
+              cpdata[patchdata[i][j * 4 + (3 - k)]][l];
+            if (l == 0)
+              r[j][k][l] *= -1.0;
+            s[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l];
+            if (l == 0)
+              s[j][k][l] *= -1.0;
+            if (l == 1)
+              s[j][k][l] *= -1.0;
+          }
+        }
+      }
+    }
+    glMap2f(GL_MAP2_TEXTURE_COORD_2, 0, 1, 2, 2, 0, 1, 4, 2,
+      &tex[0][0][0]);
+    glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+      &p[0][0][0]);
+    glMapGrid2f(grid, 0.0, 1.0, grid, 0.0, 1.0);
+    glEvalMesh2(type, 0, grid, 0, grid);
+    polys += grid*grid;
+    glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+      &q[0][0][0]);
+    glEvalMesh2(type, 0, grid, 0, grid);
+    polys += grid*grid;
+    if (i < 6) {
+      glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+        &r[0][0][0]);
+      glEvalMesh2(type, 0, grid, 0, grid);
+      polys += grid*grid;
+      glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4,
+        &s[0][0][0]);
+      glEvalMesh2(type, 0, grid, 0, grid);
+      polys += grid*grid;
+    }
+  }
+  glPopMatrix();
+  glPopAttrib();
+
+  return polys;
+}
diff --git a/hacks/glx/teapot.h b/hacks/glx/teapot.h
new file mode 100644 (file)
index 0000000..60b5fe5
--- /dev/null
@@ -0,0 +1,7 @@
+
+#ifndef __TEAPOT_H__
+#define __TEAPOT_H__
+
+extern int unit_teapot (int density, int wire_p);
+
+#endif /* __TEAPOT_H__ */
index 845d0b6a7f9540a372304f0c1026d6231b0ec99a..15822a4924369e413f705366139277219e92fdec 100644 (file)
@@ -140,8 +140,8 @@ load_texture_font (Display *dpy, char *res)
 
   texture_font_data *data = 0;
   char *font = get_string_resource (dpy, res, "Font");
-  const char *def1 = "-*-times-bold-r-normal-*-240-*";
-  const char *def2 = "-*-times-bold-r-normal-*-180-*";
+  const char *def1 = "-*-helvetica-medium-r-normal-*-240-*";
+  const char *def2 = "-*-helvetica-medium-r-normal-*-180-*";
   const char *def3 = "fixed";
   XFontStruct *f;
   int which;
index 7912f17265e9099340b74e49f8798da14eaf4ddd..1e6f75cf5bebb817a357a448d511a1f1fab76587 100644 (file)
@@ -55,8 +55,8 @@ Turn off textures.
 .B \-wireframe
 Show as wire frame
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 2db5638d5fd76c49b3d7ab5fd15f89938464fd8f..90076fb8d64ddea0f845c9add6a29164d502ae03 100644 (file)
@@ -67,6 +67,7 @@ typedef struct
   int plusheight;
   GLuint       carpet;
   GLuint       block;
+  int carpet_polys, block_polys;
   NODE *blockNodeRoot;
   NODE *blockNodeFollow;
   GLfloat rotation;
@@ -110,40 +111,40 @@ static XrmOptionDescRec opts[] = {
   { "-override",    ".override",    XrmoptionNoArg, "True" },
 };
 
-#define DEF_override      "False"
-#define DEF_rotate        "True"
-#define DEF_follow        "False"
-#define DEF_drawCarpet    "True"
-#define DEF_drawBlob      "False"
-#define DEF_drawNipples   "True"
-#define DEF_rotateSpeed   "10"
-#define DEF_maxFalling    "500"
-#define DEF_maxColors     "7"
-#define DEF_size          "2"
-#define DEF_spawn         "50"
-#define DEF_resolution    "4"
-#define DEF_camX          "1"
-#define DEF_camY          "20"
-#define DEF_camZ          "25"
-#define DEF_dropSpeed     "4"
+#define DEF_OVERRIDE      "False"
+#define DEF_ROTATE        "True"
+#define DEF_FOLLOW        "False"
+#define DEF_CARPET   "True"
+#define DEF_BLOB     "False"
+#define DEF_NIPPLES  "True"
+#define DEF_ROTATE_SPEED  "10"
+#define DEF_MAX_FALLING   "500"
+#define DEF_MAX_COLORS    "7"
+#define DEF_SIZE          "2"
+#define DEF_SPAWN         "50"
+#define DEF_RESOLUTION    "4"
+#define DEF_CAM_X         "1"
+#define DEF_CAM_Y         "20"
+#define DEF_CAM_Z         "25"
+#define DEF_DROP_SPEED    "4"
 
 static argtype vars[] = {
-  {&override,     "override",     "Override",     DEF_override,     t_Bool},
-  {&rotate,       "rotate",       "Rotate",       DEF_rotate,       t_Bool},
-  {&drawCarpet,   "carpet",       "Carpet",       DEF_drawCarpet,   t_Bool},
-  {&drawNipples,  "nipples",      "Nipples",      DEF_drawNipples,  t_Bool},
-  {&drawBlob,     "blob",         "Blob",         DEF_drawBlob,     t_Bool},
-  {&rotateSpeed,  "rotateSpeed",  "RotateSpeed",  DEF_rotateSpeed,  t_Float},
-  {&follow,       "follow",       "Follow",       DEF_follow,       t_Bool},
-  {&camX,         "camX",         "camX",         DEF_camX,         t_Float},
-  {&camY,         "camY",         "camY",         DEF_camY,         t_Float},
-  {&camZ,         "camZ",         "camZ",         DEF_camZ,         t_Float},
-  {&size,         "size",         "size",         DEF_size,         t_Int},
-  {&spawn,        "spawn",        "spawn",        DEF_spawn,        t_Int},
-  {&maxFalling,   "maxFalling",   "maxFalling",   DEF_maxFalling,   t_Int},
-  {&resolution,   "resolution",   "resolution",   DEF_resolution,   t_Int},
-  {&maxColors,    "maxColors",    "maxColors",    DEF_maxColors,    t_Int},
-  {&dropSpeed,    "dropSpeed",    "DropSpeed",    DEF_dropSpeed,    t_Float},
+  {&override,     "override",     "Override",     DEF_OVERRIDE,     t_Bool},
+  {&rotate,       "rotate",       "Rotate",       DEF_ROTATE,       t_Bool},
+  {&drawCarpet,   "carpet",       "Carpet",       DEF_CARPET,   t_Bool},
+  {&drawNipples,  "nipples",      "Nipples",      DEF_NIPPLES,  t_Bool},
+  {&drawBlob,     "blob",         "Blob",         DEF_BLOB,     t_Bool},
+  {&rotateSpeed,  "rotateSpeed",  "RotateSpeed",  DEF_ROTATE_SPEED,  t_Float},
+  {&follow,       "follow",       "Follow",       DEF_FOLLOW,       t_Bool},
+  {&camX,         "camX",         "camX",         DEF_CAM_X,         t_Float},
+  {&camY,         "camY",         "camY",         DEF_CAM_Y,         t_Float},
+  {&camZ,         "camZ",         "camZ",         DEF_CAM_Z,         t_Float},
+  {&size,         "size",         "size",         DEF_SIZE,         t_Int},
+  {&spawn,        "spawn",        "spawn",        DEF_SPAWN,        t_Int},
+  {&maxFalling,   "maxFalling",   "maxFalling",   DEF_MAX_FALLING,   t_Int},
+  {&resolution,   "resolution",   "resolution",   DEF_RESOLUTION,   t_Int},
+  {&maxColors,    "maxColors",    "maxColors",    DEF_MAX_COLORS,    t_Int},
+  {&dropSpeed,    "dropSpeed",    "DropSpeed",    DEF_DROP_SPEED,    t_Float},
 };
 
 static topBlockSTATE *tbs = NULL;
@@ -152,7 +153,8 @@ ModeSpecOpt topBlock_opts = {countof(opts), opts, countof(vars), vars, NULL};
 
 /* Window management, etc */
 ENTRYPOINT void
-reshape_topBlock (ModeInfo *mi, int width, int height) {
+reshape_topBlock (ModeInfo *mi, int width, int height)
+{
   GLfloat h = (GLfloat) height / (GLfloat) width;
   glViewport (0, 0, (GLint) width, (GLint) height);
   glMatrixMode(GL_PROJECTION);
@@ -165,7 +167,8 @@ reshape_topBlock (ModeInfo *mi, int width, int height) {
 
 /* clean up on exit, not required ... */
 ENTRYPOINT void
-  release_topBlock(ModeInfo *mi) {
+release_topBlock(ModeInfo *mi)
+{
   topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
        NODE *llCurrent, *llOld;
        llCurrent = tb->blockNodeRoot;
@@ -293,7 +296,8 @@ init_topBlock (ModeInfo *mi)
 
 /* provides the per frame entertainment */
 ENTRYPOINT void
-draw_topBlock (ModeInfo *mi) {
+draw_topBlock (ModeInfo *mi)
+{
        Display *dpy = MI_DISPLAY(mi);
        Window window = MI_WINDOW(mi);
        NODE *llCurrent;
@@ -307,6 +311,7 @@ draw_topBlock (ModeInfo *mi) {
   if (!tb->glx_context)
     return;
   glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(tb->glx_context));
+  mi->polygon_count = 0;
 
        generateNewBlock(mi);
 
@@ -335,6 +340,7 @@ draw_topBlock (ModeInfo *mi) {
                /* center carpet */
                glTranslatef(0.0-(tb->carpetWidth/2),0.0-(tb->carpetLength/2),0.0);
                glCallList(tb->carpet);
+                mi->polygon_count += tb->carpet_polys;
                glTranslatef(0.0+(tb->carpetWidth/2),0.0+(tb->carpetLength/2),0.0);
                glTranslatef(0.0,0.0,-0.55);
        }
@@ -485,6 +491,7 @@ draw_topBlock (ModeInfo *mi) {
        llCurrent = llCurrent->next;
        /* draw   */
        glCallList(tb->block); 
+        mi->polygon_count += tb->block_polys;
        glPopMatrix();  /* restore state */
   } 
   if (mi->fps_p) do_fps (mi);
@@ -497,7 +504,8 @@ draw_topBlock (ModeInfo *mi) {
 
 
 /* camera is in follow mode, work out where we should be looking */
-static void followBlock(ModeInfo *mi) {
+static void followBlock(ModeInfo *mi)
+{
        GLfloat xLen,yLen,cx,cy,rangle,xTarget,yTarget;
   topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
   cx=0;cy=0;
@@ -541,7 +549,8 @@ static void followBlock(ModeInfo *mi) {
 }
 
 /* each quater of the circle has to be adjusted for */
-static double quadrantCorrection(double angle,int cx,int cy,int x,int y) {
+static double quadrantCorrection(double angle,int cx,int cy,int x,int y)
+{
        if ((x>=cx) && (y>=cy)) {
                angle +=  (90-(angle-90) * 2); 
        } else if ((x>=cx) && (y<=cy)) {
@@ -555,7 +564,8 @@ static double quadrantCorrection(double angle,int cx,int cy,int x,int y) {
 }
 
 /* if random chance then create a new falling block */
-static void generateNewBlock(ModeInfo *mi) {
+static void generateNewBlock(ModeInfo *mi)
+{
        NODE *llCurrent, *llTail;
        GLfloat startOffx, startOffy;
        int endOffx, endOffy;
@@ -621,7 +631,8 @@ static void generateNewBlock(ModeInfo *mi) {
 }
 
 /* called at init this creates the 'carpet' display list item */
-static void buildCarpet(ModeInfo *mi) {
+static void buildCarpet(ModeInfo *mi)
+{
        int i,c,x,y;
        GLfloat color[4];
        int wire = MI_IS_WIREFRAME(mi);
@@ -633,6 +644,7 @@ static void buildCarpet(ModeInfo *mi) {
                color[3] = 1.0f;        
        tb->carpet=glGenLists(1);       /* only one */
        glNewList(tb->carpet,GL_COMPILE);
+        tb->carpet_polys=0;
        glPushMatrix(); /* save state */
        x=tb->carpetWidth;
        y=tb->carpetLength;
@@ -646,6 +658,7 @@ static void buildCarpet(ModeInfo *mi) {
                glVertex3f(x,0.0,0.0);
                glVertex3f(x,y,0.0);
                glVertex3f(0.0,y,0.0);
+                tb->carpet_polys++;
            if (wire) { glEnd(); } 
                else {
                /* add edge pieces */
@@ -655,24 +668,28 @@ static void buildCarpet(ModeInfo *mi) {
                glVertex3f(x,0.0,0.0);
                glVertex3f(x,0,singleThick);
                glVertex3f(0.0,0,singleThick);
+                tb->carpet_polys++;
                /* side 2 */
                glNormal3f( -1, 0, 0 );
                glVertex3f(0.0,0.0,0.0);
                glVertex3f(0,y,0.0);
                glVertex3f(0,y,singleThick);
                glVertex3f(0.0,0,singleThick);
+                tb->carpet_polys++;
                /* side 3 */
                glNormal3f( 1, 0, 0 );
                glVertex3f(x,0.0,0.0);
                glVertex3f(x,y,0.0);
                glVertex3f(x,y,singleThick);
                glVertex3f(x,0,singleThick);
+                tb->carpet_polys++;
                /* side 4 */
                glNormal3f( 0, 1, 0 );
                glVertex3f(0,y,0.0);
                glVertex3f(x,y,0.0);
                glVertex3f(x,y,singleThick);
                glVertex3f(0,y,singleThick);
+                tb->carpet_polys++;
                }
        glEnd();
        /* nipples */
@@ -685,8 +702,10 @@ static void buildCarpet(ModeInfo *mi) {
                        glPushMatrix(); /* save state */
                        for (i=0;i<y;i++) {
                                gluCylinder(quadratic, cylSize, cylSize, 0.25f, resolution, resolution);        /* quad, radius(bottom, radius(top), height, subdivisions (around Z), subdevisions (along Z) */
+                                tb->carpet_polys += resolution*resolution;
                                glRotatef(180, 0.0f, 1.0f, 0.0f); /* they are upside down */
                                gluDisk(quadratic, 0.0f, cylSize, resolution, resolution );      /* inner size (cd hole), outer size (radius), subdivisions radial, subdivisions circular  */
+                                tb->carpet_polys += resolution*resolution;
                                glRotatef(180, 0.0f, 1.0f, 0.0f); /* recover */
                                glTranslatef(0.0f,1.0f,0.0f);                   /* move to the next cylinder center (backward) */
                        }
@@ -714,21 +733,23 @@ static void polygonPlane(int wire, int a, int b, int c , int d, int i)
 
 /* called at init this creates the 'block' display list item */
 /* the spheres came about originaly as quick way to test the directional lighting/normals */
-static void buildBlock(ModeInfo *mi) {
+static void buildBlock(ModeInfo *mi)
+{
        int i,c;
   int wire = MI_IS_WIREFRAME(mi);
   topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
        GLUquadricObj *quadratic;
        tb->block=glGenLists(1);        /* only one */
        glNewList(tb->block,GL_COMPILE);
+        tb->block_polys=0;
        glPushMatrix(); /* save state */
        glRotatef(90, 0.0f, 1.0f, 0.0f);
        /* base */
-       polygonPlane(wire, 0,3,2,1,0);
-       polygonPlane(wire, 2,3,7,6,1);
-       polygonPlane(wire, 1,2,6,5,2); 
-       polygonPlane(wire, 4,5,6,7,3); 
-       polygonPlane(wire, 0,1,5,4,4);
+       polygonPlane(wire, 0,3,2,1,0); tb->block_polys++;
+       polygonPlane(wire, 2,3,7,6,1); tb->block_polys++;
+       polygonPlane(wire, 1,2,6,5,2); tb->block_polys++;
+       polygonPlane(wire, 4,5,6,7,3); tb->block_polys++;
+       polygonPlane(wire, 0,1,5,4,4); tb->block_polys++;
        if (drawNipples) {
                /* nipples */
                /* draw 8 cylinders each with a disk cap */
@@ -739,8 +760,10 @@ static void buildBlock(ModeInfo *mi) {
                for (c=0;c<2;c++) {
                        for (i=0;i<4;i++) {
                                gluCylinder(quadratic, cylSize, cylSize, 0.25f, resolution, resolution);        /* quad, radius(bottom, radius(top), height, subdivisions (around Z), subdevisions (along Z) */
+                                tb->block_polys += resolution*resolution;
                                glTranslatef(0.0f,0.0f,0.25f);                  /* move to the cylinder cap  */
                                gluDisk(quadratic, 0.0f, cylSize, resolution, resolution );      /* inner size (cd hole), outer size (radius), subdivisions radial, subdivisions circular  */
+                                tb->block_polys += resolution*resolution;
                                glTranslatef(0.0f,0.0f,-0.25f);                 /* move back from the cylinder cap  */
                                if (c==0) {     
                                        glTranslatef(0.0f,-1.0f,0.0f);                  /* move to the next cylinder center (forward) */
@@ -755,6 +778,7 @@ static void buildBlock(ModeInfo *mi) {
                glTranslatef(1.5f,-2.5f,-1.5f);         /* move to the center, under the top of the brick        */
                for (c=0;c<3;c++) {
                        gluCylinder(quadratic, uddSize, uddSize, 1.5f, resolution, resolution); /* quad, radius(bottom, radius(top), height, subdivisions (around Z), subdevisions (along Z) */
+                        tb->block_polys += resolution*resolution;
                        glTranslatef(0.0f,-1.0f,0.0f);          /* move to the center */        
                }
        }
@@ -766,7 +790,8 @@ static void buildBlock(ModeInfo *mi) {
        rip off of the builBlock() function creating the GL compilied pointer "block" but only creates two spheres.
        spheres are created with unit_sphere from spheres.h to allow wire frame 
 */
-static void buildBlobBlock(ModeInfo *mi) {
+static void buildBlobBlock(ModeInfo *mi)
+{
   int wire = MI_IS_WIREFRAME(mi);
   topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
        tb->block=glGenLists(1);        /* only one */
@@ -784,7 +809,8 @@ static void buildBlobBlock(ModeInfo *mi) {
 
 /* handle input events or not if daemon running the show */
 ENTRYPOINT Bool 
-topBlock_handle_event (ModeInfo *mi, XEvent *event) {
+topBlock_handle_event (ModeInfo *mi, XEvent *event)
+{
   topBlockSTATE *tb = &tbs[MI_SCREEN(mi)];
        if (event->xany.type == KeyPress)    {
     KeySym keysym;
@@ -868,6 +894,6 @@ topBlock_handle_event (ModeInfo *mi, XEvent *event) {
 }
 
 /* this is tha main change for v5 compatability and acompanying ENTRYPOINTS */
-XSCREENSAVER_MODULE_2 ("topBlock", topblock, topBlock)
+XSCREENSAVER_MODULE_2 ("TopBlock", topblock, topBlock)
 
 #endif /* USE_GL */
index dc4696f03d10787bde743d8ce09454f2ec922c46..8792a6f7c57cc71acb5464bf78d16d46c97d32e8 100644 (file)
@@ -46,8 +46,8 @@ Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
 .B \-wireframe | \-no-wireframe
 Render in wireframe instead of solid.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .TP 8
 .B \-size \fInumber\fP
 Size of the base/carpet.
index 9680182931677a960a7694199c126f35e122f121..1356b25ca0c42c96c5c9af692b93273b377efdbc 100644 (file)
@@ -28,9 +28,9 @@
 
 #define DEF_POINTS      "25"
 #define DEF_POINT_SIZE  "9"
-#define DEF_POINT_SPEED "1"
+#define DEF_POINT_SPEED "1.0"
 #define DEF_POINT_DELAY "0.05"
-#define DEF_ZOOM_SPEED  "1"
+#define DEF_ZOOM_SPEED  "1.0"
 #define DEF_ZOOM_DELAY  "15"
 
 typedef struct node {
index 526fb70db6ae1d159b8e58b6ed84358405e58528..713f08cfe6d48ba0e63d0fb8a72ba23f143c6ac4 100644 (file)
@@ -62,8 +62,8 @@ Less than 1 for slower, greater than 1 for faster.
 .B \-zoom\-delay \fIseconds\fP
 Zoom in every this-many seconds.
 .TP 8
-.B \-fps | \-no-fps
-Whether to show a frames-per-second display at the bottom of the screen.
+.B \-fps
+Display the current frame rate, CPU load, and polygon count.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 01fb132ac73404a6d5223751c4699051ceef9e3d..638f6421e5e3b8150a70a8e343e8120a2c137da8 100644 (file)
@@ -77,144 +77,144 @@ static const char sccsid[] = "@(#)whale.c 1.3 98/06/18 xlockmore";
 #include "atlantis.h"
 
 /* *INDENT-OFF* */
-static const float N001[3] = {0.019249 ,0.011340 ,-0.999750};
-static const float N002[3] = {-0.132579 ,0.954547 ,0.266952};
-static const float N003[3] = {-0.196061 ,0.980392 ,-0.019778};
-static const float N004[3] = {0.695461 ,0.604704 ,0.388158};
-static const float N005[3] = {0.870600 ,0.425754 ,0.246557};
-static const float N006[3] = {-0.881191 ,0.392012 ,0.264251};
+static const float N001[3] = {0.019249, 0.01134, -0.99975};
+static const float N002[3] = {-0.132579, 0.954547, 0.266952};
+static const float N003[3] = {-0.196061, 0.980392, -0.019778};
+static const float N004[3] = {0.695461, 0.604704, 0.388158};
+static const float N005[3] = {0.8706, 0.425754, 0.246557};
+static const float N006[3] = {-0.881191, 0.392012, 0.264251};
 #if 0
-static const float N007[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N007[3] = {0, 1, 0};
 #endif
-static const float N008[3] = {-0.341437 ,0.887477 ,0.309523};
-static const float N009[3] = {0.124035 ,-0.992278 ,0.000000};
-static const float N010[3] = {0.242536 ,0.000000 ,-0.970143};
-static const float N011[3] = {0.588172 ,0.000000 ,0.808736};
-static const float N012[3] = {0.929824 ,-0.340623 ,-0.139298};
-static const float N013[3] = {0.954183 ,0.267108 ,-0.134865};
-static const float N014[3] = {0.495127 ,0.855436 ,-0.151914};
-static const float N015[3] = {-0.390199 ,0.906569 ,-0.160867};
-static const float N016[3] = {-0.923605 ,0.354581 ,-0.145692};
-static const float N017[3] = {-0.955796 ,-0.260667 ,-0.136036};
-static const float N018[3] = {-0.501283 ,-0.853462 ,-0.142540};
-static const float N019[3] = {0.405300 ,-0.901974 ,-0.148913};
-static const float N020[3] = {0.909913 ,-0.392746 ,-0.133451};
-static const float N021[3] = {0.936494 ,0.331147 ,-0.115414};
-static const float N022[3] = {0.600131 ,0.793724 ,-0.099222};
-static const float N023[3] = {-0.231556 ,0.968361 ,-0.093053};
-static const float N024[3] = {-0.844369 ,0.525330 ,-0.105211};
-static const float N025[3] = {-0.982725 ,-0.136329 ,-0.125164};
-static const float N026[3] = {-0.560844 ,-0.822654 ,-0.093241};
-static const float N027[3] = {0.263884 ,-0.959981 ,-0.093817};
-static const float N028[3] = {0.842057 ,-0.525192 ,-0.122938};
-static const float N029[3] = {0.921620 ,0.367565 ,-0.124546};
-static const float N030[3] = {0.613927 ,0.784109 ,-0.090918};
-static const float N031[3] = {-0.448754 ,0.888261 ,-0.098037};
-static const float N032[3] = {-0.891865 ,0.434376 ,-0.126077};
-static const float N033[3] = {-0.881447 ,-0.448017 ,-0.149437};
-static const float N034[3] = {-0.345647 ,-0.922057 ,-0.174183};
-static const float N035[3] = {0.307998 ,-0.941371 ,-0.137688};
-static const float N036[3] = {0.806316 ,-0.574647 ,-0.140124};
-static const float N037[3] = {0.961346 ,0.233646 ,-0.145681};
-static const float N038[3] = {0.488451 ,0.865586 ,-0.110351};
-static const float N039[3] = {-0.374290 ,0.921953 ,-0.099553};
-static const float N040[3] = {-0.928504 ,0.344533 ,-0.138485};
-static const float N041[3] = {-0.918419 ,-0.371792 ,-0.135189};
-static const float N042[3] = {-0.520666 ,-0.833704 ,-0.183968};
-static const float N043[3] = {0.339204 ,-0.920273 ,-0.195036};
-static const float N044[3] = {0.921475 ,-0.387382 ,-0.028636};
-static const float N045[3] = {0.842465 ,0.533335 ,-0.076204};
-static const float N046[3] = {0.380110 ,0.924939 ,0.002073};
-static const float N047[3] = {-0.276128 ,0.961073 ,-0.009579};
-static const float N048[3] = {-0.879684 ,0.473001 ,-0.049250};
-static const float N049[3] = {-0.947184 ,-0.317614 ,-0.044321};
-static const float N050[3] = {-0.642059 ,-0.764933 ,-0.051363};
-static const float N051[3] = {0.466794 ,-0.880921 ,-0.077990};
-static const float N052[3] = {0.898509 ,-0.432277 ,0.076279};
-static const float N053[3] = {0.938985 ,0.328141 ,0.103109};
-static const float N054[3] = {0.442420 ,0.895745 ,0.043647};
-static const float N055[3] = {-0.255163 ,0.966723 ,0.018407};
-static const float N056[3] = {-0.833769 ,0.540650 ,0.111924};
-static const float N057[3] = {-0.953653 ,-0.289939 ,0.080507};
-static const float N058[3] = {-0.672357 ,-0.730524 ,0.119461};
-static const float N059[3] = {0.522249 ,-0.846652 ,0.102157};
-static const float N060[3] = {0.885868 ,-0.427631 ,0.179914};
+static const float N008[3] = {-0.341437, 0.887477, 0.309523};
+static const float N009[3] = {0.124035, -0.992278, 0};
+static const float N010[3] = {0.242536, 0, -0.970143};
+static const float N011[3] = {0.588172, 0, 0.808736};
+static const float N012[3] = {0.929824, -0.340623, -0.139298};
+static const float N013[3] = {0.954183, 0.267108, -0.134865};
+static const float N014[3] = {0.495127, 0.855436, -0.151914};
+static const float N015[3] = {-0.390199, 0.906569, -0.160867};
+static const float N016[3] = {-0.923605, 0.354581, -0.145692};
+static const float N017[3] = {-0.955796, -0.260667, -0.136036};
+static const float N018[3] = {-0.501283, -0.853462, -0.14254};
+static const float N019[3] = {0.4053, -0.901974, -0.148913};
+static const float N020[3] = {0.909913, -0.392746, -0.133451};
+static const float N021[3] = {0.936494, 0.331147, -0.115414};
+static const float N022[3] = {0.600131, 0.793724, -0.099222};
+static const float N023[3] = {-0.231556, 0.968361, -0.093053};
+static const float N024[3] = {-0.844369, 0.52533, -0.105211};
+static const float N025[3] = {-0.982725, -0.136329, -0.125164};
+static const float N026[3] = {-0.560844, -0.822654, -0.093241};
+static const float N027[3] = {0.263884, -0.959981, -0.093817};
+static const float N028[3] = {0.842057, -0.525192, -0.122938};
+static const float N029[3] = {0.92162, 0.367565, -0.124546};
+static const float N030[3] = {0.613927, 0.784109, -0.090918};
+static const float N031[3] = {-0.448754, 0.888261, -0.098037};
+static const float N032[3] = {-0.891865, 0.434376, -0.126077};
+static const float N033[3] = {-0.881447, -0.448017, -0.149437};
+static const float N034[3] = {-0.345647, -0.922057, -0.174183};
+static const float N035[3] = {0.307998, -0.941371, -0.137688};
+static const float N036[3] = {0.806316, -0.574647, -0.140124};
+static const float N037[3] = {0.961346, 0.233646, -0.145681};
+static const float N038[3] = {0.488451, 0.865586, -0.110351};
+static const float N039[3] = {-0.37429, 0.921953, -0.099553};
+static const float N040[3] = {-0.928504, 0.344533, -0.138485};
+static const float N041[3] = {-0.918419, -0.371792, -0.135189};
+static const float N042[3] = {-0.520666, -0.833704, -0.183968};
+static const float N043[3] = {0.339204, -0.920273, -0.195036};
+static const float N044[3] = {0.921475, -0.387382, -0.028636};
+static const float N045[3] = {0.842465, 0.533335, -0.076204};
+static const float N046[3] = {0.38011, 0.924939, 0.002073};
+static const float N047[3] = {-0.276128, 0.961073, -0.009579};
+static const float N048[3] = {-0.879684, 0.473001, -0.04925};
+static const float N049[3] = {-0.947184, -0.317614, -0.044321};
+static const float N050[3] = {-0.642059, -0.764933, -0.051363};
+static const float N051[3] = {0.466794, -0.880921, -0.07799};
+static const float N052[3] = {0.898509, -0.432277, 0.076279};
+static const float N053[3] = {0.938985, 0.328141, 0.103109};
+static const float N054[3] = {0.44242, 0.895745, 0.043647};
+static const float N055[3] = {-0.255163, 0.966723, 0.018407};
+static const float N056[3] = {-0.833769, 0.54065, 0.111924};
+static const float N057[3] = {-0.953653, -0.289939, 0.080507};
+static const float N058[3] = {-0.672357, -0.730524, 0.119461};
+static const float N059[3] = {0.522249, -0.846652, 0.102157};
+static const float N060[3] = {0.885868, -0.427631, 0.179914};
 #if 0
-static const float N061[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N061[3] = {0, 1, 0};
 #endif
-static const float N062[3] = {0.648942 ,0.743116 ,0.163255};
-static const float N063[3] = {-0.578967 ,0.807730 ,0.111219};
+static const float N062[3] = {0.648942, 0.743116, 0.163255};
+static const float N063[3] = {-0.578967, 0.80773, 0.111219};
 #if 0
-static const float N064[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N064[3] = {0, 1, 0};
 #endif
-static const float N065[3] = {-0.909864 ,-0.352202 ,0.219321};
-static const float N066[3] = {-0.502541 ,-0.818090 ,0.279610};
-static const float N067[3] = {0.322919 ,-0.915358 ,0.240504};
-static const float N068[3] = {0.242536 ,0.000000 ,-0.970143};
-static const float N069[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N070[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N071[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N072[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N073[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N074[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N075[3] = {0.031220 ,0.999025 ,-0.031220};
-static const float N076[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N077[3] = {0.446821 ,0.893642 ,0.041889};
-static const float N078[3] = {0.863035 ,-0.100980 ,0.494949};
-static const float N079[3] = {0.585597 ,-0.808215 ,0.062174};
-static const float N080[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N081[3] = {1.000000 ,0.000000 ,0.000000};
-static const float N082[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N083[3] = {-1.000000 ,0.000000 ,0.000000};
-static const float N084[3] = {-0.478893 ,0.837129 ,-0.264343};
-static const float N085[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N086[3] = {0.763909 ,0.539455 ,-0.354163};
-static const float N087[3] = {0.446821 ,0.893642 ,0.041889};
-static const float N088[3] = {0.385134 ,-0.908288 ,0.163352};
-static const float N089[3] = {-0.605952 ,0.779253 ,-0.159961};
-static const float N090[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N091[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N092[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N093[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N094[3] = {1.000000 ,0.000000 ,0.000000};
-static const float N095[3] = {-1.000000 ,0.000000 ,0.000000};
-static const float N096[3] = {0.644444 ,-0.621516 ,0.445433};
-static const float N097[3] = {-0.760896 ,-0.474416 ,0.442681};
-static const float N098[3] = {0.636888 ,-0.464314 ,0.615456};
-static const float N099[3] = {-0.710295 ,0.647038 ,0.277168};
-static const float N100[3] = {0.009604 ,0.993655 ,0.112063};
+static const float N065[3] = {-0.909864, -0.352202, 0.219321};
+static const float N066[3] = {-0.502541, -0.81809, 0.27961};
+static const float N067[3] = {0.322919, -0.915358, 0.240504};
+static const float N068[3] = {0.242536, 0, -0.970143};
+static const float N069[3] = {0, 1, 0};
+static const float N070[3] = {0, 1, 0};
+static const float N071[3] = {0, 1, 0};
+static const float N072[3] = {0, 1, 0};
+static const float N073[3] = {0, 1, 0};
+static const float N074[3] = {0, 1, 0};
+static const float N075[3] = {0.03122, 0.999025, -0.03122};
+static const float N076[3] = {0, 1, 0};
+static const float N077[3] = {0.446821, 0.893642, 0.041889};
+static const float N078[3] = {0.863035, -0.10098, 0.494949};
+static const float N079[3] = {0.585597, -0.808215, 0.062174};
+static const float N080[3] = {0, 1, 0};
+static const float N081[3] = {1, 0, 0};
+static const float N082[3] = {0, 1, 0};
+static const float N083[3] = {-1, 0, 0};
+static const float N084[3] = {-0.478893, 0.837129, -0.264343};
+static const float N085[3] = {0, 1, 0};
+static const float N086[3] = {0.763909, 0.539455, -0.354163};
+static const float N087[3] = {0.446821, 0.893642, 0.041889};
+static const float N088[3] = {0.385134, -0.908288, 0.163352};
+static const float N089[3] = {-0.605952, 0.779253, -0.159961};
+static const float N090[3] = {0, 1, 0};
+static const float N091[3] = {0, 1, 0};
+static const float N092[3] = {0, 1, 0};
+static const float N093[3] = {0, 1, 0};
+static const float N094[3] = {1, 0, 0};
+static const float N095[3] = {-1, 0, 0};
+static const float N096[3] = {0.644444, -0.621516, 0.445433};
+static const float N097[3] = {-0.760896, -0.474416, 0.442681};
+static const float N098[3] = {0.636888, -0.464314, 0.615456};
+static const float N099[3] = {-0.710295, 0.647038, 0.277168};
+static const float N100[3] = {0.009604, 0.993655, 0.112063};
 #if 0
-static const float N101[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N102[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N103[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N104[3] = {0.031837 ,0.999285 ,0.020415};
-static const float N105[3] = {0.031837 ,0.999285 ,0.020415};
-static const float N106[3] = {0.031837 ,0.999285 ,0.020415};
-static const float N107[3] = {0.014647 ,0.999648 ,0.022115};
-static const float N108[3] = {0.014647 ,0.999648 ,0.022115};
-static const float N109[3] = {0.014647 ,0.999648 ,0.022115};
-static const float N110[3] = {-0.985141 ,0.039475 ,0.167149};
-static const float N111[3] = {-0.985141 ,0.039475 ,0.167149};
-static const float N112[3] = {-0.985141 ,0.039475 ,0.167149};
-static const float N113[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N114[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N115[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N116[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N117[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N118[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N119[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N120[3] = {0.000000 ,1.000000 ,0.000000};
-static const float N121[3] = {0.000000 ,1.000000 ,0.000000};
+static const float N101[3] = {0, 1, 0};
+static const float N102[3] = {0, 1, 0};
+static const float N103[3] = {0, 1, 0};
+static const float N104[3] = {0.031837, 0.999285, 0.020415};
+static const float N105[3] = {0.031837, 0.999285, 0.020415};
+static const float N106[3] = {0.031837, 0.999285, 0.020415};
+static const float N107[3] = {0.014647, 0.999648, 0.022115};
+static const float N108[3] = {0.014647, 0.999648, 0.022115};
+static const float N109[3] = {0.014647, 0.999648, 0.022115};
+static const float N110[3] = {-0.985141, 0.039475, 0.167149};
+static const float N111[3] = {-0.985141, 0.039475, 0.167149};
+static const float N112[3] = {-0.985141, 0.039475, 0.167149};
+static const float N113[3] = {0, 1, 0};
+static const float N114[3] = {0, 1, 0};
+static const float N115[3] = {0, 1, 0};
+static const float N116[3] = {0, 1, 0};
+static const float N117[3] = {0, 1, 0};
+static const float N118[3] = {0, 1, 0};
+static const float N119[3] = {0, 1, 0};
+static const float N120[3] = {0, 1, 0};
+static const float N121[3] = {0, 1, 0};
 #endif
 static const float iP001[3] = {18.74, 13.19, 3.76};
 static       float P001[3] = {18.74, 13.19, 3.76};
-static const float P002[3] = {0.00, 390.42, 10292.57};
-static const float P003[3] = {55.80, 622.31, 8254.35};
-static const float P004[3] = {20.80, 247.66, 10652.13};
+static const float P002[3] = {0, 390.42, 10292.57};
+static const float P003[3] = {55.8, 622.31, 8254.35};
+static const float P004[3] = {20.8, 247.66, 10652.13};
 static const float P005[3] = {487.51, 198.05, 9350.78};
 static const float P006[3] = {-457.61, 199.04, 9353.01};
 #if 0
-static const float P007[3] = {0.00, 259.00, 10276.27};
+static const float P007[3] = {0, 259, 10276.27};
 #endif
 static const float P008[3] = {-34.67, 247.64, 10663.71};
 static const float iP009[3] = {97.46, 67.63, 593.82};
@@ -224,18 +224,18 @@ static       float P009[3] = {97.46, 67.63, 593.82};
 static       float P010[3] = {-84.33, 67.63, 588.18};
 static       float P011[3] = {118.69, 8.98, -66.91};
 static const float iP012[3] = {156.48, -31.95, 924.54};
-static const float iP013[3] = {162.00, 110.22, 924.54};
+static const float iP013[3] = {162, 110.22, 924.54};
 static const float iP014[3] = {88.16, 221.65, 924.54};
 static const float iP015[3] = {-65.21, 231.16, 924.54};
 static const float iP016[3] = {-156.48, 121.97, 924.54};
-static const float iP017[3] = {-162.00, -23.93, 924.54};
-static const float iP018[3] = {-88.16, -139.10, 924.54};
+static const float iP017[3] = {-162, -23.93, 924.54};
+static const float iP018[3] = {-88.16, -139.1, 924.54};
 static const float iP019[3] = {65.21, -148.61, 924.54};
 static const float iP020[3] = {246.87, -98.73, 1783.04};
 static const float iP021[3] = {253.17, 127.76, 1783.04};
 static const float iP022[3] = {132.34, 270.77, 1783.04};
 static const float iP023[3] = {-97.88, 285.04, 1783.04};
-static const float iP024[3] = {-222.97, 139.80, 1783.04};
+static const float iP024[3] = {-222.97, 139.8, 1783.04};
 static const float iP025[3] = {-225.29, -86.68, 1783.04};
 static const float iP026[3] = {-108.44, -224.15, 1783.04};
 static const float iP027[3] = {97.88, -221.56, 1783.04};
@@ -249,7 +249,7 @@ static const float iP034[3] = {-148.88, -309.74, 3213.87};
 static const float iP035[3] = {156.38, -320.17, 3213.87};
 static const float iP036[3] = {523.39, -303.81, 4424.57};
 static const float iP037[3] = {574.66, 276.84, 4424.57};
-static const float iP038[3] = {243.05, 492.50, 4424.57};
+static const float iP038[3] = {243.05, 492.5, 4424.57};
 static const float iP039[3] = {-191.23, 520.13, 4424.57};
 static const float iP040[3] = {-523.39, 304.01, 4424.57};
 static const float iP041[3] = {-574.66, -231.83, 4424.57};
@@ -259,23 +259,23 @@ static const float iP044[3] = {680.57, -370.27, 5943.46};
 static const float iP045[3] = {834.01, 363.09, 5943.46};
 static const float iP046[3] = {371.29, 614.13, 5943.46};
 static const float iP047[3] = {-291.43, 621.86, 5943.46};
-static const float iP048[3] = {-784.13, 362.60, 5943.46};
+static const float iP048[3] = {-784.13, 362.6, 5943.46};
 static const float iP049[3] = {-743.29, -325.82, 5943.46};
 static const float iP050[3] = {-383.24, -804.77, 5943.46};
 static const float iP051[3] = {283.47, -846.09, 5943.46};
 static       float P012[3] = {156.48, -31.95, 924.54};
-static       float P013[3] = {162.00, 110.22, 924.54};
+static       float P013[3] = {162, 110.22, 924.54};
 static       float P014[3] = {88.16, 221.65, 924.54};
 static       float P015[3] = {-65.21, 231.16, 924.54};
 static       float P016[3] = {-156.48, 121.97, 924.54};
-static       float P017[3] = {-162.00, -23.93, 924.54};
-static       float P018[3] = {-88.16, -139.10, 924.54};
+static       float P017[3] = {-162, -23.93, 924.54};
+static       float P018[3] = {-88.16, -139.1, 924.54};
 static       float P019[3] = {65.21, -148.61, 924.54};
 static       float P020[3] = {246.87, -98.73, 1783.04};
 static       float P021[3] = {253.17, 127.76, 1783.04};
 static       float P022[3] = {132.34, 270.77, 1783.04};
 static       float P023[3] = {-97.88, 285.04, 1783.04};
-static       float P024[3] = {-222.97, 139.80, 1783.04};
+static       float P024[3] = {-222.97, 139.8, 1783.04};
 static       float P025[3] = {-225.29, -86.68, 1783.04};
 static       float P026[3] = {-108.44, -224.15, 1783.04};
 static       float P027[3] = {97.88, -221.56, 1783.04};
@@ -289,7 +289,7 @@ static       float P034[3] = {-148.88, -309.74, 3213.87};
 static       float P035[3] = {156.38, -320.17, 3213.87};
 static       float P036[3] = {523.39, -303.81, 4424.57};
 static       float P037[3] = {574.66, 276.84, 4424.57};
-static       float P038[3] = {243.05, 492.50, 4424.57};
+static       float P038[3] = {243.05, 492.5, 4424.57};
 static       float P039[3] = {-191.23, 520.13, 4424.57};
 static       float P040[3] = {-523.39, 304.01, 4424.57};
 static       float P041[3] = {-574.66, -231.83, 4424.57};
@@ -299,7 +299,7 @@ static       float P044[3] = {680.57, -370.27, 5943.46};
 static       float P045[3] = {834.01, 363.09, 5943.46};
 static       float P046[3] = {371.29, 614.13, 5943.46};
 static       float P047[3] = {-291.43, 621.86, 5943.46};
-static       float P048[3] = {-784.13, 362.60, 5943.46};
+static       float P048[3] = {-784.13, 362.6, 5943.46};
 static       float P049[3] = {-743.29, -325.82, 5943.46};
 static       float P050[3] = {-383.24, -804.77, 5943.46};
 static       float P051[3] = {283.47, -846.09, 5943.46};
@@ -309,71 +309,71 @@ static const float P054[3] = {321.55, 558.53, 7902.59};
 static const float P055[3] = {-260.54, 559.84, 7902.59};
 static const float P056[3] = {-698.66, 320.83, 7902.59};
 static const float P057[3] = {-643.29, -299.16, 7902.59};
-static const float P058[3] = {-341.47, -719.30, 7902.59};
+static const float P058[3] = {-341.47, -719.3, 7902.59};
 static const float P059[3] = {252.57, -756.12, 7902.59};
 static const float P060[3] = {458.39, -265.31, 9355.44};
-static const float iP061[3] = {353.63, 138.70, 10214.20};
-static       float P061[3] = {353.63, 138.70, 10214.20};
+static const float iP061[3] = {353.63, 138.7, 10214.2};
+static       float P061[3] = {353.63, 138.7, 10214.2};
 static const float P062[3] = {224.04, 438.98, 9364.77};
 static const float P063[3] = {-165.71, 441.27, 9355.44};
-static const float iP064[3] = {-326.40, 162.04, 10209.54};
-static       float P064[3] = {-326.40, 162.04, 10209.54};
+static const float iP064[3] = {-326.4, 162.04, 10209.54};
+static       float P064[3] = {-326.4, 162.04, 10209.54};
 static const float P065[3] = {-473.99, -219.71, 9355.44};
 static const float P066[3] = {-211.97, -479.87, 9355.44};
 static const float P067[3] = {192.86, -504.03, 9355.44};
 static const float iP068[3] = {-112.44, 9.25, -64.42};
-static const float iP069[3] = {1155.63, 0.00, -182.46};
-static const float iP070[3] = {-1143.13, 0.00, -181.54};
-static const float iP071[3] = {1424.23, 0.00, -322.09};
-static const float iP072[3] = {-1368.01, 0.00, -310.38};
+static const float iP069[3] = {1155.63, 0, -182.46};
+static const float iP070[3] = {-1143.13, 0, -181.54};
+static const float iP071[3] = {1424.23, 0, -322.09};
+static const float iP072[3] = {-1368.01, 0, -310.38};
 static const float iP073[3] = {1255.57, 2.31, 114.05};
-static const float iP074[3] = {-1149.38, 0.00, 117.12};
-static const float iP075[3] = {718.36, 0.00, 433.36};
-static const float iP076[3] = {-655.90, 0.00, 433.36};
+static const float iP074[3] = {-1149.38, 0, 117.12};
+static const float iP075[3] = {718.36, 0, 433.36};
+static const float iP076[3] = {-655.90, 433.36};
 static       float P068[3] = {-112.44, 9.25, -64.42};
-static       float P069[3] = {1155.63, 0.00, -182.46};
-static       float P070[3] = {-1143.13, 0.00, -181.54};
-static       float P071[3] = {1424.23, 0.00, -322.09};
-static       float P072[3] = {-1368.01, 0.00, -310.38};
+static       float P069[3] = {1155.63, 0, -182.46};
+static       float P070[3] = {-1143.13, 0, -181.54};
+static       float P071[3] = {1424.23, 0, -322.09};
+static       float P072[3] = {-1368.01, 0, -310.38};
 static       float P073[3] = {1255.57, 2.31, 114.05};
-static       float P074[3] = {-1149.38, 0.00, 117.12};
-static       float P075[3] = {718.36, 0.00, 433.36};
-static       float P076[3] = {-655.90, 0.00, 433.36};
-static const float P077[3] = {1058.00, -2.66, 7923.51};
+static       float P074[3] = {-1149.38, 0, 117.12};
+static       float P075[3] = {718.36, 0, 433.36};
+static       float P076[3] = {-655.90, 433.36};
+static const float P077[3] = {1058, -2.66, 7923.51};
 static const float P078[3] = {-1016.51, -15.47, 7902.87};
-static const float P079[3] = {-1363.99, -484.50, 7593.38};
+static const float P079[3] = {-1363.99, -484.5, 7593.38};
 static const float P080[3] = {1478.09, -861.47, 7098.12};
 static const float P081[3] = {1338.06, -284.68, 7024.15};
-static const float P082[3] = {-1545.51, -860.64, 7106.60};
-static const float P083[3] = {1063.19, -70.46, 7466.60};
+static const float P082[3] = {-1545.51, -860.64, 7106.6};
+static const float P083[3] = {1063.19, -70.46, 7466.6};
 static const float P084[3] = {-1369.18, -288.11, 7015.34};
-static const float P085[3] = {1348.44, -482.50, 7591.41};
-static const float P086[3] = {-1015.45, -96.80, 7474.86};
+static const float P085[3] = {1348.44, -482.5, 7591.41};
+static const float P086[3] = {-1015.45, -96.8, 7474.86};
 static const float P087[3] = {731.04, 148.38, 7682.58};
 static const float P088[3] = {-697.03, 151.82, 7668.81};
 static const float P089[3] = {-686.82, 157.09, 7922.29};
 static const float P090[3] = {724.73, 147.75, 7931.39};
-static const float iP091[3] = {0.00, 327.10, 2346.55};
-static const float iP092[3] = {0.00, 552.28, 2311.31};
-static const float iP093[3] = {0.00, 721.16, 2166.41};
-static const float iP094[3] = {0.00, 693.42, 2388.80};
-static const float iP095[3] = {0.00, 389.44, 2859.97};
-static       float P091[3] = {0.00, 327.10, 2346.55};
-static       float P092[3] = {0.00, 552.28, 2311.31};
-static       float P093[3] = {0.00, 721.16, 2166.41};
-static       float P094[3] = {0.00, 693.42, 2388.80};
-static       float P095[3] = {0.00, 389.44, 2859.97};
+static const float iP091[3] = {0, 327.1, 2346.55};
+static const float iP092[3] = {0, 552.28, 2311.31};
+static const float iP093[3] = {0, 721.16, 2166.41};
+static const float iP094[3] = {0, 693.42, 2388.8};
+static const float iP095[3] = {0, 389.44, 2859.97};
+static       float P091[3] = {0, 327.1, 2346.55};
+static       float P092[3] = {0, 552.28, 2311.31};
+static       float P093[3] = {0, 721.16, 2166.41};
+static       float P094[3] = {0, 693.42, 2388.8};
+static       float P095[3] = {0, 389.44, 2859.97};
 static const float iP096[3] = {222.02, -183.67, 10266.89};
-static const float iP097[3] = {-128.90, -182.70, 10266.89};
+static const float iP097[3] = {-128.9, -182.7, 10266.89};
 static const float iP098[3] = {41.04, 88.31, 10659.36};
-static const float iP099[3] = {-48.73, 88.30, 10659.36};
+static const float iP099[3] = {-48.73, 88.3, 10659.36};
 static       float P096[3] = {222.02, -183.67, 10266.89};
-static       float P097[3] = {-128.90, -182.70, 10266.89};
+static       float P097[3] = {-128.9, -182.7, 10266.89};
 static       float P098[3] = {41.04, 88.31, 10659.36};
-static       float P099[3] = {-48.73, 88.30, 10659.36};
-static const float P100[3] = {0.00, 603.42, 9340.68};
+static       float P099[3] = {-48.73, 88.3, 10659.36};
+static const float P100[3] = {0, 603.42, 9340.68};
 #if 0
-static const float P101[3] = {5.70, 567.00, 7862.98};
+static const float P101[3] = {5.7, 567, 7862.98};
 static const float P102[3] = {521.61, 156.61, 9162.34};
 static const float P103[3] = {83.68, 566.67, 7861.26};
 #endif
@@ -382,14 +382,14 @@ static const float P105[3] = {31.96, 565.27, 7908.46};
 static const float P106[3] = {22.75, 568.13, 7782.83};
 static const float P107[3] = {58.93, 568.42, 7775.94};
 static const float P108[3] = {55.91, 565.59, 7905.86};
-static const float P109[3] = {99.21, 566.00, 7858.65};
-static const float P110[3] = {-498.83, 148.14, 9135.10};
+static const float P109[3] = {99.21, 566, 7858.65};
+static const float P110[3] = {-498.83, 148.14, 9135.1};
 static const float P111[3] = {-495.46, 133.24, 9158.48};
 static const float P112[3] = {-490.82, 146.23, 9182.76};
 static const float P113[3] = {-489.55, 174.11, 9183.66};
-static const float P114[3] = {-492.92, 189.00, 9160.28};
-static const float P115[3] = {-497.56, 176.02, 9136.00};
-static const float P116[3] = {526.54, 169.68, 9137.70};
+static const float P114[3] = {-492.92, 189, 9160.28};
+static const float P115[3] = {-497.56, 176.02, 9136};
+static const float P116[3] = {526.54, 169.68, 9137.7};
 static const float P117[3] = {523.49, 184.85, 9161.42};
 static const float P118[3] = {518.56, 171.78, 9186.06};
 static const float P119[3] = {516.68, 143.53, 9186.98};
@@ -1758,24 +1758,24 @@ DrawWhale(fishRec * fish, int wire)
        float       pitch, thrash, chomp;
        GLenum      cap;
 
-       fish->htail = (int) (fish->htail - (int) (5.0 * fish->v)) % 360;
+       fish->htail = (int) (fish->htail - (int) (5 * fish->v)) % 360;
 
-       thrash = 70.0 * fish->v;
+       thrash = 70 * fish->v;
 
        seg0 = 1.5 * thrash * sin((fish->htail) * RRAD);
-       seg1 = 2.5 * thrash * sin((fish->htail + 10.0) * RRAD);
-       seg2 = 3.7 * thrash * sin((fish->htail + 15.0) * RRAD);
-       seg3 = 4.8 * thrash * sin((fish->htail + 23.0) * RRAD);
-       seg4 = 6.0 * thrash * sin((fish->htail + 28.0) * RRAD);
-       seg5 = 6.5 * thrash * sin((fish->htail + 35.0) * RRAD);
-       seg6 = 6.5 * thrash * sin((fish->htail + 40.0) * RRAD);
-       seg7 = 6.5 * thrash * sin((fish->htail + 55.0) * RRAD);
+       seg1 = 2.5 * thrash * sin((fish->htail + 10) * RRAD);
+       seg2 = 3.7 * thrash * sin((fish->htail + 15) * RRAD);
+       seg3 = 4.8 * thrash * sin((fish->htail + 23) * RRAD);
+       seg4 = 6 * thrash * sin((fish->htail + 28) * RRAD);
+       seg5 = 6.5 * thrash * sin((fish->htail + 35) * RRAD);
+       seg6 = 6.5 * thrash * sin((fish->htail + 40) * RRAD);
+       seg7 = 6.5 * thrash * sin((fish->htail + 55) * RRAD);
 
-       pitch = fish->v * sin((fish->htail - 160.0) * RRAD);
+       pitch = fish->v * sin((fish->htail - 160) * RRAD);
 
-       chomp = 0.0;
-       if (fish->v > 2.0) {
-               chomp = -(fish->v - 2.0) * 200.0;
+       chomp = 0;
+       if (fish->v > 2) {
+               chomp = -(fish->v - 2) * 200;
        }
        P012[1] = iP012[1] + seg5;
        P013[1] = iP013[1] + seg5;
@@ -1852,13 +1852,13 @@ DrawWhale(fishRec * fish, int wire)
 
        glPushMatrix();
 
-       glRotatef(pitch, 1.0, 0.0, 0.0);
+       glRotatef(pitch, 1, 0, 0);
 
-       glTranslatef(0.0, 0.0, 8000.0);
+       glTranslatef(0, 0, 8000);
 
-       glRotatef(180.0, 0.0, 1.0, 0.0);
+       glRotatef(180, 0, 1, 0);
 
-       glScalef(3.0, 3.0, 3.0);
+       glScalef(3, 3, 3);
 
        glEnable(GL_CULL_FACE);
 
index eb266f8a5c5e125b23b443d301541b72735408bc..d72b4ebdd4aa4ad0d4884893441d05c3e4aecec0 100644 (file)
@@ -1,5 +1,5 @@
 /* xlock-gl.c --- xscreensaver compatibility layer for xlockmore GL modules.
- * xscreensaver, Copyright (c) 1997-2002, 2006 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1997-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -16,6 +16,7 @@
 
 #include <stdio.h>
 #include "xlockmoreI.h"
+#include "glxfonts.h"
 
 #include <GL/gl.h>
 #include <GL/glu.h>
index b7670e7cf3fbcb7176b20998f52b342eeabf7e63..4028fb3c7e069799c5a0e27f10b3e9ce295f0a9b 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1997, 2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1997-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -566,8 +566,8 @@ static const char *goop_defaults [] = {
   "*delay:             12000",
   "*additive:          true",
   "*mode:              transparent",
-  "*count:             0",
-  "*planes:            0",
+  "*count:             1",
+  "*planes:            12",
   "*thickness:         5",
   "*torque:            0.0075",
   "*elasticity:                0.9",
index a24f817d9869e556f6b2f4729ead9f5d8f64b5f5..573bd1ec0296f63623fe0fbedbb8d03e1cf334a0 100644 (file)
@@ -4,6 +4,7 @@ goop - squishy transparent oil and bubble screenhack
 .SH SYNOPSIS
 .B goop
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-transparent] [\-non\-transparent] [\-additive] [\-subtractive] [\-xor] [\-no\-xor]
+[\-fps]
 .SH DESCRIPTION
 The \fIgoop\fP program draws a simulation of bubbles in layers of 
 overlapping multicolored translucent fluid.
@@ -56,6 +57,9 @@ translucent filters.
 .TP 8
 .B \-xor
 Draw with xor instead of the other color tricks.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index eee53be460166251cff8faf55480563f9561aff1..ef8a92d7e23557d7c01d983b79379bcb15bdc234 100644 (file)
@@ -31,7 +31,9 @@ static const char sccsid[] = "@(#)grav.c      5.00 2000/11/01 xlockmore";
 #define MODE_grav
 #define DEFAULTS       "*delay: 10000 \n" \
                                        "*count: 12 \n" \
-                                       "*ncolors: 64 \n"
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
 #define BRIGHT_COLORS
 # define reshape_grav 0
 # define grav_handle_event 0
index 38eb241f3028870a51ddc1dc88c7acb081cfe51e..f7017a764d5854636a7684cd4d1afd973705eaec 100644 (file)
@@ -5,6 +5,7 @@ grav - draws a simple orbital simulation
 .B grav
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-count \fIinteger\fP] [\-decay] [\-no\-decay] [\-trail] [\-no\-trail]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIgrav\fP program draws a simple orbital simulation
 .SH OPTIONS
@@ -46,6 +47,9 @@ Whether orbits should decay.
 Whether the objects should leave trails behind them (makes it look vaguely
 like a cloud-chamber.
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 47f91a9f85b73c97217c571575b9039f90daf5f4..2496cdf55fd258922d0c19c174a7ff2ad78528e5 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1995, 1996, 1997, 1998, 2003, 2006
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -100,6 +99,7 @@ struct state {
   unsigned long fg, bg, pixels [512];
   int npixels;
   int xlim, ylim;
+  Bool grey_p;
   Colormap cmap;
 };
 
@@ -121,6 +121,7 @@ greynetic_init (Display *dpy, Window window)
   st->ylim = xgwa.height;
   st->cmap = xgwa.colormap;
   st->npixels = 0;
+  st->grey_p = get_boolean_resource(st->dpy, "grey", "Boolean");
   gcv.foreground= st->fg= get_pixel_resource(st->dpy, st->cmap, "foreground","Foreground");
   gcv.background= st->bg= get_pixel_resource(st->dpy, st->cmap, "background","Background");
 
@@ -199,6 +200,12 @@ greynetic_draw (Display *dpy, Window window, void *closure)
       bgc.blue = random ();
 # endif /* DO_STIPPLE */
 
+      if (st->grey_p)
+        {
+          fgc.green = fgc.blue = fgc.red;
+          bgc.green = bgc.blue = bgc.red;
+        }
+
       if (! XAllocColor (st->dpy, st->cmap, &fgc))
        goto REUSE;
       st->pixels [st->npixels++] = fgc.pixel;
@@ -247,12 +254,15 @@ greynetic_draw (Display *dpy, Window window, void *closure)
 static const char *greynetic_defaults [] = {
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*delay:     10000",
+  "*grey:      false",
   0
 };
 
 static XrmOptionDescRec greynetic_options [] = {
   { "-delay",          ".delay",       XrmoptionSepArg, 0 },
+  { "-grey",           ".grey",        XrmoptionNoArg, "True" },
   { 0, 0, 0, 0 }
 };
 
index 0b761ccd5824f4d9dbbc00c0da64e6b27a39bcaa..1144a82042c7b4a1f9b3d7289503f29b3ebf850c 100644 (file)
@@ -4,6 +4,7 @@ greynetic - draw random stippled/color rectangles
 .SH SYNOPSIS
 .B greynetic
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-delay \fIusecs\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIgreynetic\fP program draws random rectangles.
 .SH OPTIONS
@@ -28,6 +29,9 @@ or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-delay \fImicroseconds\fP
 Slow it down.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index d3e9a1ea62550259ebffabc39bdf96621ca4fa74..21ffb13488b9651c953187aad587436d221b75e5 100644 (file)
@@ -15,6 +15,7 @@ halftone - simple halftone pattern of moving mass points
 [\-maxmass \fInumber\fP]
 [\-minspeed \fInumber\fP]
 [\-maxspeed \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Draws the gravity force in each point on the screen seen through a
 halftone dot pattern. The gravity force is calculated from a set of
@@ -53,6 +54,9 @@ The minimum speed of each mass point. Default: 0.001
 The maximum speed of each mass point. Default: 0.02
 .B \-delay \fInumber\fP
 Per-frame delay, in microseconds.  Default: 10000
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index adf5d5b74d89e77e7e7392fed4696a5d7e550d6a..98960c4f523303b1d4dc91ddd3b2047207553abd 100644 (file)
@@ -4,6 +4,7 @@ halo - draw circular patterns
 .SH SYNOPSIS
 .B halo
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-count \fIint\fP] [\-delay \fIusecs\fP] [\-mode seuss | ramp | random ] [\-animate] [\-colors \fIinteger\fP] 
+[\-fps]
 .SH DESCRIPTION
 The \fIhalo\fP program draws cool patterns based on circles.
 .SH OPTIONS
@@ -47,6 +48,9 @@ How many colors to use.  Default 100.
 If specified, then the centerpoints of the circles will bounce around.
 Otherwise, the circles will be drawn once, erased, and a new set of
 circles will be drawn.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 9e28c9fd07f7ecad9351e34a5cbce9e23abd4224..ea28f6909b94e70a3e22524b76d3875304822494 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1992-2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -338,6 +338,7 @@ helix_free (Display *dpy, Window window, void *closure)
 static const char *helix_defaults [] = {
   ".background: black",
   ".foreground: white",
+  "*fpsSolid:  true",
   "*delay:      5",
   "*subdelay:  20000",
   0
index 80eab94f6151dc6c284581c0db78488f7122c005..e0222945969f9f9ecf4a5482a191cd1f2999db1d 100644 (file)
@@ -4,6 +4,7 @@ helix - draw helical string-art patterns
 .SH SYNOPSIS
 .B helix
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-erase\-speed \fIusecs\fP] [\-erase\-mode \fIinteger\fP] [\-delay \fIseconds\fP] [\-install] [\-visual \fIvisual\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIhelix\fP program draws interesting patterns composed of line segments
 in random colors.
@@ -32,6 +33,9 @@ Install a private colormap for the window.
 .B \-visual \fIvisual\fP
 Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index f97f54bd0d7d86d762999436593d96ac75db7231..09614458f5e46ca1e92f152f0ed504e93298f51e 100644 (file)
@@ -55,7 +55,9 @@ static const char sccsid[] = "@(#)hop.c       5.00 2000/11/01 xlockmore";
 #define DEFAULTS       "*delay: 10000 \n" \
                                        "*count: 1000 \n" \
                                        "*cycles: 2500 \n" \
-                                       "*ncolors: 200 \n"
+                                       "*ncolors: 200 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define SMOOTH_COLORS
 # define reshape_hop 0
 # define hop_handle_event 0
index 822f4e534e96776ce756424a643a51e80c9b8534..f38b4812db7c003e40770abd9fe5d9fd2f3e1848 100644 (file)
@@ -5,6 +5,7 @@ hopalong - draw real plane fractals
 .B hopalong
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP] [\-jong] [\-no\-jong] [\-jong] [\-no\-sine]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIhop\fP program generates real plane fractals as described in
 the September 1986 issue of Scientific American.
@@ -50,6 +51,9 @@ Whether to use the Jong format (default is to choose randomly.)
 .B \-no\-sine \fIinteger\fP
 Whether to use the Sine format (default is to choose randomly.)
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 013f8925e65ab83b79c911c3b88f99b18b4eb60a..8a26cef7ca01c08153d170d8feccea3bbf0ccca9 100644 (file)
@@ -2379,6 +2379,7 @@ static const char *hyperball_defaults[] =
   "*zw: 0",
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*color00:#FF66BE",
   "*color10:#FFA300",
   "*color20:#BEDC00",
index 8b845c9cc8f4a88e905f396abb66adb59030a90b..241ff689c3b693bd4ff2452a16647e3e7b96b3d2 100644 (file)
@@ -18,6 +18,7 @@ hyperball - 2d projection of a 4d object
 [\-mono]
 [\-install]
 [\-visual \fIvisual\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIhyperball\fP program displays a wireframe projection of a hyperball
 which is rotating at user-specified rates around any or all of its four axes.
@@ -60,6 +61,9 @@ The amount that the ball should be rotated around the specified axis at
 each frame of the animation, expressed in 0.001 radians.  These should be small
 floating-point values (less than 50 works best.)  Default: xy=3,
 xz=5, yw=10.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index ce35ba9b5f97c638c31bd054fd72aae47c0f8826..ab131b199b1050d93250e014c2fe2c37311bc336 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1995, 1996, 1998, 2000, 2006
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -76,7 +75,7 @@ static const struct line_info line_table[LINE_COUNT];
 
 static const char *hypercube_defaults[] =
 {
-  "*observer-z:        3",
+  "*observer-z:        3.0",
   "*delay: 10000",
   "*xy: 3",
   "*xz:        5",
@@ -86,6 +85,7 @@ static const char *hypercube_defaults[] =
   "*zw:        0",
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*color0:    magenta",
   "*color3:    #FF0093",
   "*color1:    yellow",
index e3525fc9073b3b22de0033f7f458d07190fb78fc..259437098b7f4b97f1f0898f6e2f7b7cb9301c8b 100644 (file)
@@ -4,6 +4,7 @@ hypercube - 2d projection of a 4d object
 .SH SYNOPSIS
 .B hypercube
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-color[0-7] \fIcolor\fP] [\-xy \fIfloat\fP] [\-xz \fIfloat\fP] [\-yz \fIfloat\fP] [\-xw \fIfloat\fP] [\-yw \fIfloat\fP] [\-zw \fIfloat\fP] [\-observer-z \fIint\fP] [\-delay \fIusecs\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIhypercube\fP program displays a wireframe projection of a hypercube
 which is rotating at user-specified rates around any or all of its four axes.
@@ -69,6 +70,9 @@ The amount that the cube should be rotated around the specified axis at
 each frame of the animation, expressed in 0.001 radians.  These should be small
 floating-point values (less than 50 works best.)  Default: xy=3,
 xz=5, yw=10.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index d79f0f32c9f9b23272a50817a920e629bd69fdd0..099b0d1c8c265282c2162ab0bffeaba0374e419f 100644 (file)
@@ -92,6 +92,7 @@ myrandom(float up)
 static const char *ifs_defaults [] = {
   ".background:                Black",
   "*lensnum:           3",
+  "*fpsSolid:          true",
   "*length:            9",
   "*mode:              0",
   "*colors:            200",
index 77408878870385f150a3c0ca4e6dec1b9bbc0336..c95dce8d518269d19a20c7d6b9e2b58f5e17daaa 100644 (file)
@@ -16,6 +16,7 @@ ifs - draws spinning, colliding iterated-function-system images
 [\-no\-rotate]
 [\-no\-scale]
 [\-no\-translate]
+[\-fps]
 .SH DESCRIPTION
 The \fIifs\fP program draws spinning, colliding iterated-function-system images.
 .SH OPTIONS
@@ -68,6 +69,9 @@ Disable the varying translation component of the functions.
 .TP 8
 .B \-no-multi
 Turn off multi-coloured mode, only one colour is used to colour the whole set.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
diff --git a/hacks/images/scales.xpm b/hacks/images/scales.xpm
new file mode 100644 (file)
index 0000000..3b185f0
--- /dev/null
@@ -0,0 +1,204 @@
+/* XPM */
+static char *scales[] = {
+/* width height ncolors chars_per_pixel */
+"128 128 69 1",
+/* colors */
+"  c #B1B1B1",
+". c #AFAFAF",
+"X c #ADADAD",
+"o c #ABABAB",
+"O c #A9A9A9",
+"+ c #A7A7A7",
+"@ c #ECECEC",
+"# c #EAEAEA",
+"$ c #E8E8E8",
+"% c #E6E6E6",
+"& c #E4E4E4",
+"* c #E2E2E2",
+"= c #E0E0E0",
+"- c #DEDEDE",
+"; c #DCDCDC",
+": c #DADADA",
+"> c #D8D8D8",
+", c #D6D6D6",
+"< c #D4D4D4",
+"1 c #D2D2D2",
+"2 c #D0D0D0",
+"3 c #CECECE",
+"4 c #CCCCCC",
+"5 c #CACACA",
+"6 c #C8C8C8",
+"7 c #C6C6C6",
+"8 c #C4C4C4",
+"9 c #C2C2C2",
+"0 c #C0C0C0",
+"q c #BEBEBE",
+"w c #BCBCBC",
+"e c #BABABA",
+"r c #B8B8B8",
+"t c #B6B6B6",
+"y c #B4B4B4",
+"u c #B2B2B2",
+"i c #B0B0B0",
+"p c #AEAEAE",
+"a c #ACACAC",
+"s c #AAAAAA",
+"d c #EBEBEB",
+"f c #E9E9E9",
+"g c #E7E7E7",
+"h c #E5E5E5",
+"j c #E3E3E3",
+"k c #E1E1E1",
+"l c #DFDFDF",
+"z c #DDDDDD",
+"x c #DBDBDB",
+"c c #D9D9D9",
+"v c #D7D7D7",
+"b c #D5D5D5",
+"n c #D3D3D3",
+"m c #D1D1D1",
+"M c #CFCFCF",
+"N c #CDCDCD",
+"B c #CBCBCB",
+"V c #C9C9C9",
+"C c #C7C7C7",
+"Z c #C5C5C5",
+"A c #C3C3C3",
+"S c #C1C1C1",
+"D c #BFBFBF",
+"F c #BDBDBD",
+"G c #BBBBBB",
+"H c #B9B9B9",
+"J c #B7B7B7",
+"K c #B5B5B5",
+"L c #B3B3B3",
+/* pixels */
+"VB32nbc:<6Fy uLtSN1<b,cxzz;::ccxzl*=vNVVB4N3m<vc>cl&$#fzBDFD98765V76NM22m<,b5r.. LKF3lgkMFKyJewFZvg@*3euuteFqDDGLp.LtHwqDSSqeHew",
+"NMmb>><4AGJyKJreAM,cx;-=*kz:>vv>cccbNB4N3M21<>x:1BBmv;xn6S987654M34M1<b,vc:,6HLytrHqV,x<ZeJHGq09Cn=kb8rKJGq0S9DrL yJGFD9A998ZZC6",
+"<b>xzx2Srtrewq0S72:l=k**kxn3B55VVVV79C2<b,vcx-l>CJLJF9AA8765BNM1bbnn,c;-=kl<8HrGFq0A64BZqwF098CVB2b1CFeGqS876V8GJrGqS98CVCZ5321n",
+";zl==:4DeGq0AZC6Bm>;xc,<MZeJrHewFDSSDZm>x;-=j&-2GaOXuKteA42m1<,cxcm54<xkhg=1AFqS98C545ZS0987C5NM113ZDD098C5B3M59D0A8765NMNCVm,:;",
+"*k=zv40F087C5BNM22N57AS0wKp.LtHwq0AZ88V2b:-*hjv8Lap KJrGAM,c:;z=-<8JJSN>=&;3Z8ZCVBN21MC8754N32nbv<VFw9C5B4Mm<b1BC65543mnn4SqCn-j",
+"-cn4Aeye85N3Mmnb,MSHtKtrrK yeq09876B5SHeD7N<><6euuKrwq0S7mx=kj&*cVJXpyFCMnM5VBNM21<vv28SC31<bv:;cMq y0Bmn<bc;z:n2M2mnbv,28JLe6v=",
+"69FHKuuHZMnb,>:;:3FKytHGFwHw9Z7C5432Nq.XitG0ADHtJHw098C652>zlkkx4w . tGD9SF06Mn,>cx;>VHKqVmvx-=zn8LspeCn:;-kj&=cv>c:x;:nCGyutD63",
+"yuuLytJGZm:z-=k*x4qrHwDS889A64NNM1<<Nw.p yrwFHJGqS8765NMNV6V4M3CFtytHwqSSeiLq5nc-k*lnD pKq61x=lbZJ.X r92xj%%hk>1,-kjjl,VFJtrGFFe",
+" uKrGFDS7m;=**k-<CDq087C5B5BMn<b,cx>4FKKJeFDSDqACV5BN2<<MStyJHrKKJeFSA87ZepXyqV<z&&xVr  Ke061vn7HuuyHw9B>*h=v4Sq6>j$h:40eeGqS9Ft",
+"rewDS8C6BM<bbn259FSZC54NM1nnvxzzlk=>BDGFDS876C753mm1<vc>4G.p LLuJq98CV5BCG iyH0V<;xM0tKJGqSZV58GttrG0AZ52<m6Ft iH6v=z28qq09ZC6Aw",
+"DSAZC5NMM5AqFwGHKr9BM21nb>c:-*h&*l>3ADS8ZCV4M3431,>:;llc6r LKrHHF8V5432MVwKtew0ZB3BAwGFDS87V57DGGq09Z6BN48eup. uJqCNNC99876BN35Z",
+"CV5BNMnbnCHu ytJJe8Mb>:x;;x>c-jkc2ZwrwAVB4M1b<3V41>-k&*vZHreFDSS85Mm1<,<B0wFSAZ65VA0098Z76BMM5A998764M1n4Fu.iLJHwDS0D9Z65BN21<1N",
+"NMm1n,cx,7JLyrewqDZmxll-xv2V7BM4AGtLyG84mn,cxb6Ge05nxlzmAqDSAZCVB2,cxzzc3898C653M4Z97VBB43mb,1B55BNM1b>>MDKKJGFD9ZAetwZ421<vcxcn",
+"42<>:z=k>CGHGDSAZ7Vmxzcn4ZDerHHtyyKtrw8N,x-=z2q iKwA5M35ZZCV5NM2m,zkj&*;mBV5N32<<M8S6M1n<b>x:<332nbv:z-xMSwFDSA7V5ZHiLFVmvxl**xm",
+"DZN<:lj*>V00A7CVB3Mm13C0GrrrHrLLKrGFDSZNv=%hc6r LtGq98AZ6B32mnb>c;j%%&=>m22mnbv><VGJS3,x;zl-v4Z62v;=*jkv6D0AZCVB3MCrp.KDV<z&g*nA",
+"uJqZNbxx<BC65BNM1bbmCqrtJrGq0qHHw0S87653vk$j10JJeF0988SSCNm<,:zl==lz>n47CMbcxzx,Bqy HCbl&jl,VwtGC<-h$&:5GrD7B321<1CeLyrwAB,l=b9L",
+" yrFA6NN4N3M22nb>x;<8eJHwqSA77998C6543Mn>lkcVDwqS87C5VAwF8Bm,xljj;39wrKyeCnz*kcN0JyyH93xjlnZHu tqV,=kv6Hi e841,c:<CwewDS863nM9Kp",
+"JHwD97V6642m1n,>x-zb7qqSAZC5N3B54N32mn,>:vMC99A8765N2M8tLJFA5m>z;MGpaX. tDBv-xM9HrHGq9Vm<N0ryyJeD8Bm39J iLH0V1:llbC00A7C54MNArLL",
+"DS9ZC5NBZ8ZCV43m<,<NZZCV5BN2nb<nb,,vcx;xb6etF754N32n,nZtuyrwSC424D apuKrGDZ424AFGFDS8C5BZFJtrGqS87660tLKrGqS73>l=,VZC6542n<MAere",
+"7C6BNm<MSrtHwD9ZCV68ZBM2m1<v:;xxz===kk-b6HppH7M<b,>x;bZerewD97V58HLLJewDS87C790098C65NM4AwGwDSA7VBNV0HewD98ZVN<;-v34N321b>:bVS0S",
+"NM21<>:n9KLKHwDS8CCZCMbv>:;-k*-:;khggk,Ce .iJA2cz-=*=vCDDS9875N36DGwq0A7654BC88CV5NMmnb1C9987CV421n38DS8ZC5B3mbc:vbbb,vc;ll>4C6V",
+"b,vcx-znAHHGqSA76BNVZVm>zk&hh=<66m:k=,7eyLKJeS4:&$$g=<6Z7CV54Mnb2C88ZCVB32nn3BBN2mnb>::<686B3M21b>,NSq8V43Mm<>:cb<c;-lk*&*xMA8B2",
+"xz=k*=>VweDAZC6B3m1Vwr04v=%%-m0Lur9VVAetJHGq0A5vh#glnC86432mnbc:nBVB4N3mn,cc<M2<vcxzl-c4qF73<,>:;xn8JJ0B1bvcxz;n6Z3:*%f$hx4wLH73",
+";k%gjcVriK0CBN3m<,1ZyXuG71c,VGioX tHrHeGq098CVN<;;nCeLHZ3<,>:;;>NA73nb,>:z-:M6B<xlj&jx3quuF5b;l=lvVH ue71:lk*-b7tuGV>&fhc6H.a wA",
+"n;%hc6rXouF6M<,>:>3q p tw9AFypX.LtHrteD98CV5N211N9J XaLq5<x=kl>4FyeCnxl**=xM0JG6b=ggz3qyi r92x**x4FyLKHS4vkh=<ZJpXuG7n>1AJ .iyrw",
+"51c<7ri.iywZ2c-k=vCHyyJeFDGL.iLJewDDwD7VBNMmn,>nZyXXp KGA3:**cBwupuq4cjg&x3DLpueCb-x3DtLKJG06nx:30rJeFD96mxznAtiiLteD90GKLLtHGFD",
+"5BV0JLLtHGq8Nc*%k19eHwqSAADrtrGq09Z7ZCNmn<b>:zzbAyiLtrGq9V1cb6GLi KeA2;k:BFy  yHDC5ZFJJHwqS8C4MB9GGq98ZCBMmNStuyJew09DHKKJeFDSAZ",
+"237wJreF098CN,kh;40qDS87V57SDSA87V4NN3<vc::xx;:MDJJeq0S8CV4B8eyytrGq9VMM7GKytHwD980GeGwDS87V4NB80DS8CVBN2mNAetJGq09ZCZqGwDS87654",
+",<B9qDS8765N2b:>MC88765N223VC6554M1bbbbbb<n1m2B9eGDS8ZC5N3NCFrJeq0S8C5VSetrGFD9Z66ADSA8ZC542nn2V7CVBNMm<vvm8FwqS87VBN4C87C65BN2n",
+";>NZ8C654Mm<b<N9FS6BN32nb,bmM2mmn,cxxb4ZA999990wG9CV5BN2<bnBSqDS8C65NMBSwwD98C6BN3V87VBNMmn,>:,34M21<,>x-;nC9876VBM1<<24N3Mm1<,c",
+"znZDA5M1n,>:>M0u.eC2<,>:;zz:>>c:xz--:3DJtJewqS9SS632mnbvx;:mV7CVBN3mn<3AD9Z65N3m<nBSS631,>:zlzb5VM<c;-=**x4DD7B3Mmbv::bM2<vcxz-=",
+"2AKuG7m>xzl;nZJpXt9Mc-=*&&*-;lk*kl;,NDKyJGq098C66N<>cxzl**znNN32mnb>c,BFG9VN21b>cnZJtqV1:l*&jcCHH83>-*%gk2Fut05mb>;-lx276mc-*h%h",
+"GLXpKDB,-j*c5GyuyrD5v*g$%k>21:=k;<4Awyurq98C653M3mv-k&%g%kvBVM<v>:;-xmSyLG7M,c;-:3Fu J05blhgl4rXptD5nxk=<0 X HAN,zj&ln0Lt9M:j$%k",
+" ..utGAM:kzM0JJHwq071-hj:MSrGZ3MV0etKyKG865432n<24M>kgfg-1AHwCn;=*jk>Cr  tDB,-*k,ZrLKHFA4>=-2Fia.uJF8N1NSyi KHq72:kkb9uopKDBv;vN",
+"uLtHwq9Vm,2Zwew0A87V3<<4SJ piKrHJKKJeGGD6321<,vn5qwZ1;zb6Gupuw5>*$gzNFKytHFZ2xkz30HHwDS8V21BFLiutJeF9C7qtytHwqS8B1vm8t..uteS7C0H",
+"reqSAZC5NB70DS87654M2B0K.pi LyuuyrGF099ZN<>x;x,4DKLr08SGuppiLr9M;h*nAeHGFDSZBn>1C0D09ZCV4MB0tyJeFqSAC57FHeF098CV4M49rLLtHwqS9FJK",
+"0S87VBN22B78765BN2nb<VHi.utreerrGD98765Bm>z=lc30JyKHGrui. yJeF9V2bmC0qDSAZ6532M5Z87C654M11BqHGqS87C532NZ998C654311BqrrGFDS8CCSww",
+"6V543m<,b3CVN2m1<,:x>BeytHwqS90D9Z65BN21<v::,N9HtrwqqeyLyrGqSA7VCSGG0ZC65BM1<<36C5N3Mmnbvn6Gw976543mb,<3B443Mmnb>vM8D098ZC5NN57C",
+"mm1nb>::<Cq83b>:xzk*;N0wFDS876CCVNM2mn,vnBC8SFGewqS88SGewqS8C54B9KpuDV3221b>:b5S8Bm<,>:x>3qLrABMmnb>x:,331<bv>:z-;<5C6V543mn<13M",
+">c:xzl-v5H r7n;kj&hj:48A8765NMMMmb,>cx;cNqKLytG08765B6A987CVB3M5quaiw61,vc;z:3FLrA3v;l=z1AypLDB<>x;zzv49ZM>;l=*j*:MVB32mnbvccnN4",
+",:ljh*:NF pLF5vkhj-,60964NMmnb,,>;z-=*kv7J uKrqZ543m1245BNM21<mCGyuyGZ1xlk*ln9uX eZmxk=,7Hu ywCn;k*-,VwyJ81-h$%*:4DF72,>xz-;vBDw",
+"C2x&%-M0K LJGA4b,2CqyuG6mbv>xz-;c:;-*j-20rJewqA5M1b>:cb<<b,>c>2AeHGwD8M;hfhc6H  yrD61cb6wttHGq83:kl<7eL yw6v&%l1ZriuF5,-*j=>BFui",
+"w8Mc:MSHtJGF0AZZDrL p.J8m:lkjh*cN6V3nbM7qwqSA8CN<c;-kkz;z-lk=:NSFD98ZC3:h$lNqttrGFSZVB7DeeqSA8C4<vm8HyyJeFA4<n6wy.p r92z&kv5Fy u",
+"FSC5C0GGFDS8C67DKi.uLKHS3;hf#gzBeytHFDwFD98765Nm>ljhhkc,x*%$h>BAA7C543mb:vNSeeF098C55C9DDS8CV5NMMV0HtJGF09ZCZFK iuyJG0V<:<Cwtytr",
+"A7C9GeqSAZCVN3BSJyKHGFDABvk%%l3G.p yJrrw85B432n,;&g&zm80V,kgj,4V54NM1b<3ZGtJwS87C54M246CC65432n<2ZGHGq98765V9JLyJHwDS8645AwrHGFD",
+"656Dtr965BNM1<M8Gew098CV5N21mVFuiLJHGFqS5mn<,>xzkjl<Ce .t9M>>n22m1n,c:<ZtaoyD75BNM1b,<2MM2mnbv:x<60D9ZC5BN2MCweGqDS8C5458FGwqSA8",
+"N47wyJAN21<,c:<VSS87C5N359GeHtyyJGFDS8ZC3vxz-lkjkcBFLpXiye0ZVM<v>:xzlx3wiaXyDVM1<,c;;>n<,>cxzl=z<V765BNMm<v,38998ZC5NMmM699AZCV5",
+"3V9etH82>x;-kk:M66VBN2mM7eu   KeqS8ZC5N3nx=kkkklv6H .iutHwDqD7M,x-kjk,Zt uyJq61c;-ll:mVN,zkjj*zbV973mn<,c;zx15V5B432nb>v2BB4N3M2",
+"V8DFwqZ2;jh%g&;nM221nb<NSJyKtteS7V543m<b,>>vbnm49t uyJHwD980Jtw7Mvz=:4FttHGF06nzjj=>4DJFB>k&lvN9HrSN,:zl=kl>464mn<,>xzlz,1<<<bb<",
+"ASSS8Z62z%$gjxmN2b>:x:n6FHewFFD74Mmnb>xxb59DFFweyiLHwqS87V5AyapKFZN24AwGq0987Bn-*l<CeuiKq5nn49eyuyw6nz&h*z<CGeZmczl=**=>MN<c;;>b",
+"A8ZC5NMn:lz,NAGF6n;k*;28qqS98874nvcx;-=-mqLiuytJKyHDA8C5B3NZtp.LJw00qqD98765N2b>,N0JuuyrwD0FryLytrwAN:**>NSJiuwBc*%ghlbCwFV,z-v2",
+"65BN2n,v<BSeK .LF5>*&:NZA8CV4N31czlk*hh-4r uyJewwwD75B4Mmn2ZryKHGq0DFSC5BN3m<vv1CFtyKrGq0qeKyKJGFDS851<3AeyuuyHAm=gh;3SK. GV<>1N",
+"M2mn,c;x3e.Xpi yHS3cz,NVV5NMnbbvx-l=k*=bZHJrGqS98874mnnb>c<CFGF0S8Z8A63mn<b>:xc30HrHwDS87ZDHHwDSAZC5N4ZGyuytrGF9B<>1Zeu.iLJF7NMM",
+">vc;-=*z5KX.LJHGqSCNmm222mn,cxxv122MMM49GGqSAZCVB43ncxxzllvV9987654NN2,:x:xx:>1CFwqS87654479SA8765N2n3SJKJeFDS8CVVAeL iLJeGqS6m,",
+"-zlk*&jc7JyJGqS98CV55Nmbv>:z=kzM0rrHGwGtJ0765BNM1nbc-=k*j=vBC65BN2n<<<czz:vnM58wH0Z65BN2nnMB55BNMmnvcn7FwqS8765N36Gu yJeFD98Z5bx",
+"c>c:xxvBDGw0AZC6B3M4Z96M<>;=&&:7ypiLKrHrGZN22mn,cx;:c::::v24NM21<,>v<3M1mB790qwHeA5321<v::vn11nb,>x-->47ZC65BNmnnBFJrwqSA76B43nv",
+"8888779GHD8CV54N2<b3qLKw85mcz;2DL yJHwDDS5nv>>:z=k;MZS9AAS95nv>:xx>1VqreweHHGFqqDC2,>:xz--;ccx;z-l==;<4B4N3Mmnb,n5DF098CV43m1M6A",
+"LytJewGre8B3M2mn,>>4HaaurFAVN59HJrGq09ZC63>zllkjh*<0L LKJte7b-kkl>MZwy..LJeF09877B<x---;:><n>l**=-x,3ZAB1bbb,vbmB9F9C54321<vvMq ",
+" yJHwD0q051,v>>:zl:5J.iyrw0AZSwwqSAZCVBN32<cxz=**:6J.iLtrew8n=&=,50HJKLLJF08765NN2<>>b135CAAN>xc<MV9Fre6,xxc,14CSwG831<b,>x-;mwi",
+"JHFDS87C63,:zll*hh;6HKJGqSA7C8SAZ654NMm<nNZAZVNmMCGyytewqS97M>:17FrrGFwGq8C5BN2n<n36A0DFwwww088SFeJKtJeZ1>,m580DqqDZ2c;z-l=*zMqK",
+"q0A87V433N3n>x-*hj>CFFD9876BNBVBNM21nb>:,CtiuteFFrtrGq0S8C5B5C80weGqSA8AZ532mnb>:,6eKKJrGFDDwt i LyKeqD9C5680Fq0S8Z6mx==l--zb6DG",
+"ZCV54M1<28wF9C4mb<NZAZCV54M1<n22<,>c:;llb9uXiLJHHtHD987C5N34AHyrwDS8CV55Bm,v>xz=kc7rKJeFD98Z0ti yJew0Z78S0qqD09ZC5BNmbbn2346SwqS",
+"NM2mnb>>3w.puJGDA9085N32m1b>x>m42,:z=j%kmqyLJHGqqwD754N3213CwuiJ07VBN321nvx-lkj%hx6FwqSAZC557wrHwqS97BN58S0987VB4M11N8qGeeeeJJq7",
+",>>cxzlxBrp.uKrwDqqCmbbv>:z==>Cwq7M,xk&zBFreFDS8Z87N1n<b,15DryyHA421nb>:>,,cx-k&*>BZ87654NM2480SA87VNmn1N665BN321bvbVr iuKreeGS5",
+"l==kj&&xCrytHwqSA88Bbx;;-kjhk2eppKFAB1bM8qqS8ZC5443n>xxxv38weGwq7mv:xzl-,5A8CBM1245BN3M2mnbvn4665BN2n,cv25BM1<bvc;;,7JuyJHwDS9Z4",
+"kk*jh%j,ZGGq09ZC5B5B3n,cz=jkvALX.LJG08ZSS87V5432n<<vz*k;160qD98Z5b-*&h&;4GLLJGD9S07M<b,v>:z-c13Mmnb>xz;b6DA4bx-=*k;20rrwqS876V54",
+"Mmn,>cb4AS9AZC54M1M8GGDZ52n2ZHLLJHwD98AS74M2mnbvc>b1>==>4Z9A76BNM>kgf$*10y LJeF0DwD5nc;-=*&=,4B2bcz=*kc5r.y03ck%%lmSttF98CVB3223",
+"uKHwDSDq9CV5BN2nbvmDpo.KHF0FrtrGqS8765564n,>cxxxc15AZMn2BVV5431<b>x-=z<ZHKJHFDS88eyeZ2c=hgj,ZHeZM>=%%zNwia.tSNc=;M0L.yq75NM1<,bM",
+"+sputrreA4m1n<v:zx2wpaiyJewHteDS8CVB32m3N1>;ll;,N8wrHF9VN22m1b>:c1VA90FeHGqSAZC56GppKDV<;;<ALa.J9Nc=z2Dyi yJFABNCwy utFC3<vcxxn6",
+"aputrGFF82>:x;-*j-3GLyJHwDSDFS7V5BN2n,,4S9Bb:c16qHJreGq61v>>c;llvCt.pp JF98765N3VGipuJF8V7qypp KG9BM5DJytrGF0A80HyytHGDC2>-k*z3q",
+"LteFqSAAC1;=*jhgg-4FewqS8766CV3m11<v::<AL.t0CC9wHHGq0S95,zkk*&&zNGpap. rS6B432n1VwyytHwDDHLuLtHGq9Z8qHrGq098C6C0erGq0986Mc*g%x6H",
+"GqSA8C5BNm,:;zl*=,6SS987VB322mbcxxzllc4eXo.LJHeGF098766Bn:khg$j<0yiuKJrG83n<bvcbVqeGFDSASetJGqSAZCV70FqS87C5NMN70D987654m>k%*<AG",
+"AZCV5N2126SS8CVBV897V5BNMm<vvvcz=kjh=1Syi yttrF08C654M36862>--,CHKJeFD0S61:;zllv5SDSAZCVC9qDS8765NM4787V54N2nb<MV6544321bcx>M8DD",
+"54N32<v>mD puKrGHJq52mnb,>x;:13mv;==>CHKtrGFFq8C5N32n<29yLHDZZSFeGqSAZCCBblj&h*vBZZCVBNMM5CC65BN2n<MCA7421<v:z;>121nnb>:x>30tur0",
+"21<,>xz:NHXXiyJeeH03v:x;-=*l<9JH0CN4ZFHeF0988Z53mn<,cv4GpXiKrJtGD9876543m,-kk=x144N32mn,,1222m1<,>vNqrwZ3<:-kj*;,,cxxz=kz1Suaayw",
+"MbxlkjjxVr LJGF0SS8Mcl*&gf%x6KaXurwGrGqS87654N2b>x;z-,Zt. yJeHHD75B432nb,<m34VZ85mb,v>x;:<mnvcx;zz,7t ywZ3>=h%-15Mv-*%$hcCJ..iyJ",
+"V1-h$fh>ZerGqS8Z6V6VM>lhddkMw . KreHHqZV5BN2nn,xl*&&lm0tKrGqSS0731nnb>x;cNDJKyyr8m:l==lx16ZB<;k&&zMqKyJG0C2:lc5eyeCnz%fk3FyLtreG",
+"C2;%$jcB0FD98CVB3M6FH05<;;m9JyJHwDSSD842m1<v:cc;k%f%zBqGF098C664<:xxz=*=,8yppiLtD4:&gjx29JKw6b=$h>7erGq09ZB239yos.rS4,cmAHrewqSA",
+"Nm>:b5qtJDZV543m<m7KX.tDASFeHGF0A8C66Bn>cxz--:<2<xlz<CSS87C5NM2n:lkj%$fk2Fu LtrGDCbkj:40tuutD5,l;N0wqS8ZC544Ayaa.utG08A0FwF098CV",
+"<<m7Guaauq63mnb>>2SuXiyrrttGD98765NMM1clkj&k:MAwF9CCZ7CV5432nbv,,>xlh$%x6etrGq098C3<m7GtytrGD8BNV909765B3m13SyiutHwqSSFw0A8CVB32",
+"cv4epaa.LwCmvxzzc4FyLtHGweHSC5BNMmnbb<,;*%*v5FKLKrHHFC311nb>:;:m8D9Vm,<49wwq987V5NNVSHJreF0S8CCSHe9VN3Mm<v>18HJHFqS8CCAA6B4321b,",
+"-cVJi yJrw82x*&kvCGrGFDSA9S63mn<,>::b47Vm,1ZeLLKrGwGDB,:xxzlkkcCya.tw0qwD98Z654Mmnm6qGwqS87C5B7eiuq5mb,>x--,6Dq0AZC5N3N4mnb,>cxz",
+"=v7rtrGqDSZ3:&gkn8qqSA8C5553<cx;zl->4FyyeFGJKKrGqSAA84>-=*hgg=2wpo.yJHJHS6BNMmnb>>nC0SZCV5432NAtpiHZM>zkj&k>477654N2n,,<bvccx;-=",
+",N9wFDS8765Mvz;,4Z88765N211n>ljhh*xNDyi LuLJHw098CV5CZBn:kg#gc8KiuKrGqFq72<b,vc;;>Nqe9532mnb<30KuyrDVb=&&k:MV5NM21<,>xx<NBNMmnbv",
+"7SD9ZCV54M1n25A09754N32n,vn3M>*$g-M0JyKJrJrFS8765NMMCetwZmxl:BwtJeFDS8ZZB,;zzl=l:MDuuwV1,>::,BqrHGq0CMv><4AGqV1v>cxz-l:5eKJHFS87",
+"DF9VN3M21b,1Ceu H7Mnb,>xx,5qGAm:cM9ereFqDqD8VBN3m<<mALX.tFZCAqGGqSAZC54NMvl*jhj;M0ypir82:lk-b6Dq09875B6SGJLitAmx----;>3w.a.uteFD",
+"8ACM<b,vc:vNDyi JA2c-==l>4FuiKF9SDFwqSA87CC52n<b>:vNqLiutHwFewS87C65N2n<mM1,:;>N0tuuKH0B>*h=nCA8765NMB0tuuLyJDBbcv<24CFupiyJGqSS",
+"B5N<:z-==;18HKKrGS4:&gj:NDy utrJtG098765N331v:xzllv6eKJewDS0FS64NN32n,c>NqreD9SwJKJHFD96n-k;mB5B432n<4qKyJewq0AZZ90qFGt yHwqS8CC",
+"1mMMn:=jk>5qHeFDSA5vhgzNDJytHwqwGSC5B432nb,clkjh%*<ZwGFDS86V76M<bbbv:zzvZuoaiuLKrGqSAZC53mM4B3mn<b>:>N0eeFDS88SGJtJreGerG0AZC54N",
+"vnVDDC1>vNAqqS9ZCVN<;cNSHrGq0988ACN21n<v:z--lk&%%-MA0S87C5NMN53bcxzl*jlmF.a.uyyrqAZ765NM49Hr0B<:;-=k;MADS8ZC55ZwJrGq0SS09C5NM21<",
+"cMDu tqA89S98765N2m2NZ0FFDSAZC5BBN1v:;zl*j=>2M1,bMVZZC54N2<bM8S6mvz*%hx6J LJHGGq8VB4Mm<1VHppt9Mck%$glm6CV54N225SqDS87C66VNm<,>cx",
+"18J  KJHeD754N32n<nBDte0ZCC65N21m2ncl*hgfhcCHyrGww96NM21n,cvBH KFZM>z;20rrGqDS9852n<,>c18K.iyGZm-$dg;mN3M21<,,2CZ7CVBNM2M1vx-=*j",
+"8GKKrGwFFA4mn<,>cb39Kir8BNN32nv><BC4bz&$g;Vtaa. uyD4<>>cxz-,ZLapLH0C569FFD987CV5M,:;-lxM0tKrGF95<;zbB5M<,>cxzzvMNNM2m<bn3Nn;jg$%",
+"wHHwDSA8Z6mc;zzzcMAHL r8M<b,>xzx2DKtDVn:b6r.X.uKJr0Nclk*j&=1DuiLteFS9DFS8CV54N21bxkjj*c5qGwqSAZ65C0rywV,;=*&%h->bb,v>c,3AqZm-%%=",
+"qqD9ZC54NM,-j&k:MAeJJJG82:-lk*=,ZKXpyeS9Ft  yJewD08N:j%$fgzBGtJeFDS8Z99VNM2mn<v:x;-l-c2Z0098C54B8rpsay0M;%#d#hzc:;--;v3AHteAMvv1",
+"8ZCV54M1<bvzj&z2AGHGFDS72zh$fg-NG iuteweLuKrGqS87653,zkjj-nZFwqSA8C54552b>>cx;l=x1BVC8SS87654M2N9LaaiKw7bjg&;mV5nzk=v49GrrGDZ6CC",
+"BN3M21b>cb3N1n3ZqFD987C5m;%d#*nStyJew0SqHHFS98CV4M23577V579SSAZCV5N2n1mbx-l*&h%k10KLyKJqCNM21b<N0y LrwD841mVqtuJA2vb49Fwwq0AZZA7",
+"2nbv>:;;v4qJHGF0SAZ654321<v:>2ZwHGq09ZC7997V5BN2nbb4qu.uyLKq7BN32mnvcvm31cl&$#%cZyp.uytFV1,>:xv4DrrGD9ZCCSJiaoX rDA8SqDSA8CVBVA9",
+"VM,xlkl>4qL.i JS6BN321b,m7qeHJrwD987654NB421nnbv:;,CKoop iLqBn,v>c;l-bAJr9Nvlkx5e uKHGw0Vbzk&*c50qD97VB46G.oa.utHeeF098CV5N2mBFK",
+"JDB,l=c4FyuLyyHZ2<b,>x;>BepaXpKD7VBNMmnbbv:;;;z-=ln0upiyJJr0Ncl=kj&hzBtOsiHS6B7FJJeqS9AZB,*f#h>58ZC5N211NqLuLJeF0DF0754321b,nCKo",
+" JD62mVqtKJGFFD6<;-l=k-n9LX.uLrSB2nbv>x-lz;z-ll==;NFKKHwq0SZN>l*h%%kmq.oX KeFFeew098C65Nm>*%j:M55NMmn,>>m9eewDS87CZCN1<bv:;:mSuX",
+"JeqSASFHewqS8Z7Bbljhghx5eLLJeGwAN,:;z-=*l,34321n1N8FwqSAZC54NMn,c:>20yiLtreq0qGDZ65543mbv::nVDFABmb>xzl:3SqSAZCV433Mbx;z-==:BGyy",
+"q0989qFqS8ZC5N3Mn>zkj-2SHrGqSS973c-l-zz:m0KLtHwDDFwDA8765N2m50GF0S0HLuKeFq09Z89C4Mmmnb>xz:3w.opr83b;kjln9HFA6BNM1b,v:;zzzzcm8eHG",
+"8765VZ8765BN2n<m5ZZ5N59FFD98765B3nbnMNBCF.sa.utreHG854N32<,nCJ.iLKKuLrFS8ZC654542nbv>x-kkcZ ss.KFZ3>l=,8K rS52n,cz-x<MN44570FwDS",
+"BN2113N322mn,c>3DyutHrHq8C6543mm4Z0FwGweyXX yJGFqq0V2nnbvxx<8KiuKJJJHD8C5BN21<25VN2n,xl*=<D .LJeqSC3n2Zr  tqC2v;=&jc7rtJrrJJGS76",
+"mnvccv<bv>cx--v6riiyttH95N32m<v,5wKytreGryKrGD987C63,:xz=*-10JtrwqDqD85N2mn,cc20reD86N1,n6eyteF0A8755AeKKJGD84b-h$j1G.. yJrHq7NM",
+">:zll:b,:zkj&l1StytHwwFZM<,vc;-cVetJGFDSDwwDSZCV43M<x=*h$glM0wF09877CBmb,>:;lxNH. KHF0Z6ZqeGq09Z65BNB9wGFqSA7B1x*kvZt yJGFDS8B1,",
+"=*&&-m7CMv-&jcVFHGFD9AA6n;-=*&&x5qwqS9ZC788C65NM1b,vcxlj%j:BA987CV433mbc;-=j&;VrLKrGqS878DS87CVB321n2CSSA876BM1b<BqKyrwqSAZCV3v;",
+"%g$*n0LLe8N<bNADDSAZC55N,ljhg$%xBA98765NN4NM2mn,c;:<576N2M5CCVB4NM1<nMMn>z=&&>7GeFDS87VBVZC432mnb,>>m687VBNM1bb28taaLF98765N31:=",
+"-lzn9uoX rFS9S98765BN21n,c:;zz>25554N32nbbbv>cxzl=cVHuLrGwwAN1nn<,ccnCD0Z4nv,NAD0AZ7VB323C741,cxz-->B0D7N1bvc:,VHpsXKDC4N32nbb,>",
+"Z7AwLp. KHwFFD74N321<,cvMZSS9SDDZM1n<,>xzz;;;;zl=;3FiXiytreAmcx;z-lc4wLyrq87ZS9ZCV543m<bM9wS4,z*&&z2DKJ05n:-=z1Syi Lr051b,>:>mV9",
+"tty  LtHFDSA984nb,vcxz-v7ypiuLytS2>x;-lk*=cnmm1<n4Dy LtrGqD8mx=*jhk<AJLtHFSA9073mm1nb>:vBeiyD4>k%*<At ye94vlkx5wKtrGF9Bb;llzb6GL",
+"tJKLJGqSAZC55B1:zz-lkjlmFpa.uKJH0Ncl=kkk-bCFGwFDDeKyJeFDS8763,x-kkcBqrHwDS8CC862v:x;-=z19y. J0Bb:nZeKtHw07Mv:18wewqSAZB,kh*>5wKu",
+"GFwGq98C65N211<c;z-=kk>6r utHGq09Vmv,bn2B0yp.uKrHJteqSAZC544688644CSqqS87C54B8DZm:=&%h:VeLLteD8669Greq0986422VA0S8765BM>*&x4qttJ",
+"9889ZV4N32n,>bN6654Mm2CFJJeF098CC790qFwGHLXpuKrGFwFS8C554M1M9y.utJJwS8C54NM2NDLyDN:&$*1SHrGqSAZZ0wGqS8765N2mNVCC65BN2nbcxvB0eewq",
+"V5B542n<b>x--bSyuKrwDDeHw098CVBNNCeuiuytJy yrw09AAA7B32mnb,3q.op LKwZBN3mn<1VH.pKDBvx,VDFDS876BB7997V5BN2n,,M554M21<v:x>3AwwqS8Z",
+"3211nv:x;-=*l2eXXiyrGGHw9CV543mnnBGuuKrGFGHw0876V5BN1b,>:;c4G iyJHGD62<bvc>2AJLyJwA6V6ZA8ZC6B3m13VVN2m1<vc;>B98Bm,c;-l;MF  e9C55",
+"<,>cc:;;zzl-vCtiutHwq0D0CN221<vcvNDrHGqSA9S865BN211n,c;-k*:VGtrGDS98Bb;zll>BDHHGqS88Dq9CBNNMmb>>mVV3nv:;l=-10yt0Bn:=jkbA sprABM2",
+"xz==:1M3NNN5AGttHqSA8CCCNb>>cx-lxMA0SA8CV5VBMm1<,>b22nc-kkvCDq0A7655Mc*%%=<7Dq098CV7wtGZN1bvc;z>5qF84<xk&jcCtpitDVnxlcVr..urS51,",
+"jh%kmSeHeewGJteqS87V5N3Mbzk==kkl>N7765BN2mmnvc:;z:mZ096M<<378ZC65N2m<xj$%zM8987C5NN7riLwC1:l*jl1Du tqCmx=;3wu LJwS6M2VFKyJHw061c",
+"ffg:Zyi ytHerH07V5BN2nb,:*hk-:,m69Z4M21n,>cxlkjjlbCGJHF9ZZ8C5BN3M1b>>vv>bMVC65BN21MZJ ur0Bvkg%:CJiiyHD73mNSJKJeFD9Z6ZDHreq0986Mv",
+"kl>5GuLKrGq0DDZ42m1nbv>>v>v147SFHr93,>:xz-zx-j%j>VFrHGqSA9ABmn<b,c;;>40eHGS5Mm1n,v28HtrGD7m;&lMqKytHwSZ6C9FGwDS8ZC5570qD98765N2<",
+"58FJtJew09ZCCCB1,,b<<n1M6DeHJtKtJr0Nclk=lx<3N<:,B0wwqSA7V663,c;-=**z2q.oX wVncx;zx2AwwqSA7N<v2AHrGF0A7VBVA0SAZ6543m1367CV5BNM1<<",
+"Kup.Jq987C5NMM2nnm3BV67ZFLpiuKrGwqS5>kkxn59wGDAAS0SAZCV4M35V3<x=&g*b9Laa.LH81z*&&z2Z98ZCV42137DFD9876BMmM6CVBN321b>cb23M2m1nb,n3",
+".i ueAVB432nbbmB7AS00S9ADtLKrGq0987B1,m6DeJJreHGSZ65B4M1<m7GeSBbz=>CJ iLJHG93;h$hxM665B4Mnbn5S08CV54M1bvnBV31<bvc;--c<<,>cx;xb50",
+"LJrHqCMn<bv:;cMAFFFq09ZC7DwFDS8CVBN34ZqrKtreFqFq74M2mnb>>MDupLGA5BZGKKrGq0SZ4,zz>1NN32mn,>>29rF6M2mn,:;cM90Vncz=kklcMV3v-*&*x30t",
+"HwDqSV<xz-l=zbCqq098765N4CA87C54321nBqttJeF09888B1,>c:;zc5HiiLrwqwHrGFDS8C6BNBZ0FD6m,>cx;xnZt.t7n>:;lk-nAKLw5>*g%l<6wJFN;gf*<8HK",
+"w0AA8B>k&hjlvVGH0876543mm46V54321<,b4qrewqSA76552>;lll==vZKuyJeFFerG0987VBNM3ZKoou9n:zl==:BGiau9<;lk&&z5JXXLDmjd%,8Jpau0b$@l4FrH"
+};
index 6e1f31dded435a8f7bbc437cc2dead2c62546155..aeee0308526344d65c48482e31d6450bfea1b0f4 100644 (file)
@@ -161,6 +161,9 @@ init_map (struct state *st)
 
   if (mono_p)
     st->flip_xy = 0;
+  else if (st->colors)
+    free_colors (st->dpy, st->cmap, st->colors, st->ncolors);
+  st->colors = 0;
 
   st->ncolors = get_integer_resource (st->dpy, "ncolors", "Integer");
   st->delay = get_integer_resource (st->dpy, "delay", "Integer");
@@ -183,10 +186,7 @@ init_map (struct state *st)
 
   if (!mono_p)
     {
-      if (st->colors)
-       free_colors (st->dpy, st->cmap, st->colors, st->ncolors);
-      else
-       st->colors = (XColor *) malloc (st->ncolors * sizeof(*st->colors));
+      st->colors = (XColor *) malloc (st->ncolors * sizeof(*st->colors));
 
       make_smooth_colormap (st->dpy, st->xgwa.visual, st->cmap,
                             st->colors, &st->ncolors,
@@ -395,6 +395,7 @@ imsmap_free (Display *dpy, Window window, void *closure)
 static const char *imsmap_defaults [] = {
   ".background:        #000066",
   ".foreground:        #FF00FF",
+  "*fpsSolid:  true",
   "*mode:      random",
   "*ncolors:   50",
   "*iterations:        7",
@@ -412,4 +413,4 @@ static XrmOptionDescRec imsmap_options [] = {
   { 0, 0, 0, 0 }
 };
 
-XSCREENSAVER_MODULE ("IMSMAP", imsmap)
+XSCREENSAVER_MODULE ("IMSMap", imsmap)
index efedb516b2218a74c80bf4ba6710f21098702b14..b4bc092c5443a67dfb821313f7d77f3e7a32935f 100644 (file)
@@ -4,6 +4,7 @@ imsmap - generate fractal maps
 .SH SYNOPSIS
 .B imsmap
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIint\fP] [\-delay \fIseconds\fP] [\-delay2 \fImicroseconds\fP] [\-iterations \fIint\fP] [\-mode h|s|v|random]
+[\-fps]
 .SH DESCRIPTION
 The \fIimsmap\fP program generates map or cloud-like patterns.  It looks
 quite different in monochrome and color.
@@ -42,6 +43,9 @@ A measure of the resolution of the resultant image, from 0 to 7.  Default 7.
 .B \-mode [ hue | saturation | value | random ]
 The axis upon which colors should be interpolated between the foreground
 and background color.  Default random.  
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index cd063f75e49407ee87ddd465de154e4353d600cd..986acd5327a0292b23bdf5e52b1cd7efe1a6b211 100644 (file)
@@ -73,6 +73,7 @@ static const char *interaggregate_defaults[] =
 {
     ".background: white",
     ".foreground: black",
+    "*fpsSolid:        true",
     "*maxCycles: 100000",
 #ifdef TIME_ME
     "*growthDelay: 0",
index 46dcddc40437d66c15d310c4e9d4271db6006498..3d1eee3ed01330fa9dc7e15cc37192bb1ecb63c3 100644 (file)
@@ -14,6 +14,7 @@ between slowly moving circles.
 [\-base\-orbits \fIpercent\fP]
 [\-base\-on\-center]
 [\-draw\-centers]
+[\-fps]
 .SH DESCRIPTION
 The Intersection Aggregate is a fun visualization defining the relationships 
 between objects with Casey Reas, William Ngan, and Robert Hodgin. Commissioned 
@@ -39,6 +40,9 @@ the more CPU power.
 Delay in ms between drawing cycles.  More delay, slower (but smoother 
 and less CPU intensive.)
 art.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 937b8d7a126b91e23f6163911a770cc31d1c6c6b..e1eebb6755071c52dbbda4c4332e5b821cba4507 100644 (file)
@@ -383,7 +383,7 @@ static void do_inter(struct inter_context* c)
        dx = i*g + g/2 - c->source[k].x;
        dy = j*g + g/2 - c->source[k].y;
        dist = sqrt(dx*dx + dy*dy); /* what's the performance penalty here? */
-       result += (dist > c->radius ? 0 : c->wave_height[dist]);
+       result += (dist >= c->radius ? 0 : c->wave_height[dist]);
       }
       result %= c->colors;
 
index 6319aab999581a185342190900bd026cb72281db..f95fb2c34bd7cc0e4890469b0e60e1cc7948ffce 100644 (file)
@@ -16,6 +16,7 @@ interference - decaying sinusoidal waves
 [\-color-shift \fInumber\fP]
 [\-hue \fInumber\fP]
 [\-no-db]
+[\-fps]
 .SH DESCRIPTION
 Another color-field hack, this one works by computing decaying sinusoidal
 waves, and allowing them to interfere with each other as their origins
@@ -58,6 +59,9 @@ Hue of the base color (0-360, as in HSV space.)  Default 0, meaning random.
 .TP 8
 .B \-db | \-no-db
 Whether to double buffer.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index b1ff5cdcd84f136340090b18ee102a368813e049..5947c596ec96dbcdc6543893be8ac7563ed96461 100644 (file)
@@ -11,6 +11,7 @@ between slowly moving circles.
 [\-draw\-delay \fIdelayms\fP]
 [\-max\-riders \fImaxr\fP]
 [\-max\-radius \fImaxradius\fP]
+[\-fps]
 .SH DESCRIPTION
 The Intersection Momentary is a fun visualization defining the relationships 
 between objects with Casey Reas, William Ngan, and Robert Hodgin. Commissioned 
@@ -49,6 +50,9 @@ Maximum number of 'riders', single dots moving around the edge of the discs.
 .B \-max\-radius \fImaxradius\fP (Default: \fI100\fP)
 Maximum possible radius of a disc.
 .TP 8
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index aad5710d8a6599da0f0da48ff9a959425720215b..5e2ddc58e007884adcf68bcc640659c9b6e32f4c 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1997-2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1997-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -872,6 +872,7 @@ jigsaw_free (Display *dpy, Window window, void *closure)
 static const char *jigsaw_defaults [] = {
   ".background:                Black",
   ".foreground:                #AAAAAA",
+  "*fpsSolid:          true",
   "*delay:             70000",
   "*delay2:            5",
   "*pieceBorderWidth:   -1",
index 84f750ecb7b77a44583fbb56ae575cc26482064f..33a693f4e3b4c563e1cc7c80d233487940e2b676 100644 (file)
@@ -5,6 +5,7 @@ jigsaw - permute the screen image like a jigsaw puzzle
 .B jigsaw
 [\-display \fIhost:display.screen\fP] [\-background \fIcolor\fP]
 [\-delay \fIusecs\fP] [\-window] [\-root] [\-install] [\-visual \fIvisual\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIjigsaw\fP program takes an image, carves it up into
 a jigsaw puzzle, shuffles it, and then solves it.
@@ -36,6 +37,9 @@ or the id number (decimal or hex) of a specific visual.
 .TP 8
 .B \-delay \fImicroseconds\fP
 How long to wait between shuffling pieces; default 70000, or 0.07 seconds.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 8a26ec9a5091ffc5a63282c0af8e78dbf45d39f4..f0b555e6aeecbdb54075b29bf73fd1348a040521 100644 (file)
@@ -135,7 +135,9 @@ static const char sccsid[] = "@(#)juggle.c  5.10 2003/09/02 xlockmore";
                                        "*count:   200   \n" \
                                        "*cycles:  1000  \n" \
                                        "*ncolors: 32    \n" \
-                                       "*font:    -*-times-bold-r-normal-*-180-*\n"
+                                       "*font:    -*-helvetica-bold-r-normal-*-180-*\n" \
+                                       "*fpsSolid: true\n" \
+
 # define refresh_juggle 0
 # define juggle_handle_event 0
 # undef SMOOTH_COLORS
index 0ccab278e214f1085162d9a08b00c14c964acb85..17ea20b44af46816625c891b32b63477ac42a99e 100644 (file)
@@ -2,68 +2,62 @@
 .\" ** The above line should force tbl to be used as a preprocessor **
 .TH XScreenSaver 1 "" "X Version 11"
 .SH NAME
-juggle \- juggling man screen saver.
+juggle - juggling man screen saver.
 .SH SYNOPSIS
 .B juggle
-.RB [ \-display
-.IR host:display.screen ]
-.RB [ \-root ]
-.RB [ \-window ]
-.RB [ \-mono ]
-.RB [ \-install | \-noinstall ]
-.RB [ \-visual
-.IR visual ]
-.RB [ \-window\-id
-.IR id ]
-.RB [ \-pattern
-.IR pattern ]
-.RB [ \-tail
-.IR number ]
-.RB [ \-real | \-no\-real ]
-.RB [ \-describe | \-no\-describe ]
-.RB [ \-balls | \-no\-balls ]
-.RB [ \-clubs | \-no\-clubs ]
-.RB [ \-torches | \-no\-torches ]
-.RB [ \-knives | \-no\-knives ]
-.RB [ \-rings | \-no\-rings ]
-.RB [ \-bballs | \-no\-bballs ]
-.RB [ \-count
-.IR count ]
-.RB [ \-cycles
-.IR cycles ]
-.RB [ \-delay
-.IR delay ]
-.RB [ \-ncolors
-.IR ncolors ]
+[\-display host:display.screen ]
+[\-root ]
+[\-window ]
+[\-mono ]
+[\-install | \-noinstall ]
+[\-visual visual ]
+[\-window\-id id ]
+[\-pattern pattern ]
+[\-tail number ]
+[\-real | \-no\-real ]
+[\-describe | \-no\-describe ]
+[\-balls | \-no\-balls ]
+[\-clubs | \-no\-clubs ]
+[\-torches | \-no\-torches ]
+[\-knives | \-no\-knives ]
+[\-rings | \-no\-rings ]
+[\-bballs | \-no\-bballs ]
+[\-count count ]
+[\-cycles cycles ]
+[\-delay delay ]
+[\-ncolors ncolors ]
+[\-fps]
 .SH DESCRIPTION
 Draws a stick-man juggling various collections of objects.
 .SH OPTIONS
-.TP
-.BI \-display\  host:display.screen
+.I juggle
+accepts the following options:
+.TP 8
+.B \-display host:display.screen
 X11 display to use.  Overrides
 .B DISPLAY
 environment variable.
-.TP
+.TP 8
 .B \-root
 Draw on the root window.
-.TP
+.TP 8
 .B \-window
 Draw on a newly-created X window.  This is the default.
-.TP
+.TP 8
 .B \-mono
 Draw in monochrome.
-.TP
-.B \-install\  |\  \-noinstall
+.TP 8
+.B \-install | \-noinstall
 Turn on/off installing colormap.
-.TP
-.BI \-visual\  visual
+.TP 8
+.B \-visual visual
 Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
-.TP
-.BI \-window\-id\  id
+.TP 8
+.B \-window\-id id
 Draw on an already existing X window.
-.TP
-.BI \-pattern\ \(dq pattern \(dq
+.TP 8
+.B \-pattern\ \(dq pattern \(dq
 Specify juggling pattern in annotated
 .B site-swap
 notation.  In 
@@ -82,8 +76,8 @@ cb l.
 x      Cross Throw and Catch
 \&_    Bounce
 .TE
-.TP
-.BI \-pattern\ \(dq[ pattern ]\(dq
+.TP 8
+.B \-pattern\ \(dq[ pattern ]\(dq
 Specify juggling pattern in annotated
 .B Adam
 notation.  Adam notation is a little harder to visualize.  Each
@@ -109,62 +103,65 @@ For example, both of these describe a 3\-Shower:
 For further examples, see the
 .B portfolio
 list in the source code.
-.TP
-.BI \-tail\  number
+.TP 8
+.B \-tail number
 Minimum Trail Length.  0 \- 100.  Default: 1.  Objects may override
 this, for example flaming torches always leave a trail.
-.TP
-.BR \-real\  |\  \-no\-real
+.TP 8
+.BR \-real | \-no\-real
 Turn on/off real-time juggling.
 .B Deprecated.
 There should be no need to turn off real-time juggling, even on slow
 systems.  Adjust speed using
 .B \-count
 above.
-.TP
-.BR \-describe\  |\  \-no\-describe
+.TP 8
+.BR \-describe | \-no\-describe
 Turn on/off pattern descriptions.
-.TP 
-.BR \-balls\  |\  \-no\-balls
+.TP 
+.BR \-balls | \-no\-balls
 Turn on/off Balls.
-.TP
-.BR \-clubs\  |\  \-no\-clubs
+.TP 8
+.BR \-clubs | \-no\-clubs
 Turn on/off Clubs.
-.TP
-.BR \-torches\  |\  \-no\-torches
+.TP 8
+.BR \-torches | \-no\-torches
 Turn on/off Flaming Torches.
-.TP
-.BR \-knives\  |\  \-no\-knives
+.TP 8
+.BR \-knives | \-no\-knives
 Turn on/off Knives.
-.TP
-.BR \-rings\  |\  \-no\-rings
+.TP 8
+.BR \-rings | \-no\-rings
 Turn on/off Rings.
-.TP
-.BR \-bballs\  |\  \-no\-bballs
+.TP 8
+.BR \-bballs | \-no\-bballs
 Turn on/off Bowling Balls.
-.TP
-.BI \-count\  number
+.TP 8
+.B \-count number
 Speed. 50 \- 1000.  Default: 200.  This determines the expected time
 interval between a throw and the next catch, in milliseconds.
-.TP
-.BI \-cycles\  number
+.TP 8
+.B \-cycles number
 Performance Length. 50 \- 1000.  Default: 1000.  Setting this smaller
 will force the juggler to switch patterns (and objects) more often.
-.TP
-.BI \-delay\  delay
+.TP 8
+.B \-delay delay
 Additional delay between frames, in microseconds.  Default: 10000.
 .B Deprecated.
 Adjust speed using
 .BR \-count .
-.TP
-.BI \-ncolors\  ncolors
+.TP 8
+.B \-ncolors ncolors
 Maximum number of colors to use.  Default: 32.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
-.TP
+.TP 8
 .B DISPLAY
 to get the default host and display number.
-.TP
+.TP 8
 .B XENVIRONMENT
 to get the name of a resource file that overrides the global resources
 stored in the RESOURCE_MANAGER property.
index 8e12cd8c9ea9a012e9aa86ae45f38dae39b6c45b..f0236617e5929014c01806fb54d48c807053a921 100644 (file)
@@ -41,7 +41,9 @@ static const char sccsid[] = "@(#)julia.c     4.03 97/04/10 xlockmore";
 # define DEFAULTS      "*count:                1000  \n"                       \
                                        "*cycles:               20    \n"                       \
                                        "*delay:                10000 \n"                       \
-                                       "*ncolors:              200   \n"
+                                       "*ncolors:              200   \n" \
+                                       "*fpsSolid:             true   \n" \
+
 # define UNIFORM_COLORS
 # define reshape_julia 0
 # define julia_handle_event 0
index 1aa6809c522011b0e64f0bfb014530bb1339a20b..a27e2e38444b9e517a6bc64fe7c826f967bee30f 100644 (file)
@@ -5,6 +5,7 @@ julia - draws spinning, animating julia-set fractals
 .B julia
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP] [\-mouse] [\-nomouse]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIjulia\fP program draws spinning, animating julia-set fractals.
 
@@ -55,6 +56,9 @@ the color wheel.
 If \fI\-mouse\fP is specified, the control point of the Julia set will
 be derived from the position of the mouse in the window.  When the mouse
 is not in the window, the control point is chosen the normal way.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index c2b11ec1db552b91e7de457a3816d8993be5d620..a59332a210e3ce7d1097baf5a89f4832ac15963c 100644 (file)
@@ -84,6 +84,7 @@ struct state {
 static const char *kaleidescope_defaults [] = {
   ".background:             black",
   ".foreground:             white",
+  "*fpsSolid:       true",
   "*color_mode:      nice",
   "*symmetry:         11",
   "*ntrails:         100",
index 890a491a7ea1063ab6b89ca56823f41131e22c6b..2c9ba2b7fd51c2a6eed5b859d33e0a2f43f39e7e 100644 (file)
@@ -17,6 +17,7 @@ Kaleidescope - rotating line segments
 .SH SYNOPSIS
 .B kaleidescope
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-install] [\-visual \fIvisual\fP] [\-color_mode \fImono | nice | greedy\fP] [-nsegments \fIint\fP] [\-ntrails \fIint\fP] [\-local_rotation \fIint\fP] [\-global_rotation \fIint\fP] [\-delay \fIusecs\fP] [\-redmin \fIint\fP] [\-greenmin \fIint\fP] [\-bluemin \fIint\fP] [\-redrange \fIint\fP] [\-greenrange \fIint\fP] [\-bluerange \fIint\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIkaleidescope\fP program draws line segments in a symmetric pattern
 that evolves over time. 
@@ -60,6 +61,9 @@ to 30000. The ranges default to 20000.
 .B \-delay microseconds
 How much of a delay should be introduced between steps of the animation.
 Default is 20000, or about 5 frames a second.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index a73fc94a0e19fc6f9ddd398dd8f86f60d9e460c0..b835f5bf9fa8f63896be7bd6df94858cec95cf5f 100644 (file)
@@ -49,6 +49,7 @@ from the X Consortium.
 
 static const char *kumppa_defaults [] ={
   ".background:                black",
+  "*fpsSolid:          true",
   "*speed:             0.1",
   "*delay:             10000",
   "*random:            True",
index 518b48b85a64586a96cc87a3c68c50ac703bc393..ed31a82e36b1690c5b8eacf8cc54a45cd8371c46 100644 (file)
@@ -11,6 +11,7 @@ kumppa - spiraling, spinning, splashes of color rush toward the screen.
 [\-speed \fInumber\fP]
 [\-random]
 [\-dbuf]
+[\-fps]
 .SH DESCRIPTION
 Spiraling, spinning, and very, very fast splashes of color rush toward the
 screen.
@@ -37,6 +38,9 @@ Whether to randomize.
 .TP 8
 .B \-dbuf | \-no-dbuf
 Whether to double buffer.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 4471fca63e8121440aededea196b79ec5a2b50cb..e681f99def3015ad538962e0e8451d4a8a4c04c0 100644 (file)
@@ -31,7 +31,9 @@ static const char sccsid[] = "@(#)laser.c     5.00 2000/11/01 xlockmore";
 # define DEFAULTS      "*delay: 40000 \n" \
                                        "*count: 10 \n" \
                                        "*cycles: 200 \n" \
-                                       "*ncolors: 64 \n"
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define BRIGHT_COLORS
 # define reshape_laser 0
 # define laser_handle_event 0
index 70cec4e64930d4c7ec2d0d9f25dd9cc686dfc13e..77367afe5046657efe7f7ea6ed4a8a16cab8f74a 100644 (file)
@@ -5,6 +5,7 @@ laser - draws vaguely laser-like moving lines
 .B laser
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIlaser\fP program draws vaguely laser-like moving lines
 .SH OPTIONS
@@ -36,6 +37,9 @@ Default 200.
 .TP 8
 .B \-count \fIinteger\fP
 Default 10.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 700de61ec99c36e0ef5a99986dad971ca0d1748d..d82bd95fc0707b972a8f22a828d98f26ba9be627 100644 (file)
@@ -24,6 +24,7 @@ struct state {
          DIAG_W, DIAG_B, 
          WHITE, BLACK,
          END } mode;
+  unsigned int enabled_mask;
   int count;
   GC fg, bg;
   int delay;
@@ -32,6 +33,19 @@ struct state {
 };
 
 
+static void
+pick_mode (struct state *st)
+{
+  st->count = 0;
+  while (1)
+    {
+      if (++st->mode == END)
+        st->mode = 0;
+      if (st->enabled_mask & (1 << st->mode))
+        break;
+    }
+}
+
 static void *
 lcdscrub_init (Display *dpy, Window window)
 {
@@ -56,6 +70,26 @@ lcdscrub_init (Display *dpy, Window window)
   jwxyz_XSetAntiAliasing (st->dpy, st->bg, False);
 #endif
 
+  st->enabled_mask = 0;
+# define PREF(R,F) \
+   if (get_boolean_resource (st->dpy, R, "Mode")) st->enabled_mask |= (1 << F)
+  PREF("modeHW", HORIZ_W);
+  PREF("modeHB", HORIZ_B);
+  PREF("modeVW", VERT_W);
+  PREF("modeVB", VERT_B);
+  PREF("modeDW", DIAG_W);
+  PREF("modeDB", DIAG_B);
+  PREF("modeW",  WHITE);
+  PREF("modeB",  BLACK);
+# undef PREF
+  if (! st->enabled_mask) 
+    {
+      fprintf (stderr, "%s: no modes enabled\n", progname);
+      exit (1);
+    }
+
+  pick_mode (st);
+
   return st;
 }
 
@@ -96,7 +130,7 @@ lcdscrub_draw (Display *dpy, Window window, void *closure)
     break;
   case WHITE:
   case BLACK:
-    XFillRectangle (st->dpy, st->window, fg, 0, 0,
+    XFillRectangle (st->dpy, st->window, bg, 0, 0,
                     st->xgwa.width, st->xgwa.height);
     break;
   default: 
@@ -107,11 +141,7 @@ lcdscrub_draw (Display *dpy, Window window, void *closure)
   st->count++;
 
   if (st->count > st->spread * st->cycles)
-    {
-      st->count = 0;
-      if (++st->mode == END)
-        st->mode = 0;
-    }
+    pick_mode (st);
 
   return st->delay;
 }
@@ -144,6 +174,14 @@ static const char *lcdscrub_defaults [] = {
   "*delay:             100000",
   "*spread:            8",
   "*cycles:            60",
+  "*modeHW:            True",
+  "*modeHB:            True",
+  "*modeVW:            True",
+  "*modeVB:            True",
+  "*modeDW:            True",
+  "*modeDB:            True",
+  "*modeW:             True",
+  "*modeB:             True",
   0
 };
 
@@ -151,6 +189,14 @@ static XrmOptionDescRec lcdscrub_options [] = {
   { "-delay",          ".delay",       XrmoptionSepArg, 0 },
   { "-spread",         ".spread",      XrmoptionSepArg, 0 },
   { "-cycles",         ".cycles",      XrmoptionSepArg, 0 },
+  { "-no-hw",          ".modeHW",      XrmoptionNoArg, "False" },
+  { "-no-hb",          ".modeHB",      XrmoptionNoArg, "False" },
+  { "-no-vw",          ".modeVW",      XrmoptionNoArg, "False" },
+  { "-no-vb",          ".modeVB",      XrmoptionNoArg, "False" },
+  { "-no-dw",          ".modeDW",      XrmoptionNoArg, "False" },
+  { "-no-db",          ".modeDB",      XrmoptionNoArg, "False" },
+  { "-no-w",           ".modeW",       XrmoptionNoArg, "False" },
+  { "-no-b",           ".modeB",       XrmoptionNoArg, "False" },
   { 0, 0, 0, 0 }
 };
 
index 23215e55b0ee04d941d2fc051595854c1a8ce427..c9e897c8c58e6a5c494a06fdde704e6e9c776544 100644 (file)
@@ -10,6 +10,7 @@ lcdscrub - attempt to repair burn-in on LCD screens
 [\-delay \fInumber\fP]
 [\-spread \fInumber\fP]
 [\-cycles \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 This screen saver is not meant to look pretty, but rather, to
 repair burn-in on LCD monitors.
@@ -43,6 +44,9 @@ Distance between lines.  Default 8.
 .TP 8
 .B \-cycles \fInumber\fP
 Steps before switching display mode.  Default 60.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index f767ce0984d2e454c70ace87484d7bd14ec645b8..e7d9f06ea7c3e771ea327b0417780a26b1e9b96d 100644 (file)
@@ -31,6 +31,7 @@ static const char sccsid[] = "@(#)lightning.c 5.00 2000/11/01 xlockmore";
 # define MODE_lightning
 # define DEFAULTS "*delay: 10000 \n" \
                   "*ncolors: 64  \n"
+
 # define BRIGHT_COLORS
 # define reshape_lightning 0
 # define lightning_handle_event 0
index 786ee99cfa9c3a09f8d776e1e4653188d156af0f..65386d39a65f309d60331444fe58a920284558d3 100644 (file)
@@ -5,6 +5,7 @@ lightning - draws fractal lightning bolts
 .B lightning
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIlightning\fP program draws fractal lightning bolts
 .SH OPTIONS
@@ -30,6 +31,9 @@ or the id number (decimal or hex) of a specific visual.
 .B \-ncolors \fIinteger\fP
 How many colors should be used (if possible).  Default 64.
 The colors are chosen randomly.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 1972389c866ab09a1b2c10f072ff8bda0a6f0983..bc022bf3405f2325fb75ac98da0b4155ee43914a 100644 (file)
@@ -1,5 +1,5 @@
 /* -*- Mode: C; tab-width: 4 -*- */
-/* lisa --- animated full-loop lisajous figures */
+/* lisa --- animated full-loop lissajous figures */
 
 #if 0
 static const char sccsid[] = "@(#)lisa.c       5.00 2000/11/01 xlockmore";
@@ -27,7 +27,7 @@ static const char sccsid[] = "@(#)lisa.c      5.00 2000/11/01 xlockmore";
  *
  * The inspiration for this program, Lasp, was written by Adam B. Roach
  * in 1990, assisted by me, Caleb Cullen.  It was written first in C, then
- * in assembly, and used pre-calculated data tables to graph lisajous
+ * in assembly, and used pre-calculated data tables to graph lissajous
  * figures on 386 machines and lower.  This version bears only superficial
  * resemblances to the original Lasp.
  *
@@ -55,8 +55,10 @@ static const char sccsid[] = "@(#)lisa.c     5.00 2000/11/01 xlockmore";
 # define DEFAULTS      "*delay: 17000 \n" \
                                        "*count: 1 \n" \
                                        "*cycles: 768 \n" \
-                                       "*size: -1 \n" \
-                                       "*ncolors: 64 \n"
+                                       "*size: 500 \n" \
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define UNIFORM_COLORS
 # define reshape_lisa 0
 # define lisa_handle_event 0
@@ -96,7 +98,7 @@ ModStruct   lisa_description =
 {"lisa", "init_lisa", "draw_lisa", "release_lisa",
  "refresh_lisa", "change_lisa", (char *) NULL, &lisa_opts,
  17000, 1, 768, -1, 64, 1.0, "",
- "Shows animated lisajous figures", 0, NULL};
+ "Shows animated lissajous figures", 0, NULL};
 
 #endif
 
@@ -156,8 +158,8 @@ typedef struct lisa_struct {
 } lisas;
 
 typedef struct lisacontext_struct {
-       lisas      *lisajous;
-       int         width, height, nlisajous, loopcount;
+       lisas      *lissajous;
+       int         width, height, nlissajous, loopcount;
        int         maxcycles;
        Bool        painted;
 } lisacons;
@@ -257,14 +259,14 @@ int xMaxLines;
 static void
 free_lisa(lisacons *lc)
 {
-       while (lc->lisajous) {
+       while (lc->lissajous) {
                int    lctr;
 
-               for (lctr = 0; lctr < lc->nlisajous; lctr++) {
-                       (void) free((void *) lc->lisajous[lctr].lastpoint);
+               for (lctr = 0; lctr < lc->nlissajous; lctr++) {
+                       (void) free((void *) lc->lissajous[lctr].lastpoint);
                }
-               (void) free((void *) lc->lisajous);
-               lc->lisajous = (lisas *) NULL;
+               (void) free((void *) lc->lissajous);
+               lc->lissajous = (lisas *) NULL;
        }
 }
 
@@ -607,8 +609,8 @@ refreshlisa(ModeInfo * mi)
        lisacons   *lc = &Lisa[MI_SCREEN(mi)];
        int         lctr;
 
-       for (lctr = 0; lctr < lc->nlisajous; lctr++) {
-               if (!drawlisa(mi, &lc->lisajous[lctr]))
+       for (lctr = 0; lctr < lc->nlissajous; lctr++) {
+               if (!drawlisa(mi, &lc->lissajous[lctr]))
                        return;
        }
 }
@@ -621,7 +623,7 @@ refresh_lisa(ModeInfo * mi)
        if (Lisa == NULL)
                return;
        lc = &Lisa[MI_SCREEN(mi)];
-       if (lc->lisajous == NULL)
+       if (lc->lissajous == NULL)
                return;
 
        if (lc->painted) {
@@ -641,12 +643,12 @@ change_lisa(ModeInfo * mi)
        if (Lisa == NULL)
                return;
        lc = &Lisa[MI_SCREEN(mi)];
-       if (lc->lisajous == NULL)
+       if (lc->lissajous == NULL)
                return;
 
        lc->loopcount = 0;
-       for (lctr = 0; lctr < lc->nlisajous; lctr++) {
-               loop = &lc->lisajous[lctr];       /* count through the loops we're drawing */
+       for (lctr = 0; lctr < lc->nlissajous; lctr++) {
+               loop = &lc->lissajous[lctr];       /* count through the loops we're drawing */
        newfunc = NRAND(NUMSTDFUNCS);     /* choose a new function at random */
 #if defined FOLLOW_FUNC_ORDER
        loop->function[1] =
@@ -688,18 +690,18 @@ init_lisa (ModeInfo * mi)
        lc->width = MI_WIDTH(mi);
        lc->height = MI_HEIGHT(mi);
        lc->loopcount = 0;
-       lc->nlisajous = MI_COUNT(mi);
-       if (lc->nlisajous <= 0)
-               lc->nlisajous = 1;
+       lc->nlissajous = MI_COUNT(mi);
+       if (lc->nlissajous <= 0)
+               lc->nlissajous = 1;
        MI_CLEARWINDOW(mi);
        lc->painted = False;
 
-       if (lc->lisajous == NULL) {
-               if ((lc->lisajous = (lisas *) calloc(lc->nlisajous,
+       if (lc->lissajous == NULL) {
+               if ((lc->lissajous = (lisas *) calloc(lc->nlissajous,
                                sizeof (lisas))) == NULL)
                        return;
-               for (lctr = 0; lctr < lc->nlisajous; lctr++) {
-                       if (!initlisa(mi, &lc->lisajous[lctr]))
+               for (lctr = 0; lctr < lc->nlissajous; lctr++) {
+                       if (!initlisa(mi, &lc->lissajous[lctr]))
                                return;
                        lc->loopcount++;
                }
@@ -716,7 +718,7 @@ draw_lisa (ModeInfo * mi)
        if (Lisa == NULL)
                return;
        lc = &Lisa[MI_SCREEN(mi)];
-       if (lc->lisajous == NULL)
+       if (lc->lissajous == NULL)
                return;
 
 #ifdef HAVE_COCOA      /* Don't second-guess Quartz's double-buffering */
index 576fae6f0fa7c69fc62626574b1fcfbedb33789b..2bfd7f4545338dedb618684c08cd604874bb025a 100644 (file)
@@ -5,6 +5,7 @@ lisa - draws animated full-loop lissajous figures
 .B lisa
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP] [\-size \fIinteger\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIlisa\fP program draws animated full-loop lissajous figures.
 .SH OPTIONS
@@ -39,6 +40,9 @@ The colors are chosen randomly.
 .TP 8
 .B \-size \fIinteger\fP
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 4138428d53d5750576ad3201f6ba5cdce25e7833..ac18c52fe6620d4dcb799ad0f817aee34307f62c 100644 (file)
@@ -36,7 +36,9 @@ static const char sccsid[] = "@(#)lissie.c    5.00 2000/11/01 xlockmore";
                                        "*count: 1 \n" \
                                        "*cycles: 20000 \n" \
                                        "*size: -200 \n" \
-                                       "*ncolors: 200 \n"
+                                       "*ncolors: 200 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define SMOOTH_COLORS
 # define reshape_lissie 0
 # define lissie_handle_event 0
index 39f267f2a77d30e61f9d09f20b4f013bb5dcf7ac..43123b20b05d8b1b669c7fcf287e7583076233b0 100644 (file)
@@ -12,6 +12,7 @@ lissie - lissajous figure.
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
 [\-size \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Another Lissajous figure. This one draws the progress of circular shapes
 along a path.
@@ -41,6 +42,9 @@ Number of Colors.  Default: 200.
 .TP 8
 .B \-size \fInumber\fP
 Size.  -500 to +500.  Default: -200.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index b6c6af4442f2fed59d817aad7ecd794306a255c9..be8e19ee49c41c0d9070e4af3bdec005abfb8c82 100644 (file)
@@ -4,6 +4,7 @@ lmorph \- morphing lines
 .SH SYNOPSIS
 .B lmorph
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-points \fIint\fP] [\-steps \fIint\fP] [\-delay \fIusecs\fP] [\-figtype \fItype\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIlmorph\fP program generates random spline-ish line drawings and
 morphs between them.
@@ -44,6 +45,9 @@ Limit the figures to only open or closed figures. Possible types are
 .TP 8
 .B \-linewidth \fIinteger\fP
 Width of lines. Default is 5 pixels.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 7add6d27e7cb899ea1d52e58829294c8052023bc..7b50a56a0b52dc20e2e75a60eaa11adb75d8b4a9 100644 (file)
@@ -89,7 +89,9 @@ static const char sccsid[] = "@(#)loop.c      5.01 2000/03/15 xlockmore";
                                        "*count:   -5     \n" \
                                        "*cycles:  1600   \n" \
                                        "*size:    -12    \n" \
-                                       "*ncolors: 15     \n"
+                                       "*ncolors: 15     \n" \
+                                       "*fpsSolid: true     \n" \
+
 # define UNIFORM_COLORS
 # define reshape_loop 0
 # define loop_handle_event 0
index d24698f24c2a9ce3074a4682f2c4d5ddaba16701..37fb9705c0a042a37de8a1446434f858ae78eba0 100644 (file)
@@ -11,6 +11,7 @@ loop - cellular automaton.
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
 [\-size \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Another cellular automaton.
 This one produces loop-shaped colonies that spawn, age, and eventually die.
@@ -37,6 +38,9 @@ Number of Colors.  Default: 15.
 .TP 8
 .B \-size \fInumber\fP
 Size.  -50 - 50.  Default: -12.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index dc5e3bdf5e466ce6cb1d25ef1276733d663dff5d..717958f66bcf004d8772dde8a5a58f8d8f37cac9 100644 (file)
@@ -294,6 +294,10 @@ initialize_maze (struct state *st) /* draw the surrounding wall and start/end sq
     }
   else
     st->logo_y = st->logo_x = -1;
+
+  /* #### should mask out the cells covered by the FPS display if "doFPS"
+          is true.  But that's hard, because the "logo_x" crap that does
+          that trick for the logo is scattered all around the code... */
 }
 
 static int choose_door (struct state *st);
@@ -1573,13 +1577,14 @@ enter_square (int n)                      /* move into a neighboring square */
 static const char *maze_defaults[] = {
   ".background:           black",
   ".foreground:           white",
+  "*fpsSolid:     true",
   "*gridSize:     0",
   "*generator:     -1",
   "*maxLength:     5",
   "*bridge:        False",
   "*ignorant:      False",
 
-  "*solveDelay:           5000",
+  "*solveDelay:           10000",
   "*preDelay:     2000000",
   "*postDelay:    4000000",
 
index f48265059ead8f18bf1beba750ae3698c582042a..cd5afb4472f2c8aac36a6516233ae787e8858e94 100644 (file)
@@ -4,6 +4,7 @@ maze \- an automated X11 demo repeatedly creating and solving a random maze
 .SH SYNOPSIS
 .B maze 
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-install] [\-visual \fIvisual\fP] [\-grid\-size \fIpixels\fP] [\-live\-color \fIcolor\fP] [\-dead\-color \fIcolor\fP] [\-solve\-delay \fIusecs\fP] [\-pre\-delay \fIusecs\fP] [\-post\-delay \fIusecs\fP] [\-generator \fIinteger\fP] [\-max\-length \fIinteger\fP] [\-bridge] [\-no\-bridge]
+[\-fps]
 .SH DESCRIPTION
 The \fImaze\fP program creates a "random" maze and then solves it with 
 graphical feedback. 
@@ -92,6 +93,9 @@ Pause or unpause the program.
 .TP 16
 .B RightButton
 Exit.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH BUGS
 Expose events force a restart of maze.
 
index 2435c2f5b94e58a15267908dab7898034d151498..ee1e1b54cbe03b6b2246628c235a3e57fd4f13e7 100644 (file)
@@ -38,7 +38,7 @@ typedef struct {
   Window window;
   XWindowAttributes xgwa;
   GC draw_gc, erase_gc, text_gc;
-  XFontStruct *fonts[4];
+  XFontStruct *fonts[6];
   int border;
 
   enum { SEED_RAM, SEED_RANDOM, SEED_FILE } seed_mode;
@@ -483,7 +483,7 @@ draw_string (state *st)
       x = (st->xgwa.width - w) / 2;
       y = (bot - h) / 2;
 
-      if (y + h + 10 <= bot)
+      if (y + h + 10 <= bot && x > -10)
         {
           XSetFont (st->dpy, st->text_gc, st->fonts[i]->fid);
           XFillRectangle (st->dpy, st->window, st->erase_gc,
@@ -580,14 +580,27 @@ memscroller_free (Display *dpy, Window window, void *closure)
 static const char *memscroller_defaults [] = {
   ".background:                   black",
   "*drawMode:             color",
+  "*fpsSolid:             true",
+  "*fpsTop:               true",
   "*filename:             (RAM)",
   ".textColor:            #00FF00",
   ".foreground:                   #00FF00",
   "*borderSize:                   2",
-  ".font1:                -*-courier-bold-r-*-*-*-1400-*-*-m-*-*-*",
-  ".font2:                -*-courier-bold-r-*-*-*-600-*-*-m-*-*-*",
-  ".font3:                -*-courier-bold-r-*-*-*-180-*-*-m-*-*-*",
-  ".font4:                fixed",
+#ifdef HAVE_COCOA
+  ".font1:                OCR A Std 192",
+  ".font2:                OCR A Std 144",
+  ".font3:                OCR A Std 128",
+  ".font4:                OCR A Std 96",
+  ".font5:                OCR A Std 48",
+  ".font6:                OCR A Std 24",
+#else
+  ".font1:                -*-courier-bold-r-*-*-*-1440-*-*-m-*-*-*",
+  ".font2:                -*-courier-bold-r-*-*-*-960-*-*-m-*-*-*",
+  ".font3:                -*-courier-bold-r-*-*-*-480-*-*-m-*-*-*",
+  ".font4:                -*-courier-bold-r-*-*-*-320-*-*-m-*-*-*",
+  ".font5:                -*-courier-bold-r-*-*-*-180-*-*-m-*-*-*",
+  ".font6:                fixed",
+#endif
   "*delay:                10000",
   "*offset:               0",
   0
index 948c43d8252b93e3580e105f051d293dd56c694f..33754a2e68c7937bd42cf0ae93a011e5190fedc4 100644 (file)
@@ -9,6 +9,7 @@ memscroller - scrolls a dump of its own RAM across the screen
 [\-delay \fIint\fP]
 [\-mono | -color]
 [\-ram | -random | \-filename \fIfile\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fImemscroller\fP program scrolls a dump of its own process memory
 across the screen in three windows at three different rates.
@@ -50,6 +51,9 @@ without ever returning any data.)
 .B \-delay \fImicroseconds\fP
 How much of a delay should be introduced between steps of the animation.
 Default 10000.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 2eb5ed4ad27d2660a38259d3a1d0c326aa227224..a7a0591d0e32c9109bb896b7857fa0deb6a7c2e1 100644 (file)
@@ -403,7 +403,7 @@ static const char *metaballs_defaults [] = {
   "*count:    10",
   "*cycles:   1000",
   "*ncolors:  256",
-  "*delay:    5000",
+  "*delay:    10000",
   "*radius:   100",
   "*delta:   3",
   0
@@ -421,7 +421,7 @@ static XrmOptionDescRec metaballs_options [] = {
 };
 
 
-XSCREENSAVER_MODULE ("Metaballs", metaballs)
+XSCREENSAVER_MODULE ("MetaBalls", metaballs)
 
 /* End of Module - "metaballs.c" */
 
index 438e40c1315136eb2f26ab4c953f0332d3f9bb76..827c94e04163d3b368b09384c3c2f5d6915bc878 100644 (file)
@@ -13,6 +13,7 @@ MetaBalls.
 [\-cycles \fInumber\fP]
 [\-radius \fInumber\fP]
 [\-delta \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 This hack draws 2D metaballs to the screen by calculating the sum of the colors of all metaballs covering a pixel. 
 Ported from the demo effects collection (http://demo-effects.sourceforge.net)
@@ -45,6 +46,9 @@ MetaBall Radius.  2 - 100.  Default: 100.
 .TP 8
 .B \-delta \fInumber\fP
 MetaBall Movement.  1 - 20.  Default: 3.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index cda0a0b0e523712a509f93c1ff9f54aa2acbc5c4..008345efe67d84a3d9c2ea86cff7080ca10004e4 100644 (file)
@@ -291,6 +291,9 @@ static unsigned long
 mismunch_draw (Display *dpy, Window w, void *closure)
 {
   struct state *st = (struct state *) closure;
+  int i;
+
+  for (i = 0; i < 5; i++) {
 
   /* for (draw_i = 0; draw_i < simul; draw_i++)  */
   {
@@ -320,6 +323,8 @@ mismunch_draw (Display *dpy, Window w, void *closure)
     }
   }
 
+  }
+
   return st->delay;
 }
 
@@ -356,7 +361,8 @@ mismunch_free (Display *dpy, Window window, void *closure)
 static const char *mismunch_defaults [] = {
   ".background:       black",
   ".foreground:       white",
-  "*delay:            2500",
+  "*fpsSolid:        true",
+  "*delay:            10000",
   "*simul:            5",
   "*clear:            65",
   "*xor:              True",
index 0ea9ce966d7d758b4f060efd3fbe8f851ea75b3c..d18c8441d397c71918a114ea87bac389760d2625 100644 (file)
@@ -7,6 +7,7 @@ mismunch - munches errors
 [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install]
 [\-visual \fIvisual\fP] [\-delay \fIusecs\fP] [\-xor] [\-noxor] 
 [\-clear \fInumber\fP] [\-simul \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 The
 .I mismunch
@@ -46,6 +47,9 @@ Number of squares to misdraw before clearing the display.  Default: 65.
 .TP 8
 .B \-simul \fInumber\fP
 Number of squares to misdraw simultaneously.  Default: 5.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index c52d2236bc7207af9bf2707be974e64539500918..10797a5f2610ecbfb1b8f6b825f5cedcddb9b534 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1997, 1998, 2001, 2006
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1997-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -251,6 +250,7 @@ moire_draw (Display *dpy, Window window, void *closure)
 static const char *moire_defaults [] = {
   ".background:                blue",
   ".foreground:                red",
+  "*fpsSolid:          true",
   "*random:            true",
   "*delay:             5",
   "*ncolors:           64",
index b15f89c6b336b58ccbf1fd036ecbe70d7f4ac1ad..b38d343059c543356df5c197137b4b528f330bbb 100644 (file)
@@ -4,6 +4,7 @@ moire - draw circular interference patterns
 .SH SYNOPSIS
 .B moire
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-delay \fIseconds\fP] [\-random \fIboolean\fP] [\-ncolors \fIint\fP] [\-offset \fIint\fP] 
+[\-fps]
 .SH DESCRIPTION
 The \fImoire\fP program draws cool circular interference patterns.
 .SH OPTIONS
@@ -39,6 +40,9 @@ The maximum random radius increment to use.
 .B \-ncolors \fIinteger\fP
 How many colors should be allocated in the color ramp (note that this
 value interacts with \fIoffset\fP.)
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 3834e13e8df761ec2569d6b99cd3d484f96cbd95..b57c4857aa2364e37ff5f7d2b7e91217523f4094 100644 (file)
@@ -10,6 +10,7 @@ moire2 - circular interference patterns.
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
 [\-thickness \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Another example of the fun you can have with moire interference patterns;
 this hack generates fields of concentric circles or ovals, and combines the
@@ -35,6 +36,9 @@ Number of Colors.  Default: 150.
 .TP 8
 .B \-thickness \fInumber\fP
 Thickness of lines, in pixels.  Default: 0.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index aae435b5886c4ade4eaa3d4be34e2856a2958e05..1c4e64c05b09e724811afbc25c5de5de9c1812de 100644 (file)
@@ -28,10 +28,12 @@ static const char sccsid[] = "@(#)mountain.c        5.00 2000/11/01 xlockmore";
 
 #ifdef STANDALONE
 # define MODE_mountain
-#define DEFAULTS       "*delay: 1000 \n" \
+#define DEFAULTS       "*delay: 20000 \n" \
                                        "*count: 30 \n" \
                                        "*cycles: 4000 \n" \
-                                       "*ncolors: 64 \n"
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define SMOOTH_COLORS
 # define reshape_mountain 0
 # define mountain_handle_event 0
index dc4986df41d791c1e113482a291f9e32f79203eb..692eb479c15336e67ed16d75ef3609391700e73a 100644 (file)
@@ -10,6 +10,7 @@ mountain - random 3D plots that look vaguely mountainous.
 [\-count \fInumber\fP]
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Generates random 3d plots that look vaguely mountainous.
 .SH OPTIONS
@@ -32,6 +33,9 @@ Per-frame delay, in microseconds.  Default: 1000 (0.001 seconds.).
 .TP 8
 .B \-ncolors \fInumber\fP
 Number of colors.  Default: 64.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 226edc210dd211768627c833dd1ea84b5cd196f7..9ab053fa2066b37cb625ef37f07eb267faf0e876 100644 (file)
@@ -274,7 +274,8 @@ munch_free (Display *dpy, Window window, void *closure)
 static const char *munch_defaults [] = {
     ".background:      black",
     ".foreground:      white",
-    "*delay:           5000",
+    "*fpsSolid:                true",
+    "*delay:           10000",
     "*hold:            100000",
     "*clear:           50",
     "*logminwidth:     7",
index 4b7fa29bbc3ba8a5b72d8a2bef4a43acfa845cb0..0cb170baa15e40ca0981a20a8166efb4d190bdd6 100644 (file)
@@ -20,6 +20,7 @@ munch - munching squares screen hack
 [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install]
 [\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-xor] [\-noxor] [\-shift]
 [\-noshift] [\-logminwidth \fIminimum width\fP]
+[\-fps]
 .SH DESCRIPTION
 The
 .I munch
@@ -69,6 +70,9 @@ Don't shift and start drawing the square at weird starting points.
 .B \-logminwidth \fIminimum\-width\fP
 The logarithm (base 2) of the minimum with of a square (must be a power of
 2, or some parts of the square aren't.)
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
diff --git a/hacks/munge-ad.pl b/hacks/munge-ad.pl
new file mode 100755 (executable)
index 0000000..d8b2bb9
--- /dev/null
@@ -0,0 +1,206 @@
+#!/usr/bin/perl -w
+# Copyright Â© 2008 Jamie Zawinski <jwz@jwz.org>
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation.  No representations are made about the suitability of this
+# software for any purpose.  It is provided "as is" without express or 
+# implied warranty.
+#
+# This updates driver/XScreenSaver.ad.in with the current list of savers.
+#
+# Created:  3-Aug-2008.
+
+require 5;
+use diagnostics;
+use strict;
+
+my $progname = $0; $progname =~ s@.*/@@g;
+my $version = q{ $Revision: 1.2 $ }; $version =~ s/^[^\d]+([\d.]+).*/$1/;
+
+my $verbose = 0;
+
+# These are marked as disabled by default in the .ad file.
+#
+my %disable = ( 
+   'abstractile' => 1,
+   'antinspect' => 1,
+   'antmaze' => 1,
+   'ant' => 1,
+   'carousel' => 1,
+   'critical' => 1,
+   'demon' => 1,
+   'dnalogo' => 1,
+   'glblur' => 1,
+   'glforestfire' => 1,
+   'glslideshow' => 1,
+   'hyperball' => 1,
+   'juggle' => 1,
+   'laser' => 1,
+   'lcdscrub' => 1,
+   'lightning' => 1,
+   'lisa' => 1,
+   'lissie' => 1,
+   'lmorph' => 1,
+   'loop' => 1,
+   'rotor' => 1,
+   'sballs' => 1,
+   'sierpinski' => 1,
+   'sphere' => 1,
+   'spiral' => 1,
+   'thornbird' => 1,
+   'vidwhacker' => 1,
+   'vines' => 1,
+   'webcollage' => 1,
+   'worm' => 1,
+  );
+
+
+sub munge_ad($) {
+  my ($file) = @_;
+  my $body = '';
+  local *IN;
+  open (IN, "<$file") || error ("$file: $!");
+  while (<IN>) { $body .= $_; }
+  close IN;
+  my $obody = $body;
+
+  my ($top, $mid, $bot) = ($body =~ m/^(.*?\n)(\*hacks\..*?\n)(\n.*)$/s);
+
+  my $mid2 = '';
+
+  my %hacks;
+
+  # Update the "*hacks.foo.name" section of the file based on the contents
+  # of config/*.xml.
+  #
+  my $dir = $file;
+  $dir =~ s@/[^/]*$@@s;
+  my @counts = (0,0,0,0,0,0);
+  foreach my $xml (sort (glob ("$dir/../hacks/config/*.xml"))) {
+    my $b = '';
+    open (IN, "<$xml") || error ("$xml: $!");
+    while (<IN>) { $b .= $_; }
+    close IN;
+    my ($name) = ($b =~ m@<screensaver[^<>]*\b_label=\"([^<>\"]+)\">@s);
+    error ("$xml: no name") unless $name;
+
+    my $name2 = lc($name);
+    $name2 =~ s/^((x|gl)?[a-z])/\U$1/s;  # what prefs.c (make_hack_name) does
+
+    $xml =~ s@^.*/([^/]+)\.xml$@$1@s;
+    if ($name ne $name2) {
+      my $s = sprintf("*hacks.%s.name:", $xml);
+      $mid2 .= sprintf ("%-28s%s\n", $s, $name);
+      $counts[1]++;
+    }
+
+    # Grab the year.
+    my ($year) =
+      ($b =~ m/<_description>.*Written by.*?;\s+(19[6-9]\d|20\d\d)\b/si);
+    error ("no year in $xml.xml") unless $year;
+    $hacks{$xml} = $year;
+    $counts[0]++;
+  }
+
+  # Splice in new names.
+  $body = $top . $mid2 . $bot;
+
+
+  # Replace the "programs" section.
+  # Sort hacks by creation date, but put the OpenGL ones at the end.
+  #
+  my $segregate_p = 0;  # whether to put the GL hacks at the end.
+  my $xhacks = '';
+  my $ghacks = '';
+  foreach my $hack (sort { $hacks{$a} == $hacks{$b}
+                           ? $a cmp $b 
+                           : $hacks{$a} <=> $hacks{$b}}
+                    (keys(%hacks))) {
+    my $cmd = "$hack -root";
+    my $ts = (length($cmd) / 8) * 8;
+    while ($ts < 40) { $cmd .= "\t"; $ts += 8; }
+    next if ($hack eq 'ant' || $hack eq 'rdbomb');
+
+    my $glp;
+    my $glep = ($hack eq 'extrusion');
+    if (-f "$hack.c" || -f "$hack") { $glp = 0; }
+    elsif (-f "glx/$hack.c") { $glp = 1; }
+    else { error ("is $hack X or GL?"); }
+
+    my $dis = ($disable{$hack} ? '-' : '');
+    my $vis = ($glp
+               ? (($dis ? '' : $glep ? '@GLE_KLUDGE@' : '@GL_KLUDGE@') .
+                  ' GL: ')
+               : '');
+    $cmd = "$dis$vis\t\t\t\t$cmd    \\n\\\n";
+
+    if ($glp) {
+      ($segregate_p ? $ghacks : $xhacks) .= $cmd;
+      $counts[4+defined($disable{$hack})]++;
+    } else {
+      $xhacks .= $cmd;
+      $counts[2+defined($disable{$hack})]++;
+    }
+  }
+
+  # Splice in new programs list.
+  #
+  $mid2 = ($xhacks .
+           ($segregate_p ? "\t\t\t\t\t\t\t\t\t      \\\n" : "") .
+           $ghacks);
+  $mid2 =~ s@\\$@@s;
+  ($top, $mid, $bot) = 
+    ($body =~ m/^(.*?\n\*programs:\s+\\\n)(.*?\n)(\n.*)$/s);
+  error ("unparsable") unless $mid;
+  $body = $top . $mid2 . $bot;
+
+  print STDERR "$progname: Total: $counts[0]; " .
+    "X11: $counts[2]+$counts[3]; GL: $counts[4]+$counts[5]; " .
+      "Names: $counts[1]\n"
+        if ($verbose);
+
+  # Write file if changed.
+  #
+  if ($body ne $obody) {
+    local *OUT;
+    open (OUT, ">$file") || error ("$file: $!");
+    print OUT $body;
+    close OUT;
+    print STDERR "$progname: wrote $file\n";
+  } elsif ($verbose) {
+    print STDERR "$progname: $file unchanged\n";
+  }
+}
+
+
+sub error($) {
+  my ($err) = @_;
+  print STDERR "$progname: $err\n";
+  exit 1;
+}
+
+sub usage() {
+  print STDERR "usage: $progname [--verbose] ad-file\n";
+  exit 1;
+}
+
+sub main() {
+  my $file;
+  while ($#ARGV >= 0) {
+    $_ = shift @ARGV;
+    if (m/^--?verbose$/) { $verbose++; }
+    elsif (m/^-v+$/) { $verbose += length($_)-1; }
+    elsif (m/^-./) { usage; }
+    elsif (!$file) { $file = $_; }
+    else { usage; }
+  }
+
+  usage unless ($file);
+  munge_ad ($file);
+}
+
+main();
+exit 0;
index da607c7d218b8a0ada1cdd5fb8872c557c07b9c1..2c474b687dfa9f3155697bbdc4143ae18a4194da 100644 (file)
@@ -4,6 +4,7 @@ nerverot - induces edginess in the viewer
 .SH SYNOPSIS
 .B nerverot
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-db] [\-no\-db] [\-colors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-count \fIinteger\fP] [\-line\-width \fIinteger\fP] [\-event\-chance \fIfraction\fP] [\-iter\-amt \fIfraction\fP] [\-nervousness \fIfraction\fP] [\-max\-nerve\-radius \fIfraction\fP] [\-min\-radius \fIinteger\fP] [\-max\-radius \fIinteger\fP] [\-min\-scale \fIfraction\fP] [\-max\-scale \fIfraction\fP]
+[\-fps]
 .SH DESCRIPTION
 The goal of \fInerverot\fP is to be interesting and compelling to
 watch, yet induce a state of nervous edginess in the viewer. This manpage
@@ -96,6 +97,9 @@ resource \fIminScale\fP.
 The maximum overall scale of drawing, as a fraction of
 \fImin(windowHeight,windowWidth)\fP, in the range 0..10. Defaults to 1.75,
 resource \fImaxScale\fP.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 0db99601d09eb119a9602226ceea4cee46fe4d39..970c6d4f25ef349251869d8f4f40fe979b39438f 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1996, 1997, 1998, 2005, 2006
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -569,6 +568,7 @@ static const char *noseguy_defaults [] = {
   ".foreground:            #CCCCCC",
   "*textForeground: black",
   "*textBackground: #CCCCCC",
+  "*fpsSolid:  true",
   "*program:    xscreensaver-text --cols 40 | head -n15",
   ".font:       -*-new century schoolbook-*-r-*-*-*-180-*-*-*-*-*-*",
   0
index 43962ebf4b3016b3fca68e89cc0a6a17046bb506..3d98ea0bbb1a76be028bfc812eb0eb478064f840 100644 (file)
@@ -17,6 +17,7 @@ noseguy - a little guy with a big nose wanders around being witty
 [\-program \fIprogram\fP]
 [\-filename \fIfile\fP]
 [\-text \fItext\fP]
+[\-fps]
 .SH DESCRIPTION
 A little man with a big nose and a hat runs around spewing out messages to
 the screen.  This code (and its bitmaps) were extracted from the \fIxnlock\fP
@@ -57,6 +58,9 @@ for all messages.
 .TP 8
 .B \-text \fIstring\fP
 If \fImode\fP is \fIstring\fP, then this text will be used for all messages.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 72e08ca860bff8d67fc8311d2aa41210986544d0..cf708f4af68c63ea700f2aeac442d929d4578886 100644 (file)
@@ -50,7 +50,10 @@ static const char sccsid[] = "@(#)pacman.c   5.00 2000/11/01 xlockmore";
 #      define MODE_pacman
 #      define DEFAULTS "*delay:   10000 \n" \
                                        "*size:    0     \n" \
-                                       "*ncolors: 6     \n"
+                                       "*ncolors: 6     \n" \
+                                       "*fpsTop: true   \n" \
+                                       "*fpsSolid: true \n" \
+
 #      define UNIFORM_COLORS
 #      define BRIGHT_COLORS
 #   define reshape_pacman 0
index ba18c41a12aae9337f066f9a354d2ef5e4991773..ba19a56016efd89a62d7a4cc020272b4dd8296ca 100644 (file)
@@ -12,6 +12,7 @@ pacman - simulates a game of Pac-Man on a randomly-created level.
 [\-ncolors \fIinteger\fP]
 [\-delay \fImicroseconds\fP]
 [\-size \fIpixels\fP]
+[\-fps]
 .SH DESCRIPTION
 Simulates a game of Pac-Man on a randomly-created level.
 .SH OPTIONS
@@ -39,6 +40,9 @@ How many colors should be used (if possible).  Default 6.
 .TP 8
 .B \-size \fIinteger\fP
 How big to make Pac-Man and the ghosts.  0 means "default."
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 7020bf2f30f3c1b3669055cba985d2d548bb058e..7495aaeba73a2f7ebb845256879c65fdf597a3d2 100644 (file)
@@ -309,6 +309,7 @@ pedal_free (Display *dpy, Window window, void *closure)
 static const char *pedal_defaults [] = {
   ".background:                        black",
   ".foreground:                        white",
+  "*fpsSolid:                  true",
   "*delay:                     5",
   "*maxlines:                  1000",
   0
index 317d2d2e34c392d37ed468f87306808d49139905..79d0d0cc59030bc089d8222eeefe256ba095c33e 100644 (file)
@@ -4,6 +4,7 @@ pedal - pretty geometric picture program
 .SH SYNOPSIS
 .B pedal
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-delay \fIseconds\fP] [-maxlines \fInumber\fP] [-mono] [\-install] [\-visual \fIvisual\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIpedal\fP program displays pretty geometric pictures.
 .SH OPTIONS
@@ -31,6 +32,9 @@ between 20 and 2000.  Maximum value is 16K.
 .PP
 To make your X server grunt under load, and to impress your
 friends, try \fIpedal -mono -delay 0 -maxlines 100\fp.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 2196035f3cee476cd84eb5187b279035621b0d3e..721ee01600f07eb3ef1a622c3cbfd6bb8608335f 100644 (file)
@@ -366,7 +366,7 @@ penetrate_init (Display *dpy, Window window)
   struct state *st = (struct state *) calloc (1, sizeof(*st));
   int i;
   const char *levelfont = "-*-courier-*-r-*-*-*-380-*-*-*-*-*-*";
-  const char *scorefont = "-*-times-*-r-*-*-*-180-*-*-*-*-*-*";
+  const char *scorefont = "-*-helvetica-*-r-*-*-*-180-*-*-*-*-*-*";
   XGCValues gcv;
   XWindowAttributes xgwa;
 
@@ -968,6 +968,8 @@ penetrate_free (Display *dpy, Window window, void *closure)
 static const char *penetrate_defaults [] = {
   ".background:        black",
   ".foreground:        white",
+  "*fpsTop:    true",
+  "*fpsSolid:  true",
   "*bgrowth:   5",
   "*lrate:     80",
   "*smart:     False",
index 80d03cddb80a5d159e8071a29bb4fc6dfa08536d..15e8d01a420849719767ff9e229cc2dd19a0ce08 100644 (file)
@@ -19,6 +19,7 @@ penetrate - simulates a classic arcade shooting game
 [\-display \fIhost:display.screen\fP] [\-root] [\-window]
 [\-install] [\-noinstall] [\-visual \fIvisual\fP]
 [\-bgrowth \fImicroseconds\fP] [\-lrate \fInumber\fP] [\-smart \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 .PP
 \fIPenetrate\fP simulates the arcade classic with the cities and the stuff
@@ -75,6 +76,9 @@ Set the initial rate of laser fire.
 .TP 8
 .B -smart
 Have the computer player skip the learning process.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH BUGS
 The layout of the screen isn't quite the same as the game this program
 tries to emulate.  In this this program, the missiles come out of the
index 4d6f1f875707c92d0531443cbbf9b37912c035fd..eedf0fdffe9aee95351b756e40c596e6fc85627d 100644 (file)
@@ -85,7 +85,9 @@ If one of these are hit penrose will reinitialize.
 #define MODE_penrose
 #define DEFAULTS       "*delay: 10000 \n" \
                                        "*size: 40 \n" \
-                                       "*ncolors: 64 \n"
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define refresh_penrose 0
 # define reshape_penrose 0
 # define penrose_handle_event 0
index f080498df4d1536b71e2bdf71651d0d26df5ba86..8c6d4ee4f52bdfa864a0438be93e6a93e83ccb8e 100644 (file)
@@ -5,6 +5,7 @@ penrose - draws quasiperiodic tilings
 .B penrose
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-size \fIinteger\fP] [\-ammann] [\-no\-ammann]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIpenrose\fP program draws quasiperiodic tilings.
 
@@ -74,6 +75,9 @@ tile.  Default 10,000 or .01 seconds.
 .B \-no\-ammann
 Whether Ammann lines should be added.
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 275fb42c83740304dfd2470b93bae72d91028cd5..03f3bf42cef1d15bdd3b92d4d5b4dfdc86c45efc 100644 (file)
@@ -718,6 +718,7 @@ petri_free (Display *dpy, Window window, void *closure)
 static const char *petri_defaults [] = {
   ".background:                black",
   ".foreground:                white",
+  "*fpsSolid:          true",
   "*delay:             10000",
   "*count:             20",
   "*size:              2",
index 32750e42602f9275fdebafb75ce79f1a20edfc51..b89230aacbed477f86efa8b7a21c6905285d817d 100644 (file)
@@ -4,6 +4,7 @@ petri - simulates mold growing in a petri dish
 .SH SYNOPSIS
 .B petri
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-delay \fImicroseconds\fP] [\-size \fIinteger\fP] [\-mem-throttle \fIamount\fP] [\-count \fIinteger\fP] [\-originalcolors] [\-diaglim \fIreal\fP] [\-anychan \fIreal\fP] [\-minorchan \fIreal\fP] [\-instantdeathchan \fIreal\fP] [\-minlifespeed \fIreal\fP] [\-maxlifespeed \fIreal\fP] [\-mindeathspeed \fIreal\fP] [\-maxdeathspeed \fIreal\fP] [\-minlifespan \fIinteger\fP] [\-maxlifespan \fIinteger\fP]
+[\-fps]
 .SH DESCRIPTION
 \fIpetri\fP simulates mold growing in a petri dish via a state-heavy grid
 of automata (vaguely like Conway's Life, only with much more state per
@@ -94,6 +95,9 @@ comes. Defaults to 500, resource \fIminlifespan\fP.
 .B \-maxlifespan \fIinteger\fP
 The maximum lifespan for a colony, in iterations, before Black Death
 comes. Defaults to 1500, resource \fImaxlifespan\fP.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 724bbb5312807fa3c04e196fc367394a95969380..3ce65d73ce8ea9ba203cc9589c83b33c9a79dc01 100644 (file)
@@ -1512,6 +1512,7 @@ phosphor_free (Display *dpy, Window window, void *closure)
 static const char *phosphor_defaults [] = {
   ".background:                   Black",
   ".foreground:                   #00FF00",
+  "*fpsSolid:             true",
   "*fadeForeground:       #006400",
   "*flareForeground:      #FFFFFF",
 #if defined(BUILTIN_FONT)
index 3bf54aa3f1f9c261542122556cc792cf6c5037cd..154599c5f9c154a405451cae7f901152b1c7f3ea 100644 (file)
@@ -20,6 +20,7 @@ phosphor - simulates an old terminal with long-sustain phosphor
 [\-visual \fIvisual\fP] [\-font \fIfont\fP] [\-scale \fIint\fP]
 [\-ticks \fIint\fP] [\-delay \fIusecs\fP] [\-program \fIcommand\fP]
 [\-meta] [\-esc] [\-bs] [\-del]
+[\-fps]
 .SH DESCRIPTION
 The \fIphosphor\fP program draws text on the screen in a very large 
 pixelated font that looks like an old low resolution dumb tty.  The
@@ -116,6 +117,9 @@ Swap Backspace and Delete.  This is the default.
 .TP 8
 .B \-bs
 Do not swap Backspace and Delete.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH TERMINAL EMULATION
 By default, \fIphosphor\fP allocates a pseudo-tty for the sub-process to
 run under.  This has the desirable side effect that the program will be
index 0053eff2fc45ee7d8062c44c3480d88adc905de7..336dd5120e69d1a3afc6b8ef4d3679a43f886d18 100644 (file)
@@ -960,7 +960,7 @@ piecewise_free (Display *dpy, Window window, void *closure)
 static const char *piecewise_defaults [] = {
   ".background:         black",
   ".foreground:         white",
-  "*delay:              5000",
+  "*delay:              10000",
   "*speed:              15",
   "*ncolors:            256",
   ".colorspeed:         10",
index e06b6790f660ad5f5865c1ed71e9d73de0322ab4..1d313bfafbc429035e8b41b706fc8dd8193ce508 100644 (file)
@@ -14,6 +14,7 @@ piecewise - lots of moving circles intersecting in interesting ways.
 [\-minradius \fInumber\fP]
 [\-maxradius \fInumber\fP]
 [\-no-db]
+[\-fps]
 .SH DESCRIPTION
 This draws a bunch of moving circles which switch from visibility to invisibility
 when they intersect.
@@ -49,6 +50,9 @@ Maximum circle radius (as a proportion of screen height). Default: 0.2.
 .TP 8
 .B \-db | \-no-db
 Whether to double buffer.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index f6a4fdc657552811cb48fb7002500426a83fac71..69c7b2590e9e49f55de42367972f8941e5422349 100644 (file)
@@ -36,7 +36,9 @@ static const char sccsid[] = "@(#)polyominoes.c 5.01 2000/12/18 xlockmore";
 # define MODE_polyominoes
 #define DEFAULTS       "*delay: 10000 \n" \
                                        "*cycles: 2000 \n" \
-                                       "*ncolors: 64 \n"
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define reshape_polyominoes 0
 # define polyominoes_handle_event 0
 # define SMOOTH_COLORS
index d5eed874b4e10c85fb27cc064422c93eeb1a5c98..c99a836de1fbb0c7edb47497394f1cc91773d624 100644 (file)
@@ -11,6 +11,7 @@ polyominoes - fill a rectangle with irregularly-shaped blocks.
 [\-cycles \fInumber\fP]
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Repeatedly attempts to completely fill a rectangle with irregularly-shaped
 puzzle pieces.
@@ -37,6 +38,9 @@ Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
 .TP 8
 .B \-ncolors \fInumber\fP
 Number of Colors.  Default: 64.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 021fe1d716c1aff13b1500b851a502572e258a8c..411d43a7eb6a34c5cea4c6d63a4fe1b43655fa02 100644 (file)
@@ -788,4 +788,4 @@ pong_free (Display *dpy, Window window, void *closure)
   free (st);
 }
 
-XSCREENSAVER_MODULE ("pong", pong)
+XSCREENSAVER_MODULE ("Pong", pong)
index e35c47d2db15bdbc33de3839d49372f28362861b..d9d7f4acc6c328de50d8093be593bb9aabeda738 100644 (file)
@@ -8,6 +8,7 @@ pong - Pong Home Video Game Emulator
 [\-visual \fIvisual\fP]
 [\-clock \fIfloat\fP]
 [\-noise]
+[\-fps]
 .SH DESCRIPTION
 The
 .I pong 
@@ -38,6 +39,9 @@ The score of the game will be the current time.
 .TP 8
 .B \-noise \fIfloat\fP
 How noisy the video signal should be (between 0.0 and 4.0 or so).
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index ec2e02b3cfa14b75d28384d84873badccf3f9846..ca540f72c00a2ebab092fcd558526eb84813ea0d 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1994, 1996, 1998, 2001, 2005, 2006
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -349,8 +348,9 @@ pyro_free (Display *dpy, Window window, void *closure)
 static const char *pyro_defaults [] = {
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*count:     600",
-  "*delay:     5000",
+  "*delay:     10000",
   "*frequency: 30",
   "*scatter:   100",
   "*geometry:  800x500",
index ad4c78b58f30b51848101ddfb904016649230590..914fad778bae892c251a408125e74a7764b2547b 100644 (file)
@@ -4,6 +4,7 @@ pyro - simulate fireworks
 .SH SYNOPSIS
 .B pyro
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-count \fIinteger\fP] [\-frequency \fIinteger\fP] [\-scatter \fIinteger\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIpyro\fP program simulates fireworks, in a way similar to a Macintosh
 program of the same name.
@@ -36,6 +37,9 @@ How often new missiles should launch.  Default 30.
 .B \-scatter \fIinteger\fP
 How many particles should appear when a missile explodes.  Default 100.
 The actual number used is between \fIN\fP and \fIN+(N/2)\fP.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index c25d21e18a0970bcffc0e484cdeb39eace2d7741..ad1e26e7a6ef951834ec60f72b8c2bb37d400f1c 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1995, 1996, 1997, 1998, 2006
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -579,25 +578,18 @@ qix_free (Display *dpy, Window window, void *closure)
 static const char *qix_defaults [] = {
   ".background:        black",
   ".foreground:        white",
-#if 0
-  "*count:     1",
-#else
-  "*count:     5",
-#endif
-  "*segments:  50",
+  "*fpsSolid:  true",
+  "*count:     4",
+  "*segments:  250",
   "*poly:      2",
   "*spread:    8",
-  "*size:      0",
+  "*size:      200",
   "*colorShift:        3",
-  "*solid:     false",
+  "*solid:     true",
   "*delay:     10000",
-  "*random:    true",
+  "*random:    false",
   "*xor:       false",
-#if 0
-  "*transparent:false",
-#else
   "*transparent:true",
-#endif
   "*gravity:   false",
   "*additive:  true",
   0
index 482d21973971e3a690f163a491a7cd55e240919d..f5a093053f278d3650e6be459ae3ff8ba002f4ab 100644 (file)
@@ -4,6 +4,7 @@ qix - bounce colored lines around a window
 .SH SYNOPSIS
 .B qix
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-segments \fIint\fP] [\-spread \fIpixels\fP] [\-size \fIpixels\fP] [\-count \fIint\fP] [\-color-shift \fIdegrees\fP] [\-delay \fIusecs\fP] [\-random] [\-linear] [\-solid] [\-hollow] [\-xor] [\-no\-xor] [\-transparent] [\-non\-transparent] [\-additive] [\-subtractive] [\-poly \fIint\fP] [\-gravity] [\-no\-gravity]
+[\-fps]
 .SH DESCRIPTION
 The \fIqix\fP program bounces a series of line segments around its window.
 This is truly the swiss army chainsaw of qix programs.  If you know of one
@@ -102,6 +103,9 @@ options
 .B \-gravity \-linear
 will make everything move in nice smooth parabolas.
 Gravity is off by default.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 6fb0afb7e0734c08f93b512a84e8fa40d7e45db2..0c074ea49f442e928539ab323da3f939e9af6383 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1995, 1997, 1998, 1999, 2003, 2006
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  *  reaction/diffusion textures
  *  Copyright (c) 1997 Scott Draves spot@transmeta.com
@@ -33,7 +32,6 @@ struct state {
   Display *dpy;
   Window window;
 
-  int verbose;
   int ncolors;
   XColor *colors;
   Visual *visual;
@@ -141,23 +139,7 @@ pixack_frame(struct state *st, char *pix_buf)
   if (st->frame&0x100)
     sleep(1);
 #endif
-  if (st->verbose) {
-    double tm = 0;
-    struct timeval tp;
-    if (!(st->frame%100)) {
-      double tm2;
-#ifdef GETTIMEOFDAY_TWO_ARGS
-      struct timezone tzp;
-      gettimeofday(&tp, &tzp);
-#else
-      gettimeofday(&tp);
-#endif
-      tm2 = tp.tv_sec + tp.tv_usec * 1e-6;
-      if (st->frame > 0)
-       printf("fps = %2.4g\n", 100.0 / (tm2 - tm));
-      tm = tm2;
-    }
-  }
+
   if (!(st->frame%st->epoch_time)) {
     int s;
     if (0 != st->frame) {
@@ -199,10 +181,6 @@ pixack_frame(struct state *st, char *pix_buf)
       st->diffusion = (R%5) ? ((R%3)?0:1) : 2;
     if (2 == st->reaction && 2 == st->diffusion)
       st->reaction = st->diffusion = 0;
-      
-    if (st->verbose)
-      printf("reaction = %d\ndiffusion = %d\nradius = %d\n",
-            st->reaction, st->diffusion, st->radius);
   }
   for (i = 0; i <= st->width+1; i++) {
     st->r1[i] = st->r1[i + w2 * st->height];
@@ -315,17 +293,17 @@ pixack_frame(struct state *st, char *pix_buf)
 static const char *rd_defaults [] = {
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*width:     0",                     /* tried to use -1 but it complained */
   "*height:    0",
   "*epoch:     40000",
   "*reaction:  -1",
   "*diffusion: -1",
-  "*verbose:   off",
   "*radius:    -1",
   "*speed:     0.0",
   "*size:      1.0",
-  "*delay:     20000",
-  "*colors:    -1",
+  "*delay:     30000",
+  "*colors:    255",
 #ifdef HAVE_XSHM_EXTENSION
   "*useSHM:    True",
 #else
@@ -340,7 +318,6 @@ static XrmOptionDescRec rd_options [] = {
   { "-epoch",          ".epoch",       XrmoptionSepArg, 0 },
   { "-reaction",       ".reaction",    XrmoptionSepArg, 0 },
   { "-diffusion",      ".diffusion",   XrmoptionSepArg, 0 },
-  { "-verbose",                ".verbose",     XrmoptionNoArg, "True" },
   { "-radius",         ".radius",      XrmoptionSepArg, 0 },
   { "-speed",          ".speed",       XrmoptionSepArg, 0 },
   { "-size",           ".size",        XrmoptionSepArg, 0 },
@@ -431,7 +408,6 @@ rd_init (Display *dpy, Window win)
     if (random() & 1) st->array_dy = -st->array_dy;
 
   }
-  st->verbose = get_boolean_resource (st->dpy, "verbose", "Boolean");
   st->npix = (st->width + 2) * (st->height + 2);
   w2 = st->width + 2;
 /*  gcv.function = GXcopy;*/
@@ -484,7 +460,7 @@ rd_init (Display *dpy, Window win)
   st->cmap = st->xgwa.colormap;
   st->ncolors = get_integer_resource (st->dpy, "colors", "Integer");
 
-  if (st->ncolors <= 0) {
+  if (st->ncolors <= 0 || st->ncolors >= 255) {
     if (vdepth > 8)
       st->ncolors = 2047;
     else
index c6fb9de085b330b8bcffad2984b695bfae58b96d..4022a4328ee795f8518c1a4056e1c1fc7840c999 100644 (file)
@@ -8,6 +8,7 @@ rd-bomb - reaction/diffusion textures
 [\-visual \fIvisual\fP] [\-width \fIn\fP] [\-height \fIn\fP]
 [\-reaction \fIn\fP] [\-diffusion \fIn\fP]
 [\-size \fIf\fP] [\-speed \fIf\fP] [\-delay \fImillisecs\fP]
+[\-fps]
 .SH DESCRIPTION
 
 The \fIrd-bomb\fP program draws reaction/diffusion textures.  The code
@@ -71,6 +72,9 @@ rate (a floating point number).  Default is zero.  Suggested value: 1.0.
 .B \-delay \fImillisecs\fP
 How many milliseconds to delay between frames; default 1, or 
 about 1/1000th of a second.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index aa286426a960537ce62e6360e1d049bde3d50001..fac61995060e103740a8c5212a1ce64237189925 100644 (file)
@@ -718,19 +718,21 @@ sinc(struct state *st, double x)
 static void
 add_circle_drop(struct state *st, int x, int y, int radius, int dheight)
 {
-  int i, r2, cx, cy;
+  int r, r2, cx, cy;
   short *buf = (random()&1) ? st->bufferA : st->bufferB;
 
-  i = y * st->width + x;
   r2 = radius * radius;
 
+
   for (cy = -radius; cy <= radius; cy++)
     for (cx = -radius; cx <= radius; cx++) {
-      int r = cx*cx + cy*cy;
-      if (r <= r2) {
-        buf[i + cx + cy*st->width] =
-          (short)(dheight * sinc(st, sqrt(r)/radius));
-      }
+      int xx = x+cx;
+      int yy = y+cy;
+      if (xx < 0 || yy < 0 || xx >= st->width || yy >= st->height) {break;}
+      r = cx*cx + cy*cy;
+      if (r > r2) break;
+      buf[xx + yy*st->width] =
+        (short)(dheight * sinc(st, sqrt(r)/radius));
     }
 }
 
@@ -1091,11 +1093,11 @@ static const char *ripples_defaults[] =
   "*duration:          120",
   "*rate:              5",
   "*box:               0",
-  "*water:             False",
+  "*water:             True",
   "*oily:              False",
   "*stir:              False",
   "*fluidity:          6",
-  "*light:             0",
+  "*light:             4",
   "*grayscale:                 False",
 #ifdef HAVE_XSHM_EXTENSION
   "*useSHM: True",
index a53945275d0ec9e98f1bb2b1e910c90d787b1b94..f016683a889fa7790366458ab532b0a18e7b9756 100644 (file)
@@ -18,6 +18,7 @@ ripples - interference patterns.
 [\-grayscale]
 [\-colors \fInumber\fP]
 [\-no-shm]
+[\-fps]
 .SH DESCRIPTION
 This draws rippling interference patterns like splashing water. With the
 -water option, it manipulates your desktop image to look like something is
@@ -68,6 +69,9 @@ Colors Two.  Default: 200.
 .TP 8
 .B \-shm | \-no-shm
 Use Shared Memory.  Boolean.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 37bd07927f574e103169e5b681176b67cb2f1db2..f1c606337124b48eb2da67e042c5a7eefb041ad3 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1995, 1996, 1997, 1998, 2006
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -512,6 +511,7 @@ rocks_free (Display *dpy, Window window, void *closure)
 static const char *rocks_defaults [] = {
   ".background:        Black",
   ".foreground:        #E9967A",
+  "*fpsSolid:  true",
   "*colors:    5",
   "*count:     100",
   "*delay:     50000",
index 1d391306169d09bbd383e3ab4b38e8226fd4bacf..b5751d9982ce7467d212dc682ad7b9be74be43c6 100644 (file)
@@ -4,6 +4,7 @@ rocks - animation of flying through an asteroid field
 .SH SYNOPSIS
 .B rocks
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-ncolors \fIn\fP] [\-install] [\-visual \fIvisual\fP] [\-count \fIinteger\fP] [\-delay \fIusecs\fP] [\-speed \fIinteger\fP] [\-norotate] [\-nomove] [\-3d]
+[\-fps]
 .SH DESCRIPTION
 The \fIrocks\fP program draws an animation of an asteroid field moving past
 the observer (or vice versa).  Sometimes the observer picks up spin on Z axis.
@@ -52,6 +53,9 @@ Don't turn the observer; just fly straight ahead through the field.
 .B \-3d
 Do red/blue 3d separations: if you look at the screen with 3d glasses,
 the rocks will be \fIjumping\fP right \fIout\fP at you.  Oooooh, scaaary!
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 1dc01d553bdbb54fb974782a89f695be84dc8ea5..b4f4aa89068b0aa722146b68bd373d3ed9115b0e 100644 (file)
@@ -1,5 +1,4 @@
-/* xscreensaver, Copyright (c) 1992, 1996, 1998, 2001, 2006
- *  Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -183,6 +182,7 @@ rorschach_free (Display *dpy, Window window, void *closure)
 static const char *rorschach_defaults [] = {
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*xsymmetry: true",
   "*ysymmetry: false",
   "*iterations:        4000",
index 9348396841e511b4e4aff927f2969ceae3127ab4..5a28cf6558c49fa7e283e4fe0ee91edf4643ffbf 100644 (file)
@@ -4,6 +4,7 @@ rorschach - simulate ink-blot patterns
 .SH SYNOPSIS
 .B rorschach
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-iterations \fIinteger\fP] [\-offset \fIinteger\fP] [\-xsymmetry] [\-ysymmetry] [\-erase\-speed \fIusecs\fP] [\-delay \fIsecs\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIrorschach\fP program draws random patterns reminiscent of the
 psychological test of same name.
@@ -45,6 +46,9 @@ erasing of individual lines.)
 .TP 8
 .B \-delay \fIseconds\fP
 This sets the number of seconds that the figure will be on the screen.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 4b32bdf7f5fe494b419b63f9d1f62e215502ec1c..eb1a0b78313e25525db2feef4c7b653f38e68365 100644 (file)
@@ -37,7 +37,9 @@ static const char sccsid[] = "@(#)rotor.c     5.00 2000/11/01 xlockmore";
                                        "*count: 4 \n" \
                                        "*cycles: 20 \n" \
                                        "*size: -6 \n" \
-                                       "*ncolors: 200 \n"
+                                       "*ncolors: 200 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define SMOOTH_COLORS
 # define reshape_rotor 0
 # define rotor_handle_event 0
index 0e982d7ea7af46f76620e2ed95a9339e70a40db2..58590ed5a1720e882a6163f26dedc27684f02e58 100644 (file)
@@ -12,6 +12,7 @@ rotor - screen saver.
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
 [\-size \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 This draws a line segment moving along a complex spiraling curve.
 .SH OPTIONS
@@ -40,6 +41,9 @@ Number of Colors.  Default: 200.
 .TP 8
 .B \-size \fInumber\fP
 Size.  -50 - 50.  Default: -6.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index cacb7229355a45d26d6f9fbf8b7beca9e386c3b6..610b952030c49c8d2eb6e9a84ab2798d23cccd2a 100644 (file)
@@ -284,7 +284,7 @@ static unsigned long
 rotzoomer_draw (Display *disp, Window win, void *closure)
 {
   struct state *st = (struct state *) closure;
-  int delay = (st->delay * 1000);
+  int delay = st->delay;
   int i;
 
   if (st->img_loader)   /* still loading */
@@ -450,6 +450,7 @@ rotzoomer_free (Display *dpy, Window window, void *closure)
 static const char *rotzoomer_defaults[] = {
   ".background: black",
   ".foreground: white",
+  "*fpsSolid:  true",
 #ifdef HAVE_XSHM_EXTENSION
   "*useSHM: True",
 #else
@@ -458,7 +459,7 @@ static const char *rotzoomer_defaults[] = {
   "*anim: True",
   "*mode: stationary",
   "*numboxes: 2",
-  "*delay: 10",
+  "*delay: 10000",
   "*duration: 120",
   0
 };
@@ -479,4 +480,4 @@ static XrmOptionDescRec rotzoomer_options[] = {
 };
 
 
-XSCREENSAVER_MODULE ("Rotzoomer", rotzoomer)
+XSCREENSAVER_MODULE ("RotZoomer", rotzoomer)
index 1e0be923c0c46a68c5dfc1461fa3ff7a4a68eba6..0a8255090044c48647ce70cf129e8d38704ef741 100644 (file)
@@ -10,6 +10,7 @@ rotzoomer - animated rotations and scalings of portions of the screen
 [\-n \fIcount\fP]
 [\-shm | \-no\-shm]
 [\-window] [\-root] [\-install] [\-visual \fIvisual\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIrotzoomer\fP program grabs an image, then picks
 rectangles and draws scaled and rotated animations of that 
@@ -58,6 +59,9 @@ How many rectangles to animate simultaneously.  Default 2.
 .TP 8
 .B \-no\-shm
 Disable use of the SHM extension, even if it appears to be available.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 443d3f423745562b89165e8df92fa620caad08ec..f90289d1edbc929fefe5440f0c5289aa35050627 100644 (file)
           Called when a keyboard or mouse event arrives.
           Return True if you handle it in some way, False otherwise.
 
-      static void YOURNAME_event (Display *, Window, void *closure);
+      static void YOURNAME_free (Display *, Window, void *closure);
 
            Called when you are done: free everything you've allocated,
-           including your private `state' structure.
+           including your private `state' structure.  
+
+           NOTE: this is called in windowed-mode when the user typed
+           'q' or clicks on the window's close box; but when
+           xscreensaver terminates this screenhack, it does so by
+           killing the process with SIGSTOP.  So this callback is
+           mostly useless.
 
       static char YOURNAME_defaults [] = { "...", "...", ... , 0 };
 
@@ -68,7 +74,7 @@
       - Do not use global variables: all such info must be stored in the
         private `state' structure.
 
-      - Do not static function-local variables, either.  Put it in `state'.
+      - Do not use static function-local variables, either.  Put it in `state'.
 
         Assume that there are N independent runs of this code going in the
         same address space at the same time: they must not affect each other.
@@ -77,7 +83,6 @@
         of your screen saver module.  See .../hacks/config/README for details.
  */
 
-#define DEBUG_TIMING
 #define DEBUG_PAIR
 
 #include <stdio.h>
 #include "screenhackI.h"
 #include "version.h"
 #include "vroot.h"
+#include "fps.h"
 
 #ifndef _XSCREENSAVER_VROOT_H_
 # error Error!  You have an old version of vroot.h!  Check -I args.
@@ -136,6 +142,8 @@ static XrmOptionDescRec default_options [] = {
   { "-noinstall",".installColormap",   XrmoptionNoArg, "False" },
   { "-visual", ".visualID",            XrmoptionSepArg, 0 },
   { "-window-id", ".windowID",         XrmoptionSepArg, 0 },
+  { "-fps",    ".doFPS",               XrmoptionNoArg, "True" },
+  { "-no-fps",  ".doFPS",              XrmoptionNoArg, "False" },
 
 # ifdef DEBUG_PAIR
   { "-pair",   ".pair",                XrmoptionNoArg, "True" },
@@ -148,6 +156,7 @@ static char *default_defaults[] = {
   "*geometry:          600x480", /* this should be .geometry, but nooooo... */
   "*mono:              false",
   "*installColormap:   false",
+  "*doFPS:             false",
   "*visualID:          default",
   "*windowID:          ",
   "*desktopGrabber:    xscreensaver-getimage %s",
@@ -158,6 +167,7 @@ static XrmOptionDescRec *merged_options;
 static int merged_options_size;
 static char **merged_defaults;
 
+
 static void
 merge_options (void)
 {
@@ -407,65 +417,6 @@ fix_fds (void)
 }
 
 
-#ifdef DEBUG_TIMING
-
-static void
-check_timing (unsigned long delay)
-{
-  static unsigned long frame_count = 0;
-  static unsigned long delay_sum = 0;
-  static struct timeval prev1 = { 0, };
-  static struct timeval prev2 = { 0, };
-  struct timeval now;
-  double uprev1, uprev2, unow;
-
-# ifdef GETTIMEOFDAY_TWO_ARGS
-  gettimeofday (&now, 0);
-# else
-  gettimeofday (&now);
-# endif
-
-  if (prev1.tv_sec == 0)
-    prev1 = prev2 = now;
-
-  frame_count++;
-
-  uprev1 = prev1.tv_sec + ((double) prev1.tv_usec * 0.000001);
-  uprev2 = prev2.tv_sec + ((double) prev2.tv_usec * 0.000001);
-  unow   =  now.tv_sec  + ((double)   now.tv_usec * 0.000001);
-
-  if (unow >= uprev1 + 1.5)
-    fprintf (stderr,
-             "%s: warning: blocked event processing for %.1f secs!\n",
-             progname, unow - uprev1);
-  prev1 = now;
-
-  if (unow >= uprev2 + 10.0)
-    {
-      double fps   = frame_count / (unow - uprev2);
-      double elapsed = unow - uprev2;
-      double slept = (delay_sum * 0.000001);
-      double sleep_ratio = slept / elapsed;
-
-      if (sleep_ratio < 0.10) {
-        fprintf (stderr, 
-                 "%s: warning: only %.0f%% idle over the"
-                 " last %2.0f secs (at %.1f FPS)\n",
-                 progname, 100 * sleep_ratio, elapsed, fps);
-      }
-
-      prev2 = now;
-      frame_count = 0;
-      delay_sum = 0;
-    }
-
-  delay_sum += delay;
-}
-
-#else  /* !DEBUG_TIMING */
-# define check_timing(delay) /**/
-#endif /* !DEBUG_TIMING */
-
 static Boolean
 screenhack_table_handle_events (Display *dpy,
                                 const struct xscreensaver_function_table *ft,
@@ -517,9 +468,11 @@ screenhack_table_handle_events (Display *dpy,
 static Boolean
 usleep_and_process_events (Display *dpy,
                            const struct xscreensaver_function_table *ft,
-                           Window window, void *closure, unsigned long delay
+                           Window window, fps_state *fpst, void *closure,
+                           unsigned long delay
 #ifdef DEBUG_PAIR
-                         , Window window2, void *closure2, unsigned long delay2
+                         , Window window2, fps_state *fpst2, void *closure2,
+                           unsigned long delay2
 #endif
                            )
 {
@@ -531,13 +484,13 @@ usleep_and_process_events (Display *dpy,
 
     XSync (dpy, False);
     if (quantum > 0)
-      usleep (quantum);
-
-    check_timing (quantum);
-
-    /* The above isn't quite right in pair-mode: we always run both windows
-       with the timing of window 2.  But, it's just a debugging hack, so
-       that doesn't really matter that much... */
+      {
+        usleep (quantum);
+        if (fpst) fps_slept (fpst, quantum);
+#ifdef DEBUG_PAIR
+        if (fpst2) fps_slept (fpst2, quantum);
+#endif
+      }
 
     if (! screenhack_table_handle_events (dpy, ft, window, closure
 #ifdef DEBUG_PAIR
@@ -551,6 +504,14 @@ usleep_and_process_events (Display *dpy,
 }
 
 
+static void
+screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure)
+{
+  fps_compute (fpst, 0);
+  fps_draw (fpst);
+}
+
+
 static void
 run_screenhack_table (Display *dpy, 
                       Window window,
@@ -567,16 +528,23 @@ run_screenhack_table (Display *dpy,
   void *(*init_cb) (Display *, Window, void *) = 
     (void *(*) (Display *, Window, void *)) ft->init_cb;
 
+  void (*fps_cb) (Display *, Window, fps_state *, void *) = ft->fps_cb;
+
   void *closure = init_cb (dpy, window, ft->setup_arg);
+  fps_state *fpst = fps_init (dpy, window);
 
 #ifdef DEBUG_PAIR
   void *closure2 = 0;
+  fps_state *fpst2 = 0;
   if (window2) closure2 = init_cb (dpy, window2, ft->setup_arg);
+  if (window2) fpst2 = fps_init (dpy, window2);
 #endif
 
   if (! closure)  /* if it returns nothing, it can't possibly be re-entrant. */
     abort();
 
+  if (! fps_cb) fps_cb = screenhack_do_fps;
+
   while (1)
     {
       unsigned long delay = ft->draw_cb (dpy, window, closure);
@@ -585,20 +553,26 @@ run_screenhack_table (Display *dpy,
       if (window2) delay2 = ft->draw_cb (dpy, window2, closure2);
 #endif
 
+      if (fpst) fps_cb (dpy, window, fpst, closure);
+#ifdef DEBUG_PAIR
+      if (fpst2) fps_cb (dpy, window, fpst2, closure);
+#endif
+
       if (! usleep_and_process_events (dpy, ft,
-                                       window, closure, delay
+                                       window, fpst, closure, delay
 #ifdef DEBUG_PAIR
-                                       , window2, closure2, delay2
+                                       , window2, fpst2, closure2, delay2
 #endif
                                        ))
         break;
     }
 
   ft->free_cb (dpy, window, closure);
+  if (fpst) fps_free (fpst);
 
 #ifdef DEBUG_PAIR
-  if (window2)
-    ft->free_cb (dpy, window2, closure2);
+  if (window2) ft->free_cb (dpy, window2, closure2);
+  if (window2) fps_free (fpst2);
 #endif
 }
 
@@ -614,11 +588,6 @@ make_shell (Screen *screen, Widget toplevel, int width, int height)
   if (width  <= 0) width  = 600;
   if (height <= 0) height = 480;
 
-# ifdef USE_GL
-  if (!validate_gl_visual (stderr, screen, "window", visual))
-    exit (1);
-# endif /* USE_GL */
-
   if (def_visual_p)
     {
       Window window;
index 9cce8dc94daa0bd1e7aff055a09a1ed63ffadb22..1f9a561d690ffa7ab5d6d3a9e3150425d0b6b438 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1992-2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
           PREFIX ## _reshape,                                  \
           PREFIX ## _event,                                    \
           PREFIX ## _free,                                     \
-           0, 0 };                                             \
+           0, 0, 0 };                                          \
   XSCREENSAVER_LINK (NAME ## _xscreensaver_function_table)
 
-#define XSCREENSAVER_MODULE(CLASS,PREFIX)                              \
+#define XSCREENSAVER_MODULE(CLASS,PREFIX)                      \
       XSCREENSAVER_MODULE_2(CLASS,PREFIX,PREFIX)
 
 #endif /* __SCREENHACK_H__ */
index 540f83c2dc863e90be97a4de6255d62a24ad45da..f25e7ab5406f03852aca1ecae0664f5f2601641d 100644 (file)
@@ -97,6 +97,7 @@
 #include "colors.h"
 #include "grabscreen.h"
 #include "visual.h"
+#include "fps.h"
 
 /* Be Posixly correct */
 #undef  bzero
@@ -125,6 +126,7 @@ struct xscreensaver_function_table {
                                 unsigned int w, unsigned int h);
   Bool           (*event_cb)   (Display *, Window, void *, XEvent *);
   void           (*free_cb)    (Display *, Window, void *);
+  void           (*fps_cb)     (Display *, Window, fps_state *, void *);
 
   Visual *       (*pick_visual_hook) (Screen *);
   Bool           (*validate_visual_hook) (Screen *, const char *, Visual *);
index 72d5aa04f76bb186a04490b89aff8601a6c88cbe..5b26950a42003ec13f5942520c34e25fab7fae5f 100644 (file)
 static const char *shadebobs_defaults [] = {
   ".background: black",
   ".foreground: white",
+  "*fpsSolid:  true",
   "*degrees:  0",      /* default: Automatic degree calculation */
   "*color:    random",
   "*count:    4",
   "*cycles:   10",
   "*ncolors:  64",    /* changing this doesn't work particularly well */
-  "*delay:    5000",
+  "*delay:    10000",
   0
 };
 
index 8e4ad5043154fbba586fd472c800ebbed7117cca..e98905ebac6ed2cecc091703c8b344a41fd1a725 100644 (file)
@@ -11,6 +11,7 @@ shadebobs - oscillating vapor trails.
 [\-count \fInumber\fP]
 [\-delay \fInumber\fP]
 [\-cycles \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 This draws smoothly-shaded oscillating oval patterns, that look something
 like vapor trails or neon tubes.
@@ -37,6 +38,9 @@ Per-frame delay, in microseconds.  Default: 5000 (0.005 seconds.).
 .TP 8
 .B \-cycles \fInumber\fP
 Duration.  0 - 100.  Default: 10.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index f6e18181dc93cd8d70b9733bb46c2b04511e5476..dab702f22336b87dd315333a7c35ef30e833e6c1 100644 (file)
@@ -37,7 +37,9 @@ static const char sccsid[] = "@(#)sierpinski.c        5.00 2000/11/01 xlockmore";
 # define DEFAULTS      "*delay: 400000 \n" \
                                        "*count: 2000 \n" \
                                        "*cycles: 100 \n" \
-                                       "*ncolors: 64 \n"
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define BRIGHT_COLORS
 # define reshape_sierpinski 0
 # define sierpinski_handle_event 0
index f3fdb34a170846868358b562e3beeddf51a032c0..665ecad1e85eaa5af8a480627741b5fb66892467 100644 (file)
@@ -5,6 +5,7 @@ sierpinski - draws Sierpinski triangle fractals
 .B sierpinski
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-cycles \fIinteger\fP] [\-count \fIinteger\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIsierpinski\fP program draws Sierpinski triangle fractals.
 .SH OPTIONS
@@ -36,6 +37,9 @@ The colors are chosen randomly.
 .TP 8
 .B \-count \fIinteger\fP
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index a3859b573eded9084152b4093890463d29773d00..60d2fd4c1015a0c8d14547671b40866663f46941 100644 (file)
@@ -447,6 +447,7 @@ slidescreen_free (Display *dpy, Window window, void *closure)
 
 static const char *slidescreen_defaults [] = {
   "*dontClearRoot:             True",
+  "*fpsSolid:                  true",
 
 #ifdef __sgi   /* really, HAVE_READ_DISPLAY_EXTENSION */
   "*visualID:                  Best",
@@ -473,4 +474,4 @@ static XrmOptionDescRec slidescreen_options [] = {
   { 0, 0, 0, 0 }
 };
 
-XSCREENSAVER_MODULE ("Slidescreen", slidescreen)
+XSCREENSAVER_MODULE ("SlideScreen", slidescreen)
index f9bbac450c0adaf83f368af59e8d135e42c0c65f..6ab4fde21ec37c1a34ef784ac35885914338dd4a 100644 (file)
@@ -15,6 +15,7 @@ slidescreen - permute the screen image like an 8-puzzle
 [\-root]
 [\-install]
 [\-visual \fIvisual\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIslidescreen\fP program takes an image, divides it into
 a grid, deletes a random square of that grid, and then randomly slides 
@@ -67,6 +68,9 @@ which is one second.
 .TP 8
 .B \-duration \fIseconds\fP
 How long to run before loading a new image.  Default 120 seconds.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 09d8c879936fffcbe92edb8cbcbf927fa6bfc3fe..0c665ea76e178ce13d75cb73320be73f2281fcd1 100644 (file)
@@ -31,6 +31,7 @@ static const char sccsid[] = "@(#)slip.c      5.00 2000/11/01 xlockmore";
                                        "*count: 35 \n" \
                                        "*cycles: 50 \n" \
                                        "*ncolors: 200 \n"
+
 # define refresh_slip 0
 # define slip_handle_event 0
 # include "xlockmore.h"                /* in xscreensaver distribution */
index 63a405cb5956324c3b0539fbe3866963158bc7d5..ce4e11099ed788cf5ddd7de38bf33baed26a9089 100644 (file)
@@ -8,6 +8,7 @@ slip - sucks your screen into a jet engine
 [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP]
 [\-iterations \fIinteger\fP] [\-points \fIinteger\fP]
 [\-delay \fImicroseconds\fP] [\-delay2 \fImicroseconds\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIslip\fP program does lots of blits and chews up an image.
 
@@ -53,6 +54,9 @@ How long to frobnicate.  Default 50.
 .B \-delay \fImicroseconds\fP
 How long we should wait between drawing each step.  Default 50000,
 or about 1/20th second.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index d6c4aec9e7111c34e718b6cb61d806a9fffb27ef..7e81555b7aeb9c46ee2da3efd95a1374d427c094 100644 (file)
@@ -1,5 +1,5 @@
 /* sonar.c --- Simulate a sonar screen.
- * Copyright (C) 1998-2006 by Stephen Martin and Jamie Zawinski
+ * Copyright (C) 1998-2008 by Stephen Martin and Jamie Zawinski
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
  * the above copyright notice appear in all copies and that both that
@@ -42,7 +42,7 @@
  *   - plot the process table, by process size, cpu usage, or total time;
  *   - plot the logged on users by idle time or cpu usage.
  *
- * $Revision: 1.57 $
+ * $Revision: 1.60 $
  *
  * Version 1.0 April 27, 1998.
  * - Initial version, by Stephen Martin <smartin@vanderfleet-martin.net>
@@ -1913,7 +1913,7 @@ parse_mode (sonar_info *si, Bool ping_works_p)
       free (source);
 # ifdef HAVE_PING
       if (ping_works_p)                /* if root or setuid, ping will work. */
-        source = strdup("subnet/29,/etc/hosts");
+        source = strdup("subnet/28");
       else
 # endif
         source = strdup("simulation");
@@ -2237,6 +2237,7 @@ sonar_free (Display *dpy, Window window, void *closure)
 static const char *sonar_defaults [] = {
     ".background:      #000000",
     ".sweepColor:      #00FF00",
+    "*fpsSolid:                true",
     "*delay:          100000",
     "*scopeColor:      #003300",
     "*gridColor:       #00AA00",
@@ -2265,6 +2266,7 @@ static const char *sonar_defaults [] = {
 
 static XrmOptionDescRec sonar_options [] = {
     {"-background",   ".background",   XrmoptionSepArg, 0 },
+    {"-delay",        ".delay",        XrmoptionSepArg, 0 },
     {"-sweep-color",  ".sweepColor",   XrmoptionSepArg, 0 },
     {"-scope-color",  ".scopeColor",   XrmoptionSepArg, 0 },
     {"-grid-color",   ".gridColor",    XrmoptionSepArg, 0 },
index 5868acc0762e7c36f91af222d092dfd97b1697f0..36a3539d3564ca936ad10671fb24b7e0fd964f16 100644 (file)
@@ -33,6 +33,7 @@ sonar - display a sonar scope
 [\-no\-dns] 
 [\-no\-times] 
 [\-debug] 
+[\-fps]
 .SH DESCRIPTION
 The \fIsonar\fP program displays a sonar scope on the computer's screen.
 This scope polls a sensor as the sweep goes around the scope and displays
@@ -122,6 +123,9 @@ In simulation mode, the number of bogies on team A.
 .TP 8
 .B \-team-b-count \fIint\fP
 In simulation mode, the number of bogies on team B.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH RESOURCES
 Configuration of the targets to ping is best done by setting X Resources.
 .PP
index 312e51604d7f109ec88d29c9dbd5e49205f34e1e..1ff2db11076c3c7c41340a06085f906e09377048 100644 (file)
@@ -881,6 +881,7 @@ render_quads (struct state *st, Drawable d, int t, int dt, int i)
                }
                if (st->be_wormy && st->psychedelic_flag) index += st->ncolors/4;
 
+        if (st->ncolors > MAX_COLORS) abort();
                index = MIN (index, st->ncolors-1);
                index = MAX (index, 0);
 
@@ -1266,6 +1267,7 @@ speedmine_color_ramp (struct state *st, GC *gcs, XColor * colors,
        flags = GCForeground;
        for (i=0; i < *ncolors; i++) {
                gcv.foreground = colors[i].pixel;
+        if (gcs[i]) XFreeGC (st->dpy, gcs[i]);
                gcs[i] = XCreateGC (st->dpy, st->dbuf, flags, &gcv);
        }
 
@@ -1287,10 +1289,9 @@ change_colors (struct state *st)
                free_colors (st->dpy, st->cmap, st->bonus_colors, st->nr_bonus_colors);
                free_colors (st->dpy, st->cmap, st->wall_colors, st->nr_wall_colors);
                free_colors (st->dpy, st->cmap, st->ground_colors, st->nr_ground_colors);
-               st->ncolors = MAX_COLORS;
-
                s1 = 0.4; s2 = 0.9;
 
+               st->ncolors = MAX_COLORS;
                speedmine_color_ramp (st, st->ground_gcs, st->ground_colors,
                                                          &st->ncolors, 0.0, 0.8, 0.0, 0.9);
                st->nr_ground_colors = st->ncolors;
@@ -1302,10 +1303,12 @@ change_colors (struct state *st)
                s1 = 0.0; s2 = 0.6;
        }
 
+    st->ncolors = MAX_COLORS;
     speedmine_color_ramp (st, st->wall_gcs, st->wall_colors, &st->ncolors,
                                                  s1, s2, 0.0, 0.9);
     st->nr_wall_colors = st->ncolors;
 
+    st->ncolors = MAX_COLORS;
     speedmine_color_ramp (st, st->bonus_gcs, st->bonus_colors, &st->ncolors,
                                                  0.6, 0.9, 0.4, 1.0);
        st->nr_bonus_colors = st->ncolors;
@@ -1325,15 +1328,16 @@ init_psychedelic_colors (struct state *st)
   st->tunnelend_gc = XCreateGC (st->dpy, st->window, GCForeground, &gcv);
 
   st->ncolors = MAX_COLORS;
-
   speedmine_color_ramp (st, st->ground_gcs, st->ground_colors, &st->ncolors,
                                                0.0, 0.8, 0.0, 0.9);
   st->nr_ground_colors = st->ncolors;
 
+  st->ncolors = MAX_COLORS;
   speedmine_color_ramp (st, st->wall_gcs, st->wall_colors, &st->ncolors,
                                                0.0, 0.6, 0.0, 0.9);
   st->nr_wall_colors = st->ncolors;
 
+  st->ncolors = MAX_COLORS;
   speedmine_color_ramp (st, st->bonus_gcs, st->bonus_colors, &st->ncolors,
                                                0.6, 0.9, 0.4, 1.0);
   st->nr_bonus_colors = st->ncolors;
@@ -1377,10 +1381,12 @@ init_colors (struct state *st)
        st->ground_gcs[i] = XCreateGC (st->dpy, st->dbuf, flags, &gcv);
   }
 
+  st->ncolors = MAX_COLORS;
   speedmine_color_ramp (st, st->wall_gcs, st->wall_colors, &st->ncolors,
                                                0.0, 0.6, 0.0, 0.9);
   st->nr_wall_colors = st->ncolors;
 
+  st->ncolors = MAX_COLORS;
   speedmine_color_ramp (st, st->bonus_gcs, st->bonus_colors, &st->ncolors,
                                                0.6, 0.9, 0.4, 1.0);
   st->nr_bonus_colors = st->ncolors;
@@ -1622,7 +1628,7 @@ static XrmOptionDescRec speedmine_options [] = {
 };
 
 
-XSCREENSAVER_MODULE ("Speedmine", speedmine)
+XSCREENSAVER_MODULE ("SpeedMine", speedmine)
 
 /* vim: ts=4
  */
index 88be0c2dc1ea58d40d7bbd6026eca83a43b53d85..c5ce919e4ac4ce267a830e1a8112b7486e816228 100644 (file)
@@ -20,6 +20,7 @@ speedmine - simulates speeding down a rocky mineshaft, or a funky dancing worm
 [\-install] [\-noinstall] [\-visual \fIvisual\fP] [\-wire] [\-nowire]
 [\-worm]
 [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-darkground \fIcolor\fP] [\-lightground \fIcolor\fP] [\-tunnelend \fIcolor\fP] [\-delay \fImicroseconds\fP] [\-maxspeed \fInumber\fP] [\-thrust \fInumber\fP] [\-gravity \fInumber\fP] [\-vertigo \fInumber\fP] [\-terrain] [\-noterrain] [\-smoothness \fInumber\fP] [\-curviness \fInumber\fP] [\-twistiness \fInumber\fP] [\-widening] [\-nowidening] [\-bumps] [\-nobumps] [\-bonuses] [\-crosshair] [\-nocrosshair] [\-psychedelic] [\-nopsychedelic]
+[\-fps]
 .SH DESCRIPTION
 .TP 8
 Speedmine!
@@ -196,6 +197,9 @@ rainbow of colours.
 .B -nopsychedelic
 Specifies that a normal colormap should be used, with muted walls and a
 grey road.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH RESOURCES
 .EX
 Option            Resource               Default Value
index 2484effcc690cb05a76e6af9ad172e8b6c3e91dc..468a648d07a8f87ec3eb3618f9f870202b6627b8 100644 (file)
@@ -58,10 +58,12 @@ static const char sccsid[] = "@(#)sphere.c  5.00 2000/11/01 xlockmore";
 
 #ifdef STANDALONE
 # define MODE_sphere
-#define DEFAULTS       "*delay: 1000 \n" \
+#define DEFAULTS       "*delay: 20000 \n" \
                                        "*cycles: 20 \n" \
                                        "*size: 0 \n" \
-                                       "*ncolors: 64 \n"
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define BRIGHT_COLORS
 # define reshape_sphere 0
 # define sphere_handle_event 0
index 1632ab9e9f71f598ae408cc529d2ad97d9db0094..d44c2fba19349a7fac417733d7b71fdfd3fe5251 100644 (file)
@@ -5,6 +5,7 @@ sphere - draws shaded spheres
 .B sphere
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIsphere\fP program draws shaded spheres.
 .SH OPTIONS
@@ -30,6 +31,9 @@ or the id number (decimal or hex) of a specific visual.
 .B \-ncolors \fIinteger\fP
 How many colors should be used (if possible).  Default 64.
 The colors are chosen randomly.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 5f886df0d6e248a69c0c967ef94fa1035bda8901..7a2a302995d7baaad2d0f5f8751e075dda444713 100644 (file)
@@ -38,7 +38,9 @@ static const char sccsid[] = "@(#)spiral.c    5.00 2000/11/01 xlockmore";
 #define DEFAULTS       "*delay: 50000 \n" \
                                        "*count: 40 \n" \
                                        "*cycles: 350 \n" \
-                                       "*ncolors: 64 \n"
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define SMOOTH_COLORS
 # define reshape_spiral 0
 # define spiral_handle_event 0
index a32db1e8e828214e1d41e3435fff0b72089ec97d..cf9eb6f75748343a41ab08b7f0136715be2f92d0 100644 (file)
@@ -5,6 +5,7 @@ spiral - draws moving circular spiral patterns
 .B spiral
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP] [\-count \fIinteger\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIspiral\fP program draws moving circular spiral patterns
 .SH OPTIONS
@@ -37,6 +38,9 @@ Default 40.
 .B \-cycles \fIinteger\fP
 Default 350.
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 57519e7f72105ba4178f175df1dd1822df0c9b47..19663c01a13689d10f1563a40f1980f7e1ab678b 100644 (file)
@@ -304,6 +304,7 @@ static const char *spotlight_defaults [] = {
   ".background:                        black",
   ".foreground:                        white",
   "*dontClearRoot:             True",
+  "*fpsSolid:                  true",
 
 #ifdef __sgi   /* really, HAVE_READ_DISPLAY_EXTENSION */
   "*visualID:                  Best",
index 7984ff6b544d65cd8866b2dfbb68d1ba6e804022..770a3e8b1f9eb481b1341bff7a1afb25882f5e74 100644 (file)
@@ -9,6 +9,7 @@ spotlight - move spotlight around desktop
 [\-delay \fIusecs\fP]
 [\-duration \fIsecs\fP]
 [\-radius \fIpixels\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIspotlight\fP program takes an image and exposes small sections
 of it as if through a wandering spotlight beam.
@@ -49,6 +50,9 @@ How long to run before loading a new image.  Default 120 seconds.
 .TP 8
 .B \-radius \fIpixels\fP
 Radius of the spotlight in pixels.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 3e13116e534e0c63219bf884362c10fd0100d0fd..7dff6d8ae1666133daf78a4ffc3ad8bea9bef374 100644 (file)
@@ -238,13 +238,14 @@ squiral_free (Display *dpy, Window window, void *closure)
 static const char *squiral_defaults[] = {
   ".background: black",
   ".foreground: white",
+  "*fpsSolid:  true",
   "*fill:       75",
   "*count:      0",
   "*ncolors:    100",
-  "*delay:      1000",
+  "*delay:      10000",
   "*disorder:   0.005",
   "*cycle:      False",
-  "*handedness: .5",
+  "*handedness: 0.5",
   0
 };
 
index 9e3ce5fad1b4b340c1be9870b8e575b30a8f3fbb..a34728b7d0a197eb99b7f68dd63a69991a30b42a 100644 (file)
@@ -8,6 +8,7 @@ squiral - square spirals screensaver
 [\-noinstall] [\-visual \fIvisual\fP] [\-fill \fIpercent\fP] [-count
 \fInumber\fP] [-delay \fIusec\fP] [-disorder \fIfraction\fP] [-handedness
 \fIfraction\fP] [-cycle]
+[\-fps]
 .SH DESCRIPTION
 The \fIsquiral\fP program displays interacting, spiral-producing automata
 
@@ -49,6 +50,9 @@ The default is 0.005.
 The fraction of the time a squiraly will choose to enter lefthanded
 mode.  0.0 means exclusively right-handed behavior, 0.5 (the default) is
 a balance between the two, and 1.0 is exclusively left-handed behaviour.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index b192e280dcbbab4a7481dc05b963275cd671ab24..2ba693c0811a18ca032a0e8b9eb18503fced0b16 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1997-2007 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1997-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -514,6 +514,7 @@ starfish_free (Display *dpy, Window window, void *closure)
 static const char *starfish_defaults [] = {
   ".background:                black",
   ".foreground:                white",
+  "*fpsSolid:          true",
   "*delay:             10000",
   "*thickness:         0",             /* pixels, 0 = random */
   "*rotation:          -1",            /* degrees, -1 = "random" */
index afd1194c97efc1cd1f8caf460f1e1dc1c02e4262..306f66c09ed0d1bb5f9b88cbfa2f1d678ecd297f 100644 (file)
@@ -4,6 +4,7 @@ starfish - radially-symmetric throbbing colormap-hacking graphics demo
 .SH SYNOPSIS
 .B starfish
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-delay \fIusecs\fP] [\-delay2 \fIsecs\fP] [\-thickness \fIpixels\fP] [\-rotation \fIdegrees\fP] [\-duration \fIseconds\fP] [\-colors \fIint\fP] [\-blob] [\-no\-blob]
+[\-fps]
 .SH DESCRIPTION
 The \fIstarfish\fP program draws radially symmetric objects, which expand,
 contract, rotate, and turn inside out.  It uses these shapes to lay down a
@@ -56,6 +57,9 @@ Default 5 seconds.
 .B \-no\-blob
 If \fIblob\fP option is specified, then the raw shapes will be shown, 
 instead of a field of colors generated from them.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index ea19c9b91601cc9a531904a8d275fe6da5181610..b5f3795092ca94ec1a4b837352347a83652c24c2 100644 (file)
@@ -31,8 +31,10 @@ static const char sccsid[] = "@(#)strange.c  5.00 2000/11/01 xlockmore";
 
 #ifdef STANDALONE
 # define MODE_strange
-# define DEFAULTS      "*delay: 2000 \n" \
-                                       "*ncolors: 100 \n"
+# define DEFAULTS      "*delay: 10000 \n" \
+                                       "*ncolors: 100 \n" \
+                                       "*fpsClear: True \n"
+
 # define SMOOTH_COLORS
 # define refresh_strange 0
 # define reshape_strange 0
index b926fa7634e74de8c986d593aaee32a12f911b71..318f630cf03ab0b0f68d736099ac1577783ad06d 100644 (file)
@@ -5,6 +5,7 @@ strange - draws strange attractors
 .B strange
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIstrange\fP program draws strange attractors
 .SH OPTIONS
@@ -30,6 +31,9 @@ or the id number (decimal or hex) of a specific visual.
 .B \-ncolors \fIinteger\fP
 How many colors should be used (if possible).  Default 100.
 The colors are chosen randomly.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 2ca25a99e456ba246ea3041dc5dacced000bd7dd..6b0cb823bfe0c2ca9112fce1d34f04a1617991f7 100644 (file)
@@ -710,6 +710,7 @@ substrate_free (Display *dpy, Window window, void *closure)
 static const char *substrate_defaults[] = {
     ".background: white",
     ".foreground: black",
+    "*fpsSolid:        true",
     "*wireFrame: false",
     "*maxCycles: 10000",
     "*growthDelay: 18000",
index 33af91bea2f2f65577dfe4caea1f0c35e6e869b6..54de179b17cb6347b23548bc8b93b6bf339be413 100644 (file)
@@ -13,6 +13,7 @@ substrate - Grow crystal-like lines on a computational substrate
 [\-max\-cracks \fInummax\fP]
 [\-sand\-grains \fInumgrains\fP]
 [\-circle\-percent \fIcirclepercent\fP]
+[\-fps]
 .SH DESCRIPTION
 Lines like crystals grow on a computational substrate.  A simple 
 perpendicular growth rule creates intricate city-like structures.  Optionally, cracks may also be circular, producing a cityscape more familiar to places for which city planning is a distant, theoretical concern.
@@ -46,6 +47,9 @@ a denser colour but use more cpu power.
 .TP 8
 .B \-circle-percent \fIcirclepercent\fP (Default: \fI0\fP)
 The percentage of the cracks will be circular.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index dbeb9c187d213b1cbcfab105756f3509fe1fcc7e..5a3d97a2a5dcabf626fac89523a6f359d9ebab0c 100644 (file)
@@ -33,7 +33,9 @@ static const char sccsid[] = "@(#)swirl.c     4.00 97/01/01 xlockmore";
 # define DEFAULTS      "*count:                5       \n"                     \
                                        "*delay:                10000   \n"                     \
                                        "*ncolors:              200     \n"                     \
-                                       "*useSHM:               True    \n"
+                                       "*useSHM:               True    \n" \
+                                       "*fpsSolid:             true    \n" \
+
 # define SMOOTH_COLORS
 # define WRITABLE_COLORS
 # define reshape_swirl 0
index bf958392d28b98c3d35cd6565bb3089f5635f4ef..decbaf08f6e74c821a52d884bc8d14a0595e1476 100644 (file)
@@ -10,6 +10,7 @@ swirl - draws swirly color-cycling patterns
 [\-delay \fImicroseconds\fP]
 [\-count \fIinteger\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIswirl\fP program draws swirly color-cycling patterns.
 .SH OPTIONS
@@ -37,6 +38,9 @@ How many colors should be used (if possible).  Default 200.
 .TP 8
 .B \-count \fIinteger\fP
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 65beb6d92aa35a928cca7f264246066c2b39be5c..cbd815cdd8d04942c4fe3409699af83eefbf934e 100644 (file)
@@ -938,7 +938,7 @@ static const char *t3d_defaults [] = {
   "*move:      0.5",
   "*wobble:    2.0",
   "*cycle:     10.0",
-  "*mag:       1",
+  "*mag:       1.0",
   "*minutes:   False",
   "*delay:      40000",
   "*fast:      50",
index e445bfe5c2c66f7344d1027425418fd9afa9b394..0db943b8c7d58049e0138e23cdbb5b8733e63f17 100644 (file)
@@ -89,7 +89,9 @@ Rotates the hue axis every 10 seconds*
 .TP
 .B -help
 Prints a short usage message.
-
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .PP
 .SH AUTHOR
 .PP
index 28a98db2404b475fa6be33ad4459d833d104bbef..2ba401616963122931d0d5220e78f7c7197d7f47 100644 (file)
@@ -34,7 +34,9 @@ static const char sccsid[] = "@(#)thornbird.c 5.00 2000/11/01 xlockmore";
 #define DEFAULTS       "*delay:    10000 \n" \
                                        "*count:    100   \n" \
                                         "*cycles:  400   \n" \
-                                        "*ncolors: 64    \n"
+                                        "*ncolors: 64    \n" \
+                                        "*fpsSolid: true    \n" \
+
 # define BRIGHT_COLORS
 # define reshape_thornbird 0
 # define thornbird_handle_event 0
index 1f5755c1e26dc595d4501ac74b8ab5e2c1063a08..e063b1a1349eb000e3e6dbc4cc7deda050db6ac2 100644 (file)
@@ -11,6 +11,7 @@ thornbird - Bird in a Thornbush fractal.
 [\-cycles \fInumber\fP]
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Displays a view of the "Bird in a Thornbush" fractal.
 .SH OPTIONS
@@ -36,6 +37,9 @@ Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
 .TP 8
 .B \-ncolors \fInumber\fP
 Number of Colors.  Default: 64.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 1ccc5264ee3c3dba6806357e7d71a83b0d1e00b5..9915b36e14335b0b7d00cc7c50981f20785443f6 100644 (file)
@@ -47,7 +47,9 @@ static const char sccsid[] = "@(#)triangle.c  4.04 97/07/28 xlockmore";
 
 #ifdef STANDALONE
 # define DEFAULTS      "*delay: 10000 \n"      \
-                                       "*ncolors: 128 \n"
+                                       "*ncolors: 128 \n" \
+                                       "*fpsSolid: true \n" \
+
 # define SMOOTH_COLORS
 # define reshape_triangle 0
 # define triangle_handle_event 0
index 4159f2065e9cfedcace964fd6bfe331441146508..ec8eadc8a607cb39c2ea767b3cb19abaa739af45 100644 (file)
@@ -9,6 +9,7 @@ triangle - random mountains using iterative subdivision of triangles.
 [\-root]
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Generates random mountain ranges using iterative subdivision of triangles.
 .SH OPTIONS
@@ -28,6 +29,9 @@ Per-frame delay, in microseconds.  Default: 10000 (0.01 seconds.).
 .TP 8
 .B \-ncolors \fInumber\fP
 Number of Colors.  Default: 128.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index e34ef5caf75de8ce40f73f36428caaa13618a99c..b23b081de89f040add001cad7cbb290ed6600bb2 100644 (file)
@@ -53,7 +53,7 @@ static const char *truchet_defaults [] = {
   "*erase:                    True",
   "*eraseCount:               25",        
   "*square:                   True",
-  "*delay:                    1000",
+  "*delay:                    400000",
   "*curves:                   True",
   "*angles:                   True",
   "*scroll:                   False",
@@ -501,8 +501,7 @@ truchet_draw (Display *dpy, Window window, void *closure)
 
   XCopyArea(st->dpy,st->frame,st->window,st->agc,0,0,st->xgwa.width,st->xgwa.height,0,0);
 
-  /*printf("%d\n",st->delay);*/
-  return st->delay*1000;
+  return st->delay;
 }
 
 static void
index b077ab0b88279723aa2a3d24324b92d36cf79c87..493643e4cd82d2d5b085b3141ad881c7b272fd6d 100644 (file)
@@ -11,6 +11,7 @@ truchet - draws curved or angular Truchet patterns
 [\-no\-curves] [\-angle] [\-no\-angles] [\-scroll] [\-scroll\-overlap \fIinteger\fP] 
 [\-anim\-delay \fIinteger\fP] [\-anim\-step\-size \fIinteger\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fItruchet\fP program draws arc and line based Truchet patterns.
 .SH OPTIONS
@@ -110,6 +111,9 @@ The time to pause between each animation step. Default is 100.
 The amount of steps to skip between each animation step. Default is 3.
 
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index bdb572b2b33d5b0fef8fc91492d022311657c766..3e6b06a5c777205fa533e51ffce6bb70e21fc519 100644 (file)
@@ -22,6 +22,7 @@ twang - pluck pieces of the screen
 [\-springiness \fIfraction\fP]
 [\-tile-size \fIinteger\fP]
 [\-transference \fIfraction\fP]
+[\-fps]
 .SH DESCRIPTION
 \fITwang\fP divides the screen into equal-sized tiles, and then plucks
 them in various ways. Tiles are affected by their neighbors, so waves
@@ -95,6 +96,9 @@ How much a tile's neighbors affect it, in the range 0..1.
 This is the fraction of an orientation of a neighbor that gets turned 
 into a velocity in the same direction Defaults to 0.025, resource 
 \fItransference\fP.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 26011446cf4e9709842d6fcbea294abedc710f02..6387a42a4909d38c05ea00b11cead074e8186996 100644 (file)
@@ -1198,6 +1198,7 @@ vermiculate_free (Display *dpy, Window window, void *closure)
 static const char *vermiculate_defaults[] = {
   ".background: Black",
   "*ticks: 20000",
+  "*fpsSolid:  true",
   "*speed: 0",
   "*instring: ",
   0
index f6e4b5da335570c30cc3710101a565689f35a256..cbb9077afb3d7504c8fd0f800785bae23f5a2caa 100644 (file)
@@ -7,6 +7,7 @@ vermiculate - to move in a worm-like manner.
 [\-visual \fIvisual\fP]
 [\-window]
 [\-root]
+[\-fps]
 .SH DESCRIPTION
 Draws squiggly worm-like paths.
 .SH OPTIONS
@@ -20,6 +21,9 @@ Draw on a newly-created window.  This is the default.
 .TP 8
 .B \-root
 Draw on the root window.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 6e9f62ac73b5c2960ca435544026e91197aa11c3..8c2505bc6fc3a3e2fbfc4b696476f4faf0f5fa48 100644 (file)
@@ -6,6 +6,7 @@ vidwhacker - grab images and apply random filters to them
 [\-display \fIhost:display.screen\fP] [\-root] [\-verbose]
 [\-stdin] [\-stdout] [\-delay seconds]
 [-directory \fIdirectory\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIvidwhacker\fP program grabs an image from disk, or  from the
 system's video input, then applies random image filters to it, and
@@ -49,6 +50,9 @@ image on stdout, and exit.
 .B \-directory \fIdirectory\fP
 Use this directory instead of the \fBimageDirectory\fP specified in 
 the \fI~/.xscreensaver\fP file.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 2000cc9aba9c55ad492a8ff4b10d50e902da6388..c24807803c7d90e5e5b951dc9174e01a5ba03edb 100644 (file)
@@ -47,7 +47,9 @@ static const char sccsid[] = "@(#)vines.c     5.00 2000/11/01 xlockmore";
 # define MODE_vines
 # define DEFAULTS      "*delay: 200000 \n" \
                                        "*count: 0 \n" \
-                                       "*ncolors: 64 \n"
+                                       "*ncolors: 64 \n" \
+                                       "*fpsSolid: true \n" \
+
 # include "xlockmore.h"                /* in xscreensaver distribution */
 # define reshape_vines 0
 # define vines_handle_event 0
index 1c21ca0fcee486d398075d90ec0fe202f1de68d8..45e79852fe53aa25307e378dc11527fc73bc3667 100644 (file)
@@ -5,6 +5,7 @@ vines - draws pseudo-fractal geometric patterns
 .B vines
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIinteger\fP] [\-delay \fImicroseconds\fP]
 
+[\-fps]
 .SH DESCRIPTION
 The \fIvines\fP program is yet another geometric pattern generator, this
 one's claim to fame being a pseudo-fractal looking vine like pattern that
@@ -32,6 +33,9 @@ or the id number (decimal or hex) of a specific visual.
 .B \-ncolors \fIinteger\fP
 How many colors should be used (if possible).  Default 64.
 The colors are chosen randomly.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 9cdd090bd182a4ba06b0ac0afd2b0e5a277a43d9..6b8819a9ae0fb47d2654951694c70549e3994069 100644 (file)
@@ -227,6 +227,7 @@ static const char *wander_defaults [] =
 {
     ".background: black",
     ".foreground: white",
+    ".fpsSolid:          true",
     ".advance:    1",
     ".density:    2",
     ".length:     25000",
index 5755ce82b60f1dc6fcefa2dc42850242f564766f..497d35e6f37c4c41d80addf48542b0d1ebf334b1 100644 (file)
@@ -14,6 +14,7 @@ wander - colorful random-walk.
 [\-circles]
 [\-size \fInumber\fP]
 [\-advance \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Draws a colorful random-walk, in various forms.
 .SH OPTIONS
@@ -48,6 +49,9 @@ Size.  0 - 100.  Default: 1.
 .TP 8
 .B \-advance \fInumber\fP
 Color Contrast.  1 - 100.  Default: 1.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 8e5b78f6795fcd38e3d5712e2899b21cd5e83f8c..c26dd15ec369fbaa9b5a7a0b7eb137f9bab8fd66 100755 (executable)
@@ -60,7 +60,7 @@ use bytes;  # Larry can take Unicode and shove it up his ass sideways.
 
 
 my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.142 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 1.143 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
 my $copyright = "WebCollage $version, Copyright (c) 1999-2005" .
     " Jamie Zawinski <jwz\@jwz.org>\n" .
     "            http://www.jwz.org/webcollage/\n";
@@ -3263,7 +3263,7 @@ sub paste_image($$$$) {
       # the next network retrieval, which is probably a better thing
       # to do anyway.
       #
-      $cmd .= " &";
+      $cmd .= " &" unless ($cocoa_p);
 
       $rc = nontrapping_system ($cmd);
 
index 4df2c05b12f4086112c311f5fdd7c8ffd30d50ab..c9f628abbb695c094b2e2ade301ad2fd168ec73b 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -23,6 +23,7 @@
 
 #include <math.h>
 #include <unistd.h>
+#include <stdlib.h>
 #include <signal.h>
 #import <Cocoa/Cocoa.h>
 
@@ -41,6 +42,17 @@ typedef struct {
 } state;
 
 
+/* Violating the cardinal rule of "don't use global variables",
+   but we need to get at these from the atexit() handler, and
+   the callback doesn't take a closure arg.  Because apparently
+   those hadn't been invented yet in the seventies.
+ */
+static state *all_states[50] = { 0, };
+
+static void webcollage_atexit (void);
+static void signal_handler (int sig);
+
+
 static void
 subproc_cb (XtPointer closure, int *source, XtInputId *id)
 {
@@ -76,7 +88,7 @@ display_image (state *st, const char *file)
                                           encoding: kCFStringEncodingUTF8]];
 
   if (! image) {
-    fprintf (stderr, "%s: failed to load \"%s\"\n", progname, file);
+    fprintf (stderr, "webcollage: failed to load \"%s\"\n", file);
     return;
   }
 
@@ -135,7 +147,7 @@ open_pipe (state *st)
 
 
   if (st->verbose_p) {
-    fprintf (stderr, "%s: launching:", progname);
+    fprintf (stderr, "webcollage: launching:");
     int i;
     for (i = 0; i < ac; i++)
       fprintf (stderr, " %s", av[i]);
@@ -145,7 +157,7 @@ open_pipe (state *st)
 
   if (pipe (fds))
     {
-      perror ("error creating pipe:");
+      perror ("webcollage: error creating pipe");
       exit (1);
     }
 
@@ -156,8 +168,7 @@ open_pipe (state *st)
     {
     case -1:
       {
-        sprintf (buf, "%s: couldn't fork", progname);
-        perror (buf);
+        perror ("webcollage: couldn't fork");
         exit (1);
       }
     case 0:
@@ -178,7 +189,7 @@ open_pipe (state *st)
           {
             /* Ignore "no such file or directory" errors, unless verbose.
                Issue all other exec errors, though. */
-            sprintf (buf, "%s: %s", progname, av[0]);
+            sprintf (buf, "webcollage: %s", av[0]);
             perror (buf);
           }
 
@@ -202,7 +213,7 @@ open_pipe (state *st)
                    subproc_cb, (XtPointer) st);
 
   if (st->verbose_p)
-    fprintf (stderr, "%s: subprocess pid: %d\n", progname, st->pid);
+    fprintf (stderr, "webcollage: subprocess pid: %d\n", st->pid);
 }
 
 
@@ -210,14 +221,44 @@ static void *
 webcollage_init (Display *dpy, Window window)
 {
   state *st = (state *) calloc (1, sizeof(*st));
+  int i;
   st->dpy = dpy;
   st->window = window;
   XGetWindowAttributes (st->dpy, st->window, &st->xgwa);
 
   st->delay = 1000000;  /* check once a second */
 
+  // Log to syslog when FPS is turned on.
+  st->verbose_p = get_boolean_resource (dpy, "doFPS", "DoFPS");
+
+
+  static int done_once = 0;
+  if (! done_once) {
+    done_once = 1;
+
+    if (atexit (webcollage_atexit)) {  // catch calls to exit()
+      perror ("webcollage: atexit");
+      exit (-1);
+    }
+
+    int sigs[] = { SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGTRAP, SIGABRT,
+                   SIGFPE, SIGBUS, SIGSEGV, SIGSYS, /*SIGPIPE,*/
+                   SIGALRM, SIGTERM };
+    for (i = 0; i < sizeof(sigs)/sizeof(*sigs); i++) {
+      if (signal (sigs[i], signal_handler)) {
+        perror ("webcollage: signal");
+        exit (1);
+      }
+    }
+  }
+
+
   open_pipe (st);
 
+  i = 0;
+  while (all_states[i]) i++;
+  all_states[i] = st;
+
   return st;
 }
 
@@ -245,7 +286,7 @@ webcollage_draw (Display *dpy, Window window, void *closure)
       st->pipe_fd = 0;
 
       if (st->verbose_p)
-        fprintf (stderr, "%s: subprocess has exited: bailing.\n", progname);
+        fprintf (stderr, "webcollage: subprocess has exited: bailing.\n");
 
       return st->delay * 10;
     }
@@ -278,23 +319,65 @@ webcollage_event (Display *dpy, Window window, void *closure, XEvent *event)
 }
 
 
+static void
+webcollage_atexit (void)
+{
+  int i = 0;
+
+  if (all_states[0] && all_states[0]->verbose_p)
+    fprintf (stderr, "webcollage: atexit handler\n");
+
+  while (all_states[i]) {
+    state *st = all_states[i];
+    if (st->pid) {
+      if (st->verbose_p)
+        fprintf (stderr, "webcollage: kill %d\n", st->pid);
+      if (kill (st->pid, SIGTERM) < 0) {
+        fprintf (stderr, "webcollage: kill (%d, TERM): ", st->pid);
+        perror ("webcollage: kill");
+      }
+      st->pid = 0;
+    }
+    all_states[i] = 0;
+    i++;
+  }
+}
+
+
+static void
+signal_handler (int sig)
+{
+  if (all_states[0] && all_states[0]->verbose_p)
+    fprintf (stderr, "webcollage: signal %d\n", sig);
+  webcollage_atexit ();
+  exit (sig);
+}
+
+
+/* This is important because OSX doesn't actually kill the screen savers!
+   It just sends them a [ScreenSaverView stopAnimation] method.  Were
+   they to actually exit, the resultant SIGPIPE should reap the children,
+   but instead, we need to do it here.
+
+   On top of that, there's an atexit() handler because otherwise the
+   inferior perl script process was failing to die when SaverTester or
+   System Preferences exited.  I don't pretend to understand.
+
+   It still fails to clean up when I hit the stop button in Xcode.
+   WTF.
+ */
 static void
 webcollage_free (Display *dpy, Window window, void *closure)
 {
   state *st = (state *) closure;
 
+  if (st->verbose_p)
+    fprintf (stderr, "webcollage: free cb\n");
+
   // Dammit dammit dammit!  Why won't this shit die when we pclose it!
 //  killpg (0, SIGTERM);
 
-  if (st->pid) {
-    if (st->verbose_p)
-      fprintf (stderr, "%s: kill %d\n", progname, st->pid);
-    if (kill (st->pid, SIGTERM) < 0) {
-      fprintf (stderr, "%s: kill (%d, TERM): ", progname, st->pid);
-      perror ("kill");
-    }
-    st->pid = 0;
-  }
+  webcollage_atexit();
 
   if (st->pipe_id)
     XtRemoveInput (st->pipe_id);
index 3fef27823ef46af3258829a8eff1ea875c8f538d..ef696e24e8a1e0449f8ad88335d9923d343d2037 100644 (file)
@@ -33,6 +33,7 @@ webcollage - decorate the screen with random images from the web
 [\-http\-proxy host[:port]]
 [\-dictionary \fIdictionary-file\fP]
 [\-driftnet [\fIcmd\fP]]
+[\-fps]
 .SH DESCRIPTION
 The \fIwebcollage\fP program pulls random image off of the World Wide Web
 and scatters them on the root window.  One satisfied customer described it
@@ -169,6 +170,9 @@ Driftnet version 0.1.5 or later is required.  Note that
 the \fIdriftnet\fP program requires root access, so you'll have
 to make \fIdriftnet\fP be setuid-root for this to work.
 Please exercise caution.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index d76d5ed250c39746a0bdc9e89a0155cf63232d2c..47939ffef11de9484ff6ab2545347538eab872b3 100644 (file)
@@ -482,6 +482,7 @@ whirlwindwarp_free (Display *dpy, Window window, void *closure)
 static const char *whirlwindwarp_defaults [] = {
   ".background:        black",
   ".foreground:        white",
+  "*fpsSolid:  true",
   "*points:    400",
   "*tails:     8",
   "*meters:    false",
@@ -495,4 +496,4 @@ static XrmOptionDescRec whirlwindwarp_options [] = {
   { 0, 0, 0, 0 }
 };
 
-XSCREENSAVER_MODULE ("Whirlwindwarp", whirlwindwarp)
+XSCREENSAVER_MODULE ("WhirlWindWarp", whirlwindwarp)
index 1d0351eb0ae5a288d36fdb60e37ec2b33cb6a9d7..8cd054fe84bc9978e1db2c4c17a65d525fc0c440 100644 (file)
@@ -4,6 +4,7 @@ whirlwindwarp - crazy moving stars
 .SH SYNOPSIS
 .B whirlwindwarp
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-points \fIinteger\fP] [\-tails \fIinteger\fP]
+[\-fps]
 .SH DESCRIPTION
 \fIwhirlwindwarp\fP plots stars moving according to various forcefields
 (simple 2D equations).
@@ -35,6 +36,9 @@ The number of stars plotted (default 400).
 .TP 8
 .B \-tails \fIinteger\fP
 The length of the tail of each star (default 8).
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index d4205bf8b141c3165b2b0ff028ec8e5dbae93900..95108684e3c673fb0f7de839ade5825af993c2a2 100644 (file)
@@ -406,7 +406,7 @@ whirlygig_init (Display *dpy, Window window)
     st->info->half_width = st->xgwa.width / 2;
     st->info->half_height = st->xgwa.height / 2;
     st->info->speed = get_integer_resource(st->dpy, "speed" , "Integer");
-    st->info->trail = get_integer_resource(st->dpy, "trail", "Integer");
+    st->info->trail = get_boolean_resource(st->dpy, "trail", "Integer");
     st->info->color_modifier = get_integer_resource(st->dpy, "color_modifier", "Integer");
     st->info->xoffset = get_float_resource(st->dpy, "xoffset", "Float");
     st->info->yoffset = get_float_resource(st->dpy, "yoffset", "Float");
@@ -659,6 +659,7 @@ whirlygig_free (Display *dpy, Window window, void *closure)
 static const char *whirlygig_defaults [] = {
   ".background: black",
   ".foreground: white",
+  "*fpsSolid:  true",
   "*xspeed: 1.0",
   "*yspeed: 1.0",
   "*xamplitude: 1.0",
@@ -668,7 +669,7 @@ static const char *whirlygig_defaults [] = {
   "*xmode: change",
   "*ymode: change",
   "*speed: 1",
-  "*trail: 0",
+  "*trail: false",
   "*color_modifier: -1",
   "*start_time: -1",
   "*explain: False",
@@ -704,7 +705,7 @@ static XrmOptionDescRec whirlygig_options [] = {
   { "-ymode",       ".ymode", XrmoptionSepArg, 0 },
   { "-speed",        ".speed", XrmoptionSepArg, 0 },
       /*  This will modify how often it should draw, changing it will probably suck */
-  { "-trail",           ".trail", XrmoptionSepArg, 0 },
+  { "-trail",           ".trail", XrmoptionNoArg, "True" },
       /* Control whether or not you want the old circles to be erased */
   { "-color_modifier",          ".color_modifier", XrmoptionSepArg, 0 },
       /*  How many colors away from the current should the next whirly be? */
index cdaf48e4c573f7ba594de6bdf6a4ba2c5364939d..9a60ef33e75c66df4f5d8f14cc591f26db0e93eb 100644 (file)
@@ -10,6 +10,7 @@ whirlygig -- zooming chains of sinusoidal spots
 [\-color_modifier arg] [\-start_time arg] [\-explain 1|0]
 [\-wrap 1|0] [\-db] [\-no-db] 
 
+[\-fps]
 .SH DESCRIPTION
 The \fIwhirlygig\fP program draws a series of circles on your screen.
 They then move about in a cyclic pattern
@@ -109,6 +110,9 @@ well. If the resource 'useDBEClear' is true, whirlies are not
 individually erased, so the -trail option won't work, and running
 multiple instances on the root window will flicker. 
 
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 64bef616b3a69a1d200811d33ca2ad293a84e620..1afd5c85503d5ce1f2b86892dc9626df35957005 100644 (file)
@@ -48,7 +48,9 @@ static const char sccsid[] = "@(#)worm.c      4.04 97/07/28 xlockmore";
                                        "*right3d: red \n"              \
                                        "*left3d:  blue \n"             \
                                        "*both3d:  magenta \n"  \
-                                       "*none3d:  black \n"
+                                       "*none3d:  black \n" \
+                                       "*fpsSolid:  true \n" \
+
 # define SMOOTH_COLORS
 # define reshape_worm 0
 # define worm_handle_event 0
index ac119611df56141648235629cefe18162506ba88..d9698b569f0ce8bcd9b634a6312dfeb0269952ce 100644 (file)
@@ -11,6 +11,7 @@ worm - multicolored worms that crawl around the screen.
 [\-delay \fInumber\fP]
 [\-ncolors \fInumber\fP]
 [\-size \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 An ancient hack that draws multicolored worms that crawl around the screen.
 .SH OPTIONS
@@ -36,6 +37,9 @@ Number of Colors.  Default: 150.
 .TP 8
 .B \-size \fInumber\fP
 Size.  -20 - 20.  Default: -3.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 8833534983e7bf1079d874378776146433868a26..f3287fae3d6474334d4555910eb219b71cb7a51d 100644 (file)
@@ -10,6 +10,7 @@ wormhole - animation of flying through a wormhole
 [\-stars \fIn\fP]
 [\-delay \fIusecs\fP]
 [\-zspeed \fIn\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIwormhole\fP program shows an animation of flying through a tunnel surrounded by streaks of light.
 .SH OPTIONS
@@ -41,6 +42,9 @@ Speed light streaks fly by.
 .B \-delay \fImicroseconds\fP
 Number of microseconds to delay between each frame.  Default 10000, meaning
 about 1/100th second.  Compare and contrast with \fI\-zspeed\fP, above.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 293bdeac12b04c66eebcf63c0367ab01f2390078..79ac57b5bee2a7f8944b144b8741a01ab0a65fd2 100644 (file)
@@ -6,6 +6,7 @@ xanalogtv - Simulate reception on an old analog TV set
 [\-display \fIhost:display.screen\fP] [\-window] [\-root] [\-install]
 [\-visual \fIvisual\fP] 
 [\-cycle] [\-no-cycle]
+[\-fps]
 .SH DESCRIPTION
 .I xanalogtv
 shows a simulation of an old TV set showing test patterns and any
@@ -40,6 +41,9 @@ Install a private colormap for the window.
 .B \-visual \fIvisual\fP
 Specify which visual to use.  Legal values are the name of a visual class,
 or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index 04b82c1a96d689061722c8b59bab9932dcbe0ca7..2785fb816a49964161c9cdee4b4ae719d3307bc9 100644 (file)
@@ -774,6 +774,8 @@ xflame_free (Display *dpy, Window window, void *closure)
 static const char *xflame_defaults [] = {
   ".background:     black",
   ".foreground:     #FFAF5F",
+  "*fpsTop:        true",
+  "*fpsSolid:       true",
   "*bitmap:         (default)",
   "*bitmapBaseline: 20",
   "*delay:          10000",
index ecfa04b5769e29d656d714079d1fdbef035e1702..faba0af85a3feb324aab351ed6bb984a72101b2f 100644 (file)
@@ -10,6 +10,7 @@ xflame - draws animated flames
 [\-residual \fIint\fP] [\-variance \fIint\fP] [\-vartrend \fIint\fP] 
 [\-bloom \| \-no\-bloom] 
 [\-bitmap \fIxbm\-file\fP] [\-baseline \fIint\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIxflame\fP program draws animated flames across the bottom of the
 screen.  The flames occasionally flare up.  If a bitmap is specified,
@@ -41,6 +42,9 @@ If unspecified, a built-in image will be used.
 .PP
 The other options are arcane.  If someone would care to document them,
 that would be great.
+.TP 8
+.B \-fps
+Display the current frame rate and CPU load.
 .SH ENVIRONMENT
 .PP
 .TP 8
index ac037357e065ababec598c53c2643dd279d7622b..b101f8573a45e47a827fd808cff09e106736b968 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1997, 2006 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1997-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -452,6 +452,7 @@ xjack_free (Display *dpy, Window window, void *closure)
 static const char *xjack_defaults [] = {
   ".background:                #FFF0B4",
   ".foreground:                #000000",
+  "*fpsSolid:          true",
 #ifdef HAVE_COCOA
   ".font:              American Typewriter 24",
 #else
index 390e95fce73bac7fee63716a4a8b923eca750e10..894f9eac6c20d0e20e304ea8cfb221e560150e42 100644 (file)
@@ -4,6 +4,7 @@ xjack - all work and no play makes jack a dull boy
 .SH SYNOPSIS
 .B xjack
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-delay \fIusecs\fP]
+[\-fps]
 .SH DESCRIPTION
 All work and no play makes jack a dull boy.  All work and no play makes jack
 a dull boy.  All work and no play makes jack a dull boy.  All work and no
index 58d6acd9b3c2379ff338a431c8b5e743519e53e5..34cffeb1c60482813fbcd864def957a8cbe5c51c 100644 (file)
@@ -97,8 +97,7 @@ xlockmore_setup (struct xscreensaver_function_table *xsft, void *arg)
   /* Add extra args, if they're mentioned in the defaults... */
   {
     char *args[] = { "-count", "-cycles", "-delay", "-ncolors",
-                    "-size", "-font", "-wireframe", "-use3d", "-useSHM",
-                     "-showFPS" };
+                    "-size", "-font", "-wireframe", "-use3d", "-useSHM" };
     for (j = 0; j < countof(args); j++)
       if (strstr(xlockmore_defaults, args[j]+1))
        {
@@ -138,17 +137,6 @@ xlockmore_setup (struct xscreensaver_function_table *xsft, void *arg)
              new->argKind = XrmoptionNoArg;
              new->value = "False";
            }
-         else if (!strcmp(new->option, "-showFPS"))
-           {
-             new->option = "-fps";
-             new->argKind = XrmoptionNoArg;
-             new->value = "True";
-             new = &new_options[i++];
-             new->option = "-no-fps";
-             new->specifier = new_options[i-2].specifier;
-             new->argKind = XrmoptionNoArg;
-             new->value = "False";
-           }
          else
            {
              new->argKind = XrmoptionSepArg;
@@ -164,7 +152,7 @@ xlockmore_setup (struct xscreensaver_function_table *xsft, void *arg)
    */
   i = 0;
 
-  new_defaults = (char **) calloc (1, xlockmore_opts->numvarsdesc * 10 + 100);
+  new_defaults = (char **) calloc (1, xlockmore_opts->numvarsdesc * 10 + 1000);
 
   /* Put on the PROGCLASS.background/foreground resources. */
   s = (char *) malloc(50);
@@ -452,10 +440,10 @@ xlockmore_init (Display *dpy, Window window,
 
   mi->wireframe_p = get_boolean_resource (dpy, "wireframe", "Boolean");
   mi->root_p = root_p;
-  mi->fps_p = get_boolean_resource (dpy, "showFPS", "Boolean");
 #ifdef HAVE_XSHM_EXTENSION
   mi->use_shm = get_boolean_resource (dpy, "useSHM", "Boolean");
 #endif /* !HAVE_XSHM_EXTENSION */
+  mi->fps_p = get_boolean_resource (dpy, "doFPS", "DoFPS");
 
   if (mi->pause < 0)
     mi->pause = 0;
@@ -470,7 +458,7 @@ xlockmore_init (Display *dpy, Window window,
     if (name)
       {
         XFontStruct *f = XLoadQueryFont (dpy, name);
-        const char *def1 = "-*-times-bold-r-normal-*-180-*";
+        const char *def1 = "-*-helvetica-bold-r-normal-*-180-*";
         const char *def2 = "fixed";
         if (!f)
           {
@@ -532,14 +520,7 @@ xlockmore_event (Display *dpy, Window window, void *closure, XEvent *event)
 {
   ModeInfo *mi = (ModeInfo *) closure;
   if (mi && mi->xlmft->hack_handle_events)
-    {
-      mi->xlmft->hack_handle_events (mi, event);
-      /* Since xlockmore hacks don't tell us whether they handled the
-         event, assume they handled buttons (so we don't beep) but that
-         they didn't handle anything else (so that "q" still quits).
-       */
-      return (event->xany.type == ButtonPress);
-    }
+    return mi->xlmft->hack_handle_events (mi, event);
   else
     return False;
 }
@@ -547,15 +528,15 @@ xlockmore_event (Display *dpy, Window window, void *closure, XEvent *event)
 static void
 xlockmore_free (Display *dpy, Window window, void *closure)
 {
+  /* Most of the xlockmore/GL hacks don't have `free' functions, and of
+     those that do have them, they're incomplete or buggy.  So, fuck it.
+     Under X11, we're about to exit anyway, and it doesn't matter.
+     On OSX, we'll leak a little.  Beats crashing.
+   */
+#if 0
   ModeInfo *mi = (ModeInfo *) closure;
   if (mi->xlmft->hack_free)
     mi->xlmft->hack_free (mi);
-#ifdef USE_GL
-/* ####
-  if (mi->fps_state)
-    fps_free (mi);
- */
-#endif /* USE_GL */
 
   XFreeGC (dpy, mi->gc);
   free_colors (dpy, mi->xgwa.colormap, mi->colors, mi->npixels);
@@ -563,5 +544,6 @@ xlockmore_free (Display *dpy, Window window, void *closure)
   free (mi->pixels);
 
   free (mi);
+#endif
 }
 
index 27b5959414f740eb92a29cbf551833eb88e46a88..abb24818cc46c95135ef8d5baf799eca565107a1 100644 (file)
@@ -1,5 +1,5 @@
 /* xlockmore.h --- xscreensaver compatibility layer for xlockmore modules.
- * xscreensaver, Copyright (c) 1997-2006 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1997-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -139,6 +139,10 @@ ERROR!  Sorry, xlockmore.h requires ANSI C (gcc, for example.)
 #  define xlockmore_validate_gl_visual 0
 # endif  /* !USE_GL || HAVE_COCOA */
 
+# ifndef USE_GL
+#  define xlockmore_gl_compute_fps 0
+# endif /* !USE_GL */
+
 #ifdef WRITABLE_COLORS
 # undef WRITABLE_COLORS
 # define WRITABLE_COLORS 1
@@ -193,6 +197,7 @@ ERROR!  Sorry, xlockmore.h requires ANSI C (gcc, for example.)
           xlockmore_setup,                                             \
           & NAME ## _xlockmore_function_table,                         \
           0, 0, 0, 0, 0,                                               \
+           xlockmore_gl_compute_fps,                                   \
            xlockmore_pick_gl_visual,                                   \
           xlockmore_validate_gl_visual };                              \
                                                                        \
index 269593485075f04fa1b7d0d1d5d9a0ba09153539..7632a00cc94d81dc90e88aa9e87b9106e5e49f92 100644 (file)
@@ -1,5 +1,5 @@
 /* xlockmore.h --- xscreensaver compatibility layer for xlockmore modules.
- * xscreensaver, Copyright (c) 1997-2002, 2006 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1997-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -51,15 +51,19 @@ typedef struct ModeInfo ModeInfo;
   extern void clear_gl_error (void);
   extern void check_gl_error (const char *type);
 
-  extern void do_fps (ModeInfo *);
-  extern GLfloat fps_1 (ModeInfo *);
-  extern void    fps_2 (ModeInfo *);
-
   extern Visual *xlockmore_pick_gl_visual (Screen *);
   extern Bool xlockmore_validate_gl_visual (Screen *, const char *, Visual *);
 
 #endif /* !USE_GL */
 
+/* These are only used in GL mode, but I don't understand why XCode
+   isn't seeing the prototypes for them in glx/fps-gl.c... */
+extern void do_fps (ModeInfo *);
+extern void xlockmore_gl_compute_fps (Display *, Window, fps_state *, void *);
+extern void xlockmore_gl_draw_fps (ModeInfo *);
+# define do_fps xlockmore_gl_draw_fps
+
+
 extern void xlockmore_setup (struct xscreensaver_function_table *, void *);
 
 
@@ -100,11 +104,11 @@ struct ModeInfo {
   long threed_delta;
   Bool wireframe_p;
   Bool is_drawn;
-  
+
+  /* Used only by OpenGL programs, since FPS is tricky there. */
+  fps_state *fpst;
   Bool fps_p;
-  struct fps_state *fps_state;  /* private data for fps.c */
-  
-  unsigned long polygon_count;  /* used only by FPS display */
+  unsigned long polygon_count;
 
 #ifdef HAVE_XSHM_EXTENSION
   Bool use_shm;
index d78b81b095993f523c18bc40636e4f19c2d5ba52..cfc4f5a5e5a19b7f0fa8de159d1d144753bd0587 100644 (file)
@@ -50,6 +50,7 @@
 static const char *xlyap_defaults [] = {
   ".background:         black",
   ".foreground:         white",
+  "*fpsSolid:          true",
   "*randomize:          true",
   "*builtin:            -1",
   "*minColor:           1",
index cd6a46d6998975d3d6265f1495aca1b523069031..e0dad96abf7d8a75ae10815011b008d69d2c20f2 100644 (file)
@@ -35,6 +35,7 @@ xlyap \- display an array of Lyapunov exponents graphically
 [-x xpos]
 [-y ypos]
 .in -8n
+[\-fps]
 .SH DESCRIPTION
 \fIxlyap\fR
 generates and graphically displays an array of Lyapunov exponents for a 
index 48bdb83612bbe17fa4c2b41d8aef1043fe3f84bc..60fe09dd2b9c487dedf355b3ceaaab5a50231ac8 100644 (file)
@@ -1849,6 +1849,7 @@ xmatrix_free (Display *dpy, Window window, void *closure)
 static const char *xmatrix_defaults [] = {
   ".background:                   black",
   ".foreground:                   #00AA00",
+  "*fpsSolid:             true",
   "*matrixFont:                   large",
   "*delay:                10000",
   "*insert:               both",
index 8ab84efa92ffd4f8d5d333c25b5bf98bb8822366..ee40725d3038b645ae31d664d7af2c3d6d079faa 100644 (file)
@@ -25,6 +25,7 @@ xmatrix - simulates the computer displays from the movie
 [\-trace]
 [\-mode \fImode\fP]
 [\-phone \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIxmatrix\fP program draws dropping characters similar to what
 is seen on the computer monitors in the Wachowski brothers' film,
index f6f5a6e98e8a458646053013d4d8e4327c01069e..f53b9136a71ce23b61f86b62b20f04050baaf447 100644 (file)
@@ -61,7 +61,8 @@ from the X Consortium.
 
 static const char *xrayswarm_defaults [] ={
        ".background:           black",
-       "*delay:                0",
+       "*delay:                20000",
+       "*fpsSolid:             true",
        0
 };
 
index f24a58e5563fc4ccaa33091388c84bb68f2b1e6a..1c10a595a7035f5087d8c404d99f40c778adc6c5 100644 (file)
@@ -8,6 +8,7 @@ xrayswarm - swarms with color trails.
 [\-window]
 [\-root]
 [\-delay \fInumber\fP]
+[\-fps]
 .SH DESCRIPTION
 Draws a few swarms of critters flying around the screen, with nicely faded
 color trails behind them.
index 11bfff169ef1b48aba178d3b57796234beade826..a0e9792a8b7c833dea0aff5f76747b435f5818ca 100644 (file)
@@ -307,6 +307,7 @@ xspirograph_free (Display *dpy, Window window, void *closure)
 static const char *xspirograph_defaults [] = {
   ".background:                black",
   ".foreground:                white",
+  "*fpsSolid:          true",
   "*delay:             5",
   "*subdelay:          20000",
   "*layers:            2",
@@ -323,4 +324,4 @@ static XrmOptionDescRec xspirograph_options [] = {
   { 0, 0, 0, 0 }
 };
 
-XSCREENSAVER_MODULE ("XSpiroGraph", xspirograph)
+XSCREENSAVER_MODULE ("XSpirograph", xspirograph)
index 2175e4374953c6c21de76db896a14adee7261354..9280e80dfd4ad9b573e09f0f2f8dde05aaf96bac 100644 (file)
@@ -9,6 +9,7 @@ xspirograph - simulates the rotation of a disk inside a circular rim
 [\-subdelay \fIuseconds\fP] \r
 [\-layers \fIinteger\fP]\r
 [\-alwaysfinish] [\-noalwaysfinish]\r
+[\-fps]\r
 .SH DESCRIPTION\r
 \fIxspirograph\fP draws patterns such as those made by a\r
 spirograph, that is, the curve traced by a point on a circular\r
index 60d4ce69abbaf9b0fa4250bb3783bc023e99d6a0..d60fc0dcec009883c9a23df5000b59b8c08be919 100644 (file)
@@ -313,12 +313,10 @@ int main(int argc,char* argv[])
                "-*-character-*-r-*-*-*-600-*-*-p-*-*-*",
                "-*-helvetica-*-r-*-*-*-600-*-*-p-*-*-*",
                "-*-lucida-*-r-*-*-*-600-*-*-p-*-*-*",
-               "-*-times-*-r-*-*-*-600-*-*-p-*-*-*",
                "-*-*-*-r-*-sans-*-600-*-*-p-*-*-*",
                "-*-*-*-r-*-*-*-600-*-*-m-*-*-*",
                "-*-helvetica-*-r-*-*-*-240-*-*-p-*-*-*",
                "-*-lucida-*-r-*-*-*-240-*-*-p-*-*-*",
-               "-*-times-*-r-*-*-*-240-*-*-p-*-*-*",
                "-*-*-*-r-*-sans-*-240-*-*-p-*-*-*",
                "-*-*-*-r-*-*-*-240-*-*-m-*-*-*",
                "fixed",
index dea4ae905e67699f9c81e15f6dc9ca0596d5b56b..1954c8d03514df081ba946fc28aea4921d653e35 100644 (file)
@@ -4,6 +4,7 @@ xsublim - Display (submit) "subliminal" (conform) messages (obey)
 .SH SYNOPSIS
 .B xsublim
 [\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-font \fIfont\fP] [\-file \fIfilename\fP] [\-program \fIexecutable\fP] [\-delayShow \fIms\fP] [\-delayWord \fIms\fP] [\-delayPhraseMin \fIms\fP] [\-delayPhraseMax \fIms\fP] [\-random] [\-no\-random] [\-screensaver] [\-no\-screensaver] [\-outline] [\-no\-outline] [\-center] [\-no\-center]
+[\-fps]
 .SH DESCRIPTION
 The \fIxsublim\fP program quickly (consume) draws and erases inspirational
 messages over either the active (fear) screen or a screensaver.
index 4b35797d300094a78693d0f23e4016e4d5b46773..bee4176f2491f3f1f799a34417cbbc84f96d5cc7 100644 (file)
@@ -237,10 +237,11 @@ static const char *zoom_defaults[] = {
   "*dontClearRoot: True",
   ".foreground: white",
   ".background: #111111",
+  "*fpsSolid:  true",
 #ifdef __sgi /* really, HAVE_READ_DISPLAY_EXTENSION */
   "*visualID: Best",
 #endif
-  "*lenses:      false",
+  "*lenses:      true",
   "*delay:       10000",
   "*duration:    120",
   "*pixwidth:    10",
@@ -254,6 +255,7 @@ static const char *zoom_defaults[] = {
 
 static XrmOptionDescRec zoom_options[] = {
   { "-lenses", ".lenses", XrmoptionNoArg, "true" },
+  { "-no-lenses", ".lenses", XrmoptionNoArg, "false" },
   { "-delay", ".delay", XrmoptionSepArg, 0 },
   { "-duration",  ".duration", XrmoptionSepArg, 0 },
   { "-pixwidth", ".pixwidth", XrmoptionSepArg, 0 },
index 85cac1b2038212388d45e5f3d255a51b2bdecac2..3d8f750ca43051cad5d5d0d26c60a6aa212d7b56 100644 (file)
@@ -12,6 +12,7 @@ zoom - wander around magnified desktop
 [\-pixwidth \fIpixels\fP] [\-pixheight \fIpixels\fP]
 [\-pixspacex \fIpixels\fP] [\-pixspacey \fIpixels\fP]
 [\-lensoffsetx \fIpixels\fP] [\-lensoffsety \fIpixels\fP]
+[\-fps]
 .SH DESCRIPTION
 The \fIzoom\fP program takes an image, magnifies it, and scrolls around
 it, fatbits-style.
index 84e2cef7600ab96b1b952bf0f19994ad734964ad..7744267543ac52757749345650c1c3136a65b3a2 100644 (file)
@@ -1,4 +1,4 @@
-# Auto-generated: Sat Jul  5 19:27:06 PDT 2008
+# Auto-generated: Sun Aug  3 02:50:46 PDT 2008
 driver/demo-Gtk-conf.c
 driver/demo-Gtk-support.c
 driver/demo-Gtk-widgets.c
@@ -40,7 +40,6 @@ hacks/config/circuit.xml
 hacks/config/cloudlife.xml
 hacks/config/compass.xml
 hacks/config/coral.xml
-hacks/config/cosmos.xml
 hacks/config/crackberg.xml
 hacks/config/critical.xml
 hacks/config/crystal.xml
@@ -59,7 +58,6 @@ hacks/config/discrete.xml
 hacks/config/distort.xml
 hacks/config/dnalogo.xml
 hacks/config/drift.xml
-hacks/config/electricsheep.xml
 hacks/config/endgame.xml
 hacks/config/engine.xml
 hacks/config/epicycle.xml
@@ -68,7 +66,6 @@ hacks/config/euler2d.xml
 hacks/config/extrusion.xml
 hacks/config/fadeplot.xml
 hacks/config/fiberlamp.xml
-hacks/config/fireflies.xml
 hacks/config/fireworkx.xml
 hacks/config/flag.xml
 hacks/config/flame.xml
@@ -97,7 +94,6 @@ hacks/config/glschool.xml
 hacks/config/glslideshow.xml
 hacks/config/glsnake.xml
 hacks/config/gltext.xml
-hacks/config/goban.xml
 hacks/config/goop.xml
 hacks/config/grav.xml
 hacks/config/greynetic.xml
@@ -181,12 +177,12 @@ hacks/config/sballs.xml
 hacks/config/shadebobs.xml
 hacks/config/sierpinski.xml
 hacks/config/sierpinski3d.xml
+hacks/config/skytentacles.xml
 hacks/config/slidescreen.xml
 hacks/config/slip.xml
 hacks/config/sonar.xml
 hacks/config/speedmine.xml
 hacks/config/sphere.xml
-hacks/config/sphereeversion.xml
 hacks/config/spheremonics.xml
 hacks/config/spiral.xml
 hacks/config/spotlight.xml
@@ -219,16 +215,10 @@ hacks/config/whirlygig.xml
 hacks/config/worm.xml
 hacks/config/wormhole.xml
 hacks/config/xanalogtv.xml
-hacks/config/xaos.xml
-hacks/config/xdaliclock.xml
 hacks/config/xflame.xml
 hacks/config/xjack.xml
 hacks/config/xlyap.xml
 hacks/config/xmatrix.xml
-hacks/config/xmountains.xml
-hacks/config/xplanet.xml
 hacks/config/xrayswarm.xml
-hacks/config/xsnow.xml
 hacks/config/xspirograph.xml
-hacks/config/xteevee.xml
 hacks/config/zoom.xml
index e8ebdf591cbfd405b33610e05fef71f2c598f371..cacc1d9bf95225aa681b3cd8d890f7117ecf8852 100644 (file)
--- a/setup.com
+++ b/setup.com
@@ -137,7 +137,6 @@ $ xlyap             :== $'mydir'xlyap
 $ xmatrix      :== $'mydir'xmatrix
 $ xrayswarm    :== $'mydir'xrayswarm
 $ xspirograph  :== $'mydir'xspirograph
-$ xsublim      :== $'mydir'xsublim
 $ zoom         :== $'mydir'zoom
 $ set def [-.DRIVER]
 $ mydir  = mydisk+f$directory()
old mode 100644 (file)
new mode 100755 (executable)
index 4e7a9d40ca1184d50a60818d1722b9e2a1385e5c..e056778899ba3612060186503f45ed865663f2bf 100644 (file)
@@ -1,5 +1,5 @@
 /* erase.c: Erase the screen in various more or less interesting ways.
- * Copyright (c) 1997-2001, 2006 Jamie Zawinski <jwz@jwz.org>
+ * Copyright (c) 1997-2008 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -513,7 +513,9 @@ slide_lines (eraser_state *st)
 
   for (y = 0; y < st->height; y += h)
     {
-      if (tick & 1)
+      if (st->width <= step)
+        ;
+      else if (tick & 1)
         {
           XCopyArea (st->dpy, st->window, st->window, st->fg_gc,
                      0, y, st->width-step, h, step, y);
index e6b3c5153e81030f630ca6adb9213a2f9c3d9a57..e3d636f2417b32297ca51fa7b75d8213969ed285 100644 (file)
@@ -1,2 +1,2 @@
 static const char screensaver_id[] =
-       "@(#)xscreensaver 5.06 (16-Jul-2008), by Jamie Zawinski (jwz@jwz.org)";
+       "@(#)xscreensaver 5.07 (10-Aug-2008), by Jamie Zawinski (jwz@jwz.org)";
index 83a542515ad4a3f673483a3057b320dac5df1d06..21d0c01e6bc5cda36280bb09dcf2790ff581b797 100644 (file)
@@ -1,5 +1,5 @@
 %define        name xscreensaver
-%define        version 5.06
+%define        version 5.07
 
 Summary:       X screen saver and locker
 Name:          %{name}
index 71244f8825b51d7122c058813a47491d2583d1df..c2971306f64144b5574438566dc598972ab696d2 100644 (file)
                AF083A4A099311FF00277BE9 /* atunnel.c in Sources */ = {isa = PBXBuildFile; fileRef = AF083A31099311CE00277BE9 /* atunnel.c */; };
                AF083A4B0993120900277BE9 /* atunnel.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258720988A468000655EE /* atunnel.xml */; };
                AF083A59099312B000277BE9 /* tunnel_draw.c in Sources */ = {isa = PBXBuildFile; fileRef = AF083A58099312B000277BE9 /* tunnel_draw.c */; };
+               AF0D117D0E41566300BB14A4 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; };
                AF0DC7B10C4C73F600D76972 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF0DC7B20C4C73F600D76972 /* analogtv.c in Sources */ = {isa = PBXBuildFile; fileRef = AF9D4CFA09B5AC94006E59CF /* analogtv.c */; };
                AF0DC7B50C4C73F600D76972 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
                AF0FAF2709CA712600EE1051 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; };
                AF0FAF2809CA712600EE1051 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; };
                AF0FAF2909CA712600EE1051 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; };
+               AF14EE310E3CEF1A004CBBD2 /* XScreenSaver.icns in Resources */ = {isa = PBXBuildFile; fileRef = AF14EE300E3CEF1A004CBBD2 /* XScreenSaver.icns */; };
                AF1A17660D6D6EE3008AF328 /* xscreensaver-getimage-file in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */; };
                AF1A17680D6D6EE3008AF328 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF1A176B0D6D6EE3008AF328 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
                AF480FCE09901E0400FB32B8 /* sphere.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480EBB098F649600FB32B8 /* sphere.c */; };
                AF480FCF09901E0700FB32B8 /* trackball.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480EAD098F63BE00FB32B8 /* trackball.c */; };
                AF480FD009901E0A00FB32B8 /* tube.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480ED2098F652A00FB32B8 /* tube.c */; };
-               AF480FD60990355300FB32B8 /* fps.c in Sources */ = {isa = PBXBuildFile; fileRef = AF480FD50990355300FB32B8 /* fps.c */; };
                AF4810F409909FBA00FB32B8 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
                AF4810F509909FBA00FB32B8 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
                AF4810F609909FBA00FB32B8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
                AF6427BA09A2DF09000F4CD4 /* bubbles.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258800988A468000655EE /* bubbles.xml */; };
                AF6427BE09A2DF47000F4CD4 /* bubbles-default.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6427BB09A2DF47000F4CD4 /* bubbles-default.c */; };
                AF6427BF09A2DF47000F4CD4 /* bubbles.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6427BC09A2DF47000F4CD4 /* bubbles.c */; };
+               AF69640B0E4FE3470085DBCE /* teapot.c in Sources */ = {isa = PBXBuildFile; fileRef = AFC211930E4E30C800D87B6E /* teapot.c */; };
                AF7776EA09B63ABF00EA3033 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF7776EF09B63ABF00EA3033 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
                AF7776F009B63ABF00EA3033 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
                AF9770780989D2F6001F8B92 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
                AF97707F0989D327001F8B92 /* attraction.c in Sources */ = {isa = PBXBuildFile; fileRef = AF976DFA09896BEB001F8B92 /* attraction.c */; };
                AF9770800989D32E001F8B92 /* attraction.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258710988A468000655EE /* attraction.xml */; };
-               AF9771DF0989DC88001F8B92 /* AppController.m in Sources */ = {isa = PBXBuildFile; fileRef = AFE1FD400981E32E00F7970E /* AppController.m */; };
+               AF9771DF0989DC88001F8B92 /* SaverTester.m in Sources */ = {isa = PBXBuildFile; fileRef = AFE1FD400981E32E00F7970E /* SaverTester.m */; };
                AF9772C80989DCD5001F8B92 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
-               AF9772C90989DCF8001F8B92 /* SaverTester.plist in Resources */ = {isa = PBXBuildFile; fileRef = AF9771D90989DC4A001F8B92 /* SaverTester.plist */; };
                AF9772CB0989DCFD001F8B92 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
-               AF9772E30989DFC6001F8B92 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = AF9772E10989DFC6001F8B92 /* MainMenu.nib */; };
+               AF9772E30989DFC6001F8B92 /* SaverTester.nib in Resources */ = {isa = PBXBuildFile; fileRef = AF9772E10989DFC6001F8B92 /* SaverTester.nib */; };
                AF998ED60A083A280051049D /* xscreensaver-text in Resources */ = {isa = PBXBuildFile; fileRef = AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */; };
                AF998EE10A083DB30051049D /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF998EE30A083DB30051049D /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
                AFA563B8099398F700F3E977 /* juggler3d.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC258D10988A468000655EE /* juggler3d.xml */; };
                AFA563BA0993991300F3E977 /* juggler3d.c in Sources */ = {isa = PBXBuildFile; fileRef = AFA563B90993991300F3E977 /* juggler3d.c */; };
                AFAD462309D5F4DA00AB5F95 /* grabclient.c in Sources */ = {isa = PBXBuildFile; fileRef = AFAD462209D5F4DA00AB5F95 /* grabclient.c */; };
+               AFBF893E0E41D930006A2D66 /* fps.c in Sources */ = {isa = PBXBuildFile; fileRef = AFBF893C0E41D930006A2D66 /* fps.c */; };
+               AFBF893F0E41D930006A2D66 /* fps.h in Headers */ = {isa = PBXBuildFile; fileRef = AFBF893D0E41D930006A2D66 /* fps.h */; };
+               AFBF89AF0E423FC3006A2D66 /* fps-gl.c in Sources */ = {isa = PBXBuildFile; fileRef = AFBF89AE0E423FC3006A2D66 /* fps-gl.c */; };
+               AFBF89B20E424036006A2D66 /* fpsI.h in Headers */ = {isa = PBXBuildFile; fileRef = AFBF89B10E424036006A2D66 /* fpsI.h */; };
+               AFC211950E4E30C800D87B6E /* teapot.c in Sources */ = {isa = PBXBuildFile; fileRef = AFC211930E4E30C800D87B6E /* teapot.c */; };
                AFCCCBB009BFE4B000353F4D /* rdbomb.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFCCCBAD09BFE4B000353F4D /* rdbomb.xml */; };
                AFCCCBB309BFE51900353F4D /* thornbird.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFC259230988A469000655EE /* thornbird.xml */; };
                AFCFF1D90CE4517C00C7D111 /* involute.c in Sources */ = {isa = PBXBuildFile; fileRef = AFE6A16A0CDD78EA002805BF /* involute.c */; };
                1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
                29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = OSX/main.m; sourceTree = "<group>"; };
                32CA4F630368D1EE00C91783 /* xscreensaver_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xscreensaver_Prefix.pch; path = OSX/xscreensaver_Prefix.pch; sourceTree = "<group>"; };
-               8D1107310486CEB800E47090 /* XScreenSaver.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = XScreenSaver.plist; path = OSX/XScreenSaver.plist; sourceTree = "<group>"; };
+               8D1107310486CEB800E47090 /* XScreenSaver.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = XScreenSaver.plist; path = OSX/XScreenSaver.plist; sourceTree = "<group>"; };
                AF0839A209930B6B00277BE9 /* Atlantis.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Atlantis.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF0839A909930C4900277BE9 /* atlantis.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = atlantis.c; path = hacks/glx/atlantis.c; sourceTree = "<group>"; };
                AF0839AA09930C4900277BE9 /* dolphin.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dolphin.c; path = hacks/glx/dolphin.c; sourceTree = "<group>"; };
                AF0DCA610C4CBB8E00D76972 /* voronoi.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = voronoi.xml; sourceTree = "<group>"; };
                AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.script.perl; name = "xscreensaver-text"; path = "driver/xscreensaver-text"; sourceTree = "<group>"; };
                AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.script.perl; name = "xscreensaver-getimage-file"; path = "driver/xscreensaver-getimage-file"; sourceTree = "<group>"; };
+               AF14EE300E3CEF1A004CBBD2 /* XScreenSaver.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = XScreenSaver.icns; path = OSX/XScreenSaver.icns; sourceTree = "<group>"; };
                AF1A17730D6D6EE3008AF328 /* LCDscrub.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LCDscrub.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF1A177E0D6D6F3E008AF328 /* lcdscrub.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = lcdscrub.c; path = hacks/lcdscrub.c; sourceTree = "<group>"; };
                AF1A17800D6D6F62008AF328 /* lcdscrub.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = lcdscrub.xml; sourceTree = "<group>"; };
                AF480EBB098F649600FB32B8 /* sphere.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = sphere.c; path = hacks/glx/sphere.c; sourceTree = "<group>"; };
                AF480ED1098F651C00FB32B8 /* tube.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = tube.h; path = hacks/glx/tube.h; sourceTree = "<group>"; };
                AF480ED2098F652A00FB32B8 /* tube.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = tube.c; path = hacks/glx/tube.c; sourceTree = "<group>"; };
-               AF480FD50990355300FB32B8 /* fps.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = fps.c; path = hacks/glx/fps.c; sourceTree = "<group>"; };
                AF480FE70990375900FB32B8 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
                AF4810FB09909FBA00FB32B8 /* DangerBall.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DangerBall.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF48112B0990A2C700FB32B8 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
                AF9770400989D1E6001F8B92 /* Rorschach.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Rorschach.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF97707D0989D2F6001F8B92 /* Attraction.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Attraction.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF9771D70989DC4A001F8B92 /* SaverTester.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SaverTester.app; sourceTree = BUILT_PRODUCTS_DIR; };
-               AF9771D90989DC4A001F8B92 /* SaverTester.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = SaverTester.plist; path = OSX/SaverTester.plist; sourceTree = "<group>"; };
-               AF9772E20989DFC6001F8B92 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = OSX/English.lproj/MainMenu.nib; sourceTree = "<group>"; };
+               AF9771D90989DC4A001F8B92 /* SaverTester.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = SaverTester.plist; path = OSX/SaverTester.plist; sourceTree = "<group>"; };
+               AF9772E20989DFC6001F8B92 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = OSX/English.lproj/SaverTester.nib; sourceTree = "<group>"; };
                AF998EEE0A083DB30051049D /* TopBlock.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TopBlock.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF998EF80A083E750051049D /* topblock.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = topblock.c; path = hacks/glx/topblock.c; sourceTree = "<group>"; };
                AF998EFA0A083E8C0051049D /* topblock.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = topblock.xml; sourceTree = "<group>"; };
                AFB5A06B0981F4C600871B16 /* screenhack.h */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.h; name = screenhack.h; path = hacks/screenhack.h; sourceTree = "<group>"; };
                AFB5A0ED0981FF8B00871B16 /* usleep.c */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.c; name = usleep.c; path = utils/usleep.c; sourceTree = "<group>"; };
                AFB5A0EE0981FF8B00871B16 /* usleep.h */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.h; name = usleep.h; path = utils/usleep.h; sourceTree = "<group>"; };
+               AFBF893C0E41D930006A2D66 /* fps.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = fps.c; path = hacks/fps.c; sourceTree = "<group>"; };
+               AFBF893D0E41D930006A2D66 /* fps.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = fps.h; path = hacks/fps.h; sourceTree = "<group>"; };
+               AFBF89AE0E423FC3006A2D66 /* fps-gl.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = "fps-gl.c"; path = "hacks/glx/fps-gl.c"; sourceTree = "<group>"; };
+               AFBF89B10E424036006A2D66 /* fpsI.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = fpsI.h; path = hacks/fpsI.h; sourceTree = "<group>"; };
+               AFC211930E4E30C800D87B6E /* teapot.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = teapot.c; path = hacks/glx/teapot.c; sourceTree = "<group>"; };
+               AFC211940E4E30C800D87B6E /* teapot.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = teapot.h; path = hacks/glx/teapot.h; sourceTree = "<group>"; };
                AFC254B909873AF9000655EE /* screenhackI.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = screenhackI.h; path = hacks/screenhackI.h; sourceTree = "<group>"; };
                AFC254C409882C97000655EE /* XScreenSaverView.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; name = XScreenSaverView.h; path = OSX/XScreenSaverView.h; sourceTree = "<group>"; };
                AFC254C509882C97000655EE /* XScreenSaverView.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; name = XScreenSaverView.m; path = OSX/XScreenSaverView.m; sourceTree = "<group>"; };
                AFD5730C099702C800BA26F7 /* julia.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = julia.c; path = hacks/julia.c; sourceTree = "<group>"; };
                AFD5736D0997411200BA26F7 /* Strange.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Strange.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFD57371099741A200BA26F7 /* strange.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = strange.c; path = hacks/strange.c; sourceTree = "<group>"; };
-               AFE1FD3F0981E32E00F7970E /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.h; name = AppController.h; path = OSX/AppController.h; sourceTree = "<group>"; };
-               AFE1FD400981E32E00F7970E /* AppController.m */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.objc; name = AppController.m; path = OSX/AppController.m; sourceTree = "<group>"; };
+               AFE1FD3F0981E32E00F7970E /* SaverTester.h */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.h; name = SaverTester.h; path = OSX/SaverTester.h; sourceTree = "<group>"; };
+               AFE1FD400981E32E00F7970E /* SaverTester.m */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.objc; name = SaverTester.m; path = OSX/SaverTester.m; sourceTree = "<group>"; };
                AFE1FD410981E32E00F7970E /* InvertedSlider.h */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.h; name = InvertedSlider.h; path = OSX/InvertedSlider.h; sourceTree = "<group>"; };
                AFE1FD420981E32E00F7970E /* InvertedSlider.m */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.objc; name = InvertedSlider.m; path = OSX/InvertedSlider.m; sourceTree = "<group>"; };
                AFE1FD430981E32E00F7970E /* jwxyz.h */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.h; name = jwxyz.h; path = OSX/jwxyz.h; sourceTree = "<group>"; };
                AFE1FD5C0981E3CB00F7970E /* yarandom.h */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.h; name = yarandom.h; path = utils/yarandom.h; sourceTree = "<group>"; };
                AFE1FD620981E40800F7970E /* rorschach.c */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.c; name = rorschach.c; path = hacks/rorschach.c; sourceTree = "<group>"; };
                AFE2A46A0E2E904600ADB298 /* SkyTentacles.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SkyTentacles.saver; sourceTree = BUILT_PRODUCTS_DIR; };
-               AFE2A46D0E2E904600ADB298 /* XScreenSaver copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "XScreenSaver copy.plist"; path = "OSX/XScreenSaver copy.plist"; sourceTree = "<group>"; };
                AFE2A4720E2E90E300ADB298 /* skytentacles.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = skytentacles.c; path = hacks/glx/skytentacles.c; sourceTree = "<group>"; };
                AFE2A4740E2E911200ADB298 /* skytentacles.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = skytentacles.xml; sourceTree = "<group>"; };
                AFE6A16A0CDD78EA002805BF /* involute.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = involute.c; path = hacks/glx/involute.c; sourceTree = "<group>"; };
                        isa = PBXGroup;
                        children = (
                                089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
-                               AF9772E10989DFC6001F8B92 /* MainMenu.nib */,
+                               AF14EE300E3CEF1A004CBBD2 /* XScreenSaver.icns */,
+                               AF9772E10989DFC6001F8B92 /* SaverTester.nib */,
                                AF9771D90989DC4A001F8B92 /* SaverTester.plist */,
                                8D1107310486CEB800E47090 /* XScreenSaver.plist */,
                                AF0FAF1209CA712600EE1051 /* xscreensaver-getimage-file */,
                                AF0FAF0B09CA6FF900EE1051 /* xscreensaver-text */,
-                               AFE2A46D0E2E904600ADB298 /* XScreenSaver copy.plist */,
                        );
                        name = Resources;
                        sourceTree = "<group>";
                AF480AB9098C66E200FB32B8 /* SaverTester */ = {
                        isa = PBXGroup;
                        children = (
-                               AFE1FD3F0981E32E00F7970E /* AppController.h */,
-                               AFE1FD400981E32E00F7970E /* AppController.m */,
+                               AFE1FD3F0981E32E00F7970E /* SaverTester.h */,
+                               AFE1FD400981E32E00F7970E /* SaverTester.m */,
                                29B97316FDCFA39411CA2CEA /* main.m */,
                        );
                        name = SaverTester;
                                AF9D4DC309B5B87D006E59CF /* bsod.c */,
                                AF77770309B63B5F00EA3033 /* phosphor.c */,
                                AF9D4E0509B5BC9D006E59CF /* apple2-main.c */,
+                               AFBF89B10E424036006A2D66 /* fpsI.h */,
                                AF975AEE099C6F1700B05160 /* fireworkx.c */,
                                AF975A99099C6C3500B05160 /* barcode.c */,
                                AF975A83099C6B4900B05160 /* eruption.c */,
                                AF480C29098E295D00FB32B8 /* halo.c */,
                                AFE1FD620981E40800F7970E /* rorschach.c */,
                                AF77789209B656C300EA3033 /* fontglide.c */,
+                               AFBF893C0E41D930006A2D66 /* fps.c */,
+                               AFBF893D0E41D930006A2D66 /* fps.h */,
                                AFA33C0A0B058E6B002B0E7D /* webcollage */,
                                AFA33BAE0B0585F7002B0E7D /* webcollage-cocoa.m */,
                        );
                                AFA561B409937DCC00F3E977 /* polyhedra.h */,
                                AFA5619009937D3600F3E977 /* noof.c */,
                                AFA5616D09937C9A00F3E977 /* blinkbox.c */,
+                               AFBF89AE0E423FC3006A2D66 /* fps-gl.c */,
                                AFA561120993786800F3E977 /* molecule.c */,
                                AF77780109B64EC000EA3033 /* fliptext.c */,
                                AFA560C3099371D500F3E977 /* polytopes.c */,
                                AF083A5D099312DB00277BE9 /* tunnel_draw.h */,
                                AF083A58099312B000277BE9 /* tunnel_draw.c */,
                                AF083A31099311CE00277BE9 /* atunnel.c */,
+                               AFC211930E4E30C800D87B6E /* teapot.c */,
+                               AFC211940E4E30C800D87B6E /* teapot.h */,
                                AF0839A909930C4900277BE9 /* atlantis.c */,
                                AFE2A4720E2E90E300ADB298 /* skytentacles.c */,
                                AF0839AA09930C4900277BE9 /* dolphin.c */,
                                AF480EAF098F63CD00FB32B8 /* trackball.h */,
                                AF480ED2098F652A00FB32B8 /* tube.c */,
                                AF480ED1098F651C00FB32B8 /* tube.h */,
-                               AF480FD50990355300FB32B8 /* fps.c */,
                                AF9D473609B52EE0006E59CF /* colorbars.c */,
                                AF9D473709B52EE0006E59CF /* colorbars.h */,
                                AF0839AE09930C4900277BE9 /* xpm-ximage.c */,
                                AF4775C1099D9E79001F091E /* resources.h in Headers */,
                                AF9D473909B52EE0006E59CF /* colorbars.h in Headers */,
                                AF7778C709B65CFE00EA3033 /* font-ximage.h in Headers */,
+                               AFBF893F0E41D930006A2D66 /* fps.h in Headers */,
+                               AFBF89B20E424036006A2D66 /* fpsI.h in Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                                AF7777EA09B64E3100EA3033 /* FlipText */,
                                AFA55E4E09935FF900F3E977 /* FlyingToasters */,
                                AF4812500990CE2700FB32B8 /* Gears */,
-                               AF77777409B6497800EA3033 /* Gleidescope */,
                                AFA55B9109933FDA00F3E977 /* GFlux */,
                                AFA55E2F09935F8E00F3E977 /* GLBlur */,
                                AFF463580C440AEF00EE6509 /* GLCells */,
+                               AF77777409B6497800EA3033 /* Gleidescope */,
                                AFA55CCC09934CE400F3E977 /* GLForestFire */,
                                AFA56331099395ED00F3E977 /* GLHanoi */,
                                AFA55FF909936C6D00F3E977 /* GLKnots */,
                                AFA55F720993643600F3E977 /* GLMatrix */,
                                AFA55B0909933E0500F3E977 /* GLPlanet */,
-                               AF7777D009B64C6B00EA3033 /* GLSlideshow */,
                                AF48DEEF0A0C25E000F94CF9 /* GLSchool */,
+                               AF7777D009B64C6B00EA3033 /* GLSlideshow */,
                                AFA55C77099349A600F3E977 /* GLSnake */,
                                AFD56DF10996A03800BA26F7 /* GLText */,
                                AFA55F420993629000F3E977 /* HyperTorus */,
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               AF9772E30989DFC6001F8B92 /* MainMenu.nib in Resources */,
-                               AF9772C90989DCF8001F8B92 /* SaverTester.plist in Resources */,
+                               AF14EE310E3CEF1A004CBBD2 /* XScreenSaver.icns in Resources */,
+                               AF9772E30989DFC6001F8B92 /* SaverTester.nib in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
+                               AF0D117D0E41566300BB14A4 /* xscreensaver-getimage-file in Resources */,
                                AFA5604609936DAB00F3E977 /* flipflop.xml in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                                AF4808C5098C3BDC00FB32B8 /* colors.c in Sources */,
                                AF4808C6098C3BDF00FB32B8 /* erase.c in Sources */,
                                AF4808C7098C3BE600FB32B8 /* hsv.c in Sources */,
+                               AFBF893E0E41D930006A2D66 /* fps.c in Sources */,
+                               AFBF89AF0E423FC3006A2D66 /* fps-gl.c in Sources */,
                                AF4808C8098C3BE800FB32B8 /* InvertedSlider.m in Sources */,
                                AF4808C9098C3BEC00FB32B8 /* jwxyz.m in Sources */,
                                AF4808CA098C3BEE00FB32B8 /* PrefsReader.m in Sources */,
                                AF480FCE09901E0400FB32B8 /* sphere.c in Sources */,
                                AF480FCF09901E0700FB32B8 /* trackball.c in Sources */,
                                AF480FD009901E0A00FB32B8 /* tube.c in Sources */,
-                               AF480FD60990355300FB32B8 /* fps.c in Sources */,
                                AF4812FA0990D9AE00FB32B8 /* XScreenSaverGLView.m in Sources */,
                                AF083A1C099310B300277BE9 /* xpm-ximage.c in Sources */,
                                AF083A21099310CF00277BE9 /* xlockmore.c in Sources */,
                                AF4812CA0990D42000FB32B8 /* pipeobjs.c in Sources */,
                                AF4812CB0990D42100FB32B8 /* pipes.c in Sources */,
                                AF9CCABD09959D250075E99B /* XScreenSaverSubclass.m in Sources */,
+                               AF69640B0E4FE3470085DBCE /* teapot.c in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               AF9771DF0989DC88001F8B92 /* AppController.m in Sources */,
+                               AF9771DF0989DC88001F8B92 /* SaverTester.m in Sources */,
                                AF9772C80989DCD5001F8B92 /* main.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                                AFA561B509937DCC00F3E977 /* polyhedra-gl.c in Sources */,
                                AFA561B609937DCC00F3E977 /* polyhedra.c in Sources */,
                                AF9CCAE709959DF50075E99B /* XScreenSaverSubclass.m in Sources */,
+                               AFC211950E4E30C800D87B6E /* teapot.c in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        name = InfoPlist.strings;
                        sourceTree = "<group>";
                };
-               AF9772E10989DFC6001F8B92 /* MainMenu.nib */ = {
+               AF9772E10989DFC6001F8B92 /* SaverTester.nib */ = {
                        isa = PBXVariantGroup;
                        children = (
                                AF9772E20989DFC6001F8B92 /* English */,
                        );
-                       name = MainMenu.nib;
+                       name = SaverTester.nib;
                        sourceTree = "<group>";
                };
 /* End PBXVariantGroup section */