OSDN Git Service

Also ensure that position of animations cannot get into NaN state with a divide by...
authorRobin Cornelius <robin.cornelius@gmail.com>
Sat, 6 Aug 2011 09:00:43 +0000 (09:00 +0000)
committerRobin Cornelius <robin.cornelius@gmail.com>
Sat, 6 Aug 2011 09:00:43 +0000 (09:00 +0000)
git-svn-id: https://radegast.googlecode.com/svn/trunk@1067 f7a694da-4d33-11de-9ad6-1127a62b9fcd

Radegast/GUI/Rendering/RenderingHelpers.cs

index 39e9265..d6abf4a 100644 (file)
@@ -2401,15 +2401,19 @@ namespace Radegast.Rendering
                             binBVHJointKey pos = b.joints[jpos].positionkeys[state.lastkeyframe_pos];\r
 \r
 \r
-                            float delta = (pos2.time - pos.time) / ((state.currenttime_pos) - (pos.time - b.joints[jpos].positionkeys[0].time));\r
+                            if( (pos2.time - pos.time) != ((state.currenttime_pos) - (pos.time - b.joints[jpos].positionkeys[0].time)))\r
+                            {\r
+\r
+                                float delta = (pos2.time - pos.time) / ((state.currenttime_pos) - (pos.time - b.joints[jpos].positionkeys[0].time));\r
 \r
-                            if (delta < 0)\r
-                                delta = 0;\r
+                                if (delta < 0)\r
+                                    delta = 0;\r
 \r
-                            if (delta > 1)\r
-                                delta = 1;\r
+                                if (delta > 1)\r
+                                    delta = 1;\r
 \r
-                            poslerp = Vector3.Lerp(pos.key_element, pos2.key_element, delta);\r
+                                poslerp = Vector3.Lerp(pos.key_element, pos2.key_element, delta);\r
+                            }\r
 \r
                         }\r
 \r