calc_barycentric = (pt, vert_a, vert_b, vert_c) => {
const ab = sub(vert_b, vert_a);
const ac = sub(vert_c, vert_a);
const ap = sub(pt, vert_a);
const nac = [vert_a[1] - vert_c[1], vert_c[0] - vert_a[0]];
const nab = [vert_a[1] - vert_b[1], vert_b[0] - vert_a[0]];
const bary_beta = dot(ap, nac) / dot(ab, nac);
const bary_gamma = dot(ap, nab) / dot(ac, nab);
const bary_alpha = 1.000 - bary_beta - bary_gamma;
return [bary_alpha, bary_beta, bary_gamma];
}