========================================================
Read the file INSTALL, if you want to install white_dune
========================================================

======================================================
Take a look at the directory docs with a html-browser, 
if you want to know, how to work with the program
======================================================


History of dune/white_dune
==========================

"white_dune" continue the work of Stephen F. White on the 
program "dune".

As today (Thu May 31 15:55:58 CEST 2001), the sourcecode on dune 0.13 
(http://dune.sourceforge.net/download.html) has not been updated since 
more than a year, despite some useful patches and bugfixes with possible 
solutions has been publiced. 
In this situation we decided to continue the work as white_dune, giving
Stephen F. White the possibilty to continue his work at sourceforge.


README of dune version 0.13
===========================

 * Copyright (C) 2000 Stephen F. White
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.

WHAT IS THIS THING?
-------------------

Dune is a simple tool for the creation of VRML (Virtual Reality Modelling
Language).  Dune is a weekend project that went horribly, horribly wrong.
Dune is delicious and nutritious.  Dune is fun for the whole family.

WHY DUNE?
---------

I was looking for a sort of abstract word to give to this project,
so I closed my eyes, relaxed, and the most tranquil image i saw was a
softly rolling sand dune.  I'm open for suggestions if you have a
better name.

TESTED PLATFORMS
----------------
Dune has been built and tested on the following platforms:

MS Windows
----------
Windows95 (OSR2), Windows98, Windows NT 4.0, using Microsoft Visual
C++ 5.0 and 6.0.

Linux
-----
Linux 2.2.x, 2.3.x, using lesstif 0.89.4, Mesa 3.0, and g++/gcc 2.95.2 (the
version of egcs, 2.91.66, that ships with RedHat 6.1 will *not* work,
due to some template bugs).

SGI Irix
--------
Irix 6.5 (on an Octane MXE), using OSF/Motif and MIPSPRO CC v7.2.1.

Solaris
-------
Solaris 2.0 (?), using OSF/Motif and g++/gcc 2.95.2.

REQUIRED PACKAGES FOR UNIX
--------------------------
To build this package for Unix derivatives, you will need:

1)  A Posix-compliant Unix build environment.

2)  An OpenGL implementation.  If your operating system does not
    support it natively, you can use Mesa, the open source OpenGL
    workalike.  Mesa is available for download from:

        http://www.mesa3d.org/download.html

3)  libjpeg, the Independent JPEG Group's jpeg library.  see:

	http://www.ijg.org/
	ftp://ftp.uu.net/graphics/jpeg/

4)  A Motif implementation.  If Motif is not available on your OS, you
    can use the free GNU implementation, lesstif (tested with 0.89.4);
    see:

	http://www.lesstif.org/download.html

5)  OPTIONAL:  yacc/lex or bison/flex.
    Without them, you can still compile this package, but you will not
    be able to modify the VRML parser.

REQUIRED PACKAGES FOR MS WINDOWS
--------------------------------
To build this package for win32, you will need:

1)  Windows95 OSR2, Windows 98 or Windows NT 4.0.  The original
    release of Windows95 does not support OpenGL, so unless you
    see an "OpenGL32.DLL" in your windows system directory, you'll
    probably have to go to microsoft's site and download their
    software implementation (which leaves a lot to be desired in
    the performance department).
    
2)  libjpeg, the Independent JPEG Group's jpeg library.  see:

	http://www.ijg.org/
	ftp://ftp.uu.net/graphics/jpeg/

    This must be compiled as a DLL.  A makefile and distribution
    preconfigured to build jpeg.dll should be available from the same
    place that you got this package.

3)  OPTIONAL:  yacc/lex or bison/flex.
    Without them, you can still compile this package, but you will not
    be able to modify the VRML and resource file parsers.  I recommend
    the cygnus GNU WIN32 tools, available from
    http://sourceware.cygnus.com/cygwin/download.html.

BUILD INSTRUCTIONS FOR UNIX:
----------------------------

To build it, type "configure" in the main directory, then (if all goes well),
"make".

BUILD INSTRUCTIONS FOR WIN32:
-----------------------------
Open the dune.dsp project file, and select "build" (?) from the build menu.


README of white_dune
====================

White_dune is a low level VRML97 tool for Unix/Linux and M$Windows. It
can read VRML97 files, display and let the user change the scenegraph/fields.
Unlike most highlevel tools, it uses a lightning model based on the VRML97 
standard. 

