Commit Graph

88 Commits

Author SHA1 Message Date
Tomasz Włostowski 1936b45a0f Multiple connectivity algo crash fixes:
- ratsnest crash on single-pad nets
- connectivity crash on adding new net codes
2017-07-01 23:55:51 +02:00
Maciej Suminski 72eff0941e Code formatting and warning fixes 2017-06-23 19:22:44 +02:00
Maciej Suminski 74ef3ecb1d Moved one-liners to header files 2017-06-23 18:51:00 +02:00
Maciej Suminski 3dd4429ef6 Dead code removal 2017-06-23 18:50:31 +02:00
Maciej Suminski f3fbce9560 Code formatting and clean-up 2017-06-23 15:43:13 +02:00
Tomasz Włostowski 3cba1007eb Removed legacy connectivity/ratsnest algorithm, replaced with the new one. No legacy autorouting for the moment 2017-06-23 11:12:37 +02:00
Tomasz Włostowski 9ad886344b New connectivity algorithm. 2017-06-23 11:12:36 +02:00
Alejandro García Montoro f68ce306bd CPolyLine -> SHAPE_POLY_SET refactor.
Removes the need of using the legacy code in polygon/PolyLine.{h,cpp},
refactoring all CPolyLine instances with SHAPE_POLY_SET instances.

The remaining legacy methods have been ported to SHAPE_POLY_SET;
mainly: Chamfer, Fillet, {,Un}Hatch.

The iteration over the polygon vertices have been simplified using the
family of ITERATOR classes.
2017-03-24 10:43:47 +01:00
Julius Schmidt 877a65dcc7 Fix ratsnest calculation for pads connected with zones (GAL)
This patch fixes a problem with GAL where zones are ignored in ratsnest
calculation.
The problem is that calling RN_DATA::Update on a zone with no polygons
(an unfilled zone) will remove the zone successfully, but then
RN_DATA::Add is a no-op.
From this point on, because ::Update refuses to work on items that have
not been ::Add'ed, the zone is removed entirely from ratsnest
calculation and will only be reconsidered once it is explicitly ::Add'ed
again.
The fix is to explicitly create an empty RN_ZONE_DATA object for every
zone that is ::Add'ed.

A second problem is that the point editor forgot to call
RN_DATA::Recalculate after calling Fill_Zone.

