Documentación de Celestia

 
  4. CELX SCRIPTS  
  4.7. Funcionamiento de celx en celestia  
 

El funcionamiento de Celestia podría ser visto como la repetición de las siguientes acciones:

  • Se comprueba si el usuario ha introducido algún cambio para realizarlo (cambiar la orientación, activar la visualización de las órbitas,…).
  • Se actualiza el tiempo de la simulación.
  • Se actualiza la posición de la cámara.
  • Se dibujan todos los objetos activados en la configuración actual.

Si se está ejecutando un script CELX, éste es ejecutado justo antes de la última acción. Celestia pasa el control al intérprete de LUA que continua con la ejecución del programa en el punto en que se quedara en su anterior ejecución. Cuando se llama a un método de CELX en el script, el intérprete llama a una función que convierte los parámetros del método de los tipos de LUA a los tipos de C++, llama al método indicado de Celestia y, en caso de ser necesario, convierte el valor retornado del tipo de C++ al tipo de LUA (esta conversión es necesaria al estar Celestia programado en C++). Al llamar a estos métodos, el intérprete no devuelve el control a Celestia y continúa su ejecución, por lo que es necesario llamar a la función wait para que Celestia tome el control y pueda continuar la ejecución del bucle de acciones descrito. Por ejemplo, si se llama varias veces a un método para fijar la posición de la cámara en el simulador pero sólo se llama a wait al final, únicamente se observará en Celestia el cambio a la última posición especificada. En la versión actual de Celestia, si se olvida llamar a la función wait al final del script, se terminará automáticamente si no continúa ejecutando sentencias y han transcurrido más de cinco segundos de espera, evitando así que el simulador quede bloqueado.

 
 
Índice general