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"