autorouter: as a starter, route the endpoints of only the first ratline

This commit is contained in:
Mikolaj Wielgus 2024-05-02 21:42:46 +02:00
parent 9c332bdde3
commit 531bc6d22c
5 changed files with 23 additions and 10 deletions

View File

@ -29,7 +29,7 @@ impl<R: RulesTrait> Autorouter<R> {
// For now, let's only take the first ratline.
let ratline = self.ratsnest.graph().edge_references().next().unwrap();
/*self.route(
self.route(
self.ratsnest
.graph()
.node_weight(ratline.source())
@ -41,7 +41,7 @@ impl<R: RulesTrait> Autorouter<R> {
.unwrap()
.vertex_index(),
observer,
);*/
);
//}
}
@ -55,7 +55,7 @@ impl<R: RulesTrait> Autorouter<R> {
let from_dot = self.terminating_dot(from);
let to_dot = self.terminating_dot(to);
self.router.route_band(from_dot, to_dot, 3.0, observer)
self.router.route_band(from_dot, to_dot, 100.0, observer)
}
fn terminating_dot(&mut self, vertex: RatsnestVertexIndex) -> FixedDotIndex {

View File

@ -8,7 +8,12 @@ use std::{
use topola::{
autorouter::Autorouter,
drawing::{graph::MakePrimitive, primitive::MakePrimitiveShape, rules::RulesTrait, Drawing},
drawing::{
graph::{MakePrimitive, PrimitiveIndex},
primitive::MakePrimitiveShape,
rules::RulesTrait,
Drawing,
},
dsn::{design::DsnDesign, rules::DsnRules},
geometry::{
compound::CompoundManagerTrait,
@ -69,9 +74,13 @@ impl App {
struct EmptyRouterObserver;
impl<R: RulesTrait> RouterObserverTrait<R> for EmptyRouterObserver {
fn on_rework(&mut self, _tracer: &Tracer<R>, _trace: &Trace) {}
fn before_probe(&mut self, _tracer: &Tracer<R>, _trace: &Trace, _edge: NavmeshEdgeReference) {}
impl<R: RulesTrait + std::fmt::Debug> RouterObserverTrait<R> for EmptyRouterObserver {
fn on_rework(&mut self, _tracer: &Tracer<R>, _trace: &Trace) {
//dbg!(_tracer, _trace);
}
fn before_probe(&mut self, _tracer: &Tracer<R>, _trace: &Trace, _edge: NavmeshEdgeReference) {
//dbg!(_tracer, _trace, _edge);
}
fn on_probe(
&mut self,
_tracer: &Tracer<R>,
@ -79,8 +88,11 @@ impl<R: RulesTrait> RouterObserverTrait<R> for EmptyRouterObserver {
_edge: NavmeshEdgeReference,
_result: Result<(), DrawException>,
) {
//dbg!(_tracer, _trace, _edge, _result);
}
fn on_estimate(&mut self, _tracer: &Tracer<R>, _vertex: VertexIndex) {
//dbg!(_tracer, _vertex);
}
fn on_estimate(&mut self, _tracer: &Tracer<R>, _vertex: VertexIndex) {}
}
impl eframe::App for App {

View File

@ -392,7 +392,7 @@ fn render_times(
maybe_navmesh = None;
}
router.layout.drawing()
router.layout().drawing()
}
RouterOrLayout::Layout(layout) => layout,
};

View File

@ -216,7 +216,7 @@ impl<R: RulesTrait> Layout<R> {
FixedDotWeight {
circle: Circle {
pos: self.zone(zone).shape().center(),
r: 0.0,
r: 100.0,
},
layer: self.zone(zone).layer(),
maybe_net: None,

View File

@ -22,6 +22,7 @@ pub struct Trace {
pub width: f64,
}
#[derive(Debug)]
pub struct Tracer<'a, R: RulesTrait> {
pub layout: &'a mut Layout<R>,
pub mesh: &'a Navmesh,