|
|
@@ -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);
|
|
|
+}
|
|
|
+
|