feat: dual-station radar track plot (satlover/satmatch style)

- MutualPass now carries TrackSample (azimuth/elevation for both stations)
- New MutualRadarView: polar plot with elevation rings (30/60/90),
  cardinal spokes, solid A-track vs dashed B-track, AOS/LOS markers
- Shown in expanded mutual pass card and radar page mutual card
This commit is contained in:
atsunatsu committed 2026-08-03 00:21:20 +08:00
1 parent 4baf3821e5
commit bd42e643ea
6 files changed
+276 -4

No files matched your search

@@ -46,6 +46,7 @@ interface IMainContainer {
data class MutualPassData(
val samples: List<Pair<Long, Pair<Double, Double>>> = emptyList(),
val trackSamples: List<TrackSampleData> = emptyList(),
val startTime: Long = 0L,
val endTime: Long = 0L,
val maxElev: Double = 10.0,
@@ -53,6 +54,14 @@ data class MutualPassData(
val labelB: String = "友台"
)
/** Minimal track sample for cross-module sharing (angles in degrees). */
data class TrackSampleData(
val azimuthA: Double,
val elevationA: Double,
val azimuthB: Double,
val elevationB: Double
)
interface IContainerProvider {
fun getMainContainer(): IMainContainer
}