summaryrefslogtreecommitdiff
path: root/indra/llprimitive
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llprimitive')
-rw-r--r--indra/llprimitive/llmodel.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp
index d1e89a1ba5..1cada567e9 100644
--- a/indra/llprimitive/llmodel.cpp
+++ b/indra/llprimitive/llmodel.cpp
@@ -1728,3 +1728,25 @@ 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;
+}
+
+