Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef __Vector2d__
- #define __Vector2d__
- #include <math.h>
- #include <iostream>
- #include <vector>
- #include <utility>
- class Vector2d
- {
- public:
- Vector2d(float x, float y) : m_x(x), m_y(y) {}
- float getX() { return m_x; }
- float getY() { return m_y; }
- void setX(float x) { m_x = x; }
- void setY(float y) { m_y = y; }
- float length() { return sqrt(m_x * m_x + m_y * m_y) ; }
- Vector2d operator+ (const Vector2d& v2) const
- {
- return Vector2d (m_x + v2.m_x, m_y + v2.m_y);
- }
- friend Vector2d& operator +=(Vector2d& v1, Vector2d& v2)
- {
- v1.m_x += v2.m_x;
- v1.m_y += v2.m_y;
- return v1;
- }
- Vector2d operator* (float scalar)
- {
- return Vector2d(m_x * scalar, m_y * scalar);
- }
- Vector2d& operator*= (float scalar)
- {
- m_x *= scalar;
- m_y *= scalar;
- return *this;
- }
- Vector2d operator- (const Vector2d& v2) const
- {
- return Vector2d(m_x - v2.m_x, m_y - v2.m_y);
- }
- friend Vector2d& operator-=(Vector2d& v1, const Vector2d& v2)
- {
- v1.m_x -= v2.m_x;
- v1.m_y -= v2.m_y;
- return v1;
- }
- Vector2d operator/(float scalar)
- {
- return Vector2d(m_x / scalar, m_y / scalar);
- }
- Vector2d& operator/=(float scalar)
- {
- m_x /= scalar;
- m_y /= scalar;
- return *this;
- }
- void normalize()
- {
- float l = length();
- if ( l > 0 )
- {
- (*this) *= l/1;
- }
- }
- private:
- std::vector<std::pair<Vector2d*, Vector2d*>> m_joystickValues;
- float m_x;
- float m_y;
- };
- #endif /*defined (Vector2D) */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement