Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/bmesh/intern/bmesh_queries.c16
-rw-r--r--source/blender/bmesh/intern/bmesh_queries.h2
2 files changed, 14 insertions, 4 deletions
diff --git a/source/blender/bmesh/intern/bmesh_queries.c b/source/blender/bmesh/intern/bmesh_queries.c
index e5acd19f927..c655fe4cc20 100644
--- a/source/blender/bmesh/intern/bmesh_queries.c
+++ b/source/blender/bmesh/intern/bmesh_queries.c
@@ -1202,7 +1202,7 @@ void BM_loop_calc_face_tangent(BMLoop *l, float r_tangent[3])
*
* \return angle in radians
*/
-float BM_edge_calc_face_angle(const BMEdge *e)
+float BM_edge_calc_face_angle_ex(const BMEdge *e, const float fallback)
{
if (BM_edge_is_manifold(e)) {
const BMLoop *l1 = e->l;
@@ -1210,9 +1210,13 @@ float BM_edge_calc_face_angle(const BMEdge *e)
return angle_normalized_v3v3(l1->f->no, l2->f->no);
}
else {
- return DEG2RADF(90.0f);
+ return fallback;
}
}
+float BM_edge_calc_face_angle(const BMEdge *e)
+{
+ return BM_edge_calc_face_angle_ex(e, DEG2RADF(90.0f));
+}
/**
* \brief BMESH EDGE/FACE ANGLE
@@ -1222,7 +1226,7 @@ float BM_edge_calc_face_angle(const BMEdge *e)
*
* \return angle in radians
*/
-float BM_edge_calc_face_angle_signed(const BMEdge *e)
+float BM_edge_calc_face_angle_signed_ex(const BMEdge *e, const float fallback)
{
if (BM_edge_is_manifold(e)) {
BMLoop *l1 = e->l;
@@ -1231,9 +1235,13 @@ float BM_edge_calc_face_angle_signed(const BMEdge *e)
return BM_edge_is_convex(e) ? angle : -angle;
}
else {
- return DEG2RADF(90.0f);
+ return fallback;
}
}
+float BM_edge_calc_face_angle_signed(const BMEdge *e)
+{
+ return BM_edge_calc_face_angle_signed_ex(e, DEG2RADF(90.0f));
+}
/**
* \brief BMESH EDGE/FACE TANGENT
diff --git a/source/blender/bmesh/intern/bmesh_queries.h b/source/blender/bmesh/intern/bmesh_queries.h
index a057d120be1..ab20b1c98ab 100644
--- a/source/blender/bmesh/intern/bmesh_queries.h
+++ b/source/blender/bmesh/intern/bmesh_queries.h
@@ -73,7 +73,9 @@ void BM_loop_calc_face_normal(BMLoop *l, float r_normal[3]);
void BM_loop_calc_face_direction(BMLoop *l, float r_normal[3]);
void BM_loop_calc_face_tangent(BMLoop *l, float r_tangent[3]);
+float BM_edge_calc_face_angle_ex(const BMEdge *e, const float fallback);
float BM_edge_calc_face_angle(const BMEdge *e);
+float BM_edge_calc_face_angle_signed_ex(const BMEdge *e, const float fallback);
float BM_edge_calc_face_angle_signed(const BMEdge *e);
void BM_edge_calc_face_tangent(const BMEdge *e, const BMLoop *e_loop, float r_tangent[3]);