private void AddToLShapeChart(ComparisonRecordInfoWrapper wrappedComparisonInfo) { double startTime = FirstSeconds; double endTime = LastSeconds; var frametimeTimeWindow = wrappedComparisonInfo.WrappedRecordInfo.Session.GetFrametimeTimeWindow(startTime, endTime, _appConfiguration, ERemoveOutlierMethod.None); var lShapeQuantiles = _frametimeAnalyzer.GetLShapeQuantiles(); double action(double q) => _frametimeStatisticProvider.GetPQuantileSequence(frametimeTimeWindow, q / 100); var quantiles = lShapeQuantiles.Select(q => new ObservablePoint(q, action(q))); var quantileValues = new ChartValues <ObservablePoint>(); quantileValues.AddRange(quantiles); ComparisonLShapeCollection.Add( new LineSeries { Id = wrappedComparisonInfo.WrappedRecordInfo.FileRecordInfo.Id, Values = quantileValues, Stroke = wrappedComparisonInfo.IsHideModeSelected ? Brushes.Transparent : wrappedComparisonInfo.Color, Fill = Brushes.Transparent, StrokeThickness = 1, LineSmoothness = 1, PointGeometrySize = 5, PointGeometry = DefaultGeometries.Square, PointForeground = wrappedComparisonInfo.IsHideModeSelected ? Brushes.Transparent : wrappedComparisonInfo.Color, LabelPoint = chartPoint => string.Format(CultureInfo.InvariantCulture, "{0:0.##}", chartPoint.Y, "ms") }); }
private void AddToLShapeChart(ComparisonRecordInfoWrapper wrappedComparisonInfo) { double startTime = FirstSeconds; double endTime = _maxRecordingTime - LastSeconds; var frametimeTimeWindow = wrappedComparisonInfo.WrappedRecordInfo.Session.GetFrametimeTimeWindow(startTime, endTime, ERemoveOutlierMethod.None); var lShapeQuantiles = _frametimeAnalyzer.GetLShapeQuantiles(); double action(double q) => _frametimeStatisticProvider.GetPQuantileSequence(frametimeTimeWindow, q / 100); var quantiles = lShapeQuantiles.Select(q => new ObservablePoint(q, action(q))); var quantileValues = new ChartValues <ObservablePoint>(); quantileValues.AddRange(quantiles); Application.Current.Dispatcher.BeginInvoke(new Action(() => { ComparisonLShapeCollection.Add( new LineSeries { Values = quantileValues, Stroke = wrappedComparisonInfo.Color, Fill = Brushes.Transparent, StrokeThickness = 1, LineSmoothness = 1, PointGeometrySize = 10, PointGeometry = DefaultGeometries.Triangle, }); })); }