layout Mat_Std #type of used symbol sets SKBB/UIS/ASF/AUT/CCNP #setting this over-rides the metacode symbol swap done above! #symbol-set AUT #Adopt passage slope 'fat triangle arrows' in favour of default skinny arrows #symbol-assign line gradient BCRA #symbol-assign point gradient BCRA #hide passage height symbol (as we use this to control ceiling height in #lox models and do not want it displayed on surveys) symbol-hide point passage-height copy CustomisedSymbols copy WaterShading #Required for colour and b&w shading and colouring of water fills and symbols endlayout layout WaterShading #Patterns similar to standard definition of pattern_water_UIS and pattern_sump_UIS #Gives b&w shaded symbols with borders, unless custom colours are defined #in which case colour backgrounds defined in LayoutColourSymbols are used code metapost beginpattern(pattern_water); draw origin--10up withpen pensquare scaled (0.03u); % line thickness patternxstep(.3u); % spacing patterntransform(identity rotated 45); endpattern; beginpattern(pattern_sump); draw origin--(0,.3u) withpen pensquare scaled (0.03u); draw origin--(.3u,0) withpen pensquare scaled (0.03u); patterntransform(identity rotated 45); endpattern; def p_water (expr pos,theta,sc,al)= %Bruce Mutton 2010.06.20 for Therion 5.3.8 U:=(.425u,.3u); T:=identity aligned al rotated theta scaled sc shifted pos; pickup PenD; p:=fullcircle xscaled (1.2u) yscaled (0.8u) randomized (0.1u) rotated uniformdeviate (-45); if known colour_water_bg: thfill p withcolor colour_water_bg; else: thfill p withcolor white; fi; thfill p withpattern pattern_water; %%% withcolor black; %but with failed attempt at black hatch thdraw p; %outline enddef; def a_water (expr Path) = %Bruce Mutton 2010.06.20 for Therion 5.3.8 T:=identity; thclean Path; pickup PenD; if known colour_water_bg: thfill Path withcolor colour_water_bg; else: thfill Path withcolor white; fi; thfill Path withpattern pattern_water; %%thdraw Path; %outline, not needed as area drawn is defined by line border anyway %and border can be made invisible with subtype invisible where water meets sump in elevation enddef; def a_sump (expr Path) = %Bruce Mutton 2010.06.20 for Therion 5.3.8 T:=identity; thclean Path; pickup PenD; if known colour_sump_bg: thfill Path withcolor colour_sump_bg; else: thfill Path withcolor 0.7white; fi; thfill Path withpattern pattern_sump; %%thdraw Path; %outline, not needed as area drawn is defined by line border anyway %and border can be made invisible with subtype invisible where water meets sump in elevation enddef; endcode endlayout WaterShading layout LayoutColourSymbols #Still experimental (Dec 2011) and as per the comments in the code below, many of the default #'symbol-colour' statements do not work as I would like. The custom metapost #components work fine however. #affects colour symbol linework but not labels and not fills symbol-colour point station [54 7 60] #purple[54 7 60] #seems to affect +s, flag symbols and station text #survey cave symbol-colour group cave-centreline [35 16 16] # brown [35 16 16] # red brown [50 0 0] symbol-colour point cave-station [35 16 16] #ineffective? #symbol-colour point station-name [0 100 0] #survey surface symbol-colour group surface-centreline [54 74 29] # green [54 74 29] symbol-colour point surface-station [54 74 29] #ineffective? symbol-colour point flag:entrance [54 74 29] #ineffective? #magenta symbol-colour group equipment [80 0 40] # magenta [80 0 40] #dark blue # symbol-colour group water [22 22 95] # this breaks custom water definitions symbol-colour point water-flow [22 22 95] symbol-colour line water-flow [22 22 95] symbol-colour point water [22 22 95] # inconsistent? # symbol-colour area sump [22 22 95] # this breaks custom water definitions #light blue # symbol-colour area water [86 100 100] # this breaks custom water definitions #define colours for redefined water point & area code metapost %these colours affect fills, not the linework !color colour_water_bg; %! forces interpretation as metapost colour_water_bg := (0.86,1,1); %light blue !color colour_sump_bg; %! forces interpretation as metapost colour_sump_bg := (.22,.22,.95); %dark blue %these colours affect the linework !color colour_rope; %! forces interpretation as metapost colour_rope := (0.35,0.75,1.0); %blue %this colour for entrance symbol (not point station flag entrance) !color colour_entrance; %! forces interpretation as metapost colour_entrance := (0.54,0.74,0.29); endcode colour map-fg [97 86 38] # yellow brown colour-legend on endlayout LayoutColourSymbols layout CustomisedSymbols code metapost %Bruce Mutton 2010.06.20, after original author Georg Pacher %for Therion 5.3.8 beginpattern(pattern_sand); pickup PenC; p:= origin -- (0.01u,0.01u); for i=0.0u step 0.5u until 2.5u: %AUT is step 0.2u for j=0.0u step 0.5u until 2.5u: %AUT is step 0.2u draw p rotated uniformdeviate(360) shifted ((i,j) randomized 0.4u); %%AUT is 0.09u endfor; endfor; if BaseScale<=2.5: my_step:=2.6u; %mystep controls tessilation pattern, must synchronise with i, j above, was 2.4u else: my_step:=2.8u; %was 2.6u fi; patternstep(my_step,my_step); endpattern; def a_sand (expr Path) = T:=identity; %thclean Path; %makes passage colour more intense under area, not good for sand thfill Path withpattern pattern_sand ; enddef; beginpattern(pattern_pebbles); pickup PenC; path qq; for i=0.0u step 0.6u until 5.1u: for j=0.0u step 0.6u until 5.1u: qq := (superellipse((.05u,0),(0,.05u),(-.05u,0),(0,.-.05u),.75)) randomized (u/45) scaled (uniformdeviate(1.2)+.55) rotated uniformdeviate(360) shifted ((i,j) randomized 0.55u); draw qq; endfor; endfor; patternstep(5.1u,5.1u); endpattern; def a_pebbles (expr p) = T:=identity; thfill p withpattern pattern_pebbles; enddef; beginpattern(pattern_mud); pickup PenC; p:=(.0u,.0u) -- (0.25u,.0u); for i=0.0u step 0.6u until 5.4u: for j=0.0u step 0.6u until 5.4u: draw p shifted ((i,j) randomized 0.2u); draw p shifted ((i+.3u,j+.3u) randomized 0.2u); endfor; endfor; patternstep(5.4u,5.4u); endpattern; def a_clay (expr p) = T:=identity; thfill p withpattern pattern_mud; enddef; def p_slopearrow(expr pos,theta,sc,al)= U:=(.15u,.75u); T:=identity aligned al rotated theta scaled sc shifted pos; thfill (-.15u,0)--(0,.75u)--(.15u,0)--cycle; enddef; def p_flowstone_GB (expr pos,theta,sc,al)= U:=(.13u,.1u); T:=identity aligned al rotated theta scaled sc shifted pos; pickup PenC; p := ((-.13u,.1u){dir 60}..{dir -60}(.13u,.1u)); thdraw p shifted (.25u,-.12u); thdraw p shifted (-.25u,-.12u); thdraw p shifted (0,.12u); enddef; def s_scalebar (expr l, units, txt) = begingroup interim warningcheck:=0; tmpl:=l / Scale * cm * units / 2; tmpx:=l / Scale * cm * units / 5; tmph:=5bp; % bar height endgroup; pickup PenC; #Adjusted to make lines not stick out: 0.25*u/10,0 is half thickness of PenC (Andrew Atkinson) draw (-tmpl+0.25*u/10,0)--(tmpl-0.25*u/10,0); draw (tmpl-0.25*u/10,-tmph)--(-tmpl+0.25*u/10,-tmph); p:=(0,0)--(tmpx,0)--(tmpx,-tmph)--(0,-tmph)--cycle; for i:=-2.5 step 2 until 2: fill p shifted (i * tmpx,0); endfor; begingroup interim labeloffset:=3.5bp; for i:=0 step (l/5) until (l-1): tmpx:=tmpl * (i * 2 / l - 1); label.bot(thTEX(decimal (i)),(tmpx,-tmph)); endfor; label.bot(thTEX(decimal (l) & "\thinspace" & txt),(tmpl,-tmph)); label.top(thTEX("Scale 1 : " & decimal round(Scale*100)),(0,0)); endgroup; enddef; def l_rockborder (expr p) = if abs(llcorner p - urcorner p) > u: l_rockborder_UIS(p); fi; enddef; def l_rockedge (expr p) = if abs(llcorner p - urcorner p) > u: l_rockedge_UIS(p); fi; enddef; let a_debris = a_debris_AUT; let p_debris = p_debris_AUT; let l_wall_debris = l_wall_debris_AUT; let a_blocks = a_blocks_AUT; let p_blocks = p_blocks_AUT; let l_wall_blocks = l_wall_blocks_AUT; let p_gradient = p_slopearrow; let p_flowstone = p_flowstone_GB; endcode endlayout CustomisedSymbols #======================= #layout scales created Bruce Mutton 5 February 2009 #Updated for Matienzo surveys by Footleg 5 March 2014 layout LayoutScale500 #--------------------- #layout settings suited to 2d outputs at 1:500 scale scale 1 500 #base-scale 1 500 # use base-scale only if outputs to be photo enlarged # or reduced or to scale fonts and symbols scale-bar 100 m grid-size 100 100 100 metres # coordinate grid code metapost fonts_setup(6,8,12,14,18); #these fonts look good unscaled endlayout LayoutScale500 layout LayoutScale1000 #--------------------- #layout settings suited to 2d outputs at 1:1000 scale scale 1 1000 # Adopted default = 1000 #base-scale 1 1500 # use base-scale only if outputs to be photo enlarged # or reduced or to scale fonts and symbols scale-bar 100 m grid-size 100 100 100 metres # coordinate grid code metapost fonts_setup(0.01,8,10,12,16); ##font size 0.01 is invisible, but text still adds kilobytes to file size #these fonts look good unscaled #code metapost #fonts_setup(0.01,5,7,8,11); ##font size 0.01 is invisible, but text still adds kilobytes to file size #these fonts approx same as above if scaled x1.5 using basescale endlayout LayoutScale1000 layout LayoutScale2000 #--------------------- #layout settings suited to 2d outputs at 1:2000 scale scale 1 2000 base-scale 1 1000 # use base-scale only if outputs to be photo enlarged # or reduced or to scale fonts and symbols scale-bar 200 m grid-size 200 200 100 metres # coordinate grid #code metapost #fonts_setup(0.01,0.01,0.01,6,8); ##font size 0.01 is invisible, but text still adds kilobytes to file size ##these fonts look OK unscaled code metapost fonts_setup(0.01,8,9,12,16); #font size 0.01 is invisible, but text still adds kilobytes to file size #these fonts look OK scaled half size,but 8,9 a bit small #CAVE APPEARANCE #symbol-hide group all #hides ALL except passage infill colour #symbol-show line wall # gives definition if colour by altitude or map is used #Survey lines #--------- symbol-hide group cave-centreline #hides passage not yet drawn symbol-hide group surface-centreline #hides morphed sketches as well?? symbol-show point cave-station #labels symbol-show point label symbol-show line label symbol-show line arrow #showing arrow can look funny if smaller text hidden symbol-hide point altitude symbol-hide point wall-altitude symbol-hide point station-name #specific station name points symbol-show point flag:continuation #this only has effect if text scale medium is visible #hide sections symbol-hide point section #cross section locations symbol-hide line section #cross section cutting planes #blackout passage #colour map-fg [0 0 0] #black # Shading in cave passage, , , , endlayout LayoutScale2000 layout LayoutScale5000 #--------------------- #layout settings suited to 2d outputs at 1:5000 scale scale 1 5000 #base-scale 1 5000 # use base-scale only if outputs to be photo enlarged # or reduced or to scale fonts and symbols scale-bar 500 m grid-size 500 500 100 metres # coordinate grid code metapost fonts_setup(0.01,0.01,0.01,0.01,4); #font size 0.01 is invisible, but text still adds kilobytes to file size #CAVE APPEARANCE symbol-hide group all #hides ALL except passage infill colour symbol-show line wall # gives definition if colour by altitude or map is used #Survey lines #--------- #symbol-show group surface-centreline #hides morphed sketches as well?? #symbol-show point cave-station #labels symbol-show point label symbol-show line label #symbol-show point station-name #specific station name points #symbol-show point flag:continuation #blackout passage #colour map-fg [0 0 0] #black # Shading in cave passage, , , , endlayout LayoutScale5000 layout LayoutScale10000 #--------------------- #layout settings suited to 2d outputs at 1:10,000 scale scale 1 10000 #base-scale 1 10000 # use base-scale only if outputs to be photo enlarged # or reduced or to scale fonts and symbols scale-bar 1000 m grid-size 1000 1000 500 metres # coordinate grid code metapost fonts_setup(0.01,0.01,0.01,0.01,0.01); #ie make as small as possible #CAVE APPEARANCE symbol-hide group all #hides ALL except passage infill colour #symbol-show line wall # don't use at very small scales as it blurs the outline #symbol-show group surface-centreline #hides morphed sketches as well?? #symbol-show point label #symbol-show line label #blackout passage colour map-fg [0 0 0] #black # Shading in cave passage, , , , endlayout LayoutScale10000