Пример #1
0
 public void Calculation(List <ISimulationTile> tiles)
 {
     surfaceHeatMap = new HeatMap(mapSize);
     MapTranslate(map, tiles);
     Evapotranspiration();
     Absorbtion();
     Shade();
 }
Пример #2
0
 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");
     }
 }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        //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);
        }