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