annotate src/vmath.cc @ 9:70e332156d02
moving along
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Thu, 10 Apr 2014 02:31:31 +0300 |
parents |
2a5340a6eee4 |
children |
d94a69933a71 |
rev |
line source |
nuclear@1
|
1 #include "vmathmat.h"
|
nuclear@1
|
2 #include "vmath.h"
|
nuclear@1
|
3
|
nuclear@1
|
4 void Matrix4x4::lookat(const Vector3 &pos, const Vector3 &targ, const Vector3 &up)
|
nuclear@1
|
5 {
|
nuclear@1
|
6 Vector3 vk = normalize(targ - pos);
|
nuclear@1
|
7 Vector3 vj = normalize(up);
|
nuclear@1
|
8 Vector3 vi = normalize(cross(vk, vj));
|
nuclear@1
|
9 vj = cross(vi, vk);
|
nuclear@1
|
10
|
nuclear@1
|
11 Matrix4x4 m(
|
nuclear@1
|
12 vi.x, vi.y, vi.z, 0,
|
nuclear@1
|
13 vj.x, vj.y, vj.z, 0,
|
nuclear@1
|
14 -vk.x, -vk.y, -vk.z, 0,
|
nuclear@1
|
15 0, 0, 0, 1);
|
nuclear@1
|
16 translate(-pos.x, -pos.y, -pos.z);
|
nuclear@1
|
17 *this = *this * m;
|
nuclear@1
|
18 }
|