![]() |
LArSoft
v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
|
Forward iterator browsing all geometry elements in the detector. More...
#include "element_iterators.h"
Public Types | |
using | id_iterator_t = GEOIDITER |
using | iterator = geometry_element_iterator< Owner, Element, id_iterator_t > |
this type More... | |
Types mirrored from the ID iterator | |
using | LocalID_t = typename id_iterator_t::LocalID_t |
using | GeoID_t = typename id_iterator_t::GeoID_t |
using | ElementPtr_t = Element const * |
Iterator traits | |
using | difference_type = std::ptrdiff_t |
using | value_type = Element |
using | reference = value_type const & |
using | pointer = value_type const * |
using | iterator_category = std::forward_iterator_tag |
Public Member Functions | |
geometry_element_iterator ()=default | |
Default constructor; effect not defined: assign to it before using! More... | |
geometry_element_iterator (Owner const *owner, id_iterator_t const &iter) | |
Constructor: points to the same element as the specified ID iterator. More... | |
reference | operator* () const |
Returns the geometry element the iterator points to. More... | |
pointer | operator-> () const |
Returns a pointer to the element the iterator points to (or nullptr) More... | |
iterator & | operator++ () |
Prefix increment: returns this iterator pointing to the next element. 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 geometry element. More... | |
ElementPtr_t | get () const |
Returns a pointer to the geometry element, or nullptr if invalid. More... | |
LocalID_t const & | ID () const |
Returns the ID of the pointed geometry element. More... | |
auto | id_iterator () const |
Private Attributes | |
Owner const * | geom |
id_iterator_t | id_iter |
Forward iterator browsing all geometry elements in the detector.
GEOITER | type of geometry ID iterator |
This iterator works as the corresponding ID iterator in the template argument. The difference is the dereferenciation operator: this one obtains the geometry element directly, or throws on failure. The boolean conversion operator checks that it can obtain a pointer to the geometry element.
In particular, get() and ID() methods still return the pointer to the geometry element and its ID, respectively.
It can also be initialized and compare with the corresponding ID iterator.
Definition at line 36 of file element_iterators.h.
using geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::difference_type = std::ptrdiff_t |
Definition at line 54 of file element_iterators.h.
using geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::ElementPtr_t = Element const* |
Definition at line 49 of file element_iterators.h.
using geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::GeoID_t = typename id_iterator_t::GeoID_t |
Definition at line 48 of file element_iterators.h.
using geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::id_iterator_t = GEOIDITER |
Definition at line 38 of file element_iterators.h.
using geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::iterator = geometry_element_iterator<Owner, Element, id_iterator_t> |
this type
Definition at line 43 of file element_iterators.h.
using geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::iterator_category = std::forward_iterator_tag |
Definition at line 58 of file element_iterators.h.
using geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::LocalID_t = typename id_iterator_t::LocalID_t |
Definition at line 47 of file element_iterators.h.
using geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::pointer = value_type const* |
Definition at line 57 of file element_iterators.h.
using geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::reference = value_type const& |
Definition at line 56 of file element_iterators.h.
using geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::value_type = Element |
Definition at line 55 of file element_iterators.h.
|
default |
Default constructor; effect not defined: assign to it before using!
|
inline |
Constructor: points to the same element as the specified ID iterator.
Definition at line 65 of file element_iterators.h.
References geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::id_iter.
|
inline |
Returns a pointer to the geometry element, or nullptr if invalid.
Definition at line 105 of file element_iterators.h.
References geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::geom, geo::details::getElementPtr(), and geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::id_iter.
|
inline |
Returns the ID of the pointed geometry element.
Definition at line 108 of file element_iterators.h.
References geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::id_iter.
Referenced by geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::operator*().
|
inline |
Definition at line 110 of file element_iterators.h.
References geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::id_iter.
Referenced by geo::details::operator==().
|
inline |
Returns whether the iterator is pointing to a valid geometry element.
Definition at line 102 of file element_iterators.h.
References geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::geom, geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::id_iter, and geo::details::validElement().
|
inline |
Returns the geometry element the iterator points to.
cet::exception | (category "geometry_iterator") if no valid geometry element is currently pointed by the iterator |
Definition at line 75 of file element_iterators.h.
References geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::ID().
|
inline |
Prefix increment: returns this iterator pointing to the next element.
Definition at line 87 of file element_iterators.h.
References geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::id_iter.
|
inline |
Postfix increment: returns the current iterator, then increments it.
Definition at line 94 of file element_iterators.h.
References geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::id_iter.
|
inline |
Returns a pointer to the element the iterator points to (or nullptr)
Definition at line 84 of file element_iterators.h.
|
private |
Definition at line 113 of file element_iterators.h.
Referenced by geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::get(), and geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::operator bool().
|
private |
Definition at line 114 of file element_iterators.h.
Referenced by geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::geometry_element_iterator(), geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::get(), geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::ID(), geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::id_iterator(), geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::operator bool(), and geo::details::geometry_element_iterator< Owner, Element, GEOIDITER >::operator++().