www.pudn.com > distmesh.rar > boundedges.m, change:2006-02-13,size:622b


function e=boundedges(p,t) 
%BOUNDEDGES Find boundary edges from triangular mesh 
%   E=BOUNDEDGES(P,T) 
 
%   Copyright (C) 2004-2006 Per-Olof Persson. See COPYRIGHT.TXT for details. 
 
% Form all edges, non-duplicates are boundary edges 
edges=[t(:,[1,2]); 
       t(:,[1,3]); 
       t(:,[2,3])]; 
node3=[t(:,3);t(:,2);t(:,1)]; 
edges=sort(edges,2); 
[foo,ix,jx]=unique(edges,'rows'); 
vec=histc(jx,1:max(jx)); 
qx=find(vec==1); 
e=edges(ix(qx),:); 
node3=node3(ix(qx)); 
 
% Orientation 
v1=p(e(:,2),:)-p(e(:,1),:); 
v2=p(node3,:)-p(e(:,1),:); 
ix=find(v1(:,1).*v2(:,2)-v1(:,2).*v2(:,1)>0); 
e(ix,[1,2])=e(ix,[2,1]);