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.
 
 
 
 

45 lines
1.4 KiB

%--------------------------
% @Author: Jingqiao Hu
% @Date: 2022-01-08 22:27:37
% @LastEditTime: 2022-01-08 22:28:52
% c_interPolyMMC: the intersected polygon for each mmc
% c_interPolySeed: the intersected polygon for each seed
%--------------------------
function [c_interPolyMMC, c_interPolySeed] = do_intersection(MMCs_poly, c_poly, c_nnbEdgeIDX)
ncvt = size(c_nnbEdgeIDX, 1);
% computer the intersected-idx of each polygon-cell for each MMC
c_interPolyMMC = mexInterPoly(MMCs_poly, c_poly);
% compute the intersected-idx of each polygon-cell for each seed
c_interPolySeed = cell(ncvt, 1);
parfor i = 1 : ncvt
MMCs_id = c_nnbEdgeIDX{i}; % the corresponding idx in MMCs_poly for each seed
interP = [];
for j = 1 : numel(MMCs_id)
mj = MMCs_id(j); % this MMCs_poly id
pgonID = c_interPolyMMC{mj}; % the intersected mesh-polygon with this MMC
for k = 1 : length(pgonID)
interP = [interP; pgonID];
end
end
c_interPolySeed{i} = unique(interP);
end
% % test
% for i = 1 : ncvt
% figure(4); clf
% voronoi(seeds(:,1), seeds(:,2)); hold on;
% scatter(seeds(i,1), seeds(i,2), 'filled'); hold on;
%
% pid = c_interPolySeed{i};
% for j = 1:length(pid)
% pgon = c_poly{pid(j)};
% plot(polyshape(pgon)); hold on;
% end
% end
end