public Func <double, double> Get( Func <double, double> f, int startGrid, int endGrid) { double dt = Underlying.GetDt(); Func <double, double> denominator = y => { IEnumerable <double> mesh = from pathNo in Enumerable.Range(0, NumOfMesh) select Underlying.GetState(pathNo, startGrid); return(mesh.Select( x => DensityFunction.density( dt * startGrid, dt * endGrid, x, y)) .Average()); }; Func <double, double> result = x => { IEnumerable <double> mesh = from pathNo in Enumerable.Range(0, NumOfMesh) select Underlying.GetState(pathNo, endGrid); double func = mesh.Select( y => f(y) * DensityFunction.density( dt * startGrid, dt * endGrid, x, y) / denominator(y)).Average(); return(func); }; return(result); }
private void OnApplicationQuit() { ChunkGenerator.DestroyBuffers(); DensityFunction.DestroyBuffer(); }
public override void GenerateValues() { values = DensityFunction.GenerateExpierementalTerrainValues(terrainSize, gridSize, center, scale, octaves, persistance, lacunarity, seed, amplitude, floorHeight, floorStrength, useTerracing, terraceHeight); }
public override void GenerateValues() { values = DensityFunction.GenerateSphericalNoiseValues(terrainSize, gridSize, center, scale, octaves, persistance, lacunarity, seed, amplitude); }
public override void GenerateValues() { values = DensityFunction.GenerateOverthoughtTerrainValues(terrainSize, gridSize, center, scale, octaves, persistance, lacunarity, seed, noiseStrength, heightScale, floorHeight, floorStrength, terrainScale, terrainOctaves, terrainPersistance, terrainLacunarity, useTerracing, terraceHeight); }