2 % e2q (nedx2) Edges to Nodes
3 % e2q(l,il) : indice dans le tableau Th.q du sommet il de l'arete l
4 % e2t (nedx2) Edges to Triangles
5 % e2t(l,1) : indice dans le tableau Th.me du 1er triangle adjacent
7 % e2t(l,2) : indice dans le tableau Th.me du 2eme triangle adjacent
8 % a l'arete l si arete interne sinon 0
9 % e2n (nedx2) : Edges to local number
10 % e2n(l,1) : numero local de l'arete dans le 1er triangle (voir e2t)
11 % e2n(l,2) : numero local de l'arete dans le 2eme triangle (voir e2t)
12 % s'il existe. 0 sinon.
14 % e2do(l) : +1 si l'arete est dans le sens direct pour le 1er triangle (voir e2t)
16 % e2be (nbex4) : nbe number of boundary edges
17 % e2be(l,1) : numero de l'arete du bord
18 % e2be(l,2) : +1 si l'arete est dans le "bon" sens (sens de Th.be)
20 % e2be(l,3) : label du bord
21 % e2be(l,4) : permet de reconstruire le tableau Th.be
22 % I=find(e2be(:,2)~=1);
24 % be=e2q(e2be(:,1),:);
25 % be(I,:)=fliplr(be(I,:));
28 % be' <=> Correspond a Th.be
31 NumLocEdges=[ 1 2 ;2 3; 3 1]; % Numerotation locale des aretes
33 %NumLocEdges=[ 2 3 ;3 1; 1 2];
35 GlobalListEdges=[reshape(Th.me(NumLocEdges(:,1),:),3*Th.nme,1),reshape(Th.me(NumLocEdges(:,2),:),3*Th.nme,1)];
37 Edges2Elements=ones(3,1)*[1:Th.nme];
38 Edges2Elements=Edges2Elements(:);
40 Edges2LocalNum=[1; 2 ;3]*ones(1,Th.nme);
41 Edges2LocalNum=Edges2LocalNum(:);
43 [GlobalListEdgesSort,IS]=sort(GlobalListEdges,2);
44 PermutEdges=IS(:,2)-IS(:,1); % Contient 1 si arete dans le sens direct pour le triangle considéré
47 [e2q,IG,IE]=unique(GlobalListEdgesSort,'rows','first');
48 e2t=Edges2Elements(IG,:);
49 e2n=Edges2LocalNum(IG,:);
50 e2do=PermutEdges(IG); %
52 [e2ql,IGl,IEf]=unique(GlobalListEdgesSort,'rows','last');
53 e2tl=Edges2Elements(IGl,:);
54 e2nl=Edges2LocalNum(IGl,:);
63 %e2q(I,:); % Aretes du bord
66 %[BE1,J]=sort(BE,1); %
69 [BE1,J1]=sort(BE,2); % BE(l,J1(l,:)) == BE1(l,:)
70 [BE2,J2]=sortrows(BE1,[1 2]); % BE2 == BE1(J2,:)
73 e2be=[I JJ Th.bel(J2)' J2];
74 %[BE(K,:), e2q(I,:) Th.bel(K)']