%-------------------------- % @Author: Jingqiao Hu % @Date: 2021-12-08 20:00:42 % @LastEditTime: 2021-12-11 20:22:12 % [t1,t2,t3, x, y, len, sin(theta)] %-------------------------- function [MMCs, nc_local] = MMC_init_cvt(t, vnodes_cell, vedges_cell) ncvt = size(vnodes_cell, 1); nc_local = zeros(ncvt, 1); MMCs = cell(ncvt, 1); % saves all properties, [t1,t2,t3,x, y, len, sin(theta)] for ele = 1 : ncvt nodes = vnodes_cell{ele}; edges = vedges_cell{ele}; nedges = size(edges, 1); nc_local(ele) = nedges; % the other props nodes1 = nodes(edges(:, 1), :); nodes2 = nodes(edges(:, 2), :); nodes3 = (nodes1 + nodes2) / 2; x = nodes3(:,1); y = nodes3(:,2); len = vecnorm(nodes2 - nodes1, 2, 2); sina = abs(nodes2(:,2) - nodes1(:,2)) ./ len; dir = (nodes2(:,2) < nodes1(:,2)) .* (nodes2(:,1) < nodes1(:,1)) + ... (nodes2(:,2) > nodes1(:,2)) .* (nodes2(:,1) > nodes1(:,1)); sina(dir < 1) = -sina(dir < 1); mmc_prop = zeros(nedges, 7); mmc_prop(:, 1:3) = t; mmc_prop(:, 4) = x; mmc_prop(:, 5) = y; mmc_prop(:, 6) = len/2; mmc_prop(:, 7) = sina; MMCs{ele} = mmc_prop; end end