joinSignsHorizontal function
Arranges signs horizontally (left to right), with optional spacing between them.
Mirrors Python signwriting.utils.join_signs.join_signs_horizontal.
Implementation
String joinSignsHorizontal(List<String> fsws, {int spacing = 0}) {
final signs = _initJoin(fsws);
final symbols = <SignSymbol>[];
int accumulativeOffset = 0;
for (final sign in signs) {
final signMinX = _allAxis(sign, 'x').reduce(min);
final signOffsetX = accumulativeOffset + spacing - signMinX;
accumulativeOffset += (sign.box.position.item1 - signMinX) + spacing;
for (final symbol in sign.symbols) {
symbols.add(SignSymbol(
symbol: symbol.symbol,
position:
Tuple2(symbol.position.item1 + signOffsetX, symbol.position.item2),
));
}
}
if (symbols.isEmpty) return 'M500x500';
return signToFsw(signFromSymbols(symbols, fixY: false));
}