diff options
author | ruslantproductengine <ruslantproductengine@lindenlab.com> | 2017-04-26 15:56:43 +0300 |
---|---|---|
committer | ruslantproductengine <ruslantproductengine@lindenlab.com> | 2017-04-26 15:56:43 +0300 |
commit | e2aa2e0008ff473346c1644f9dd094abce99218b (patch) | |
tree | 2bda57033a449bcefb2e3930623fc6538c65e409 /indra/newview | |
parent | 334dfe0587ee374b478a41a04bc4ebcd11d3b7af (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/newview')
-rw-r--r-- | indra/newview/lldrawable.cpp | 6 |
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) |