Fixes: lp:1537120
* https://bugs.launchpad.net/kicad/+bug/1537120
2017-02-14 00:39:41 +01:00
jean-pierre charras fff449ecf0 Performance counter rework: Add comments, fix coding style issues. 2016-12-31 13:00:24 +01:00
Chris Pavlina 7454f5565f Dismiss unused variable warning in ratsnest_data.cpp 2016-09-30 09:04:14 +02:00
Maciej Suminski f2462925ec Fixed a crash when adding/removing pads
Fixes: lp:1627296
* https://bugs.launchpad.net/kicad/+bug/1627296
2016-09-27 09:30:32 +02:00
Maciej Suminski 83c805e8fb Simplified code for adding/removing items in RN_DATA 2016-09-25 19:37:51 +02:00
John Beard 6b7c2685b2 Protect against uninitialised netcodes when adding to RN_DATA 2016-09-25 19:37:51 +02:00
Maciej Suminski 61e415bdb9 Deboostified ratsnest model in GAL 2016-09-19 17:25:31 +02:00
Maciej Suminski 4ffd3c8511 Fix ratsnest after running DRC
Fixes: lp:1624000
* https://bugs.launchpad.net/kicad/+bug/1624000
2016-09-19 12:08:29 +02:00
Maciej Suminski 516510774c Fixed ratsnest for nodes surrounded with zones 2016-09-13 17:13:42 +02:00
Maciej Suminski b00ca19f41 Deboostified ratsnest algorithm. 2016-09-13 14:58:33 +02:00
Maciej Suminski 03f4a89521 More descriptive method names for RN_NODE 2016-09-13 10:06:25 +02:00
Maciej Suminski 3bcbe0dfbd GAL ratsnest code cleanup 2016-09-12 13:45:57 +02:00
Maciej Suminski 828f28ecca Ratsnest Add()/Remove()/Update() return true on success 2016-09-12 13:45:57 +02:00
Simon Richter 1b2fd6a382 Replace BOOST_FOREACH with C++11 range based for. 2016-06-29 16:07:55 -04:00
Simon Richter da5699de0a Replace boost::shared_ptr with std::shared_ptr. 2016-06-29 11:09:55 -04:00
Michael Steinberg fde12ebd25 Replace boost::function and boost::bind with their std:: counterparts 2016-06-29 12:23:11 +02:00
jean-pierre charras 37deba60c3 Fix shadowed vars (in microstrip.cpp) and deprecated compil warnings. 2016-06-08 09:28:19 +02:00
Maciej Suminski c16b66ce0c Ratsnest does not take into account non-copper pads (GAL). 2016-02-03 11:01:00 +01:00
Andrew Zonenberg 41223a81d3 pcbnew: avoid unnecessary copy in RN_NET::processPads()
Saves >30% run time on ratsnest rebuild for high-fanout nets.
2016-02-01 18:13:30 -05:00
Maciej Suminski 42b598d677 Fixed missing ratsnest lines when nodes are connected to different subpolygons of a zone. 2015-10-12 11:13:16 +02:00
Maciej Suminski 3cddf14e73 Ratsnest algorithm handles items in pad areas (GAL). 2015-09-01 13:44:07 +02:00
Maciej Suminski a813deb579 Fix a ratsnest assertion when selecting a copper connection between only 2 nodes. 2015-08-25 18:27:04 +02:00
Tomasz Wlostowski b6f61ff676 PNS: correctly snap to offset pads 2015-08-04 12:15:47 +02:00
Maciej Suminski 73a6e95407 Ratsnest algorithm takes into account pad offset. 2015-07-31 17:40:19 +02:00
Maciej Suminski 781ac8df9f RN_NET::GetClosestNodes() minor fix. 2015-07-30 13:49:36 +02:00
Tomasz Wlostowski 63b35f40a7 Removed all dependencies on boost::polygon except for bitmap2component. Replaced almost all instances of CPOLYGONS_LIST with SHAPE_POLY_SET. 2015-07-27 21:45:57 +02:00
Maciej Suminski 232d7462b6 Removed wrong assert. 2015-07-16 12:05:07 +02:00
Maciej Suminski dd8f7cc4b5 Fixed crash on ratsnest calculation after a zone was removed. 2015-07-16 11:10:31 +02:00
Maciej Suminski d2ebf688f9 Reverted commits that remove boost::polygon dependency (need more testing). 2015-07-14 22:23:13 +02:00
Tomasz Wlostowski 41c753b05d Removed all dependencies on boost::polygon except for bitmap2component. Replaced almost all instances of CPOLYGONS_LIST with SHAPE_POLY_SET. 2015-07-14 13:36:24 +02:00
Maciej Suminski 3cb095b7c2 GAL canvases update status bar, message panel & zoom widget. 2015-07-03 20:58:12 +02:00
Maciej Suminski a8bffb862c Fix for disappearing ratsnest lines (GAL). 2015-06-24 00:28:21 +02:00
Maciej Suminski aadcd93ab5 Removed a redundant field in RN_NODE class. 2015-06-05 17:49:01 +02:00
Maciej Suminski e86351b1b0 Fixed ratsnest for tracks with 0 length. 2015-06-05 17:49:01 +02:00
Maciej Suminski fa421f15d8 Clearer dynamic ratsnest (for moved items). 2015-06-05 17:49:00 +02:00
Maciej Suminski 16db8e644b Logical operators for ratsnest node filters. 2015-06-05 17:49:00 +02:00
Maciej Suminski 6cc535f27f Less significant changes to the ratsnest code (GAL). 2015-06-05 17:49:00 +02:00
Maciej Suminski c23adc47b7 Ratsnest algorithm distinguishes layers (GAL). 2015-06-04 14:54:08 +02:00
Maciej Suminski a12ea29de8 Refactored the way zones are kept in ratsnest model (GAL). 2015-06-04 14:54:07 +02:00
Maciej Suminski a2b8ab6b41 Ratsnest fix (GAL). 2015-06-04 14:54:07 +02:00
Maciej Suminski 0331d9958a Minor optimization for ratsnest. 2015-06-04 14:54:06 +02:00
Maciej Suminski d18ed945c9 Do not run OpenMP loops when there is no data to 2015-04-30 10:46:06 +02:00