using System.Collections.Generic; namespace TrajectoryPlanningVisualization; public enum VisualizationLineStyle { Solid, Dashed, Limit } public sealed class VisualizationSeries { public VisualizationSeries(string id, string legend, VisualizationLineStyle lineStyle, IReadOnlyList points) { Id = VisualizationContract.RequireText(id, nameof(id)); Legend = VisualizationContract.RequireText(legend, nameof(legend)); LineStyle = lineStyle; Points = VisualizationContract.Copy(points, nameof(points)); } public string Id { get; } public string Legend { get; } public VisualizationLineStyle LineStyle { get; } public IReadOnlyList Points { get; } } public sealed class VisualizationChart { public VisualizationChart(string id, string chineseTitle, string xAxisLabel, string yAxisLabel, IReadOnlyList series, string noteChinese = "") { Id = VisualizationContract.RequireText(id, nameof(id)); ChineseTitle = VisualizationContract.RequireText(chineseTitle, nameof(chineseTitle)); XAxisLabel = VisualizationContract.RequireText(xAxisLabel, nameof(xAxisLabel)); YAxisLabel = VisualizationContract.RequireText(yAxisLabel, nameof(yAxisLabel)); Series = VisualizationContract.Copy(series, nameof(series)); NoteChinese = VisualizationContract.RequireText(noteChinese, nameof(noteChinese)); } public string Id { get; } public string ChineseTitle { get; } public string XAxisLabel { get; } public string YAxisLabel { get; } public IReadOnlyList Series { get; } public string NoteChinese { get; } }