summaryrefslogtreecommitdiff
path: root/indra/newview/llselectmgr.cpp
diff options
context:
space:
mode:
authorKarl Stiefvater (qarl) <qarl@lindenlab.com>2010-07-01 17:18:55 -0500
committerKarl Stiefvater (qarl) <qarl@lindenlab.com>2010-07-01 17:18:55 -0500
commit2530b057bb18550ed2825c14988a807ab90d460f (patch)
tree63c51d22118a5b58d676e5404d6a815b084427b2 /indra/newview/llselectmgr.cpp
parent0fc367441762d85dd77867e78ff75b867c946b4a (diff)
added new physics parameters to prims
Diffstat (limited to 'indra/newview/llselectmgr.cpp')
-rw-r--r--indra/newview/llselectmgr.cpp31
1 files changed, 25 insertions, 6 deletions
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 559c802f51..8ab9910f67 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -3937,15 +3937,33 @@ void LLSelectMgr::selectionUpdateCastShadows(BOOL cast_shadows)
getSelection()->applyToObjects(&func);
}
-struct LLSelectMgrApplyPhysicsShapeType : public LLSelectedObjectFunctor
+struct LLSelectMgrApplyPhysicsParam : public LLSelectedObjectFunctor
{
- LLSelectMgrApplyPhysicsShapeType(U8 value) : mValue(value) {}
- U8 mValue;
+ LLSelectMgrApplyPhysicsParam(U8 type, F32 gravity, BOOL material_override,
+ F32 friction, F32 density, F32 restitution) :
+ mType(type),
+ mGravity(gravity),
+ mMaterialOverride(material_override),
+ mFriction(friction),
+ mDensity(density),
+ mRestitution(restitution)
+ {}
+ U8 mType;
+ F32 mGravity;
+ BOOL mMaterialOverride;
+ F32 mFriction;
+ F32 mDensity;
+ F32 mRestitution;
virtual bool apply(LLViewerObject* object)
{
if ( object->permModify() ) // preemptive permissions check
{
- object->setPhysicsShapeType( mValue );
+ object->setPhysicsShapeType( mType );
+ object->setPhysicsGravity(mGravity);
+ object->setPhysicsMaterialOverride(mMaterialOverride);
+ object->setPhysicsFriction(mFriction);
+ object->setPhysicsDensity(mDensity);
+ object->setPhysicsRestitution(mRestitution);
object->updateFlags();
}
return true;
@@ -3953,10 +3971,11 @@ struct LLSelectMgrApplyPhysicsShapeType : public LLSelectedObjectFunctor
};
-void LLSelectMgr::selectionUpdatePhysicsShapeType(U8 type)
+void LLSelectMgr::selectionUpdatePhysicsParam(U8 type, F32 gravity, BOOL material_override,
+ F32 friction, F32 density, F32 restitution)
{
llwarns << "physics shape type ->" << (U32)type << llendl;
- LLSelectMgrApplyPhysicsShapeType func(type);
+ LLSelectMgrApplyPhysicsParam func(type, gravity, material_override, friction, density, restitution);
getSelection()->applyToObjects(&func);
}