/// <seealso cref="Silver.Weight.Raw.BroadCollisionStrategy.CollideBodies(Silver.Weight.Raw.CollisionContext, Silver.Weight.Raw.BodyList, float)">
        /// </seealso>
        public virtual void CollideBodies(CollisionContext context, BodyList bodies, float dt)
        {
            spaces.Clear();
            Space space = new Space( 0, 0, 0, 0);

            for (int i = 0; i < bodies.Size(); i++)
            {
                Body body = bodies.Item(i);

                space.AddAABox(body.Shape.Bounds, body.GetPosition().X, body.GetPosition().Y);
                space.AddBody(body);
            }

            SplitSpace(space, 0, maxInSpace, spaces);

            for (int i = 0; i < spaces.Count; i++)
            {
                context.Resolve((Space) spaces[i], dt);
            }
        }
 /// <seealso cref="Silver.Weight.Raw.BroadCollisionStrategy.CollideBodies(Silver.Weight.Raw.CollisionContext, Silver.Weight.Raw.BodyList, float)">
 /// </seealso>
 public virtual void CollideBodies(CollisionContext context, BodyList bodies, float dt)
 {
     context.Resolve(bodies, dt);
 }