-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvector.h
45 lines (39 loc) · 1.32 KB
/
vector.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#pragma once
#include <math.h>
#include <iostream>
class Vector3 {
public:
Vector3() {};
Vector3(float, float, float);
float getX() const;
float getY() const;
float getZ() const;
float getR() const;
float getG() const;
float getB() const;
const Vector3& operator+() const;
Vector3 operator-() const;
float operator[](int) const;
float& operator[](int);
Vector3& operator+=(const Vector3&);
Vector3& operator-=(const Vector3&);
Vector3& operator*=(const Vector3&);
Vector3& operator/=(const Vector3&);
Vector3& operator*=(const float);
Vector3& operator/=(const float);
float length() const;
float squared_length() const;
void make_unit_vector();
// private:
float e[3];
};
Vector3 operator+(const Vector3&, const Vector3&);
Vector3 operator-(const Vector3&, const Vector3&);
Vector3 operator*(const Vector3&, const Vector3&);
Vector3 operator*(float, const Vector3&);
Vector3 operator*(const Vector3&, float);
Vector3 operator/(const Vector3&, const Vector3&);
Vector3 operator/(const Vector3, float);
Vector3 unit_vector(Vector3);
float dot(const Vector3&, const Vector3&);
Vector3 cross(const Vector3&, const Vector3&);