def barycentric(verts, p):
ab = verts[2] - verts[0]
ac = verts[1] - verts[0]
pa = verts[0] - p
u = utils.tri_cross(
[ab[0], ac[0], pa[:, 0]],
[ab[1], ac[1], pa[:, 1]])
v = [u[0] / u[2], u[1] / u[2]]
bc = [1. - v[0] - v[1], v[1], v[0]]
valid = tf.logical_and(
tf.abs(u[2]) >= 1.0,
tf.reduce_all(tf.stack(bc, axis=1) >= 0, axis=1))
return bc, valid
评论列表
文章目录