private static Tuple <Point3D, Point3D> GetHit(ITriangle[] convexHull, Point3D shotStart, Vector3D shotDirection, double percent) { var intersections = Math3D.GetIntersection_Hull_Ray(convexHull, shotStart, shotDirection); if (intersections.Length != 2) { return((Tuple <Point3D, Point3D>)null); } Vector3D penetrate = (intersections[1].Item1 - intersections[0].Item1) * percent; return(Tuple.Create(intersections[0].Item1, intersections[0].Item1 + penetrate)); }