/// <summary>
        /// 장애물이 삭제될 경우 발생하는 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ObsDeleteCommandExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            List <ObsShape> deldata = new List <ObsShape>();

            foreach (var item in ObsDiagram.SelectedItems)
            {
                if (item is ObsShape)
                {
                    ObsShape del = item as ObsShape;
                    deldata.Add(del);
                }
            }

            VIewer3D.Instance.RemoveObsPoints();

            for (int i = 0; i < deldata.Count; i++)
            {
                ObsDiagram.RemoveShape(deldata[i]);
            }

            if (loadTime == false)
            {
                Save();
            }
        }
        /// <summary>
        /// 3D 에서 장애물 삭제시 장애물 다이어그램에서도 삭제한다.
        /// </summary>
        /// <param name="xPoint"></param>
        /// <param name="yPoint"></param>
        public void deleteObsShape(double xPoint, double yPoint)
        {
            var Obs = ObsDiagram.Items.OfType <ObsShape>().Where(x => x.ObsPointX == xPoint && x.ObsPointY == yPoint).ToList();

            if (Obs.Count == 1)
            {
                ObsDiagram.RemoveShape(Obs[0]);
            }
            reConnection();
        }
 /// <summary>
 /// 마우스 휠 클릭시 클릭한 시점을 중앙으로 이동해준다.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void ObsDiagram_MouseDown(object sender, MouseButtonEventArgs e)
 {
     if (e.MiddleButton == MouseButtonState.Pressed)
     {
         //클릭 위치 확인 하여 클릭 시점 중앙으로 위치 이동
         Point  ClickPoint  = (this.ObsDiagram as RadDiagram).GetTransformedPoint(e.GetPosition(this.ObsDiagram as UIElement));
         double width       = ObsDiagram.Viewport.Width / 2;
         double heigh       = ObsDiagram.Viewport.Height / 2;
         Point  setPoistion = new System.Windows.Point(ClickPoint.X - width, ClickPoint.Y - heigh);
         ObsDiagram.BringIntoView(setPoistion, ObsDiagram.Zoom, true);
     }
 }
        /// <summary>
        /// 장애물 노드를 추가해준다.
        /// </summary>
        /// <param name="pointX"></param>
        /// <param name="pointY"></param>
        /// <param name="pointType"></param>
        public void add_ObsPoint(float pointX, float pointY, int pointType)
        {
            //탭 장애물로 전환해주고
            tabCon.SelectedIndex = 1;
            //인덱스 번호를 찾는다 가장 큰 번호에 +1을 한다.
            int index    = 0;
            var getindex = ObsDiagram.Items.OfType <ObsShape>().OrderByDescending(x => x.Index).ToList();

            if (getindex.Count == 0)
            {
                index = 0;
            }
            else
            {
                index = getindex[0].Index + 1;
            }

            //다이어그램에 포인트 추가

            var shape = new ObsShape()
            {
                Position = new Point(createObsX, createObsY), Index = index, PointType = pointType.ToString(), ObsPointX = pointX, ObsPointY = pointY, _oldPointtype = pointType.ToString()
            };

            shape.chitem += Shape_chitem;
            ObsDiagram.AddShape(shape);

            createObsX += 150;

            if (createObsX == 900)
            {
                createObsX  = 0;
                createObsY += 120;
            }

            ObsDiagram.AutoFit();
        }
 /// <summary>
 /// 경로, 장애물 다이어그램을 저장한다.
 /// </summary>
 public void Save()
 {
     writeDiagram(Navidiagram.Save(), Global.projectNaviDiagram);
     writeDiagram(ObsDiagram.Save(), Global.projectObsDiagram);
 }