HighMap library (C++)
Loading...
Searching...
No Matches
shortest_path.hpp File Reference

Implements shortest path algorithms including Dijkstra's method for 2D array data representation. More...

Go to the source code of this file.

Namespaces

namespace  hmap
 

Functions

Path hmap::dijkstra (const Path &path, const Array &array, glm::vec4 bbox, float elevation_ratio=0.f, float distance_exponent=0.5f, float upward_penalization=1.f, Array *p_mask_nogo=nullptr)
 Divide the path by adding points based on the lowest elevation difference between each pair of edge endpoints.
 
Path hmap::find_cut_path_dijkstra (const Array &z, DomainBoundary start, DomainBoundary end, float dijk_elevation_ratio=0.9f, float dijk_distance_exponent=2.f, float dijk_upward_penalization=100.f, uint seed=0, bool favor_boundary_center=true, bool favor_lower_elevation=true, bool favor_sinks=true)
 Find a Dijkstra-based cut path between two domain boundaries.
 
Path hmap::find_cut_path_midpoint (const Array &z, DomainBoundary start, DomainBoundary end, uint seed, float offset_ratio=0.2f, int steps=16, bool favor_boundary_center=true, bool favor_lower_elevation=true, bool favor_sinks=true)
 Generate a stochastic cut path using midpoint displacement.
 
void hmap::find_path_dijkstra (const Array &z, glm::ivec2 ij_start, glm::ivec2 ij_end, std::vector< int > &i_path, std::vector< int > &j_path, float elevation_ratio=0.1f, float distance_exponent=2.f, float upward_penalization=1.f, const Array *p_mask_nogo=nullptr)
 Finds the path with the lowest elevation and elevation difference between two points in a 2D array using Dijkstra's algorithm.
 
void hmap::find_path_dijkstra (const Array &z, glm::ivec2 ij_start, std::vector< glm::ivec2 > ij_end_list, std::vector< std::vector< int > > &i_path_list, std::vector< std::vector< int > > &j_path_list, float elevation_ratio=0.1f, float distance_exponent=2.f, float upward_penalization=1.f, const Array *p_mask_nogo=nullptr)
 
std::vector< glm::ivec2 > hmap::find_path_midpoint (const Array &z, glm::ivec2 ij_start, glm::ivec2 ij_end, float offset_ratio=0.5f, int max_it=0, int steps=16)
 Compute a path between two points using iterative midpoint refinement.
 

Detailed Description

Implements shortest path algorithms including Dijkstra's method for 2D array data representation.

Author
Otto Link (otto..nosp@m.link.nosp@m..bv@g.nosp@m.mail.nosp@m..com)