diff --git a/src/router/navcord.rs b/src/router/navcord.rs index 2d1581b..12cf669 100644 --- a/src/router/navcord.rs +++ b/src/router/navcord.rs @@ -60,19 +60,16 @@ impl NavcordStepper { navmesh: &Navmesh, head: Head, around: NavvertexIndex, - width: f64, ) -> Result { - let cw = self - .maybe_cw(navmesh, around) - .ok_or(NavcorderException::CannotWrap)?; + let cw = Self::maybe_cw(navmesh, around).ok_or(NavcorderException::CannotWrap)?; - match self.binavvertex(navmesh, around) { + match Self::binavvertex(navmesh, around) { BinavvertexNodeIndex::FixedDot(dot) => { - self.wrap_around_fixed_dot(layout, head, dot, cw, width) + self.wrap_around_fixed_dot(layout, head, dot, cw) } BinavvertexNodeIndex::FixedBend(_fixed_bend) => todo!(), BinavvertexNodeIndex::LooseBend(loose_bend) => { - self.wrap_around_loose_bend(layout, head, loose_bend, cw, width) + self.wrap_around_loose_bend(layout, head, loose_bend, cw) } } } @@ -83,9 +80,8 @@ impl NavcordStepper { head: Head, around: FixedDotIndex, cw: bool, - width: f64, ) -> Result { - Ok(layout.cane_around_dot(&mut self.recorder, head, around, cw, width)?) + Ok(layout.cane_around_dot(&mut self.recorder, head, around, cw, self.width)?) } fn wrap_around_loose_bend( @@ -94,20 +90,15 @@ impl NavcordStepper { head: Head, around: LooseBendIndex, cw: bool, - width: f64, ) -> Result { - Ok(layout.cane_around_bend(&mut self.recorder, head, around.into(), cw, width)?) + Ok(layout.cane_around_bend(&mut self.recorder, head, around.into(), cw, self.width)?) } - fn binavvertex(&self, navmesh: &Navmesh, navvertex: NavvertexIndex) -> BinavvertexNodeIndex { + fn binavvertex(navmesh: &Navmesh, navvertex: NavvertexIndex) -> BinavvertexNodeIndex { navmesh.node_weight(navvertex).unwrap().node } - fn primitive(&self, navmesh: &Navmesh, navvertex: NavvertexIndex) -> PrimitiveIndex { - self.binavvertex(navmesh, navvertex).into() - } - - fn maybe_cw(&self, navmesh: &Navmesh, navvertex: NavvertexIndex) -> Option { + fn maybe_cw(navmesh: &Navmesh, navvertex: NavvertexIndex) -> Option { navmesh.node_weight(navvertex).unwrap().maybe_cw } } @@ -116,7 +107,6 @@ pub struct NavcordStepContext<'a, R> { pub layout: &'a mut Layout, pub navmesh: &'a Navmesh, pub to: NavvertexIndex, - pub width: f64, } impl NavcordStepper { @@ -128,13 +118,7 @@ impl NavcordStepper { input: &mut NavcordStepContext<'_, R>, ) -> Result<(), NavcorderException> { self.head = self - .wrap( - input.layout, - input.navmesh, - self.head, - input.to, - input.width, - )? + .wrap(input.layout, input.navmesh, self.head, input.to)? .into(); self.path.push(input.to); diff --git a/src/router/navcorder.rs b/src/router/navcorder.rs index edd79bd..a5eaeb3 100644 --- a/src/router/navcorder.rs +++ b/src/router/navcorder.rs @@ -38,7 +38,6 @@ pub trait Navcorder { _navmesh: &Navmesh, navcord: &mut NavcordStepper, target: FixedDotIndex, - width: f64, ) -> Result; fn rework_path( @@ -46,7 +45,6 @@ pub trait Navcorder { navmesh: &Navmesh, navcord: &mut NavcordStepper, path: &[NavvertexIndex], - width: f64, ) -> Result<(), NavcorderException>; fn path( @@ -54,7 +52,6 @@ pub trait Navcorder { navmesh: &Navmesh, navcord: &mut NavcordStepper, path: &[NavvertexIndex], - width: f64, ) -> Result<(), NavcorderException>; fn undo_path(&mut self, navcord: &mut NavcordStepper, step_count: usize); @@ -76,9 +73,8 @@ impl Navcorder for Layout { _navmesh: &Navmesh, navcord: &mut NavcordStepper, target: FixedDotIndex, - width: f64, ) -> Result { - Ok(self.finish_in_dot(&mut navcord.recorder, navcord.head, target, width)?) + Ok(self.finish_in_dot(&mut navcord.recorder, navcord.head, target, navcord.width)?) } #[debug_requires(path[0] == navcord.path[0])] @@ -88,7 +84,6 @@ impl Navcorder for Layout { navmesh: &Navmesh, navcord: &mut NavcordStepper, path: &[NavvertexIndex], - width: f64, ) -> Result<(), NavcorderException> { let prefix_length = navcord .path @@ -99,7 +94,7 @@ impl Navcorder for Layout { let length = navcord.path.len(); self.undo_path(navcord, length - prefix_length); - self.path(navmesh, navcord, &path[prefix_length..], width) + self.path(navmesh, navcord, &path[prefix_length..]) } #[debug_ensures(ret.is_ok() -> navcord.path.len() == old(navcord.path.len() + path.len()))] @@ -108,14 +103,12 @@ impl Navcorder for Layout { navmesh: &Navmesh, navcord: &mut NavcordStepper, path: &[NavvertexIndex], - width: f64, ) -> Result<(), NavcorderException> { for (i, vertex) in path.iter().enumerate() { if let Err(err) = navcord.step(&mut NavcordStepContext { layout: self, navmesh, to: *vertex, - width, }) { self.undo_path(navcord, i); return Err(err); diff --git a/src/router/router.rs b/src/router/router.rs index e9a8446..28f8a89 100644 --- a/src/router/router.rs +++ b/src/router/router.rs @@ -91,15 +91,12 @@ impl<'a, R: AccessRules> AstarStrategy tracker: &PathTracker, ) -> Option { let new_path = tracker.reconstruct_path_to(vertex); - let width = self.navcord.width; self.layout - .rework_path(navmesh, self.navcord, &new_path[..], width) + .rework_path(navmesh, self.navcord, &new_path[..]) .unwrap(); - self.layout - .finish(navmesh, self.navcord, self.target, width) - .ok() + self.layout.finish(navmesh, self.navcord, self.target).ok() } fn place_probe(&mut self, navmesh: &Navmesh, edge: NavmeshEdgeReference) -> Option { @@ -109,12 +106,10 @@ impl<'a, R: AccessRules> AstarStrategy let prev_bihead_length = self.bihead_length(); - let width = self.navcord.width; let result = self.navcord.step(&mut NavcordStepContext { layout: self.layout, navmesh, to: edge.target(), - width, }); let probe_length = self.bihead_length() - prev_bihead_length;