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

Path class for manipulating and analyzing paths in 2D space. More...

Go to the source code of this file.

Classes

class  hmap::Path
 Represents an ordered set of points in 2D, forming a polyline (open or closed). More...
 

Namespaces

namespace  hmap
 

Functions

void hmap::dig_path (Array &z, Path &path, int width=1, int decay=2, int flattening_radius=16, bool force_downhill=false, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f}, float depth=0.f)
 Dig a path on a heightmap.
 
void hmap::dig_river (Array &z, const std::vector< Path > &path_list, float riverbank_talus, int river_width=0, int merging_width=0, float depth=0.f, float riverbed_talus=0.f, float noise_ratio=0.9f, uint seed=0, Array *p_mask=nullptr)
 Modifies the elevation array to carve a river along a specified path.
 
void hmap::dig_river (Array &z, const Path &path, float riverbank_talus, int river_width=0, int merging_width=0, float depth=0.f, float riverbed_talus=0.f, float noise_ratio=0.9f, uint seed=0, Array *p_mask=nullptr)
 
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)
 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, int midp_iterations=4, float midp_sigma=0.2f)
 

Detailed Description

Path class for manipulating and analyzing paths in 2D space.

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

This file defines the Path class, which extends the Cloud class to provide functionalities specific to paths. The Path class includes methods for creating, manipulating, and analyzing paths, including smoothing the path with various curves, resampling, and performing operations like meandering and fractalizing.

Version
0.1
Date
2023-06-18

This software is distributed under the terms of the GNU General Public License. The full license is in the file LICENSE, distributed with this software.