19class DrainageBasinCellBased
23 Mat<glm::ivec2>
next = Mat<glm::ivec2>({0, 0});
24 glm::ivec2
null_cell = glm::ivec2(-1, -1);
35 bool remove_lakes =
true,
36 const std::vector<glm::ivec2> &outlets = {});
39 bool remove_lakes =
true,
40 const std::vector<glm::ivec2> &outlets = {});
43 const std::vector<glm::ivec2> &outlets = {});
52 void remove_lakes_d8(
const Array &z,
53 float dz_weight = 1.f,
54 float dz_downstream_cost_ratio = 0.f);
55 void update_traversal();
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
void accumulate(Array &acc) const
std::vector< std::vector< glm::ivec2 > > get_ridges_neighbors()
void traverse_upstream(std::function< void(int, int, int, int, int)> op)
std::vector< glm::ivec2 > get_outlets() const
void traverse_downstream(std::function< void(int, int, int)> op)
void generate_traversal_d8(const Array &z, bool remove_lakes=true, const std::vector< glm::ivec2 > &outlets={})
void generate_traversal(const Array &z, FlowDirectionMethod fd_method=FlowDirectionMethod::FDM_D8, bool remove_lakes=true, const std::vector< glm::ivec2 > &outlets={})
void generate_traversal_priority_flood(const Array &z, const std::vector< glm::ivec2 > &outlets={})
std::vector< std::vector< glm::ivec2 > > upstream_traversal
Definition hydrology.hpp:42
std::vector< std::vector< glm::ivec2 > > get_main_channels()
glm::ivec2 null_cell
Definition hydrology.hpp:44
void traverse_upstream(std::function< void(int, int, int)> op)
void traverse_downstream(std::function< void(int, int, int, int, int)> op)
size_t get_basins_number() const
std::vector< glm::ivec2 > get_ridges()
Mat< glm::ivec2 > next
Definition hydrology.hpp:43
Definition algebra.hpp:23
FlowDirectionMethod
Definition hydrology.hpp:34
@ FDM_D8
Definition hydrology.hpp:35
@ FDM_PRIORITY_FLOOD
Definition hydrology.hpp:36