encoding utf-8 source OdinMaster.th select OdinmineMP@Odinmine #####PDF Map exports##### export map -projection plan -layout local -o Odinmaster.pdf #export map -projection extended -layout local -o OdinmasterExtended.pdf #export map -proj [elevation 50] -layout local -o O_MasterElevation50.pdf ##### /PDF Map exports##### #####Tools and Visuals##### export model -fmt survex -o Odinmaster.3d export map -o OdinmasterKML.kml #export model -o OdinmasterKMLtree.kml export model -o Odinmaster.lox #export map -proj [elevation 50] -fmt xvi -o O_MasterElevation50.xvi ##### /Tools and Visuals##### layout local base-scale 1 500 scale 1 1000 symbol-set BCRA symbol-hide group cave-centreline min-symbol-scale s ### define water to be light blue # def a_water (expr p) = # T:=identity; # thfill p withcolor (0.48, 0.84, 1.0); # enddef; ### define sump to be dark blue # def a_sump (expr p) = # T:=identity; # thfill p withcolor (0.05, 0.0, 0.7); # enddef; endcode # code metapost # fonts_setup(12,16,18,24, 28) code metapost def l_u_wall (expr P)= T:=identity; if path P: if known(ATTR_color): draw P withpen PenA withcolor scantokens(ATTR_color); else: draw P withpen PenA; fi; fi; enddef; initsymbol("l_u_wall"); ### define compass rose to be shaded compass rose as per Juraj Halama, https://therion.speleo.sk/wiki/metapost#north_arrows ### modified: fallback for MagDecl, coarser gradient steps, configurable scale_value def s_northarrow (expr rot) = if unknown rose_scale: rose_scale := 0.5; fi scale_value = rose_scale; if unknown MagDecl: decl := 0; else: decl := MagDecl; fi T := identity; picture tmp_pic; tmp_pic = image ( pickup pencircle scaled 1; thdraw fullcircle scaled 4cm; thdraw fullcircle scaled 2.75cm; pickup pencircle scaled .5; thdraw fullcircle scaled 3.75cm; for whereto=11.25 step 22.5 until 360: thdraw dir(whereto)*2.75/2cm--dir(whereto)*3.75/2cm; endfor; % arrows path halfarrow; halfarrow = (+.3cm,.3cm)--(0,2cm)--(0,0)--cycle; for whereto = 45 step 90 until 315: thfill halfarrow scaled .85 rotated whereto withcolor .30; pickup pencircle scaled 1; for halfarrowgrad = 1 step -.1 until 0: thdraw ((halfarrowgrad*.3cm, halfarrowgrad*.3cm)--(0,2cm)) scaled .85 rotatedaround ((0, 0),whereto) withcolor .75halfarrowgrad; endfor; pickup pencircle scaled .5; thdraw halfarrow scaled .85 rotated whereto;; thfill halfarrow xscaled -1 scaled .85 rotated whereto withcolor white; thdraw halfarrow xscaled -1 scaled .85 rotated whereto;; endfor; for whereto = 0 step 90 until 270: thfill halfarrow scaled 1.15 rotated whereto withcolor .30; pickup pencircle scaled 1; for halfarrowgrad = 1 step -.1 until 0: thdraw ((halfarrowgrad*.3cm, halfarrowgrad*.3cm)--(0,2cm)) scaled 1.15 rotatedaround ((0, 0),whereto) withcolor .75halfarrowgrad; endfor; pickup pencircle scaled .5; thdraw halfarrow scaled 1.15 rotated whereto;; thfill halfarrow xscaled -1 scaled 1.15 rotated whereto withcolor white; thdraw halfarrow xscaled -1 scaled 1.15 rotated whereto;; endfor; % central circles thfill fullcircle scaled .56cm withcolor 1white; pickup pencircle scaled .5; thdraw fullcircle scaled .56cm; thfill fullcircle scaled .3cm withcolor .30; % characters label.bot(thTEX("\bf{}N") scaled 1.5, (0,2.9cm)); label.lft(thTEX("\bf{}E") scaled 1.5, (2.9cm,0)); label.rt (thTEX("\bf{}W") scaled 1.5, (-2.95cm,0)); label.top(thTEX("\bf{}S") scaled 1.5, (0,-2.9cm)); % space among characters pickup pencircle scaled .5; thdraw (dir(45)*2cm)--(dir(45)*2.5cm); thdraw (dir(135)*2cm)--(dir(135)*2.5cm); thdraw (dir(225)*2cm)--(dir(225)*2.5cm); thdraw (dir(315)*2cm)--(dir(315)*2.5cm); ); thdraw tmp_pic scaled scale_value rotatedaround (origin, - rot); enddef; endcode endlayout