1dune(1)                     General Commands Manual                    dune(1)
2
3
4

NAME

6       dune - graphical vrml97/x3d editor and animation tool
7

SYNOPSIS

9       dune  [  variantoptions  ] [ stereoviewoptions ] [ inputdeviceoptions [
10       axisoptions ] [ miscoptions ] [ file.wrl file.x3dv file.x3d url ...  ]
11
12       dune [ conversionoption ] filename
13
14       dune -illegal2vrml [ -prefix prefix ] protofile.wrl file.wrl ...
15

DESCRIPTION

17       dune / white_dune is a graphical editor for the Virtual Reality  Model‐
18       ing Language (VRML97), ISO/IEC 14772-1:1997 and X3D.
19       Additionally  it  has  support  for  the NurbsSurface Node described in
20       VRML97 Amendment 1.
21       It can also load X3D files with XML encoding, if it has  been  compiled
22       with the expat XML parser library.
23       It can also download files from the internet (to ~/Downloads (default),
24       see "options->output setting"), if it has been compiled with  the  curl
25       library.
26       A filename of - means standart input.
27       Dune  has  some basic support for stereographic view usually with shut‐
28       terglases in OpenGL "quadbuffer" mode.
29       When used with the conversionoptions or the  -illegal2vrml  commandline
30       argument, white_dune is a non graphical commandline program.
31       The  conversionoptions  are used to convert the VRML/X3DV/X3D file into
32       sourcecode or a other 3D graphics format. This options are used in  the
33       commandline,  but  some options require a graphics context (e.g. in the
34       simplest case a usage within a xterm command), cause some of  the  con‐
35       version  options  require  the  usage  of  OpenGL commands. To create a
36       OpenGL context, there are 3 different ways.
37       First open a temporay graphics window, do the conversion and close  the
38       graphics window and exit. This is currently used under M$Windows.
39       Second  is  to  use Mesa off screen rendering (the program was compiled
40       with the --with-osmesa configure option). With Mesa off screen  render‐
41       ing  it  is  possible to use OpenGL commands in a pure commandline pro‐
42       gram.
43       Third is to use glx based off screen rendering under Linux/UNIX/MacOSX.
44       In this case, the program do not open a graphics window, but requires a
45       working X11 display anyway. On a text console the Xvfb X11 server  pro‐
46       gram can be used to get a working X11 display.
47       The   -illegal2vrml  option is used to repair VRML97 files with illegal
48       extensions.
49       See the illegal2vrml(1) manpage for more information.
50

VARIANTOPTIONS

52       -4kids start dune with a simplified GUI as simple 3D modeller for kids.
53
54       -x3dv  if no file is loaded, start dune with a new X3DV file.
55              Per default, dune is started with a new VRML97 file.
56              If a file is loaded, dune prints a X3DV to standart out.
57
58       -kambi start dune with support  for  unportable  extension  nodes  only
59              usable with the kambi VRML gameengine.
60
61       -cover start  dune  with  support  for  unportable extension nodes only
62              usable with the special immersive VRML97 viewer cover/covise.
63
64       -x3dom start dune with support for unportable  extensions  only  usable
65              with the X3DOM viewer.
66
67       -4catt start  dune  with  a  simplified GUI as a exporter/converter for
68              users of the CATT 8 sound simulation software.
69
70       -german
71              Use german menu, dialogs and errormessages
72
73       -italian
74              Use italian menu and dialogs, errormessages are still in english
75              language
76
77       -french
78              Use  french menu and dialogs, errormessages are still in english
79              language
80
81       -portuguese
82              Use portuguese 4kids menu, only  helpfull  with  -4kids  option,
83              otherwise all in english
84
85       -english
86              Use  english  menu,  dialogs  and  errormessages.  This  is  the
87              default, it can be used to overwrite the  setting  of  the  LANG
88              environment variable.
89

CONVERSIONOPTIONS

91       -vrml97
92              Convert  file  to VRML97 ISO/IEC 14772-1:1997, write it to stan‐
93              dart output and exit.
94
95       -vrml97levelx3dv
96              Convert file to VRML97 ISO/IEC 14772-1:1997 compatible parts  of
97              X3D classic VRML encoding ISO/IEC ISO/IEC 19776-2:2005, write it
98              to standart output and exit.
99
100       -x3d   Convert file to XML encoded X3D, write it to standard output and
101              exit.
102
103       -X3DOM Convert  file  to  X3DOM  html,  write it to standard output and
104              exit.
105
106       -download
107              Download file from the internet,  write  filenames  to  standard
108              error and exit.
109
110       -kanim filenamepattern
111              Convert  file  to  the kanim fileformat and write it to standard
112              output.
113              The kanim fileformat is a XML file with references to  different
114              VRML files. The VRML files are generated too, their name is gen‐
115              erated based on filenamepattern: The filenamepattern is shortend
116              from  the  fileextension  and then extended with a underscore, a
117              increasing number and the .wrl extension.
118              All VRML files describe the same VRML scene with same the nodes,
119              but some numeric fields are animated.
120              This  type  of  file is used by the open source VRML based Kambi
121              gameengine.  It makes no sense to export a kanim  file,  if  the
122              exported  VRML file do not contain timesensor/interpolator based
123              animation.
124
125       -wonderland moduleDirectory
126              Convert file to a java  source  file  included  in  a  directory
127              structure  needed  to  build a SUN wonderland version 0.5 module
128              and exit.
129              If the root directory of the module  is  build  from  the  input
130              filename (without extension) as moduleDirectory/exportX3dv/file‐
131              name
132              If this directory and the other needed files do not exists, this
133              files  are  also created. If the other files exist, they are not
134              overwritten, only the target java source itself is  overwritten.
135              The  name  of  the  target  java  source  file  is  moduleDirec‐
136              tory/exportX3dv/filename/src/classes/org/jdesktop/wonder‐
137              land/modules/filename/client/jme/cellrenderer/filename.java  The
138              first character of the target java source file is uppercase.
139              To   get   a   wonderland   module   from    the    moduleDirec‐
140              tory/exportX3dv/filename  directory,  chance into this directory
141              and run the ant command. A usual jar file of the wonderland mod‐
142              ule  can  then  be found in the moduleDirectory/exportX3dv/file‐
143              name/dist directory.
144              When compiling the output of the wonderland java  source  export
145              with  the  command  ant, the java compiler may get out of memory
146              resources.
147              To fix the problem, you can either set the memory limits via the
148              NT_OPTS environment variable to something like (bash/sh/ksh)
149
150                 ANT_OPTS="-Xms256m -Xmx1024m"
151                 export ANT_OPTS
152
153              or (M$Windows)
154
155                 set ANT_OPTS="-Xms256m -Xmx1024m"
156
157              or  set the memory limits by extending the javac tag in the file
158              wonderland/build-tools/build-scripts/build-setup.xml e.g.
159
160                <javac ...
161                       ...
162                       fork="true"
163                       memoryinitialsize="256m"
164                       memorymaximumsize="1024m"
165                >
166
167              This option uses OpenGL commands and can not be used in  a  com‐
168              mandline only environment.
169
170       -x3d4wonderland
171              Convert  file  to  XML  encoded X3D for import in SUN wonderland
172              0.4, write it to standard output and exit.
173              SUN wonderland 0.4 only support IndexedFaceSets  with  colorPer‐
174              Vertex  and fullsize Color nodes. This exporter tries to convert
175              other nodes to this IndexedFaceSets,  but  can  (currently)  not
176              correctly  convert  nodes with colorPerVertex false and fullsize
177              Color nodes.
178              This option uses OpenGL commands and can not be used in  a  com‐
179              mandline only environment.
180
181       -rib   Convert  file  to  the  RIB format (Renderman Image Bytestream),
182              write it to standart output and exit. This  option  uses  OpenGL
183              commands and can not be used in a commandline only environment.
184              The  RIB file format is the input file format of movie renderers
185              like renderman or aqsis.
186              The RIB exporter do not support  several  features  of  VRML/X3D
187              (e.g. TextureTransform).
188
189       -files integer
190              Only useful with the -rib option.
191              Instead  of writing the whole animation into the -o option file,
192              create integer files with parts of the animation. This  is  use‐
193              full to run the renderman renderer (e.g. aqsis) parallel.
194              A example:
195               $ dune -o RibExport.rib -files 4 -rib Untitled.wrl
196               $ for i in RibExport*.rib ; do (aqsis $i &); done
197
198       -ac3d  Convert  file  to  the  AC3D format (Version AC3Db), write it to
199              standart output and exit. This option uses OpenGL  commands  and
200              can not be used in a commandline only environment.
201              The  AC3D  file format is the input/output file format of the 3D
202              modeller ac3d.
203              The ac3d 3d modeller do not support several features of VRML/X3D
204              (e.g.  the ac3d 3d modeller do not support animation or interac‐
205              tion).  Therefore the AC3D file format can not keep the complete
206              information of a VRML/X3D file in general.
207
208       -catt8geo outputdir_with_material_geo
209              Convert  file  to  the  catt geo format (Version 8), write it to
210              several  .geo  formats  to  the  directory  outputdir_with_mate‐
211              rial_geo and exit.
212              The  catt  geo  file format is the input geometry file format of
213              the catt acustic simulation program.
214              The  master.geo  file  in  this  directory  outputdir_with_mate‐
215              rial_geo  will hold include commands for the other produced .geo
216              files.
217              In the directory, a file material.geo with the needed  ABS  com‐
218              mands  must exist before conversion.  The material names for the
219              ABS names are generated from the DEF names of the VRML nodes.
220              If  the  material.geo  file  do  not  exist   in   the   output‐
221              dir_with_material_geo   directory,   white_dune   fails  with  a
222              errormessage.
223              Despite the catt programm can export VRML97  files,  it  do  not
224              support several features of VRML/X3D.
225              Therefore  the catt geo file format can not keep the information
226              of a VRML/X3D file in general.
227              This option uses OpenGL commands and can not be used in  a  com‐
228              mandline only environment.
229
230       -ldraw Convert file to the major part of the ldraw fileformat and write
231              it to standard output.
232              The header of the ldraw file is not generated. The header  is  a
233              important  part  of a ldraw file and should have been written to
234              standard output earlier (typically this is  done  from  a  batch
235              script).
236              The  ldraw  fileformat  is  a  ASCII fileformat which is used to
237              exchange 3D data  between  several  open  source  plastic  brick
238              description programs. A example for such a program is LeoCAD.
239
240       -prefix prefix
241              The  -prefix  option in conjunction with conversion is only used
242              for the following options to create source code. It can be  used
243              to  define  a leading prefix for the name of the data structures
244              in the source code output.
245              For example, the source code creates data  types  named  "Node",
246              "Scenegraph"  and  "Callback".  To  avoid  problems  with  other
247              libraries, adding options like for example "-prefix  X3d"  would
248              change  the  names  to  "X3dNode", "X3dSceneGraph" and "X3dCall‐
249              back".
250
251       -c     Converts file to a C header/source file, write  it  to  standard
252              output and exit.
253              See section C/C++/JAVA SOURCE EXPORT for more information.
254
255       -3c    This  option is similar to the -c option, but surfaces are first
256              triangulated and then exported as TriangleSet nodes.
257              This option uses OpenGL commands and can not be used in  a  com‐
258              mandline only environment.
259
260       -c++   Converts  file to a C++ header/source file, write it to standard
261              output and exit.
262              See section C/C++/JAVA SOURCE EXPORT for more information.
263
264       -3c++  This option is similar to the  -c++  option,  but  surfaces  are
265              first triangulated and then exported as TriangleSet nodes.
266              This  option  uses OpenGL commands and can not be used in a com‐
267              mandline only environment.
268
269       -java  Converts file to a java source file, write it to standard output
270              and exit.
271              See section C/C++/JAVA SOURCE EXPORT for more information.
272
273       -3java This  option  is  similar  to the -java option, but surfaces are
274              first triangulated and then exported as TriangleSet nodes.
275              This option uses OpenGL commands and can not be used in  a  com‐
276              mandline only environment.
277
278       -manyclasses
279              Deprecated (now default)
280              Only valid after the -java, -3java or -wonderland options.
281              This  option  is a brute force attempt to fight against the "too
282              much constants" problem in java. It may be impossible to compile
283              the  output of a normal java based source code export, cause the
284              current format of java class files are limited to 64K so  called
285              "constants". Not only real constants like 1, 2 or 3 are counted,
286              but also things like member variable definitions in classes etc.
287              With the -manyclasses option, all data is distributed into  many
288              seperated classes.
289              The  -manyclasses  option  should help, if you run into the "too
290              much constants" problem. In case of a large number of  DEF  com‐
291              mands  in  the  vrml/x3dv file, you can still run into "too much
292              constants" problem, cause each DEF commands leads to extra  mem‐
293              ber  variable  in  the  main scenegraph class. In this case, you
294              should reduce the number of  DEF  commands  with  the  menupoint
295              actions ... rest of scenegraph branch ... remove ... DEF name
296              Beside  the need to increase the memory limits of the javac com‐
297              piler (-Xms/-Xmx) options, you may also  need  to  increase  the
298              PermSize  memory  limits (-XX:PermSize=/-XX:MaxPermSize=) of the
299              java interpreter.
300
301       -o outputfile
302              Writes the converted file to outputfile.
303              This is important if the converted X3D/VRML file is not  in  the
304              same  directory  as the orignal file (cause of relative paths in
305              URLs like in ImageTexture or EXTERNPROTOs).
306              Note that -o outputfile must be used before the inputfile (file‐
307              name).
308

STEREOVIEWOPTIONS

310       -nostereo
311              force  non stereoview mode on Linux/UNIX (e.g. if you do not own
312              shutterglases)
313
314       -stereo
315              force stereoview mode.
316              Stereo is only  supported  for  hardware/software  combinations,
317              that  allow  quadbuffer  stereo  ("stereo  in  a  window"),  NOT
318              splitscreen stereo (eg. "OpenGlVR").
319              Examples for hardware/software  combinations  with  support  for
320              quadbuffer  stereo  are  graphicscards with support for shutter‐
321              glasses or "stereo cloneview" to connect beamers of a onewall.
322
323       -anaglyph glassestype
324              force expermential stereoview mode for use with colored anaglyph
325              glasses.
326              glassestype can be red_green, green_red, red_blue or blue_red.
327              This  option  uses  the  OpenGL accumulation buffer. This is not
328              hardware-supported by a lot of graphics  cards/graphics  drivers
329              and can result in miserable performance.
330
331       -eyedist eyedistinmeter
332              Distance between the two eyes of the viewer.
333              Default  eyedistinmeter is 0.06, it can be negative to swap eyes
334              (no need to reconfigure your hardware if eye  swapping  problems
335              occure).
336
337       -screendist screendistinmeter
338              Distance between the eyes of the viewer and the mid of the moni‐
339              tor screen.
340              Default screendistinmeter is 0.8.
341
342       -fieldofview fieldofviewindegree
343              Overwrite Field of View field in  VRML  viewpoints  and  set  to
344              fieldofviewindegree in degree.
345              Good stereoviewing may want need to ignore the fieldOfView field
346              of viewpoints. The fieldOfView of the  human  eye  is  about  18
347              degrees, the VRML default is 45 degrees.
348

INPUTDEVICEOPTIONS

350       The  following options are only valid, if dune was compiled with match‐
351       ing inputdevice driver support (e.g. there is not support for  a  Linux
352       joystick under IRIX).
353
354       -joystick joystickdevice
355              Only valid under Linux or M$Windows.
356              Under  Linux,  joystickdevice  is the device of a Linux joystick
357              (usually something like /dev/input/js0 or /dev/js0).
358              Under M$Windows, the joystickdevice is a number. Depending  from
359              the  M$Windows  version,  this number is either 0, 1 or a number
360              from 0 to 15.
361
362       -SDLjoystick joystickdevice
363              Currently only valid under MacOSX.  The joystickdevice is a num‐
364              ber (e.g. 0, 1, 2, ...).
365
366       -spaceball spaceballdevice
367              spaceballdevice  is the serial device connected to the spaceball
368              (usually something like /dev/ttyd2 or /dev/ttyS0).
369              Only valid if binary was compiled with libsball support.
370
371       -nxtdials usbdevice
372              This option support a dials like inputdevice made of  mindstorms
373              nxt  motors.   Just  attach a wheel or gear to each of 3 motors,
374              connect them to the brick and connect the brick to the  computer
375              via USB.
376              This  option is only valid, if white_dune was compiled with sup‐
377              port of the libusb library e.g. available under Linux.
378              usbdevice is the number of the mindstorms  nxt  brick  connected
379              via  USB (0 for the first nxt brick, 1 for the second nxt brick,
380              etc).
381              The -nxtdials option automatically set the wheel axisoption.
382
383       -xinput xinputname
384              xinputname is the devicename supported by  the  Xinput  Protocol
385              (usually something like magellan or dialbox).
386              Valid on most Unix/X11 implementations.
387
388       -xinputlist
389              Print  a list of Xinput devicenames that can be possibly used as
390              xinputname for the -xinput option and exit.
391              Valid on most Unix/X11 implementations.
392
393       -xinputlistlong
394              Print a list of Xinput devicenames  with  axis  information  and
395              exit.
396              Valid on most Unix/X11 implementations.
397
398       -aflock aflockdevice  [ aflockoptions ]  -tracker birdaddr -wand bir‐
399       daddr
400              aflockdevice is the serial device  connected  to  the  Ascension
401              Flock  of  Birds  master  transmitter  (usually  something  like
402              /dev/ttyd2 or /dev/ttyS0).
403              Dune assumes the following configuration:
404              Multiple FOBs with single RS232 Interface to Host Computer  (see
405              "The  flock  of  Birds, Installation and Operation Guide, Stand‐
406              alone and Multiple Transmitter/Multiple Sensors Configurations",
407              Page 3 (chapter "Introduction"), Figure 2).
408              birdaddr  is  the  adress  of the Bird Unit of the magnetic head
409              tracker (-tracker) or "3D Mouse" (-wand) in the  Fast  Bird  Bus
410              (FBB  adress)  as  configured  with  the dipswitches on the Bird
411              Unit.
412              This program need to have the Flock of Birds configured  in  the
413              Normal  Address  Mode  only (see Page 12, Figure 4 of the manual
414              decribed above).
415
416       -headnavigation
417              Use current transformmode (including  rotations)  when  using  a
418              headtracker.
419              Default  without  -headnavigation  is using only the translation
420              mode.  This default gives you a very natural reaction, when your
421              head  moves,  the  virtual  world  moves,  but if your head only
422              rotates, the virtual world stand still. With the  headnavigation
423              option, the virtual world reacts to head rotations, depending of
424              the current transform mode. Be carefull when you use  this  fea‐
425              ture  while  talking to a audience. Talking cause small and fast
426              head rotations and will cause small and fast  rotations  of  the
427              virtual  world.   Your  audience  may get a impression like in a
428              earthquake and is more in danger to get motion sickness.
429
430       -sendalways
431              Tell dune that the device sends  (almost)  always  values.  This
432              values  will  then not be interpreted automatically as transform
433              commands.
434              Automatically  used  for  Ascension  Flock   of   Birds   device
435              (-aflock).
436
437       -dontcarefocus
438              Inputdevice actions dont care about the window focus.
439              This  can  be  useful in situations, when you only work with one
440              dune window, e.g. when using a onewall.
441

AXISOPTIONS

443       -x|-y|-z|-xrot|-yrot|-zrot=[-][integer_axisnumber]
444              [,[factor][,[accel][,[wheel][,ignore]]]]
445
446       -all|-allxyz|-allrot=[factor][,[accel][,[wheel][,ignore]]]
447
448       -none=integer_axisnumber
449
450       -axes=max_number_axes
451

AXISLEGEND

453       -      used to swap sign of value from axis
454
455       integer_axisnumber
456              Integer with the number of the axis, that should be used for the
457              x y z xrot yrot zrot directions.
458              This  number  may  not be greater than the number of axes of the
459              inputdevice.
460              The integer_axisnumber in the none option  is  used  to  disable
461              this axis.
462
463       factor Float with a multiplicator for the axes
464              The  factors  of the all, allrot and allxyz options are indepen‐
465              dend of the factors of the single axes.
466
467       accel  Float with a expotential accelerator for the axes
468
469       wheel  The string "wheel" means this axis of the inputdevice  will  not
470              deliver zero if released
471
472       ignore Float  with  the  value  (relative to the maximal value from the
473              device) which will be ignored (insensitivity)
474
475       max_number_axes
476              Number of used axes, one of (2,3,4,5).
477              This must be equal or less to the physical available axes  of  a
478              device.  Main usage of this option is to disable bad designed or
479              mechanical defect axes e.g. when you wish, this axis on  a  joy‐
480              stick would not exist
481

AFLOCKOPTIONS

483       This  options  are only valid for the Ascension flock of birds magnetic
484       tracking system.
485
486       -baud baudrate
487              Baudrate of the serial line communicating with the transmitter.
488              According to the flock of bird manual, the  following  baudrates
489              are  valid  for  serial  line  communication:  2400, 4800, 9600,
490              19200, 38400, 57600 and 115200.
491              Default: 38400
492
493       -numbirds numberbirds
494              Number of "data delivering" birds attached  to  the  transmitter
495              (e.g.  not  counting the transmitter itself, if it is a Extended
496              Range Controller (ERC)).
497              Default: 2 (tracker and wand).
498
499       -master birdaddr
500              Adress of the master transmitter  in  the  Fast  Bird  Bus  (FBB
501              adress)  as  configured  with the dipswitches on the transmitter
502              unit.
503              Default: 1
504
505       -masterIsErc
506              Used to differ between configurations, where the master is a ERC
507              (Extended  Range Controller) or not. If the master is not a ERC,
508              the FBB adress is the same as the FBB adress of the  tracker  or
509              the wand.
510              Default: not set
511
512       -hemisphere FRONT_HEM|AFT_HEM|UPPER_HEM|LOWER_HEM|LEFT_HEM|RIGHT_HEM
513              Hemisphere used. Sit on the antenna block (with the legs near on
514              the side of the text) to see, what is left or right 8-)
515              Default: RIGHT_HEM
516
517       -sync 0|1
518              Synchronise (1) or not (0) data output to  a  CRT  (Monitor)  or
519              your host computer.
520              Synchronisation  is used to elimiate magnetic effects of a Moni‐
521              tor using the CRT sync cable.
522              Default: 0
523
524       -block 0|1
525              Set (1) or do not set (0) the FNDELAY flag to the filedescriptor
526              of the serial port.
527              Default: 0
528
529
530       -filter AC_NARROW | AC_WIDE | DC_FILTER
531              Enable  different  filters.  Read the Flock of Birds manuals for
532              more information.
533              This option can be repeated to use multiple filters.
534              Default: no filter set, using filter set by Flock autoconfigura‐
535              tion.
536
537       -suddenchangelock 0|1
538              Allow  (0) or disallow (1) setting of messured position and ori‐
539              entation when a sudden large messurement occure.
540              Default: 1
541
542       -calfile calibrationfile
543              Use a VR Juggler style file to calibrate position messurement.
544
545       -ignoresize delta
546              Ignore position jumps from flock bigger  than  delta.   This  is
547              much like suddenchangelock, but pure software based.
548              Default: 0
549

