diff --git a/src/board/board.rs b/src/board/board.rs index a698470..1543bcb 100644 --- a/src/board/board.rs +++ b/src/board/board.rs @@ -129,8 +129,8 @@ impl Board { .unwrap() .to_string(); - let mut router = Router::new_from_navmesh(self.layout_mut(), navmesh); - let result = router.route_band(100.0); + let mut router = Router::new_from_navmesh(navmesh); + let result = router.route_band(self.layout_mut(), 100.0); if let Ok(band) = result { self.pinname_pair_to_band diff --git a/src/router/router.rs b/src/router/router.rs index 7912281..056f8e8 100644 --- a/src/router/router.rs +++ b/src/router/router.rs @@ -32,8 +32,7 @@ pub enum RouterError { Astar(#[from] AstarError), } -pub struct Router<'a, R: RulesTrait> { - layout: &'a mut Layout, +pub struct Router { navmesh: Navmesh, } @@ -94,9 +93,6 @@ impl<'a, R: RulesTrait> AstarStrategy<&UnGraph, f64, tracker: &PathTracker<&UnGraph>, ) -> Option { let new_path = tracker.reconstruct_path_to(vertex); - /*.into_iter() - .map(|ni| graph.node_weight(ni).unwrap().node) - .collect();*/ let width = self.trace.width; self.tracer @@ -155,22 +151,26 @@ impl<'a, R: RulesTrait> AstarStrategy<&UnGraph, f64, } } -impl<'a, R: RulesTrait> Router<'a, R> { +impl Router { pub fn new( - layout: &'a mut Layout, + layout: &Layout, from: FixedDotIndex, to: FixedDotIndex, ) -> Result { let navmesh = { Navmesh::new(layout, from, to)? }; - Ok(Self::new_from_navmesh(layout, navmesh)) + Ok(Self::new_from_navmesh(navmesh)) } - pub fn new_from_navmesh(layout: &'a mut Layout, navmesh: Navmesh) -> Self { - Self { layout, navmesh } + pub fn new_from_navmesh(navmesh: Navmesh) -> Self { + Self { navmesh } } - pub fn route_band(&mut self, width: f64) -> Result { - let mut tracer = Tracer::new(self.layout); + pub fn route_band( + &mut self, + layout: &mut Layout, + width: f64, + ) -> Result { + let mut tracer = Tracer::new(layout); let trace = tracer.start( self.navmesh.graph(), self.navmesh.source(), @@ -202,8 +202,4 @@ impl<'a, R: RulesTrait> Router<'a, R> { self.route_band(width) }*/ - - pub fn layout(&mut self) -> &mut Layout { - self.layout - } }