|
KiCad PCB EDA Suite
|
#include <memory>#include <vector>Go to the source code of this file.
Functions | |
| std::vector< std::unique_ptr< ZONE > > | MergeZonesWithSameOutline (std::vector< std::unique_ptr< ZONE > > &&aZones) |
| Merges zones with identical outlines and nets on different layers into single multi-layer zones. | |
| bool | AutoAssignZonePriorities (BOARD *aBoard, PROGRESS_REPORTER *aReporter=nullptr) |
| Automatically assign zone priorities based on connectivity analysis of overlapping regions. | |
| bool AutoAssignZonePriorities | ( | BOARD * | aBoard, |
| PROGRESS_REPORTER * | aReporter = nullptr ) |
Automatically assign zone priorities based on connectivity analysis of overlapping regions.
For each pair of overlapping zones, counts pads and vias per-net in the intersection area. The zone whose net has more items in the overlap gets higher priority. When item counts are within 20% of the larger count, the smaller zone gets higher priority. Overlap analysis for each pair runs in parallel via the KiCad thread pool.
| aBoard | the board whose zone priorities will be reassigned |
| aReporter | optional progress reporter |
Definition at line 501 of file zone_utils.cpp.
References assignPrioritiesFromGraph(), findOverlappingPairs(), GetKiCadThreadPool(), result, tp, ufFind(), ufUnion(), and BOARD::Zones().
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), DIALOG_ZONE_MANAGER::OnAutoAssignClick(), and FABMASTER::orderZones().
| std::vector< std::unique_ptr< ZONE > > MergeZonesWithSameOutline | ( | std::vector< std::unique_ptr< ZONE > > && | aZones | ) |
Merges zones with identical outlines and nets on different layers into single multi-layer zones.
| aZones | is the zones to merge. Ownership of all the zones is taken (some will be returned) |
Definition at line 55 of file zone_utils.cpp.
References SHAPE_LINE_CHAIN::BBox(), SHAPE_LINE_CHAIN::CompareGeometry(), SHAPE_POLY_SET::CPolygon(), ZONE::GetFill(), ZONE::GetLayerSet(), SHAPE_POLY_SET::Outline(), SHAPE_POLY_SET::OutlineCount(), SHAPE_LINE_CHAIN::PointCount(), RuleAreasHaveSameProps(), ZONE::SetFilledPolysList(), ZONE::SetIsFilled(), ZONE::SetLayerSet(), and ZONE::SetNeedRefill().
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and ALLEGRO::BOARD_BUILDER::createZones().