# Capitolo 4: Gestione di Scenari e Target Questo capitolo illustra il flusso di lavoro pratico per creare, modificare e gestire gli scenari di simulazione e i target che li compongono. Il cuore di questa attività si svolge attraverso l'Editor di Traiettoria e l'Editor dei Waypoint. ## 4.1. Creare, Salvare e Caricare uno Scenario La gestione degli scenari avviene tramite il **Pannello di Controllo Scenari** (descritto nel Capitolo 3.3). Il flusso tipico è: 1. **Creazione:** Si preme il pulsante `New...` e si assegna un nome al nuovo scenario. L'applicazione crea uno scenario vuoto e lo seleziona. 2. **Popolamento:** Si aggiungono uno o più target utilizzando il pannello "Editing scenario" (vedi sezione successiva). 3. **Salvataggio:** Le modifiche vengono salvate periodicamente tramite il pulsante `Save`. Utilizzando `Save As...` è possibile creare una copia dello scenario corrente con un nuovo nome. 4. **Caricamento:** Utilizzando il menu a tendina, è possibile passare da uno scenario all'altro. L'applicazione caricherà la configurazione del target dal file `.json` corrispondente. Tutti gli scenari sono salvati come file `JSON` individuali all'interno di una cartella `scenarios/` situata nella directory principale dell'applicazione. ## 4.2. L'Editor di Traiettoria (`TrajectoryEditorWindow`) Questa finestra di dialogo è il principale strumento per definire il comportamento di un singolo target. Si apre quando si aggiunge un nuovo target o se ne modifica uno esistente. *(Placeholder per l'immagine)* **Descrizione dell'Immagine:** `editor_traiettoria.png` *Qui ti aspetti uno screenshot della `TrajectoryEditorWindow`. Evidenzia le due aree principali:* 1. *Un riquadro a sinistra etichettato "**Lista Waypoint e Controlli**", che mostra la tabella con le manovre e i pulsanti "Add", "Edit", "Remove".* 2. *Un riquadro a destra etichettato "**Anteprima Traiettoria e Controlli di Playback**", che mostra il PPI con la traccia disegnata e i pulsanti Play/Pause/Stop.* --- La finestra è divisa in due sezioni: * **A sinistra: Lista dei Waypoint** * Questa tabella elenca in sequenza tutte le manovre (waypoint) che compongono la traiettoria del target. * I pulsanti `Add`, `Edit`, `Remove` permettono di gestire la lista. * L'opzione `Use Spline` consente di interpolare i punti della traiettoria utilizzando una curva Catmull-Rom per un movimento più fluido (richiede almeno 4 waypoint). * **A destra: Anteprima della Traiettoria** * Un PPI dedicato mostra un'anteprima statica del percorso completo del target. * I controlli di playback (`Play`, `Pause`, `Stop`, `Speed`) permettono di avviare una simulazione visiva della traiettoria per verificarne il comportamento dinamico prima di salvarla. Lo slider sottostante consente di navigare rapidamente lungo la timeline della simulazione. ## 4.3. L'Editor dei Waypoint e le Manovre (`WaypointEditorWindow`) Questa è la finestra modale in cui si definiscono i parametri di una singola manovra. Il contenuto della finestra cambia dinamicamente in base al "Tipo di Manovra" selezionato. *(Placeholder per l'immagine)* **Descrizione dell'Immagine:** `editor_waypoint_dynamic.png` *Qui ti aspetti uno screenshot della `WaypointEditorWindow` con la "Dynamic Maneuver" selezionata. Evidenzia le sezioni chiave:* 1. *Il menu a tendina "Maneuver Type".* 2. *La sezione "Turn Definition" con le opzioni "By G-Force" e "By Turn Rate".* 3. *I campi per le accelerazioni longitudinali e verticali.* --- ### 4.3.1. Fly to Point Questa manovra è **obbligatoria come primo waypoint** di ogni traiettoria, poiché definisce lo stato iniziale del target. * **Parametri Principali:** * `Target Range`, `Target Azimuth`, `Target Altitude`: Definiscono la posizione iniziale del target in coordinate polari relative all'origine della simulazione. * `Initial Velocity`, `Initial Heading`: Definiscono il vettore velocità iniziale del target. * `Duration to Point`: Se usato come waypoint successivo al primo, questo parametro definisce il tempo che il target impiegherà per raggiungere le coordinate specificate. La velocità risultante viene calcolata e mostrata automaticamente. ### 4.3.2. Fly for Duration Questa manovra istruisce il target a mantenere uno stato cinematico costante. * **Parametri Principali:** * `Duration`: Per quanti secondi mantenere lo stato. * `Constant Velocity`, `Constant Heading`, `Constant Altitude`: I valori cinematici da mantenere. ### 4.3.3. Dynamic Maneuver Questa è la manovra più complessa e potente, che permette di simulare virate, accelerazioni e cabrate/picchiate. Il movimento viene calcolato integrando le accelerazioni nel tempo. * **Parametri Principali:** * `Duration`: La durata della manovra. * `Maneuver Speed`: La velocità di riferimento per il calcolo della virata. * **Turn Definition:** È possibile definire la virata in due modi equivalenti: 1. **By G-Force:** Specificando l'accelerazione laterale in 'g'. Questo è il modo più comune in ambito aeronautico. 2. **By Turn Rate:** Specificando la velocità angolare in gradi al secondo (°/s). * **Soluzione Tecnica:** I due campi sono sincronizzati. Modificandone uno, l'altro viene ricalcolato automaticamente in base alla velocità di manovra, usando la formula `a = v * ω`, dove `a` è l'accelerazione, `v` è la velocità e `ω` è la velocità angolare. * **Longitudinal Accel (g):** Accelerazione lungo l'asse di volo del target (per accelerare o decelerare). * **Vertical Accel (g):** Accelerazione lungo l'asse verticale del target (per cabrate o picchiate). La combinazione di questi waypoint permette di costruire traiettorie estremamente varie e realistiche, adatte a coprire un'ampia gamma di scenari di test.