summaryrefslogtreecommitdiff
path: root/servers/physics/joints/cone_twist_joint_sw.h
diff options
context:
space:
mode:
Diffstat (limited to 'servers/physics/joints/cone_twist_joint_sw.h')
-rw-r--r--servers/physics/joints/cone_twist_joint_sw.h74
1 files changed, 29 insertions, 45 deletions
diff --git a/servers/physics/joints/cone_twist_joint_sw.h b/servers/physics/joints/cone_twist_joint_sw.h
index eb7a5cd1b1..c122c22258 100644
--- a/servers/physics/joints/cone_twist_joint_sw.h
+++ b/servers/physics/joints/cone_twist_joint_sw.h
@@ -51,14 +51,11 @@ Written by: Marcus Hennix
#ifndef CONE_TWIST_JOINT_SW_H
#define CONE_TWIST_JOINT_SW_H
-#include "servers/physics/joints_sw.h"
#include "servers/physics/joints/jacobian_entry_sw.h"
-
-
+#include "servers/physics/joints_sw.h"
///ConeTwistJointSW can be used to simulate ragdoll joints (upper arm, leg etc)
-class ConeTwistJointSW : public JointSW
-{
+class ConeTwistJointSW : public JointSW {
#ifdef IN_PARALLELL_SOLVER
public:
#endif
@@ -72,86 +69,73 @@ public:
BodySW *_arr[2];
};
- JacobianEntrySW m_jac[3]; //3 orthogonal linear constraints
-
+ JacobianEntrySW m_jac[3]; //3 orthogonal linear constraints
real_t m_appliedImpulse;
Transform m_rbAFrame;
Transform m_rbBFrame;
- real_t m_limitSoftness;
- real_t m_biasFactor;
- real_t m_relaxationFactor;
-
- real_t m_swingSpan1;
- real_t m_swingSpan2;
- real_t m_twistSpan;
+ real_t m_limitSoftness;
+ real_t m_biasFactor;
+ real_t m_relaxationFactor;
- Vector3 m_swingAxis;
- Vector3 m_twistAxis;
+ real_t m_swingSpan1;
+ real_t m_swingSpan2;
+ real_t m_twistSpan;
- real_t m_kSwing;
- real_t m_kTwist;
+ Vector3 m_swingAxis;
+ Vector3 m_twistAxis;
- real_t m_twistLimitSign;
- real_t m_swingCorrection;
- real_t m_twistCorrection;
+ real_t m_kSwing;
+ real_t m_kTwist;
- real_t m_accSwingLimitImpulse;
- real_t m_accTwistLimitImpulse;
+ real_t m_twistLimitSign;
+ real_t m_swingCorrection;
+ real_t m_twistCorrection;
- bool m_angularOnly;
- bool m_solveTwistLimit;
- bool m_solveSwingLimit;
+ real_t m_accSwingLimitImpulse;
+ real_t m_accTwistLimitImpulse;
+ bool m_angularOnly;
+ bool m_solveTwistLimit;
+ bool m_solveSwingLimit;
public:
-
virtual PhysicsServer::JointType get_type() const { return PhysicsServer::JOINT_CONE_TWIST; }
virtual bool setup(real_t p_step);
virtual void solve(real_t p_step);
- ConeTwistJointSW(BodySW* rbA,BodySW* rbB,const Transform& rbAFrame, const Transform& rbBFrame);
-
+ ConeTwistJointSW(BodySW *rbA, BodySW *rbB, const Transform &rbAFrame, const Transform &rbBFrame);
- void setAngularOnly(bool angularOnly)
- {
+ void setAngularOnly(bool angularOnly) {
m_angularOnly = angularOnly;
}
- void setLimit(real_t _swingSpan1,real_t _swingSpan2,real_t _twistSpan, real_t _softness = 0.8f, real_t _biasFactor = 0.3f, real_t _relaxationFactor = 1.0f)
- {
+ void setLimit(real_t _swingSpan1, real_t _swingSpan2, real_t _twistSpan, real_t _softness = 0.8f, real_t _biasFactor = 0.3f, real_t _relaxationFactor = 1.0f) {
m_swingSpan1 = _swingSpan1;
m_swingSpan2 = _swingSpan2;
- m_twistSpan = _twistSpan;
+ m_twistSpan = _twistSpan;
- m_limitSoftness = _softness;
+ m_limitSoftness = _softness;
m_biasFactor = _biasFactor;
m_relaxationFactor = _relaxationFactor;
}
- inline int getSolveTwistLimit()
- {
+ inline int getSolveTwistLimit() {
return m_solveTwistLimit;
}
- inline int getSolveSwingLimit()
- {
+ inline int getSolveSwingLimit() {
return m_solveTwistLimit;
}
- inline real_t getTwistLimitSign()
- {
+ inline real_t getTwistLimitSign() {
return m_twistLimitSign;
}
void set_param(PhysicsServer::ConeTwistJointParam p_param, real_t p_value);
real_t get_param(PhysicsServer::ConeTwistJointParam p_param) const;
-
-
};
-
-
#endif // CONE_TWIST_JOINT_SW_H