2 c 2.1. ==> les aretes et les sommets de cette pyramide active
3 c vi(1->3) = coordonnees du sommet si
7 write (ulsort,90002) mess14(langue,2,typenh), lapyra
8 cgn write(ulsort,90112) 'faces',lapyra,(facpyr(lapyra,iaux),iaux=1,5)
12 if ( lapyra.le.nbpycf ) then
16 > aretri, facpyr, cofapy,
22 listar(iaux) = arepyr(lapyra-nbpycf,iaux)
27 call utsopy ( somare, listar, sommet )
29 if ( degre.eq.2 ) then
31 sommet(5+iaux) = np2are(listar(iaux))
35 c 2.2. ==> le parallelepipede enveloppe
37 v1(1) = coonoe(sommet(1),1)
38 v1(2) = coonoe(sommet(1),2)
39 v1(3) = coonoe(sommet(1),3)
41 v2(1) = coonoe(sommet(2),1)
42 v2(2) = coonoe(sommet(2),2)
43 v2(3) = coonoe(sommet(2),3)
45 v3(1) = coonoe(sommet(3),1)
46 v3(2) = coonoe(sommet(3),2)
47 v3(3) = coonoe(sommet(3),3)
49 v4(1) = coonoe(sommet(4),1)
50 v4(2) = coonoe(sommet(4),2)
51 v4(3) = coonoe(sommet(4),3)
53 v5(1) = coonoe(sommet(5),1)
54 v5(2) = coonoe(sommet(5),2)
55 v5(3) = coonoe(sommet(5),3)
57 xmin = min(v1(1),v2(1),v3(1),v4(1),v5(1))
58 xmax = max(v1(1),v2(1),v3(1),v4(1),v5(1))
59 ymin = min(v1(2),v2(2),v3(2),v4(2),v5(2))
60 ymax = max(v1(2),v2(2),v3(2),v4(2),v5(2))
61 zmin = min(v1(3),v2(3),v3(3),v4(3),v5(3))
62 zmax = max(v1(3),v2(3),v3(3),v4(3),v5(3))
70 c 2.3. ==> on passe en revue tous les autres sommets qui ne sont pas des
72 c . on ne s'interesse qu'a ceux qui sont contenus dans le
73 c parallelepide enveloppe de la pyramide
74 c . ensuite, on elimine les noeuds coincidents
75 c . on recherche si le noeud est a l'interieur de la pyramide
76 c cela est vrai si le noeud et un sommet sont du meme cote du
77 c plan forme par les trois autres sommets. pour cela, on regarde
78 c si les produits mixtes (ab,ac,ad) et (ab,ac,an) sont de meme
79 c signe pour les quatre permutations circulaires sur (a,b,c,d)
80 c . on elimine les cinq noeuds de la pyramide
82 c Remarque hyper importante : il ne faut faire les affectations
83 c de vn(2) et vn(3) que si c'est utile car elles coutent
84 c tres cheres (30% du temps total !)
85 c Remarque hyper importante : il vaut mieux mettre en dernier
86 c le test sur l'identite de lenoeu avec les noeuds
87 c de la pyramide car on gagne aussi 40% !
88 c En revanche, inutile de deplier davantage les tests