Mercurial > projects > chipmunkd
comparison 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 |
comparison
equal
deleted
inserted
replaced
22:ed2c81f3d1df | 23:4ceef5833c8c |
---|---|
99 cpBodyIsSleeping(const cpBody *_body) | 99 cpBodyIsSleeping(const cpBody *_body) |
100 { | 100 { |
101 return (_body.node.next !is null); | 101 return (_body.node.next !is null); |
102 } | 102 } |
103 | 103 |
104 //cpBool cpBodyIsStatic(const cpBody *body); | 104 static cpBool |
105 cpBodyIsStatic(const cpBody *_body) | |
106 { | |
107 return _body.node.idleTime == INFINITY; | |
108 } | |
105 | 109 |
106 static cpBool | 110 static cpBool |
107 cpBodyIsRogue(const cpBody* _body) | 111 cpBodyIsRogue(const cpBody* _body) |
108 { | 112 { |
109 return (_body.space is null); | 113 return (_body.space is null); |
264 cpBodyNew(cpFloat m, cpFloat i) | 268 cpBodyNew(cpFloat m, cpFloat i) |
265 { | 269 { |
266 return cpBodyInit(cpBodyAlloc(), m, i); | 270 return cpBodyInit(cpBodyAlloc(), m, i); |
267 } | 271 } |
268 | 272 |
273 cpBody * | |
274 cpBodyInitStatic(cpBody *_body) | |
275 { | |
276 cpBodyInit(_body, cast(cpFloat)INFINITY, cast(cpFloat)INFINITY); | |
277 _body.node.idleTime = cast(cpFloat)INFINITY; | |
278 | |
279 return _body; | |
280 } | |
281 | |
282 cpBody * | |
283 cpBodyNewStatic() | |
284 { | |
285 return cpBodyInitStatic(cpBodyAlloc()); | |
286 } | |
287 | |
269 void cpBodyDestroy(cpBody *_body){} | 288 void cpBodyDestroy(cpBody *_body){} |
270 | 289 |
271 void | 290 void |
272 cpBodyFree(cpBody *_body) | 291 cpBodyFree(cpBody *_body) |
273 { | 292 { |
365 // Apply! | 384 // Apply! |
366 cpVect f = cpvmult(n, f_spring + f_damp); | 385 cpVect f = cpvmult(n, f_spring + f_damp); |
367 cpBodyApplyForce(a, f, r1); | 386 cpBodyApplyForce(a, f, r1); |
368 cpBodyApplyForce(b, cpvneg(f), r2); | 387 cpBodyApplyForce(b, cpvneg(f), r2); |
369 } | 388 } |
370 | |
371 cpBool | |
372 cpBodyIsStatic(/+const+/ cpBody *_body) | |
373 { | |
374 cpSpace *space = _body.space; | |
375 return ( (space !is null) && (_body is &space.staticBody) ); | |
376 } | |
377 | |
378 //void cpSpaceSleepBody(cpSpace *space, cpBody *_body); | |
379 | |
380 void | |
381 cpBodySleep(cpBody *_body) | |
382 { | |
383 if(cpBodyIsSleeping(_body)) return; | |
384 | |
385 assert(!cpBodyIsStatic(_body) && !cpBodyIsRogue(_body), "Rogue and static bodies cannot be put to sleep."); | |
386 cpSpaceSleepBody(_body.space, _body); | |
387 } |