|
fcppt 5.2.1
Freundlich's C++ toolkit
|
Contains fcppt::container::grid::object and helper types/functions for it. More...
Classes | |
| struct | is_object |
| struct | is_object< fcppt::container::grid::object< T, N, A > > |
| struct | min_tag |
| class | object |
| An n-dimensional array. More... | |
| class | pos_iterator |
| An iterator over grid position. More... | |
| class | pos_range |
| A range over grid position. More... | |
| class | pos_ref_iterator |
| An iterator over grid references. More... | |
| class | pos_ref_range |
| A range over grid references. More... | |
| class | pos_reference |
| A reference to a grid cell and its position. More... | |
| class | spiral_iterator |
| class | spiral_range |
| struct | sup_tag |
Typedefs | |
| template<typename SizeType, fcppt::container::grid::size_type N> | |
| using | dim = fcppt::math::dim::static_<SizeType, N> |
| The type of a grid's size. | |
| template<typename Grid> | |
| using | dim_type = fcppt::container::grid::detail::dim_type<Grid>::type |
| The dim type of a grid. | |
| template<typename Type> | |
| using | is_static_row = fcppt::array::is_object<Type> |
| Checks if a type is an fcppt::container::grid::static_row. | |
| template<typename Pos> | |
| using | min_from_pos |
| Creates the min from a pos type. | |
| template<typename SizeType, fcppt::container::grid::size_type Size> | |
| using | min |
| The start type of a pos range. | |
| template<typename Pos> | |
| using | moore_neighbor_array |
| The type return by fcppt::container::grid::moore_neighbors. | |
| template<typename Pos> | |
| using | neumann_neighbor_array = fcppt::array::object<Pos, 4> |
| The type return by fcppt::container::grid::neumann_neighbors. | |
| template<typename SizeType, fcppt::container::grid::size_type N> | |
| using | pos = fcppt::math::vector::static_<SizeType, N> |
| The type used to index a grid. | |
| template<typename Grid> | |
| using | pos_type = fcppt::container::grid::detail::pos_type<Grid>::type |
| The pos type of a grid. | |
| template<typename T, fcppt::container::grid::size_type N> | |
| using | static_row_type = fcppt::array::object<T, N> |
| The type of a static row (an array). | |
| template<typename Pos> | |
| using | sup_from_pos |
| Creates the sup from a pos type. | |
| template<typename SizeType, fcppt::container::grid::size_type Size> | |
| using | sup |
| The one-past-the-end type of a pos range. | |
| using | size_type |
| An unsigned type used to count grid dimensions. | |
Functions | |
| template<typename Function, fcppt::container::grid::object_concept Grid1, fcppt::container::grid::object_concept... Grids> | |
| auto | apply (Function const &_function, Grid1 &&_grid1, Grids &&..._grids) -> fcppt::container::grid::object< decltype(_function(fcppt::move_if_rvalue< Grid1 >(_grid1.get_unsafe(std::declval< fcppt::container::grid::pos_type< std::remove_cvref_t< Grid1 > > >())), fcppt::move_if_rvalue< Grids >(_grids.get_unsafe(std::declval< fcppt::container::grid::pos_type< std::remove_cvref_t< Grid1 > > >()))...)), std::remove_cvref_t< Grid1 >::static_size::value > |
| Applies a function to multiple grids of the same size. | |
| template<typename Grid> | |
| fcppt::optional::reference< fcppt::container::to_value_type< Grid > > | at_optional (Grid &_grid, fcppt::container::grid::pos_type< std::remove_cv_t< Grid > > const _pos) |
| Returns a grid element as an optional. | |
| template<typename Source, fcppt::container::grid::size_type Size> | |
| fcppt::container::grid::min< std::make_unsigned_t< Source >, Size > | clamped_min (fcppt::container::grid::pos< Source, Size > const _pos) |
| Clamps a signed position to min. | |
| template<typename Source, fcppt::container::grid::size_type Size> | |
| fcppt::container::grid::sup< Source, Size > | clamped_sup (fcppt::container::grid::pos< Source, Size > const _pos, fcppt::container::grid::dim< Source, Size > const _size) |
| Clamps a position to a grid's size. | |
| template<typename Dest, typename Source, fcppt::container::grid::size_type Size> | |
| fcppt::container::grid::sup< Dest, Size > | clamped_sup_signed (fcppt::container::grid::pos< Source, Size > const _pos, fcppt::container::grid::dim< Dest, Size > const _size) |
| Clamps a signed position to a grid's size. | |
| template<typename T, fcppt::container::grid::size_type N, typename A> | |
| bool | operator== (fcppt::container::grid::object< T, N, A > const &_a, fcppt::container::grid::object< T, N, A > const &_b) |
| Compares two grids for equality. | |
| template<typename T, fcppt::container::grid::size_type N, typename A> | |
| bool | operator!= (fcppt::container::grid::object< T, N, A > const &_a, fcppt::container::grid::object< T, N, A > const &_b) |
!(a == b) | |
| template<typename SizeType, fcppt::container::grid::size_type Size> | |
| fcppt::container::grid::pos< SizeType, Size > | end_position (fcppt::container::grid::min< SizeType, Size > const _min, fcppt::container::grid::sup< SizeType, Size > const _sup) |
| The end position of a range. | |
| template<typename T, fcppt::container::grid::size_type N, typename A, typename Function> | |
| void | fill (fcppt::container::grid::object< T, N, A > &_grid, Function const &_function) |
| Fills a grid using a function. | |
| template<typename T, fcppt::container::grid::size_type N, typename A> | |
| bool | in_range (fcppt::container::grid::object< T, N, A > const &_grid, fcppt::container::grid::pos_type< fcppt::container::grid::object< T, N, A > > const &_pos) |
Checks if the given position _pos is out of bounds. | |
| template<typename T, fcppt::container::grid::size_type N> | |
| bool | in_range_dim (fcppt::container::grid::dim< T, N > const _dim, fcppt::container::grid::pos< T, N > const _pos) |
Checks if the given position _pos is out of bounds. | |
| template<typename T, fcppt::container::grid::size_type N, typename A, typename F, typename Interpolator> | |
| T | interpolate (fcppt::container::grid::object< T, N, A > const &_grid, fcppt::math::vector::static_< F, N > const &_floating_point_position, Interpolator const &_interpolator) |
| Interpolates a value inside the grid cells. | |
| template<typename SizeType, fcppt::container::grid::size_type N> | |
| fcppt::container::grid::min_from_pos< fcppt::container::grid::pos< SizeType, N > > | make_min (fcppt::container::grid::pos< SizeType, N > const _pos) |
| Creates min from a pos value. | |
| template<typename SizeType, fcppt::container::grid::size_type Size> | |
| fcppt::container::grid::pos_range< SizeType, Size > | make_pos_range (fcppt::container::grid::dim< SizeType, Size > const _size) |
| A range over all positions. | |
| template<typename SizeType, fcppt::container::grid::size_type Size> | |
| fcppt::container::grid::pos_range< SizeType, Size > | make_pos_range_start_end (fcppt::container::grid::min< SizeType, Size > const _min, fcppt::container::grid::sup< SizeType, Size > const _sup) |
| A sub range over positions. | |
| template<typename Grid> | |
| fcppt::container::grid::pos_ref_range< Grid const > | make_pos_ref_crange (Grid const &_grid) |
| A const pos ref range over a grid. | |
| template<typename Grid> | |
| fcppt::container::grid::pos_ref_range< Grid const > | make_pos_ref_crange_start_end (Grid const &_grid, typename fcppt::container::grid::pos_ref_range< Grid const >::min_type const _min, typename fcppt::container::grid::pos_ref_range< Grid const >::sup_type const _sup) |
| A const pos ref range over a sub-grid. | |
| template<typename Grid> | |
| fcppt::container::grid::pos_ref_range< Grid > | make_pos_ref_range (Grid &_grid) |
| A pos ref range over a grid. | |
| template<typename Grid> requires (fcppt::container::grid::is_object<std::remove_const_t<Grid>>::value) | |
| fcppt::container::grid::pos_ref_range< Grid > | make_pos_ref_range_start_end (Grid &_grid, typename fcppt::container::grid::pos_ref_range< Grid >::min_type const _min, typename fcppt::container::grid::pos_ref_range< Grid >::sup_type const _sup) |
| A pos ref range over a sub-grid. | |
| template<typename Pos> | |
| fcppt::container::grid::spiral_range< Pos > | make_spiral_range (Pos const _start, fcppt::type_traits::value_type< Pos > const _max_dist) |
| template<typename SizeType, fcppt::container::grid::size_type N> | |
| fcppt::container::grid::sup_from_pos< fcppt::container::grid::pos< SizeType, N > > | make_sup (fcppt::container::grid::pos< SizeType, N > const _pos) |
| Creates sup from a pos value. | |
| template<typename Source, typename Function> requires fcppt::container::grid::is_object<std::remove_cvref_t<Source>>::value | |
| auto | map (Source &&_source, Function const &_function) -> fcppt::container::grid::object< decltype(_function(fcppt::move_if_rvalue< Source >(_source.get_unsafe(std::declval< fcppt::container::grid::pos_type< std::remove_cvref_t< Source > > >())))), std::remove_cvref_t< Source >::static_size::value > |
| Maps over grids. | |
| template<typename SizeType, fcppt::container::grid::size_type Size> | |
| bool | min_less_sup (fcppt::container::grid::min< SizeType, Size > const _min, fcppt::container::grid::sup< SizeType, Size > const _sup) |
| Checks if min is strictly less than sup. | |
| template<typename T, fcppt::container::grid::size_type N> | |
| fcppt::container::grid::moore_neighbor_array< fcppt::container::grid::pos< T, N > > | moore_neighbors (fcppt::container::grid::pos< T, N > const _pos) |
| Computes the Moore neighbors. | |
| template<typename T, fcppt::container::grid::size_type N> | |
| fcppt::container::grid::neumann_neighbor_array< fcppt::container::grid::pos< T, N > > | neumann_neighbors (fcppt::container::grid::pos< T, N > const _pos) |
| Computes the von Neumann neighbors. | |
| template<typename SizeType, fcppt::container::grid::size_type Size> | |
| fcppt::container::grid::pos< SizeType, Size > | next_position (fcppt::container::grid::pos< SizeType, Size > const _current, fcppt::container::grid::min< SizeType, Size > const _min, fcppt::container::grid::sup< SizeType, Size > const _sup) |
| Returns the next position in a grid range. | |
| template<typename T, fcppt::container::grid::size_type N, typename A> | |
| void | swap (fcppt::container::grid::object< T, N, A > &, fcppt::container::grid::object< T, N, A > &) noexcept |
| template<typename SizeType, fcppt::container::grid::size_type Size> | |
| SizeType | offset (fcppt::container::grid::pos< SizeType, Size > const &_pos, fcppt::container::grid::dim< SizeType, Size > const &_size) |
| Returns the absolute offset of a position. | |
| template<typename Ch, typename Traits, typename T, fcppt::container::grid::size_type N, typename A> | |
| std::basic_ostream< Ch, Traits > & | operator<< (std::basic_ostream< Ch, Traits > &_stream, fcppt::container::grid::object< T, N, A > const &_object) |
| Outputs a grid. | |
| template<typename SizeType, fcppt::container::grid::size_type Size> | |
| fcppt::container::grid::dim< SizeType, Size > | range_dim (fcppt::container::grid::min< SizeType, Size > const _min, fcppt::container::grid::sup< SizeType, Size > const _sup) |
| The dimension of a grid range. | |
| template<typename SizeType, fcppt::container::grid::size_type Size> | |
| SizeType | range_size (fcppt::container::grid::min< SizeType, Size > const _min, fcppt::container::grid::sup< SizeType, Size > const _sup) |
| The number of elements in a grid range. | |
| template<typename Grid, typename Function> requires fcppt::container::grid::is_object<std::remove_cvref_t<std::remove_cvref_t<Grid>>>::value | |
| std::remove_cvref_t< Grid > | resize (Grid &&_grid, fcppt::container::grid::dim_type< std::remove_cvref_t< Grid > > const &_new_size, Function const &_init) |
| Returns a resized grid with potentially new elements. | |
| template<typename Arg1, typename... Args> requires ( std::conjunction_v<std::is_same<std::remove_cvref_t<Args>, std::remove_cvref_t<Arg1>>...>) | |
| fcppt::container::grid::static_row_type< std::remove_cvref_t< Arg1 >, fcppt::cast::size< fcppt::container::grid::size_type >(sizeof...(Args)+1U)> | static_row (Arg1 &&_arg1, Args &&..._args) |
| Creates an fcppt::container::grid::static_row_type. | |
Contains fcppt::container::grid::object and helper types/functions for it.
| using fcppt::math::size_type |
An unsigned type used to count grid dimensions.
|
inline |
|
noexcept |