private void ClearAoi() { IPencilToolLayer pencilLayer = _canvas.CurrentViewControl as IPencilToolLayer; if (pencilLayer != null) { pencilLayer.Reset(); } _aoiContainer.Reset(); _selectedAOILayer.Reset(); _canvas.Refresh(enumRefreshType.All); }
void ICurrentRasterInteractiver.StartAOIDrawing(Action drawFinishedNotifiter) { IPencilToolLayer aoiLayer = _initializer.StartAOIDrawing(enumPencilType.FreeCurve); if (aoiLayer != null) { aoiLayer.PencilIsFinished += new Action <GeometryOfDrawed>((v) => { drawFinishedNotifiter(); _initializer._aoiContainer.Reset(); }); } }
private void ClearAoiAndResetCurrentViewControl() { IPencilToolLayer pencilLayer = _canvas.CurrentViewControl as IPencilToolLayer; if (pencilLayer != null) { pencilLayer.Reset(); _canvas.CurrentViewControl = new DefaultControlLayer(); } if (_selectedAOILayer.AOIs != null && _selectedAOILayer.AOIs.Count() != 0) { _aoiContainer.RemoveSelectedAOI(_selectedAOILayer.AOIs.ToArray()); _selectedAOILayer.Reset(); } else { _aoiContainer.Reset(); _selectedAOILayer.Reset(); } _canvas.Refresh(enumRefreshType.All); }
void ICurrentRasterInteractiver.StartAOIDrawing(string shapeType, Action <int[], CodeCell.AgileMap.Core.Shape> drawFinishedNotifier) { IPencilToolLayer aoiLayer = null; if (shapeType == "FreeCurve") { aoiLayer = _initializer.StartAOIDrawing(enumPencilType.FreeCurve); } else if (shapeType == "Polygon") { aoiLayer = _initializer.StartAOIDrawing(enumPencilType.Polygon); } else if (shapeType == "Rectangle") { aoiLayer = _initializer.StartAOIDrawing(enumPencilType.Rectangle); } else if (shapeType == "Circle") { aoiLayer = _initializer.StartAOIDrawing(enumPencilType.Circle); } else { aoiLayer = _initializer.StartAOIDrawing(enumPencilType.FreeCurve); } if (aoiLayer != null) { aoiLayer.PencilIsFinished += new Action <GeometryOfDrawed>((v) => { if (drawFinishedNotifier != null) { drawFinishedNotifier(_aoiProvider.GetIndexes(), GetGeoGeometry(v)); } _initializer._aoiContainer.Reset(); }); } }
internal void FloatToolItemClick(FloatToolItem item) { IPencilToolLayer aoiLayer = null; switch (item.Text) { case "绘制AOI": _toolbarManager.Close(); aoiLayer = new PencilToolLayer(); aoiLayer.PencilType = enumPencilType.FreeCurve; aoiLayer.PencilIsFinished = (result) => { //if (!_ismultiAoi) // ClearAoi(); _aoiContainer.AddAOI(result); _currentPencilToolText = item.Text; //if (Control.ModifierKeys != Keys.Control) // _canvas.CurrentViewControl = new DefaultControlLayer(); }; _canvas.CurrentViewControl = aoiLayer; CloseOtherLayerEdit(); break; case "绘制AOI(矩形)": _toolbarManager.Close(); aoiLayer = new PencilToolLayer(); aoiLayer.PencilType = enumPencilType.Rectangle; aoiLayer.PencilIsFinished = (result) => { //if (!_ismultiAoi) // ClearAoi(); _aoiContainer.AddAOI(result); _currentPencilToolText = item.Text; //if (Control.ModifierKeys != Keys.Control) //_canvas.CurrentViewControl = new DefaultControlLayer(); }; _canvas.CurrentViewControl = aoiLayer; CloseOtherLayerEdit(); break; case "绘制AOI(多边形)": _toolbarManager.Close(); aoiLayer = new PencilToolLayer(); aoiLayer.PencilType = enumPencilType.Polygon; aoiLayer.PencilIsFinished = (result) => { //if (!_ismultiAoi) // ClearAoi(); _aoiContainer.AddAOI(result); _currentPencilToolText = item.Text; //if (Control.ModifierKeys != Keys.Control) // _canvas.CurrentViewControl = new DefaultControlLayer(); }; _canvas.CurrentViewControl = aoiLayer; CloseOtherLayerEdit(); break; case "绘制AOI(圆形)": _toolbarManager.Close(); aoiLayer = new PencilToolLayer(); aoiLayer.PencilType = enumPencilType.Circle; aoiLayer.PencilIsFinished = (result) => { //if (!_ismultiAoi) // ClearAoi(); _aoiContainer.AddAOI(result); _currentPencilToolText = item.Text; //if (Control.ModifierKeys != Keys.Control) // _canvas.CurrentViewControl = new DefaultControlLayer(); }; _canvas.CurrentViewControl = aoiLayer; CloseOtherLayerEdit(); break; case "导入AOI": _toolbarManager.Close(); _canvas.CurrentViewControl = new PencilToolLayer(); if (_contextMenuHandler.HandleImportAOI()) { _canvas.Refresh(enumRefreshType.All); } _canvas.CurrentViewControl = new DefaultControlLayer(); CloseOtherLayerEdit(); break; case "交互选择AOI": _toolbarManager.Close(); aoiLayer = new PencilToolLayer(); aoiLayer.PencilType = enumPencilType.Rectangle; _selectedAOILayer.AOIContaingerLayer = _aoiContainer; _selectedAOILayer.Edit = true; aoiLayer.PencilIsFinished = (result) => { if (_contextMenuHandler.HandleSelectAOIFromFeatures(result)) { _canvas.CurrentViewControl = new DefaultControlLayer(); _canvas.Refresh(enumRefreshType.All); } }; _canvas.CurrentViewControl = aoiLayer; break; case "删除AOI区域": _toolbarManager.Close(); ClearAoiAndResetCurrentViewControl(); break; case "魔术棒": _toolbarManager.Close(); IPencilToolLayer magicLayer = new PencilToolLayer(); _canvas.CurrentViewControl = magicLayer; magicLayer.PencilIsFinished = (result) => { _contextMenuHandler.HandleAdsorb(result); _currentPencilToolText = item.Text; //if (Control.ModifierKeys != Keys.Control) // _canvas.CurrentViewControl = new DefaultControlLayer(); _canvas.Refresh(enumRefreshType.All); }; CloseOtherLayerEdit(); break; case "魔术棒判识": _toolbarManager.Close(); IContextMenuArgProvider argProvider = _toolbarManager.Show(_contextMenuHandler.GetArgProviderUI(enumCanvasViewerMenu.MagicWand)); if (argProvider == null) { return; } IPencilToolLayer magicWandLayer = new PencilToolLayer(); magicWandLayer.PencilType = enumPencilType.Point; _canvas.CurrentViewControl = magicWandLayer; ContextMenuToolbarManager barManager = (_toolbarManager as ContextMenuToolbarManager); if (barManager != null) { barManager.ucDispose = new ContextMenuToolbarManager.UCDisposeDeleg(UCDispose); } magicWandLayer.PencilIsFinished = (result) => { if (IsFitOtherToolItem(item)) { return; } Dictionary <string, object> args = new Dictionary <string, object>(); args.Add("tolerance", argProvider.GetArg("tolerance")); args.Add("iscontinued", argProvider.GetArg("iscontinued")); //获取参数 _contextMenuHandler.HandleMagicWandExtracting(result, args); _currentPencilToolText = item.Text; //_canvas.CurrentViewControl = new DefaultControlLayer(); }; CloseOtherLayerEdit(); break; case "橡皮檫": _toolbarManager.Close(); IPencilToolLayer earseLayer = new PencilToolLayer(); _canvas.CurrentViewControl = earseLayer; earseLayer.PencilIsFinished = (result) => { _contextMenuHandler.HandleErase(result); _currentPencilToolText = item.Text; //if (Control.ModifierKeys != Keys.Control) // _canvas.CurrentViewControl = new DefaultControlLayer(); _canvas.Refresh(enumRefreshType.All); }; CloseOtherLayerEdit(); break; case "闪烁": _contextMenuHandler.HandleFlash(); CloseOtherLayerEdit(); break; case "撤销": _contextMenuHandler.HandleUnDo(); CloseOtherLayerEdit(); break; case "重做": _contextMenuHandler.HandleReDo(); CloseOtherLayerEdit(); break; case "清除判识结果": _contextMenuHandler.HandleRemoveAll(); CloseOtherLayerEdit(); break; case "多感兴趣区域": TryResetPencilTool(); _ismultiAoi = !_ismultiAoi; _aoiContainer.IsOnlyOneAOI = !_ismultiAoi; item.Image = GetMultiAoiImage(); try { _canvas.Refresh(enumRefreshType.All); } catch (Exception ex) { Console.WriteLine(ex.Message); } CloseOtherLayerEdit(); break; } }