#pragma once #include #include #include "GeneratedStructure.h" #include "Noise.h" class GenerationTemplate : public Framework::ReferenceCounter { private: float propability; int minSurfaceDist; int maxSurfaceDist; Framework::Vec3 minPosOffset; Framework::Vec3 maxSize; public: GenerationTemplate( float propability, int minSurfaceDist, int maxSurfaceDist, Framework::Vec3 minPosOffset, Framework::Vec3 maxSize ); virtual bool canEffect( Framework::Vec3 location, Framework::Vec3 affectedLocation ) const; virtual bool isGenerationPossable( Framework::Vec3 location, int distToSurface ) const; virtual GeneratedStructure* generateAt( Framework::Vec3 location, Noise* zNoise ) = 0; float getPropability() const; Framework::Vec3 getMinAffectedOffset() const; Framework::Vec3 getMaxAffectedOffset() const; };