#pragma once
#include <numeric>
#include "PerlinTerrainNode.h"

class FractalTerrainNode : public PerlinTerrainNode
{
public:
	FractalTerrainNode(wstring name, wstring seed, float chunkSize, int widthX = 1023, int widthZ = 1023, float waterHeight = 300.0f, int cellSizeX = 10, int cellSizeZ = 10);

private:
	void GenerateSquares(const int k, const int p);
	void GenerateDiamonds(const int k, const int p);

	void DoSquare(const int row, const int col, const int k, const float offset);
	void DoDiamond(const int row, const int col, const int k, const float offset);

};

