diff options
author | Josh Bell <josh@lindenlab.com> | 2007-03-09 01:09:20 +0000 |
---|---|---|
committer | Josh Bell <josh@lindenlab.com> | 2007-03-09 01:09:20 +0000 |
commit | b36dc363061ec5bf6b092c14193198e9a5eef816 (patch) | |
tree | b067586bd545dfa6dce9dd0b1243b9c0aa143f33 /indra/newview/llflexibleobject.cpp | |
parent | 6fa974fc64b172a7324b28d40f08f2a861d87f8d (diff) |
svn merge -r 58902:58986 svn+ssh://svn.lindenlab.com/svn/linden/branches/maintenance --> release
Diffstat (limited to 'indra/newview/llflexibleobject.cpp')
-rw-r--r-- | indra/newview/llflexibleobject.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp index 4e03e34663..020ce00bab 100644 --- a/indra/newview/llflexibleobject.cpp +++ b/indra/newview/llflexibleobject.cpp @@ -216,12 +216,6 @@ void LLVolumeImplFlexible::setAttributesOfAllSections() void LLVolumeImplFlexible::onSetVolume(const LLVolumeParams &volume_params, const S32 detail) { - if (mVO && mVO->mDrawable.notNull()) - { - LLVOVolume* volume = (LLVOVolume*) mVO; - volume->regenFaces(); - } - /*doIdleUpdate(gAgent, *gWorldp, 0.0); if (mVO && mVO->mDrawable.notNull()) { @@ -615,11 +609,19 @@ BOOL LLVolumeImplFlexible::doUpdateGeometry(LLDrawable *drawable) { LLVolumeParams volume_params = volume->getVolume()->getParams(); volume->setVolume(volume_params, 0); + mUpdated = FALSE; } volume->updateRelativeXform(); doFlexibleUpdate(); - if (!mUpdated || volume->mFaceMappingChanged) + + if (volume->mLODChanged || volume->mFaceMappingChanged || + volume->mVolumeChanged) + { + volume->regenFaces(); + } + + if (!mUpdated || volume->mFaceMappingChanged || volume->mVolumeChanged) { doFlexibleRebuild(); volume->genBBoxes(isVolumeGlobal()); @@ -629,6 +631,7 @@ BOOL LLVolumeImplFlexible::doUpdateGeometry(LLDrawable *drawable) volume->mLODChanged = FALSE; volume->mFaceMappingChanged = FALSE; + // clear UV flag drawable->clearState(LLDrawable::UV); |