mirror of
https://github.com/ocornut/imgui.git
synced 2026-01-11 00:04:24 +00:00
A tiny optimization to ImLineClosestPoint. Removed unnecessary sqrtf call.
ab_lenSqr -> ab_len_sqr Moved line where ab_len_sqr is computed after the first return
This commit is contained in:
parent
16ff9faf51
commit
94466745bb
1 changed files with 3 additions and 4 deletions
|
|
@ -950,14 +950,13 @@ ImVec2 ImLineClosestPoint(const ImVec2& a, const ImVec2& b, const ImVec2& p)
|
|||
{
|
||||
ImVec2 ap = p - a;
|
||||
ImVec2 ab_dir = b - a;
|
||||
float ab_len = sqrtf(ab_dir.x * ab_dir.x + ab_dir.y * ab_dir.y);
|
||||
ab_dir *= 1.0f / ab_len;
|
||||
float dot = ap.x * ab_dir.x + ap.y * ab_dir.y;
|
||||
if (dot < 0.0f)
|
||||
return a;
|
||||
if (dot > ab_len)
|
||||
float ab_len_sqr = ab_dir.x * ab_dir.x + ab_dir.y * ab_dir.y;
|
||||
if (dot > ab_len_sqr)
|
||||
return b;
|
||||
return a + ab_dir * dot;
|
||||
return a + ab_dir * dot / ab_len_sqr;
|
||||
}
|
||||
|
||||
bool ImTriangleContainsPoint(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue