static void BodyIterator(IntPtr body, IntPtr data) { var handle = GCHandle.FromIntPtr(data); var action = (Action <Body>)handle.Target; action(Body.FromIntPtr(body)); }
static void PostStepForBody(IntPtr space, IntPtr obj, IntPtr data) { var handle = GCHandle.FromIntPtr(data); var action = (Action <Body>)handle.Target; handle.Free(); action(obj == IntPtr.Zero ? null : Body.FromIntPtr(obj)); }
public void GetBodies(out Body bodyA, out Body bodyB) { IntPtr a, b; __cpArbiterGetBodies(Handle.Handle, out a, out b); bodyA = Body.FromIntPtr(a); bodyB = Body.FromIntPtr(b); }
public void EachArbiter(Action <Body, Arbiter> action) { ArbiterIterator iterator = (body, arbiter, data) => { action(Body.FromIntPtr(body), new Arbiter(arbiter)); }; cpBodyEachArbiter(Handle.Handle, iterator, IntPtr.Zero); }
public void EachConstraint(Action <Body, Constraint> action) { ConstraintIterator iterator = (body, constraint, data) => { action(Body.FromIntPtr(body), Constraint.FromIntPtr(constraint)); }; cpBodyEachConstraint(Handle.Handle, iterator, IntPtr.Zero); }
public void EachShape(Action <Body, Shape> action) { ShapeIterator iterator = (body, shape, data) => { action(Body.FromIntPtr(body), Shape.FromIntPtr(shape)); }; cpBodyEachShape(Handle.Handle, iterator, IntPtr.Zero); }