/* ** EPITECH PROJECT, 2021 ** Bomberman ** File description: ** Pixel */ #ifndef CIRCLE3D_HPP_ #define CIRCLE3D_HPP_ #include #include "Drawables/ADrawable3D.hpp" namespace RAY::Drawables::Drawables3D { //! @brief Circle in a three-dimensionnal space class Circle: public ADrawable3D { public: //! @brief Circle constructor //! @param centerPosition position of the center //! @param radius radius of the circle //! @param Color Color of the circle Circle(const Vector3 ¢erPosition, int radius, const Color &color, const Vector3 &rotationAxis, float rotationAngle = 0); //! @brief A default copy constructor Circle(const Circle &) = default; //! @brief A circle is assignable Circle &operator=(const Circle &) = default; //! @brief A default destructor ~Circle() = default; //! @return the radius of the circle int getRadius(void) const; //! @brief set radius Circle &setRadius(int radius); //! @return the position of the center const Vector3 &getCenterPos(void) const; //! @brief set pos of center Circle &setRadius(const Vector3 &pos) const; //! @brief Draw circle on window void drawOn(RAY::Window &) override; private: //! @brief Radius of the circle int _radius; //! @brief position of the center Vector3 _centerPos; //! @brief rotation axis Vector3 _rotationAxis; //! @brief rotation angle float _rotationAngle; }; }; #endif /* !PIXEL_HPP_ */