Exemple #1
0
    public void UpdateGridsAndOutput(AreaInfo areaInfo, bool currArea)
    {
        if (areaInfo == null || areaInfo.mapLayer == null)
        {
            return;
        }

        if (currArea)
        {
            // Add visible grids to the budget layer
            foreach (var layer in gridLayerController.mapLayers)
            {
                AddGridData(layer.Grid);
            }
            areaInspector.AreaInspectorGrids.Clear();

            areaInfo.mapLayer.Show(true);
            // Update data values
            areaInfo.mapLayer.Refresh(areaInfo.coords);
        }
        else
        {
            // Hide at the beginning
            areaInfo.mapLayer.Show(false);

            // Move visible grids from budget layer to list
            if (areaInfo.mapLayer.grids.Count > 0)
            {
                areaInspector.AreaInspectorGrids.AddRange(areaInfo.mapLayer.grids);
                areaInfo.mapLayer.Clear();
            }
        }
        UpdateOutput();
    }
Exemple #2
0
    public void OnRemoveAreaInspection(AreaInfo areaInfo)
    {
        --areaInspector.AreaInspectionCount;

        // if (areaInspector.AreaInspectionCount == 1)
        //     inspectorOutput.SetDropDownInteractive(InspectorTool.InspectorType.Area, false);

        if (areaInspector.AreaInspectionCount == 0)
        {
            inspectorTool.SetAction(InspectorTool.Action.None);
            areaInspector.CurrAreaInspection        = -1;
            removeAreaInspectionToggle.interactable = false;

            inspectorOutput.ResetAndClearOutput(InspectorTool.InspectorType.Area);

            // Update output
            inspectorOutput.AreaOutput.UpdateAreaInspectorOutput(null, dataLayers);
        }
        else
        {
            // Do necessary swapping of elements in areaInfos array upon deletion of inspection line
            var inspectionArea = areaInfo.areaInspectionDelete.transform.parent;
            int index          = inspectionArea.GetSiblingIndex();
            int count          = areaInspector.AreaInspectionCount;
            if (index < count)
            {
                for (int i = index; i < count; ++i)
                {
                    var temp = areaInfos[i];
                    areaInfos[i] = areaInfos[i + 1];
                    var tmpinspectionArea = areaInfos[i + 1].areaInspectionDelete.transform.parent;

                    var tempIndex = tmpinspectionArea.GetSiblingIndex();
                    inspectionArea.SetSiblingIndex(tempIndex);
                    areaInfos[i].inspectionIndex = i;

                    areaInfos[i + 1] = temp;
                }
            }

            // Update currAreaInspection value
            if (areaInspector.CurrAreaInspection == index)
            {
                areaInspector.CurrAreaInspection = Mathf.Clamp(index - 1, 0, 2);
            }
            else
            {
                Mathf.Clamp(--areaInspector.CurrAreaInspection, 0, 2);
            }
        }
        areaInspector.RemoveAreaInspectorInfoProperties(areaInfo);
        SetCurrInspection(areaInspector.CurrAreaInspection);

        createAreaInspectionToggle.interactable = true;
    }
Exemple #3
0
    public void UpdateAreaInspectorOutput(AreaInfo areaInfo, DataLayers dataLayers)
    {
        Dictionary <string, List <float> > idToValueList    = new Dictionary <string, List <float> >();
        Dictionary <string, int>           idToNoDataList   = new Dictionary <string, int>();
        Dictionary <string, string>        idToUnitsList    = new Dictionary <string, string>();
        Dictionary <string, Color>         idToDotColorList = new Dictionary <string, Color>();

        // Get information here

        SetData(idToValueList, idToUnitsList, idToDotColorList, idToNoDataList);
    }
Exemple #4
0
    private void OnAreaInspectionToggleChanged(AreaInfo areaInfo, bool isOn)
    {
        for (int i = 0; i < maxInspectionCount; ++i)
        {
            bool currArea = areaInfos[i] == areaInfo;
            areaInspector.UpdateAreaInspectorToggle(areaInfos[i], currArea);

            if (currArea)
            {
                SetCurrInspection(i);
            }
        }
    }
Exemple #5
0
    public void ComputeAndUpdateTotalArea(AreaInfo[] areaInfos, int index)
    {
        currAreaInspectionIndex = index;
        AreaInfo areaInfo = areaInfos[index];

        // Compute area
        areaPS[currAreaInspectionIndex].totalArea = areaInfo.mapLayer.ComputeTotalArea();

        // Update total area shown
        if (areaPSUIRef.summaryDropdown.value == AreaPS.SelectedArea)
        {
            areaPSUIRef.SelectedTotalArea(areaPS[currAreaInspectionIndex]);
        }
        else if (areaPSUIRef.summaryDropdown.value == AreaPS.AllAreasCombined)
        {
            areaDO.AllCombinedTotalArea(areaPS, areaPSUIRef);
        }
    }
Exemple #6
0
    //
    // Private Methods
    //

    private void InitAreaInspectorInfo()
    {
        // Instantiate and initialize InspectorToggles
        areaInfos = new AreaInfo[maxInspectionCount];
        for (int i = 0; i < maxInspectionCount; ++i)
        {
            var areaInfo = new AreaInfo
            {
                areaInspectionDelete = null,
                areaInspection       = null,
                coords             = new List <Coordinate>(),
                line               = null,
                inspectionArea     = null,
                mapLayer           = null,
                inspectionIndex    = 0,
                mapViewAreaChanged = false
            };

            areaInfos[i] = areaInfo;
        }
    }
