Use M_PI for Pi, not constexpr calculation

Constexpr evaluation breaks Clang compilation.

Use math.h M_PI, as elsewhere.
This commit is contained in:
John Beard 2018-07-29 16:29:02 +01:00 committed by Wayne Stambaugh
parent 5e19ed29b8
commit 9476b53533
2 changed files with 7 additions and 7 deletions

View File

@ -24,15 +24,14 @@
#ifndef GEOM_TEST_UTILS_H
#define GEOM_TEST_UTILS_H
#include <math.h>
/**
* @brief Utility functions for testing geometry functions.
*/
namespace GEOM_TEST
{
constexpr double PI = atan(1.0) * 4.0;
constexpr double PI_2 = atan(1.0) * 2.0;
/**
* @brief Check if a value is within a tolerance of a nominal value
*
@ -159,12 +158,12 @@ bool ArePerpendicular( const VECTOR2<T>& a, const VECTOR2<T>& b, double aToleran
auto angle = std::abs( a.Angle() - b.Angle() );
// Normalise: angles of 3*pi/2 are also perpendicular
if (angle > PI)
if (angle > M_PI)
{
angle -= PI;
angle -= M_PI;
}
return IsWithin( angle, PI_2, aTolerance );
return IsWithin( angle, M_PI / 2.0, aTolerance );
}
/**

View File

@ -68,8 +68,9 @@ void TestFilletSegmentConstraints( const SEG& aSeg, VECTOR2I aRadCentre,
( diffC.EuclideanNorm() )( aRadius )( aError + 1 ) );
// Check 3: Mid-point -> radius centre perpendicular
const auto perpendularityMaxError = ( M_PI / 2 ) / 10;
BOOST_CHECK_PREDICATE( ArePerpendicular<int>,
( diffC )( aSeg.A - aSeg.B )( PI_2 / 10 ) );
( diffC )( aSeg.A - aSeg.B )( perpendularityMaxError ) );
}