This function finds any crossing points between
the line segment patterns A and B.
A crossing point occurs whenever one of the line segments in A
intersects one of the line segments in B, at a nonzero
angle of intersection.
The result is a point pattern consisting of all the intersection points.
If details=TRUE, additional information is computed,
specifying where each intersection point came from.
The resulting point pattern has a data frame of marks, with columns
named iA, jB, tA, tB. The marks iA
and jB are the indices of the line segments in A and
B, respectively, which produced each intersection point.
The marks tA and tB are numbers between 0 and 1
specifying the position of the intersection point along the
original segments.
If the windows Window(A) and Window(B) do not
overlap, then an error will be reported if fatal=TRUE,
while if fatal=FALSE an error will not occur
and the result will be NULL.