Problem:
Input: The line L is given as input in the form of two end points.
The input for triangle T is given in the form of three points (its three
vertices v0, v1 and v2).
Output: We return the type of intersection (see the list below)
and the vertices or the edges involved.
proper intersection
no intersection
intersection at a vertex
intersection on an edge
coplanar and no intersection
coplanar and intersection at vertex
intersection through two edges
intersection contains an edge
intersection through one vertex and an edge
Representation:
We use the plucker coordinates to solve
this problem. We compute the sideoperator
of the line L with the three oriented lines e1(v0 to v1), e2(v1 to
v2) and e3(v2 to v0) supporting the edges of the triangle.
S1 = sideoperator(L,e1)
S2 = sideoperator(L,e2)
S3 = sideoperator(L,e3)
Different possible cases:
1) The triangle and the lines are not coplanar








2) The triangle and the lines are coplanar,
then
S1 = S2 = S3 = 0 Let p be a point not coplanar with the triangle T. Let T_{1}, T_{2} and T_{3} denote the triangle (v0,v1,p), (v1,v2,p) and (v2,v0,p). Notice that the line and the triangle T_{i} are not coplanar.The following cases are solved by intersecting the line L and the triangles T_{i} , as in case 1 










Code:
The code can be found here.
Prepared by Anoop Pant (anoop.pant@mailcity.com)
Contact : hazel.everett@loria.fr, sylvain.lazard@loria.fr,sylvain.petitjea@loria.fr
Last modified : 18/8/2001