VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPerlinNoise.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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 vtkTypeMacro(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&); // Not implemented 00098 void operator=(const vtkPerlinNoise&); // Not implemented 00099 }; 00100 00101 #endif