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; }
private void OnCurveManeuverParameterChanged(object sender, CurveManeuverParameterArg arg) { m_CurveManeuverParameter = arg.CurveManeuverParameter; m_CurveViewItems.Clear(); }
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; } }