KiCad PCB EDA Suite
Loading...
Searching...
No Matches
drc_zone_index.h File Reference
#include <algorithm>
#include <map>
#include <optional>
#include <utility>
#include <vector>
#include <geometry/rtree/packed_rtree.h>
#include <math/box2.h>
#include <zone.h>

Go to the source code of this file.

Classes

class  DRC_ZONE_INDEX
 

Functions

template<typename BOX_FN>
std::vector< std::pair< size_t, size_t > > CollectOverlappingPairs (const std::vector< size_t > &aOrderedIndices, BOX_FN aBox)
 Enumerate the pairs of aOrderedIndices whose boxes overlap, in the order a nested loop over the vector would have produced them.
 

Function Documentation

◆ CollectOverlappingPairs()

template<typename BOX_FN>
std::vector< std::pair< size_t, size_t > > CollectOverlappingPairs ( const std::vector< size_t > & aOrderedIndices,
BOX_FN aBox )

Enumerate the pairs of aOrderedIndices whose boxes overlap, in the order a nested loop over the vector would have produced them.

aBox supplies each entry's box and returns no value for an entry which has none; such an entry appears in no pair. Boxes are normalized before comparison and overlap is inclusive, so the result matches BOX2I::Intersects() including the degenerate origin box a zone with no cached bounds reports.

Definition at line 35 of file drc_zone_index.h.

Referenced by BOOST_FIXTURE_TEST_CASE(), and DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones().