mirror of https://github.com/CGAL/cgal
Prevent division by zero
This commit is contained in:
parent
ce6501a291
commit
7cd8369ab2
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue