39 void set_outlets(
const std::vector<glm::ivec2> &outlet_indices);
53 const Array &erodibility,
58 const Array &max_slope);
77 const int di[8] = {1, 1, 0, -1, -1, -1, 0, 1};
78 const int dj[8] = {0, -1, -1, -1, 0, 1, 1, 1};
80 {1.f, M_SQRT1_2, 1.f, M_SQRT1_2, 1.f, M_SQRT1_2, 1.f, M_SQRT1_2};
84 const Mat<glm::ivec2> &receivers);
Declaration of the Array class for 2D floating-point arrays with various mathematical operations and ...
Array class, helper to manipulate 2D float array with "(i, j)" indexing.
Definition array.hpp:32
Definition drainage_basin_cell_based.hpp:20
void update_stream_tree(unsigned int seed, float noise_strength)
Definition drainage_basin_cell_based.cpp:499
void compute_receivers(unsigned int seed=0, float noise_strength=0.f)
Definition drainage_basin_cell_based.cpp:46
std::vector< std::vector< glm::ivec2 > > get_main_channels() const
Definition drainage_basin_cell_based.cpp:286
std::unordered_map< glm::ivec2, std::vector< glm::ivec2 >, IVec2Hash > traversals
Definition drainage_basin_cell_based.hpp:71
std::vector< glm::ivec2 > get_outlets() const
Definition drainage_basin_cell_based.cpp:324
Mat< glm::ivec2 > receivers
Definition drainage_basin_cell_based.hpp:67
std::vector< std::vector< glm::ivec2 > > compute_upstream_traversals()
Definition drainage_basin_cell_based.cpp:202
void compute_receivers_priority_flood()
Definition drainage_basin_cell_based.cpp:97
Array z
Definition drainage_basin_cell_based.hpp:64
Array compute_response_times(const Array &area_acc, const Array &erodibility, float m_exp) const
Definition drainage_basin_cell_based.cpp:165
void accumulate_area_by_outlet(Array &acc) const
Definition drainage_basin_cell_based.cpp:27
Mat< std::vector< glm::ivec2 > > children
Definition drainage_basin_cell_based.hpp:68
void remove_lakes(const Mat< glm::ivec2 > &subroot)
Definition drainage_basin_cell_based.cpp:343
Mat< int > outlets_mask
Definition drainage_basin_cell_based.hpp:66
void set_outlets(const std::vector< glm::ivec2 > &outlet_indices)
Definition drainage_basin_cell_based.cpp:441
const Array & get_z() const
Definition drainage_basin_cell_based.cpp:338
float update_elevations(const Array &response_times, float uplift_rate, const Array &max_slope)
Definition drainage_basin_cell_based.cpp:451
void update_traversals()
Definition drainage_basin_cell_based.cpp:510
const glm::ivec2 null_cell
Definition drainage_basin_cell_based.hpp:73
DrainageBasinCellBased()=default
Mat< glm::ivec2 > roots
Definition drainage_basin_cell_based.hpp:69
std::pair< Mat< glm::ivec2 >, bool > find_subroots()
Definition drainage_basin_cell_based.cpp:235
Definition algebra.hpp:23
FlowDirectionMethod
Definition drainage_basin_cell_based.hpp:14
@ FDM_PRIORITY_FLOOD
Definition drainage_basin_cell_based.hpp:16
@ FDM_D8
Definition drainage_basin_cell_based.hpp:15
std::vector< std::vector< size_t > > invert_receiver_map(const std::vector< size_t > &receivers)
Definition drainage_basin.cpp:845
Definition algebra.hpp:119
Mat class for basic manipulation of 2D matrices.
Definition algebra.hpp:180