From c17c004aae605a1f099e99012d8f8aecf292c853 Mon Sep 17 00:00:00 2001 From: Mikolaj Wielgus Date: Tue, 16 Jul 2024 20:39:19 +0200 Subject: [PATCH] cli: hard-code routing only the first layer by default A temporary measure before we provide better layer control and prevent duplication of routes. --- src/autorouter/selection.rs | 14 ++++++++++++++ src/bin/topola/main.rs | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/autorouter/selection.rs b/src/autorouter/selection.rs index 7fe29c3..c6aabc6 100644 --- a/src/autorouter/selection.rs +++ b/src/autorouter/selection.rs @@ -42,6 +42,20 @@ impl Selection { this } + pub fn new_select_layer(board: &Board, layer: usize) -> Self { + let mut this = Self::new(); + + for node in board.layout().drawing().layer_primitive_nodes(layer) { + if let Some(selector) = this.node_selector(board, GenericNode::Primitive(node)) { + if !this.contains_node(board, GenericNode::Primitive(node)) { + this.select(board, selector); + } + } + } + + this + } + pub fn toggle_at_node(&mut self, board: &Board, node: NodeIndex) { let Some(selector) = self.node_selector(board, node) else { return; diff --git a/src/bin/topola/main.rs b/src/bin/topola/main.rs index 52398d2..f72d4e1 100644 --- a/src/bin/topola/main.rs +++ b/src/bin/topola/main.rs @@ -35,7 +35,7 @@ fn main() -> Result<(), std::io::Error> { serde_json::from_reader(commands_bufread)? } else { let mut history = History::new(); - history.do_(Command::Autoroute(Selection::new_select_all(&board))); + history.do_(Command::Autoroute(Selection::new_select_layer(&board, 0))); history };