-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathvector3.cpp
More file actions
125 lines (98 loc) · 2.35 KB
/
vector3.cpp
File metadata and controls
125 lines (98 loc) · 2.35 KB
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include "vector3.h"
namespace HYF
{
vector3::vector3() : x( 0.0 ), y( 0.0 ), z( 0.0 ) {};
vector3::vector3( double p_X, double p_Y, double p_Z ) : x( p_X ), y( p_Y ), z( p_Z ) {};
void vector3::set( double p_X, double p_Y, double p_Z )
{
x = p_X; y = p_Y; z = p_Z;
}
double vector3::Length()
{
return (double)sqrt( x * x + y * y + z * z );
}
double vector3::SqrLength()
{
return x * x + y * y + z * z;
}
double vector3::Dot( vector3 p_V )
{
return x * p_V.x + y * p_V.y + z * p_V.z;
}
vector3 vector3::Cross( vector3 b )
{
return vector3( y * b.z - z * b.y, z * b.x - x * b.z, x * b.y - y * b.x );
}
vector3 vector3::mult(const vector3 &b)
{
return vector3(x*b.x,y*b.y,z*b.z);
}
vector3& vector3::norm()
{
return *this = *this * (1/sqrt(x*x+y*y+z*z));
}
vector3 vector3::operator%(vector3& b)
{
return vector3(y*b.z-z*b.y,z*b.x-x*b.z,x*b.y-y*b.x);
}
void vector3::operator += ( vector3& p_V )
{
x += p_V.x; y += p_V.y; z += p_V.z;
}
void vector3::operator += ( vector3* p_V )
{
x += p_V->x; y += p_V->y; z += p_V->z;
}
void vector3::operator -= ( vector3& p_V )
{
x -= p_V.x; y -= p_V.y; z -= p_V.z;
}
void vector3::operator -= ( vector3* p_V )
{
x -= p_V->x; y -= p_V->y; z -= p_V->z;
}
void vector3::operator *= ( double f )
{
x *= f; y *= f; z *= f;
}
void vector3::operator *= ( vector3& p_V )
{
x *= p_V.x; y *= p_V.y; z *= p_V.z;
}
void vector3::operator *= ( vector3* p_V )
{
x *= p_V->x; y *= p_V->y; z *= p_V->z;
}
vector3 vector3::operator- () const
{
return vector3( -x, -y, -z );
}
vector3 operator + ( const vector3& v1, const vector3& v2 )
{
return vector3( v1.x + v2.x, v1.y + v2.y, v1.z + v2.z );
}
vector3 operator - ( const vector3& v1, const vector3& v2 )
{
return vector3( v1.x - v2.x, v1.y - v2.y, v1.z - v2.z );
}
vector3 operator + ( const vector3& v1, vector3* v2 )
{
return vector3( v1.x + v2->x, v1.y + v2->y, v1.z + v2->z );
}
vector3 operator - ( const vector3& v1, vector3* v2 )
{
return vector3( v1.x - v2->x, v1.y - v2->y, v1.z - v2->z );
}
vector3 operator * ( const vector3& v, double f )
{
return vector3( v.x * f, v.y * f, v.z * f );
}
vector3 operator * ( const vector3& v1, vector3& v2 )
{
return vector3( v1.x * v2.x, v1.y * v2.y, v1.z * v2.z );
}
vector3 operator * ( double f, const vector3& v )
{
return vector3( v.x * f, v.y * f, v.z * f );
}
}