Пример #1
0
        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));
        }
Пример #2
0
        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");
            }
        }