00001
00002
00003
00004
00005
00006
00014
00015 #ifndef _NOISE_H_
00016 #define _NOISE_H_
00017 #include <stdlib.h>
00018 #include <time.h>
00019 #include <ngl/Types.h>
00020 #include <ngl/Vector.h>
00021 #include <ngl/Random.h>
00022 class Noise
00023 {
00024 public :
00025 Noise();
00026 GLfloat marble(GLfloat A,GLfloat s,ngl::Vector p);
00027 GLfloat sqr(GLfloat x);
00028 GLfloat noise(GLfloat x,GLfloat y, GLfloat z);
00029 GLfloat noise(GLfloat scale, ngl::Vector p);
00030 GLfloat turbulance(GLfloat s, ngl::Vector p);
00031 GLfloat marble(GLfloat x, GLfloat y, GLfloat z);
00032 GLfloat marble(GLfloat strength, ngl::Vector p);
00033 GLfloat undulate(GLfloat x);
00034 void resetTables();
00035
00036 private :
00037 float *noiseTable;
00038 unsigned char * index;
00039 GLfloat latticeNoise(int i, int j, int k);
00040
00041 };
00042
00043
00044
00045 #endif