00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00037 #ifndef __vtkPerlinNoise_h
00038 #define __vtkPerlinNoise_h
00039
00040 #include "vtkImplicitFunction.h"
00041
00042 class VTK_FILTERING_EXPORT vtkPerlinNoise : public vtkImplicitFunction
00043 {
00044 public:
00045 vtkTypeRevisionMacro(vtkPerlinNoise,vtkImplicitFunction);
00046 void PrintSelf(ostream& os, vtkIndent indent);
00047
00049 static vtkPerlinNoise *New();
00050
00052
00053 double EvaluateFunction(double x[3]);
00054 double EvaluateFunction(double x, double y, double z)
00055 {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
00057
00060 void EvaluateGradient(double x[3], double n[3]);
00061
00063
00066 vtkSetVector3Macro(Frequency,double);
00067 vtkGetVectorMacro(Frequency,double,3);
00069
00071
00075 vtkSetVector3Macro(Phase,double);
00076 vtkGetVectorMacro(Phase,double,3);
00078
00080
00082 vtkSetMacro(Amplitude,double);
00083 vtkGetMacro(Amplitude,double);
00085
00086 protected:
00087 vtkPerlinNoise();
00088 ~vtkPerlinNoise() {}
00089
00090 double Frequency[3];
00091 double Phase[3];
00092 double Amplitude;
00093
00094 private:
00095 vtkPerlinNoise(const vtkPerlinNoise&);
00096 void operator=(const vtkPerlinNoise&);
00097 };
00098
00099 #endif