00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 INLINE_MATHUTIL void
00020 heads_up(FLOATNAME(LMatrix3) &mat, const FLOATNAME(LVector3) &fwd,
00021 CoordinateSystem cs) {
00022 heads_up(mat, fwd, FLOATNAME(LVector3)::up(cs), cs);
00023 }
00024
00025 INLINE_MATHUTIL void
00026 look_at(FLOATNAME(LMatrix3) &mat, const FLOATNAME(LVector3) &fwd,
00027 CoordinateSystem cs) {
00028 look_at(mat, fwd, FLOATNAME(LVector3)::up(cs), cs);
00029 }
00030
00031 INLINE_MATHUTIL void
00032 heads_up(FLOATNAME(LMatrix4) &mat, const FLOATNAME(LVector3) &fwd,
00033 const FLOATNAME(LVector3) &up, CoordinateSystem cs) {
00034 FLOATNAME(LMatrix3) mat3;
00035 heads_up(mat3, fwd, up, cs);
00036 mat = FLOATNAME(LMatrix4)(mat3);
00037 }
00038
00039 INLINE_MATHUTIL void
00040 look_at(FLOATNAME(LMatrix4) &mat, const FLOATNAME(LVector3) &fwd,
00041 const FLOATNAME(LVector3) &up, CoordinateSystem cs) {
00042 FLOATNAME(LMatrix3) mat3;
00043 look_at(mat3, fwd, up, cs);
00044 mat = FLOATNAME(LMatrix4)(mat3);
00045 }
00046
00047 INLINE_MATHUTIL void
00048 heads_up(FLOATNAME(LMatrix4) &mat, const FLOATNAME(LVector3) &fwd,
00049 CoordinateSystem cs) {
00050 heads_up(mat, fwd, FLOATNAME(LVector3)::up(cs), cs);
00051 }
00052
00053 INLINE_MATHUTIL void
00054 look_at(FLOATNAME(LMatrix4) &mat, const FLOATNAME(LVector3) &fwd,
00055 CoordinateSystem cs) {
00056 look_at(mat, fwd, FLOATNAME(LVector3)::up(cs), cs);
00057 }
00058
00059 INLINE_MATHUTIL void
00060 heads_up(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
00061 const FLOATNAME(LVector3) &up, CoordinateSystem cs) {
00062 FLOATNAME(LMatrix3) mat3;
00063 heads_up(mat3, fwd, up, cs);
00064 quat.set_from_matrix(mat3);
00065 }
00066
00067 INLINE_MATHUTIL void
00068 look_at(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
00069 const FLOATNAME(LVector3) &up, CoordinateSystem cs) {
00070 FLOATNAME(LMatrix3) mat3;
00071 look_at(mat3, fwd, up, cs);
00072 quat.set_from_matrix(mat3);
00073 }
00074
00075 INLINE_MATHUTIL void
00076 heads_up(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
00077 CoordinateSystem cs) {
00078 heads_up(quat, fwd, FLOATNAME(LVector3)::up(cs), cs);
00079 }
00080
00081 INLINE_MATHUTIL void
00082 look_at(FLOATNAME(LQuaternion) &quat, const FLOATNAME(LVector3) &fwd,
00083 CoordinateSystem cs) {
00084 look_at(quat, fwd, FLOATNAME(LVector3)::up(cs), cs);
00085 }
00086