diff options
author | Erwin Coumans <blender@erwincoumans.com> | 2006-12-27 02:03:36 +0300 |
---|---|---|
committer | Erwin Coumans <blender@erwincoumans.com> | 2006-12-27 02:03:36 +0300 |
commit | 76b6a6611c930655d88962b9f3134018e9d8117c (patch) | |
tree | 983742c8470d9f3f1a43ca12942593736f94d0f8 | |
parent | 14d60ca000e11d0a3967ca25ba3b85072869d732 (diff) |
normalize hitnormal
-rw-r--r-- | source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp index bb6b62c7edc..c4d4ba349b5 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp @@ -719,6 +719,13 @@ PHY_IPhysicsController* CcdPhysicsEnvironment::rayTest(PHY_IPhysicsController* i hitY = rayCallback.m_hitPointWorld.getY(); hitZ = rayCallback.m_hitPointWorld.getZ(); + if (rayCallback.m_hitNormalWorld.length2() > (SIMD_EPSILON*SIMD_EPSILON)) + { + rayCallback.m_hitNormalWorld.normalize(); + } else + { + rayCallback.m_hitNormalWorld.setValue(1,0,0); + } normalX = rayCallback.m_hitNormalWorld.getX(); normalY = rayCallback.m_hitNormalWorld.getY(); normalZ = rayCallback.m_hitNormalWorld.getZ(); |