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 "vtkCommonDataModelModule.h" // For export macro 00041 #include "vtkImplicitFunction.h" 00042 00043 class VTKCOMMONDATAMODEL_EXPORT vtkPerlinNoise : public vtkImplicitFunction 00044 { 00045 public: 00046 vtkTypeMacro(vtkPerlinNoise,vtkImplicitFunction); 00047 void PrintSelf(ostream& os, vtkIndent indent); 00048 00050 static vtkPerlinNoise *New(); 00051 00053 00054 double EvaluateFunction(double x[3]); 00055 double EvaluateFunction(double x, double y, double z) 00056 {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ; 00058 00061 void EvaluateGradient(double x[3], double n[3]); 00062 00064 00067 vtkSetVector3Macro(Frequency,double); 00068 vtkGetVectorMacro(Frequency,double,3); 00070 00072 00076 vtkSetVector3Macro(Phase,double); 00077 vtkGetVectorMacro(Phase,double,3); 00079 00081 00085 vtkSetMacro(Amplitude,double); 00086 vtkGetMacro(Amplitude,double); 00088 00089 protected: 00090 vtkPerlinNoise(); 00091 ~vtkPerlinNoise() {} 00092 00093 double Frequency[3]; 00094 double Phase[3]; 00095 double Amplitude; 00096 00097 private: 00098 vtkPerlinNoise(const vtkPerlinNoise&); // Not implemented 00099 void operator=(const vtkPerlinNoise&); // Not implemented 00100 }; 00101 00102 #endif