Para a visualização da trajetória e ângulos da aeronave foi criado
uma estrutura chamada (OpenGL Viewport). Todos as funções e
procedimentos relacionados a parte de desenho estão separados aqui.
Nesta estrutura estão sendo guardados os dados de Camera, largura e
altura da janela, Janela correspondente e janela OpenGl, além das opções
de desenho relativos a cada instância desta estrutura.
Camera contém os dados relativos ao vetor de rotação ,
(Quaternion), este vetor é calculado com o auxilio de funções
trackball() e add_quats(), também temos, posição do observador em
relação ao vetor de rotação
, centro da camera, e
distância em relacao ao centro.
float quat[4]; |
float zoom;
float distance; float pos[3]; |
float target[3]; |
CAMERA *cam; |
float width, height; |
// glview Options |
---|
int showAircraft; |
int showFlightPath; |
int showAxes; |
int showAircraftAxes; |
int showGrid; |
int showValues; |
int targetAircraft; |
int canRotate; |
int perspective; |
int pilotView; |
GtkWidget *window; |
GtkWidget *glarea; |
Interface para a utilização do GLView :
Cria novas viewports, se
, uma nova janela será crida
GLView *new_glview(int width, int height, GtkWidget *window);
void glview_close(GtkWidget *widget, GdkEventAny *event, gpointer data);
,
,
são arquivos de domino público e nos auxiliam
na implementação da rotação da camera.
,