From 9e0e01b7f4375063f06e494113187d48614628e0 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 30 Nov 2021 22:25:37 +0800 Subject: +init --- Client/Source/Phy2D/Dynamic/Joint.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Client/Source/Phy2D/Dynamic/Joint.h (limited to 'Client/Source/Phy2D/Dynamic/Joint.h') 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; + }; + +} -- cgit v1.1-26-g67d0