cstool/noise/module/voronoi.h
00001 // voronoi.h 00002 // 00003 // Copyright (C) 2003, 2004 Jason Bevins 00004 // 00005 // This library is free software; you can redistribute it and/or modify it 00006 // under the terms of the GNU Lesser General Public License as published by 00007 // the Free Software Foundation; either version 2.1 of the License, or (at 00008 // your option) any later version. 00009 // 00010 // This library is distributed in the hope that it will be useful, but WITHOUT 00011 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00012 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 00013 // License (COPYING.txt) for more details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public License 00016 // along with this library; if not, write to the Free Software Foundation, 00017 // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 // 00019 // The developer's email is jlbezigvins@gmzigail.com (for great email, take 00020 // off every 'zig'.) 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 } // namespace Module 00244 } // namespace Noise 00245 } // namespace Math 00246 } // namespace CS 00247 00248 #endif
Generated for Crystal Space 2.0 by doxygen 1.6.1