fix(satellites): prevent selecting satellites on far side of earth
- Add isSatelliteFrontFacing() to detect if satellite is on visible side - Filter satellites in hover and click handlers by front-facing check - Apply same logic as cables for consistent back-face culling
This commit is contained in:
@@ -415,6 +415,20 @@ export function getSatellitePositions() {
|
||||
return satellitePositions;
|
||||
}
|
||||
|
||||
export function isSatelliteFrontFacing(index, camera) {
|
||||
if (!earthObjRef || !camera) return true;
|
||||
const positions = satellitePositions;
|
||||
if (!positions || !positions[index]) return true;
|
||||
|
||||
const satPos = positions[index].current;
|
||||
if (!satPos) return true;
|
||||
|
||||
const toCamera = new THREE.Vector3().subVectors(camera.position, earthObjRef.position).normalize();
|
||||
const toSat = new THREE.Vector3().subVectors(satPos, earthObjRef.position).normalize();
|
||||
|
||||
return toCamera.dot(toSat) < 0;
|
||||
}
|
||||
|
||||
let earthObjRef = null;
|
||||
let sceneRef = null;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user