private void SetLabelCustomContext() { if (!CheckDataConsistency()) { return; } ComparisonRowChartLabels = ComparisonRecords.Select(record => { return(GetLabelCustomContext(record, GetMaxCommentAlignment())); }).Reverse().ToArray(); if (IsContextLegendActive) { if (ComparisonModel.Series.Count == ComparisonRecords.Count) { for (int i = 0; i < ComparisonRecords.Count; i++) { var wrappedComparisonInfo = ComparisonRecords[i]; var chartTitle = wrappedComparisonInfo.WrappedRecordInfo.FileRecordInfo.Comment; ComparisonModel.Series[i].Title = chartTitle; } } } }
private void OnComparisonContextChanged() { ChartLabel[] GetLabels() { return(ComparisonRecords.Select(record => GetChartLabel(record.WrappedRecordInfo)).ToArray()); } void SetLabels(ChartLabel[] labels) { ComparisonRowChartLabels = labels.Select(label => GetHasUniqueGameNames() ? label.Context : $"{label.GameName}{Environment.NewLine}{label.Context}").Reverse().ToArray(); if (IsContextLegendActive) { if (ComparisonModel.Series.Count == ComparisonRecords.Count) { for (int i = 0; i < ComparisonRecords.Count; i++) { ComparisonModel.Series[i].Title = labels[i].Context; } } } } if (ComparisonModel == null) { InitializePlotModel(); } SetLabels(GetLabels()); ComparisonModel.InvalidatePlot(true); }
private void UpdateAxesMinMax(bool invalidatePlot) { if (ComparisonRecords == null || !ComparisonRecords.Any()) { return; } var xAxis = ComparisonModel.GetAxisOrDefault("xAxis", null); var yAxis = ComparisonModel.GetAxisOrDefault("yAxis", null); if (xAxis == null || yAxis == null) { return; } double xMin = 0; double xMax = 0; double yMin = 0; double yMax = 0; double startTime = FirstSeconds; double endTime = _maxRecordingTime - LastSeconds; var sessionParallelQuery = ComparisonRecords.Select(record => record.WrappedRecordInfo.Session).AsParallel(); xMin = sessionParallelQuery.Min(session => { return(session.GetFrametimePointsTimeWindow(startTime, endTime).First().X); }); xMax = sessionParallelQuery.Max(session => { return(session.GetFrametimePointsTimeWindow(startTime, endTime).Last().X); }); yMin = sessionParallelQuery.Min(session => { return(session.GetFrametimePointsTimeWindow(startTime, endTime).Min(pnt => pnt.Y));; }); yMax = sessionParallelQuery.Max(session => { return(session.GetFrametimePointsTimeWindow(startTime, endTime).Max(pnt => pnt.Y)); }); xAxis.Minimum = xMin; xAxis.Maximum = xMax; yAxis.Minimum = yMin - (yMax - yMin) / 6; yAxis.Maximum = yMax + (yMax - yMin) / 6; if (invalidatePlot) { ComparisonModel.InvalidatePlot(true); } }
private void UpdateAxesMinMax() { if (ComparisonRecords == null || !ComparisonRecords.Any()) { return; } var xAxis = ComparisonModel.GetAxisOrDefault("xAxis", null); var yAxis = ComparisonModel.GetAxisOrDefault("yAxis", null); if (xAxis == null || yAxis == null) { return; } xAxis.Reset(); double xMin = 0; double xMax = 0; double yMin = 0; double yMax = 0; double startTime = FirstSeconds; double endTime = LastSeconds; var sessionParallelQuery = ComparisonRecords.Select(record => record.WrappedRecordInfo.Session).AsParallel(); xMin = sessionParallelQuery.Min(session => { var window = session.GetFrametimePointsTimeWindow(startTime, endTime, _appConfiguration); if (window.Any()) { return(window.First().X); } else { return(double.MaxValue); } }); xMax = sessionParallelQuery.Max(session => { var window = session.GetFrametimePointsTimeWindow(startTime, endTime, _appConfiguration); if (window.Any()) { return(window.Last().X); } else { return(double.MinValue); } }); yMin = sessionParallelQuery.Min(session => { var window = session.GetFrametimePointsTimeWindow(startTime, endTime, _appConfiguration); if (window.Any()) { return(window.Min(pnt => pnt.Y)); } else { return(double.MaxValue); } }); yMax = sessionParallelQuery.Max(session => { var window = session.GetFrametimePointsTimeWindow(startTime, endTime, _appConfiguration); if (window.Any()) { return(window.Max(pnt => pnt.Y)); } else { return(double.MinValue); } }); xAxis.Minimum = xMin; xAxis.Maximum = xMax; yAxis.Minimum = yMin - (yMax - yMin) / 6; yAxis.Maximum = yMax + (yMax - yMin) / 6; ComparisonModel.InvalidatePlot(true); }