36 CellPath(
const std::vector<glm::ivec2> &indices);
42 CellPath(std::vector<glm::ivec2> &&indices);
57 std::vector<glm::ivec2> indices;
98void add_noise(std::vector<glm::ivec2> &indices,
102 const glm::ivec2 &shape,
106 float persistence = 0.5f,
107 float lacunarity = 2.f);
Ordered path of grid cell indices.
Definition cell_path.hpp:28
std::vector< glm::ivec2 > & get_indices()
Get the cell indices.
Definition cell_path.cpp:21
Defines modular function objects for procedural generation, including noise algorithms (Perlin,...
Definition algebra.hpp:23
void add_noise(std::vector< glm::ivec2 > &indices, std::uint32_t seed, float kw, float amp, const glm::ivec2 &shape, NoiseType noise_type=NoiseType::PERLIN, int octaves=8, float weight=0.7f, float persistence=0.5f, float lacunarity=2.f)
Applies transverse noise displacement along an integer path.
Definition add_noise.cpp:56
bool is_path_adjacent(const std::vector< glm::ivec2 > &indices)
Checks if a grid path has no gaps (8-connectivity).
Definition add_noise.cpp:141
void add_line_bresenham(std::vector< glm::ivec2 > &out, glm::ivec2 a, glm::ivec2 b)
Rasterizes a segment between two integer points using Bresenham's algorithm.
Definition add_noise.cpp:19
NoiseType
Enumeration of various noise types used for procedural generation.
Definition functions.hpp:67
@ PERLIN
Perlin.
Definition functions.hpp:69
void enforce_path_adjacency(std::vector< glm::ivec2 > &indices)
Ensures that an integer path is grid-adjacent and gap-free.
Definition add_noise.cpp:119