Rapidement, nous avons été confrontés au problème de l'élimination des faces cachées. La solution
adoptée a été « d'orienter » les faces par les normales sortantes. La face sera alors visible (sous
l'hypothèse que l'observateur n'est pas à l'intérieur de l'objet) si le produit scalaire de la normale
et d'un vecteur dirigé de l'observateur vers un point de la face est strictement négatif. Pour simplifier
l'écriture de la fonction de sélection des faces, le type face
s'est vu ajouter un index pointant
sur sa normale dans le tableau des normales maintenant inclus dans le résultat de la fonction
cree_cube
. De plus, toujours dans un souci de simplification, les faces sont rangées dans une liste,
ce qui permet d'appliquer une sélection récursive. Bien évidemment, il a fallu modifier la fonction de
tracé de notre cube (cf. PROGRAMME 9).