Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_display.h"
00035 #include "../../Core/System/sharedptr.h"
00036 #include "pixel_buffer.h"
00037
00038 class CL_PerlinNoise_Impl;
00039
00043 class CL_API_DISPLAY CL_PerlinNoise
00044 {
00045
00048
00049 public:
00051 CL_PerlinNoise();
00052
00054 virtual ~CL_PerlinNoise();
00055
00059 public:
00060
00070 CL_PixelBuffer create_noise1d(float start_x, float end_x);
00071
00080 CL_PixelBuffer create_noise2d(float start_x, float end_x, float start_y, float end_y);
00081
00091 CL_PixelBuffer create_noise3d(float start_x, float end_x, float start_y, float end_y, float z_position);
00092
00103 CL_PixelBuffer create_noise4d(float start_x, float end_x, float start_y, float end_y, float z_position, float w_position);
00104
00106 CL_Size get_size() const;
00107
00109 CL_TextureFormat get_format() const;
00110
00112 float get_amplitude() const;
00113
00115 int get_octaves() const;
00116
00119
00126 void set_permutations(const unsigned char *table, unsigned int size = 256);
00127
00134 void set_size(int width = 256, int height = 256);
00135
00142 void set_size(const CL_Size &size);
00143
00151 void set_format(CL_TextureFormat sized_format = cl_rgb8);
00152
00158 void set_amplitude(float amplitude = 1.0f);
00159
00165 void set_octaves(int octaves = 1);
00166
00170
00171 private:
00172 CL_SharedPtr<CL_PerlinNoise_Impl> impl;
00173 };
00174