Source: model/collisionPaddleCircle.js

/**
 * @author    Wolfgang Kowarschick <kowa@hs-augsburg.de>
 * @copyright 2017 - 2018
 * @license   CC-BY-NC-SA-4.0
 */

/**
 * @module model/collisionPaddleCircle
 */

/**
 * @function collisionPaddleCircle
 * @static
 *
 * @param {ModelPaddle} p_paddle
 * @param {ModelCircle} p_circle
 */
function collisionPaddleCircle(p_paddle, p_circle)
{ if (p_circle.y + 0.5*p_circle.r >= p_paddle.top &&
      p_circle.y - 0.5*p_circle.r <= p_paddle.bottom
     )
  { if (p_circle.vx > 0 &&  // The ball is moving from left to right.
        p_circle.right >= p_paddle.left && p_circle.left < p_paddle.right
       )
    { p_circle.right = p_paddle.left;
      p_circle.vx    = -p_circle.vx;
    }

    if (p_circle.vx < 0 &&  // The ball is moving from right to left.
        p_circle.left <= p_paddle.right && p_circle.right > p_paddle.left
       )
    { p_circle.left = p_paddle.right;
      p_circle.vx   = -p_circle.vx;
    }
  }
}

export {collisionPaddleCircle};