-
Notifications
You must be signed in to change notification settings - Fork 2
/
Vector3d.h
110 lines (81 loc) · 2.03 KB
/
Vector3d.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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#ifndef GUI_VECTOR_3D_H__
#define GUI_VECTOR_3D_H__
/**
* A vector in 3D.
*/
struct Vector3d {
Vector3d() :
x(0), y(0), z(0) {}
Vector3d(float x_, float y_, float z_) :
x(x_), y(y_), z(z_) {};
float x, y, z;
};
inline Vector3d operator+(const Vector3d& pt3dPoint1, const Vector3d& pt3dPoint2)
{
Vector3d result;
result.x = pt3dPoint1.x + pt3dPoint2.x;
result.y = pt3dPoint1.y + pt3dPoint2.y;
result.z = pt3dPoint1.z + pt3dPoint2.z;
return result;
}
inline Vector3d operator-(const Vector3d& pt3dPoint1, const Vector3d& pt3dPoint2)
{
Vector3d result;
result.x = pt3dPoint1.x - pt3dPoint2.x;
result.y = pt3dPoint1.y - pt3dPoint2.y;
result.z = pt3dPoint1.z - pt3dPoint2.z;
return result;
}
inline Vector3d operator*(const Vector3d& pt3dPoint, float fScale)
{
Vector3d result;
result.x = pt3dPoint.x*fScale;
result.y = pt3dPoint.y*fScale;
result.z = pt3dPoint.z*fScale;
return result;
}
inline Vector3d operator*(float fScale, const Vector3d& pt3dPoint)
{
Vector3d result;
result.x = pt3dPoint.x*fScale;
result.y = pt3dPoint.y*fScale;
result.z = pt3dPoint.z*fScale;
return result;
}
inline Vector3d operator/(const Vector3d& pt3dPoint, float fScale)
{
Vector3d result;
result.x = pt3dPoint.x/fScale;
result.y = pt3dPoint.y/fScale;
result.z = pt3dPoint.z/fScale;
return result;
}
inline Vector3d& operator*=(Vector3d& pt3dPoint, float fScale)
{
pt3dPoint.x *= fScale;
pt3dPoint.y *= fScale;
pt3dPoint.z *= fScale;
return pt3dPoint;
}
inline Vector3d& operator/=(Vector3d& pt3dPoint, float fScale)
{
pt3dPoint.x /= fScale;
pt3dPoint.y /= fScale;
pt3dPoint.z /= fScale;
return pt3dPoint;
}
inline Vector3d& operator+=(Vector3d& pt3dPoint1, const Vector3d& pt3dPoint2)
{
pt3dPoint1.x += pt3dPoint2.x;
pt3dPoint1.y += pt3dPoint2.y;
pt3dPoint1.z += pt3dPoint2.z;
return pt3dPoint1;
}
inline Vector3d& operator-=(Vector3d& pt3dPoint1, const Vector3d& pt3dPoint2)
{
pt3dPoint1.x -= pt3dPoint2.x;
pt3dPoint1.y -= pt3dPoint2.y;
pt3dPoint1.z -= pt3dPoint2.z;
return pt3dPoint1;
}
#endif // GUI_VECTOR_3D_H__