const int dashStyleTimes = 10; //显示边界风格切换的次数,到达10次之后切换边界风格,DashDot->Dash或Dash->DashDot

        public GraphicWaveGateView(WaveGate waveGate, OverViewDisplayer ovd)
        {
            displayer = ovd;
            canvas    = displayer.Canvas;

            this.waveGate = waveGate;

            waveGateBrush = canvas.CreateSolidColorBrush(waveGate.IsSemiAuto ?
                                                         Tools.GetColorFFromRgb(255, 255, 0) :
                                                         Tools.GetColorFFromRgb(245, 222, 179));

            coodinateSystem = displayer.coordinateSystem;

            //Selected = false;

            PolarCoordinate c = new PolarCoordinate
            {
                Az = waveGate.BeginAngle,
                //ProjectedDis = waveGate.BeginDistance;    //之前版本将距离赋给ProjectedDis
                Dis = waveGate.BeginDistance
            };

            innerLeft = coodinateSystem.CoordinateToPoint(c);

            c.Az = waveGate.EndAngle;
            //c.ProjectedDis = waveGate.EndDistance;  //之前版本将距离赋给projectedDis
            c.Dis       = waveGate.EndDistance;
            outterRight = coodinateSystem.CoordinateToPoint(c);

            geometry = coodinateSystem.BuildWaveGateGeometry(innerLeft, outterRight);
        }
        public void NotifyChange(WaveGate wg, WaveGateSubjectNotifyState state)
        {
            if (wg == null)
            {
                return;
            }

            if (state == WaveGateSubjectNotifyState.Add)
            {
                views.Add(new GraphicWaveGateView(wg, dispalyer));
            }
            else
            {
                for (int i = views.Count - 1; i >= 0; i--)
                {
                    if (views[i].WaveGate == wg)
                    {
                        views[i].Dispose();
                        views.Remove(views[i]);

                        break;
                    }
                }
            }
        }
        public override void MouseUp(object sender, MouseEventArgs e)
        {
            if (!isMouseDown)
            {
                return;
            }
            base.MouseUp(sender, e);
            WaveGate waveGate = CalWaveGate();

            if (waveGate != null)
            {
                displayer.SendNewWaveGate(waveGate);
            }
        }
Exemplo n.º 4
0
 public WaveGateAddCommand(WaveGate wg) : base()
 {
     this.wg = wg;
 }
Exemplo n.º 5
0
 private void Ovd_NewWaveGate(WaveGate waveGate) => new WaveGateAddCommand(waveGate).Execute();
 public WaveGateDeleteCommand(WaveGate wg) : base()
 {
     this.wg = wg;
 }