docs: function checkGeneral( body, bounds, dummy ){
  
          var overlap
              ,aabb = body.aabb()
              ,scratch = Physics.scratchpad()
              ,offset = body.getGlobalOffset( scratch.vector() )
              ,trans = scratch.transform()
              ,dir = scratch.vector()
              ,result = scratch.vector()
              ,collision = false
              ,collisions = []
              ;
  
          // right
          overlap = (aabb.x + aabb.hw) - bounds.max.x;
  
          if ( overlap >= 0 ){
  
              dir.set( 1, 0 ).rotateInv( trans.setRotation( body.state.angular.pos ) );
  
              collision = {
                  bodyA: body,
                  bodyB: dummy,
                  overlap: overlap,
                  norm: {
                      x: 1,
                      y: 0
                  },
                  mtv: {
                      x: overlap,
                      y: 0
                  },
                  pos: body.geometry.getFarthestHullPoint( dir, result ).rotate( trans ).vadd( offset ).values()
              };
  
              collisions.push(collision);
          }
  
          // bottom
          overlap = (aabb.y + aabb.hh) - bounds.max.y;
  
          if ( overlap >= 0 ){
  
              dir.set( 0, 1 ).rotateInv( trans.setRotation( body.state.angular.pos ) );
  
              collision = {
                  bodyA: body,
                  bodyB: dummy,
                  overlap: overlap,
                  norm: {
                      x: 0,
                      y: 1
                  },
                  mtv: {
                      x: 0,
                      y: overlap
                  },
                  pos: body.geometry.getFarthestHullPoint( dir, result ).rotate( trans ).vadd( offset ).values()
              };
  
              collisions.push(collision);
          }
  
          // left
          overlap = bounds.min.x - (aabb.x - aabb.hw);
  
          if ( overlap >= 0 ){
  
              dir.set( -1, 0 ).rotateInv( trans.setRotation( body.state.angular.pos ) );
  
              collision = {
                  bodyA: body,
                  bodyB: dummy,
                  overlap: overlap,
                  norm: {
                      x: -1,
                      y: 0
                  },
                  mtv: {
                      x: -overlap,
                      y: 0
                  },
                  pos: body.geometry.getFarthestHullPoint( dir, result ).rotate( trans ).vadd( offset ).values()
              };
  
              collisions.push(collision);
          }
  
          // top
          overlap = bounds.min.y - (aabb.y - aabb.hh);
  
          if ( overlap >= 0 ){
  
              dir.set( 0, -1 ).rotateInv( trans.setRotation( body.state.angular.pos ) );
  
              collision = {
                  bodyA: body,
                  bodyB: dummy,
                  overlap: overlap,
                  norm: {
                      x: 0,
                      y: -1
                  },
                  mtv: {
                      x: 0,
                      y: -overlap
                  },
                  pos: body.geometry.getFarthestHullPoint( dir, result ).rotate( trans ).vadd( offset ).values()
              };
  
              collisions.push(collision);
          }
  
          scratch.done();
          return collisions;
      }