Skip to content

Commit 6edc279

Browse files
committed
fix intersection interval for degenerate line segments
1 parent b2f300c commit 6edc279

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

include/point.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,11 @@ class Point : public Coordinates {
146146
inline Interval intersection_interval(const distance_t distance_sqr, const Point &line_start, const Point &line_end) const {
147147
const Vector u = line_end-line_start, v = *this - line_start;
148148
const distance_t ulen_sqr = u.length_sqr(), vlen_sqr = v.length_sqr();
149+
150+
if (ulen_sqr == 0) {
151+
if (vlen_sqr <= distance_sqr) return Interval(0, 1);
152+
else return Interval();
153+
}
149154

150155
const distance_t p = -2. / ulen_sqr * (u * v), q = (vlen_sqr - distance_sqr) / ulen_sqr;
151156

0 commit comments

Comments
 (0)