MISCOPTIONS

551       -tessellation integer
552              Set  the  default  tessellation  of NURBS and superformula based
553              parametric shapes to integer.
554              The meaning of tessellation decide how many edges are  generated
555              in one direction.
556              A low default tessellation result in faster rendering of related
557              shapes with tessellation set to 0 inside the white_dune applica‐
558              tion,  but can give a reduced view, so details of a shape may be
559              hidden.
560              If no -tessellation option is used, the default tessellation  is
561              32.
562
563       -indirect
564              Forces  indirect OpenGL rendering, even when 3D hardware render‐
565              ing accelleration is available. In case of possible 3D  hardware
566              rendering  accelleration  this  option can drastically slow down
567              the program.
568              This option is most usefull on machines with problematic graphic
569              drivers or halfbaken 3D desktop features like compiz.
570
571       -nogllist
572              Forces OpenGL to render without glList commands.
573              The  use  of glList commands can increase the rendering speed of
574              static objects (without morphing) dramatically.
575              This option is only usefull on machines with  errors  in  glList
576              commands  or insufficent memory on the graphics card, so the use
577              of glList commands would uselessly fail.
578
579       -hidestandardtoolbar
580              Hide the standard toolbar.  This option is usefull  on  machines
581              with small displays.
582
583       -uninstall
584              Output  information  (if  available) on the commandline, how the
585              white_dune application can be uninstalled and exit.
586              Under Micro$oft Windows it additionally clears  all  information
587              activly  set by white_dune (under HKEY_CURRENT_USER) in the Win‐
588              dows registry.
589
590       -checkSimpleCyclicSceneGraph
591              A cyclic scenegraph is caused by a node, which  contains  itself
592              (in form of a USE command of itself) in its scenegraph branch.
593              Cyclic scenegraphs are illegal in VRML97/X3D, tools reading such
594              a file may loop infinitely or eat up all  the  memory  and  then
595              crash.   Nevertheless  some  tools  (or people) tend to generate
596              such cyclic scenegraphs.  White_dune is able to detect one depth
597              cyclic  scenegraphs,  but  the detection can result in a perfor‐
598              mance problem when  loading  huge  VRML97/X3D  files.  Therefore
599              white_dune  do  not  check for cyclic scenegraphs by default. If
600              white_dune loops infinitely or crashes after a long  time  while
601              loading  a  VRML/X3D file, a cyclic scenegraph shoud be supposed
602              and this option should be used.
603
604       -scriptHeaderC header
605              It is possible to use Script nodes in C source export.  The  url
606              field in Script nodes ships code from computer languages. If one
607              string points to a file (e.g. a java class file), this  file  is
608              executed to process events.  Beside that, it is also possible to
609              inline source code below  a  header.   The  default  header  for
610              inlined  code  for  the  C  source export is "c:".  The VRML/X3D
611              standard do not restrict the usage of various  programming  lan‐
612              guages in the Script node.
613              This option changes this header to avoid name clashes with other
614              tools using the default header in a different context.
615
616       -scriptHeaderC++ header
617              It is possible to use Script nodes in C++ source export. The url
618              field in Script nodes ships code from computer languages. If one
619              string points to a file (e.g. a java class file), this  file  is
620              executed to process events.  Beside that, it is also possible to
621              inline source code below  a  header.   The  default  header  for
622              inlined  code for the C++ source export is "c++:".  The VRML/X3D
623              standard do not restrict the usage of various  programming  lan‐
624              guages in the Script node.
625              This option changes this header to avoid name clashes with other
626              tools using the default header in a different context.
627
628       -scriptHeaderJava header
629              It is possible to use Script nodes in java  source  export.  The
630              url field in Script nodes ships code from computer languages. If
631              one string points to a file (e.g. a java class file), this  file
632              is executed to process events.  Beside that, it is also possible
633              to inline source code below a header.  The  default  header  for
634              inlined  code  for  the  java  source  export  is  "java:".  The
635              VRML/X3D standard do not restrict the usage of various  program‐
636              ming languages in the Script node.
637              This option changes this header to avoid name clashes with other
638              tools using the default header in a different context.
639
640       -psn_???
641              Only valid under MacOSX.
642              Options starting with the string "-psn_" are  generated  by  the
643              Aqua  desktop  under on some versions of MacOSX and are silently
644              ignored.
645
646       -exitPid pid
647              Only valid under MacOSX.
648              Needed for the Aqua desktop of  MacOSX  to  kill  the  whitedune
649              starter program on exit.
650
651       -fn font
652              Only valid under Linux/UNIX/MacOSX.
653              Set  the  unix  font. Check for valid fonts with the xlsfonts(1)
654              command.
655
656       -demomode timeout
657              This options is intended for running the program  as  eyecatcher
658              eg. on a fair.
659              The animation of a scene (e.g. Viewpoint animation) is started.
660              In  case  of input from the mouse (mouseclick), keyboard or a 3D
661              inputdevice, the animation is stopped an the user  can  navigate
662              through the 3D world.
663              timeout  seconds after the last input, the animation is starting
664              again.
665
666       -fullscreen
667              Starts dune in full screen mode
668
669       -filedialogdir directory
670              Change to a specific directory before opening a filedialog.
671
672       -proto category protofile
673              Adds the VRML PROTO in the file protofile to the list of  avail‐
674              able  PROTOs in the create => proto menu in the category submenu
675              and exit.
676
677       -renderslower
678              This option uses a slower render mode.
679
680       --version
681              Print out version information and exit.
682
683       --copyrightdetails
684              Print out detailed copyright informations and exit.
685

