You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

24 lines
815 B

3 years ago
%--------------------------
% @Author: Jingqiao Hu
% @Date: 2021-12-03 19:58:59
% @LastEditTime: 2021-12-06 16:53:59
%--------------------------
function [valid_faces] = checkValid_trimesh(nodes, faces, delta)
x = nodes(:, 1); % [n, 1]
x = x(faces); % [m, 3]
y = nodes(:, 2); % [n, 1]
y = y(faces); % [m, 3]
area = 0.5 * ((x(:,1).* y(:,2) - x(:,2).*y(:,1)) + ...
(x(:,2).* y(:,3) - x(:,3).*y(:,2)) + ...
(x(:,3).* y(:,1) - x(:,1).*y(:,3)));
[idx, ~] = find(abs(area) < delta);
nfaces = size(faces, 1);
vaild_idx = setdiff(1:nfaces, idx);
valid_faces = faces(vaild_idx, :);
% nonvalid_faces = faces(idx, :);
% valid_nodes = nodes;
% test = unique(valid_faces(:));
% figure; trimesh(valid_faces,nodes(:,1),nodes(:,2));
end