Grid#

File: samarium/util/Grid.hpp

Hold values on a (contiguous) 2d grid

namespace sm

Typedefs

using Image = Grid<Color>#
using ScalarField = Grid<f64>#
using VectorField = Grid<Vector2>#

Functions

constexpr auto convert_1d_to_2d(Dimensions dims, u64 index)#
constexpr auto convert_2d_to_1d(Dimensions dims, Indices coordinates)#
inline auto iota_view_2d(Dimensions dims)#

Variables

static constexpr auto dims4K = Dimensions{3840UL, 2160UL}#
static constexpr auto dimsFHD = Dimensions{1920UL, 1080UL}#
static constexpr auto dims720 = Dimensions{1280UL, 720UL}#
static constexpr auto dims480 = Dimensions{640UL, 480UL}#
static constexpr auto dimsP2 = Dimensions{2048UL, 1024UL}#
template<typename T>
class Grid#

Public Types

using value_type = T#
using reference = T&#
using const_reference = const T&#
using iterator = T*#
using const_iterator = T const*#
using difference_type = std::ptrdiff_t#
using size_type = u64#

Public Functions

inline explicit Grid(Dimensions dims_)#
inline Grid(Dimensions dims_, T init_value)#
inline explicit Grid(std::span<const T> span, Dimensions dims_)#
inline auto operator[](Indices indices) -> reference#
inline auto operator[](Indices indices) const -> const_reference#
inline auto operator[](u64 index) noexcept -> T&#
inline auto operator[](u64 index) const noexcept -> const_reference#
inline auto at(Indices indices) -> T&#
inline auto at(Indices indices) const -> const_reference#
inline auto at(u64 index) -> T&#
inline auto at(u64 index) const -> const_reference#
inline auto at_or(Indices indices, T default_value) const -> T#
inline auto at_or(u64 index, T default_value) const -> T#
inline auto begin()#
inline auto end()#
inline auto begin() const#
inline auto end() const#
inline auto cbegin() const#
inline auto cend() const#
inline auto front() const -> const_reference#
inline auto front() -> reference#
inline auto back() const -> const_reference#
inline auto back() -> reference#
inline auto size() const#
inline auto empty() const#
inline auto bounding_box() const#
inline auto fill(const T &value)#
template<concepts::ColorFormat Format>
inline auto formatted_data(Format format) const#
inline auto span()#
inline iterator data()#
inline const_iterator data() const#
inline auto upscale(u64 upscale_factor) const#
inline auto enumerate_1d()#
inline auto enumerate_2d()#
inline auto byte_size() const#

Public Members

std::vector<T> elements#
const Dimensions dims#

Public Static Functions

template<typename Fn>
static inline auto generate(Dimensions dims, Fn &&fn)#