diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-03-06 10:45:00 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-03-06 10:45:00 +0300 |
commit | 7df60becb952be060bc3784f1b74dea7abcf1c59 (patch) | |
tree | cec0c4edf8747837cf30fba57ed44c68482c7456 /source | |
parent | d17e6c10df6c9ce8c7140691fc6fec4da97613dd (diff) |
BMesh: Add extended BM_vert_calc_edge_angle that takes a fallback value
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_queries.c | 9 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_queries.h | 1 |
2 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/bmesh/intern/bmesh_queries.c b/source/blender/bmesh/intern/bmesh_queries.c index 781f6eb73ad..c3be768aa09 100644 --- a/source/blender/bmesh/intern/bmesh_queries.c +++ b/source/blender/bmesh/intern/bmesh_queries.c @@ -1356,7 +1356,7 @@ void BM_edge_calc_face_tangent(const BMEdge *e, const BMLoop *e_loop, float r_ta * * \returns the angle in radians */ -float BM_vert_calc_edge_angle(BMVert *v) +float BM_vert_calc_edge_angle_ex(BMVert *v, const float fallback) { BMEdge *e1, *e2; @@ -1374,10 +1374,15 @@ float BM_vert_calc_edge_angle(BMVert *v) return (float)M_PI - angle_v3v3v3(v1->co, v->co, v2->co); } else { - return DEG2RADF(90.0f); + return fallback; } } +float BM_vert_calc_edge_angle(BMVert *v) +{ + return BM_vert_calc_edge_angle_ex(v, DEG2RADF(90.0f)); +} + /** * \note this isn't optimal to run on an array of verts, * see 'solidify_add_thickness' for a function which runs on an array. diff --git a/source/blender/bmesh/intern/bmesh_queries.h b/source/blender/bmesh/intern/bmesh_queries.h index abff55719f5..4ee5588ba0b 100644 --- a/source/blender/bmesh/intern/bmesh_queries.h +++ b/source/blender/bmesh/intern/bmesh_queries.h @@ -98,6 +98,7 @@ float BM_edge_calc_face_angle_signed(const BMEdge *e) ATTR_WARN_UNUSED_RESULT void BM_edge_calc_face_tangent(const BMEdge *e, const BMLoop *e_loop, float r_tangent[3]) ATTR_NONNULL(); float BM_vert_calc_edge_angle(BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(); +float BM_vert_calc_edge_angle_ex(BMVert *v, const float fallback) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(); float BM_vert_calc_shell_factor(BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(); float BM_vert_calc_shell_factor_ex(BMVert *v, const float no[3], const char hflag) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(); float BM_vert_calc_mean_tagged_edge_length(BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(); |