KiCad PCB EDA Suite
Loading...
Searching...
No Matches
CN_RTREE< T > Class Template Reference

CN_RTREE - Implements an R-tree for fast spatial indexing of connectivity items. More...

#include <connectivity_rtree.h>

Public Member Functions

 CN_RTREE ()
 
 ~CN_RTREE ()
 
void Insert (T aItem)
 Function Insert() Inserts an item into the tree.
 
void Remove (T aItem)
 Function Remove() Removes an item from the tree.
 
void RemoveAll ()
 Function RemoveAll() Removes all items from the RTree.
 
template<class Visitor >
void Query (const BOX2I &aBounds, const LAYER_RANGE &aRange, Visitor &aVisitor) const
 Function Query() Executes a function object aVisitor for each item whose bounding box intersects with aBounds.
 

Private Attributes

RTree< T, int, 3, double > * m_tree
 

Detailed Description

template<class T>
class CN_RTREE< T >

CN_RTREE - Implements an R-tree for fast spatial indexing of connectivity items.

Non-owning.

Definition at line 39 of file connectivity_rtree.h.

Constructor & Destructor Documentation

◆ CN_RTREE()

template<class T >
CN_RTREE< T >::CN_RTREE ( )
inline

Definition at line 43 of file connectivity_rtree.h.

References CN_RTREE< T >::m_tree.

◆ ~CN_RTREE()

template<class T >
CN_RTREE< T >::~CN_RTREE ( )
inline

Definition at line 48 of file connectivity_rtree.h.

References CN_RTREE< T >::m_tree.

Member Function Documentation

◆ Insert()

template<class T >
void CN_RTREE< T >::Insert ( aItem)
inline

Function Insert() Inserts an item into the tree.

Item's bounding box is taken via its BBox() method.

Definition at line 57 of file connectivity_rtree.h.

References LAYER_RANGE::End(), BOX2< Vec >::GetBottom(), BOX2< Vec >::GetRight(), BOX2< Vec >::GetX(), BOX2< Vec >::GetY(), CN_RTREE< T >::m_tree, and LAYER_RANGE::Start().

Referenced by CN_LIST::addItemtoTree().

◆ Query()

template<class T >
template<class Visitor >
void CN_RTREE< T >::Query ( const BOX2I aBounds,
const LAYER_RANGE aRange,
Visitor &  aVisitor 
) const
inline

Function Query() Executes a function object aVisitor for each item whose bounding box intersects with aBounds.

Definition at line 110 of file connectivity_rtree.h.

References LAYER_RANGE::End(), BOX2< Vec >::GetBottom(), BOX2< Vec >::GetRight(), BOX2< Vec >::GetX(), BOX2< Vec >::GetY(), CN_RTREE< T >::m_tree, and LAYER_RANGE::Start().

Referenced by CN_LIST::FindNearby().

◆ Remove()

template<class T >
void CN_RTREE< T >::Remove ( aItem)
inline

Function Remove() Removes an item from the tree.

Removal is done by comparing pointers, attempting to remove a copy of the item will fail.

Definition at line 73 of file connectivity_rtree.h.

References LAYER_RANGE::End(), BOX2< Vec >::GetBottom(), BOX2< Vec >::GetRight(), BOX2< Vec >::GetX(), BOX2< Vec >::GetY(), CN_RTREE< T >::m_tree, and LAYER_RANGE::Start().

◆ RemoveAll()

template<class T >
void CN_RTREE< T >::RemoveAll ( )
inline

Function RemoveAll() Removes all items from the RTree.

Definition at line 99 of file connectivity_rtree.h.

References CN_RTREE< T >::m_tree.

Referenced by CN_LIST::Clear().

Member Data Documentation

◆ m_tree

template<class T >
RTree<T, int, 3, double>* CN_RTREE< T >::m_tree
private

The documentation for this class was generated from the following file: