28#include <unordered_set>
81 template<
class Visitor>
82 int Query(
const ITEM* aItem,
int aMinDistance, Visitor& aVisitor )
const;
95 template<
class Visitor>
96 int Query(
const SHAPE* aShape,
int aMinDistance, Visitor& aVisitor )
const;
122 template <
class Visitor>
123 int querySingle( std::size_t aIndex,
const SHAPE* aShape,
int aMinDistance, Visitor& aVisitor )
const;
132template<
class Visitor>
139 return m_subIndices[aIndex]->Query( aShape, aMinDistance, aVisitor);
142template<
class Visitor>
151 for(
int i = layers.
Start(); i <= layers.
End(); ++i )
157template<
class Visitor>
163 total +=
querySingle( i, aShape, aMinDistance, aVisitor );
std::deque< std::unique_ptr< ITEM_SHAPE_INDEX > > m_subIndices
void Replace(ITEM *aOldItem, ITEM *aNewItem)
Replaces one item with another.
int querySingle(std::size_t aIndex, const SHAPE *aShape, int aMinDistance, Visitor &aVisitor) const
std::unordered_set< ITEM * > ITEM_SET
void Remove(ITEM *aItem)
Removes an item from the spatial index.
bool Contains(ITEM *aItem) const
Function Contains()
std::list< ITEM * > NET_ITEMS_LIST
SHAPE_INDEX< ITEM * > ITEM_SHAPE_INDEX
int Size() const
Returns number of items stored in the index.
ITEM_SET::iterator begin()
void Add(ITEM *aItem)
Adds item to the spatial index.
int Query(const ITEM *aItem, int aMinDistance, Visitor &aVisitor) const
Searches items in the index that are in proximity of aItem.
NET_ITEMS_LIST * GetItemsForNet(NET_HANDLE aNet)
Returns list of all items in a given net.
std::map< NET_HANDLE, NET_ITEMS_LIST > m_netMap
Base class for PNS router board items.
virtual const SHAPE * Shape(int aLayer) const
Return the geometrical shape of the item.
const PNS_LAYER_RANGE & Layers() const
PnsKind Kind() const
Return the type (kind) of the item.
Represent a contiguous set of PCB layers.
An abstract shape on 2D plane.
Push and Shove diff pair dimensions (gap) settings dialog.