00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __SIM_NoiseStandard_h__
00016 #define __SIM_NoiseStandard_h__
00017
00018 #include "SIM_API.h"
00019 #include <UT/UT_Noise.h>
00020 #include "SIM_Noise.h"
00021
00022 class SIM_NoiseResolverStandard;
00023
00024
00025 class SIM_API SIM_NoiseStandard : public SIM_Noise
00026 {
00027 public:
00028 GETSET_DATA_FUNCS_I(SIM_NAME_SEED, Seed);
00029 GETSET_DATA_FUNCS_I(SIM_NAME_FRACTALDEPTH, FractalDepth);
00030 GETSET_DATA_FUNCS_F(SIM_NAME_ROUGHNESS, Roughness);
00031 GETSET_DATA_FUNCS_F(SIM_NAME_ATTENUATION, Attenuation);
00032 GETSET_DATA_FUNCS_V3(SIM_NAME_FREQUENCY, Frequency);
00033 GETSET_DATA_FUNCS_V3(SIM_NAME_OFFSET, Offset);
00034 GETSET_DATA_FUNCS_E(SIM_NAME_NOISETYPE, NoiseType, UT_Noise::UT_NoiseType);
00035
00036 protected:
00037 explicit SIM_NoiseStandard(const SIM_DataFactory *factory);
00038 virtual ~SIM_NoiseStandard();
00039
00040
00041 virtual void optionChangedSubclass(const char *name);
00042
00043
00044 virtual void getNoiseLimitsSubclass(fpreal &min,
00045 fpreal &max) const;
00046
00047 virtual fpreal getNoiseSubclass(const UT_Vector3 &pos) const;
00048
00049 virtual void getNoiseSubclass(const UT_Vector3 &pos,
00050 UT_Vector3 &noise) const;
00051
00052 SIM_PropertyResolver *getNoiseResolverSubclass() const;
00053
00054 private:
00055 static const SIM_DopDescription *getNoiseStandardDopDescription();
00056
00057 UT_Noise myNoise;
00058
00059 DECLARE_STANDARD_GETCASTTOTYPE();
00060 DECLARE_DATAFACTORY(SIM_NoiseStandard,
00061 SIM_Noise,
00062 "Noise Field",
00063 getNoiseStandardDopDescription());
00064
00065 friend class SIM_NoiseResolverStandard;
00066 };
00067
00068 #endif