Mountain  1.0.0
Simple C++ 2D Game Framework
circle.hpp
1 #pragma once
2 
3 #include "Mountain/core.hpp"
4 
5 #include "Mountain/collision/collider.hpp"
6 
7 namespace Mountain
8 {
9  class MOUNTAIN_API Circle : public Collider
10  {
11  public:
12  float_t radius = 0.f;
13 
14  Circle();
15  Circle(Vector2 off, float_t radius);
16 
17  void RenderDebug(const Color& color) const override;
18 
19  [[nodiscard]]
20  bool CheckCollision(Vector2 point) const override;
21  [[nodiscard]]
22  bool CheckCollision(const Hitbox& hitbox) const override;
23  [[nodiscard]]
24  bool CheckCollision(const Circle& circle) const override;
25  [[nodiscard]]
26  bool CheckCollision(const Grid& grid) const override;
27  [[nodiscard]]
28  bool CheckCollision(const ColliderList& list) const override;
29 
30  [[nodiscard]]
31  bool Intersect(Vector2 p1, Vector2 p2) const;
32 
33  [[nodiscard]]
34  float_t Left() const override;
35  [[nodiscard]]
36  float_t Right() const override;
37  [[nodiscard]]
38  float_t Top() const override;
39  [[nodiscard]]
40  float_t Bottom() const override;
41  [[nodiscard]]
42  Vector2 Center() const override;
43  [[nodiscard]]
44  Vector2 TopLeft() const override;
45  [[nodiscard]]
46  Vector2 TopRight() const override;
47  [[nodiscard]]
48  Vector2 BottomLeft() const override;
49  [[nodiscard]]
50  Vector2 BottomRight() const override;
51 
52  [[nodiscard]]
53  float AbsoluteLeft() const override;
54  [[nodiscard]]
55  float AbsoluteRight() const override;
56  [[nodiscard]]
57  float AbsoluteTop() const override;
58  [[nodiscard]]
59  float AbsoluteBottom() const override;
60  [[nodiscard]]
61  Vector2 AbsoluteCenter() const override;
62  [[nodiscard]]
63  Vector2 AbsoluteTopLeft() const override;
64  [[nodiscard]]
65  Vector2 AbsoluteTopRight() const override;
66  [[nodiscard]]
67  Vector2 AbsoluteBottomLeft() const override;
68  [[nodiscard]]
69  Vector2 AbsoluteBottomRight() const override;
70 
71  [[nodiscard]]
72  float Width() const override;
73  [[nodiscard]]
74  float Height() const override;
75  [[nodiscard]]
76  Vector2 Size() const override;
77  };
78 }
The Color struct represents a color in RGBA color space.
Definition: color.hpp:26
Contains all declarations of the Mountain Framework.
Definition: audio.hpp:22