Laboratorio di Interfacce Grafiche
Esercizio 2 (OpenGL - primitive e attributi)
Partite dal programma esempio:
primitiv.c che apre una
canvas per OpenGL e disegna primitive 2D.
Il makefile
e' sempre lo stesso.
Arricchire il programma di un'interfaccia che permetta di:
-
Scegliere il tipo di primitiva che si vuole utilizzare:
GL_POINTS (come e' adesso),
GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES,
GL_TRIANGLE_FAN, GL_TRIANGLE_STRIP, GL_QUADS, GL_QUAD_STRIP, GL_POLYGON.
A tale scopo utilizzare un menu' con voci in modalita' "radio" (in quanto
corrispondenti a scelte mutuamente esclusive).
-
Notare che per alcune primitive la configurazione di vertici data
non e' corretta. Quali sono queste primitive?
Eventualmente cercare per queste primitive una configurazione di
vertici alternativa, oppure disabilitare la scelta di dette primitive.
-
Cambiare gli attributi che influenzano l'aspetto della primitiva:
point size, line width, polygon mode, colore.
A questo scopo utilizzare il tipo di oggetto XForms opportuno tenendo conto
che:
- point size e line width assumono valori numerici del tipo:
1.0, 2.0, 3.0,...
- polygon mode assume uno di tre valori fissati:
GL_POINT, GL_LINE, GL_FILL
- il colore e' specificato da tre valori di rosso,
verde, blu compresi nell'intervallo da 0.0 a 1.0
Per chi non ne ha abbastanza:
-
Gestire abilitazioni e disabilitazioni dei vari elementi di interfaccia.
Per esempio, se stiamo visualizzando punti disabilitare la modifica di
attributi che non si applicano ai punti (line width, polygon mode), ecc.
-
Gestire il colore vertice-per-vertice.
Dare cioe' all'utente la possibilita' di cambiare il colore o
globalmente all'intera primitiva oppure di selezionare uno dei 16 vertici
(per esempio immettendo un numero da 1 a 16) e cambiare il colore solo a
quel vertice.