Beispiel #1
0
    //
    // Unity Methods
    //

    private void Awake()
    {
        // Find Components
        map = ComponentManager.Instance.Get <MapController>();
        gridLayerController = map.GetLayerController <GridLayerController>();
        inputHandler        = ComponentManager.Instance.Get <InputHandler>();
        outputPanel         = ComponentManager.Instance.Get <OutputPanel>();
        dataLayers          = ComponentManager.Instance.Get <DataLayers>();
        mapViewArea         = ComponentManager.Instance.Get <MapViewArea>();
    }
    //
    // Unity Methods
    //

    private IEnumerator Start()
    {
        // Copy material to avoid serializing width/height changes
        var image = GetComponent <Image>();

        material = new Material(image.material);

        image.RegisterDirtyMaterialCallback(OnMaterialChange);
        image.material = material;

        rt           = GetComponent <RectTransform>();
        invRectWidth = 1f / rt.rect.width;

        UpdateTransectSize();

        highlightHalfWidth = highlight.rect.width * 0.5f;

        // Wait InitialFrames frame for UI to finish layout, so that charts have the right size for the shader
        yield return(WaitFor.Frames(WaitFor.InitialFrames));

        /*- var transectLocator = ComponentManager.Instance.GetOrNull<TransectLocator>();
         * if (transectLocator != null)
         * {
         *              transectLocator.OnLocatorChange += OnLocatorChange;
         * }*/

        map           = ComponentManager.Instance.Get <MapController>();
        inspectorTool = ComponentManager.Instance.Get <InspectorTool>();
        if (map != null)
        {
            gridLayerController = map.GetLayerController <GridLayerController>();
            if (gridLayerController != null)
            {
                gridLayerController.OnShowGrid += OnShowGrid;

                foreach (var mapLayer in gridLayerController.mapLayers)
                {
                    if (layerCharts.ContainsKey(mapLayer.Grid))
                    {
                        continue;
                    }

                    Add(mapLayer.Grid, mapLayer.Grid.patch.DataLayer.Color, layerCharts, chartsContainer);
                    if (lineInfo != null)
                    {
                        UpdateGridData(mapLayer.Grid);
                    }
                }
            }
        }

        var siteBrowser = ComponentManager.Instance.Get <SiteBrowser>();

        siteBrowser.OnBeforeActiveSiteChange += OnBeforeActiveSiteChange;
    }
Beispiel #3
0
    //
    // Unity Methods
    //

    private void Awake()
    {
        // Components
        var componentManager = ComponentManager.Instance;

        inspectorTool       = componentManager.Get <InspectorTool>();
        contoursTool        = componentManager.Get <ContoursTool>();
        dataLayers          = componentManager.Get <DataLayers>();
        gridLayerController = inspectorTool.Map.GetLayerController <GridLayerController>();
        translator          = LocalizationManager.Instance;

        areaPSUIRef.Init(translator);
        contourPSUIRef.Init(translator);

        // Initialize dropdowns
        inspectorOutputDropdowns = new InspectorOutputDropdown[]
        {
            new InspectorOutputDropdown(areaTypeDropdown, AreaTypeOptions),
            new InspectorOutputDropdown(areaPSUIRef.summaryDropdown, PSO.AreaSummaryOptions),
            new InspectorOutputDropdown(areaPSUIRef.metricsDropdown, PSO.MetricsOptions),
        };
        InitDropdowns();

        // Initialize properties and summaries
        int maxInspectionCount = inspectorTool.maxInspectionCount;

        areaPS = new AreaPS[maxInspectionCount];
        for (int i = 0; i < maxInspectionCount; ++i)
        {
            areaPS[i] = new AreaPS();
        }
        contourPS = new ContourPS();

        // Initialize listeners
        gridLayerController.OnShowGrid += OnShowGrid;
        LocalizationManager.Instance.OnLanguageChanged += OnLanguageChanged;
        areaTypeDropdown.onValueChanged.AddListener(UpdatePropertiesAndSummariesPanel);
        areaPSUIRef.summaryDropdown.onValueChanged.AddListener(UpdateAreaPanel);
        areaPSUIRef.computeCorrelationButton.onClick.AddListener(OnComputeCorrelationClicked);

        // Update panels
        UpdatePropertiesAndSummariesPanel(Area);
        UpdateAreaPanel(AreaPS.SelectedArea);
        UpdateContourPanel();

        ResetAndClearOutput();

        // If contours tool is already open and there is a selected contour
        if (contoursTool != null && inspectorTool.InspectOutput != null)
        {
            inspectorTool.InspectOutput.AreaOutput.UpdateContourInspectorOutput(dataLayers);
        }
    }
