File size: 610 Bytes
cc654e9
 
 
 
ec3121c
cc654e9
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import type { Camera } from "$lib/splat.js/cameras/Camera";
import { Matrix4 } from "$lib/splat.js/math/Matrix4";

export function getViewMatrix(camera: Camera) {
    const R = camera.rotation.buffer;
    const t = camera.position.flat();
    const camToWorld = [
        [R[0], R[1], R[2], 0],
        [R[3], R[4], R[5], 0],
        [R[6], R[7], R[8], 0],
        [
            -t[0] * R[0] - t[1] * R[3] - t[2] * R[6],
            -t[0] * R[1] - t[1] * R[4] - t[2] * R[7],
            -t[0] * R[2] - t[1] * R[5] - t[2] * R[8],
            1,
        ],
    ].flat();
    return new Matrix4(...camToWorld);
}