BMesh API: optionally pass fallback to BM_edge_calc_face_angle functions
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user