public void AddNewCurve() { var curve = Curve.Create(MinSpeed, MaxSpeed); repository.Curves.Add(curve); var viewModel = factory().Init(Curves.Last().Id + 1, curve); Curves.Add(viewModel); SelectedCurve = viewModel; eventAggregator.PublishOnUIThread(new CurveAdded(curve)); }
protected virtual IXPoint GetPoint(bool isStart) { var curve = isStart ? Curves.First() : Curves.Last(); if (curve.IsTrimmedCurve()) { if (curve.GetEndParams(out double start, out double end, out _, out _)) { var pt = curve.Evaluate2(isStart ? start : end, 1) as double[]; return(new SwPoint() { Coordinate = new Point(pt[0], pt[1], pt[2]) }); } else { throw new Exception("Failed to get end parameters of curve"); } } else { throw new NotSupportedException("Only trimmed curves are supported"); } }