# La Luna en la barra de datos

`js/luna-actual.js` dibuja una miniatura de 160 × 160 píxeles sobre Canvas 2D. Utiliza el mapa equirectangular NASA ya incluido en `SolarAssets.moon`, sin descargas nuevas ni licencias adicionales. Los créditos y condiciones de ese recurso siguen en `recursos-v02.md`.

La cámara virtual se sitúa en el centro de la Tierra. El norte lunar se proyecta verticalmente hacia arriba. Las posiciones y el cuaternión lunar de `SolarPhysics.calculate()` determinan tanto la fase como la libración: el mapa no es una imagen fija girada a mano. Su orientación no es la vertical del horizonte de Granada ni de otra ubicación; para eso está «Mi cielo».

La miniatura usa las posiciones geométricas simultáneas del visor. La fracción numérica procede de Astronomy Engine y puede diferir mínimamente por la definición de las efemérides; las pruebas comprueban que la discrepancia queda por debajo de 0,01 puntos porcentuales en las cuatro fases ensayadas. Durante un eclipse, los píxeles aplican el mismo modelo de solapamiento angular de Sol y Tierra de `SolarEclipses`. El rojo de la totalidad y la exposición son ilustrativos, no una predicción del brillo atmosférico. La esfera no tiene relieve geométrico ni normal map a esta resolución.

## Integración

```js
const lunaActual = new SolarCurrentMoon(
  document.getElementById('current-moon-canvas'),
  document.getElementById('current-moon-description'),
);
lunaActual.update(datosDeSolarPhysics);
lunaActual.setActive(false); // conservar datos sin rasterizar
lunaActual.setActive(true);  // dibujar el último instante, si cambió
lunaActual.destroy();
```

Cargar `luna-actual.js` después de `eclipses.js` y antes de `principal.js`. No depende de Three.js. `update()` recibe los mismos datos que la interfaz general; no crea temporizadores ni un bucle de animación. Una miniatura idéntica no se vuelve a dibujar. El intervalo de caché es de un minuto de tiempo simulado, y de un segundo cuando la geometría permite un eclipse. Cambiar de fecha actualiza la vista; cargar la textura también invalida la caché aunque la simulación esté pausada.

La textura se reduce a 1024 × 512 para su lectura en CPU. Si falta la imagen, se mantiene una esfera neutra con la fase correcta y un aviso discreto. Si el navegador no admite Canvas 2D, la descripción lo indica y el resto de la aplicación sigue funcionando. La descripción accesible incluye fase y fracción iluminada.

## Comprobación

`node tests/luna-actual.cjs` comprueba las cuatro fases contra la fracción astronómica, libración frente al punto subterrestre, norte y longitud del mapa, sombra de un eclipse total, caché, reactivación, ausencia de contexto e imágenes que llegan con el reloj pausado.
