protected virtual bool CorelateDotToSector(TargetDot oldDot, Sector sector)   //自由点和一个扇区的新点相关,返回true表示相关成功
        {
            bool ret = false;

            if (!oldDot.IsClotDot)
            {
                return(false);
            }
            foreach (TargetDot newDot in sector.NewDots)
            {
                if (newDot.Adopted || !newDot.IsClotDot) //已经被航迹相关上的点不作处理
                {
                    continue;
                }

                if (oldDot.IsDotRelated(newDot) && DotsCanCorelate(oldDot, newDot))   //两个点是否相关成功
                {
                    TargetTrack track =
                        TargetTrack.CreateTargetTrack(newDot, oldDot, 3);
                    if (track == null)   //创建航迹失败,航迹编号满
                    {
                        continue;
                    }

                    //newDot.Adopted = true;    //自由点相关时,一个目标点可以与多个自由点相关
                    oldDot.Adopted = true;
                    sector.AddTrack(track);

                    ret = true;
                    break;  //相关成功,返回上层循环
                }
            }
            return(ret);
        }
        public TrackGenerator(TargetManager targetManager, PolarCoordinate coordinate)
        {
            this.targetManager = targetManager;
            //track = new TargetTrack(coordinate);

            track = TargetTrack.CreateTargetTrack(new TargetDot(coordinate.Az, coordinate.El, coordinate.Dis), null, 13);
            int sectorIndex = GetTrackSectorId(track);

            targetManager.Sectors[sectorIndex].AddTrack(track);
            track.IsFake      = true;
            track.SectorIndex = GetTrackSectorId(track);
            targetManager.NotifyAllObservers(track, NotifyType.Add);
            center = coordinate;
        }