Skip to content

Commit 5625e2b

Browse files
committed
update angle constraints
1 parent af0fae2 commit 5625e2b

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

svv/tree/branch/bifurcation.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1904,6 +1904,19 @@ def cost(x, func=tree_cost_2, d_min=d_min, terminal=terminal,
19041904
dists = numpy.array([numpy.linalg.norm(lines[0, 0:3] - x),
19051905
numpy.linalg.norm(lines[0, 3:6] - x),
19061906
numpy.linalg.norm(lines[1, 3:6] - x)])
1907+
vec1 = distal - x
1908+
vec2 = terminal - x
1909+
vec3 = proximal - x
1910+
vec1 = vec1/numpy.linalg.norm(vec1)
1911+
vec2 = vec2/numpy.linalg.norm(vec2)
1912+
vec3 = vec3/numpy.linalg.norm(vec3)
1913+
angle1 = numpy.arctan2(numpy.dot(vec1, vec3))*(180/numpy.pi)
1914+
angle2 = numpy.arctan2(numpy.dot(vec2, vec3))*(180/numpy.pi)
1915+
#angle3 = numpy.arccos(numpy.dot(vec3, vec1))*(180/numpy.pi)
1916+
if angle1 > 90 or angle2 > 90:
1917+
angle_penalty = penalty
1918+
else:
1919+
angle_penalty = 0.0
19071920
triad_penalty = numpy.max([0.0, -1.0 * numpy.min(dists - d_min)])/d_min * penalty
19081921
#[TODO] angle penalty
19091922
#[TODO] require that resulting parent vessel is at least a certain length? remove buffer region around triad
@@ -1924,7 +1937,7 @@ def cost(x, func=tree_cost_2, d_min=d_min, terminal=terminal,
19241937
#assert results > tree_scale, '{} results < {} tree_scale'.format(results, tree_scale)
19251938
#return (((np.clip(numpy.nan_to_num(results - scale, nan=2*scale+penalty), 0, 2*scale+penalty) + triad_penalty))/(scale+penalty))# + 1.0
19261939
#return -1/np.clip(numpy.nan_to_num(results - scale, nan=2*scale+penalty), 0, 2*scale+penalty)
1927-
return -1 / np.clip(numpy.nan_to_num(results + triad_penalty, nan=2 * scale + penalty), 0, 2 * scale + penalty)
1940+
return -1 / np.clip(numpy.nan_to_num(results + triad_penalty + angle_penalty, nan=2 * scale + penalty), 0, 2 * scale + penalty)
19281941
#return results
19291942
#return results
19301943
#return value

0 commit comments

Comments
 (0)