stepTwo method
Implementation
void stepTwo(List<LayerElement> currentLayer, List<LayerElement> nextLayer) {
// Assign positions to current layer
assignPositions(currentLayer);
// Compute measures for next layer based on current layer positions
for (var element in nextLayer) {
if (element is NodeElement) {
var node = element.node;
var predecessors = predecessorsOf(node);
if (predecessors.isNotEmpty) {
var positions = predecessors.map((p) => nodeData[p]?.position ?? 0).toList();
positions.sort();
element.measure = medianValue(positions).toDouble();
} else {
element.measure = element.pos.toDouble();
}
} else if (element is ContainerElement) {
element.measure = element.pos.toDouble();
}
}
}