Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErwin Coumans <blender@erwincoumans.com>2006-12-27 02:03:36 +0300
committerErwin Coumans <blender@erwincoumans.com>2006-12-27 02:03:36 +0300
commit76b6a6611c930655d88962b9f3134018e9d8117c (patch)
tree983742c8470d9f3f1a43ca12942593736f94d0f8 /source/gameengine/Physics
parent14d60ca000e11d0a3967ca25ba3b85072869d732 (diff)
normalize hitnormal
Diffstat (limited to 'source/gameengine/Physics')
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp7
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();