Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
tatooine::detail::rectilinear_grid::vertex_container< Dimensions > Struct Template Reference

#include <vertex_container.h>

Collaboration diagram for tatooine::detail::rectilinear_grid::vertex_container< Dimensions >:
[legend]

Public Types

using grid_type = tatooine::rectilinear_grid< Dimensions... >
 
using iterator = vertex_iterator< Dimensions... >
 
using const_iterator = iterator
 
using handle = typename grid_type::vertex_handle
 
using pos_type = typename grid_type::pos_type
 
using sequence_type = typename grid_type::sequence_type
 

Public Member Functions

 vertex_container (grid_type const &g)
 
auto at (integral auto const ... is) const
 
auto at (handle const &h) const
 
auto operator[] (handle const &h) const
 
auto operator() (integral auto const ... is) const
 
constexpr auto begin () const
 
constexpr auto end () const
 
constexpr auto size () const
 
template<invocable< decltype(((void) std::declval< Dimensions >(), std::size_t{}))... > Iteration>
auto iterate_indices (Iteration &&iteration, execution_policy_tag auto const exec) const -> decltype(auto)
 
template<invocable< decltype(((void) std::declval< Dimensions >(), std::size_t{}))... > Iteration>
auto iterate_indices (Iteration &&iteration) const -> decltype(auto)
 
template<invocable< pos_type > Iteration>
auto iterate_positions (Iteration &&iteration) const -> decltype(auto)
 
template<invocable< pos_type > Iteration>
auto iterate_positions (Iteration &&iteration, execution_policy_tag auto const exec) const -> decltype(auto)
 

Static Public Member Functions

static constexpr auto num_dimensions () -> std::size_t
 

Private Member Functions

template<std::size_t... Is>
constexpr auto begin (std::index_sequence< Is... >) const
 
template<std::size_t... Is>
constexpr auto end (std::index_sequence< Is... >) const
 
template<std::size_t... Is>
constexpr auto size (std::index_sequence< Is... >) const
 
template<invocable< decltype(((void) std::declval< Dimensions >(), std::size_t{}))... > Iteration, std::size_t... Ds>
auto iterate_indices (Iteration &&iteration, execution_policy_tag auto const exec, std::index_sequence< Ds... >) const -> decltype(auto)
 

Private Attributes

grid_type const & m_grid
 

Member Typedef Documentation

◆ const_iterator

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::const_iterator = iterator

◆ grid_type

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::grid_type = tatooine::rectilinear_grid<Dimensions...>

◆ handle

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::handle = typename grid_type::vertex_handle

◆ iterator

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::iterator = vertex_iterator<Dimensions...>

◆ pos_type

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::pos_type = typename grid_type::pos_type

◆ sequence_type

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::sequence_type = typename grid_type::sequence_type

Constructor & Destructor Documentation

◆ vertex_container()

template<typename... Dimensions>
tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::vertex_container ( grid_type const &  g)
inline

Member Function Documentation

◆ at() [1/2]

template<typename... Dimensions>
auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::at ( handle const &  h) const
inline

◆ at() [2/2]

template<typename... Dimensions>
auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::at ( integral auto const ...  is) const
inline

◆ begin() [1/2]

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::begin ( ) const
inlineconstexpr

◆ begin() [2/2]

template<typename... Dimensions>
template<std::size_t... Is>
constexpr auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::begin ( std::index_sequence< Is... >  ) const
inlineconstexprprivate

◆ end() [1/2]

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::end ( ) const
inlineconstexpr

◆ end() [2/2]

template<typename... Dimensions>
template<std::size_t... Is>
constexpr auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::end ( std::index_sequence< Is... >  ) const
inlineconstexprprivate

◆ iterate_indices() [1/3]

template<typename... Dimensions>
template<invocable< decltype(((void) std::declval< Dimensions >(), std::size_t{}))... > Iteration>
auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::iterate_indices ( Iteration &&  iteration) const -> decltype(auto)
inline

◆ iterate_indices() [2/3]

template<typename... Dimensions>
template<invocable< decltype(((void) std::declval< Dimensions >(), std::size_t{}))... > Iteration>
auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::iterate_indices ( Iteration &&  iteration,
execution_policy_tag auto const  exec 
) const -> decltype(auto)
inline

◆ iterate_indices() [3/3]

template<typename... Dimensions>
template<invocable< decltype(((void) std::declval< Dimensions >(), std::size_t{}))... > Iteration, std::size_t... Ds>
auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::iterate_indices ( Iteration &&  iteration,
execution_policy_tag auto const  exec,
std::index_sequence< Ds... >   
) const -> decltype(auto)
inlineprivate

◆ iterate_positions() [1/2]

template<typename... Dimensions>
template<invocable< pos_type > Iteration>
auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::iterate_positions ( Iteration &&  iteration) const -> decltype(auto)
inline

◆ iterate_positions() [2/2]

template<typename... Dimensions>
template<invocable< pos_type > Iteration>
auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::iterate_positions ( Iteration &&  iteration,
execution_policy_tag auto const  exec 
) const -> decltype(auto)
inline

◆ num_dimensions()

template<typename... Dimensions>
static constexpr auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ operator()()

template<typename... Dimensions>
auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::operator() ( integral auto const ...  is) const
inline

◆ operator[]()

template<typename... Dimensions>
auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::operator[] ( handle const &  h) const
inline

◆ size() [1/2]

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::size ( ) const
inlineconstexpr

◆ size() [2/2]

template<typename... Dimensions>
template<std::size_t... Is>
constexpr auto tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::size ( std::index_sequence< Is... >  ) const
inlineconstexprprivate

Member Data Documentation

◆ m_grid

template<typename... Dimensions>
grid_type const& tatooine::detail::rectilinear_grid::vertex_container< Dimensions >::m_grid
private

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