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

Header file containing functions for generating and manipulating heightmaps through various techniques. More...

Go to the source code of this file.

Namespaces

namespace  hmap
 

Enumerations

enum  hmap::StampingBlendMethod : int {
  hmap::ADD , hmap::MAXIMUM , hmap::MAXIMUM_SMOOTH , hmap::MINIMUM ,
  hmap::MINIMUM_SMOOTH , hmap::MULTIPLY , hmap::SUBSTRACT
}
 Blending method for the stamping operator. More...
 

Functions

void hmap::alter_elevation (Array &array, const Cloud &cloud, int ir, float footprint_ratio=1.f, Vec2< float > shift={0.f, 0.f}, Vec2< float > scale={1.f, 1.f})
 Point-wise alteration: locally enforce a new elevation value while maintaining the 'shape' of the heightmap.
 
Array hmap::base_elevation (Vec2< int > shape, const std::vector< std::vector< float > > &values, float width_factor=1.f, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, const Array *p_stretching=nullptr, Vec4< float > bbox={0.f, 1.f, 0.f, 1.f})
 Generate a heightmap from a coarse grid of control points with defined elevation values.
 
Array hmap::reverse_midpoint (const Array &array, uint seed, float noise_scale=1.f, float threshold=0.f)
 Apply the reverse midpoint displacement algorithm to the input array.
 
Array hmap::ridgelines (Vec2< int > shape, const std::vector< float > &xr, const std::vector< float > &yr, const std::vector< float > &zr, float slope, float k_smoothing=1.f, float width=0.1f, float vmin=0.f, Vec4< float > bbox={0.f, 1.f, 0.f, 1.f}, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, const Array *p_stretching=nullptr, Vec4< float > bbox_array={0.f, 1.f, 0.f, 1.f})
 Generate a heightmap based on a set of ridgelines and a specified slope.
 
Array hmap::ridgelines_bezier (Vec2< int > shape, const std::vector< float > &xr, const std::vector< float > &yr, const std::vector< float > &zr, float slope, float k_smoothing=1.f, float width=0.1f, float vmin=0.f, Vec4< float > bbox={0.f, 1.f, 0.f, 1.f}, const Array *p_noise_x=nullptr, const Array *p_noise_y=nullptr, const Array *p_stretching=nullptr, Vec4< float > bbox_array={0.f, 1.f, 0.f, 1.f})
 Generate a heightmap based on a set of ridgelines with quadratic Bezier interpolation.
 
Array hmap::stamping (Vec2< int > shape, const std::vector< float > &xr, const std::vector< float > &yr, const std::vector< float > &zr, Array kernel, int kernel_ir, bool kernel_scale_radius, bool kernel_scale_amplitude, StampingBlendMethod blend_method, uint seed, float k_smoothing=0.1f, bool kernel_flip=true, bool kernel_rotate=false, Vec4< float > bbox_array={0.f, 1.f, 0.f, 1.f})
 Generate a heightmap by stamping a kernel at predefined locations.
 

Detailed Description

Header file containing functions for generating and manipulating heightmaps through various techniques.

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

This header file provides functions for creating and modifying heightmaps using techniques such as stamping kernels, defining ridgelines, applying the reverse midpoint displacement algorithm, and more. These functions offer a range of capabilities for terrain generation, elevation modifications, and heightmap processing.