aboutsummaryrefslogtreecommitdiff
path: root/dep/include/g3dlite/G3D/Quat.inl
diff options
context:
space:
mode:
Diffstat (limited to 'dep/include/g3dlite/G3D/Quat.inl')
-rw-r--r--dep/include/g3dlite/G3D/Quat.inl38
1 files changed, 38 insertions, 0 deletions
diff --git a/dep/include/g3dlite/G3D/Quat.inl b/dep/include/g3dlite/G3D/Quat.inl
new file mode 100644
index 00000000000..705cb0455d4
--- /dev/null
+++ b/dep/include/g3dlite/G3D/Quat.inl
@@ -0,0 +1,38 @@
+/**
+ 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);
+}
+
+}
+