8 Vector3(float a
, float b
, float c
) : elem
{a
,b
,c
} {}
9 Vector3(const Vector3
& to_copy
) = default;
11 float operator[](int) const;
12 Vector3
cross(const Vector3
&) const;
14 float dot(const Vector3
&) const;
19 Vector3
add(const Vector3
&) const;
20 Vector3
sub(const Vector3
&) const;
22 Vector3
mul(float) const;
24 Vector3
unit(void) const;
26 float * data() { return elem
; }
27 float const* data() const { return elem
; }
32 // typedef float Vector3[3];
34 // float* cross_product(Vector3 vec1, Vector3 vec2, Vector3 out);
35 // float dot_product(Vector3 vec1, Vector3 vec2);
36 // float magsq(Vector3 vec);
37 // float* vecsub(Vector3 vec1, Vector3 vec2, Vector3 out)
38 // float* scalar_mul(Vector3 vec, float scalar, Vector3 out)
40 #endif /* _VECTOR3_H */