Mercurial > projects > chipmunkd
diff trunk/chipmunkd/cpBody.d @ 23:4ceef5833c8c
updated to chipmunk 5.3.3
author | Extrawurst |
---|---|
date | Fri, 10 Dec 2010 02:10:27 +0100 |
parents | df4ebc8add66 |
children | 4541ca17975b |
line wrap: on
line diff
--- a/trunk/chipmunkd/cpBody.d Thu Dec 09 22:25:04 2010 +0100 +++ b/trunk/chipmunkd/cpBody.d Fri Dec 10 02:10:27 2010 +0100 @@ -101,7 +101,11 @@ return (_body.node.next !is null); } -//cpBool cpBodyIsStatic(const cpBody *body); +static cpBool +cpBodyIsStatic(const cpBody *_body) +{ + return _body.node.idleTime == INFINITY; +} static cpBool cpBodyIsRogue(const cpBody* _body) @@ -266,6 +270,21 @@ return cpBodyInit(cpBodyAlloc(), m, i); } +cpBody * +cpBodyInitStatic(cpBody *_body) +{ + cpBodyInit(_body, cast(cpFloat)INFINITY, cast(cpFloat)INFINITY); + _body.node.idleTime = cast(cpFloat)INFINITY; + + return _body; +} + +cpBody * +cpBodyNewStatic() +{ + return cpBodyInitStatic(cpBodyAlloc()); +} + void cpBodyDestroy(cpBody *_body){} void @@ -366,22 +385,4 @@ cpVect f = cpvmult(n, f_spring + f_damp); cpBodyApplyForce(a, f, r1); cpBodyApplyForce(b, cpvneg(f), r2); -} - -cpBool -cpBodyIsStatic(/+const+/ cpBody *_body) -{ - cpSpace *space = _body.space; - return ( (space !is null) && (_body is &space.staticBody) ); -} - -//void cpSpaceSleepBody(cpSpace *space, cpBody *_body); - -void -cpBodySleep(cpBody *_body) -{ - if(cpBodyIsSleeping(_body)) return; - - assert(!cpBodyIsStatic(_body) && !cpBodyIsRogue(_body), "Rogue and static bodies cannot be put to sleep."); - cpSpaceSleepBody(_body.space, _body); -} +} \ No newline at end of file