Commit Graph

98 Commits

Author SHA1 Message Date
Seth Hillbrand ac92afcf13 Clean up compile warnings
Ratsnest did not need a reserve and then iterative emplace.  Instead, we
use resize().  Stroke font gets private vars initialized and kiway
variables that are only used in debug builds are properly scoped for
releases as well
2019-12-05 20:05:21 -08:00
Seth Hillbrand c6f5df134c Minor speed cleanup
This adjusts iterators to use const reference when only used for
copy.  It also ensures pre-allocation of vectors when size is known
ahead of time.
2019-12-05 14:20:59 -08:00
Seth Hillbrand b5f021ff9f Cleanup: Replace push_back with emplace_back
In cases where we create a new item and immediately push into a
container, the emplace idiom is faster and more efficient.
2019-12-05 13:41:21 -08:00
Seth Hillbrand 4460313104 pcbnew: Separating connectivity to subdir 2018-10-12 16:31:09 -07:00
Seth Hillbrand 47fac8a259 Removing some unused code 2018-09-20 12:52:53 -07:00
Seth Hillbrand 296ada95a3 Remove unused private vars 2018-05-03 09:48:15 -07:00
jean-pierre charras 1bc3dfef10 fix compil issue in kicad.i and a minor compil warning 2018-01-28 22:24:51 +01:00
Tomasz Włostowski 3456b6e3c3 pcbnew: fixed incorrect ratsnest computation when all nodes in a net are on a single line 2018-01-23 11:55:11 +01:00
Maciej Suminski 6701095855 Fixed a method returning reference to a local variable 2017-08-09 14:03:27 +02:00
Tomasz Włostowski 32185ddcd3 Multiple improvements concerning colors, configuration handling and legacy features in pcbnew:
- support for background color setting
    - removed several global config settings (such as g_Drc_On)
    - wrapped most of global config settings in PCB_GENERAL_SETTINGS class
    - reorganized PCB general options dialog to clearly mark which options concern only the legacy canvas
    - new GAL feature for legacy users: double-click (or E) to change track width available as an option.

Fixes: lp:1530543
* https://bugs.launchpad.net/kicad/+bug/1530543

Fixes: lp:1707145
* https://bugs.launchpad.net/kicad/+bug/1707145
2017-08-04 16:06:57 +02:00
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