6.2.4.3 Azioni di Ritorno dei Comandi di Shell
Pre_Scene_Return=s | Imposta i comandi che POV-Ray esegue in caso di errore durante la fase antecedente alla scena |
Pre_Frame_Return=s | Imposta i comandi che POV-Ray esegue in caso di errore durante la fase antecedente ad un fotogramma |
Post_Scene_Return=s | Imposta i comandi che POV-Ray esegue in caso di errore durante la fase seguente alla scena |
Post_Frame_Return=s | Imposta i comandi che POV-Ray esegue in caso di errore durante la fase seguente ad un fotogramma |
User_Abort_Return=s | Imposta i comandi che POV-Ray esegue in caso di interruzione della scena da parte di colui che utilizza il programma |
Fatal_Error_Return=s | Imposta i comandi che POV-Ray esegue in caso di errore fatale |
Per questi comandi non esistono i corrispondenti
parametri. Non possono quindi essere usati nella linea di comando, ma solamente
impostati nei file .ini.
Molti sistemi operativi specificano in caso di errore un codice che meglio
definisca il tipo di errore in cui si è incorsi. Quando POV-Ray
esegue un comando di una shell può far uso di questi codici e regolarsi
di conseguenza a seconda che il codice sia zero o no. Anche POV-Ray utilizza
questi codici e considera un codice di errore di zero come operazione eseguita
con successo, 1 per un errore fatale e 2 per l'interruzione causata dall'utente.
Queste azioni sono impostate scrivendo una sola lettera nell'opzione relativa
(una di quelle elencate qui sopra). Le azioni possibili sono :
I | ignorare il codice |
S | evitare un passo |
A | evitare tutti i passi |
Q | chiudere POV-Ray immediatamente |
U | l'utente ha interrotto il programma |
F | si è creato un errore fatale in POV-Ray |
Per esempio se l'impostazione Pre_Frame_Command
richiama un programma esterno che genera
gli height-field e questa utility fallisce, allora si avrà un codice
diverso da zero. E' possibile che a questo punto si desideri comunque interrompere
il processo. L'opzione Pre_Frame_Return=F
permetterà a POV-Ray di interrompere l'esecuzione dell'operazione
nel caso in cui l'esecuzione di Pre_Frame_Command
dia luogo ad un codice diverso da zero.
Qualche volta si può gioire per un codice diverso da zero. Supponendo
ad esempio che si voglia vedere se un determinato fotogramma sia già
stato renderizzato, allora si può usare la lettera S
per evitare questo fotogramma nel caso sia già stato renderizzato.
Molti programmi di utilità riportano errori se non si è riusciti
a trovare un determinato file. Per esempio il comando
pkzip -V myscene mysce012.tga
richiama pkzip per vedere l'archivio myscene.zip per il file
mysce012.tga. Se il file non è nell'archivio pkzip darà
un codice diverso da zero.
Altre volte è possibile voler interrompere il ciclo se il file è
stato trovato. Quindi sarà necessario invertire l'azione in modo
che eviti di continuare se il codice è zero e continui se non è
zero. Per compiere questa inversione è necessario premettere alla
lettera il segno "-" (anche "!" determina la stessa
azione dal momento che in molti programmi è proprio questo il segno
di negazione).
Pre_Frame_Return=S | POV-Ray si fermerà se il codice segnala un errore (non-zero) e procederà normalmente se non ci sono errori (zero). |
Pre_Frame_Return=-S | POV-Ray si fermerà se il codice non segnala errori (zero) e procederà normalmente se ci sono errori (non-zero). |
La lettera assegnata di default a tutte le
opzioni è I,
che significa che qualunque errore si sia verificato durante l'utilizzo
di un programma di utilità questo verrà ignorato.
POV-Ray continuerà semplicemente a fare ciò che stava facendo
prima dell'utilizzo di quel programma, le altre azioni dipenderanno dal
contesto. E' anche possibile che si desideri riferirsi al loop dell'animazione
nella sezione precedente. L'azione per ogni shell è la seguente.
Al ritorno di User_Abort_Command
se c'è un'azione che è stata specificata...
F trasforma
l'interruzione dell'utente in un errore fatale.
Esegue il comando Fatal_Error_Command,
se c'è.
Esce da POV-Ray con codice 1.
S,
A,
Q,
o U procede
con l'interruzione. Esce da POV-Ray con codice 2.
Di ritorno dal Fatal_Error_Command procede
comunque con l'errore fatale. Esce da POV-Ray con codice 1.
Di ritorno dal Pre_Scene_Command,
Pre_Frame_Command,
Post_Frame_Command
o Post_Scene_Commands
se c'è un'azione che è stata specificata...
F genera
un errore fatale.
Esegue il comando Fatal_Error_Command,
se c'è.
Esce da POV-Ray con codice 1.
U crea
un'interruzione dell'utente.
Esegue il comando User_Abort_Command,
se c'è.
Esce da POV-Ray con un codice 2.
Q chiude
POV-Ray immediatamente.
Si comporta come se POV-Ray non fosse mai stato eseguito.
Non esegue i successivi comandi di shell (nemmeno Post_Scene_Command)
ed esce da POV-Ray con errore di codice 0.
Di ritorno dal comando Pre_Scene_Command
se è stata specificata un'azione allora...
S evita
di renderizzare tutti i fotogrammi.
Si comporta come se tutti i fotogrammi fossero renderizzati normalmente.
Non esegue Pre_Frame_Command
o Post_Frame_Commands.
Eseguirà il comando Post_Scene_Command,
se c'è.
Esce da POV-Ray con codice 0.
Nelle precedenti tabelle significava tralasciare il passo #4.
A tralascia
tutta la scena. E' identico a Q
(quit).
Nelle precedenti tabelle significava evitare tutti i passi fino al #6.
Di ritorno dal comando Pre_Frame_Command
se è stata specificata un'azione allora...
S tralascia
solo questo fotogramma.
Facendo così questo fotogramma non verrà creato.
Non esegue il comando Post_Frame_Command.
Procede con il fotogramma successivo.
Nelle precedenti tabelle significa saltare il passo #4b e #4c ma tornare
indietro come necessario per l'animazione al passo #4d.
A non
renderizza questo fotogramma e tutti gli altri.
In questo modo la scena viene completata normalmente.
Non viene eseguito nessun comando impostato con Post_Frame_Commands.
Viene eseguito il Post_Scene_Command,
se c'è.
Si esce da POV-Ray con un codice di errore 0.
Nelle precedenti tabelle questo significa evitare il resto del passo #4
e procedere al passo #5.
Di ritorno dal comando Post_Frame_Command
se è stata specificata un'azione allora...
S tralascia
tutti i fotogrammi seguenti. Facendo così l'animazione verrà
creata normalmente.
Esegue il comando Post_Scene_Command.
Esce da POV-Ray con codice 0.
Nella tabella precedente questo significa tralasciare dal passo #4 e procedere
al passo 5.
A lo
stesso che S.
Di ritorno dal comando Post_Scene_Command
se c'è un'azione impostata allora..
S o
A lo
stesso di I.
![]() |
![]() |
![]() |