5 #include "InternalSpring.h"
8 namespace JellyPhysics
{
10 class SpringBody
: public Body
{
13 World
*w
, const ClosedShape
&shape
, float massPerPoint
,
14 float edgeSpringK
, float edgeSpringDamp
,
15 const Vector2
&pos
, float angleInRadians
,
16 const Vector2
&scale
, bool kinematic
);
19 World
*w
, const ClosedShape
&shape
, float massPerPoint
,
20 float shapeSpringK
, float shapeSpringDamp
,
21 float edgeSpringK
, float edgeSpringDamp
,
22 const Vector2
&pos
, float angleinRadians
,
23 const Vector2
&scale
, bool kinematic
);
25 void addInternalSpring (int pointA
, int pointB
, float springK
, float damping
);
27 void clearAllSprings ();
29 void _buildDefaultSprings ();
31 void setShapeMatching (bool onoff
) { mShapeMatchingOn
= onoff
; }
32 void setShapeMatchingConstants (float springK
, float damping
) { mShapeSpringK
= springK
; mShapeSpringDamp
= damping
; }
34 void setEdgeSpringConstants (float edgeSpringK
, float edgeSpringDamp
);
35 void setSpringConstants (int springID
, float springK
, float springDamp
);
37 float getSpringK (int springID
) const;
38 float getSpringDamping (int springID
) const;
40 void accumulateInternalForces ();
43 typedef std::vector
<InternalSpring
> SpringList
;
46 bool mShapeMatchingOn
;
48 float mEdgeSpringDamp
;
50 float mShapeSpringDamp
;