示例#1
0
 private void LayerChangeEvent(bool checkState, OECPLayer layer)
 {
     AllLayerControlInvisible();
     if (layer.IsVisible)
     {
         _canvas.ChangeCurrentLayer(layer);
         if (layer.IsGrid)
         {
             _gridControl.Visible = true;
         }
         else if (layer.IsLine)
         {
             _lControl.Visible = true;
             if (_lineTool == null)
             {
                 _lineTool = new LineTool();
             }
             _canvas.SetCurrentDrawTool(_lineTool);
         }
         else
         {
             _vertexControl.Visible = true;
             if ((_vtxTool) == null)
             {
                 _vtxTool = new VertexTool();
             }
             _canvas.SetCurrentDrawTool(_vtxTool);
         }
     }
 }
示例#2
0
 public void RegisterLayerPtr(OECPLayer gird, OECPLayer ml, OECPLayer vl, OECPLayer vtx, OECPLayer aux)
 {
     _gridLayer  = gird;
     _mLineLayer = ml;
     _vLineLayer = vl;
     _vtxLayer   = vtx;
     _aLineLayer = aux;
 }
示例#3
0
        private void DrawLineElements(OECPElement ele, Pen p, OECPLayer layer, Graphics g)
        {
            var line = (OECPLine)ele;
            var st   = I2C(line.StartVertex);
            var ed   = I2C(line.EndVertex);

            p.Color = line.IsHighLight ? line.HighLightColor : layer.LayerColor;
            DrawTool.DrawShape(st.X, st.Y, ed.X, ed.Y, p, g);
        }
示例#4
0
        private void DrawVertexElement(OECPElement ele, Pen p, OECPLayer layer, Graphics g)
        {
            var vtx = (OECPVertex)ele;
            var t   = I2C(vtx);

            if (t.IsHighLight)
            {
                p.Width = 5;
                p.Color = t.HighLightColor;
            }
            else
            {
                p.Color = t.ElementColor;
                p.Width = 1;
            }
            var b = new SolidBrush(p.Color);

            DrawTool.DrawShape(t.X, t.Y, p, b, g);
        }
示例#5
0
        private void InitLayers()
        {
            _gridControl = new OECPGridControlPanel(_canvas)
            {
                Dock = DockStyle.Fill
            };
            _vertexControl = new OECPVertexControlPanel(_canvas)
            {
                Dock = DockStyle.Fill
            };
            _lControl = new OECPLineControlPanel(_canvas)
            {
                Dock = DockStyle.Fill
            };
            _controlList.AddRange(new List <UserControl>()
            {
                _gridControl, _vertexControl, _lControl
            });

            _gridLayer = new OECPLayer(Color.Gray, OECPLayer.Type.Grid);

            _mLineLayer = new OECPLayer(Color.Red, OECPLayer.Type.Line, OECPLayer.LineFcType.M);

            _vLineLayer = new OECPLayer(Color.Blue, OECPLayer.Type.Line, OECPLayer.LineFcType.V);

            _aLineLayer = new OECPLayer(Color.Gray, OECPLayer.Type.Line, OECPLayer.LineFcType.Aux);

            _vertexLayer = new OECPLayer(Color.Black, OECPLayer.Type.Vertex);

            var trueCanvas = (OECPCanvas)_canvas;

            trueCanvas.Layers = new List <OECPLayer>()
            {
                _mLineLayer, _vLineLayer, _aLineLayer, _vertexLayer
            };
            trueCanvas.RegisterLayerPtr(_gridLayer, _mLineLayer, _vLineLayer, _vertexLayer, _aLineLayer);
        }
示例#6
0
        public void RePaintLayerElements(OECPLayer layer, Graphics g)
        {
            if (!layer.IsVisible)
            {
                return;
            }

            Pen p = new Pen(Color.Black);

            if (layer.IsLine)
            {
                foreach (var ele in layer.LayerElements())
                {
                    DrawLineElements(ele, p, layer, g);
                }
            }
            else
            {
                foreach (var ele in layer.LayerElements())
                {
                    DrawVertexElement(ele, p, layer, g);
                }
            }
        }
示例#7
0
 private void LayerVisControl(bool visible, OECPLayer layer)
 {
     layer.IsVisible = visible;
     _canvas.SetLayerVisible(visible, layer);
 }
示例#8
0
 public void ChangeCurrentLayer(OECPLayer layer)
 {
     _curLayer = layer;
 }
示例#9
0
 public void SetLayerVisible(bool visible, OECPLayer layer)
 {
     layer.IsVisible = visible;
     Invalidate();
 }