Rewrite point-segment distance
This commit is contained in:
parent
76dd07c266
commit
621fac8451
1 changed files with 5 additions and 2 deletions
|
|
@ -48,10 +48,13 @@ namespace psemek::geom
|
||||||
{
|
{
|
||||||
T const t = dot(p - s[0], s[1] - s[0]) / length_sqr(s[1] - s[0]);
|
T const t = dot(p - s[0], s[1] - s[0]) / length_sqr(s[1] - s[0]);
|
||||||
|
|
||||||
if (t >= 0 && t <= 1)
|
if (t <= 0)
|
||||||
|
return distance(p, s[0]);
|
||||||
|
else if (t >= 1)
|
||||||
|
return distance(p, s[1]);
|
||||||
|
else
|
||||||
return distance(p, lerp(s[0], s[1], t));
|
return distance(p, lerp(s[0], s[1], t));
|
||||||
|
|
||||||
return std::min(distance(p, s[0]), distance(p, s[1]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue