2012-01-23 23:45:33 +00:00
|
|
|
#ifndef _PAYSAGES_NOISE_H_
|
|
|
|
#define _PAYSAGES_NOISE_H_
|
|
|
|
|
2012-04-22 17:12:39 +00:00
|
|
|
#include "pack.h"
|
2012-01-23 23:45:33 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
struct NoiseLevel
|
|
|
|
{
|
2012-06-15 09:31:11 +00:00
|
|
|
float scaling;
|
|
|
|
float height;
|
|
|
|
float xoffset;
|
|
|
|
float yoffset;
|
|
|
|
float zoffset;
|
2012-01-23 23:45:33 +00:00
|
|
|
};
|
|
|
|
typedef struct NoiseLevel NoiseLevel;
|
|
|
|
typedef struct NoiseGenerator NoiseGenerator;
|
|
|
|
|
2012-02-27 15:25:12 +00:00
|
|
|
void noiseInit();
|
|
|
|
void noiseQuit();
|
2012-04-22 17:12:39 +00:00
|
|
|
void noiseSave(PackStream* stream);
|
|
|
|
void noiseLoad(PackStream* stream);
|
2012-02-27 15:25:12 +00:00
|
|
|
|
2012-01-23 23:45:33 +00:00
|
|
|
NoiseGenerator* noiseCreateGenerator();
|
|
|
|
void noiseDeleteGenerator(NoiseGenerator* generator);
|
2012-04-22 17:12:39 +00:00
|
|
|
void noiseSaveGenerator(PackStream* stream, NoiseGenerator* perlin);
|
|
|
|
void noiseLoadGenerator(PackStream* stream, NoiseGenerator* perlin);
|
2012-01-23 23:45:33 +00:00
|
|
|
void noiseCopy(NoiseGenerator* source, NoiseGenerator* destination);
|
|
|
|
void noiseGenerateBaseNoise(NoiseGenerator* generator, int size);
|
|
|
|
int noiseGetBaseSize(NoiseGenerator* generator);
|
2012-06-15 09:31:11 +00:00
|
|
|
float noiseGetMaxValue(NoiseGenerator* generator);
|
2012-01-23 23:45:33 +00:00
|
|
|
int noiseGetLevelCount(NoiseGenerator* generator);
|
|
|
|
void noiseClearLevels(NoiseGenerator* generator);
|
|
|
|
void noiseAddLevel(NoiseGenerator* generator, NoiseLevel level);
|
2012-06-15 09:31:11 +00:00
|
|
|
void noiseAddLevelSimple(NoiseGenerator* generator, float scaling, float height);
|
|
|
|
void noiseAddLevels(NoiseGenerator* generator, int level_count, NoiseLevel start_level, float scaling_factor, float height_factor, int randomize_offset);
|
|
|
|
void noiseAddLevelsSimple(NoiseGenerator* generator, int level_count, float scaling, float height);
|
2012-01-23 23:45:33 +00:00
|
|
|
void noiseRemoveLevel(NoiseGenerator* generator, int level);
|
|
|
|
int noiseGetLevel(NoiseGenerator* generator, int level, NoiseLevel* params);
|
|
|
|
void noiseSetLevel(NoiseGenerator* generator, int level, NoiseLevel params);
|
2012-06-15 09:31:11 +00:00
|
|
|
void noiseSetLevelSimple(NoiseGenerator* generator, int level, float scaling, float height);
|
|
|
|
void noiseNormalizeHeight(NoiseGenerator* generator, float min_height, float max_height, int adjust_scaling);
|
|
|
|
float noiseGet1DLevel(NoiseGenerator* generator, int level, float x);
|
|
|
|
float noiseGet1DTotal(NoiseGenerator* generator, float x);
|
|
|
|
float noiseGet1DDetail(NoiseGenerator* generator, float x, float detail);
|
|
|
|
float noiseGet2DLevel(NoiseGenerator* generator, int level, float x, float y);
|
|
|
|
float noiseGet2DTotal(NoiseGenerator* generator, float x, float y);
|
|
|
|
float noiseGet2DDetail(NoiseGenerator* generator, float x, float y, float detail);
|
|
|
|
float noiseGet3DLevel(NoiseGenerator* generator, int level, float x, float y, float z);
|
|
|
|
float noiseGet3DTotal(NoiseGenerator* generator, float x, float y, float z);
|
|
|
|
float noiseGet3DDetail(NoiseGenerator* generator, float x, float y, float z, float detail);
|
2012-01-23 23:45:33 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|