Beispiel #1
0
 private void DeletePoint()
 {
     lock (this)
     {
         if ((_stepDown != null) && (_stepDown.Count > 0))
         {
             _stepDown.RemoveAll(x => (x.FirstPoint.Equals((_space.Count > 0) ? _space.Last().Point : agentConfig.StartPoint)));
         }
         Point firstPoint  = agentConfig.StartPoint;
         Point secondPoint = agentConfig.StartPoint;
         if (_space.Count > 0)
         {
             firstPoint  = _space[(_space.Count == 1) ? 0 : (_space.Count - 2)].Point;
             secondPoint = _space.Last().Point;
         }
         VectorPoint currentVector = new VectorPoint(firstPoint, secondPoint);
         if (!_stepDown.Contains(currentVector))
         {
             _stepDown.Add(currentVector);
         }
         if ((_space != null) && (_space.Count > 0))
         {
             _newMessage.Entity  = new SendPoint(_space.Count, (_space.Count > 0) ? _space.Last().Point : agentConfig.StartPoint);
             _newMessage.Action  = MsgAction.Invoke;
             _newMessage.Message = TypeMessege.DeletePoint;
             _space.RemoveAll(x => (x.Point.Equals(_space.Last().Point)));
         }
     }
 }
Beispiel #2
0
        private void AddStepDownPoint()
        {
            VectorPoint currentVector = new VectorPoint(_space[(_space.Count == 1) ? 0 : (_space.Count - 2)].Point,
                                                        _space.Last().Point);

            if (!_stepDown.Contains(currentVector))  // Если в списке векторов с тупиковыми точками не занесен вектор
            {                                        // с концом текущей точки, то мы создаем новый вектор с началом
                _stepDown.Add(currentVector);        // в предыдущей и концом в текущей точках и заносим его в наш
            }                                        // списой векторов с тупиковыми точками.
        }