Errore mio, effettuavo il controllo in un punto sbagliato.
Grazie per il consiglio sulla glutLeaveMainLoop, ora la utilizzerò.
Ho un altra domanda, supponiamo una funzione di questo tipo:
codice:
Vector3D* operator * (const float val, const Vector3D &vector)
{
	Vector3D *ris = new Vector3D();

	ris->x = vector.x * val;
	ris->y = vector.y * val;
	ris->z = vector.z * val;

	return(ris);
}
In questo caso, come posso deallocare ris? Visto che lo devo ritornare.
Grazie.