title: Determining the intersection of a triangle and a plane
body: <p>I have a single triangle and a plane (in 3 dimensional space), How would I calculate the line segment where the two cross, if there is no crossing then I need to detect this case.</p>
  
  <p>The end result I'm looking for is two 3 dimensional vectors, which define the start and end points of the line segment.</p>
  
  <p>To help you out a little, I have already calculated the intersection ray between the plane of the face, and the plane, I simply need to find the endpoints to clip that ray into a line segment.</p>
  
  <p>For those who like reading things in code:</p>
  
  <pre><code>Face face;        //a face, defined by 3 points
  Plane plane;      //a plane, defined by a normal vector and a distance
  Ray intersection; //a ray, defined by a point and a direction, initialised to the intersection of the face plane and the face
  
  Segment s = CalculateSegment(face, plane, intersection); //this method needs defining
  </code></pre>