#pragma once #include "DirectXFramework.h" #include #include #include #include "SharedMethods.h" #include "TerrainNode.h" class PerlinTerrainNode : public TerrainNode { public: PerlinTerrainNode(wstring name, wstring seed, float offsetX, float offsetY, float chunkSize, int layers, int widthX = 1023, int widthZ = 1023, float waterHeight = 150.0f, int cellSizeX = 10, int cellSizeZ = 10); private: vector p; float _offsetX; float _offsetY; float _chunkSize; int _layers; float Fade(float t); float Grad(int hash, float x, float y); bool GeneratePerlinHeights(); float GetPerlinValueAt(float x, float y, int octaves, float persistance); float GetNoiseValueAt(float x, float y); void GeneratePerlinValues(); };