summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/lldrawable.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index aa67ea2524..0c47e0f0ee 100644
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -618,7 +618,7 @@ F32 LLDrawable::updateXform(BOOL undamped)
BOOL damped = !undamped;
// Position
- LLVector3 old_pos(mXform.getPosition());
+ const LLVector3 old_pos(mXform.getPosition());
LLVector3 target_pos;
if (mXform.isRoot())
{
@@ -632,7 +632,7 @@ F32 LLDrawable::updateXform(BOOL undamped)
}
// Rotation
- LLQuaternion old_rot(mXform.getRotation());
+ const LLQuaternion old_rot(mXform.getRotation());
LLQuaternion target_rot = mVObjp->getRotation();
//scaling
LLVector3 target_scale = mVObjp->getScale();
@@ -667,6 +667,8 @@ F32 LLDrawable::updateXform(BOOL undamped)
{
// snap to final position (only if no target omega is applied)
dist_squared = 0.0f;
+ mCurrentScale = target_scale;
+
if (getVOVolume() && !isRoot())
{ //child prim snapping to some position, needs a rebuild
gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION, TRUE);
@@ -683,11 +685,11 @@ F32 LLDrawable::updateXform(BOOL undamped)
//dist_squared += dist_vec_squared(old_scale, target_scale);
}
- LLVector3 vec = mCurrentScale-target_scale;
+ const LLVector3 vec = mCurrentScale-target_scale;
+ mCurrentScale = target_scale;
if (vec*vec > MIN_INTERPOLATE_DISTANCE_SQUARED)
{ //scale change requires immediate rebuild
- mCurrentScale = target_scale;
gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION, TRUE);
}
else if (!isRoot() &&