Files
ParkingRobot/ClumsyPilot/TrajectoryPlanningVisualization/Contracts/VisualizationCharts.cs
T

49 lines
1.7 KiB
C#

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<VisualizationPoint> 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<VisualizationPoint> Points { get; }
}
public sealed class VisualizationChart
{
public VisualizationChart(string id, string chineseTitle, string xAxisLabel, string yAxisLabel,
IReadOnlyList<VisualizationSeries> 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<VisualizationSeries> Series { get; }
public string NoteChinese { get; }
}