MOUSE/KEYS

687       In the 3D view, dune support the following mouse / keyboard commands:
688
689       Mouse Button 1 click:
690              Select objects/3D handlers (e.g. arrows or  white  boxes)  under
691              the cursor (or under the top of 3D cursor in stereoview)
692
693       Mouse Button 2 click:
694              Additionly  select  white  box  3D handlers under the cursor (or
695              under the top of 3D cursor in stereoview)
696
697       Mouse Button 1 drag:
698              Drag objects/3D handles around
699
700       Mouse Button 3 drag:
701              Select multiple 3D handles
702
703       CTRL-Mouse Button 1 drag:
704              Virtual trackball navigation
705
706       SHIFT-Mouse Button 1 drag:
707              Forward/backward navigation
708
709       CTRL+SHIFT-Mouse Button 1 drag:
710              up/down/left/right navigation
711
712       ALT-Mouse Button 1 drag: (SGI style)
713              Virtual trackball navigation
714
715       ALT-Mouse Button 2 drag: (SGI style)
716              up/down/left/right navigation
717
718       ALT-Mouse Button 1+2 drag: (SGI style)
719              forward/backward navigation
720
721       Navigation icon pressed-Mouse Button 1 drag:
722              Virtual trackball navigation
723
724       Navigation icon pressed-Mouse Button 2 drag:
725              forward/backward navigation
726
727       Navigation icon-Mouse Button 1+2 drag:
728              up/down/left/right navigation
729
730       In the route view, dune support the following  mouse  /  keyboard  com‐
731       mands:
732
733       Mouse  Button  1 click to event socket of a node and drag to a matching
734       event
735              socket:
736              create a ROUTE connection
737
738       Mouse Button 1 click to nothing and drag:
739              cut a ROUTE connection
740
741       Mouse Button 1 click to a node and drag:
742              move node in the route view
743
744       Mouse Button 1 click to a  node,  hold  Mouse  Button1,  pressing  Page
745       Up/Down key
746              move  node  in the route view by one page (works only on correct
747              motif/lesstif implementations)
748
749       Information about other keyboard usage can be found in the toolbar.
750
751       Tips how to use dune can be found in the docs directory of dune
752

