#ifndef __ROUGHGEOMORPH_H__ #define __ROUGHGEOMORPH_H__ #include #include "geomorph.h" #include "gmregistry.h" #include "synthsession.h" #include "geoworld.h" #include "gwtypes.h" #include "gwutil.h" namespace geoworld { class RoughGM : public HeightMapGeoMorph { private: NoiseGenerator< float > _ngen; public: RoughGM(const float fCoarseness, const float fBrownIterations) : _ngen(fBrownIterations, fCoarseness) {} void init (SynthesisSession & manager, const IGeoWorldAccessor & accessor, const unsigned short nMaxWidth, const unsigned short nMaxHeight) {} void doMorph (LockedGWSection & section) const; }; class RoughGTFactory : public GeoTemplateFactory, public IOpenGeoMorphFactory { private: mars::RangeX< float > _mmfCoarseness, _mmfBrownIterations; public: virtual GeoMorph * createRandomInstance () const; virtual void configure (IConfigGTFactory * pFactoryConfig, const IConfigGTFactory::Settings & settings); }; } #endif