fix: publish distinct EM observation semantics

This commit is contained in:
梁薄云
2026-08-07 09:28:55 +08:00
parent 5d1c875584
commit d33257cc46
8 changed files with 313 additions and 30 deletions
@@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
namespace TrajectoryPlanningVisualization;
@@ -26,10 +27,39 @@ public sealed class VisualizationSeries
public IReadOnlyList<VisualizationPoint> Points { get; }
}
public sealed class VisualizationChartAnnotation
{
public VisualizationChartAnnotation(string id, string kind, string labelChinese,
double x, double? y = null)
{
Id = VisualizationContract.RequireText(id, nameof(id));
Kind = VisualizationContract.RequireText(kind, nameof(kind));
LabelChinese = VisualizationContract.RequireText(labelChinese, nameof(labelChinese));
VisualizationContract.RequireFinite(x, nameof(x));
VisualizationContract.RequireFinite(y, nameof(y));
X = x;
Y = y;
}
public string Id { get; }
public string Kind { get; }
public string LabelChinese { get; }
public double X { get; }
public double? Y { get; }
}
public sealed class VisualizationChart
{
public VisualizationChart(string id, string chineseTitle, string xAxisLabel, string yAxisLabel,
IReadOnlyList<VisualizationSeries> series, string noteChinese = "")
: this(id, chineseTitle, xAxisLabel, yAxisLabel, series, noteChinese,
Array.Empty<VisualizationChartAnnotation>())
{
}
public VisualizationChart(string id, string chineseTitle, string xAxisLabel, string yAxisLabel,
IReadOnlyList<VisualizationSeries> series, string noteChinese,
IReadOnlyList<VisualizationChartAnnotation> annotations)
{
Id = VisualizationContract.RequireText(id, nameof(id));
ChineseTitle = VisualizationContract.RequireText(chineseTitle, nameof(chineseTitle));
@@ -37,6 +67,7 @@ public sealed class VisualizationChart
YAxisLabel = VisualizationContract.RequireText(yAxisLabel, nameof(yAxisLabel));
Series = VisualizationContract.Copy(series, nameof(series));
NoteChinese = VisualizationContract.RequireText(noteChinese, nameof(noteChinese));
Annotations = VisualizationContract.Copy(annotations, nameof(annotations));
}
public string Id { get; }
@@ -45,4 +76,5 @@ public sealed class VisualizationChart
public string YAxisLabel { get; }
public IReadOnlyList<VisualizationSeries> Series { get; }
public string NoteChinese { get; }
public IReadOnlyList<VisualizationChartAnnotation> Annotations { get; }
}