feat(earth): toolbar and zoom improvements

- Add box-sizing/padding normalization to toolbar buttons
- Remove zoom slider, implement click/hold zoom behavior (+/- buttons)
- Add 10% step on click, 1% continuous on hold
- Fix satellite init: show satellite points immediately, delay trail visibility
- Fix breathing effect: faster pulse, wider opacity range
- Add toggle-cables functionality with visibility state
- Initialize satellites and cables as visible by default
This commit is contained in:
linkong
2026-03-20 17:13:02 +08:00
parent 96222b9e4c
commit 49a9c33836
8 changed files with 103 additions and 58 deletions

View File

@@ -7,8 +7,9 @@ import { CONFIG, SATELLITE_CONFIG } from './constants.js';
let satellitePoints = null;
let satelliteTrails = null;
let satelliteData = [];
let showSatellites = false;
let showSatellites = true;
let showTrails = true;
let trailsReady = false;
let animationTime = 0;
let selectedSatellite = null;
let satellitePositions = [];
@@ -320,6 +321,10 @@ export function updateSatellitePositions(deltaTime = 0) {
satelliteTrails.geometry.attributes.position.needsUpdate = true;
satelliteTrails.geometry.attributes.color.needsUpdate = true;
if (!trailsReady && count > 0 && satellitePositions[0]?.trail.length >= TRAIL_LENGTH) {
trailsReady = true;
}
}
export function toggleSatellites(visible) {
@@ -328,14 +333,14 @@ export function toggleSatellites(visible) {
satellitePoints.visible = visible;
}
if (satelliteTrails) {
satelliteTrails.visible = visible && showTrails;
satelliteTrails.visible = visible && showTrails && trailsReady;
}
}
export function toggleTrails(visible) {
showTrails = visible;
if (satelliteTrails) {
satelliteTrails.visible = visible && showSatellites;
satelliteTrails.visible = visible && showSatellites && trailsReady;
}
}