summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2014-02-05 16:16:30 -0700
committerXiaohong Bao <bao@lindenlab.com>2014-02-05 16:16:30 -0700
commita847caade4e112906f86cfbd8511d3414d9546db (patch)
tree4dfe42c2dc762514b3b5635e1186db86385f49b4
parentcd9871197c55395f6943c2911e9a7991540adfa4 (diff)
more fix for a non-finite number assertion in llvolume
-rwxr-xr-xindra/newview/llflexibleobject.cpp10
-rwxr-xr-xindra/newview/llflexibleobject.h2
2 files changed, 8 insertions, 4 deletions
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp
index 3cd4367891..b64034b945 100755
--- a/indra/newview/llflexibleobject.cpp
+++ b/indra/newview/llflexibleobject.cpp
@@ -722,13 +722,17 @@ void LLVolumeImplFlexible::preRebuild()
if (!mUpdated)
{
LL_RECORD_BLOCK_TIME(FTM_FLEXI_PREBUILD);
- doFlexibleRebuild();
+ doFlexibleRebuild(false);
}
}
-void LLVolumeImplFlexible::doFlexibleRebuild()
+void LLVolumeImplFlexible::doFlexibleRebuild(bool rebuild_volume)
{
LLVolume* volume = mVO->getVolume();
+ if(rebuild_volume)
+ {
+ volume->setDirty();
+ }
volume->regen();
mUpdated = TRUE;
@@ -801,7 +805,7 @@ BOOL LLVolumeImplFlexible::doUpdateGeometry(LLDrawable *drawable)
volume->dirtySpatialGroup();
{
LL_RECORD_BLOCK_TIME(FTM_FLEXIBLE_REBUILD);
- doFlexibleRebuild();
+ doFlexibleRebuild(volume->mVolumeChanged);
}
volume->genBBoxes(isVolumeGlobal());
}
diff --git a/indra/newview/llflexibleobject.h b/indra/newview/llflexibleobject.h
index beb281a906..a00551df8e 100755
--- a/indra/newview/llflexibleobject.h
+++ b/indra/newview/llflexibleobject.h
@@ -100,7 +100,7 @@ private:
const LLMatrix4& getWorldMatrix(LLXformMatrix* xform) const;
void updateRelativeXform(bool force_identity);
void doFlexibleUpdate(); // Called to update the simulation
- void doFlexibleRebuild(); // Called to rebuild the geometry
+ void doFlexibleRebuild(bool rebuild_volume); // Called to rebuild the geometry
void preRebuild();
//void setAttributes( LLFlexibleObjectData );