#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 */