Despite Dune/white_dune is not complete yet (especially in the 3D window),
it can be useful to edit VRML files.

Under Unix/Linux white_dune has support for stereoscopic "toe in" view via
"quadbuffer" capable stereo visuals. 

This has been successfully tested with the following configurations:

Computer      Operation System/X-Server   Graphics Card       Shutterglases

SGI Indigo2   IRIX                        High Impact         CrystalEyes 3
SGI Indigo2   IRIX                        Solid Impact        CrystalEyes 3
Intel PC      Linux/XIG DX-Platinum       Matrox G400         ELSA 3D REVELATOR
Intel PC      Linux/XIG DX-Platinum       Matrox G450         ELSA 3D REVELATOR
Intel PC      Linux/XIG DX-Platinum       ATI Radeon 7500     ELSA 3D REVELATOR
Intel PC      Linux/XIG DX-Platinum       ATI Radeon 8500     ELSA 3D REVELATOR

Instead of shutterglases, you can also use a "XPO" box (stereo splitter) 
and a onewall (based on 2 beamers with polarised light filters and polarised 
light glases).

Please tell us, if you tested white_dune with stereoscopic view 
successfully on other systems.

Currently, white_dune is on its way to become a immersive vrml97 editor
with the possibilty to use 3D inputdevices.

This has been successfully tested with the following configurations:

Dimensions     Operation System   Support    Device  

3D             Linux              joystick   Micro$oft Sidewinder Pro
4D             Linux              joystick   Gameport 2 x 2D analog joysticks
6D             Linux              joystick   Logitech Coordless Wingman
6D             Linux              xinput     Logicad Magellan
6D             Linux              libsball   Labtec Spaceball 2003
6D             Linux              aflock     Flock of Birds Headtracker
6D             IRIX               xinput     Logicad Magellan
6D             IRIX               xinput     Labtec Spaceball 2003
6D             IRIX               libsball   Labtec Spaceball 2003
6D             IRIX               xinput     Dials
6D             MacOSX             libsball   Labtec Spaceball 4000FLX (serial)

For more details how to use 3D inputdevices see the manpage. 
Please tell us, if you tested white_dune with 3D input successfully on other 
systems and send us the used commandline.

There is also support for 2D Linux joysticks.

We use white_dune, to teach people how VRML97 works. 
We use it also as a simple animation tool and in situations, when a easy
change of a small scenegraph is needed (e.g. when you work with interaction,
especially drag sensors).

Read the file INSTALL, if you want to install white_dune on a Unix system

Dune (and therefore white_dune) is free Software under the 
GNU General Public License (GPL)

Contributors (e.g. from copyright statements):

Stephen F. White          (dune (nearly anything))
J. "MUFTI" Scheurich      (xerrorhandler.cpp/h, x3dtranslators.cpp/h, 
                           InputDevice.cpp/h and some modifications 
                           e.g. stereoview)
Ian Lance Taylor          (rclex.l, rcparse.y)
Patrick Powell            (mysnprintf.c/h)
Brandon Long              (mysnprintf.c/h)
Thomas Roessler           (mysnprintf.c/h)
Michael Elkins            (mysnprintf.c/h)
Chris Morley/OpenVRML     (pngLoad.c/h)
Kirk L. Johnson           (gif.c/h)
Thiemo Seufer             (modifications to port version 0.17 back to M$Windows)
Christian Hanisch         (ColorCircle.cpp)
Kevin Meinert/VRJuggler   (Aflock.cpp/h)
J. Dean Brederson/I3Stick (Aflock.cpp/h)
Herbert Stocker           (modifications to port version 0.19 back to M$Windows,
                           hint about "save before crash" on M$Windows)
E. M. "Bart" Jaeger       (black and white icons, keyboard shortcuts)
Aaron Cram/SAND Dune      (DevIL support, Open in almost the same window)
==========================================================================

Changed in white_dune Version 0.16:

 Initial png support from OpenVRML (OpenVRML is LGPL), don't trust your eyes 8-)

 SGI type ALT-mouse navigation, beware of your windowmanager 8-)

 You see better, what you type when changing fields

 dune do not eat up PROTO Definitions any longer

 dune do not eat up EXTERNPROTO Definitions any longer, 
     but default values of Fieldvalues are not read

 dune tries now to save it's contence to $HOME/.dune_crash_*_*.wrl, when
      older versions of dune would crash in some situations.

 two simple how to use exercises included, see docs/index.html

