My Project
Position.hpp
1 /*
2 ** EPITECH PROJECT, 2022
3 ** B-YEP-400-PAR-4-1-indiestudio-martin.vanaud
4 ** File description:
5 ** Position
6 */
7 
8 #ifndef POSITION_HPP_
9  #define POSITION_HPP_
10 
11  #include <raylib.h>
12 
13  #include <array>
14  #include <ostream>
15 
19 class Position {
20  public:
28  Position(float x, float y, float z = 0);
34  Position(Position const &position);
38  Position();
39 
43  ~Position();
44 
52  bool operator ==(Position const &position);
53 
59  Position &setFromArray(std::array<float, 3> const &position);
66  Position &operator =(Position const &position);
73  Position &operator =(float pos);
74 
81  Position operator +(float value);
82 
89  Position operator +(Position const &position);
90 
97  Position operator -(float value);
98 
105  Position operator -(Position const &position);
106 
113  Position operator *(float value);
114 
121  Position operator *(Position const &position);
122 
129  Position &operator +=(Position const &position);
136  Position &operator +=(float number);
137 
144  Position &operator -=(Position const &position);
151  Position &operator -=(float number);
152 
159  Position &operator *=(Position const &position);
166  Position &operator *=(float number);
167 
175  Position &operator /=(Position const &position);
183  Position &operator /=(float number);
184 
191  void setPosition(float x, float y);
199  void setPosition(float x, float y, float z);
205  void setPosition(Position const &position);
211  void setX(float x);
217  void setY(float y);
223  void setZ(float z);
224 
229  void reset();
230 
236  std::array<float, 3> getPosition() const;
242  float getX() const;
248  float getY() const;
254  float getZ() const;
255 
261  Vector3 getVector3() const;
267  Vector2 getVector2() const;
268  private:
269  float _x;
270  float _y;
271  float _z;
272 };
273 
279 std::ostream &operator<<(std::ostream &, const Position &);
280 
289 bool operator <(Position const &position, float value);
290 
299 bool operator <(Position const &position, Position const &position2);
300 
309 bool operator >(Position const &position, float value);
310 
319 bool operator >(Position const &position, Position const &position2);
320 
321 #endif /* !POSITION_HPP_ */
Position
3 dimension Position class (x, y, z)
Definition: Position.hpp:19
Position::Position
Position()
Construct a new Position object from default values.
Definition: Position.cpp:20
Position::operator*
Position operator*(float value)
Overload the * operator.
Definition: Position.cpp:92
Position::operator+
Position operator+(float value)
Overload the + operator.
Definition: Position.cpp:60
Position::getX
float getX() const
get x value
Definition: Position.cpp:223
Position::operator+=
Position & operator+=(Position const &position)
Add to x, y, z respectively the x, y, z of the Position object sent as parameter.
Definition: Position.cpp:108
Position::getZ
float getZ() const
get z value
Definition: Position.cpp:233
Position::getVector2
Vector2 getVector2() const
Get the Vector2 object from Position values.
Definition: Position.cpp:243
Position::reset
void reset()
reset x, y, z to 0
Definition: Position.cpp:211
Position::operator-
Position operator-(float value)
Overload the - operator.
Definition: Position.cpp:76
Position::setY
void setY(float y)
set y value
Definition: Position.cpp:201
Position::operator/=
Position & operator/=(Position const &position)
divide to x, y, z respectively the x, y, z of the Position object sent as parameter
Definition: Position.cpp:156
Position::getVector3
Vector3 getVector3() const
Get the Vector3 object from Position values.
Definition: Position.cpp:238
Position::setFromArray
Position & setFromArray(std::array< float, 3 > const &position)
Set x, y, z from other float array.
Definition: Position.cpp:36
Position::setZ
void setZ(float z)
set z value
Definition: Position.cpp:206
Position::setX
void setX(float x)
set x value
Definition: Position.cpp:196
Position::setPosition
void setPosition(float x, float y)
Set the position.
Definition: Position.cpp:176
Position::getPosition
std::array< float, 3 > getPosition() const
Get x, y, z position in an array.
Definition: Position.cpp:218
Position::operator*=
Position & operator*=(Position const &position)
multiply to x, y, z respectively the x, y, z of the Position object sent as parameter
Definition: Position.cpp:140
Position::operator-=
Position & operator-=(Position const &position)
Substract to x, y, z respectively the x, y, z of the Position object sent as parameter.
Definition: Position.cpp:124
Position::operator=
Position & operator=(Position const &position)
Set x, y, z from other Postition object.
Definition: Position.cpp:44
Position::operator==
bool operator==(Position const &position)
Check if all positions are the same (x, y z)
Definition: Position.cpp:29
Position::getY
float getY() const
get y value
Definition: Position.cpp:228
Position::~Position
~Position()
Destroy the Position object.
Definition: Position.cpp:25