testLineSegmentTriangle

Test whether the line segment with the end points <code>(p0X, p0Y, p0Z)</code> and <code>(p1X, p1Y, p1Z)</code> intersects the triangle consisting of the three vertices <code>(v0X, v0Y, v0Z)</code>, <code>(v1X, v1Y, v1Z)</code> and <code>(v2X, v2Y, v2Z)</code>, regardless of the winding order of the triangle or the direction of the line segment between its two end points. <p> Reference: <a href="http://www.graphics.cornell.edu/pubs/1997/MT97.pdf"> Fast, Minimum Storage Ray/Triangle Intersection</a>

@see #testLineSegmentTriangle(Vector3d, Vector3d, Vector3d, Vector3d, Vector3d, double)

@param p0X the x coordinate of the line segment's first end point @param p0Y the y coordinate of the line segment's first end point @param p0Z the z coordinate of the line segment's first end point @param p1X the x coordinate of the line segment's second end point @param p1Y the y coordinate of the line segment's second end point @param p1Z the z coordinate of the line segment's second end point @param v0X the x coordinate of the first vertex @param v0Y the y coordinate of the first vertex @param v0Z the z coordinate of the first vertex @param v1X the x coordinate of the second vertex @param v1Y the y coordinate of the second vertex @param v1Z the z coordinate of the second vertex @param v2X the x coordinate of the third vertex @param v2Y the y coordinate of the third vertex @param v2Z the z coordinate of the third vertex @param epsilon a small epsilon when testing line segments that are almost parallel to the triangle @return <code>true</code> if the given line segment intersects the triangle; <code>false</code> otherwise

  1. bool testLineSegmentTriangle(double p0X, double p0Y, double p0Z, double p1X, double p1Y, double p1Z, double v0X, double v0Y, double v0Z, double v1X, double v1Y, double v1Z, double v2X, double v2Y, double v2Z, double epsilon)
    public static
    bool
    testLineSegmentTriangle
    (
    double p0X
    ,
    double p0Y
    ,
    double p0Z
    ,
    double p1X
    ,
    double p1Y
    ,
    double p1Z
    ,
    double v0X
    ,
    double v0Y
    ,
    double v0Z
    ,
    double v1X
    ,
    double v1Y
    ,
    double v1Z
    ,
    double v2X
    ,
    double v2Y
    ,
    double v2Z
    ,
    double epsilon
    )
  2. bool testLineSegmentTriangle(Vector3d p0, Vector3d p1, Vector3d v0, Vector3d v1, Vector3d v2, double epsilon)

Meta