Add BM_edge_calc_squared_length() query function

Same as BM_edge_calc_length(), but avoids square root for cases where
only comparison is needed.
This commit is contained in:
Nicholas Bishop
2012-12-30 18:22:21 +00:00
parent a8811094ea
commit 2d39e46414
2 changed files with 10 additions and 1 deletions

View File

@@ -468,13 +468,21 @@ BMEdge *BM_vert_other_disk_edge(BMVert *v, BMEdge *e_first)
}
/**
* Returms edge length
* Returns edge length
*/
float BM_edge_calc_length(BMEdge *e)
{
return len_v3v3(e->v1->co, e->v2->co);
}
/**
* Returns edge length squared (for comparisons)
*/
float BM_edge_calc_squared_length(BMEdge *e)
{
return len_squared_v3v3(e->v1->co, e->v2->co);
}
/**
* Utility function, since enough times we have an edge
* and want to access 2 connected faces.

View File

@@ -37,6 +37,7 @@ int BM_vert_in_edge(BMEdge *e, BMVert *v);
int BM_verts_in_edge(BMVert *v1, BMVert *v2, BMEdge *e);
float BM_edge_calc_length(BMEdge *e);
float BM_edge_calc_squared_length(BMEdge *e);
int BM_edge_face_pair(BMEdge *e, BMFace **r_fa, BMFace **r_fb);
int BM_edge_loop_pair(BMEdge *e, BMLoop **r_la, BMLoop **r_lb);
BMVert *BM_edge_other_vert(BMEdge *e, BMVert *v);