C/C++/JAVA SOURCE EXPORT

754       The export to source code is a mainly a export of the information (num‐
755       bers and strings) of the VRML/X3D scenegraph tree.
756       White_dune  do not export something like C source with OpenGL commands.
757       The exported code is independend of any rendering engine, but should be
758       usable with any 3D API.
759       Additional code is needed to render the scenegraph with a 3D API.  Cur‐
760       rently white_dune comes with only two sets of such additinal  code  for
761       the  Java  Monkey Engine (JME) and C/C++ OpenGL.  This code can be used
762       as a model for writing code for additional renderengines.
763       The information of the scenegraph is written into a class/struct with a
764       name  concatinated  from  the  string  of  the prefix argument (default
765       "X3d") and the string  "SceneGraph".  The  scenegraph  class/struct  is
766       filled  with  references  to the different VRML/X3D commands ("nodes").
767       The name of the type of such a node is concatinated from the string  of
768       the prefix argument (default "X3d") and "Node". Each node type contains
769       the data of the VRML/X3D node in variables named in the same way as the
770       VRML/X3D fields.
771       The  following  table shows the mapping from the VRML/X3D field type to
772       the C, C++ and java datatypes:
773
774                          │              │              │
775        VRML/X3D datatype │ C datatype   │ C++ datatype │ java datatype
776       ───────────────────┼──────────────┼──────────────┼────────────────
777        SFBool            │ short        │ bool         │ boolean
778        SFInt32           │ int          │ int          │ int
779        SFImage           │ int*         │ int*         │ int[]
780        SFFloat           │ float        │ float        │ float
781        SFVec2f           │ float[2]     │ float[2]     │ float[2]
782        SFVec3f           │ float[3]     │ float[3]     │ float[3]
783        SFVec4f           │ float[4]     │ float[4]     │ float[4]
784        SFRotation        │ float[4]     │ float[4]     │ float[4]
785        SFMatrix3f        │ float[9]     │ float[9]     │ float[9]
786        SFMatrix4f        │ float[16]    │ float[16]    │ float[16]
787        SFColor           │ float[3]     │ float[3]     │ float[3]
788        SFColorRGBA       │ float[4]     │ float[4]     │ float[4]
789        SFDouble          │ double       │ double       │ double
790        SFVec3d           │ double[3]    │ double[3]    │ double[3]
791        SFTime            │ double       │ double       │ double
792        SFString          │ const char*  │ const char*  │ String
793        SFNode (***)      │ X3dNode*     │ X3dNode*     │ X3dNode
794                          │              │              │
795        MFBool            │ short*       │ bool*        │ boolean[]
796        MFInt32           │ int*         │ int*         │ int[]
797        MFFloat           │ float*       │ float*       │ float[]
798        MFVec2f           │ float*       │ float*       │ float[]
799        MFVec3f           │ float*       │ float*       │ float[]
800        MFVec4f           │ float*       │ float*       │ float[]
801        MFRotation        │ float*       │ float*       │ float[]
802        MFMatrix3f        │ float*       │ float*       │ float[]
803        MFMatrix4f        │ float*       │ float*       │ float[]
804        MFColor           │ float*       │ float*       │ float[]
805        MFColorRGBA       │ float*       │ float*       │ float[]
806        MFDouble          │ double*      │ double*      │ double[]
807        MFVec3d           │ double*      │ double*      │ double[]
808        MFTime            │ double*      │ double*      │ double[]
809        MFString          │ const char** │ const char** │ String[]
810        MFNode (***)      │ X3dNode**    │ X3dNode**    │ X3dNode[]
811       (***) The "X3d" part of the name is the default, it can be replaced  by
812       the string of the prefix argument.
813       For  any  MF*  type field (and a SFImage type field) the number of int,
814       float etc. values in the array is stored in a variable of  the  X3dNode
815       struct/class composed from "m_", the name of the field and "_length" in
816       case of a C/C++ export.  Java do not need such a  variable,  cause  the
817       length  of  a array is always available as the .length component of the
818       array.
819
820       The scenegraph is a tree of nodes. The root of the scenegraph is (simi‐
821       lar to the white_dune internals) a VRML/X3D Group node named "root".
822       In  a  Group  node,  the contained nodes are attached via a field named
823       "children" of type MFNode.
824       For example imagine the following VRML file:
825
826       #VRML V2.0 utf8
827
828       Group
829         {
830         children
831           [
832           Group
833             {
834             }
835           Group
836             {
837             }
838           DEF NAME_OF_FOGNODE Fog
839             {
840             color 1 0.50000000 1
841             }
842           ]
843         }
844
845       If no prefix argument is used, the first node in  a  VRML/X3D  file  is
846       represended  in  the  exported  C  source as "root->children[0]" in the
847       "X3dSceneGraph" struct.
848       If the first node in the VRML/X3D file is also a Group node and contain
849       three   other  nodes,  the  third  of  this  nodes  is  represended  as
850       "root->children[0]->children[2]" in the "X3dSceneGraph" struct.
851       If the third of this nodes is a Fog node, the "color" field of the  Fog
852       node   is   represended  in  the  exported  C  source  as  "root->chil‐
853       dren[0]->children[2]->color" in the "X3dSceneGraph" struct.
854       The type of the "color" field of the Fog node is SFColor.  The  SFColor
855       type  is  represented  as  a  array of 3 floating point values in the C
856       source, used to store the red, green and blue part of the color.
857       So the green part of the fog color is represended  in  the  exported  C
858       source  as "root->children[0]->children[2]->color[1]" in the "X3dScene‐
859       Graph" struct.
860       A C++ export would also use  "root->children[0]->children[2]->color[1]"
861       in the  "X3dSceneGraph" class.
862       A    java    export   would   similarly   use   "root.children[0].chil‐
863       dren[2].color[1]" in the "X3dSceneGraph" class.
864
865       There is a second way to access the fields of the Fog node.
866       In VRML/X3D it is possible to name nodes  with  a  "DEF"  command.  The
867       string  behind  the DEF command ("NAME_OF_FOGNODE" in the example) also
868       occures in the in the "X3dSceneGraph" struct and can be  directly  used
869       to access the matching VRML/X3D data.
870       So  the  green  part  of the fog color is represended in the exported C
871       source as "NAME_OF_FOGNODE->color[1]" in the "X3dSceneGraph" struct.
872       A  C++  export  would  also  use  "NAME_OF_FOGNODE->color[1]"  in   the
873       "X3dSceneGraph" class.
874       A  java  export  would  use similarly "NAME_OF_FOGNODE.color[1]" in the
875       "X3dSceneGraph" class.
876       A problem can occure, if  the  string  behind  the  DEF  command  is  a
877       reserved  keyword  in the target language. For example, the 3D modeller
878       wings3d often uses the DEF name "default" when exporting VRML97 files.
879       In this case, the DEF name will be renamed (e.g. to "default1")  and  a
880       warning would be written to standard error during the export.
881
882       Beside the access of node data directly, there are also 2 sets of call‐
883       backs to handle the data of a whole scenegraph (or a branch of  it):  a
884       set of callbacks to render the content of the scenegraph branch ("*Ren‐
885       derCallback") and  a  additional  set  of  callbacks  for  other  tasks
886       ("*DoWithDataCallback").
887       There  are  also  callbacks to replace the functions, which per default
888       alltogether traverse the Scenegraph ("*TreeRenderCallback" and  "*Tree‐
889       DoWithDataCallback").
890       The  callback  mechanism and the scenegraph initialization differs from
891       programming language to programming language.
892
893       C:
894       The scenegraph (default argument "X3d" for prefix)  can  be  declarated
895       with
896          struct X3dSceneGraph sceneGraph;
897       and initialized with
898          X3dSceneGraphInit(&sceneGraph);
899       A callback function for any X3D node type (like Fog, Text, IndexedFace‐
900       Set etc.)  has the declaration
901          void mycallbackFunction(X3dNode *self, void *data)
902       To access the fields of the X3D node,  you  usually  cast  the  X3dNode
903       pointer  to  a  pointer to the type build from the string of the prefix
904       argument (default "X3d") and the name of the X3D node type  you  access
905       with this callback (e.g. X3dFog, X3dText, X3dIndexedFaceSet etc.).
906          X3dFog *node = (X3dFog *)self;
907          X3dText *node = (X3dText *)self;
908          X3dIndexedFaceSet *node = (X3dIndexedFaceSet *)self;
909          etc.
910       With this variable "node" the fields the X3D node can be accessed.
911       To  install  the callback, simply assign you function pointer to "call‐
912       backFunction" to a variable  build from the string of the prefix  argu‐
913       ment (default "X3d"), the the name of the X3D node and the string "Ren‐
914       derCallback" or "DoWithDataCallback". E.g.
915          X3dFogRenderCallback = mycallbackFunction;
916          X3dTextDoWithDataCallback = mycallbackFunction;
917          X3dIndexedFaceSetRenderCallback = mycallbackFunction;
918       To run the Render or DoWithData functions  with  the  scenegraph  tree,
919       just use
920          X3dGroupTreeDoWithData(&sceneGraph.root, NULL);
921       Instead  of using NULL, other data can be passed to the "data" argument
922       of the callback functions.
923
924       C++:
925       The callback mechanism is very similar to the C mechanism.
926       The main difference is the storage of the callback functions. While the
927       callbackfunctions  in  C  are stored in global space, the C++ callback‐
928       functions are stored in the static part of the matching node type.
929       Instead of using
930          X3dFogRenderCallback = mycallbackFunction; // C
931       a C++ program would use
932          X3dFog::renderCallback = mycallbackFunction; // C++
933       In C++ there is no need to call a initialization function  for  "scene‐
934       Graph".  A constructor is called when the
935          X3dSceneGraph sceneGraph;
936       declaration is used.
937       To  run  the  Render  or  DoWithData functions with the scenegraph tree
938       "sceneGraph.render(NULL);" or "sceneGraph.doWithData(NULL);" is used.
939       NULL can be replaced by other data, that will be passed to  the  "data"
940       argument of the callback function.
941
942       java:
943       The  java callback mechanism is a bit different, it is based on inheri‐
944       tance.
945       The callback function is part of  a  class,  that  extends  a  matching
946       class:
947          class  MyCallbackClass extends X3dFogRenderCallback {
948             public void render(X3dNode node) {
949       The new class is used in the following example:
950          MyCallbackClass myCallback = new MyCallbackClass();
951          X3dSceneGraph sceneGraph = new X3dSceneGraph();
952          X3dText.setX3dTextRenderCallback(myCallback);
953          sceneGraph.render();
954
955       With  the  the -manyclasses option, the last line changes to "X3dScene‐
956       Graph.render();". The access to a  node  with  a  DEF  command  in  the
957       x3dv/vrml file changes also to a static variable in a similar way.
958
959       Finally  there  are  additional  callbacks ("*ProcessEventCallback") to
960       process events distributed by VRML/X3D ROUTE commands.
961       A example: a usual animation of a moving Sphere, is driven by  a  event
962       from a TimeSensor node. There is a ROUTE command to send the event into
963       a PositionInterpolator node, which calculate the  matching  translation
964       of  the  Sphere.  There is also a ROUTE command to send the translation
965       event to a Transform node.
966       In the source code export, the inputOnly/outputOnly events  are  stored
967       as  usual  variables.  The  functions  used  for *ProcessEventCallbacks
968       should read the inputOnly event  variables  and  write  the  outputOnly
969       event variables.
970       Similar  to  the  sceneGraph. render() function, there is a sceneGraph.
971       X3dProcessEvent() function.
972       During the source code export, white_dune searches for  the  node  (and
973       similar nodes) with output events, but no input event.
974       The  exported  code  calls  X3dProcessEvent() with this first node of a
975       ROUTE. This should generate data in the outputOnly event  variables  of
976       this first node of a ROUTE.
977       By following the ROUTE, the exported code copies the data from the out‐
978       putOnly event variable of the first node to the inputOnly  event  vari‐
979       able of the second node of a ROUTE.
980       The  exported  code  calls X3dProcessEvents() with the second node of a
981       ROUTE to create data in the outputOnly event  variable  of  the  second
982       node.
983       By following the ROUTE, the exported code copies the data from the out‐
984       putOnly event variable of the second node to the inputOnly event  vari‐
985       able of the third node of a ROUTE.
986       And so on.
987       At  the  end  of  the ROUTE chain, X3dProcessEvent() should process the
988       inputOnly event varibles of the last node in the ROUTE chain.
989       In a simple example, the following X3DV file is exported:
990
991       #X3D V3.0 utf8
992       PROFILE Interchange
993
994       DEF Transform1 Transform {
995         children
996           Shape {
997             appearance Appearance {
998               material Material {
999               }
1000             }
1001             geometry Box {
1002             }
1003           }
1004       }
1005
1006       DEF TimeSensor1 TimeSensor {
1007         cycleInterval 5
1008         loop TRUE
1009       }
1010
1011       DEF PositionInterpolator1 PositionInterpolator {
1012         key [
1013           0
1014           1
1015         ]
1016         keyValue [
1017           0 0 0
1018           1 0 0
1019         ]
1020       }
1021
1022       ROUTE TimeSensor1.fraction_changed TO PositionInterpolator1.set_fraction
1023       ROUTE PositionInterpolator1.value_changed TO Transform1.set_translation
1024
1025       The most simple code, that could be used  to  implement  this  (exactly
1026       this) PositionInterpolator would be in C (with prefix "X3d"):
1027
1028       int PositionInterpolatorCallback(X3dNode *node, const char *eventName,
1029                                        void* extraData)
1030       {
1031          struct X3dPositionInterpolator *data = (struct X3dPositionInterpolator*)node;
1032          data->value_changed[0] = data->set_fraction;
1033          data->value_changed[0] = 0;
1034          data->value_changed[0] = 0;
1035          return 1;
1036       }
1037
1038       Just like the Render callback functions, the callback is used with
1039       X3dPositionInterpolatorProcessEventCallback = PositionInterpolatorCall‐
1040       back;
1041       The matching code in C++ is rather similar
1042
1043       bool PositionInterpolatorCallback(X3dNode *node, const char *eventName,
1044                                         void* extraData)
1045       {
1046          X3dPositionInterpolator *data = (X3dPositionInterpolator*)node;
1047          data->value_changed[0] = data->set_fraction;
1048          data->value_changed[0] = 0;
1049          data->value_changed[0] = 0;
1050          return true;
1051       }
1052
1053       The callback is used with
1054       X3dPositionInterpolator::processEventCallback  =  PositionInterpolator‐
1055       Callback;
1056       The matching code in java uses inheritance
1057
1058       class PositionInterpolatorCallback extends X3dPositionInterpolatorProcessEventCallback {
1059           public boolean processEvent(X3dNode node, String eventName) {
1060               X3dPositionInterpolator data = (X3dPositionInterpolator)node;
1061               data->value_changed[0] = data->set_fraction;
1062               data->value_changed[0] = 0;
1063               data->value_changed[0] = 0;
1064               return true;
1065           }
1066       }
1067
1068       The callback is used with
1069
1070       PositionInterpolatorCallback callback = new PositionInterpolatorCallback();
1071       X3dPositionInterpolator.setX3dPositionInterpolatorProcessEventCallback(callback);
1072
1073       The  return  value  of the ProcessEventCallbacks (1/0 for C, true/false
1074       for C++/java) tells the event distributing system (VRML/X3D ROUTE  com‐
1075       mands)  if  there  is a generated event that needs to be distributed to
1076       the next VRML/X3D node or not.
1077
1078       It is possible to use a VRML/X3D Script node to process data in C,  C++
1079       or java.
1080       Similar  to  inlined  javascript/ecmascript  code, the "url" field of a
1081       Script node contains strings with a header.
1082       The syntax of the code in C/C++/java is very similar to the code  in  a
1083       ProcessEvent  callback. The only difference is the node name (Position‐
1084       Interpolator in the callbacks above). Each Script node  in  a  VRML/X3D
1085       file  has  another  set  of events and fields. A Script node is useless
1086       without a DEF name, therefore the node name is replaced by the concate‐
1087       nation of the String "Script_" and the DEF name of the Script node.
1088
1089       If no -scriptHeaderC/-scriptHeaderC++/-scriptHeaderJava option is used,
1090       the Script node that replaces the PositionInterpolator in the  examples
1091       above would be:
1092
1093       DEF Script1 Script {
1094         eventIn SFFloat float1_in
1095         eventOut SFVec3f vec3f1_out
1096         url [
1097           "javascript:
1098           // eventOut SFVec3f vec3f1_out //
1099           function float1_in(value) {
1100              // value  SFFloat
1101              vec3f1_out = new SFVec3f(value, 0, 0);
1102           }
1103           "
1104
1105           "c:
1106           struct X3dScript_Script1 *self = node;
1107           self->vec3f1_out[0] = self->float1_in;
1108           self->vec3f1_out[1] = 0;
1109           self->vec3f1_out[2] = 0;
1110           "
1111
1112           "c++:
1113           X3dScript_Script1 *self = (X3dScript_Script1 *)node;
1114           self->vec3f1_out[0] = self->float1_in;
1115           self->vec3f1_out[1] = 0;
1116           self->vec3f1_out[2] = 0;
1117           "
1118
1119           "java:
1120           X3dScript_Script1 script = (X3dScript_Script1)node;
1121           script.vec3f1_out[0] = script.float1_in;
1122           script.vec3f1_out[1] = 0;
1123           script.vec3f1_out[2] = 0;
1124           "
1125           ]
1126         }
1127
1128       When you use a Script node in the Wonderland module export and the java
1129       code needs a extra "import" statement, create a  special  WonderlandIm‐
1130       portJava export data container node and add the import statement to the
1131       "code" field.
1132
1133       See the directories docs/export_example_c, docs/export_example_c++  and
1134       docs/export_example_java of the white_dune source archive for examples.
1135

EXAMPLES

1137       dune -nostereo
1138              start dune this way, if you have a stereo capable visual, but no
1139              shutterglases or other quadbuffer based technology.
1140
1141       dune -xinput magellan -allxyz=10,100,,0.0000002 -xinput dialbox-1  -x=0
1142       -y=2 -z=4 -xrot=1 -yrot=3 -zrot=5 -all=1000,,wheel
1143              starts  dune with a magellan xinputdevice with factor 10, accel‐
1144              eration 100 and a ignore value of 0.0000002 on the xyz axes  and
1145              a dialbox device with
1146              x axis = 0. axis
1147              y axis = 2. axis
1148              z axis = 4. axis
1149              rotation around x axis = 1. axis
1150              rotation around y axis = 3. axis
1151              rotation around y axis = 5. axis
1152              all axes use factor 1000 and all to not deliver zero if released
1153
1154       dune -joystick /dev/input/js0 -z=,3 -axes=3
1155              starts  dune  with  a  linux joystick, set acceleration of the z
1156              axis to 3 and disables the 4. (5., 6., ...) axis.
1157
1158       dune -xinput magellan -z=3 -xrot=2 -none=2
1159              starts dune with a xinput/magellan device, swapping axis  number
1160              2 and axis number 3, with axis number 2 disabled.
1161
1162       dune -nxtdials
1163              starts dune with a mindstorms nxt usb device, all axes are auto‐
1164              matic handled as wheels.
1165
1166       dune -aflock /dev/ttyS1 -numbirds 2 -master 1 -wand 2 -tracker 3
1167              starts dune with a Ascension Flock of Birds.  Master transmitter
1168              (a Extended Range Controller (ERC)) at FBB adress 1 is connected
1169              to the serial device /dev/ttyS1, use 2 Birds, one attached to  a
1170              "3D  Mouse"  device  at  FBB adress 2 and one attached to a head
1171              tracking device at FBB adress 3.
1172
1173       dune -wonderland wonderland/modules -manyclasses Test.x3dv
1174              Exports the content of Test.x3dv as java source  for  wonderland
1175              0.5 to the directory wonderland/modules/exportX3dv/test.
1176              To  compile  the  java  source  to  a  wonderland module wonder‐
1177              land/modules/exportX3dv/test/dist/test.jar change to the  direc‐
1178              tory  wonderland/modules/exportX3dv/test  and  use "ant" or "ant
1179              deploy".
1180

FILES

1182       $HOME/.dunerc
1183       default file to load/store settings
1184       (see DUNERC environment variable for more information)
1185
1186       $HOME/.dune_crash_*_*.wrl
1187              stores the vrml file in case of a crash
1188

ENVIRONMENT

1190       DUNERC filename to load/store details of dunes screen layout and
1191              settings of the "options" menupoint.
1192              If this filename is not writable, settings are only loaded,  not
1193              stored.
1194              If  DUNERC  is  not  set,  the  file $HOME/.dunerc is used under
1195              Linux/UNIX/MacOSX or the registry under Micro$oft Windows.
1196
1197       DUNEDOCS  path to documentation directory
1198
1199       LANG  the first two characters of then environment variable LANG
1200              are compared to the ISO 3166 country shortcut of  the  supported
1201              languages.   For  example, if LANG is set to de_DE, german menu,
1202              dialogs and errormessages are used.
1203
1205           Dune, graphical vrml97 editor and animation tool
1206           Copyright (C) 2000-2002  Stephen F. White and others
1207           This program is free software; you can redistribute it
1208           and/or modify it under the terms of the
1209           GNU General Public License
1210           as published by the Free Software Foundation; either
1211           version 2 of the License, or (at your option) any later
1212           version.
1213

BUGS

1215       Dune need valid vrml97/x3dv code to work, it can  not  load  a  invalid
1216       VRML97/X3DV file.
1217       White_dune can load XML encoded X3D files via a translator.
1218       Use  the  menupoint Options -> Input Settings... to configure a X3D/XML
1219       to X3DV translator.
1220       dune is  software  in  development,  it  is  not  100%  free  of  bugs.
1221       Unsucessful crashes should be rare, lucky crashes allow to get back the
1222       data. (see "EXIT STATUS").
1223       Currently not all VRML97/X3D nodes are  displayed  (e.g.  MovieTexture,
1224       NurbsSweptSurface  or  NurbsSwungSurface)  or displayed correctly (e.g.
1225       Text or Viewpoint).
1226

DIAGNOSTICS

1228       Exit status is 0 for sucessfull operation.
1229       Exit status is 1 if inputfile can not be sucessfully read or other ini‐
1230       tialisation error.
1231       Exit status is 2 in case of a X11 server crash.
1232       Exit status is 11 in case of a X11 initialisation error.
1233       Exit  status  is 97 in case one of the inputfiles is a VRML 1 file (the
1234       VRML 1 format is not supported).
1235       In case of a coredump/crash, the exit status can be undefined.
1236

EXIT STATUS

1238       In case of a crash (e.g. X11 server crash or signal (coredump) in  case
1239       of  a  internal  error),  dune tries to write it's contence to the file
1240       $HOME/.dune_crash_*_*.wrl. This works in most cases,  but  not  if  the
1241       internal   data  structure  has  been  destroyed.  When  white_dune  is
1242       restarted, the filename is shown in the "recent files" part of the pro‐
1243       gram menu.
1244       Intermediate  files  .dune*  files  (e.g. for preview) are only deleted
1245       when white_dune exits normally. In case of a crash, this files remain.
1246

SEE ALSO

1248       illegal2vrml(1), javac(1), java(1), Xvfb(1), xterm(1), FreeWRL(1), cos‐
1249       moplayer(1), cosmoworlds(1),
1250
1251       ISO/IEC 14772 ⟨URL: http://www.web3d.org/x3d/specifications/vrml/
1252
1253       ISO/IEC 19776-2 ⟨URL: http://www.web3d.org/specifications/
1254

AUTHORS

1256       Stephen F. White and others
1257       See README file for details
1258
1259
1260
1261white_dune 0.99rc766              2017-09-20                           dune(1)
Impressum