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