Toshihiro Shimizu 890ddd
#ifndef igs_perlin_noise_h
Toshihiro Shimizu 890ddd
#define igs_perlin_noise_h
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef IGS_PERLIN_NOISE_EXPORT
Toshihiro Shimizu 890ddd
#define IGS_PERLIN_NOISE_EXPORT
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
namespace igs
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
namespace perlin_noise
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
IGS_PERLIN_NOISE_EXPORT void change(
Toshihiro Shimizu 890ddd
	unsigned char *image_array, const int height // pixel
Toshihiro Shimizu 890ddd
	,
Toshihiro Shimizu 890ddd
	const int width // pixel
Toshihiro Shimizu 890ddd
	,
Toshihiro Shimizu 890ddd
	const int channels, const int bits, const bool alpha_rendering_sw = true
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	,
Toshihiro Shimizu 890ddd
	const double a11 = 0.01 // 2D affine transformation
Toshihiro Shimizu 890ddd
	,
Toshihiro Shimizu 890ddd
	const double a12 = 0.0, const double a13 = 0.0, const double a21 = 0.0, const double a22 = 0.01, const double a23 = 0.0
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	,
Toshihiro Shimizu 890ddd
	const double zz = 0.0, const int octaves_start = 3 // 0...
Toshihiro Shimizu 890ddd
	,
Toshihiro Shimizu 890ddd
	const int octaves_end = 9 // 0...
Toshihiro Shimizu 890ddd
	,
Toshihiro Shimizu 890ddd
	const double persistence = 1. / 1.7320508 // not 0
Toshihiro Shimizu 890ddd
	);
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif /* !igs_perlin_noise_h */