public void Calculation(List <ISimulationTile> tiles) { surfaceHeatMap = new HeatMap(mapSize); MapTranslate(map, tiles); Evapotranspiration(); Absorbtion(); Shade(); }
public void AddHeatMap(HeatMap heatMap) { if (size == heatMap.size) { for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { HeatValue[i, j] += heatMap.GetHeatValue(i, j); } } } else { throw new System.Exception("Maps have different size"); } }
private void Shade() { ShadeDictionaryInit(); HeatMap shadeHeatMap = new HeatMap(mapSize); foreach (Coord coord in coordsList) { if (shadeValues.ContainsKey(coord.CoordType) && coord.IsShaded) { shadeHeatMap.SetHeatValue(coord.Row, coord.Col, shadeValues[coord.CoordType]); } else { shadeHeatMap.SetHeatValue(coord.Row, coord.Col, shadeValues[Type.Default]); } } surfaceHeatMap.AddHeatMap(shadeHeatMap); }
private void Absorbtion() { AbsorbtionDictionaryInit(); HeatMap absorbtionHeatMap = new HeatMap(mapSize); foreach (Coord coord in coordsList) { if (absorbtionValues.ContainsKey(coord.CoordType)) { absorbtionHeatMap.SetHeatValue(coord.Row, coord.Col, absorbtionValues[coord.CoordType]); } else { absorbtionHeatMap.SetHeatValue(coord.Row, coord.Col, absorbtionValues[Type.Default]); } } surfaceHeatMap.AddHeatMap(absorbtionHeatMap); }
//Should be sorted first, to increase efficiency private void Evapotranspiration() { EvapoDictionaryInit(); HeatMap evapoHeatMap = new HeatMap(mapSize); foreach (Coord coord in coordsList) { if (evapoValues.ContainsKey(coord.CoordType)) { evapoHeatMap.SetHeatValue(coord.Row, coord.Col, evapoValues[coord.CoordType]); } else { evapoHeatMap.SetHeatValue(coord.Row, coord.Col, evapoValues[Type.Default]); } } surfaceHeatMap.AddHeatMap(evapoHeatMap); }