00001
00002
00003
00004
00005
00006
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00029
00030 #ifndef NOISE_H
00031 # define NOISE_H
00032
00033
00034 # include "../system/FreestyleConfig.h"
00035 # include "Geom.h"
00036
00037 #define _Noise_B_ 0x100
00038
00039 using namespace Geometry;
00040 using namespace std;
00041
00043 class LIB_GEOMETRY_EXPORT Noise
00044 {
00045 public:
00046
00048 Noise();
00050 ~Noise() {}
00051
00053 float turbulence1(float arg, float freq, float amp, unsigned oct = 4);
00054
00056 float turbulence2(Vec2f& v, float freq, float amp, unsigned oct = 4);
00057
00059 float turbulence3(Vec3f& v, float freq, float amp, unsigned oct = 4);
00060
00062 float smoothNoise1(float arg);
00064 float smoothNoise2(Vec2f& vec);
00066 float smoothNoise3(Vec3f& vec);
00067
00068 private:
00069
00070 int p[ _Noise_B_ + _Noise_B_ + 2];
00071 float g3[ _Noise_B_ + _Noise_B_ + 2][3];
00072 float g2[ _Noise_B_ + _Noise_B_ + 2][2];
00073 float g1[ _Noise_B_ + _Noise_B_ + 2];
00074 int start;
00075 };
00076
00077 #endif // NOISE_H