#pragma once #include #include class BrickGrid; class Paddle; struct Ball { inline static const float initialVelocity = 700; inline static const sf::Color color {246, 213, 92}; float radius; sf::Vector2f position; sf::Vector2f velocity; Ball(float radius, sf::Vector2f position, sf::Vector2f velocity); void update(float dt); void draw(sf::RenderWindow& window); std::pair findClosestPoint(const sf::FloatRect& rect) const; bool handleRectCollision(const sf::FloatRect& rect); void handleWallsCollision(sf::FloatRect boundary); std::pair handleBrickGridCollision(const BrickGrid& brickGrid); void handlePaddleCollision(const Paddle& paddle); };