Beispiel #4
0
    //
    // Unity Methods
    //

    private IEnumerator Start()
    {
        yield return(WaitFor.Frames(WaitFor.InitialFrames));

        var map = ComponentManager.Instance.Get <MapController>();

        gridLayerController = map.GetLayerController <GridLayerController>();

        slider.onValueChanged.AddListener(OnSliderChanged);

        Show(GridMapLayer.ManualGammaCorrection);
    }
Beispiel #5
0
    public void InitComponentsAndListeners()
    {
        // Initialize component references
        mapController       = inspectorTool.Map;
        gridLayerController = mapController.GetLayerController <GridLayerController>();
        inspectorOutput     = inspectorTool.InspectOutput;
        dataLayers          = ComponentManager.Instance.Get <DataLayers>();
        mapViewArea         = ComponentManager.Instance.Get <MapViewArea>();
        siteBrowser         = ComponentManager.Instance.Get <SiteBrowser>();

        // Add listeners
        mapController.OnMapUpdate            += OnMapUpdate;
        mapViewArea.OnMapViewAreaChange      += OnMapViewAreaChange;
        siteBrowser.OnBeforeActiveSiteChange += OnBeforeActiveSiteChange;
        createAreaInspectionToggle.onValueChanged.AddListener(OnCreateInspectionChanged);
        removeAreaInspectionToggle.onValueChanged.AddListener(OnRemoveInspectionChanged);
    }
Beispiel #6
0
    public void InitComponentsAndListeners()
    {
        // Get Components from inspectorTool
        map = inspectorTool.Map;
        gridLayerController = map.GetLayerController <GridLayerController>();
        patch           = inspectorTool.Patch;
        inspectorOutput = inspectorTool.InspectOutput;
        dataLayers      = ComponentManager.Instance.Get <DataLayers>();
        inputHandler    = ComponentManager.Instance.Get <InputHandler>();
        mapViewArea     = ComponentManager.Instance.Get <MapViewArea>();
        siteBrowser     = ComponentManager.Instance.Get <SiteBrowser>();

        // Add listeners
        map.OnMapUpdate += OnMapUpdate;
        mapViewArea.OnMapViewAreaChange      += OnMapViewAreaChange;
        siteBrowser.OnBeforeActiveSiteChange += OnBeforeActiveSiteChange;
        createLineInspectionToggle.onValueChanged.AddListener(OnCreateInspectionChanged);
        removeLineInspectionToggle.onValueChanged.AddListener(OnRemoveInspectionChanged);
    }
Beispiel #7
0
    //
    // Unity Methods
    //

    protected void OnEnable()
    {
        var map = ComponentManager.Instance.Get <MapController>();

        if (map != null)
        {
            gridLayerController = map.GetLayerController <GridLayerController>();
            if (updateAllLayers && gridLayerController != null)
            {
                gridLayerController.OnShowGrid += OnShowGridMapLayer;
                foreach (var mapLayer in gridLayerController.mapLayers)
                {
                    mapLayer.SetTransect(slider.value);
                    mapLayer.ShowTransect(true);
                }
            }
        }

        slider.onValueChanged.AddListener(OnSliderChanged);
    }
