Bomberman
ADrawable2D.hpp
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2021
3 ** Bomberman
4 ** File description:
5 ** ADrawable
6 */
7 
8 #ifndef ADRAWABLE2D_HPP_
9 #define ADRAWABLE2D_HPP_
10 
11 #include <raylib.h>
12 #include "Vector/Vector2.hpp"
13 #include "Drawables/IDrawable.hpp"
14 #include "Color.hpp"
15 
16 namespace RAY {
17  class Image;
18 }
19 namespace RAY::Drawables {
21  class ADrawable2D: public IDrawable
22  {
23  public:
27  ADrawable2D(const Vector2 &position, const RAY::Color &color, float scale = 1, float rotation = 0);
32  ADrawable2D(int x, int y, const RAY::Color &color, float scale = 1, float rotation = 0);
33 
35  ADrawable2D(const ADrawable2D &) = default;
36 
38  ~ADrawable2D() override = default;
39 
41  const RAY::Vector2 &getPosition(void) const;
42 
44  const RAY::Color &getColor(void) const;
45 
47  ADrawable2D &setPosition(const Vector2 &position);
48 
50  ADrawable2D &setPosition(int x, int y);
51 
53  ADrawable2D &setColor(const Color &color);
54 
56  void drawOn(RAY::Window &) override = 0;
57 
59  virtual void drawOn(RAY::Image &image) = 0;
60 
62  float getScale() const;
64  void setScale(float scale);
65 
66  protected:
68  float _rotation = 0;
70  float _scale = 1;
75 
76  };
77 };
78 
79 #endif /* !ADrawable_HPP_ */
RAY::Window
Definition: Window.hpp:32
RAY::Drawables::ADrawable2D::ADrawable2D
ADrawable2D(const Vector2 &position, const RAY::Color &color, float scale=1, float rotation=0)
ADrawable constructor.
Definition: ADrawable2D.cpp:14
RAY::Drawables::ADrawable2D::getColor
const RAY::Color & getColor(void) const
Definition: ADrawable2D.cpp:36
RAY::Drawables::ADrawable2D::_scale
float _scale
scale
Definition: ADrawable2D.hpp:70
RAY::Drawables::IDrawable
Interface for any drawable.
Definition: IDrawable.hpp:18
RAY::Vector2
A Two-dimensionnal Vector data type.
Definition: Vector2.hpp:15
RAY::Drawables::ADrawable2D::setPosition
ADrawable2D & setPosition(const Vector2 &position)
set Top-left position
Definition: ADrawable2D.cpp:41
RAY::Drawables::ADrawable2D::setScale
void setScale(float scale)
scale setters
Definition: ADrawable2D.cpp:65
RAY
Definition: IAudio.hpp:12
RAY::Drawables::ADrawable2D::_color
Color _color
Color of the ADrawable.
Definition: ADrawable2D.hpp:74
RAY::Drawables::ADrawable2D::_rotation
float _rotation
rotation
Definition: ADrawable2D.hpp:68
IDrawable.hpp
RAY::Drawables
Definition: Circle.cpp:11
RAY::Drawables::ADrawable2D::_position
Vector2 _position
Top-left position.
Definition: ADrawable2D.hpp:72
RAY::Drawables::ADrawable2D::setColor
ADrawable2D & setColor(const Color &color)
set color
Definition: ADrawable2D.cpp:54
RAY::Image
Object representation of a framebuffer.
Definition: Image.hpp:20
RAY::Drawables::ADrawable2D::getPosition
const RAY::Vector2 & getPosition(void) const
Definition: ADrawable2D.cpp:31
RAY::Color
Object representation of color.
Definition: Color.hpp:15
RAY::Drawables::ADrawable2D
Abstraction of any two-dimensionnal drawable.
Definition: ADrawable2D.hpp:21
Color.hpp
Vector2.hpp
RAY::Drawables::ADrawable2D::drawOn
void drawOn(RAY::Window &) override=0
Draw drawble on window.
RAY::Drawables::ADrawable2D::getScale
float getScale() const
scale getter
Definition: ADrawable2D.cpp:60
RAY::Drawables::ADrawable2D::~ADrawable2D
~ADrawable2D() override=default
A default destructor.