===========================================

Changed in white_dune Version 0.17:

 Normal Node in IndexedFacesets is displayed more correctly - still no 
  support for NormalsPerVertex 8-(

 Problematic line in resource.c fixed.
 
 Errors in configure.in (not present in version 0.15) hopefully fixed 8-(

 Write to files now checks for errors 

 Signalhandling should be now a bit more robust 

 some coredump on programexit fixed

 Minor changes in look of program

 Very invisible "better than nothing" Shape->Text Rending for Unix included 8-(

 Port back to Windows NT:
                          to compile, you may want to copy config.h.nt
                          to config.h, execute usebison.bat and useflex.bat
                          and use dune.dsw
===========================================

Changed in white_dune Version 0.18:

 Bug in saveing files corrected

 Real silly bug responsible for forgetting more than one PROTO Definiton
 corrected

 Writing of routes/fields in Scriptnode corrected

 Output indentation is controlled by configure option (see INSTALL) 

 "Option -> Preferences / Show Handles For Selected Item" show now 
 the handle of the selected Item, not all handles of the selected tree

 addtional changes to configure to include some options (see INSTALL)

 initial support to read and write X3D files via the nist.gov 
 X3D translators. 
 Use at your own risk !
 To avoid dataloss, the temporary .wrl files are kept in the directories 
 x3dv2/test and /tmp

 Warning: Currently the translators fail to produce valid VRML97 code for some
 rare used nodes like VisibilitySensor or Collision.
 Currently dune need valid code to work.
 see README.x3dtranslators

 writing of MFInt32 data are written in one line till -1 (if any)

 avoid too near numbers in channelview at width 1280 

 optional use saxon (faster) instead of the x3dv2 nist.gov X3D translator

 coredump reason in motif/tree.c deleted
  
 usage of stdarg corrected

 "quadbuffer stereo" support (no "split screen stereo" !): 
 "Stereobrutality" till there is a 3D Pointer 8-(
 Cause it is difficult to click to objects in stereomode, stereomode
 can be temporary switched off by pressing Mousebutton 2 or "s" on the
 keyboard 

 commandline arguments to start dune with matching distance eye - eye and 
 distance eye - screen or nonstereo mode

 manpage included

 crashfile included to recentfiles

 scenegraph and routeview display DEF Names

 width of nodes in routeview increased - "OrientationInterpolator" is a
 very long word 8-(
===========================================

Changed in white_dune Version 0.18pl2:

 configure changed to test for signal_handler(int), to increase portability
 to random UNIX 
===========================================

Changed in white_dune Version 0.18pl3:

 ported back to SUN Solaris 8

 --with-buginlesstif workaround if click to icon do nothing
===========================================

Changed in white_dune Version 0.18pl4:

 "./configure --with-buginlesstif" workaround work now against problems 
 with creating routes on some lesstif/openmotif versions. 

 --with-buginlesstif is now default in the source-rpm 
===============================================

Changed in white_dune Version 0.19:
                                 
 inputdevice support

 included Linux joystick inputdevice support    

 personal desktop icons for IRIX 6.5, global desktop icons for IRIX 6.2
 include a icon for a new simple fm/worldsToVrml based cosmoworlds to 
 VRML97 converter script

 included libspaceball inputdevice support

 "parse error" output include linenumbers 

 interrupt signals will be ignored

 included Xi/xinput inputdevice support

 icon and handles for changing Transform.center
 
 xerrorhandler also catches Xtoolkit (Xt) errors
 
 colorcircle included

 6D inputdevice input on Transform node makes sense for first level of 
 scenegraph

 navigationicon works with mouse input

 navigation works together with Transform node on first level of scenegraph

 worlds with IndexedFaceSet with empty Coordinate do not crash anymore

 support for combined recording and running in ChannelView

 you can use delete in the ChannelView

 initial support for Ascention Flock of birds 3D device

 6D input can be restricted to 2D or 1D input (only maximal values used)

 bug repaired if fraction > max(key) in OrientationInterpolator

 documentation about combined recording and running in ChannelView updated

 crash avoided for repeated pastes 


===============================================

Changed in  white_dune Version 0.19pl4:

 nonstandard TextureImage.mode is now a configuration option

 bugfix about initialising Xinputdevices

 bugfix about netscape -remote command

===============================================

Changed in  white_dune Version 0.20beta:
 
 dune can now read gzip compressed VRML files

 png textureimages with transpanency work for primitives and 
 indexedfacesets with texturecoordinates

 crash when deleting interpolators fixed

 better support for transforms of 2D and 3D joysticks 

 HOVER/ROCKET mode for transforms

 bugfix for crash when loading scriptnodes by Torsten Blank

 better support for transforms of 4D joysticks 

 bugfix when writing fields of scriptnodes

 bugfix for crash when displaying MFStrings fields initialised with a 
 single String

 manpage updated about new option to switch off input device axes

 better support for navigation with 2D, 3D and 6D joysticks

 very faster performance on 2D operations on Truecolor/Directcolor 
 displays

 added inputdevice support for scale and change center operations

 added handles of different shapes for different transform modes

 added configuration option to search for fpu errors, and some related
 bugfixes

 fixed bug: 6D inputdevice input on Transform node made only sense for 
            limited levels of the scenegraph

 dune can be configured to use Barts blacknwhite icons 

 documentation updated

 added support for making rpm package files on Mandrake Linux
 
 added bugfix about scale operations with 3D inputdevice

 problem with tooltips fixed on some (buggy ?) lesstif implementations

 small changes to fix syntax problems on SGI MIPSpro 7.30 compiler

 better recovery after trying to read invalid VRML97 files

 menus updated 
 
 added HTML help menu

 added nullsize option for inputdevices 

 added Aaron Crams/SAND dune support for DevIL library.
 When DevIL is installed, white_dune can load more texture imageformats 
 like tif, rgb, bmp ... (not required by the VRML97 standard)

 added bugfix for Aaron Crams/SAND dune open in almost same window patch

 added bugfix for loading only last of multiple input files in commandline

 added bugfix for infinite loop when writing scriptnodes with 
 directOutput or mustEvaluate

 added bugfix for problem with redraws in route window (SceneGraphView)
 (motif canvas size must be < SHRT_MAX) 

 added bugfix for libsball usage

 bart added some keyboard shortcuts

 added bugfix for gnuis "test -e" in shellscripts

 added bugfix for "wheel" type inputdevices loosing calibration when 
 changing Transformmodes

 selected nodename in route window (SceneGraphView) change color to blue 

 added file -> import (incomplete for loading textures/urls from other
                       directorys). 

 angle of SFRotation shown in purple in channelview

 bugfix for recursive defined protos

 bugfix for recursive DEF/USE structures

 bugfix for translations of inputdevices in deep scenegraph structures

 writing URLs as relative URLs

 added to developer documentation

 added fileselectors for AudioClip, Inline and MovieTexture.

 file -> import completed

 bugfix for headtracking with Flock of Birds device

 added -headnavigation option 

 manpage updated

 minor bugfix: import fileselection window has "import" title

 bugfix for wrong headnavigation default for non tracking devices

 fix problem with missing nodename update in deep scenegraph structures 
 when making routes

 new configuration options about wwwbroswer/vrmlbrowser, 
 new default wwwbroswer/vrmlbrowser for MacOSX

 bugfix for crash (with loosing all information) on mouse drag over a 
 recursive scenegraph structure.

 added ".wrl" filename completion, if no file extension has been given.

 added fullscreen icon

 added create menu

 added create -> proto usage menupoint

 wrong maximal canvassize for M$Windows fixed

 added EXTERNPROTOs to the create -> proto usage menupoint

 bugfix for wrong graying of TextureTransform button

 clean up web/vrml browser configuration 

 bugfix for possible destroying javascript nodes 

 bugfix for possible destroying of URLs in script nodes 

 replace nonstandard "vrmlscript:" with "javascript:" in URL of script nodes.

 added --with-dontreplacevrmlscript

 workaround for using a PROTO as Appearance node. 

 added automated FreeBSD pkg generation. 

 bugfix for crash after undo operations

 added NurbsSurface PROTO for Cosmoplayer (javascript implementation)

 bugfix for workaround for using a PROTO as SFNode in Shape/Sound node. 

 added undo for ColorCircle.

 added additional start of X11 for MacOSX.

 added automated MacOSX "stuffit expander" compatible package generation.

 added bugfix for compiling under gcc 3.2.1

 added bugfix for using HAVE_WANT_CORE under M$Windows
  
 added bugfix for deleting USEd node

 added bugfix for wrongly used XtDestroyApplicationContext

MUFTI (mufti@csv.ica.uni-stuttgart.de)



