message: Adds a regression test for a divide by zero condition in primal::intersect().
  This is a case where the triangle does not intersect a ray, but we are nevertheless
  attempting to normalize the barycentric coordinates of the 'intersection point'.
diff: #include "primal/intersect.hpp"
  +#include <cmath> // for sqrt
  +
  +
  using namespace axom;
  namespace
  @@ -1344,6 +1347,33 @@ TEST(primal_intersect, triangle_ray_intersection_unit_ray)
  EXPECT_TRUE(testPointsClose(intersectionPoint, triIntersectionPoint));
  }
  +
  +TEST(primal_intersect, triangle_ray_intersection_fpe_regression)
  +{
  + static int const DIM = 3;
  + typedef primal::Point< double,DIM > PointType;
  + typedef primal::Vector< double,DIM > VectorType;
  + typedef primal::Triangle< double, DIM > TriangleType;
  + typedef primal::Ray< double, DIM > RayType;
  +
  + // This regression test triggers a division by zero in
  + // a previous implementation of primal::intersect()
  + // when normalizing the barycentric coordinates
  +
  + double t = 0.;
  + PointType bary;
  +
  + double val = std::sqrt(2)/2;
  + RayType ray(PointType::make_point(-0.1, 1.1, 0.),
  + VectorType::make_vector(0, -val, val));
  +
  + TriangleType tri( PointType::make_point(1,0,0),
  + PointType::make_point(0,1,0),
  + PointType::make_point(0,0,1));
  +
  + EXPECT_FALSE( axom::primal::intersect(tri, ray, t, bary));
  +}
  +
  TEST(primal_intersect, triangle_ray_intersection_unit_seg)
  {
  static int const DIM = 3;
  