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.
 
 
 
 

34 lines
905 B

%--------------------------
% @Author: Jingqiao Hu
% @Date: 2021-12-13 20:05:32
% @LastEditTime: 2021-12-22 14:24:48
% rangesearch, for filter
%--------------------------
function [neighbors, center_nodes] = neighbor_faces(nodes_cell, faces_cell, r)
ncvt = size(nodes_cell, 1);
neighbors = cell(ncvt, 1);
center_nodes = cell(ncvt, 1);
for ele = 1:ncvt
nodes = nodes_cell{ele};
faces = faces_cell{ele};
x = nodes(:, 1);
y = nodes(:, 2);
x = x(faces); % [m,3]
y = y(faces);
cx = mean(x, 2);
cy = mean(y, 2);
Mdl = KDTreeSearcher([cx, cy]);
neighbors{ele} = rangesearch(Mdl, [cx, cy], r);
% tmp = neighbors{ele}{1};
% r1 = [cx(tmp), cy(tmp)] - repmat([cx(1), cy(1)], length(tmp), 1);
% vecnorm(r1)
center_nodes{ele} = [cx, cy];
end
end