예제 #1
0
        private CurveViewCache()
        {
            var setting = new AppSettings();

            m_CurveManeuverParameter = setting.CurveManeuverParameter;
            ShowPlotMarker           = setting.ShowCurvePlotMarker4GherkinTable;

            EventAggregator <ShowCurvePlotMarker4GherkinTableArg> .Instance.Event += OnShowPlotMarker;
            EventAggregator <CurveManeuverParameterArg> .Instance.Event           += OnCurveManeuverParameterChanged;
            EventAggregator <EditorClosedArg> .Instance.Event += OnEditorClosed;
        }
예제 #2
0
 private void OnCurveManeuverParameterChanged(object sender, CurveManeuverParameterArg arg)
 {
     m_CurveManeuverParameter = arg.CurveManeuverParameter;
     m_CurveViewItems.Clear();
 }
예제 #3
0
        public CurvePlotModel(string featureFileName,
                              List <GPoint> points,
                              bool showMarker,
                              CurveInfo curveInfo,
                              CurveManeuverParameter curveManeuverParameter,
                              double pointExtractionDuration)
        {
            this.ShowMarker                    = showMarker;
            this.CurveInfo                     = curveInfo;
            this.CurveManeuverParameter        = curveManeuverParameter;
            this.PointExtractionDurationTimeMS = pointExtractionDuration;

            Key = MakeKey(featureFileName, points, curveInfo);

            double curveLength = BezierCurveLength.LengthByQuadratic(points);

            base.PlotMargins = new OxyPlot.OxyThickness(60, 0, 0, 40);
            base.Title       = curveInfo.Title;

            List <GPoint> newPoint;

            switch (curveInfo.Option)
            {
            case "simplify":
                PlotOriginalCurve(points);
                PlotSimplifyCurvature(points);
                break;

            case "simplify_cm":
                newPoint = ConvertCurvatureUnit(points, curveInfo);
                PlotOriginalCurve(newPoint);
                PlotSimplifyCurvature(newPoint);
                break;

            case "bezier":
                PlotOriginalCurve(points);
                AddBezierByNURBS(points);
                PlotCurveManeuver(points, curveLength, points.Count - 1);
                break;

            case "bspline":
                PlotOriginalCurve(points);
                AddBSplineByNURBS(points, curveLength);
                PlotCurveManeuver(points, curveLength, SplineDegree(points));
                break;

            case "brcurvature":     // Raw curvature
                PlotBSplineRawCurvatureByNURBS(points, curveLength);
                break;

            case "bcurvature":      // Bezier curvature
            case "curvature":
                PlotBezierCurvatureByNURBS(points, curveLength);
                break;

            case "tangent":       // Tangent
                PlotTangent(points);
                break;

            case "degtangent":       // Tangent by degree of Bezier curve
                PlotBezierTangentByDegree(points);
                break;

            case "linreg":       // linear regression
                PlotOriginalCurve(points, useLinearSeries: false);
                PlotLinearRegression(points);
                break;

            default:
                PlotOriginalCurve(points);
                break;
            }
        }