#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, int dimensionId) = 0; float getPropability() const; Framework::Vec3 getMinAffectedOffset() const; Framework::Vec3 getMaxAffectedOffset() const; };