ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::iterator Struct Reference

Iterator over the graph nodes. More...

#include <detray/navigation/volume_graph.hpp>

Public Types

using difference_type = std::iter_difference_t<volume_iter>
 Difference type of the underlying volume iterator.
using iterator_category
 Category of the underlying volume iterator.
using pointer = typename std::iterator_traits<volume_iter>::pointer
 Pointer type of the underlying volume iterator.
using reference = std::iter_reference_t<volume_iter>
 Reference type of the underlying volume iterator.
using value_type = node
 Value type produced by dereferencing this iterator.
using volume_iter = detray::ranges::const_iterator_t<volume_container_t>
 Iterator type used to traverse the detector's volumes.

Public Member Functions

 iterator ()=delete
 No default construction because of reference member.
 iterator (volume_iter &&vol_itr, const detector_t &det)
 Constructor from an iterator on the detector volume container and a reference to its surface container.
node operator* ()
 Dereference operator.
iterator & operator++ ()
 Prefix increment.
constexpr auto operator+= (const difference_type j) -> iterator &
 Advances iterator by j.
iterator & operator-- ()
 Prefix decrement.
constexpr auto operator-= (const difference_type j) -> iterator &
 Advances iterator by - j.
bool operator== (const iterator &rhs) const
 Equality operator.

Detailed Description

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
struct detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::iterator

Iterator over the graph nodes.

Member Typedef Documentation

◆ iterator_category

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
using detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::iterator::iterator_category
Initial value:
typename std::iterator_traits<volume_iter>::iterator_category

Category of the underlying volume iterator.

Constructor & Destructor Documentation

◆ iterator()

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::iterator::iterator ( volume_iter && vol_itr,
const detector_t & det )

Constructor from an iterator on the detector volume container and a reference to its surface container.

Parameters
vol_itriterator into the detector volume container
detdetector used to build graph nodes

Member Function Documentation

◆ operator*()

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
node detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::iterator::operator* ( )

Dereference operator.

Returns
a graph node

◆ operator++()

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
iterator & detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::iterator::operator++ ( )

Prefix increment.

No postfix increment implemented

Returns
this iterator after advancing

◆ operator+=()

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
auto detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::iterator::operator+= ( const difference_type j) ->iterator &
constexpr

Advances iterator by j.

Parameters
joffset by which to advance
Returns
this iterator after advancing

◆ operator--()

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
iterator & detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::iterator::operator-- ( )

Prefix decrement.

No postfix decrement implemented

Returns
this iterator after moving

◆ operator-=()

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
auto detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::iterator::operator-= ( const difference_type j) ->iterator &
constexpr

Advances iterator by - j.

Parameters
joffset by which to move backwards
Returns
this iterator after moving

◆ operator==()

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
bool detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::iterator::operator== ( const iterator & rhs) const

Equality operator.

Parameters
rhsiterator to compare with
Returns
true when both iterators refer to the same volume position