[Therion] How does Therion decide which passages to put above and below

Tarquin Wilton-Jones tarquin.wilton-jones at ntlworld.com
Thu Dec 12 23:46:03 CET 2019


Alastair,

> I need to know how therion decides which passages to put above and below
> others.

I have not yet looked into your specific setup, but this is the general
case:

If you are *not* using "map-endmap" to define a map, or if you are
selecting multiple objects in a dataset with several "select" commands
rather than using a map, then Therion uses the average height of the
stations in the scraps to determine the heights of each scrap, and
stacks them accordingly.

If a scrap contains stations with altitudes 1m, 5m, and 15m, the average
height of the scrap will be 7m. The scrap will be placed above scraps
with average heights lower than that, even if the other scrap has two
stations at 6 metres, passing over the first scrap's 1m altitude
station. (It checks the averages, not the specific locations where the
scraps cross each other.)

If you are using maps, then by default, a map of scraps will be placed
with the scraps at the same stacking height as each other (so the
passage fills are rendered overlapping, and the features like walls are
all rendered on top of all the scraps at once). You use "break" to
separate the rendering layers.

map map1
 scrap1
 scrap2
 break
 scrap3
 scrap4
endmap

scrap1 and scrap2 get rendered at the same time, at the same stacking
level as each other. scrap3 and scrap4 get rendered at the same time, at
the same stacking level as each other. scrap1 and scrap2 get stacked and
layered *above* scrap3 and scrap4.

When you have a map of maps, a "break" is implied between the maps.

map outermap
 map1
 map2
 map3
endmap

The scraps in map1 are stacked/layered above the scraps in map2, and
those in map2 are stacked/layered above map3.

You seem to be using maps, so you will be seeing this automatic breaking
between maps.

If the scraps within a map are layered in the wrong order, change your
ordering of scraps within the map to put them in the right order, and
put "break" where needed to separate them into layers.

If the scraps within a map-of-maps are layered in the wrong order,
change your ordering of maps within the outer map to put the top layers
first.

Complicated setups can arise in some cases; If you have scraps within a
map (eg. "mapxyz") where some are supposed to pass above, and some
below, a scrap within another map (eg. "mapothr"), then you need to
split your "mapxyz" map into two maps, one with the "above" scraps, and
one with the "below" scraps, and then you need to include those two maps
separately in the parent map, with the interleaved "mapothr" map between
them.

I guess some of this might be stuff you already know, but maybe it will
explain what you are seeing at least.

Tarquin



More information about the Therion mailing list