cstool/noise/module/voronoi.h Source File (Crystal Space 2.0 Public API Reference)

| ## Public API Reference

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

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