From 00d62ec22bf0491e817c5b44d464070868e23979 Mon Sep 17 00:00:00 2001 From: Robin Cornelius Date: Sat, 6 Aug 2011 09:00:43 +0000 Subject: [PATCH] Also ensure that position of animations cannot get into NaN state with a divide by zero on the delta git-svn-id: https://radegast.googlecode.com/svn/trunk@1067 f7a694da-4d33-11de-9ad6-1127a62b9fcd --- Radegast/GUI/Rendering/RenderingHelpers.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Radegast/GUI/Rendering/RenderingHelpers.cs b/Radegast/GUI/Rendering/RenderingHelpers.cs index 39e9265..d6abf4a 100644 --- a/Radegast/GUI/Rendering/RenderingHelpers.cs +++ b/Radegast/GUI/Rendering/RenderingHelpers.cs @@ -2401,15 +2401,19 @@ namespace Radegast.Rendering binBVHJointKey pos = b.joints[jpos].positionkeys[state.lastkeyframe_pos]; - float delta = (pos2.time - pos.time) / ((state.currenttime_pos) - (pos.time - b.joints[jpos].positionkeys[0].time)); + if( (pos2.time - pos.time) != ((state.currenttime_pos) - (pos.time - b.joints[jpos].positionkeys[0].time))) + { + + float delta = (pos2.time - pos.time) / ((state.currenttime_pos) - (pos.time - b.joints[jpos].positionkeys[0].time)); - if (delta < 0) - delta = 0; + if (delta < 0) + delta = 0; - if (delta > 1) - delta = 1; + if (delta > 1) + delta = 1; - poslerp = Vector3.Lerp(pos.key_element, pos2.key_element, delta); + poslerp = Vector3.Lerp(pos.key_element, pos2.key_element, delta); + } } -- 2.11.0