From 4d43f8329585614e15deb992925e4ab70a10a398 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 30 Jan 2002 15:27:45 +0000 Subject: [PATCH] Removed the M_PI defines from include/osg/Math and have use a const double osg::PI etc in its place. --- include/osg/Math | 31 ++++++++++--------------------- src/Demos/hangglide/sky.cpp | 4 ++-- src/Demos/hangglide/tank.cpp | 4 ++-- src/osg/Matrix.cpp | 3 --- src/osgPlugins/obj/glm.cpp | 4 +++- src/osgUtil/CullVisitor.cpp | 4 +--- 6 files changed, 18 insertions(+), 32 deletions(-) diff --git a/include/osg/Math b/include/osg/Math index dda12c117..3623088a9 100644 --- a/include/osg/Math +++ b/include/osg/Math @@ -9,23 +9,9 @@ #if defined(WIN32) || defined (macintosh) #include -#if !defined(__CYGWIN__) - #define M_E 2.7182818284590452354 - #define M_LOG2E 1.4426950408889634074 - #define M_LOG10E 0.43429448190325182765 - #define M_LN2 0.69314718055994530942 - #define M_LN10 2.30258509299404568402 - #define M_PI 3.14159265358979323846 - #define M_PI_2 1.57079632679489661923 - #define M_PI_4 0.78539816339744830962 - #define M_1_PI 0.31830988618379067154 - #define M_2_PI 0.63661977236758134308 - #define M_2_SQRTPI 1.12837916709551257390 - #define M_SQRT2 1.41421356237309504880 - #define M_SQRT1_2 0.70710678118654752440 -#endif // __CYGWIN__ #endif + // PJA MAC OSX // This appears to be the simplest way to get these defined under MACOSX // where they arent in math.h @@ -66,18 +52,21 @@ namespace osg { -inline double inDegrees(double angle) { return angle*M_PI/180.0; } +// define the stand trig values +const double PI = 3.14159265358979323846; +const double PI_2 = 1.57079632679489661923; +const double PI_4 = 0.78539816339744830962; + + +inline double inDegrees(double angle) { return angle*PI/180.0; } inline double inRadians(double angle) { return angle; } -inline double DegreesToRadians(double angle) { return angle*M_PI/180.0; } -inline double RadiansToDegrees(double angle) { return angle*180.0/M_PI; } +inline double DegreesToRadians(double angle) { return angle*PI/180.0; } +inline double RadiansToDegrees(double angle) { return angle*180.0/PI; } #if defined(WIN32) && !defined(__CYGWIN__) inline bool isNaN(float v) { return _isnan(v)!=0; } inline bool isNaN(double v) { return _isnan(v)!=0; } -#elif __sgi - inline bool isNaN(float v) { return isnan(v); } - inline bool isNaN(double v) { return isnan(v); } #else inline bool isNaN(float v) { return isnan(v); } inline bool isNaN(double v) { return isnan(v); } diff --git a/src/Demos/hangglide/sky.cpp b/src/Demos/hangglide/sky.cpp index a5aa3473a..0117a647c 100644 --- a/src/Demos/hangglide/sky.cpp +++ b/src/Demos/hangglide/sky.cpp @@ -48,8 +48,8 @@ Node *makeSky( void ) { for( j = 0; j <= 18; j++ ) { - alpha = lev[i] * M_PI/180.0; - theta = (float)(j*20) * M_PI/180.0; + alpha = osg::DegreesToRadians(lev[i]); + theta = osg::DegreesToRadians((float)(j*20)); x = radius * cosf( alpha ) * cosf( theta ); y = radius * cosf( alpha ) * -sinf( theta ); diff --git a/src/Demos/hangglide/tank.cpp b/src/Demos/hangglide/tank.cpp index 9c0af5276..468ffcc26 100644 --- a/src/Demos/hangglide/tank.cpp +++ b/src/Demos/hangglide/tank.cpp @@ -68,7 +68,7 @@ Node *makeTank( void ) { float x, y, z; float s, t; - float theta = (float)i * M_PI/180.0; + float theta = osg::DegreesToRadians((float)i); s = (float)i/90.0; t = 1.0; @@ -144,7 +144,7 @@ Node *makeTank( void ) { float x, y, z; float s, t; - float theta = (float)i * M_PI/180.0; + float theta = osg::DegreesToRadians((float)i); // s = (float)i/360.0; // t = 1.0; diff --git a/src/osg/Matrix.cpp b/src/osg/Matrix.cpp index 962169c65..b0d7325ea 100644 --- a/src/osg/Matrix.cpp +++ b/src/osg/Matrix.cpp @@ -8,9 +8,6 @@ using namespace osg; -#define DEG2RAD(x) ((x)*M_PI/180.0) -#define RAD2DEG(x) ((x)*180.0/M_PI) - #define SET_ROW(row, v1, v2, v3, v4 ) \ _mat[(row)][0] = (v1); \ _mat[(row)][1] = (v2); \ diff --git a/src/osgPlugins/obj/glm.cpp b/src/osgPlugins/obj/glm.cpp index ffc6ad5df..74260d5c5 100644 --- a/src/osgPlugins/obj/glm.cpp +++ b/src/osgPlugins/obj/glm.cpp @@ -20,6 +20,8 @@ #endif #include "glm.h" +#include + /* defines */ #define T(x) model->triangles[(x)] @@ -1091,7 +1093,7 @@ glmVertexNormals(GLMmodel* model, GLfloat angle) assert(model->facetnorms); /* calculate the cosine of the angle (in degrees) */ - cos_angle = (float)cos(angle * M_PI / 180.0); + cos_angle = (float)cos(osg::DegreesToRadians(angle)); /* nuke any previous normals */ if (model->normals) diff --git a/src/osgUtil/CullVisitor.cpp b/src/osgUtil/CullVisitor.cpp index a56cb1649..466190655 100644 --- a/src/osgUtil/CullVisitor.cpp +++ b/src/osgUtil/CullVisitor.cpp @@ -22,8 +22,6 @@ using namespace osg; using namespace osgUtil; -#define DEG2RAD(x) ((x)*M_PI/180.0) - inline float MAX_F(float a, float b) { return a>b?a:b; } inline int EQUAL_F(float a, float b) @@ -594,7 +592,7 @@ void CullVisitor::calcClippingDirections() const osg::Vec3 t_up = _camera->getUpVector(); osg::Vec3 t_side = _camera->getSideVector(); - double t_VFOV_2 = _camera->calc_fovy() * M_PI / 360.0;//half of vertical FOV in radians + double t_VFOV_2 = osg::DegreesToRadians(_camera->calc_fovy() * 0.5);//half of vertical FOV in radians //we need to pitch up the cameras up vector for angle that is half fovy, osg::Vec3 pitched_up_up = t_up * osg::Matrix::rotate(t_VFOV_2, t_side.x(), t_side.y(), t_side.z());