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
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
|