Beispiel #8
0
    //
    // Event Methods
    //

    protected override void OnComponentRegistrationFinished()
    {
        base.OnComponentRegistrationFinished();

        // Get Components
        dataLayers          = ComponentManager.Instance.Get <DataLayers>();
        gridLayerController = map.GetLayerController <GridLayerController>();
        inputHandler        = ComponentManager.Instance.Get <InputHandler>();
        outputPanel         = ComponentManager.Instance.Get <OutputPanel>();
        mapViewArea         = ComponentManager.Instance.Get <MapViewArea>();
        canvas    = GameObject.FindWithTag("Canvas").GetComponent <Canvas>();
        infoPanel = FindObjectOfType <InfoPanel>();


        lineInspectorPanel.Init(toolLayers, canvas, maxInspectionCount);
        lineInspector = lineInspectorPanel.lineInspector;
        lineInfos     = lineInspectorPanel.lineInfos;

        areaInspector.Init(toolLayers);
        InitAreaInspectorInfo();
    }
    //
    // Unity Methods
    //

    private void Awake()
    {
        // Components
        var componentManager = ComponentManager.Instance;

        inspectorTool       = componentManager.Get <InspectorTool>();
        dataLayers          = componentManager.Get <DataLayers>();
        gridLayerController = inspectorTool.Map.GetLayerController <GridLayerController>();
        translator          = LocalizationManager.Instance;

        linePSUIRef.Init(translator);

        // Initialize dropdowns
        inspectorOutputDropdowns = new InspectorOutputDropdown[]
        {
            new InspectorOutputDropdown(linePSUIRef.summaryDropdown, PSO.LineSummaryOptions),
            new InspectorOutputDropdown(linePSUIRef.metricsDropdown, PSO.MetricsOptions)
        };
        InitDropdowns();

        // Initialize properties and summaries
        int maxInspectionCount = inspectorTool.maxInspectionCount;

        linePS = new LinePS[maxInspectionCount];
        for (int i = 0; i < maxInspectionCount; ++i)
        {
            linePS[i] = new LinePS();
        }

        // Initialize listeners
        gridLayerController.OnShowGrid += OnShowGrid;
        LocalizationManager.Instance.OnLanguageChanged += OnLanguageChanged;
        linePSUIRef.summaryDropdown.onValueChanged.AddListener(UpdateLinePanel);
        linePSUIRef.computeCorrelationButton.onClick.AddListener(OnComputeCorrelationClicked);

        // Default panel display
        UpdateLinePanel(LinePS.SelectedLine);
    }
Beispiel #10
0
 private void InitMapControllers()
 {
     gridLayers = map.GetLayerController <GridLayerController>();
 }
Beispiel #11
0
    private void FinishTurnOn(GridLayerController gridLayerController)
    {
        var mapLayers = gridLayerController.mapLayers;

        // For now, just get any grid
        var referenceGridData = mapLayers[0].Grid;

        HideMessage();

        // Create the planning grid
        var grid = new GridData
        {
            countX = referenceGridData.countX,
            countY = referenceGridData.countY
        };

        grid.ChangeBounds(referenceGridData.west, referenceGridData.east, referenceGridData.north, referenceGridData.south);
        grid.InitGridValues(false);

        // Build the planning categories list
        int index = 0;
        List <IntCategory> cats = new List <IntCategory>
        {
            new IntCategory()
            {
                color = new Color(0, 0, 0, 0.2f), name = "noData", value = index++
            },
            new IntCategory()
            {
                color = Color.black, name = "empty", value = index++
            }
        };

        for (int i = 0; i < typologies.Count; ++i)
        {
            cats.Add(new IntCategory()
            {
                color = typologies[i].color,
                name  = typologies[i].name,
                value = index++
            });
        }
        grid.categories = cats.ToArray();

        // Create planning layer
        planningLayer      = Instantiate(planningLayerPrefab);
        planningLayer.name = planningLayerPrefab.name;
        planningLayer.SetCellSize(0.25f);

        // Add planning layer to tool layers
        toolLayers.Add(planningLayer, grid, "PlanningLayer", Color.white);

        var cellGroupGrid = new GridData
        {
            countX = grid.countX,
            countY = grid.countY
        };

        cellGroupGrid.ChangeBounds(grid.west, grid.east, grid.north, grid.south);
        cellGroupGrid.InitGridValues(false);

        // Create planner
        planner      = Instantiate(plannerPrefab);
        planner.name = plannerPrefab.name;
        planner.Init(typologyLibrary, planningLayer.Grid, typologies);

        // set output after initialization
        planner.SetOutput(gameObject.activeInHierarchy);

        // Select the first typology in the list (only if none selected)
        if (!typologyGroup.AnyTogglesOn() && typologies.Count > 0)
        {
            typologyGroup.transform.GetChild(0).GetComponent <TypologyToggleWithText>().toggle.isOn = true;
        }

        // Tools
        lassoTool      = Instantiate(lassoToolPrefab);
        lassoTool.name = lassoToolPrefab.name;
        lassoTool.Deactivate();
        brushTool      = Instantiate(brushToolPrefab);
        brushTool.name = brushToolPrefab.name;
        brushTool.Deactivate();

        // Setup tool callbacks
        index = 0;
        var tools = toolsGroup.GetComponentsInChildren <Toggle>();

        foreach (var tool in tools)
        {
            int id = index++;
            tool.onValueChanged.AddListener((isOn) => OnToolChange(isOn, id));
        }

        typologyGroup.gameObject.SetActive(true);

        ToggleSiteSpecificTypologies();
    }