%-------------------------- % @Author: Jingqiao Hu % @Date: 2021-12-29 20:23:06 % @LastEditTime: 2022-01-29 11:34:31 % for each voronoi edge % update the MMC variables based on voronoi-edges % [t, x1, y1, z1, x2, y2, z2]; %-------------------------- function MMC = update_MMCs(vedges, T, c_nnbSeedIDX) %% MMC properties nedge = size(vedges, 1); Tedge = T_edge2seed(T, c_nnbSeedIDX, nedge); MMC = [Tedge, vedges]; % [t, x1, y1, z1, x2, y2, z2]; %% the polytope of each MMC % for i = 1:size(vedges, 1) % p1 = vedges(i, 1:3); % p2 = vedges(i, 4:6); % %# a plane is a*x+b*y+c*z+d=0 % %# [a,b,c] is the normal. Thus, we have to calculate % %# d and we're set % n1 = p2 - p1; % d1 = -p1 * n1'; %'# dot product for less typing % n2 = p1 - p2; % d2 = -p2 * n2'; %'# dot product for less typing % end end % projection to width for each edge based on the distance to two neighbor seed function Tedge = T_edge2seed(Tseed, c_nnbSeedIDX, nedge) Tedge = zeros(nedge, 1); parfor i = 1 : nedge sid = c_nnbSeedIDX{i}; t = Tseed(sid); % 2*1 Tedge(i) = mean(t); end end