Commit Graph

  • 7a06a9b02d router: Implement basic cursor following Mikolaj Wielgus 2023-10-06 22:41:59 +0000
  • 0e8a6d6e42 Create new `Band` struct to pass around whole bands Mikolaj Wielgus 2023-10-05 19:52:59 +0000
  • 894fa654cf contracts: Visit nested expressions Mikolaj Wielgus 2023-09-20 00:31:35 +0200
  • 0695b1deab draw: Implement flipping the bend if a shorter one is available Mikolaj Wielgus 2023-09-19 20:56:40 +0200
  • abf92c7f43 contracts: Fix R-tree envelope invariance test Mikolaj Wielgus 2023-09-19 20:44:05 +0200
  • 12e37e0e91 contracts: Tell whether invariant was violation was pre or post Mikolaj Wielgus 2023-09-19 18:04:08 +0200
  • f36f80537f layout: Add invariant testing R-tree envelope invariance Mikolaj Wielgus 2023-09-19 15:40:26 +0200
  • efea917cb1 draw: Use `enum_dispatch` to dynamically dispatch `Head` Mikolaj Wielgus 2023-09-17 16:54:23 +0200
  • d7b5640a25 contracts: Improve abstract type detection (i.e. containing impl) Mikolaj Wielgus 2023-09-16 23:08:20 +0200
  • 394510de8d layout: Add contracts for node and edge counts Mikolaj Wielgus 2023-09-16 18:24:57 +0200
  • 7d2cff9004 route: Add contracts for path length Mikolaj Wielgus 2023-09-15 22:48:51 +0200
  • c94a4c716a draw: Add contracts for node counts Mikolaj Wielgus 2023-09-15 22:10:29 +0200
  • d286f5c182 contracts: Replace `return` with block break Mikolaj Wielgus 2023-09-15 20:13:47 +0200
  • 1a271cd89c Add `node_count == size` invariant for `Layout` Mikolaj Wielgus 2023-09-15 01:30:23 +0200
  • 82081ef170 contracts: Use block instead of closure for original function body Mikolaj Wielgus 2023-09-15 00:13:39 +0200
  • 35484972ef Vendor contracts crate Mikolaj Wielgus 2023-09-15 00:10:10 +0200
  • 23311122b4 draw: Fix on-fail cleanup when drawing segbend Mikolaj Wielgus 2023-09-05 07:51:27 +0200
  • 05fc42aa38 draw: Change direction depending on chosen guide tangent Mikolaj Wielgus 2023-09-05 06:01:03 +0200
  • f88636057f draw: Choose the shortest guide tangent Mikolaj Wielgus 2023-09-05 05:51:21 +0200
  • 49038a4ddb Don't forget to reinsert bend into R-tree if bend extension fails Mikolaj Wielgus 2023-09-05 04:23:26 +0200
  • 5f37ff7616 Unroute path whose routing failed in the middle Mikolaj Wielgus 2023-09-05 02:03:32 +0200
  • 53c24b1a14 Remove created dot if drawing new seg or bend fails Mikolaj Wielgus 2023-09-04 04:51:27 +0200
  • 84a5b81032 Iterate and filtermap over tangents in math module instead of for loop Mikolaj Wielgus 2023-09-04 00:48:04 +0200
  • 7d76051cbf Route to goal immediately if a straight path exists at any vertex Mikolaj Wielgus 2023-09-03 05:41:21 +0200
  • 73a831ba6d Visualize every routing search step Mikolaj Wielgus 2023-09-03 01:56:46 +0200
  • c492bd1dda Parametrize routing using `RouteStrategy` trait Mikolaj Wielgus 2023-09-02 06:05:13 +0200
  • bea6d84878 Implement `AstarStrategy` trait to not borrow A* context multiple times Mikolaj Wielgus 2023-09-02 01:43:27 +0200
  • b5f9a5957a Route with A* step by step instead of only after A* Mikolaj Wielgus 2023-09-01 01:35:48 +0200
  • 1ac8dd2828 Only remove node when collision is detected during placement Mikolaj Wielgus 2023-08-31 22:45:51 +0200
  • cd5365c26f Pass `width` as an argument instead of holding it in `Route` Mikolaj Wielgus 2023-08-31 21:17:25 +0200
  • e5ba7401c1 Move routing methods to the `Route` struct Mikolaj Wielgus 2023-08-31 20:33:34 +0200
  • 9f201d2c3d Make `Head`, `Segbend`, `Bow` copyable Mikolaj Wielgus 2023-08-31 07:27:42 +0200
  • 1d5b428bf9 Split out drawing routines from `Router` into `Draw` Mikolaj Wielgus 2023-08-30 06:32:01 +0200
  • 0d7b10606a Use `Option::map` instead of if-else Mikolaj Wielgus 2023-08-30 05:12:11 +0200
  • 247b78087c Add methods to unroute or undraw segbends Mikolaj Wielgus 2023-08-29 21:11:03 +0200
  • f2346eedb8 Run `cargo fix` Mikolaj Wielgus 2023-08-29 05:02:45 +0200
  • ceef3a7fb7 Take `&impl Interior` argument in path removal method Mikolaj Wielgus 2023-08-29 01:59:11 +0200
  • 47aadfcdd3 Introduce `Segbend`, a seg-dot-bend triple Mikolaj Wielgus 2023-08-29 01:49:37 +0200
  • 79a26cb324 Split `Walk` trait into `Interior` and `Ends` traits Mikolaj Wielgus 2023-08-28 22:54:03 +0200
  • 84a7f5d873 Make `Bow` don't borrow the graph Mikolaj Wielgus 2023-08-28 19:17:57 +0200
  • 47b3ffba08 Some small improvements to iteration in graph and layout code Mikolaj Wielgus 2023-08-28 04:12:25 +0200
  • 14f6b9f870 Implement basic A* routing Mikolaj Wielgus 2023-08-27 21:14:42 +0200
  • 270a7e857c Provide means of converting dot index to vertex index Mikolaj Wielgus 2023-08-27 05:00:15 +0200
  • d1571c99f6 Wrap `FixedVertexHandle` in a `VertexIndex` struct Mikolaj Wielgus 2023-08-27 04:03:04 +0200
  • 9196d95546 Triangulate only after drawing finishes Mikolaj Wielgus 2023-08-26 22:23:40 +0200
  • a1afd19fcb Implement Petgraph's graph traits on a Spade's triangulation Mikolaj Wielgus 2023-08-25 23:39:44 +0200
  • 658bb112c2 Move Delaunay triangulation to a new `Mesh` struct Mikolaj Wielgus 2023-08-24 21:23:37 +0200
  • 8456259b38 Rename `Layout` to `Router`, `Mesh` to `Layout` Mikolaj Wielgus 2023-08-24 03:32:50 +0200
  • 234a52f9e8 Rename "route" to "draw" and "shove" to "squeeze" Mikolaj Wielgus 2023-08-23 19:00:47 +0200
  • bbbd2f57fe Add `Guide` struct to generate guide curves Mikolaj Wielgus 2023-08-23 05:15:16 +0200
  • 356154c914 Make inner and outer circle obtainable from `Shape` Mikolaj Wielgus 2023-08-22 21:40:10 +0200
  • c7f89c9fb9 Delaunay triangulation using Spade library Mikolaj Wielgus 2023-08-19 05:55:28 +0200
  • c480111624 Display mesh edges Mikolaj Wielgus 2023-08-18 22:37:21 +0200
  • a077dfbca2 Don't collide with the same net Mikolaj Wielgus 2023-08-18 02:39:11 +0200
  • 17d03bb9db Add seg-bend and bend-bend collision detection Mikolaj Wielgus 2023-08-17 03:33:22 +0200
  • 6e87f9c124 Fix dot-bend collision detection Mikolaj Wielgus 2023-08-16 21:39:24 +0200
  • 4f473bacec Exclude mesh neighbors from collision detection Mikolaj Wielgus 2023-08-16 19:55:12 +0200
  • 1a599951cd Implement basic failure for moving dot to obstructed place Mikolaj Wielgus 2023-08-15 04:04:08 +0200
  • c2a553c475 Incomplete implementation of low-level collision routines (untested) Mikolaj Wielgus 2023-08-13 22:49:01 +0200
  • 14c3acb633 Change `Shape` from struct to enum Mikolaj Wielgus 2023-08-08 02:28:41 +0200
  • 9bfd035ed7 Add "upwrapping bends" animation to the readme Mikolaj Wielgus 2023-08-03 02:28:29 +0200
  • bdf3930894 Reinsert all bends into R-tree when moving a dot Mikolaj Wielgus 2023-08-02 00:28:52 +0200
  • b7e00828cf Add gallery to readme Mikolaj Wielgus 2023-08-01 00:49:30 +0200
  • 409cea61c0 Add macro to debug graph Mikolaj Wielgus 2023-07-31 15:44:18 +0200
  • 0c32ea7e41 Partial implementation of releasing bends Mikolaj Wielgus 2023-07-31 05:00:21 +0200
  • f9ec5a0ef7 Implement basic interactive dragging and stretching Mikolaj Wielgus 2023-07-29 22:29:08 +0200
  • e5a1c52655 Rename `Stretch` to `Bow` Mikolaj Wielgus 2023-07-26 02:29:54 +0200
  • f563bc2c5a Set up shoving demo Mikolaj Wielgus 2023-07-25 22:49:45 +0200
  • 68c2863784 Implement basic shoving Mikolaj Wielgus 2023-07-25 04:08:06 +0200
  • 7c86b902aa Add `Stretch` object to hold bend together withs neighboring segs, bends Mikolaj Wielgus 2023-07-23 03:45:16 +0200
  • 9c75151d3a Implement .next() and .prev() methods to traverse along traces Mikolaj Wielgus 2023-07-23 01:36:22 +0200
  • 925448802a Create a new `Set` trait for collections of node indices Mikolaj Wielgus 2023-07-22 20:55:25 +0200
  • f1772ca0be Store width and points instead of weights in `Shape` Mikolaj Wielgus 2023-07-22 03:48:56 +0200
  • dea65a3b43 Add `untag!` macro, move `.shape()` to `Primitive` Mikolaj Wielgus 2023-07-21 23:31:26 +0200
  • 8b5cfb3686 Rename `Primitive` to `Shape`, introduce new `Primitive` Mikolaj Wielgus 2023-07-21 18:39:08 +0200
  • 69317384dd Separate dot and bend arounds. Keep an edge to the core from each bend Mikolaj Wielgus 2023-07-20 20:42:21 +0200
  • 16990517b2 Make segs nodes instead of edges Mikolaj Wielgus 2023-07-19 18:41:53 +0200
  • b5f85068df Store all relevant indexes as neighbors instead of in weights Mikolaj Wielgus 2023-07-15 13:44:02 +0200
  • 26112724c7 Make bends nodes Mikolaj Wielgus 2023-07-14 12:40:30 +0200
  • bedd7c744a Add some utility functions for working with `Index`es and `Weight`s Mikolaj Wielgus 2023-07-14 00:17:46 +0200
  • dabe364420 Pass around routing state with a new `Head` struct Mikolaj Wielgus 2023-07-13 18:18:46 +0200
  • 0770917a41 Implement bending on bends Mikolaj Wielgus 2023-07-12 11:15:54 +0200
  • dfcfc99413 Implement routing *into* dots Mikolaj Wielgus 2023-07-11 07:59:18 +0200
  • cf6460a3db Initial commit Mikolaj Wielgus 2023-07-12 01:01:25 +0200