diff --git a/src/lib.rs b/src/lib.rs index ff28b00..2051a4f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,3 +9,4 @@ pub mod layout; pub mod math; pub mod overlay; pub mod router; +pub mod triangulation; diff --git a/src/router/mod.rs b/src/router/mod.rs index 5d923d7..56540e7 100644 --- a/src/router/mod.rs +++ b/src/router/mod.rs @@ -3,6 +3,5 @@ pub mod draw; pub mod navmesh; mod router; pub mod tracer; -pub mod triangulation; pub use router::*; diff --git a/src/router/navmesh.rs b/src/router/navmesh.rs index bd1dbb0..e4bb404 100644 --- a/src/router/navmesh.rs +++ b/src/router/navmesh.rs @@ -19,7 +19,7 @@ use crate::{ geometry::primitive::PrimitiveShapeTrait, graph::GetNodeIndex, layout::Layout, - router::triangulation::{GetVertexIndex, Triangulation, TriangulationEdgeReference}, + triangulation::{GetVertexIndex, Triangulation, TriangulationEdgeReference}, }; #[enum_dispatch(GetNodeIndex, MakePrimitive)] @@ -85,7 +85,7 @@ pub struct Navmesh { impl Navmesh { pub fn new(layout: &Layout) -> Result { let mut this = Self { - triangulation: Triangulation::new(layout.drawing()), + triangulation: Triangulation::new(layout.drawing().geometry().graph().node_bound()), vertex_to_triangulation_vertex: Vec::new(), }; this.vertex_to_triangulation_vertex diff --git a/src/router/triangulation.rs b/src/triangulation.rs similarity index 94% rename from src/router/triangulation.rs rename to src/triangulation.rs index f55006f..0677631 100644 --- a/src/router/triangulation.rs +++ b/src/triangulation.rs @@ -1,16 +1,10 @@ use std::marker::PhantomData; use geo::{point, Point}; -use petgraph::visit::{self, NodeIndexable}; -use spade::{ - handles::FixedVertexHandle, iterators::VertexIterator, DelaunayTriangulation, HasPosition, - InsertionError, -}; +use petgraph::visit; +use spade::{handles::FixedVertexHandle, DelaunayTriangulation, HasPosition, InsertionError}; -use crate::{ - drawing::{rules::RulesTrait, Drawing}, - graph::GetNodeIndex, -}; +use crate::graph::GetNodeIndex; pub trait GetVertexIndex { fn vertex(&self) -> I; @@ -26,14 +20,13 @@ pub struct Triangulation + HasPosition> Triangulation { - pub fn new(drawing: &Drawing) -> Self { + pub fn new(node_bound: usize) -> Self { let mut this = Self { triangulation: as spade::Triangulation>::new(), vertex_to_handle: Vec::new(), index_marker: PhantomData, }; - this.vertex_to_handle - .resize(drawing.geometry().graph().node_bound(), None); + this.vertex_to_handle.resize(node_bound, None); this }