joinSignsVertical function
Stacks signs vertically (top to bottom), with optional spacing between them.
Mirrors Python signwriting.utils.join_signs.join_signs_vertical.
Implementation
String joinSignsVertical(List<String> fsws, {int spacing = 0}) {
final signs = _initJoin(fsws);
final symbols = <SignSymbol>[];
int accumulativeOffset = 0;
for (final sign in signs) {
final signMinY = _allAxis(sign, 'y').reduce(min);
final signOffsetY = accumulativeOffset + spacing - signMinY;
accumulativeOffset += (sign.box.position.item2 - signMinY) + spacing;
for (final symbol in sign.symbols) {
symbols.add(SignSymbol(
symbol: symbol.symbol,
position:
Tuple2(symbol.position.item1, symbol.position.item2 + signOffsetY),
));
}
}
if (symbols.isEmpty) return 'M500x500';
return signToFsw(signFromSymbols(symbols, fixX: false));
}