I'd like to report a bug in function:


//: true if the linesegment joining [1], [2] meets the linesegment joining [3], [4].

export template <class T>

bool vgl_lineseg_test_lineseg(T x1, T y1, T x2, T y2, T x3, T y3, T x4, T y4)


This function is declared in vgl/vgl_lineseg_test.h and is meant to determined whether two line segments ([1], [2]) and ([3], [4]) intersect.

When the inputs are:


x1 = 0; y1 = 1;

x2 = 1; y2 = 1;

x3 = 2; y3 = 1;

x4 = 3; y4 = 1;


the function returns `true', which means the two line segments intersect while clearly these are two completely separate, non-intersecting linesegments.


This bug occurs whenever the two line segments lie on the same line.


A fix for this bug would be greatly appreciated.




Nhon Trinh