@@ 157,6 157,32 @@ public class ProposingBody implements Po
return accepted;
}
+ public boolean setLinearVelocity(Vector2 v) {
+ BodyChange change = Pools.obtain(BodyChange.class);
+ change.newLinearVelocity = v;
+
+ @SuppressWarnings("unchecked")
+ Change<Body> update = Pools.obtain(Change.class);
+ update.setObjectHash(objectHash);
+ update.setChange(change);
+
+ boolean accepted = world.proposeBlocking(update, world.getConnection());
+
+ Pools.free(change);
+ Pools.free(update);
+
+ if(accepted)
+ body.setLinearVelocity(v);
+ return accepted;
+ }
+
+ public boolean setLinearVelocity(float vX, float vY) {
+ Vector2 v = Pools.obtain(Vector2.class).set(vX, vY);
+ boolean accepted = setLinearVelocity(v);
+ Pools.free(v);
+ return accepted;
+ }
+
// local delegates
public void applyTorque(float torque, boolean wake) {body.applyTorque(torque, wake);}
@@ 173,8 199,6 @@ public class ProposingBody implements Po
public Vector2 getLinearVelocity() {return body.getLinearVelocity();}
- public void setLinearVelocity(Vector2 v) {body.setLinearVelocity(v);}
-
public Vector2 getLocalVector(Vector2 worldVector) {return body.getLocalVector(worldVector);}
public float getAngularVelocity() {return body.getAngularVelocity();}
@@ 189,8 213,6 @@ public class ProposingBody implements Po
public void setLinearDamping(float linearDamping) {body.setLinearDamping(linearDamping);}
- public void setLinearVelocity(float vX, float vY) {body.setLinearVelocity(vX, vY);}
-
public boolean isSleepingAllowed() {return body.isSleepingAllowed();}
public void setSleepingAllowed(boolean flag) {body.setSleepingAllowed(flag);}