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))); } } }
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); // в предыдущей и концом в текущей точках и заносим его в наш } // списой векторов с тупиковыми точками. }