public void editPoint(int index, PointPair p, PointPair oldP) { if (!interval.isPointOnInterval(p)) { points[index] = oldP; throw new InvalidPointPositon(p.ToString()); } p.Y = interval.profile.getY(p.X); points[index] = p; points.Sort(); }
// Редактирование позиции точки на профиле интервала public void editPoint(int index, PointPair p, PointPair oldP) { if (!interval.isPointOnInterval(p)) { points[index] = oldP; throw new InvalidPointPositon(p.ToString()); } int i = findPointIndexOnProfile(p); if (i - 1 != index) { points[index] = oldP; throw new InvalidPointPositon("Невозможно изменить позицию узла профиля интервала"); } points[index] = p; if (index == 0) { interval.earthCurve.Points[0].Y = p.Y; } if (index == points.Count - 1) { interval.earthCurve.Points[1].Y = p.Y; } }
public void addPoint(PointPair p) { if (!interval.isPointOnInterval(p)) { throw new InvalidPointPositon(p.ToString()); } int i = findPointIndexOnProfile(p); // Первая или последняя точка интервала if (i <= 0 || i >= points.Count) { throw new InvalidPointPositon(p.ToString()); } points.Insert(i, p); }