#include <noise.hpp>
#include <stdlib.h>
TCODNoise::TCODNoise(int dimensions, TCOD_noise_type_t type) {
data = TCOD_noise_new(dimensions, TCOD_NOISE_DEFAULT_HURST, TCOD_NOISE_DEFAULT_LACUNARITY, TCODRandom::getInstance()->data);
TCOD_noise_set_type(data,type);
}
TCODNoise::TCODNoise(int dimensions, TCODRandom *random, TCOD_noise_type_t type) {
data = TCOD_noise_new(dimensions, TCOD_NOISE_DEFAULT_HURST, TCOD_NOISE_DEFAULT_LACUNARITY, random->data);
TCOD_noise_set_type(data,type);
}
TCODNoise::TCODNoise(int dimensions, float hurst, float lacunarity, TCOD_noise_type_t type) {
data = TCOD_noise_new(dimensions, hurst, lacunarity, TCODRandom::getInstance()->data);
TCOD_noise_set_type(data,type);
}
TCODNoise::TCODNoise(int dimensions, float hurst, float lacunarity, TCODRandom *random, TCOD_noise_type_t type) {
data = TCOD_noise_new(dimensions, hurst, lacunarity, random->data);
TCOD_noise_set_type(data,type);
}
void TCODNoise::setType(TCOD_noise_type_t type) {
TCOD_noise_set_type(data,type);
}
float TCODNoise::get (float *f, TCOD_noise_type_t type) {
if (type == TCOD_NOISE_DEFAULT) return TCOD_noise_get(data,f);
else return TCOD_noise_get_ex(data,f,type);
}
float TCODNoise::getFbm (float *f, float octaves, TCOD_noise_type_t type) {
if (type == TCOD_NOISE_DEFAULT) return TCOD_noise_get_fbm(data,f,octaves);
else return TCOD_noise_get_fbm_ex(data,f,octaves,type);
}
float TCODNoise::getTurbulence (float *f, float octaves, TCOD_noise_type_t type) {
if (type == TCOD_NOISE_DEFAULT) return TCOD_noise_get_turbulence(data,f,octaves);
else return TCOD_noise_get_turbulence_ex(data,f,octaves,type);
}
TCODNoise::~TCODNoise() {
TCOD_noise_delete(data);
}