Exemple #1
0
        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);
        }
Exemple #3
0
        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);
        }