Advertisement
Guest User

Vector3.h

a guest
Mar 5th, 2015
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | None | 0 0
  1. //Vector3.h by Vassillen M. Chizhov
  2. #pragma once
  3. #include "util.h"
  4. namespace myGameMathLib
  5. {
  6.     class Vector3
  7.     {
  8.     public:
  9.         FP x;
  10.         FP y;
  11.         FP z;
  12.  
  13.     public:
  14.         Vector3();
  15.  
  16.         Vector3(FP value);
  17.  
  18.         Vector3(FP x, FP y, FP z);
  19.  
  20.         Vector3(const Vector3& another);
  21.  
  22.  
  23.     public:
  24.  
  25.         Vector3& operator=(const Vector3& another);
  26.  
  27.         Vector3& operator+=(const Vector3& another);
  28.  
  29.         Vector3& operator-=(const Vector3& another);
  30.  
  31.         //componentwise multiplication
  32.         Vector3& operator*=(const Vector3& another);
  33.  
  34.         //componentwise division
  35.         Vector3& operator/=(const Vector3& another);
  36.  
  37.         Vector3& operator*=(FP scalar);
  38.  
  39.         Vector3& operator/=(FP scalar);
  40.  
  41.         Vector3 operator+();
  42.  
  43.         Vector3 operator-();
  44.  
  45.     public:
  46.  
  47.         FP length() const;
  48.  
  49.         FP lengthSquared() const;
  50.  
  51.         Vector3& normalize();
  52.  
  53.         Vector3& reflect(const Vector3& another);
  54.  
  55.         Vector3& reflectNormalized(const Vector3& another);
  56.  
  57.         Vector3& clearTo(FP value);
  58.  
  59.     public:
  60.  
  61.         static Vector3 Zero;
  62.  
  63.     };
  64.  
  65.     //compare
  66.     bool operator==(const Vector3& vec1, const Vector3& vec2);
  67.  
  68.     bool operator!=(const Vector3& vec1, const Vector3& vec2);
  69.  
  70.     //arithmetic
  71.     Vector3 operator+(const Vector3& vec1, const Vector3& vec2);
  72.  
  73.     Vector3 operator-(const Vector3& vec1, const Vector3& vec2);
  74.  
  75.     //Vector2 operator-(const Vector2& vec);
  76.  
  77.     //componentwise multiplication
  78.     Vector3 operator*(const Vector3& vec1, const Vector3& vec2);
  79.  
  80.     //componentwise division
  81.     Vector3 operator/(const Vector3& vec1, const Vector3& vec2);
  82.  
  83.     //scalar multiplication and division
  84.     Vector3 operator*(const Vector3& vec, FP scalar);
  85.  
  86.     Vector3 operator*(FP scalar, const Vector3& vec);
  87.  
  88.     Vector3 operator/(const Vector3& vec, FP scalar);
  89.  
  90.     Vector3 operator/(FP scalar, const Vector3& vec);
  91.  
  92.     //dot product
  93.     FP dotProduct(const Vector3& vec1, const Vector3& vec2);
  94.  
  95.     //cross product
  96.     Vector3 crossProduct(const Vector3& vec1, const Vector3& vec2);
  97.  
  98.     //length squared and length
  99.     FP lengthSquared(const Vector3& vec);
  100.  
  101.     FP length(const Vector3& vec);
  102.  
  103.     Vector3& normalize(Vector3& vec);
  104.  
  105.     Vector3& reflect(Vector3& vec, const Vector3& around);
  106.  
  107.     Vector3& reflectNormalized(Vector3& vec, const Vector3& around);
  108.  
  109.     Vector3& clearTo(Vector3& vec, FP value);
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement