MCPcopy Create free account
hub / github.com/DjDeveloperr/deno_desktop / updateCamera

Method updateCamera

examples/hello_camera.js:44–69  ·  view source on GitHub ↗

@param {Camera} camera

(camera)

Source from the content-addressed store, hash-verified

42
43 /** @param {Camera} camera */
44 updateCamera(camera) {
45 let forward = camera.target.sub(camera.eye);
46 const forwardNorm = forward.normal();
47 let forwardMag = forward.mag();
48
49 if (this.isForwardPressed && forwardMag > this.speed) {
50 camera.eye = camera.eye.add(forwardNorm.mul(this.speed));
51 }
52
53 if (this.isBackwardPressed) {
54 camera.eye = camera.eye.sub(forwardNorm.mul(this.speed));
55 }
56
57 const right = forwardNorm.cross(camera.up);
58
59 forward = camera.target.sub(camera.eye);
60 forwardMag = forward.mag();
61
62 if (this.isRightPressed) {
63 camera.eye = camera.target.sub(forward.add(right.mul(this.speed)).normal().mul(forwardMag));
64 }
65
66 if (this.isLeftPressed) {
67 camera.eye = camera.target.sub(forward.sub(right.mul(this.speed)).normal().mul(forwardMag));
68 }
69 }
70}
71
72export class Camera {

Callers 1

renderMethod · 0.80

Calls 6

crossMethod · 0.80
subMethod · 0.45
normalMethod · 0.45
magMethod · 0.45
addMethod · 0.45
mulMethod · 0.45

Tested by

no test coverage detected