Prevent division by zero

This commit is contained in:
Philipp Möller 2015-11-20 12:15:03 +01:00 committed by Sébastien Loriot
parent ce6501a291
commit 7cd8369ab2
2 changed files with 8 additions and 4 deletions

View File

@ -160,8 +160,6 @@ struct AABB_traits_base_2<GeomTraits,true>{
return FT(0.); return FT(0.);
else else
return t_near; return t_near;
return boost::none;
}
} }
}; };

View File

@ -171,8 +171,14 @@ private:
FT operator()(const Point& point) { FT operator()(const Point& point) {
typename AABB_traits::Geom_traits::Vector_3 x(ray->source(), point); typename AABB_traits::Geom_traits::Vector_3 x(ray->source(), point);
typename AABB_traits::Geom_traits::Vector_3 v = ray->to_vector(); typename AABB_traits::Geom_traits::Vector_3 v = ray->to_vector();
boost::array<FT,3> xv = {x[0] / v[0], x[1] / v[1], x[2] / v[2]}; FT dist = 0;
return *std::max_element(xv.begin(), xv.end());
for(int i = 0; i < 3; ++i) {
if(v[0] != 0) {
dist = std::max(dist, x[0] / v[0]);
}
}
return dist;
} }
const Ray* ray; const Ray* ray;