nuclear@1: #include "vmathmat.h" nuclear@1: #include "vmath.h" nuclear@1: nuclear@1: void Matrix4x4::lookat(const Vector3 &pos, const Vector3 &targ, const Vector3 &up) nuclear@1: { nuclear@1: Vector3 vk = normalize(targ - pos); nuclear@1: Vector3 vj = normalize(up); nuclear@1: Vector3 vi = normalize(cross(vk, vj)); nuclear@1: vj = cross(vi, vk); nuclear@1: nuclear@1: Matrix4x4 m( nuclear@1: vi.x, vi.y, vi.z, 0, nuclear@1: vj.x, vj.y, vj.z, 0, nuclear@1: -vk.x, -vk.y, -vk.z, 0, nuclear@1: 0, 0, 0, 1); nuclear@1: translate(-pos.x, -pos.y, -pos.z); nuclear@1: *this = *this * m; nuclear@1: }