summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorruslantproductengine <ruslantproductengine@lindenlab.com>2017-04-26 15:56:43 +0300
committerruslantproductengine <ruslantproductengine@lindenlab.com>2017-04-26 15:56:43 +0300
commite2aa2e0008ff473346c1644f9dd094abce99218b (patch)
tree2bda57033a449bcefb2e3930623fc6538c65e409 /indra
parent334dfe0587ee374b478a41a04bc4ebcd11d3b7af (diff)
MAINT-6275 - Child prim not touchable after being resized and moved relative to root prim by script.
FIXED. UPDATED: Add comments.
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/lldrawable.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index 0c47e0f0ee..6ca8f1ae9c 100644
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -667,6 +667,7 @@ F32 LLDrawable::updateXform(BOOL undamped)
{
// snap to final position (only if no target omega is applied)
dist_squared = 0.0f;
+ //set target scale here, because of dist_squared = 0.0f remove object from move list
mCurrentScale = target_scale;
if (getVOVolume() && !isRoot())
@@ -686,6 +687,11 @@ F32 LLDrawable::updateXform(BOOL undamped)
}
const LLVector3 vec = mCurrentScale-target_scale;
+
+ //It's a very important on each cycle on Drawable::update form(), when object remained in move
+ //, list update the CurrentScale member, because if do not do that, it remained in this list forever
+ //or when the delta time between two frames a become a sufficiently large (due to interpolation)
+ //for overcome the MIN_INTERPOLATE_DISTANCE_SQUARED.
mCurrentScale = target_scale;
if (vec*vec > MIN_INTERPOLATE_DISTANCE_SQUARED)