/* * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #include "rtc_tools/rtc_event_log_visualizer/plot_base.h" #include #include "rtc_base/checks.h" namespace webrtc { void Plot::SetXAxis(float min_value, float max_value, std::string label, float left_margin, float right_margin) { RTC_DCHECK_LE(min_value, max_value); xaxis_min_ = min_value - left_margin * (max_value - min_value); xaxis_max_ = max_value + right_margin * (max_value - min_value); xaxis_label_ = label; } void Plot::SetSuggestedXAxis(float min_value, float max_value, std::string label, float left_margin, float right_margin) { for (const auto& series : series_list_) { for (const auto& point : series.points) { min_value = std::min(min_value, point.x); max_value = std::max(max_value, point.x); } } SetXAxis(min_value, max_value, label, left_margin, right_margin); } void Plot::SetYAxis(float min_value, float max_value, std::string label, float bottom_margin, float top_margin) { RTC_DCHECK_LE(min_value, max_value); yaxis_min_ = min_value - bottom_margin * (max_value - min_value); yaxis_max_ = max_value + top_margin * (max_value - min_value); yaxis_label_ = label; } void Plot::SetSuggestedYAxis(float min_value, float max_value, std::string label, float bottom_margin, float top_margin) { for (const auto& series : series_list_) { for (const auto& point : series.points) { min_value = std::min(min_value, point.y); max_value = std::max(max_value, point.y); } } SetYAxis(min_value, max_value, label, bottom_margin, top_margin); } void Plot::SetYAxisTickLabels( const std::vector>& labels) { yaxis_tick_labels_ = labels; } void Plot::SetTitle(const std::string& title) { title_ = title; } void Plot::SetId(const std::string& id) { id_ = id; } void Plot::AppendTimeSeries(TimeSeries&& time_series) { series_list_.emplace_back(std::move(time_series)); } void Plot::AppendIntervalSeries(IntervalSeries&& interval_series) { interval_list_.emplace_back(std::move(interval_series)); } void Plot::AppendTimeSeriesIfNotEmpty(TimeSeries&& time_series) { if (!time_series.points.empty()) { series_list_.emplace_back(std::move(time_series)); } } } // namespace webrtc