mirror of https://github.com/CGAL/cgal
Avoid division for bounded side test
This commit is contained in:
parent
06f625a98e
commit
ae945cd329
|
|
@ -253,18 +253,18 @@ namespace CartesianKernelFunctors {
|
|||
result_type
|
||||
operator()( const Tetrahedron_3& t, const Point_3& p) const
|
||||
{
|
||||
FT alpha, beta, gamma;
|
||||
FT alpha, beta, gamma, denom;
|
||||
|
||||
Cartesian_internal::solve(t.vertex(1)-t.vertex(0),
|
||||
t.vertex(2)-t.vertex(0),
|
||||
t.vertex(3)-t.vertex(0),
|
||||
p - t.vertex(0), alpha, beta, gamma);
|
||||
p - t.vertex(0), alpha, beta, gamma, denom);
|
||||
if ( (alpha < 0) || (beta < 0) || (gamma < 0)
|
||||
|| (alpha + beta + gamma > 1) )
|
||||
|| (alpha + beta + gamma > denom) )
|
||||
return ON_UNBOUNDED_SIDE;
|
||||
|
||||
if ( (alpha == 0) || (beta == 0) || (gamma == 0)
|
||||
|| (alpha+beta+gamma == 1) )
|
||||
|| (alpha+beta+gamma == denom) )
|
||||
return ON_BOUNDARY;
|
||||
|
||||
return ON_BOUNDED_SIDE;
|
||||
|
|
@ -3860,10 +3860,10 @@ namespace CartesianKernelFunctors {
|
|||
v1 = t.vertex(1)-o,
|
||||
v2 = t.vertex(2)-o;
|
||||
|
||||
FT alpha, beta, gamma;
|
||||
Cartesian_internal::solve(v0, v1, v2, p-o, alpha, beta, gamma);
|
||||
FT alpha, beta, gamma, denum;
|
||||
Cartesian_internal::solve(v0, v1, v2, p-o, alpha, beta, gamma, denum);
|
||||
return (alpha >= FT(0)) && (beta >= FT(0)) && (gamma >= FT(0))
|
||||
&& ((alpha+beta+gamma == FT(1)));
|
||||
&& ((alpha+beta+gamma == denum));
|
||||
}
|
||||
|
||||
result_type
|
||||
|
|
|
|||
Loading…
Reference in New Issue