diff options
Diffstat (limited to 'Client/Source/Phy2D/Dynamic/Joint.h')
-rw-r--r-- | Client/Source/Phy2D/Dynamic/Joint.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Client/Source/Phy2D/Dynamic/Joint.h b/Client/Source/Phy2D/Dynamic/Joint.h new file mode 100644 index 0000000..34d8d8d --- /dev/null +++ b/Client/Source/Phy2D/Dynamic/Joint.h @@ -0,0 +1,34 @@ +#pragma once + +#include "../Common/Math.h" + +namespace Phy2D +{ + + struct Body; + + struct Joint + { + Joint() : + body1(0), body2(0), + P(0.0f, 0.0f), + biasFactor(0.2f), softness(0.0f) + {} + + void Set(Body* body1, Body* body2, const Vec2& anchor); + + void PreStep(number inv_dt); + void ApplyImpulse(); + + Mat22 M; + Vec2 localAnchor1, localAnchor2; + Vec2 r1, r2; + Vec2 bias; + Vec2 P; // accumulated impulse + Body* body1; + Body* body2; + number biasFactor; + number softness; + }; + +} |