Exemple #7
0
    private void InitAreaInspectorInfo()
    {
        // Instantiate and initialize InspectorToggles
        areaInfos = new AreaInfo[maxInspectionCount];
        for (int i = 0; i < maxInspectionCount; ++i)
        {
            var areaInfo = new AreaInfo
            {
                uiElement      = Instantiate(inspectorTogglePrefab, areaInspectionsList, false),
                areaInspection = null,
                coords         = new List <Coordinate>(),
                line           = null
            };

            var areaInfoUIElem = areaInfo.uiElement;
            areaInfoUIElem.toggle.onValueChanged.AddListener((isOn) => OnAreaInspectionToggleChanged(areaInfo, isOn));
            areaInfoUIElem.button.onClick.AddListener(() => OnRemoveAreaInspection(areaInfo));
            areaInfoUIElem.ResetToggle();

            areaInfos[i] = areaInfo;
        }
    }
Exemple #8
0
    private void OnRemoveAreaInspection(AreaInfo areaInfo)
    {
        // Remove Inspector Toggle event listeners
        areaInfo.uiElement.RemoveOnPointerExitEvent();
        areaInfo.uiElement.RemoveOnPointerEnterEvent();

        areaInspector.RemoveAreaInspectorInfoProperties(areaInfo);
        areaInfo.uiElement.ResetToggle();
        --areaInspector.AreaInspectionCount;

        if (areaInspector.AreaInspectionCount == 0)
        {
            SetAction(Action.None);
            areaInspector.CurrAreaInspection        = -1;
            removeAreaInspectionToggle.interactable = false;

            // Update Inspector Toggles
            for (int i = 0; i < maxInspectionCount; ++i)
            {
                if (areaInfos[i] == null)
                {
                    continue;
                }

                areaInspector.UpdateAreaInspectorToggle(areaInfos[i], false);
                areaInfos[i].uiElement.transform.SetSiblingIndex(i);
            }

            // Update output
            inspectorOutput.UpdateAreaInspectorOutput(null, dataLayers);
        }
        else
        {
            int index = areaInfo.uiElement.transform.GetSiblingIndex();
            if (index < areaInspector.AreaInspectionCount)
            {
                // Push active inspection UI elements to the front of array
                for (int i = index; i < areaInspector.AreaInspectionCount; ++i)
                {
                    var temp = areaInfos[i];
                    areaInfos[i] = areaInfos[i + 1];

                    var tempIndex = areaInfos[i + 1].uiElement.transform.GetSiblingIndex();
                    areaInfo.uiElement.transform.SetSiblingIndex(tempIndex);

                    areaInfos[i + 1] = temp;
                }
            }

            // Update currAreaInspection value
            if (areaInspector.CurrAreaInspection == index)
            {
                areaInspector.CurrAreaInspection = Mathf.Clamp(index - 1, 0, 2);
            }
            else
            {
                Mathf.Clamp(--areaInspector.CurrAreaInspection, 0, 2);
            }

            UpdateAreasElements();
        }

        createAreaInspectionToggle.interactable = true;
    }
Exemple #9
0
    public void ChangeAreaLine(AreaInfo areaInfo, bool solidThin)
    {
        var line = areaInfo.line;

        line.widthMultiplier = (solidThin) ? HalfLineWidth : LineWidth;
    }
Exemple #10
0
    public void UpdateAreaInspectorOutput(AreaInfo areaInfo, DataLayers dataLayers)
    {
        if (!areaPSUIRef.summaryDropdown.value.Equals(AreaPS.SelectedArea))
        {
            return;
        }

        Dictionary <string, List <float> > idToValueList    = new Dictionary <string, List <float> >();
        Dictionary <string, int>           idToNoDataList   = new Dictionary <string, int>();
        Dictionary <string, string>        idToUnitsList    = new Dictionary <string, string>();
        Dictionary <string, Color>         idToDotColorList = new Dictionary <string, Color>();

        if (areaInfo != null)
        {
            var areaGrids          = areaInfo.mapLayer.grids;
            var areaInspectedGrids = areaInfo.mapLayer.inspectedGridsData;

            int areaGridsLength = areaGrids.Count;
            for (int i = 0; i < areaGridsLength; ++i)
            {
                var layerName = dataLayers.activeLayerPanels[i].name;
                var dotColor  = dataLayers.activeLayerPanels[i].dot.color;

                int areaInspectedGridsLength = areaInspectedGrids[areaGrids[i]].Count;
                for (int j = 0; j < areaInspectedGridsLength; ++j)
                {
                    // Add all cells to list
                    if (!idToValueList.ContainsKey(layerName))
                    {
                        List <float> data        = new List <float>();
                        int          noDataCount = 0;
                        float        value       = areaInspectedGrids[areaGrids[i]][j];
                        if (value > 0.0f)
                        {
                            data.Add(value);
                        }
                        else
                        {
                            ++noDataCount;
                        }
                        idToValueList.Add(layerName, data);
                        idToNoDataList.Add(layerName, noDataCount);
                    }
                    else
                    {
                        var   list  = idToValueList[layerName];
                        float value = areaInspectedGrids[areaGrids[i]][j];
                        if (value > 0.0f)
                        {
                            list.Add(value);
                        }
                        else
                        {
                            ++idToNoDataList[layerName];
                        }
                    }
                }

                if (!idToUnitsList.ContainsKey(layerName))
                {
                    idToUnitsList.Add(layerName, areaGrids[i].units);
                }

                if (!idToDotColorList.ContainsKey(layerName))
                {
                    idToDotColorList.Add(layerName, dotColor);
                }
            }
            ComputeAndUpdateNoDataArea(idToValueList, idToNoDataList);
            areaDO.SetData(idToValueList, idToUnitsList, idToDotColorList, idToNoDataList, PlotAreaData);
        }
    }
 public void SetAreaInfo(AreaInfo areaInfo)
 {
     this.areaInfo = areaInfo;
 }