1Environment variables:
2
3Boolean; default off
4====================
5M4D_ALL_AT_ONCE -- if set, pass animation frames to X server in one shot
6M4D_CMAP_RESTRICT -- X: controls colormap allocation
7M4D_CULLVERTS -- currently no-op; would get rid of unused vertices
8                 when a frame is calculated.  Could be useful if we
9                 someday store animation frames in files
10M4D_DONT_CHECK_BBOX -- controls how stickers are picked
11M4D_DONT_DRAW_FRAME -- X: suppresses drawing of frame
12*M4D_DRAW_NEW_STATE -- forces explicit drawing of new state after each
13                       move.  Useful for debugging.
14M4D_EYEW -- Position of the "eye" in 4-space, on the +W axis.  Note that
15            the radius of the inscribed circle of the hypercube is LENGTH
16            (as described above, 3 by default).
17M4D_EYEZ -- Position of the eye in 3-space, on the +Z axis.
18M4D_HISTORY_DEBUG -- turns on debugging in History.cpp
19M4D_NOCOMPRESSMOTION -- X: keeps X server from compressing motion events
20                        while dragging the whole cube with shift-middle-down
21M4D_NOCULLCELLS -- if set, frontcell culling is disabled
22M4D_NOCULLFACES -- if set, backface culling is disabled
23M4D_NOZSORT -- if set, z-sorting is disabled
24M4D_NO_STRDUP_FIX -- X: toggles use of workaround
25*M4D_OUTLINE -- determines whether outlines should be drawn around stickers
26M4D_RESIZE_TOPLEVEL_FROM_TEXT -- X: related to resizing macros form
27M4D_XVERBOSE -- X: turn on verbose messages
28M4D_MACROS_ON_RIGHT -- place macros frame to the right
29M4D_FAST_AUTOMOVES -- if set, skip animation while running moves
30                      automatically such as during macro execution and
31                      moving to marks
32
33Default if unspecified
34======================
35*M4D_FACESHRINK -- fraction of full face size displayed
36*M4D_INC -- how many degrees of tilt/twirl x/y/X/Y/shift-middle-down do
37M4D_LENGTH -- initial dimensions.  Must be set before call to machine_init
38*M4D_NFRAMES_120 -- number of frames of animation for 120 degree turn
39*M4D_NFRAMES_180 -- number of frames of animation for 180 degree turn
40*M4D_NFRAMES_90 -- number of frames of animation for 90 degree turn
41*M4D_NSCRAMBLECHEN -- number of moves hitting "S" causes
42M4D_NSHADES -- X: number of shades to use
43*M4D_LOGFILE -- default logfile name
44*M4D_STICKERSHRINK -- fraction of full sticker size displayed
45M4D_TILT -- tilt (left-right position) of initial position
46M4D_TWIRL -- twirl (forward-backward position) of initial position
47
48
49In X implementation, all *'ed environment variables can be replaced by
50commandline options or X Resource values as follows:
51
52For example, adding "-outline" is equivalent to setting M4D_OUTLINE
53and adding "-logfile ~/tmp/magiccube4d.log" is equivalent to setting
54M4D_LOGFILE to ~/tmp/magiccube4d.log.
55
56M4D_DRAW_NEW_STATE: redraw
57M4D_OUTLINE: outline
58M4D_MACROS_ON_RIGHT: rightmacros
59M4D_FAST_AUTOMOVES: fastautomoves
60M4D_FACESHRINK: faceshrink
61M4D_INC: degrees
62M4D_NFRAMES_120: nframes120
63M4D_NFRAMES_180: nframes180
64M4D_NFRAMES_90: nframes90
65M4D_NSCRAMBLECHEN: nscramblechen
66M4D_LOGFILE: logfile
67M4D_STICKERSHRINK: stickershrink
68
69No validation is done on this.  At machine initialization, these
70commandline options or resource values are converted to environment
71variable definitions to avoid having to touch the rest of the code.
72