Code covered by the BSD License

# geom3d

### David Legland (view profile)

19 Jun 2009 (Updated )

Library to handle 3D geometric primitives: create, intersect, display, and make basic computations

### Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

computeMeshEdges(faces)
```function edges = computeMeshEdges(faces)
%COMPUTEMESHEDGES Computes edges array from face array
%
%   Deprecated, use 'meshEdges' instead.
%
%   meshes3d, meshEdges
%
% ------
% Author: David Legland
% e-mail: david.legland@grignon.inra.fr
% Created: 2011-06-28,    using Matlab 7.9.0.529 (R2009b)
% Copyright 2011 INRA - Cepia Software Platform.

warning('MatGeom:deprecated', ...
'function computeMeshEdges is obsolete, use meshEdges instead');

if ~iscell(faces)
% faces is given as numeric array,
% all faces have same number of vertices, stored in nVF variable

% compute total number of edges
nFaces  = size(faces, 1);
nVF     = size(faces, 2);
nEdges  = nFaces * nVF;

% create all edges (with double ones)
edges = zeros(nEdges, 2);
for i = 1:nFaces
f = faces(i, :);
edges(((i-1)*nVF+1):i*nVF, :) = [f' f([2:end 1])'];
end

else
% faces are given as a cell array, with possibly different number of
% vertices
nFaces  = length(faces);

% compute number of edges
nEdges = 0;
for i = nFaces
nEdges = nEdges + length(faces{i});
end

% allocate memory
edges = zeros(nEdges, 2);
ind = 0;

% fillup edge array
for i = 1:nFaces
f = faces{i};
nVF = length(f);
edges(ind+1:ind+nVF, :) = [f' f([2:end 1])'];
ind = ind + nVF;
end

end

% keep only unique edges, and return sorted result
edges = sortrows(unique(sort(edges, 2), 'rows'));
```