From c5f477c043fe2e6fef3825d28b9761a672576b19 Mon Sep 17 00:00:00 2001 From: David Rose Date: Fri, 21 Jun 2002 21:59:59 +0000 Subject: [PATCH] generate quats with look_at also --- panda/src/mathutil/look_at_src.I | 28 ++++++++++++++++++++++++++++ panda/src/mathutil/look_at_src.h | 18 ++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/panda/src/mathutil/look_at_src.I b/panda/src/mathutil/look_at_src.I index eb292f89c4..019f7e2495 100644 --- a/panda/src/mathutil/look_at_src.I +++ b/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); +} + diff --git a/panda/src/mathutil/look_at_src.h b/panda/src/mathutil/look_at_src.h index 9d45bda8cc..92bb6cd0dd 100644 --- a/panda/src/mathutil/look_at_src.h +++ b/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"