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
|
#undef dot
#undef cross
extern "C" {
#include "data_types.h"
}
vec_ operator+(const vec_&, const vec_&); /* v = v1 + v2 */
vec_ operator-(const vec_&, const vec_&); /* v = v1 - v2 */
mat_ operator+(const mat_&, const mat_&); /* m = m1 + m2 */
mat_ operator-(const mat_&, const mat_&); /* m = m1 - m2 */
vec_& operator+=(vec_&, const vec_&); /* v += v2 */
mat_& operator+=(mat_&, const mat_&); /* m += m2 */
vec_& operator-=(vec_&, const vec_&); /* v -= v2 */
mat_& operator-=(mat_&, const mat_&); /* m -= m2 */
vec_ operator*(double, const vec_&); /* v = a * v1 */
mat_ operator*(double, const mat_&); /* m = a * m1 */
vec_ operator*(const vec_&, double); /* v = v1 * a */
mat_ operator*(const mat_&, double); /* m = m1 * a */
vec_ operator/(const vec_&, double); /* v = v1 / a */
mat_ operator/(const mat_&, double); /* m = m1 / a */
vec_ operator*=(vec_&, const double a); /* v *= a */
vec_ operator/=(vec_&, const double a); /* v /= a */
vec_ operator*(const mat_&, const vec_&); /* v = m1 * v1 */
mat_ operator*(const mat_&, const mat_&); /* m = m1 * m2 */
quat_ operator*(const quat_&, const quat_&); /* q = q1 * q2 */
quat_ operator*(double, const quat_&); /* q = a * q1 */
quat_ operator*(const quat_&, double); /* q = q1 * a */
quat_ operator/(const quat_&, double); /* q = q1 / a */
vec_ operator-(const vec_&); /* v = - v1 */
vec_ operator+(const vec_&); /* v = + v1 */
mat_ operator-(const mat_&); /* m = - m1 */
mat_ operator+(const mat_&); /* m = + m1 */
quat_ operator+(const quat_&); /* q = + q */
quat_ operator-(const quat_&); /* q = - q */
quat_& operator*=(quat_&, const quat_&); /* q1 *= q2; */
quat_& operator+=(quat_&, const quat_&); /* q1 += q2; */
quat_& operator*=(quat_&, const double a); /* q1 *= a; */
quat_ operator+(const quat_& q1, const quat_& q2); /* q3 = q1 + q2 */
vec_ unit(const vec_&); /* unitize vec */
quat_ unit(const quat_&); /* unitize quat */
mat_ trans(const mat_&); /* transpose matrix */
quat_ trans(const quat_&); /* transpose quat */
double dot(const vec_, const vec_); /* vector dot product */
vec_ cross(const vec_, const vec_); /* vector cross product */
|