#pragma once #include "ico.hpp" namespace kel { template class ico_coordinate { private: static constexpr uint64_t sub_divs_ = impl::power_two::value; uint64_t t_; uint64_t x_; uint64_t y_; public: ico_coordinate(uint64_t t__, uint64_t x__, uint64_t y__): t_{t__}, x_{x__}, y_{y__} {} bool is_on_border() const { auto comb = x_+y_; bool farside_b = (comb == sub_divs_); bool right_b = (y_ == 0u); bool left_b = (x_ == 0u); return farside_b or right_b or left_b; } ico_coordinate move_x_pos() const { uint64_t x_mov = x_ + 1u; } }; }