LArSoft
v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
|
Base forward iterator browsing all wire IDs in the detector. More...
#include "GeometryCore.h"
Public Types | |
using | ElementPtr_t = geo::WireGeo const * |
using | GeoID_t = typename upper_iterator::GeoID_t |
using | LocalID_t = geo::WireID |
type of the ID we change More... | |
using | iterator = wire_id_iterator_base< GeoID_t > |
type of this iterator More... | |
Public Member Functions | |
wire_id_iterator_base () | |
Default constructor; effect not defined: assign to it before using! More... | |
wire_id_iterator_base (geo::GeometryCore const *geom) | |
Constructor: points to begin. More... | |
wire_id_iterator_base (geo::GeometryCore const *geom, GeoID_t const &start_from) | |
Constructor: points to the specified wire. More... | |
wire_id_iterator_base (geo::GeometryCore const *geom, BeginPos_t const) | |
Constructor: points to begin. More... | |
wire_id_iterator_base (geo::GeometryCore const *geom, EndPos_t) | |
Constructor: points to end. More... | |
template<typename OTHERID > | |
bool | operator== (wire_id_iterator_base< OTHERID > const &as) const |
Returns true if the two iterators point to the same wire. More... | |
template<typename OTHERID > | |
bool | operator!= (wire_id_iterator_base< OTHERID > const &as) const |
Returns true if the two iterators point to different wires. More... | |
LocalID_t const & | operator* () const |
Returns the WireID the iterator points to. More... | |
LocalID_t const * | operator-> () const |
Returns the WireID the iterator points to. More... | |
iterator & | operator++ () |
Prefix increment: returns this iterator pointing to the next wire. More... | |
iterator | operator++ (int) |
Postfix increment: returns the current iterator, then increments it. More... | |
operator bool () const | |
Returns whether the iterator is pointing to a valid wire. More... | |
ElementPtr_t | get () const |
Returns a pointer to wire, or nullptr if invalid. More... | |
Protected Types | |
using | ID_t = typename LocalID_t::WireID_t |
specific type for wire ID More... | |
Protected Member Functions | |
wire_id_iterator_base (geo::GeometryCore const *geom, UndefinedPos_t) | |
Constructor: position undefined (meaning undefined local limits too) More... | |
LocalID_t const & | localID () const |
Returns the type of ID we act on. More... | |
void | next () |
Skips to the next wire. More... | |
ID_t const & | local_index () const |
Returns the index (part if the ID) this iterator runs on. More... | |
template<typename OTHERID > | |
bool | operator== (plane_id_iterator_base< OTHERID > const &as) const |
Returns true if the two iterators point to the same plane. More... | |
template<typename OTHERID > | |
bool | operator== (TPC_id_iterator_base< OTHERID > const &as) const |
Returns true if the two iterators point to the same TPC. More... | |
template<typename OTHERID > | |
bool | operator== (cryostat_id_iterator_base< OTHERID > const &as) const |
Returns true if the two iterators point to the same cryostat. More... | |
template<typename OTHERID > | |
bool | operator!= (plane_id_iterator_base< OTHERID > const &as) const |
Returns true if the two iterators point to different planes. More... | |
template<typename OTHERID > | |
bool | operator!= (TPC_id_iterator_base< OTHERID > const &as) const |
Returns true if the two iterators point to different TPCs. More... | |
template<typename OTHERID > | |
bool | operator!= (cryostat_id_iterator_base< OTHERID > const &as) const |
Returns true if the two iterators point to different cryostats. More... | |
bool | at_end () const |
Returns whether this iterator has reached the end. More... | |
geo::GeometryCore const * | geometry () const |
Returns a pointer to the geometry. More... | |
GeoID_t const & | ID () const |
Returns the actual type of ID we store. More... | |
GeoID_t & | ID () |
Returns the actual type of ID we store. More... | |
Static Protected Attributes | |
static constexpr BeginPos_t | begin_pos = {} |
static constexpr EndPos_t | end_pos = {} |
static constexpr UndefinedPos_t | undefined_pos = {} |
Private Types | |
using | upper_iterator = plane_id_iterator_base< GEOID > |
Private Member Functions | |
void | set_local_limits () |
Sets limit to the past-the-end wire number of current plane. More... | |
LocalID_t & | localID () |
Returns the type of ID we act on (non-const version) More... | |
ID_t & | local_index () |
Returns the index (part if the ID) this iterator runs on (non-const) More... | |
Private Attributes | |
ID_t | limit = LocalID_t::InvalidID |
maximum number of wires in the current plane More... | |
Base forward iterator browsing all wire IDs in the detector.
GEOID | ID type to be used |
This iterator requires that GEOID is derived from geo::WireID. Note that no polymorphic behaviour is required, or expected, from GEOID.
This iterator is designed to carry on, untouched, anything else that the GEOID type defines beyond the required WireID data.
Currently, backward iterations are not supported.
Definition at line 567 of file GeometryCore.h.
using geo::details::wire_id_iterator_base< GEOID >::ElementPtr_t = geo::WireGeo const* |
Definition at line 574 of file GeometryCore.h.
using geo::details::wire_id_iterator_base< GEOID >::GeoID_t = typename upper_iterator::GeoID_t |
Definition at line 575 of file GeometryCore.h.
|
protected |
specific type for wire ID
Definition at line 648 of file GeometryCore.h.
using geo::details::wire_id_iterator_base< GEOID >::iterator = wire_id_iterator_base<GeoID_t> |
type of this iterator
Definition at line 582 of file GeometryCore.h.
using geo::details::wire_id_iterator_base< GEOID >::LocalID_t = geo::WireID |
type of the ID we change
Definition at line 577 of file GeometryCore.h.
|
private |
Definition at line 571 of file GeometryCore.h.
|
inline |
Default constructor; effect not defined: assign to it before using!
Definition at line 595 of file GeometryCore.h.
|
inline |
Constructor: points to begin.
Definition at line 598 of file GeometryCore.h.
|
inline |
Constructor: points to the specified wire.
Definition at line 603 of file GeometryCore.h.
|
inline |
Constructor: points to begin.
Definition at line 608 of file GeometryCore.h.
|
inline |
Constructor: points to end.
Definition at line 613 of file GeometryCore.h.
|
inlineprotected |
Constructor: position undefined (meaning undefined local limits too)
Definition at line 651 of file GeometryCore.h.
|
inlineprotectedinherited |
Returns whether this iterator has reached the end.
Definition at line 245 of file GeometryCore.h.
|
inlineprotectedinherited |
Returns a pointer to the geometry.
Definition at line 135 of file GeometryCore.h.
|
inline |
Returns a pointer to wire, or nullptr if invalid.
Definition at line 5761 of file GeometryCore.h.
|
inlineprotectedinherited |
Returns the actual type of ID we store.
Definition at line 237 of file GeometryCore.h.
|
inlineprotectedinherited |
Returns the actual type of ID we store.
Definition at line 238 of file GeometryCore.h.
|
inlineprotected |
Returns the index (part if the ID) this iterator runs on.
Definition at line 667 of file GeometryCore.h.
|
inlineprivate |
Returns the index (part if the ID) this iterator runs on (non-const)
Definition at line 681 of file GeometryCore.h.
|
inlineprotected |
Returns the type of ID we act on.
Definition at line 658 of file GeometryCore.h.
Referenced by geo::details::wire_id_iterator_base< GEOID >::operator!=(), and geo::details::wire_id_iterator_base< GEOID >::operator==().
|
inlineprivate |
Returns the type of ID we act on (non-const version)
Definition at line 678 of file GeometryCore.h.
|
inlineprotected |
Skips to the next wire.
Definition at line 5772 of file GeometryCore.h.
|
inline |
Returns whether the iterator is pointing to a valid wire.
Definition at line 5755 of file GeometryCore.h.
|
inlineinherited |
Returns true if the two iterators point to different cryostats.
Definition at line 206 of file GeometryCore.h.
References geo::details::cryostat_id_iterator_base< GEOID >::localID().
|
inlineinherited |
Returns true if the two iterators point to different TPCs.
Definition at line 351 of file GeometryCore.h.
References geo::details::TPC_id_iterator_base< GEOID >::localID().
|
inlineinherited |
Returns true if the two iterators point to different planes.
Definition at line 488 of file GeometryCore.h.
References geo::details::plane_id_iterator_base< GEOID >::localID().
|
inline |
Returns true if the two iterators point to different wires.
Definition at line 625 of file GeometryCore.h.
References geo::details::wire_id_iterator_base< GEOID >::localID().
|
inline |
Returns the WireID the iterator points to.
Definition at line 629 of file GeometryCore.h.
|
inline |
Prefix increment: returns this iterator pointing to the next wire.
Definition at line 635 of file GeometryCore.h.
|
inline |
Postfix increment: returns the current iterator, then increments it.
Definition at line 638 of file GeometryCore.h.
|
inline |
Returns the WireID the iterator points to.
Definition at line 632 of file GeometryCore.h.
|
inlineinherited |
Returns true if the two iterators point to the same cryostat.
Definition at line 201 of file GeometryCore.h.
References geo::details::cryostat_id_iterator_base< GEOID >::localID().
|
inlineinherited |
Returns true if the two iterators point to the same TPC.
Definition at line 346 of file GeometryCore.h.
References geo::details::TPC_id_iterator_base< GEOID >::localID().
|
inlineinherited |
Returns true if the two iterators point to the same plane.
Definition at line 483 of file GeometryCore.h.
References geo::details::plane_id_iterator_base< GEOID >::localID().
|
inline |
Returns true if the two iterators point to the same wire.
Definition at line 620 of file GeometryCore.h.
References geo::details::wire_id_iterator_base< GEOID >::localID().
|
inlineprivate |
Sets limit to the past-the-end wire number of current plane.
Definition at line 5766 of file GeometryCore.h.
|
staticinherited |
Definition at line 119 of file GeometryCore.h.
Referenced by geo::GeometryCore::begin_cryostat(), geo::GeometryCore::begin_cryostat_id(), geo::GeometryCore::begin_plane(), geo::GeometryCore::begin_plane_id(), geo::GeometryCore::begin_ROP_id(), geo::GeometryCore::begin_TPC(), geo::GeometryCore::begin_TPC_id(), geo::GeometryCore::begin_TPCset_id(), geo::GeometryCore::begin_wire(), geo::GeometryCore::begin_wire_id(), and geo::GeometryCore::PointWithinSegments().
|
staticinherited |
Definition at line 120 of file GeometryCore.h.
Referenced by geo::GeometryCore::end_cryostat(), geo::GeometryCore::end_cryostat_id(), geo::GeometryCore::end_plane(), geo::GeometryCore::end_plane_id(), geo::GeometryCore::end_ROP_id(), geo::GeometryCore::end_TPC(), geo::GeometryCore::end_TPC_id(), geo::GeometryCore::end_TPCset_id(), geo::GeometryCore::end_wire(), geo::GeometryCore::end_wire_id(), and geo::GeometryCore::PointWithinSegments().
|
private |
maximum number of wires in the current plane
Definition at line 672 of file GeometryCore.h.
|
staticinherited |
Definition at line 121 of file GeometryCore.h.
Referenced by geo::GeometryCore::PointWithinSegments().