feat: add planning visualization contracts
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
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; }
|
||||
}
|
||||
Reference in New Issue
Block a user