00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef NOISE_MODULE_VORONOI_H
00024 #define NOISE_MODULE_VORONOI_H
00025
00026 #include "modulebase.h"
00027
00028 namespace CS {
00029 namespace Math {
00030 namespace Noise {
00031 namespace Module {
00032
00035
00038
00041
00044 const double DEFAULT_VORONOI_DISPLACEMENT = 1.0;
00045
00048 const double DEFAULT_VORONOI_FREQUENCY = 1.0;
00049
00052 const int DEFAULT_VORONOI_SEED = 0;
00053
00089 class CS_CRYSTALSPACE_EXPORT Voronoi: public Module
00090 {
00091
00092 public:
00093
00104 Voronoi ();
00105
00106 virtual ~Voronoi () { }
00107
00120 void EnableDistance (bool enable = true)
00121 {
00122 m_enableDistance = enable;
00123 }
00124
00133 double GetDisplacement () const
00134 {
00135 return m_displacement;
00136 }
00137
00144 double GetFrequency () const
00145 {
00146 return m_frequency;
00147 }
00148
00149 virtual int GetSourceModuleCount () const
00150 {
00151 return 0;
00152 }
00153
00161 int GetSeed () const
00162 {
00163 return m_seed;
00164 }
00165
00176 bool IsDistanceEnabled () const
00177 {
00178 return m_enableDistance;
00179 }
00180
00181 virtual double GetValue (double x, double y, double z) const;
00182
00191 void SetDisplacement (double displacement)
00192 {
00193 m_displacement = displacement;
00194 }
00195
00202 void SetFrequency (double frequency)
00203 {
00204 m_frequency = frequency;
00205 }
00206
00214 void SetSeed (int seed)
00215 {
00216 m_seed = seed;
00217 }
00218
00219 protected:
00220
00222 double m_displacement;
00223
00226 bool m_enableDistance;
00227
00229 double m_frequency;
00230
00233 int m_seed;
00234
00235 };
00236
00238
00240
00242
00243 }
00244 }
00245 }
00246 }
00247
00248 #endif