Browse Source

generate quats with look_at also

David Rose 23 years ago
parent
commit
c5f477c043
2 changed files with 46 additions and 0 deletions
  1. 28 0
      panda/src/mathutil/look_at_src.I
  2. 18 0
      panda/src/mathutil/look_at_src.h

+ 28 - 0
panda/src/mathutil/look_at_src.I

@@ -56,3 +56,31 @@ look_at(FLOATNAME(LMatrix4) &mat, const FLOATNAME(LVector3) &fwd,
   look_at(mat, fwd, FLOATNAME(LVector3)::up(cs), cs);
 }
 
+INLINE_MATHUTIL void
+heads_up(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
+         const FLOATNAME(LVector3) &up, CoordinateSystem cs) {
+  FLOATNAME(LMatrix3) mat3;
+  heads_up(mat3, fwd, up, cs);
+  quat.set_from_matrix(mat3);
+}
+
+INLINE_MATHUTIL void
+look_at(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
+        const FLOATNAME(LVector3) &up, CoordinateSystem cs) {
+  FLOATNAME(LMatrix3) mat3;
+  look_at(mat3, fwd, up, cs);
+  quat.set_from_matrix(mat3);
+}
+
+INLINE_MATHUTIL void
+heads_up(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
+         CoordinateSystem cs) {
+  heads_up(quat, fwd, FLOATNAME(LVector3)::up(cs), cs);
+}
+
+INLINE_MATHUTIL void
+look_at(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
+        CoordinateSystem cs) {
+  look_at(quat, fwd, FLOATNAME(LVector3)::up(cs), cs);
+}
+

+ 18 - 0
panda/src/mathutil/look_at_src.h

@@ -64,6 +64,24 @@ INLINE_MATHUTIL void
 look_at(FLOATNAME(LMatrix4) &mat, const FLOATNAME(LVector3) &fwd,
         CoordinateSystem cs);
 
+
+
+INLINE_MATHUTIL void
+heads_up(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
+         const FLOATNAME(LVector3) &up = FLOATNAME(LVector3)::up(),
+         CoordinateSystem cs = CS_default);
+INLINE_MATHUTIL void
+look_at(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
+        const FLOATNAME(LVector3) &up = FLOATNAME(LVector3)::up(),
+        CoordinateSystem cs = CS_default);
+
+INLINE_MATHUTIL void
+heads_up(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
+         CoordinateSystem cs);
+INLINE_MATHUTIL void
+look_at(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
+        CoordinateSystem cs);
+
 END_PUBLISH
 
 #include "look_at_src.I"