Demo: Pathfinding with A* #85
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is just a demo. I suspect there are always going to be too many sharp edges and the results will be too poor in all but the simplest cases for it to be worth supporting. There are clear ways to start improving it but without a clear ending point I don't want to go down the path of cobbling together an autorouter. Still, for the sake of experimentation and discussion, here is roughly how you'd do some basic pathfinding.
The idea is that the interface would look like this: for your schematic-aware rule
MyRouteRule
you implementreconcile!
and_route_leg!
as usual, plus a callback_update_rule!(sch, node, rule::MyRouteRule)
that gets called duringplan
, which fills in any required information like exclusion areas based on the schematic so far.The road from here would probably look like this: