feat(annotations): draw on the world by hand (#547)

Supersedes #235 by @cora-fresh-labs, ported onto the current component layout with fixes from review.

Verified before merge: format, package boundaries, unit suite, build, and the browser tracking suite; a browser harness for the change where one applies; adversarial review applied.

Future work (not in this PR): hand-drawn marks do not persist across a reload today, and neither do spoken annotations; there is no storage layer for marks. The natural home is Scenes: a drawing that belongs to a shot and persists per shot, so a scene animation can carry its own marks. Needs an owner.
Co-authored-by: Clint Borle <[email protected]>
This commit is contained in:
Bilawal Sidhu authored and GitHub committed 2026-09-14 19:59:26 -05:00
1 parent 409e27d7f9
commit 9fc8d1966b
32 files changed
+3313 -19

No files matched your search

+34 -16
View File
@@ -8,7 +8,8 @@
"modules": [
"src/data/infrastructure.js",
"src/data/localGeojsonCore.js",
"src/data/localGeojsonLod.js"
"src/data/localGeojsonLod.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -628,7 +629,8 @@
"src/layers/flights/tracking.js",
"src/layers/flights/records.js",
"src/layers/flights/recordPolicy.js",
"src/layers/flights/snapshotRenderer.js"
"src/layers/flights/snapshotRenderer.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -662,7 +664,8 @@
"src/layers/military/tracking.js",
"src/layers/military/records.js",
"src/layers/military/recordPolicy.js",
"src/layers/military/snapshotRenderer.js"
"src/layers/military/snapshotRenderer.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -685,7 +688,8 @@
"src/data/trackedModelRegime.js",
"src/data/trackingClickGesture.js",
"src/layers/aircraft/classification.js",
"src/layers/aircraft/index.js"
"src/layers/aircraft/index.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -708,7 +712,8 @@
"src/data/vesselLabels.js",
"src/layers/vessels/records.js",
"src/layers/vessels/recordPolicy.js",
"src/layers/vessels/snapshotRenderer.js"
"src/layers/vessels/snapshotRenderer.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -739,7 +744,8 @@
"src/layers/firms/selection.js",
"src/layers/firms/source.js",
"src/layers/firms/state.js",
"src/layers/firms/viewport.js"
"src/layers/firms/viewport.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -761,7 +767,8 @@
"src/layers/satellites/source.js",
"src/layers/satellites/state.js",
"src/layers/satellites/testing.js",
"src/layers/satellites/tracking.js"
"src/layers/satellites/tracking.js",
"src/data/inputOwnership.js"
],
"external": ["cesium", "satellite.js"]
},
@@ -786,7 +793,8 @@
"src/layers/launches/selection.js",
"src/layers/launches/source.js",
"src/layers/launches/state.js",
"src/layers/launches/testing.js"
"src/layers/launches/testing.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -805,7 +813,8 @@
"src/layers/installations/selection.js",
"src/layers/installations/source.js",
"src/layers/installations/state.js",
"src/layers/installations/viewport.js"
"src/layers/installations/viewport.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -879,7 +888,8 @@
"src/layers/bikeshare/source.js",
"src/layers/bikeshare/state.js",
"src/layers/bikeshare/testing.js",
"src/layers/bikeshare/viewport.js"
"src/layers/bikeshare/viewport.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -916,7 +926,8 @@
"src/layers/cctv/state.js",
"src/layers/cctv/testing.js",
"src/overlays/worldOverlayTokens.js",
"src/data/cctvFootprint.js"
"src/data/cctvFootprint.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -927,7 +938,8 @@
"src/layers/alpr/model.js",
"src/layers/alpr/policy.js",
"src/layers/alpr/presentation.js",
"src/layers/alpr/source.js"
"src/layers/alpr/source.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -959,7 +971,8 @@
"src/layers/radio/tuning.js",
"src/layers/radio/tuningNoise.js",
"src/layers/radio/volume.js",
"src/ui/radioTunerModel.js"
"src/ui/radioTunerModel.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -975,7 +988,8 @@
"src/layers/submarineCables/policy.js",
"src/layers/submarineCables/rendering.js",
"src/layers/submarineCables/state.js",
"src/layers/submarineCables/surface.js"
"src/layers/submarineCables/surface.js",
"src/data/inputOwnership.js"
],
"external": ["cesium"]
},
@@ -1557,7 +1571,10 @@
"src/layers/military/snapshotRenderer.js",
"src/layers/vessels/records.js",
"src/layers/vessels/recordPolicy.js",
"src/layers/vessels/snapshotRenderer.js"
"src/layers/vessels/snapshotRenderer.js",
"src/data/inputOwnership.js",
"src/annotations/drawMode.js",
"src/annotations/drawTool.js"
],
"external": [
"@mapbox/vector-tile",
@@ -1889,7 +1906,8 @@
"src/layers/military/snapshotRenderer.js",
"src/layers/vessels/records.js",
"src/layers/vessels/recordPolicy.js",
"src/layers/vessels/snapshotRenderer.js"
"src/layers/vessels/snapshotRenderer.js",
"src/data/inputOwnership.js"
],
"external": [
"cesium",