VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkPerlinNoise.h,v $ 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 =========================================================================*/ 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&); // Not implemented 00095 void operator=(const vtkPerlinNoise&); // Not implemented 00096 }; 00097 00098 #endif