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)]
pub struct AnterouterPlan {
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 {
@ -73,8 +73,8 @@ impl Anterouter {
if let Some(terminating_scheme) = self
.plan
.ratline_endpoint_dot_to_terminating_scheme
.get(&endpoint_dots.0)
.ratline_terminating_schemes
.get(&(*ratline, endpoint_dots.0))
{
match terminating_scheme {
TerminatingScheme::ExistingFixedDot(terminating_dot) => autorouter
@ -99,8 +99,8 @@ impl Anterouter {
if let Some(terminating_scheme) = self
.plan
.ratline_endpoint_dot_to_terminating_scheme
.get(&endpoint_dots.1)
.ratline_terminating_schemes
.get(&(*ratline, endpoint_dots.1))
{
match terminating_scheme {
TerminatingScheme::ExistingFixedDot(terminating_dot) => autorouter

View File

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