mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 19:04:02 +00:00
Merge remote-tracking branch 'origin/pr1200' into codex/cctv-shared-batch-20261019
This commit is contained in:
commit
0a4d520e79
4 files changed
+21
-8
No files matched your search
@@ -0,0 +1,5 @@
|
|||||||
|
- Color CCTV cameras with live video violet. Cameras with an HLS, MP4 or WebM
|
||||||
|
feed were the same cyan as stills, so a live DelDOT or Statens vegvesen
|
||||||
|
camera could only be found by opening it. Stills stay cyan and the active
|
||||||
|
camera stays amber, and focus de-emphasis fades the violet the same way
|
||||||
|
(Danielslay86, #1200).
|
||||||
@@ -4396,7 +4396,7 @@ silently demoting every later lookup for the session.
|
|||||||
ground clamp now lifts the cap _center_ only so the wireframe stays a true pyramid welded to
|
ground clamp now lifts the cap _center_ only so the wireframe stays a true pyramid welded to
|
||||||
the plane (was a flattened fan / the ~47.5 m divergence — RESOLVED), re-selecting the active
|
the plane (was a flattened fan / the ~47.5 m divergence — RESOLVED), re-selecting the active
|
||||||
camera is a no-op (killed a click-flash), and texture swaps gate on canvas content (killed a
|
camera is a no-op (killed a click-flash), and texture swaps gate on canvas content (killed a
|
||||||
periodic white flash). Coverage is now **metro-wide: 250 cameras** (`CCTV_AUSTIN_MAX_SOURCES`
|
periodic white flash). Camera icons are cyan for stills, violet for cameras with a live video feed, and amber for the active camera. Coverage is now **metro-wide: 250 cameras** (`CCTV_AUSTIN_MAX_SOURCES`
|
||||||
default 36 → 250, hard bound 300), filtered to `camera_status === TURNED_ON` (~815 live of
|
default 36 → 250, hard bound 300), filtered to `camera_status === TURNED_ON` (~815 live of
|
||||||
1,003 rows). City packs (2026-07-04): Caltrans (districts 4/7/11/3 — SF, LA, San Diego,
|
1,003 rows). City packs (2026-07-04): Caltrans (districts 4/7/11/3 — SF, LA, San Diego,
|
||||||
Sacramento; cap 300) and TfL London JamCams (cap 250) join Austin (cap 250) as keyless default
|
Sacramento; cap 300) and TfL London JamCams (cap 250) join Austin (cap 250) as keyless default
|
||||||
|
|||||||
@@ -410,6 +410,9 @@ export const IDLE_CAMERA_COLOR =
|
|||||||
export const ACTIVE_CAMERA_COLOR =
|
export const ACTIVE_CAMERA_COLOR =
|
||||||
Cesium.Color.fromCssColorString('#ffd97a').withAlpha(0.95);
|
Cesium.Color.fromCssColorString('#ffd97a').withAlpha(0.95);
|
||||||
|
|
||||||
|
export const LIVE_CAMERA_COLOR =
|
||||||
|
Cesium.Color.fromCssColorString('#b48cff').withAlpha(0.88);
|
||||||
|
|
||||||
export const IDLE_COVERAGE_COLOR =
|
export const IDLE_COVERAGE_COLOR =
|
||||||
Cesium.Color.fromCssColorString('#2fe0ff').withAlpha(0.24);
|
Cesium.Color.fromCssColorString('#2fe0ff').withAlpha(0.24);
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { isHeadingEstimated } from './headingConfidence.js';
|
|||||||
import {
|
import {
|
||||||
ACTIVE_CAMERA_COLOR,
|
ACTIVE_CAMERA_COLOR,
|
||||||
IDLE_CAMERA_COLOR,
|
IDLE_CAMERA_COLOR,
|
||||||
|
LIVE_CAMERA_COLOR,
|
||||||
ACTIVE_COVERAGE_CENTER,
|
ACTIVE_COVERAGE_CENTER,
|
||||||
IDLE_COVERAGE_CENTER_MUTED,
|
IDLE_COVERAGE_CENTER_MUTED,
|
||||||
ACTIVE_COVERAGE_CENTER_DEPTHFAIL,
|
ACTIVE_COVERAGE_CENTER_DEPTHFAIL,
|
||||||
@@ -18,6 +19,15 @@ export function createRendering({
|
|||||||
parts,
|
parts,
|
||||||
source,
|
source,
|
||||||
}) {
|
}) {
|
||||||
|
/** Icon color: active wins, then live-capable video feeds, then idle stills. */
|
||||||
|
function cameraColorFor(record) {
|
||||||
|
if (record.camera.id === layerState._activeCameraId)
|
||||||
|
return ACTIVE_CAMERA_COLOR;
|
||||||
|
if (parts.model.isVideoFeedType(record.camera.feedType))
|
||||||
|
return LIVE_CAMERA_COLOR;
|
||||||
|
return IDLE_CAMERA_COLOR;
|
||||||
|
}
|
||||||
|
|
||||||
const {
|
const {
|
||||||
focusNowMs,
|
focusNowMs,
|
||||||
getFocusTarget,
|
getFocusTarget,
|
||||||
@@ -58,10 +68,7 @@ export function createRendering({
|
|||||||
),
|
),
|
||||||
cameraDistanceFor: (position) =>
|
cameraDistanceFor: (position) =>
|
||||||
Cesium.Cartesian3.distance(camera.positionWC, position),
|
Cesium.Cartesian3.distance(camera.positionWC, position),
|
||||||
baseColorFor: (record) =>
|
baseColorFor: cameraColorFor,
|
||||||
record.camera.id === layerState._activeCameraId
|
|
||||||
? ACTIVE_CAMERA_COLOR
|
|
||||||
: IDLE_CAMERA_COLOR,
|
|
||||||
});
|
});
|
||||||
layerState._activeFocusStyleCount = result.activeCount;
|
layerState._activeFocusStyleCount = result.activeCount;
|
||||||
}
|
}
|
||||||
@@ -208,9 +215,7 @@ export function createRendering({
|
|||||||
for (const record of layerState._records) {
|
for (const record of layerState._records) {
|
||||||
const isActive = record.camera.id === activeId;
|
const isActive = record.camera.id === activeId;
|
||||||
if (record.billboard) {
|
if (record.billboard) {
|
||||||
record.billboard.color = isActive
|
record.billboard.color = cameraColorFor(record);
|
||||||
? ACTIVE_CAMERA_COLOR
|
|
||||||
: IDLE_CAMERA_COLOR;
|
|
||||||
record.billboard.scale = isActive ? 1.25 : 1.0;
|
record.billboard.scale = isActive ? 1.25 : 1.0;
|
||||||
// disableDepthTestDistance stays POSITIVE_INFINITY for every billboard
|
// disableDepthTestDistance stays POSITIVE_INFINITY for every billboard
|
||||||
// (set at creation) — see the field-test far-zoom submerge fix there.
|
// (set at creation) — see the field-test far-zoom submerge fix there.
|
||||||
|
|||||||
Reference in new issue
Block a user