diff options
| -rwxr-xr-x | indra/newview/llflexibleobject.cpp | 10 | ||||
| -rwxr-xr-x | indra/newview/llflexibleobject.h | 2 | 
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 ); | 
