aboutsummaryrefslogtreecommitdiff
path: root/dep/include/g3dlite/G3D/Quat.inl
blob: 9e4c861d93b1e27a45232ed349d369a38b3225c9 (plain)
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
/**
  Quat.inl

  @cite Quaternion implementation based on Watt & Watt page 363.
  Thanks to Max McGuire for slerp optimizations.

  @maintainer Morgan McGuire, matrix@graphics3d.com

  @created 2002-01-23
  @edited  2004-03-04
 */

namespace G3D {

inline float& Quat::operator[] (int i) {
    debugAssert(i >= 0);
    debugAssert(i < 4);
    return ((float*)this)[i];
}

inline const float& Quat::operator[] (int i) const {
    debugAssert(i >= 0);
    debugAssert(i < 4);
    return ((float*)this)[i];
}

inline Quat Quat::operator-(const Quat& other) const {
    return Quat(x - other.x, y - other.y, z - other.z, w - other.w);
}

inline Quat Quat::operator+(const Quat& other) const {
    return Quat(x + other.x, y + other.y, z + other.z, w + other.w);
}

}