aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llflexibleobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/llflexibleobject.cpp')
-rw-r--r--linden/indra/newview/llflexibleobject.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/linden/indra/newview/llflexibleobject.cpp b/linden/indra/newview/llflexibleobject.cpp
index 836cfdc..454b40f 100644
--- a/linden/indra/newview/llflexibleobject.cpp
+++ b/linden/indra/newview/llflexibleobject.cpp
@@ -643,6 +643,15 @@ BOOL LLVolumeImplFlexible::doUpdateGeometry(LLDrawable *drawable)
643 volume->updateRelativeXform(); 643 volume->updateRelativeXform();
644 doFlexibleUpdate(); 644 doFlexibleUpdate();
645 645
646 // Object may have been rotated, which means it needs a rebuild. See SL-47220
647 BOOL rotated = FALSE;
648 LLQuaternion cur_rotation = getFrameRotation();
649 if ( cur_rotation != mLastFrameRotation )
650 {
651 mLastFrameRotation = cur_rotation;
652 rotated = TRUE;
653 }
654
646 if (volume->mLODChanged || volume->mFaceMappingChanged || 655 if (volume->mLODChanged || volume->mFaceMappingChanged ||
647 volume->mVolumeChanged) 656 volume->mVolumeChanged)
648 { 657 {
@@ -650,7 +659,7 @@ BOOL LLVolumeImplFlexible::doUpdateGeometry(LLDrawable *drawable)
650 volume->mDrawable->setState(LLDrawable::REBUILD_VOLUME); 659 volume->mDrawable->setState(LLDrawable::REBUILD_VOLUME);
651 } 660 }
652 661
653 if (!mUpdated || volume->mFaceMappingChanged || volume->mVolumeChanged) 662 if (!mUpdated || volume->mFaceMappingChanged || volume->mVolumeChanged || rotated)
654 { 663 {
655 doFlexibleRebuild(); 664 doFlexibleRebuild();
656 volume->genBBoxes(isVolumeGlobal()); 665 volume->genBBoxes(isVolumeGlobal());