#ifndef SDLPP_HPP_CIRCLE #define SDLPP_HPP_CIRCLE #include #include "sdlpp_common.hpp" #include "sdlpp_collision.hpp" namespace SDLPP { class SDLPPSCOPE CircleColider : public CollisionPolygon { public: CircleColider( double x, double y, double rad ); virtual ~CircleColider() {} virtual bool colidesWith( const CollisionPolygon &other ) const override; virtual bool isCircle() const override; virtual int topmost() const override; virtual int bottommost() const override; virtual int leftmost() const override; virtual int rightmost() const override; virtual void updateCollision( int x, int y, int w, int h ) override; virtual void render( Renderer &renderer, const std::tuple< int, int, int, int > &color ) override; virtual void render( Renderer &renderer ) override; virtual std::shared_ptr copySelf() override; private: int getRadius() const; double original_rad; int rad_; }; } // namespace SDLPP #endif