Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Vector3.h by Vassillen M. Chizhov
- #pragma once
- #include "util.h"
- namespace myGameMathLib
- {
- class Vector3
- {
- public:
- FP x;
- FP y;
- FP z;
- public:
- Vector3();
- Vector3(FP value);
- Vector3(FP x, FP y, FP z);
- Vector3(const Vector3& another);
- public:
- Vector3& operator=(const Vector3& another);
- Vector3& operator+=(const Vector3& another);
- Vector3& operator-=(const Vector3& another);
- //componentwise multiplication
- Vector3& operator*=(const Vector3& another);
- //componentwise division
- Vector3& operator/=(const Vector3& another);
- Vector3& operator*=(FP scalar);
- Vector3& operator/=(FP scalar);
- Vector3 operator+();
- Vector3 operator-();
- public:
- FP length() const;
- FP lengthSquared() const;
- Vector3& normalize();
- Vector3& reflect(const Vector3& another);
- Vector3& reflectNormalized(const Vector3& another);
- Vector3& clearTo(FP value);
- public:
- static Vector3 Zero;
- };
- //compare
- bool operator==(const Vector3& vec1, const Vector3& vec2);
- bool operator!=(const Vector3& vec1, const Vector3& vec2);
- //arithmetic
- Vector3 operator+(const Vector3& vec1, const Vector3& vec2);
- Vector3 operator-(const Vector3& vec1, const Vector3& vec2);
- //Vector2 operator-(const Vector2& vec);
- //componentwise multiplication
- Vector3 operator*(const Vector3& vec1, const Vector3& vec2);
- //componentwise division
- Vector3 operator/(const Vector3& vec1, const Vector3& vec2);
- //scalar multiplication and division
- Vector3 operator*(const Vector3& vec, FP scalar);
- Vector3 operator*(FP scalar, const Vector3& vec);
- Vector3 operator/(const Vector3& vec, FP scalar);
- Vector3 operator/(FP scalar, const Vector3& vec);
- //dot product
- FP dotProduct(const Vector3& vec1, const Vector3& vec2);
- //cross product
- Vector3 crossProduct(const Vector3& vec1, const Vector3& vec2);
- //length squared and length
- FP lengthSquared(const Vector3& vec);
- FP length(const Vector3& vec);
- Vector3& normalize(Vector3& vec);
- Vector3& reflect(Vector3& vec, const Vector3& around);
- Vector3& reflectNormalized(Vector3& vec, const Vector3& around);
- Vector3& clearTo(Vector3& vec, FP value);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement