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_MODEL_CYLINDER_H
00024 #define NOISE_MODEL_CYLINDER_H
00025
00026 #include <assert.h>
00027 #include <math.h>
00028 #include <stdlib.h>
00029 #include "../module/modulebase.h"
00030
00031 namespace CS {
00032 namespace Math {
00033 namespace Noise {
00034 namespace Model {
00035
00038
00042
00058 class CS_CRYSTALSPACE_EXPORT Cylinder
00059 {
00060
00061 public:
00062
00064 Cylinder ();
00065
00070 Cylinder (const CS::Math::Noise::Module::Module& module);
00071
00078 const CS::Math::Noise::Module::Module& GetModule () const
00079 {
00080 assert (m_pModule != NULL);
00081 return *m_pModule;
00082 }
00083
00101 double GetValue (double angle, double height) const;
00102
00110 void SetModule (const CS::Math::Noise::Module::Module& module)
00111 {
00112 m_pModule = &module;
00113 }
00114
00115 private:
00116
00118 const CS::Math::Noise::Module::Module* m_pModule;
00119
00120 };
00121
00123
00125
00126 }
00127 }
00128 }
00129 }
00130
00131 #endif