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