diff options
Diffstat (limited to 'intern/iksolver')
-rw-r--r-- | intern/iksolver/CMakeLists.txt | 2 | ||||
-rw-r--r-- | intern/iksolver/SConscript | 2 | ||||
-rw-r--r-- | intern/iksolver/intern/IK_QSegment.cpp | 23 | ||||
-rw-r--r-- | intern/iksolver/intern/TNT/svd.h | 10 | ||||
-rw-r--r-- | intern/iksolver/intern/TNT/vec.h | 2 | ||||
-rw-r--r-- | intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp | 4 | ||||
-rw-r--r-- | intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp | 4 | ||||
-rw-r--r-- | intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp | 4 | ||||
-rw-r--r-- | intern/iksolver/test/ik_glut_test/intern/main.cpp | 4 |
9 files changed, 19 insertions, 36 deletions
diff --git a/intern/iksolver/CMakeLists.txt b/intern/iksolver/CMakeLists.txt index 3c345ae7e6a..8ea05ac994d 100644 --- a/intern/iksolver/CMakeLists.txt +++ b/intern/iksolver/CMakeLists.txt @@ -28,5 +28,5 @@ SET(INC intern ../moto/include ../memutil) FILE(GLOB SRC intern/*.cpp) -BLENDERLIB(bf_IK "${SRC}" "${INC}") +BLENDERLIB(bf_intern_ik "${SRC}" "${INC}") #, libtype=['blender'], priority = [10] ) diff --git a/intern/iksolver/SConscript b/intern/iksolver/SConscript index 7adb2d50893..bdf7cd350ff 100644 --- a/intern/iksolver/SConscript +++ b/intern/iksolver/SConscript @@ -5,5 +5,5 @@ sources = env.Glob('intern/*.cpp') incs = 'intern ../moto/include ../memutil' -env.BlenderLib ('bf_IK', sources, Split(incs), [], libtype=['intern','player'], priority=[100,90] ) +env.BlenderLib ('bf_intern_ik', sources, Split(incs), [], libtype=['intern','player'], priority=[100,90] ) diff --git a/intern/iksolver/intern/IK_QSegment.cpp b/intern/iksolver/intern/IK_QSegment.cpp index 50364f3627f..5de5846cb61 100644 --- a/intern/iksolver/intern/IK_QSegment.cpp +++ b/intern/iksolver/intern/IK_QSegment.cpp @@ -28,9 +28,6 @@ */ #include "IK_QSegment.h" -#ifdef WIN32 -#define _USE_MATH_DEFINES -#endif #include <cmath> // Utility functions @@ -372,8 +369,8 @@ void IK_QSphericalSegment::SetLimit(int axis, MT_Scalar lmin, MT_Scalar lmax) return; if (axis == 1) { - lmin = MT_clamp(lmin, -M_PI, M_PI); - lmax = MT_clamp(lmax, -M_PI, M_PI); + lmin = MT_clamp(lmin, -MT_PI, MT_PI); + lmax = MT_clamp(lmax, -MT_PI, MT_PI); m_min_y = lmin; m_max_y = lmax; @@ -382,8 +379,8 @@ void IK_QSphericalSegment::SetLimit(int axis, MT_Scalar lmin, MT_Scalar lmax) } else { // clamp and convert to axis angle parameters - lmin = MT_clamp(lmin, -M_PI, M_PI); - lmax = MT_clamp(lmax, -M_PI, M_PI); + lmin = MT_clamp(lmin, -MT_PI, MT_PI); + lmax = MT_clamp(lmax, -MT_PI, MT_PI); lmin = sin(lmin*0.5); lmax = sin(lmax*0.5); @@ -615,8 +612,8 @@ void IK_QRevoluteSegment::SetLimit(int axis, MT_Scalar lmin, MT_Scalar lmax) return; // clamp and convert to axis angle parameters - lmin = MT_clamp(lmin, -M_PI, M_PI); - lmax = MT_clamp(lmax, -M_PI, M_PI); + lmin = MT_clamp(lmin, -MT_PI, MT_PI); + lmax = MT_clamp(lmax, -MT_PI, MT_PI); m_min = lmin; m_max = lmax; @@ -754,8 +751,8 @@ void IK_QSwingSegment::SetLimit(int axis, MT_Scalar lmin, MT_Scalar lmax) return; // clamp and convert to axis angle parameters - lmin = MT_clamp(lmin, -M_PI, M_PI); - lmax = MT_clamp(lmax, -M_PI, M_PI); + lmin = MT_clamp(lmin, -MT_PI, MT_PI); + lmax = MT_clamp(lmax, -MT_PI, MT_PI); lmin = sin(lmin*0.5); lmax = sin(lmax*0.5); @@ -900,8 +897,8 @@ void IK_QElbowSegment::SetLimit(int axis, MT_Scalar lmin, MT_Scalar lmax) return; // clamp and convert to axis angle parameters - lmin = MT_clamp(lmin, -M_PI, M_PI); - lmax = MT_clamp(lmax, -M_PI, M_PI); + lmin = MT_clamp(lmin, -MT_PI, MT_PI); + lmax = MT_clamp(lmax, -MT_PI, MT_PI); lmin = lmin; lmax = lmax; diff --git a/intern/iksolver/intern/TNT/svd.h b/intern/iksolver/intern/TNT/svd.h index 9ca51fa2650..9ae289474a9 100644 --- a/intern/iksolver/intern/TNT/svd.h +++ b/intern/iksolver/intern/TNT/svd.h @@ -349,8 +349,9 @@ void SVD(MaTRiX &A, MaTRiX &U, VecToR &s, MaTRiX &V, VecToR &work1, VecToR &work for (j = k; j < p-1; j++) { typename MaTRiX::value_type t = hypot(f,g); - typename MaTRiX::value_type cs = f/t; - typename MaTRiX::value_type sn = g/t; + /* division by zero checks added to avoid NaN (brecht) */ + typename MaTRiX::value_type cs = (t == 0.0f)? 0.0f: f/t; + typename MaTRiX::value_type sn = (t == 0.0f)? 0.0f: g/t; if (j != k) { e[j-1] = t; } @@ -366,8 +367,9 @@ void SVD(MaTRiX &A, MaTRiX &U, VecToR &s, MaTRiX &V, VecToR &work1, VecToR &work } t = hypot(f,g); - cs = f/t; - sn = g/t; + /* division by zero checks added to avoid NaN (brecht) */ + cs = (t == 0.0f)? 0.0f: f/t; + sn = (t == 0.0f)? 0.0f: g/t; s[j] = t; f = cs*e[j] + sn*s[j+1]; s[j+1] = -sn*e[j] + cs*s[j+1]; diff --git a/intern/iksolver/intern/TNT/vec.h b/intern/iksolver/intern/TNT/vec.h index 1729d83ca10..040097afbd9 100644 --- a/intern/iksolver/intern/TNT/vec.h +++ b/intern/iksolver/intern/TNT/vec.h @@ -416,7 +416,7 @@ void vectoradd( A[i] += B[i]; } -// same with seperate output vector +// same with separate output vector template <class T> void vectoradd( diff --git a/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp b/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp index 7b87c69928f..1882038163d 100644 --- a/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp +++ b/intern/iksolver/test/ik_glut_test/common/GlutDrawer.cpp @@ -26,10 +26,6 @@ * ***** END GPL LICENSE BLOCK ***** */ -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - #include "GlutDrawer.h" #include "MT_assert.h" diff --git a/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp b/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp index 9412dc25e42..c7c592204e8 100644 --- a/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp +++ b/intern/iksolver/test/ik_glut_test/common/GlutKeyboardManager.cpp @@ -26,10 +26,6 @@ * ***** END GPL LICENSE BLOCK ***** */ -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - #include "GlutKeyboardManager.h" #include "MT_assert.h" diff --git a/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp b/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp index 79187a7fd1b..98e36af5c79 100644 --- a/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp +++ b/intern/iksolver/test/ik_glut_test/common/GlutMouseManager.cpp @@ -26,10 +26,6 @@ * ***** END GPL LICENSE BLOCK ***** */ -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - #include "GlutMouseManager.h" #include "MT_assert.h" diff --git a/intern/iksolver/test/ik_glut_test/intern/main.cpp b/intern/iksolver/test/ik_glut_test/intern/main.cpp index f323648dbd7..f2e91ee9c31 100644 --- a/intern/iksolver/test/ik_glut_test/intern/main.cpp +++ b/intern/iksolver/test/ik_glut_test/intern/main.cpp @@ -26,10 +26,6 @@ * ***** END GPL LICENSE BLOCK ***** */ -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - #include "MEM_SmartPtr.h" #ifdef USE_QUATERNIONS |