feat(cosmobiologia): rectificador automático — escaneo GR (núcleo)
Primer incremento del rectificador automático (#67): dado un conjunto de eventos conocidos de la vida del sujeto, barre las horas de nacimiento candidatas y devuelve la que mejor los explica vía el Sistema GR. La killer feature pro — desbloqueada al completar el GR. - cosmobiologia-render: `convergencia_minima` — medida CONTINUA de qué tan bien una carta explica un evento (suma de orbes del directo + converso más cerrados sobre un punto natal). 3 tests. - cosmobiologia-engine: módulo `rectify` — `rectificar` barre la ventana de horas candidatas; por candidata computa la carta (una vez, cacheada) y mide la convergencia GR a la edad de cada evento; elige el puntaje mínimo. Devuelve el perfil completo del barrido para que la UI lo dibuje como curva. Test end-to-end con eternal. - bridge: `compute_natal_chart`/`body_symbol`/consts GR → pub(crate). Falta: la UI (capturar eventos conocidos, lanzar el barrido, mostrar la curva y la hora rectificada). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -129,7 +129,7 @@ fn map_body(name: &str) -> Option<Body> {
|
||||
})
|
||||
}
|
||||
|
||||
fn body_symbol(b: Body) -> &'static str {
|
||||
pub(crate) fn body_symbol(b: Body) -> &'static str {
|
||||
match b {
|
||||
Body::Sun => "sun",
|
||||
Body::Moon => "moon",
|
||||
@@ -239,7 +239,7 @@ fn build_eternal_inputs(
|
||||
/// La clave incluye todos los campos de `StoredBirthData` y
|
||||
/// `StoredChartConfig` que afectan el cómputo; editar la carta invalida
|
||||
/// automáticamente la entrada.
|
||||
fn compute_natal_chart(
|
||||
pub(crate) fn compute_natal_chart(
|
||||
chart: &Chart,
|
||||
offset_minutes: i64,
|
||||
) -> Result<(Arc<NatalChart>, ChartConfig, Observer), EngineError> {
|
||||
@@ -594,13 +594,13 @@ fn build_topocentric_overlay(
|
||||
|
||||
/// Orbe máximo (grados) para que una proyección primaria entre al HUD
|
||||
/// de triggers. ~2° ≈ 2 años de vida con el key Naibod.
|
||||
const GR_HUD_ORB_DEG: f32 = 2.0;
|
||||
pub(crate) const GR_HUD_ORB_DEG: f32 = 2.0;
|
||||
/// Micro-orbe de convergencia GR: 5 minutos de arco. Un punto natal
|
||||
/// tocado a la vez por un directo y un converso dentro de este orbe
|
||||
/// es un evento de rectificación.
|
||||
const GR_EVENT_ORB_DEG: f32 = 5.0 / 60.0;
|
||||
pub(crate) const GR_EVENT_ORB_DEG: f32 = 5.0 / 60.0;
|
||||
/// Tope de triggers en el HUD tras ordenar por orbe.
|
||||
const GR_MAX_TRIGGERS: usize = 60;
|
||||
pub(crate) const GR_MAX_TRIGGERS: usize = 60;
|
||||
|
||||
/// GR dual-ring de Direcciones Primarias: a la edad pedida, cada
|
||||
/// cuerpo natal se proyecta dos veces — directa (rotación diurna
|
||||
|
||||
Reference in New Issue
Block a user