KiCad PCB EDA Suite
SHAPE_INDEX_LIST< T, >::query_iterator Class Reference

#include <shape_index_list.h>

Public Member Functions

 query_iterator ()
 
 query_iterator (SHAPE_VEC_ITER aCurrent, SHAPE_VEC_ITER aEnd, SHAPE *aShape, int aMinDistance, bool aExact)
 
 query_iterator (const query_iterator &aB)
 
operator* () const
 
query_iteratoroperator++ ()
 
query_iteratoroperator++ (int aDummy)
 
bool operator== (const query_iterator &aRhs) const
 
bool operator!= (const query_iterator &aRhs) const
 
const query_iteratoroperator= (const query_iterator &aRhs)
 

Private Member Functions

void next ()
 

Private Attributes

SHAPE_VEC_ITER m_end
 
SHAPE_VEC_ITER m_current
 
BOX2I m_refBBox
 
bool m_exact
 
SHAPEm_shape
 
int m_minDistance
 

Detailed Description

template<class T, const SHAPE * = defaultShapeFunctor<T>>
class SHAPE_INDEX_LIST< T, >::query_iterator

Definition at line 118 of file shape_index_list.h.

Constructor & Destructor Documentation

◆ query_iterator() [1/3]

template<class T , const SHAPE * = defaultShapeFunctor<T>>
SHAPE_INDEX_LIST< T, >::query_iterator::query_iterator ( )
inline

Definition at line 121 of file shape_index_list.h.

122 {
123 }

◆ query_iterator() [2/3]

template<class T , const SHAPE * = defaultShapeFunctor<T>>
SHAPE_INDEX_LIST< T, >::query_iterator::query_iterator ( SHAPE_VEC_ITER  aCurrent,
SHAPE_VEC_ITER  aEnd,
SHAPE aShape,
int  aMinDistance,
bool  aExact 
)
inline

Definition at line 125 of file shape_index_list.h.

126 :
127 m_end( aEnd ),
128 m_current( aCurrent ),
129 m_shape( aShape ),
130 m_minDistance( aMinDistance ),
131 m_exact( aExact )
132 {
133 if( aShape )
134 {
135 m_refBBox = aShape->BBox();
136 next();
137 }
138 }
virtual const BOX2I BBox(int aClearance=0) const =0
Compute a bounding box of the shape, with a margin of aClearance a collision.

References SHAPE::BBox(), SHAPE_INDEX_LIST< T, >::query_iterator::m_refBBox, and SHAPE_INDEX_LIST< T, >::query_iterator::next().

◆ query_iterator() [3/3]

template<class T , const SHAPE * = defaultShapeFunctor<T>>
SHAPE_INDEX_LIST< T, >::query_iterator::query_iterator ( const query_iterator aB)
inline

Definition at line 140 of file shape_index_list.h.

140 :
141 m_end( aB.m_end ),
142 m_current( aB.m_current ),
143 m_shape( aB.m_shape ),
144 m_minDistance( aB.m_minDistance ),
145 m_exact( aB.m_exact ),
146 m_refBBox( aB.m_refBBox )
147 {
148 }

Member Function Documentation

◆ next()

◆ operator!=()

template<class T , const SHAPE * = defaultShapeFunctor<T>>
bool SHAPE_INDEX_LIST< T, >::query_iterator::operator!= ( const query_iterator aRhs) const
inline

Definition at line 174 of file shape_index_list.h.

175 {
176 return m_current != aRhs.m_current;
177 }

References SHAPE_INDEX_LIST< T, >::query_iterator::m_current.

◆ operator*()

template<class T , const SHAPE * = defaultShapeFunctor<T>>
T SHAPE_INDEX_LIST< T, >::query_iterator::operator* ( ) const
inline

Definition at line 150 of file shape_index_list.h.

151 {
152 return (*m_current).parent;
153 }

◆ operator++() [1/2]

template<class T , const SHAPE * = defaultShapeFunctor<T>>
query_iterator & SHAPE_INDEX_LIST< T, >::query_iterator::operator++ ( )
inline

Definition at line 155 of file shape_index_list.h.

156 {
157 ++m_current;
158 next();
159 return *this;
160 }

References SHAPE_INDEX_LIST< T, >::query_iterator::m_current, and SHAPE_INDEX_LIST< T, >::query_iterator::next().

◆ operator++() [2/2]

template<class T , const SHAPE * = defaultShapeFunctor<T>>
query_iterator & SHAPE_INDEX_LIST< T, >::query_iterator::operator++ ( int  aDummy)
inline

Definition at line 162 of file shape_index_list.h.

163 {
164 ++m_current;
165 next();
166 return *this;
167 }

References SHAPE_INDEX_LIST< T, >::query_iterator::m_current, and SHAPE_INDEX_LIST< T, >::query_iterator::next().

◆ operator=()

template<class T , const SHAPE * = defaultShapeFunctor<T>>
const query_iterator & SHAPE_INDEX_LIST< T, >::query_iterator::operator= ( const query_iterator aRhs)
inline

◆ operator==()

template<class T , const SHAPE * = defaultShapeFunctor<T>>
bool SHAPE_INDEX_LIST< T, >::query_iterator::operator== ( const query_iterator aRhs) const
inline

Definition at line 169 of file shape_index_list.h.

170 {
171 return m_current == aRhs.m_current;
172 }

References SHAPE_INDEX_LIST< T, >::query_iterator::m_current.

Member Data Documentation

◆ m_current

◆ m_end

template<class T , const SHAPE * = defaultShapeFunctor<T>>
SHAPE_VEC_ITER SHAPE_INDEX_LIST< T, >::query_iterator::m_end
private

◆ m_exact

template<class T , const SHAPE * = defaultShapeFunctor<T>>
bool SHAPE_INDEX_LIST< T, >::query_iterator::m_exact
private

◆ m_minDistance

template<class T , const SHAPE * = defaultShapeFunctor<T>>
int SHAPE_INDEX_LIST< T, >::query_iterator::m_minDistance
private

◆ m_refBBox

template<class T , const SHAPE * = defaultShapeFunctor<T>>
BOX2I SHAPE_INDEX_LIST< T, >::query_iterator::m_refBBox
private

◆ m_shape

template<class T , const SHAPE * = defaultShapeFunctor<T>>
SHAPE* SHAPE_INDEX_LIST< T, >::query_iterator::m_shape
private

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