6 float Vector3::nan
= NAN
;
10 elem
[0] = elem
[1] = elem
[2] = 0.0F
;
13 Vector3::Vector3(float a
, float b
, float c
)
20 float& Vector3::operator[](int i
)
27 Vector3
Vector3::cross(const Vector3 vec
)
31 out
.elem
[0] = elem
[1] * vec
.elem
[2] - elem
[2] * vec
.elem
[1];
32 out
.elem
[1] = elem
[2] * vec
.elem
[0] - elem
[0] * vec
.elem
[2];
33 out
.elem
[2] = elem
[0] * vec
.elem
[1] - elem
[1] * vec
.elem
[0];
38 float Vector3::dot(const Vector3 vec
)
40 return elem
[0] * vec
.elem
[0] +
41 elem
[1] * vec
.elem
[1] +
42 elem
[2] * vec
.elem
[2];
45 float Vector3::magsq()
47 return powf(elem
[0], 2) +
54 return sqrtf(magsq());
57 Vector3
Vector3::add(const Vector3 vec
)
61 out
.elem
[0] = elem
[0] + vec
.elem
[0];
62 out
.elem
[1] = elem
[1] + vec
.elem
[1];
63 out
.elem
[2] = elem
[2] + vec
.elem
[2];
68 Vector3
Vector3::sub(const Vector3 vec
)
72 out
.elem
[0] = elem
[0] - vec
.elem
[0];
73 out
.elem
[1] = elem
[1] - vec
.elem
[1];
74 out
.elem
[2] = elem
[2] - vec
.elem
[2];
79 Vector3
Vector3::mul(float scalar
)
83 out
.elem
[0] = elem
[0] * scalar
;
84 out
.elem
[1] = elem
[1] * scalar
;
85 out
.elem
[2] = elem
[2] * scalar
;
90 Vector3
Vector3::unit()
96 out
.elem
[0] = elem
[0] / denom
;
97 out
.elem
[1] = elem
[1] / denom
;
98 out
.elem
[2] = elem
[2] / denom
;