HighMap library (C++)
Loading...
Searching...
No Matches
hmap::DrainageBasinCellBased Class Reference

#include <drainage_basin_cell_based.hpp>

Collaboration diagram for hmap::DrainageBasinCellBased:

Public Member Functions

 DrainageBasinCellBased ()=default
 
 DrainageBasinCellBased (const Array &z_)
 
const Arrayget_z () const
 
void compute_receivers (unsigned int seed=0, float noise_strength=0.f)
 
void compute_receivers_priority_flood ()
 
void update_stream_tree (unsigned int seed, float noise_strength)
 
void update_traversals ()
 
std::vector< glm::ivec2 > get_outlets () const
 
void set_outlets (const std::vector< glm::ivec2 > &outlet_indices)
 
std::vector< std::vector< glm::ivec2 > > compute_upstream_traversals ()
 
std::pair< Mat< glm::ivec2 >, bool > find_subroots ()
 
void remove_lakes (const Mat< glm::ivec2 > &subroot)
 
std::vector< std::vector< glm::ivec2 > > get_main_channels () const
 
Array compute_response_times (const Array &area_acc, const Array &erodibility, float m_exp) const
 
float update_elevations (const Array &response_times, float uplift_rate, const Array &max_slope)
 
void accumulate_area_by_outlet (Array &acc) const
 

Public Attributes

Array z
 
Mat< int > outlets_mask
 
Mat< glm::ivec2 > receivers
 
Mat< std::vector< glm::ivec2 > > children
 
Mat< glm::ivec2 > roots
 
std::unordered_map< glm::ivec2, std::vector< glm::ivec2 >, IVec2Hashtraversals
 
const glm::ivec2 null_cell = glm::ivec2(-1, -1)
 

Constructor & Destructor Documentation

◆ DrainageBasinCellBased() [1/2]

hmap::DrainageBasinCellBased::DrainageBasinCellBased ( )
default

◆ DrainageBasinCellBased() [2/2]

hmap::DrainageBasinCellBased::DrainageBasinCellBased ( const Array z_)

Member Function Documentation

◆ get_z()

const Array & hmap::DrainageBasinCellBased::get_z ( ) const

◆ compute_receivers()

void hmap::DrainageBasinCellBased::compute_receivers ( unsigned int  seed = 0,
float  noise_strength = 0.f 
)

◆ compute_receivers_priority_flood()

void hmap::DrainageBasinCellBased::compute_receivers_priority_flood ( )

◆ update_stream_tree()

void hmap::DrainageBasinCellBased::update_stream_tree ( unsigned int  seed,
float  noise_strength 
)

◆ update_traversals()

void hmap::DrainageBasinCellBased::update_traversals ( )

◆ get_outlets()

std::vector< glm::ivec2 > hmap::DrainageBasinCellBased::get_outlets ( ) const

◆ set_outlets()

void hmap::DrainageBasinCellBased::set_outlets ( const std::vector< glm::ivec2 > &  outlet_indices)

◆ compute_upstream_traversals()

std::vector< std::vector< glm::ivec2 > > hmap::DrainageBasinCellBased::compute_upstream_traversals ( )

◆ find_subroots()

std::pair< Mat< glm::ivec2 >, bool > hmap::DrainageBasinCellBased::find_subroots ( )

◆ remove_lakes()

void hmap::DrainageBasinCellBased::remove_lakes ( const Mat< glm::ivec2 > &  subroot)

◆ get_main_channels()

std::vector< std::vector< glm::ivec2 > > hmap::DrainageBasinCellBased::get_main_channels ( ) const

◆ compute_response_times()

Array hmap::DrainageBasinCellBased::compute_response_times ( const Array area_acc,
const Array erodibility,
float  m_exp 
) const

◆ update_elevations()

float hmap::DrainageBasinCellBased::update_elevations ( const Array response_times,
float  uplift_rate,
const Array max_slope 
)

◆ accumulate_area_by_outlet()

void hmap::DrainageBasinCellBased::accumulate_area_by_outlet ( Array acc) const

Member Data Documentation

◆ z

Array hmap::DrainageBasinCellBased::z

◆ outlets_mask

Mat<int> hmap::DrainageBasinCellBased::outlets_mask

◆ receivers

Mat<glm::ivec2> hmap::DrainageBasinCellBased::receivers

◆ children

Mat<std::vector<glm::ivec2> > hmap::DrainageBasinCellBased::children

◆ roots

Mat<glm::ivec2> hmap::DrainageBasinCellBased::roots

◆ traversals

std::unordered_map<glm::ivec2, std::vector<glm::ivec2>, IVec2Hash> hmap::DrainageBasinCellBased::traversals

◆ null_cell

const glm::ivec2 hmap::DrainageBasinCellBased::null_cell = glm::ivec2(-1, -1)

The documentation for this class was generated from the following files: