Files
bspviz/internal/geom/intersect.go

12 lines
215 B
Go

package geom
func SegLineIntersect(A, B, O, D Vec) (bool, float64) {
r := Sub(B, A)
den := Cross(r, D)
if NearlyZero(den) {
return false, 0
}
t := Cross(Sub(O, A), D) / den
return t > EPS && t < 1-EPS, t
}