HighMap library (C++)
Loading...
Searching...
No Matches
path_functions.cpp File Reference

Namespaces

namespace  hmap
 

Functions

Path hmap::helper_build_path (const std::vector< Point > &points, InterpolationMethodCurve method, Path::EdgeDivisionMode edm, int edge_divisions, int point_count)
 
Path hmap::bezier (const Path &path, float curvature_ratio=0.3f, int edge_divisions=10, Path::EdgeDivisionMode edm=Path::EdgeDivisionMode::EDM_PER_EDGE)
 Smooth the path using Bezier curves.
 
Path hmap::bezier_round (const Path &path, float curvature_ratio=0.3f, int edge_divisions=10, Path::EdgeDivisionMode edm=Path::EdgeDivisionMode::EDM_PER_EDGE)
 Smooth the path using Bezier curves (alternative method).
 
Path hmap::bspline (const Path &path, int edge_divisions=10, Path::EdgeDivisionMode edm=Path::EdgeDivisionMode::EDM_PER_EDGE)
 Smooth the path using B-Spline curves.
 
Path hmap::catmullrom (const Path &path, int edge_divisions=10, Path::EdgeDivisionMode edm=Path::EdgeDivisionMode::EDM_PER_EDGE)
 Smooth the path using Catmull-Rom curves.
 
Path hmap::decasteljau (const Path &path, int edge_divisions=10, Path::EdgeDivisionMode edm=Path::EdgeDivisionMode::EDM_PER_EDGE)
 Smooth the path using De Casteljau curves.
 
Path hmap::decimate_vw (const Path &path, int n_points_target=3)
 Simplifies the current path using the Visvalingam-Whyatt algorithm.
 
Path hmap::fractalize (const Path &path, int iterations, uint seed, float sigma=0.2f, int orientation=0, float persistence=1.f, Array *p_control_field=nullptr, glm::vec4 bbox={0.f, 1.f, 0.f, 1.f})
 Applies fractalization to the path by adding points and randomly displacing their positions.
 
Path hmap::inflate (const Path &path, float strength, bool resample=true)
 Inflate (offset) a path along its normals using curvature.
 
Path hmap::meanderize (const Path &path, float ratio, float noise_ratio=0.1f, uint seed=1, int iterations=1, int edge_divisions=10, Path::EdgeDivisionMode edm=Path::EdgeDivisionMode::EDM_PER_EDGE)
 Add "meanders" to the path.
 
Array hmap::path_sdf_to_array (const Path &path, glm::ivec2 shape, glm::vec4 bbox_array={0.f, 1.f, 0.f, 1.f}, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr)
 Compute a distance field from a point path.
 
Path hmap::remove_geometric_loops (const Path &path)
 Removes geometric loops in a 2D path caused by self-intersections.
 
Path hmap::smooth (const Path &path, int navg=1, float averaging_intensity=1.f, float inertia=0.f)
 Applies a smoothing operation to the path points using a moving average filter.