Advertisement
Al99

Vector2d.h

Nov 11th, 2019
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. #ifndef __Vector2d__
  2. #define __Vector2d__
  3.  
  4. #include <math.h>
  5. #include <iostream>
  6. #include <vector>
  7. #include <utility>
  8.  
  9. class Vector2d
  10. {
  11.     public:
  12.     Vector2d(float x, float y) : m_x(x), m_y(y) {}
  13.    
  14.     float getX() { return m_x; }
  15.     float getY() { return m_y; }
  16.    
  17.     void setX(float x) { m_x = x; }
  18.     void setY(float y) { m_y = y; }
  19.    
  20.     float length() { return sqrt(m_x * m_x + m_y * m_y) ; }
  21.    
  22.     Vector2d operator+ (const Vector2d& v2) const
  23.     {
  24.     return Vector2d (m_x + v2.m_x, m_y + v2.m_y);
  25.     }
  26.    
  27.     friend Vector2d& operator +=(Vector2d& v1, Vector2d& v2)
  28.     {
  29.         v1.m_x += v2.m_x;
  30.         v1.m_y += v2.m_y;
  31.        
  32.         return v1;
  33.     }
  34.    
  35.     Vector2d operator* (float scalar)
  36.     {
  37.         return Vector2d(m_x * scalar, m_y * scalar);
  38.     }
  39.    
  40.     Vector2d& operator*= (float scalar)
  41.     {
  42.         m_x *= scalar;
  43.         m_y *= scalar;
  44.        
  45.         return *this;
  46.     }
  47.    
  48.     Vector2d operator- (const Vector2d& v2) const
  49.     {
  50.         return Vector2d(m_x - v2.m_x, m_y - v2.m_y);
  51.     }
  52.    
  53.     friend Vector2d& operator-=(Vector2d& v1, const Vector2d& v2)
  54.     {
  55.         v1.m_x -= v2.m_x;
  56.         v1.m_y -= v2.m_y;
  57.    
  58.         return v1;
  59.    
  60.     }
  61.    
  62.     Vector2d operator/(float scalar)
  63.     {
  64.         return Vector2d(m_x / scalar, m_y / scalar);
  65.     }
  66.    
  67.     Vector2d& operator/=(float scalar)
  68.     {
  69.         m_x /= scalar;
  70.         m_y /= scalar;
  71.        
  72.         return *this;
  73.     }
  74.    
  75.     void normalize()
  76.     {
  77.         float l = length();
  78.         if ( l > 0 )
  79.         {
  80.             (*this) *= l/1;
  81.         }  
  82.     }
  83.    
  84.     private:
  85.    
  86.     std::vector<std::pair<Vector2d*, Vector2d*>> m_joystickValues;
  87.    
  88.     float m_x;
  89.     float m_y;
  90. };
  91.  
  92. #endif /*defined (Vector2D) */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement