#include "terrain.h" #include #include "noiseutils/noiseutils.h" #include using namespace noise; float *Terrain::generate_heights(int x, int y, int width, int height) { module::Perlin mod; mod.SetSeed(0); utils::NoiseMap heightmap; utils::NoiseMapBuilderPlane heightmap_builder; heightmap_builder.SetSourceModule(mod); heightmap_builder.SetDestNoiseMap(heightmap); heightmap_builder.SetDestSize(width, height); heightmap_builder.SetBounds(x / 100, (x+width) / 100, y / 100, (y+height) / 100); heightmap_builder.Build(); float *heights = new float[width*height]; for(int i = 0; i < width; i++) { for(int j = 0; j < height; j++) { heights[i*height + j] = 10*(1+heightmap.GetValue(i, j)); } } return heights; }