@@ -1899,7 +1899,7 @@ def cost(x, func=tree_cost_2, d_min=d_min, terminal=terminal,
18991899 terminal_flow = tree .parameters .terminal_flow , root_pressure = tree .parameters .root_pressure ,
19001900 terminal_pressure = tree .parameters .terminal_pressure , radius_exponent = tree .parameters .radius_exponent ,
19011901 length_exponent = tree .parameters .length_exponent , triad = triad , lines = lines , penalty = penalty ,
1902- scale = tree_scale ,connectivity = tree .connectivity ):
1902+ scale = tree_scale ,connectivity = tree .connectivity , parent_vessel = parent_vessel ):
19031903 x = triad (x )
19041904 #dists = close_exact_point(lines, x)
19051905 dists = numpy .array ([numpy .linalg .norm (lines [0 , 0 :3 ] - x ),
@@ -1920,13 +1920,14 @@ def cost(x, func=tree_cost_2, d_min=d_min, terminal=terminal,
19201920 angle_penalty = penalty
19211921 else :
19221922 angle_penalty = 0.0
1923- if parent_vessel != numpy .nan :
1923+ if not isinstance ( parent_vessel , type ( numpy .nan )) :
19241924 parent_vessel = int (parent_vessel )
19251925 vec4 = data [parent_vessel , 3 :6 ] - data [parent_vessel , 0 :3 ]
19261926 vec4 = vec4 / numpy .linalg .norm (vec4 )
19271927 angle3 = numpy .arccos (numpy .dot (vec3 , vec4 ))* (180 / numpy .pi )
19281928 if angle3 > 90 :
19291929 angle_penalty += penalty
1930+ angle_penalty = 0.0
19301931 triad_penalty = numpy .max ([0.0 , - 1.0 * numpy .min (dists - d_min )])/ d_min * penalty
19311932 #[TODO] angle penalty
19321933 #[TODO] require that resulting parent vessel is at least a certain length? remove buffer region around triad
0 commit comments