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 113 of file shape_index_list.h.

Constructor & Destructor Documentation

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

Definition at line 116 of file shape_index_list.h.

117  {
118  }
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 120 of file shape_index_list.h.

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

121  :
122  m_end( aEnd ),
123  m_current( aCurrent ),
124  m_shape( aShape ),
125  m_minDistance( aMinDistance ),
126  m_exact( aExact )
127  {
128  if( aShape )
129  {
130  m_refBBox = aShape->BBox();
131  next();
132  }
133  }
virtual const BOX2I BBox(int aClearance=0) const =0
Function BBox()
template<class T, const SHAPE * = defaultShapeFunctor<T>>
SHAPE_INDEX_LIST< T, >::query_iterator::query_iterator ( const query_iterator aB)
inline

Definition at line 135 of file shape_index_list.h.

135  :
136  m_end( aB.m_end ),
137  m_current( aB.m_current ),
138  m_shape( aB.m_shape ),
139  m_minDistance( aB.m_minDistance ),
140  m_exact( aB.m_exact ),
141  m_refBBox( aB.m_refBBox )
142  {
143  }

Member Function Documentation

template<class T, const SHAPE * = defaultShapeFunctor<T>>
void SHAPE_INDEX_LIST< T, >::query_iterator::next ( )
inlineprivate
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.

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

170  {
171  return m_current != aRhs.m_current;
172  }
template<class T, const SHAPE * = defaultShapeFunctor<T>>
T SHAPE_INDEX_LIST< T, >::query_iterator::operator* ( ) const
inline

Definition at line 145 of file shape_index_list.h.

146  {
147  return (*m_current).parent;
148  }
template<class T, const SHAPE * = defaultShapeFunctor<T>>
query_iterator& SHAPE_INDEX_LIST< T, >::query_iterator::operator++ ( )
inline
template<class T, const SHAPE * = defaultShapeFunctor<T>>
query_iterator& SHAPE_INDEX_LIST< T, >::query_iterator::operator++ ( int  aDummy)
inline
template<class T, const SHAPE * = defaultShapeFunctor<T>>
const query_iterator& SHAPE_INDEX_LIST< T, >::query_iterator::operator= ( const query_iterator aRhs)
inline
template<class T, const SHAPE * = defaultShapeFunctor<T>>
bool SHAPE_INDEX_LIST< T, >::query_iterator::operator== ( const query_iterator aRhs) const
inline

Definition at line 164 of file shape_index_list.h.

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

165  {
166  return m_current == aRhs.m_current;
167  }

Member Data Documentation

template<class T, const SHAPE * = defaultShapeFunctor<T>>
SHAPE_VEC_ITER SHAPE_INDEX_LIST< T, >::query_iterator::m_end
private
template<class T, const SHAPE * = defaultShapeFunctor<T>>
bool SHAPE_INDEX_LIST< T, >::query_iterator::m_exact
private
template<class T, const SHAPE * = defaultShapeFunctor<T>>
int SHAPE_INDEX_LIST< T, >::query_iterator::m_minDistance
private
template<class T, const SHAPE * = defaultShapeFunctor<T>>
BOX2I SHAPE_INDEX_LIST< T, >::query_iterator::m_refBBox
private
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: