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