Commit Graph

18 Commits

Author SHA1 Message Date
Seth Hillbrand 87171f53c7 Speedup dynamic ratsnest
Removes some unneeded calculations and threads the remaining.

Threading was previously removed to avoid overhead issues with small
boards.  This is no longer needed with the thread pool implementation

Fixes https://gitlab.com/kicad/code/kicad/issues/12131
2022-10-04 17:06:45 -07:00
Jeff Young f095453d3e Optimize ratsnest line endings for zones. 2022-09-30 19:04:54 +00:00
Jeff Young d67437a2aa Move ratsnest exclusion processing to a post-pass.
Also fixes a few cases where we were unnecessarily rebuilding
connectivity more than once for an operation.
2022-09-29 17:08:49 +01:00
Alex dc07ab9df1 Replace PROF_COUNTER with PROF_TIMER in some conditional places. 2022-09-27 14:07:47 +00:00
Jeff Young c4e133fdf7 Auto reduction and std::shared_ptr cover types reduction.
And a performance optimization or two resulting from above.  (Using
const& intead of copying std::shared_ptrs.)
2022-02-13 12:04:03 +00:00
Jeff Young b4c5e64db2 Exclusions for Unconnected Items; Markers & exclusions for Parity checks
Fixes https://gitlab.com/kicad/code/kicad/issues/5589

Fixes https://gitlab.com/kicad/code/kicad/issues/5504
2021-12-24 21:10:28 +00:00
Seth Hillbrand fbdb2bd91f Fix broken refactor from 0e65fe5
'auto' here was utilizing a copy constructor to avoid assigning a new
value to the underlying shared pointer
2021-12-07 12:38:05 -08:00
Jeff Young 0e65fe5d8d Coding standards and commenting. 2021-12-01 23:15:37 +00:00
Jeff Young 3fd128a75b Performance enhancements. 2021-01-08 00:46:55 +00:00
Jeff Young 4a0d469cec Back out zone layer misunderstanding and make types clearer. 2020-09-23 20:02:21 +01:00
Seth Hillbrand 4e08ec79dc pcbnew: Don't skip adjacent points
std::make_reverse_iterator already accounts for the difference in
directional representation

Fixes https://gitlab.com/kicad/code/kicad/issues/5392
2020-08-28 11:53:54 -07:00
Seth Hillbrand 4ef02fd699 Replace TTL delauney triangulator
Removes the TTL triangulator in favor of the delaunator triangulator.
This removes the only AGPL code in the KiCad codebase and therefore
allows the full project to be licensed under the GPLv3.
2020-06-25 18:45:27 +00:00
Seth Hillbrand b02d3f683f Adding documention comments for dynamic ratsnest 2020-06-24 15:17:01 -07:00
Seth Hillbrand 141bf4f579 Tighten the bicolored routine
Eliminates some duplicate code into a lambda
2020-06-23 16:48:24 -07:00
Seth Hillbrand e8fc421a39 Update NearestBicoloredPair to m log(n) search
Instead of iterating over full set, use sweep line algorithm to limit
the number of nodes needed to be searched.  This improves the speed of
the dynamic ratsnest.
2020-06-23 16:17:35 -07:00
Seth Hillbrand 214a9d53b0 Update ratsnest conn to multiset 2020-06-23 14:39:45 -07:00
Seth Hillbrand a2ad84f84d Revise Kruskal implementation
This updates the Kruskal algorithm to a faster variant utilizing a
compressed disjoint set and heap
2020-06-23 14:35:23 -07:00
Seth Hillbrand 8c57821e9b pcbnew: Move ratsnest items to separate folder 2020-06-16 11:15:14 -07:00
Renamed from pcbnew/ratsnest_data.cpp (Browse further)