/// <summary> /// Init is called after a project has been fully loaded. /// </summary> /// /// Call this method everytime a new project has been loaded, /// e.g. New Project, Open Project public void Init() { IVirgisLayer firstLayer = (IVirgisLayer)_layers[0]; firstLayer.SetEditable(true); _editSession.editableLayer = firstLayer; }
public void CreateLayerPanels() { // Delete any existing panel foreach (var panel in _layersMap) { Destroy(panel.Value.gameObject); } _layersMap.Clear(); // appState.layers are actually Layer script (Component) AppState.instance.layers.ForEach(comp => { IVirgisLayer layer = (IVirgisLayer)comp; Debug.Log($"CreateLayerPanels: layer {layer.GetMetadata().Id ?? ""}, {layer.GetMetadata().DisplayName ?? ""}"); // create a view panel for this particular layer GameObject newLayerPanel = Instantiate(layerPanelPrefab, transform); // obtain the panel script LayerUIPanel panelScript = newLayerPanel.GetComponentInChildren <LayerUIPanel>(); LayerUIContainer containerScript = newLayerPanel.GetComponentInChildren <LayerUIContainer>(); containerScript._layersMap = _layersMap; // set the layer in the panel containerScript.layer = layer; containerScript.viewLayerToggle.isOn = layer.IsVisible(); _layersMap.Add(Guid.NewGuid(), panelScript); newLayerPanel.transform.SetParent(layersScrollView.transform, false); }); LayoutRebuilder.MarkLayoutForRebuild(transform as RectTransform); }
private void OnTriggerDoublePress() { if (_appState.editSession.IsActive()) { IVirgisLayer editableLayer = _appState.editSession.editableLayer; FeatureType dataType = editableLayer.featureType; switch (dataType) { case FeatureType.LINE: if (_newFeature != null) { VirgisFeature temp = _lastVertex[0]; _lastVertex.Clear(); temp.UnSelected(SelectionType.SELECT); // if edit mode is snap to anchor and start and end vertexes are at the same position if (_appState.editSession.mode == EditSession.EditMode.SnapAnchor && _firstVertex.transform.position == temp.transform.position) { (_newFeature as Dataline).MakeLinearRing(); } // complete adding line feature _newFeature = null; } break; case FeatureType.POLYGON: if (_newFeature != null) { // complete adding polygon feature _newFeature = null; VirgisFeature temp = _lastVertex[0]; _lastVertex.Clear(); temp.UnSelected(SelectionType.SELECT); } break; } } }
private void onLayerUpdate(IVirgisLayer layer) { CreateLayerPanels(); }
public void AddLayer(IVirgisLayer layer) { _layerEvent.OnNext(layer); }