diff options
Diffstat (limited to 'indra/llprimitive/llmodel.cpp')
| -rw-r--r-- | indra/llprimitive/llmodel.cpp | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp index 9e3d9704ae..1cada567e9 100644 --- a/indra/llprimitive/llmodel.cpp +++ b/indra/llprimitive/llmodel.cpp @@ -1724,4 +1724,29 @@ LLModel::weight_list& LLModel::getJointInfluences(const LLVector3& pos)  	}					  } +void LLModel::setPhysicsShape(const LLModel::physics_shape& shape) +{ +	mPhysicsShape = shape; + +	mHullCenter.resize(mPhysicsShape.size()); +	mPhysicsPoints = 0; +	mPhysicsCenter.clear(); + +	for (U32 i = 0; i < shape.size(); ++i) +	{ +		LLVector3 cur_center; + +		for (U32 j = 0; j < shape[i].size(); ++j) +		{ +			cur_center += shape[i][j]; +		} +		mPhysicsCenter += cur_center; +		cur_center *= 1.f/shape[i].size(); +		mHullCenter[i] = cur_center; +		mPhysicsPoints += shape[i].size(); +	} + +	mPhysicsCenter *= 1.f/mPhysicsPoints; +} + | 
