fix(autorouter/anterouter): Don't fan out if ratline is on same layer

This commit is contained in:
Mikolaj Wielgus 2025-10-18 00:20:31 +02:00
parent 2f7cee62a6
commit 570a3a80f8
2 changed files with 10 additions and 10 deletions

View File

@ -43,7 +43,7 @@ pub enum TerminatingScheme {
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
pub struct AnterouterPlan { pub struct AnterouterPlan {
pub layer_map: BTreeMap<RatlineUid, usize>, pub layer_map: BTreeMap<RatlineUid, usize>,
pub ratline_endpoint_dot_to_terminating_scheme: BTreeMap<FixedDotIndex, TerminatingScheme>, pub ratline_terminating_schemes: BTreeMap<(RatlineUid, FixedDotIndex), TerminatingScheme>,
} }
pub struct Anterouter { pub struct Anterouter {
@ -73,8 +73,8 @@ impl Anterouter {
if let Some(terminating_scheme) = self if let Some(terminating_scheme) = self
.plan .plan
.ratline_endpoint_dot_to_terminating_scheme .ratline_terminating_schemes
.get(&endpoint_dots.0) .get(&(*ratline, endpoint_dots.0))
{ {
match terminating_scheme { match terminating_scheme {
TerminatingScheme::ExistingFixedDot(terminating_dot) => autorouter TerminatingScheme::ExistingFixedDot(terminating_dot) => autorouter
@ -99,8 +99,8 @@ impl Anterouter {
if let Some(terminating_scheme) = self if let Some(terminating_scheme) = self
.plan .plan
.ratline_endpoint_dot_to_terminating_scheme .ratline_terminating_schemes
.get(&endpoint_dots.1) .get(&(*ratline, endpoint_dots.1))
{ {
match terminating_scheme { match terminating_scheme {
TerminatingScheme::ExistingFixedDot(terminating_dot) => autorouter TerminatingScheme::ExistingFixedDot(terminating_dot) => autorouter

View File

@ -34,7 +34,7 @@ impl Planner {
.enumerate() .enumerate()
.map(|(i, ratline)| (*ratline, i % 2)) .map(|(i, ratline)| (*ratline, i % 2))
.collect(), .collect(),
ratline_endpoint_dot_to_terminating_scheme: BTreeMap::new(), ratline_terminating_schemes: BTreeMap::new(),
}; };
for ratline in ratlines { for ratline in ratlines {
@ -45,8 +45,8 @@ impl Planner {
ratline.ref_(autorouter).endpoint_dots().0, ratline.ref_(autorouter).endpoint_dots().0,
layer, layer,
) { ) {
plan.ratline_endpoint_dot_to_terminating_scheme.insert( plan.ratline_terminating_schemes.insert(
ratline.ref_(autorouter).endpoint_dots().0, (*ratline, ratline.ref_(autorouter).endpoint_dots().0),
terminating_scheme, terminating_scheme,
); );
} }
@ -56,8 +56,8 @@ impl Planner {
ratline.ref_(autorouter).endpoint_dots().1, ratline.ref_(autorouter).endpoint_dots().1,
layer, layer,
) { ) {
plan.ratline_endpoint_dot_to_terminating_scheme.insert( plan.ratline_terminating_schemes.insert(
ratline.ref_(autorouter).endpoint_dots().1, (*ratline, ratline.ref_(autorouter).endpoint_dots().1),
terminating_scheme, terminating_scheme,
); );
} }