6 float Vector3::operator[](int i
) const
13 Vector3
Vector3::cross(const Vector3
&vec
) const
17 out
.elem
[0] = elem
[1] * vec
.elem
[2] - elem
[2] * vec
.elem
[1];
18 out
.elem
[1] = elem
[2] * vec
.elem
[0] - elem
[0] * vec
.elem
[2];
19 out
.elem
[2] = elem
[0] * vec
.elem
[1] - elem
[1] * vec
.elem
[0];
24 float Vector3::dot(const Vector3
&vec
) const
26 return elem
[0] * vec
.elem
[0] +
27 elem
[1] * vec
.elem
[1] +
28 elem
[2] * vec
.elem
[2];
31 float Vector3::magsq() const
33 return powf(elem
[0], 2) +
38 float Vector3::mag() const
40 return sqrtf(magsq());
43 Vector3
Vector3::add(const Vector3
&vec
) const
47 out
.elem
[0] = elem
[0] + vec
.elem
[0];
48 out
.elem
[1] = elem
[1] + vec
.elem
[1];
49 out
.elem
[2] = elem
[2] + vec
.elem
[2];
54 Vector3
Vector3::sub(const Vector3
&vec
) const
58 out
.elem
[0] = elem
[0] - vec
.elem
[0];
59 out
.elem
[1] = elem
[1] - vec
.elem
[1];
60 out
.elem
[2] = elem
[2] - vec
.elem
[2];
65 Vector3
Vector3::mul(float scalar
) const
69 out
.elem
[0] = elem
[0] * scalar
;
70 out
.elem
[1] = elem
[1] * scalar
;
71 out
.elem
[2] = elem
[2] * scalar
;
76 Vector3
Vector3::unit() const
82 out
.elem
[0] = elem
[0] / denom
;
83 out
.elem
[1] = elem
[1] / denom
;
84 out
.elem
[2] = elem
[2] / denom
;