private void SetupHeatmaps() { _loopsCounter = 0; // Initialize parent object if (heatmapsParent == null) { CreateParent(ref heatmapsParent); heatmapsParent.name = "Heatmaps"; heatmaps = new HeatMap[NUM_HEATMAPS]; } // Init custom search lists List <Brick> officeTypes = new List <Brick> { Brick.OL, Brick.OM, Brick.OS }; List <Brick> resTypes = new List <Brick> { Brick.RL, Brick.RM, Brick.RS }; List <Brick> parkTypes = new List <Brick> { Brick.PARK }; List <Brick> allTypes = new List <Brick> (); foreach (Brick brick in System.Enum.GetValues(typeof(Brick))) { allTypes.Add(brick); } for (int i = 0; i < NUM_HEATMAPS; i++) { heatmaps[i] = new HeatMap(_gridX - 1, _gridY, _windowSearchDim, _cellSize, _cellShrink, _addToYHeight, ((HeatmapType)i).ToString()); heatmaps[i].SetParent(heatmapsParent); // Set up search types & origin types for each heatmap if (i == (int)HeatmapType.OFFICE) { heatmaps [i].SetOriginTypes(resTypes); heatmaps [i].SetSearchTypes(officeTypes); heatmaps [i].CreateTitle("Proximity to work spaces"); } else if (i == (int)HeatmapType.RES) { heatmaps [i].SetOriginTypes(officeTypes); heatmaps [i].SetSearchTypes(resTypes); heatmaps [i].CreateTitle("Proximity to residential spaces"); } else if (i == (int)HeatmapType.PARK) { heatmaps [i].SetOriginTypes(allTypes); heatmaps [i].SetSearchTypes(parkTypes); heatmaps [i].CreateTitle("Proximity to parks"); } } // Initialize geos for (int x = 0; x < _gridX - 1; x++) { for (int y = 0; y < _gridY; y++) { if (siteData.GetType(_loopsCounter) != _outOfBoundsType) // if not on the area which is out of the physical model space // Init heatmap geometries for each heatmap object { foreach (HeatMap hm in heatmaps) { hm.CreateHeatmapGeo(x, y, _loopsCounter, siteData.GetType(_loopsCounter), meshYPositions [_loopsCounter]); } } _loopsCounter++; } } UpdateHeatmaps(); }