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
00084 vtkSetMacro(Amplitude,double);
00085 vtkGetMacro(Amplitude,double);
00087
00088 protected:
00089 vtkPerlinNoise();
00090 ~vtkPerlinNoise() {}
00091
00092 double Frequency[3];
00093 double Phase[3];
00094 double Amplitude;
00095
00096 private:
00097 vtkPerlinNoise(const vtkPerlinNoise&);
00098 void operator=(const vtkPerlinNoise&);
00099 };
00100
00101 #endif