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_BLEND_H
00024 #define NOISE_MODULE_BLEND_H
00025
00026 #include "modulebase.h"
00027
00028 namespace CS {
00029 namespace Math {
00030 namespace Noise {
00031 namespace Module {
00032
00035
00038
00042
00069 class CS_CRYSTALSPACE_EXPORT Blend: public Module
00070 {
00071
00072 public:
00073
00075 Blend ();
00076
00092 const Module& GetControlModule () const
00093 {
00094 if (m_pSourceModule == NULL || m_pSourceModule[2] == NULL) {
00095
00096 CS_ASSERT (false);
00097 }
00098 return *(m_pSourceModule[2]);
00099 }
00100
00101 virtual int GetSourceModuleCount () const
00102 {
00103 return 3;
00104 }
00105
00106 virtual double GetValue (double x, double y, double z) const;
00107
00126 void SetControlModule (const Module& controlModule)
00127 {
00128 assert (m_pSourceModule != NULL);
00129 m_pSourceModule[2] = &controlModule;
00130 }
00131
00132 };
00133
00135
00137
00139
00140 }
00141 }
00142 }
00143 }
00144
00145 #endif