@woosh/meep-engine 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/editor/particles/rebuildParticleEmitter.js +8 -26
- package/editor/process/symbolic/CameraSymbolicDisplay.js +146 -146
- package/editor/tools/SelectionTool.js +1 -2
- package/editor/tools/TransformToolV2.js +2 -3
- package/editor/tools/v2/BlenderCameraOrientationGizmo.js +501 -501
- package/editor/tools/v2/TransformControls.js +1 -1
- package/package.json +95 -96
- package/src/core/geom/3d/mat4/m4_look_at.d.ts +25 -0
- package/src/core/geom/3d/mat4/m4_look_at.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_look_at.js +96 -0
- package/src/core/geom/3d/mat4/m4_make_rotation_x.d.ts +18 -0
- package/src/core/geom/3d/mat4/m4_make_rotation_x.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_make_rotation_x.js +47 -0
- package/src/core/geom/3d/mat4/m4_make_rotation_y.d.ts +18 -0
- package/src/core/geom/3d/mat4/m4_make_rotation_y.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_make_rotation_y.js +47 -0
- package/src/core/geom/3d/mat4/m4_make_rotation_z.d.ts +18 -0
- package/src/core/geom/3d/mat4/m4_make_rotation_z.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_make_rotation_z.js +47 -0
- package/src/core/geom/3d/mat4/m4_perspective.d.ts +25 -0
- package/src/core/geom/3d/mat4/m4_perspective.d.ts.map +1 -0
- package/src/core/geom/3d/mat4/m4_perspective.js +66 -0
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/FirstPersonPlayerControllerSystem.js +2045 -2052
- package/src/engine/ecs/gui/hud/testHudEdgeStick.js +2 -2
- package/src/engine/ecs/terrain/ecs/TerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/TerrainSystem.js +14 -27
- package/src/engine/ecs/terrain/util/loadVisibleTerrainTiles.d.ts.map +1 -1
- package/src/engine/ecs/terrain/util/loadVisibleTerrainTiles.js +129 -126
- package/src/engine/graphics/ecs/camera/Camera.d.ts +36 -48
- package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/Camera.js +165 -303
- package/src/engine/graphics/ecs/camera/camera_active_frustum.d.ts +14 -0
- package/src/engine/graphics/ecs/camera/camera_active_frustum.d.ts.map +1 -0
- package/src/engine/graphics/ecs/camera/camera_active_frustum.js +25 -0
- package/src/engine/graphics/ecs/camera/camera_find_active.d.ts +16 -0
- package/src/engine/graphics/ecs/camera/camera_find_active.d.ts.map +1 -0
- package/src/engine/graphics/ecs/camera/camera_find_active.js +28 -0
- package/src/engine/graphics/ecs/camera/camera_traverse_active.d.ts +12 -0
- package/src/engine/graphics/ecs/camera/camera_traverse_active.d.ts.map +1 -0
- package/src/engine/graphics/ecs/camera/camera_traverse_active.js +18 -0
- package/src/engine/graphics/ecs/camera/pp/PerfectPanner.js +170 -170
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts +5 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +296 -281
- package/src/engine/graphics/ecs/render_layers_compute_depth_range.d.ts +1 -1
- package/src/engine/graphics/ecs/render_layers_compute_depth_range.js +1 -1
- package/src/engine/graphics/geometry/AttributeData.d.ts +52 -0
- package/src/engine/graphics/geometry/AttributeData.d.ts.map +1 -0
- package/src/engine/graphics/geometry/AttributeData.js +84 -0
- package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts +1 -14
- package/src/engine/graphics/particles/particular/engine/ParticularEngine.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/ParticularEngine.js +229 -253
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts +25 -12
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +1149 -1194
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts +4 -8
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +472 -540
- package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts +19 -90
- package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/shader/ShaderManager.js +135 -514
- package/src/engine/graphics3/CameraSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/CameraSystem3.js +10 -1
- package/src/engine/graphics3/GraphicsEngine3.d.ts +3 -3
- package/src/engine/graphics3/GraphicsEngine3.js +3 -3
- package/src/engine/graphics3/ParticleEmitterSystem3.d.ts +11 -0
- package/src/engine/graphics3/ParticleEmitterSystem3.d.ts.map +1 -1
- package/src/engine/graphics3/ParticleEmitterSystem3.js +289 -265
- package/src/engine/graphics3/ShadeCameraAdapter.d.ts +3 -3
- package/src/engine/graphics3/ShadeCameraAdapter.js +3 -3
- package/src/engine/graphics3/camera_sync_from_transform.d.ts +2 -2
- package/src/engine/graphics3/camera_sync_from_transform.js +2 -2
- package/src/engine/graphics3/shade_camera_projection_ray.js +2 -2
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/shade/renderer/camera/Camera.d.ts +3 -5
- package/src/shade/renderer/camera/Camera.d.ts.map +1 -1
- package/src/shade/renderer/camera/Camera.js +281 -280
- package/src/shade/renderer/camera/GPUCameraContext.js +233 -233
- package/src/shade/renderer/loader/usd/parse_usda.js +1 -1
- package/src/shade/renderer/loader/usd/usd_build_scene.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/usd_build_scene.js +658 -652
- package/src/shade/renderer/loader/usd/usd_compose_transform.d.ts.map +1 -1
- package/src/shade/renderer/loader/usd/usd_compose_transform.js +58 -23
- package/src/shade/renderer/particles/prototypeParticleSystem.js +450 -443
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.d.ts.map +1 -1
- package/src/shade/renderer/shadow/map/DirectionalLightShadowmap.js +7 -3
- package/src/view/minimap/dom/MinimapCameraView.d.ts +2 -2
- package/src/view/minimap/dom/MinimapCameraView.js +206 -206
- package/src/engine/graphics/ecs/camera/CameraSystem.d.ts +0 -74
- package/src/engine/graphics/ecs/camera/CameraSystem.d.ts.map +0 -1
- package/src/engine/graphics/ecs/camera/CameraSystem.js +0 -331
- package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.d.ts +0 -10
- package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.d.ts.map +0 -1
- package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.js +0 -105
- package/src/engine/graphics/ecs/camera/build_three_camera_object.d.ts +0 -7
- package/src/engine/graphics/ecs/camera/build_three_camera_object.d.ts.map +0 -1
- package/src/engine/graphics/ecs/camera/build_three_camera_object.js +0 -29
- package/src/engine/graphics/ecs/camera/frustum_from_camera.d.ts +0 -8
- package/src/engine/graphics/ecs/camera/frustum_from_camera.d.ts.map +0 -1
- package/src/engine/graphics/ecs/camera/frustum_from_camera.js +0 -20
- package/src/engine/graphics/ecs/camera/set_camera_aspect_ratio.d.ts +0 -9
- package/src/engine/graphics/ecs/camera/set_camera_aspect_ratio.d.ts.map +0 -1
- package/src/engine/graphics/ecs/camera/set_camera_aspect_ratio.js +0 -46
- package/src/engine/graphics/ecs/camera/unprojectPoint.d.ts +0 -9
- package/src/engine/graphics/ecs/camera/unprojectPoint.d.ts.map +0 -1
- package/src/engine/graphics/ecs/camera/unprojectPoint.js +0 -14
- package/src/engine/graphics/ecs/camera/update_camera_transform.d.ts +0 -6
- package/src/engine/graphics/ecs/camera/update_camera_transform.d.ts.map +0 -1
- package/src/engine/graphics/ecs/camera/update_camera_transform.js +0 -17
- package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.d.ts +0 -67
- package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.d.ts.map +0 -1
- package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.js +0 -291
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/ParticleBillboardMaterial.d.ts +0 -11
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/ParticleBillboardMaterial.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/renderers/billboard/ParticleBillboardMaterial.js +0 -497
- package/src/engine/graphics/particles/particular/engine/shader/MaterialRecord.d.ts +0 -40
- package/src/engine/graphics/particles/particular/engine/shader/MaterialRecord.d.ts.map +0 -1
- package/src/engine/graphics/particles/particular/engine/shader/MaterialRecord.js +0 -47
- package/src/engine/graphics/texture/sampler/writeSampler2DDataToDataTexture.d.ts +0 -7
- package/src/engine/graphics/texture/sampler/writeSampler2DDataToDataTexture.d.ts.map +0 -1
- package/src/engine/graphics/texture/sampler/writeSampler2DDataToDataTexture.js +0 -40
|
@@ -86,7 +86,7 @@ const _tempTransform = new Transform();
|
|
|
86
86
|
*
|
|
87
87
|
* The three version answered the first two questions by building meshes and raycasting them: an
|
|
88
88
|
* invisible cone per arm, an invisible 100000-unit `PlaneGeometry` per drag. That is why it needed
|
|
89
|
-
*
|
|
89
|
+
* a three camera object on the component. It needs none now:
|
|
90
90
|
* the ray through the middle of the viewport starts at the eye and points where the camera looks,
|
|
91
91
|
* and the ray through the top edge gives the field of view the gizmo is sized against.
|
|
92
92
|
*
|
package/package.json
CHANGED
|
@@ -1,96 +1,95 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@woosh/meep-engine",
|
|
3
|
-
"license": "SEE LICENSE IN LICENSE",
|
|
4
|
-
"productName": "Meep",
|
|
5
|
-
"homepage": "https://meep.company-named.com/",
|
|
6
|
-
"description": "Pure JavaScript game engine. Fully featured and production ready.",
|
|
7
|
-
"type": "module",
|
|
8
|
-
"author": "Alexander Goldring",
|
|
9
|
-
"version": "3.0.
|
|
10
|
-
"exports": {
|
|
11
|
-
"./build/*": "./build/*",
|
|
12
|
-
"./src/*": "./src/*",
|
|
13
|
-
"./editor/*": "./editor/*",
|
|
14
|
-
"./*.md": "./*.md"
|
|
15
|
-
},
|
|
16
|
-
"sideEffects": [
|
|
17
|
-
"**/*.css",
|
|
18
|
-
"**/*.scss"
|
|
19
|
-
],
|
|
20
|
-
"scripts": {
|
|
21
|
-
"test:ci": "vitest run --coverage --reporter=default --reporter=junit --outputFile=junit.xml",
|
|
22
|
-
"build-module": "rollup -c rollup.config.js",
|
|
23
|
-
"publish-npm": "npm publish",
|
|
24
|
-
"generate-types": "npx -p typescript tsc --project tsconfig.types.json || exit 0;",
|
|
25
|
-
"test": "vitest run"
|
|
26
|
-
},
|
|
27
|
-
"browserslist": [
|
|
28
|
-
"last 2 chrome version",
|
|
29
|
-
"last 2 firefox version",
|
|
30
|
-
"last 2 safari version"
|
|
31
|
-
],
|
|
32
|
-
"files": [
|
|
33
|
-
"build",
|
|
34
|
-
"src",
|
|
35
|
-
"editor",
|
|
36
|
-
"samples",
|
|
37
|
-
"package.json",
|
|
38
|
-
"README.md",
|
|
39
|
-
"!src/**/*.spec.js",
|
|
40
|
-
"!editor/**/*.spec.js"
|
|
41
|
-
],
|
|
42
|
-
"dependencies": {
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"@rollup/plugin-
|
|
59
|
-
"@rollup/plugin-
|
|
60
|
-
"@rollup/plugin-
|
|
61
|
-
"@
|
|
62
|
-
"@
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@woosh/meep-engine",
|
|
3
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
4
|
+
"productName": "Meep",
|
|
5
|
+
"homepage": "https://meep.company-named.com/",
|
|
6
|
+
"description": "Pure JavaScript game engine. Fully featured and production ready.",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"author": "Alexander Goldring",
|
|
9
|
+
"version": "3.0.1",
|
|
10
|
+
"exports": {
|
|
11
|
+
"./build/*": "./build/*",
|
|
12
|
+
"./src/*": "./src/*",
|
|
13
|
+
"./editor/*": "./editor/*",
|
|
14
|
+
"./*.md": "./*.md"
|
|
15
|
+
},
|
|
16
|
+
"sideEffects": [
|
|
17
|
+
"**/*.css",
|
|
18
|
+
"**/*.scss"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"test:ci": "vitest run --coverage --reporter=default --reporter=junit --outputFile=junit.xml",
|
|
22
|
+
"build-module": "rollup -c rollup.config.js",
|
|
23
|
+
"publish-npm": "npm publish",
|
|
24
|
+
"generate-types": "npx -p typescript tsc --project tsconfig.types.json || exit 0;",
|
|
25
|
+
"test": "vitest run"
|
|
26
|
+
},
|
|
27
|
+
"browserslist": [
|
|
28
|
+
"last 2 chrome version",
|
|
29
|
+
"last 2 firefox version",
|
|
30
|
+
"last 2 safari version"
|
|
31
|
+
],
|
|
32
|
+
"files": [
|
|
33
|
+
"build",
|
|
34
|
+
"src",
|
|
35
|
+
"editor",
|
|
36
|
+
"samples",
|
|
37
|
+
"package.json",
|
|
38
|
+
"README.md",
|
|
39
|
+
"!src/**/*.spec.js",
|
|
40
|
+
"!editor/**/*.spec.js"
|
|
41
|
+
],
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"opentype.js": "1.3.3",
|
|
44
|
+
"pako": "2.0.3",
|
|
45
|
+
"robust-predicates": "3.0.2"
|
|
46
|
+
},
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"dat.gui": ">=0.7.0",
|
|
49
|
+
"three": ">=0.135.0"
|
|
50
|
+
},
|
|
51
|
+
"peerDependenciesMeta": {
|
|
52
|
+
"three": {
|
|
53
|
+
"optional": true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"@rollup/plugin-commonjs": "25.0.2",
|
|
58
|
+
"@rollup/plugin-node-resolve": "15.1.0",
|
|
59
|
+
"@rollup/plugin-strip": "3.0.2",
|
|
60
|
+
"@rollup/plugin-terser": "0.4.3",
|
|
61
|
+
"@types/three": "^0.135.0",
|
|
62
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
63
|
+
"jsdom": "^30.0.1",
|
|
64
|
+
"rollup": "3.26.2",
|
|
65
|
+
"typescript": "5.2.2",
|
|
66
|
+
"vitest": "^4.1.10",
|
|
67
|
+
"web-tree-sitter": "^0.26.12"
|
|
68
|
+
},
|
|
69
|
+
"keywords": [
|
|
70
|
+
"game-engine",
|
|
71
|
+
"gamedev",
|
|
72
|
+
"ecs",
|
|
73
|
+
"entity-component-system",
|
|
74
|
+
"data-oriented",
|
|
75
|
+
"zero-allocation",
|
|
76
|
+
"modular",
|
|
77
|
+
"tree-shaking",
|
|
78
|
+
"3d",
|
|
79
|
+
"webgl",
|
|
80
|
+
"webgl2",
|
|
81
|
+
"webgpu",
|
|
82
|
+
"webaudio",
|
|
83
|
+
"particles",
|
|
84
|
+
"bvh",
|
|
85
|
+
"behavior-tree",
|
|
86
|
+
"inverse-kinematics",
|
|
87
|
+
"fabrik",
|
|
88
|
+
"clustered-lighting",
|
|
89
|
+
"color-management",
|
|
90
|
+
"typescript"
|
|
91
|
+
],
|
|
92
|
+
"engines": {
|
|
93
|
+
"node": ">=24"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a view matrix that places the eye at `eye` and points it at `center`, with `up` naming
|
|
3
|
+
* which way is up.
|
|
4
|
+
*
|
|
5
|
+
* Right-handed, matching the camera basis the rest of the renderer uses: the eye looks down its own
|
|
6
|
+
* −Z, so `center` sits at a negative view-space z. The result is the inverse of the camera's world
|
|
7
|
+
* transform — it carries world space into view space, not the other way around.
|
|
8
|
+
*
|
|
9
|
+
* `up` only has to be non-parallel to the view direction; it is re-orthogonalized against it. When
|
|
10
|
+
* it *is* parallel the cross product collapses and the basis is degenerate — that is a caller error,
|
|
11
|
+
* and the assert below is what says so.
|
|
12
|
+
*
|
|
13
|
+
* Allocation-free.
|
|
14
|
+
*
|
|
15
|
+
* @param {number[]|Float32Array|Float64Array} out destination 4x4 matrix
|
|
16
|
+
* @param {ArrayLike<number>} eye position of the viewer, `[x, y, z]`
|
|
17
|
+
* @param {ArrayLike<number>} center point the viewer is looking at, `[x, y, z]`
|
|
18
|
+
* @param {ArrayLike<number>} up up direction, `[x, y, z]`, not parallel to `center - eye`
|
|
19
|
+
* @returns {number[]|Float32Array|Float64Array} `out`, for convenience
|
|
20
|
+
*
|
|
21
|
+
* @author Alex Goldring
|
|
22
|
+
* @copyright Company Named Limited (c) 2026
|
|
23
|
+
*/
|
|
24
|
+
export function m4_look_at(out: number[] | Float32Array | Float64Array, eye: ArrayLike<number>, center: ArrayLike<number>, up: ArrayLike<number>): number[] | Float32Array | Float64Array;
|
|
25
|
+
//# sourceMappingURL=m4_look_at.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"m4_look_at.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/m4_look_at.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,gCATW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,OAClC,UAAU,MAAM,CAAC,UACjB,UAAU,MAAM,CAAC,MACjB,UAAU,MAAM,CAAC,GACf,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,CA2E9C"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { assert } from "../../../assert.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Build a view matrix that places the eye at `eye` and points it at `center`, with `up` naming
|
|
5
|
+
* which way is up.
|
|
6
|
+
*
|
|
7
|
+
* Right-handed, matching the camera basis the rest of the renderer uses: the eye looks down its own
|
|
8
|
+
* −Z, so `center` sits at a negative view-space z. The result is the inverse of the camera's world
|
|
9
|
+
* transform — it carries world space into view space, not the other way around.
|
|
10
|
+
*
|
|
11
|
+
* `up` only has to be non-parallel to the view direction; it is re-orthogonalized against it. When
|
|
12
|
+
* it *is* parallel the cross product collapses and the basis is degenerate — that is a caller error,
|
|
13
|
+
* and the assert below is what says so.
|
|
14
|
+
*
|
|
15
|
+
* Allocation-free.
|
|
16
|
+
*
|
|
17
|
+
* @param {number[]|Float32Array|Float64Array} out destination 4x4 matrix
|
|
18
|
+
* @param {ArrayLike<number>} eye position of the viewer, `[x, y, z]`
|
|
19
|
+
* @param {ArrayLike<number>} center point the viewer is looking at, `[x, y, z]`
|
|
20
|
+
* @param {ArrayLike<number>} up up direction, `[x, y, z]`, not parallel to `center - eye`
|
|
21
|
+
* @returns {number[]|Float32Array|Float64Array} `out`, for convenience
|
|
22
|
+
*
|
|
23
|
+
* @author Alex Goldring
|
|
24
|
+
* @copyright Company Named Limited (c) 2026
|
|
25
|
+
*/
|
|
26
|
+
export function m4_look_at(out, eye, center, up) {
|
|
27
|
+
assert.isArrayLike(eye, 'eye');
|
|
28
|
+
assert.isArrayLike(center, 'center');
|
|
29
|
+
assert.isArrayLike(up, 'up');
|
|
30
|
+
|
|
31
|
+
const eye_x = eye[0];
|
|
32
|
+
const eye_y = eye[1];
|
|
33
|
+
const eye_z = eye[2];
|
|
34
|
+
|
|
35
|
+
// backward = normalize(eye - center); the view direction is its negation
|
|
36
|
+
let z0 = eye_x - center[0];
|
|
37
|
+
let z1 = eye_y - center[1];
|
|
38
|
+
let z2 = eye_z - center[2];
|
|
39
|
+
|
|
40
|
+
const z_length = Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);
|
|
41
|
+
|
|
42
|
+
assert.greaterThan(z_length, 0, 'distance between eye and center');
|
|
43
|
+
|
|
44
|
+
const z_scale = 1 / z_length;
|
|
45
|
+
|
|
46
|
+
z0 *= z_scale;
|
|
47
|
+
z1 *= z_scale;
|
|
48
|
+
z2 *= z_scale;
|
|
49
|
+
|
|
50
|
+
const up_x = up[0];
|
|
51
|
+
const up_y = up[1];
|
|
52
|
+
const up_z = up[2];
|
|
53
|
+
|
|
54
|
+
// right = normalize(cross(up, backward))
|
|
55
|
+
let x0 = up_y * z2 - up_z * z1;
|
|
56
|
+
let x1 = up_z * z0 - up_x * z2;
|
|
57
|
+
let x2 = up_x * z1 - up_y * z0;
|
|
58
|
+
|
|
59
|
+
const x_length = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);
|
|
60
|
+
|
|
61
|
+
assert.greaterThan(x_length, 0, 'length of cross(up, eye - center), up must not be parallel to the view direction');
|
|
62
|
+
|
|
63
|
+
const x_scale = 1 / x_length;
|
|
64
|
+
|
|
65
|
+
x0 *= x_scale;
|
|
66
|
+
x1 *= x_scale;
|
|
67
|
+
x2 *= x_scale;
|
|
68
|
+
|
|
69
|
+
// up = cross(backward, right); both operands are unit and orthogonal, so this one already is
|
|
70
|
+
const y0 = z1 * x2 - z2 * x1;
|
|
71
|
+
const y1 = z2 * x0 - z0 * x2;
|
|
72
|
+
const y2 = z0 * x1 - z1 * x0;
|
|
73
|
+
|
|
74
|
+
// rotation is the transpose of the basis, translation is the eye in that rotated frame
|
|
75
|
+
out[0] = x0;
|
|
76
|
+
out[1] = y0;
|
|
77
|
+
out[2] = z0;
|
|
78
|
+
out[3] = 0;
|
|
79
|
+
|
|
80
|
+
out[4] = x1;
|
|
81
|
+
out[5] = y1;
|
|
82
|
+
out[6] = z1;
|
|
83
|
+
out[7] = 0;
|
|
84
|
+
|
|
85
|
+
out[8] = x2;
|
|
86
|
+
out[9] = y2;
|
|
87
|
+
out[10] = z2;
|
|
88
|
+
out[11] = 0;
|
|
89
|
+
|
|
90
|
+
out[12] = -(x0 * eye_x + x1 * eye_y + x2 * eye_z);
|
|
91
|
+
out[13] = -(y0 * eye_x + y1 * eye_y + y2 * eye_z);
|
|
92
|
+
out[14] = -(z0 * eye_x + z1 * eye_y + z2 * eye_z);
|
|
93
|
+
out[15] = 1;
|
|
94
|
+
|
|
95
|
+
return out;
|
|
96
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a 4x4 matrix that corresponds to a rotation around the X axis.
|
|
3
|
+
*
|
|
4
|
+
* Right-handed: a positive angle carries +Y towards +Z. The rotation-around-Y and
|
|
5
|
+
* rotation-around-Z companions are {@link m4_make_rotation_y} and {@link m4_make_rotation_z}; to
|
|
6
|
+
* compose several, build each one and chain them with {@link m4_multiply}.
|
|
7
|
+
*
|
|
8
|
+
* Allocation-free.
|
|
9
|
+
*
|
|
10
|
+
* @param {number[]|Float32Array|Float64Array} output 4x4 matrix output will be written here
|
|
11
|
+
* @param {number} angle rotation, in radians
|
|
12
|
+
* @returns {number[]|Float32Array|Float64Array} `output` parameter, returned for convenience
|
|
13
|
+
*
|
|
14
|
+
* @author Alex Goldring
|
|
15
|
+
* @copyright Company Named Limited (c) 2026
|
|
16
|
+
*/
|
|
17
|
+
export function m4_make_rotation_x(output: number[] | Float32Array | Float64Array, angle: number): number[] | Float32Array | Float64Array;
|
|
18
|
+
//# sourceMappingURL=m4_make_rotation_x.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"m4_make_rotation_x.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/m4_make_rotation_x.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,2CAPW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,SAClC,MAAM,GACJ,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,CAiC9C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { assert } from "../../../assert.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Create a 4x4 matrix that corresponds to a rotation around the X axis.
|
|
5
|
+
*
|
|
6
|
+
* Right-handed: a positive angle carries +Y towards +Z. The rotation-around-Y and
|
|
7
|
+
* rotation-around-Z companions are {@link m4_make_rotation_y} and {@link m4_make_rotation_z}; to
|
|
8
|
+
* compose several, build each one and chain them with {@link m4_multiply}.
|
|
9
|
+
*
|
|
10
|
+
* Allocation-free.
|
|
11
|
+
*
|
|
12
|
+
* @param {number[]|Float32Array|Float64Array} output 4x4 matrix output will be written here
|
|
13
|
+
* @param {number} angle rotation, in radians
|
|
14
|
+
* @returns {number[]|Float32Array|Float64Array} `output` parameter, returned for convenience
|
|
15
|
+
*
|
|
16
|
+
* @author Alex Goldring
|
|
17
|
+
* @copyright Company Named Limited (c) 2026
|
|
18
|
+
*/
|
|
19
|
+
export function m4_make_rotation_x(output, angle) {
|
|
20
|
+
assert.isNumber(angle, 'angle');
|
|
21
|
+
assert.notNaN(angle, 'angle');
|
|
22
|
+
|
|
23
|
+
const s = Math.sin(angle);
|
|
24
|
+
const c = Math.cos(angle);
|
|
25
|
+
|
|
26
|
+
output[0] = 1;
|
|
27
|
+
output[1] = 0;
|
|
28
|
+
output[2] = 0;
|
|
29
|
+
output[3] = 0;
|
|
30
|
+
|
|
31
|
+
output[4] = 0;
|
|
32
|
+
output[5] = c;
|
|
33
|
+
output[6] = s;
|
|
34
|
+
output[7] = 0;
|
|
35
|
+
|
|
36
|
+
output[8] = 0;
|
|
37
|
+
output[9] = -s;
|
|
38
|
+
output[10] = c;
|
|
39
|
+
output[11] = 0;
|
|
40
|
+
|
|
41
|
+
output[12] = 0;
|
|
42
|
+
output[13] = 0;
|
|
43
|
+
output[14] = 0;
|
|
44
|
+
output[15] = 1;
|
|
45
|
+
|
|
46
|
+
return output;
|
|
47
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a 4x4 matrix that corresponds to a rotation around the Y axis.
|
|
3
|
+
*
|
|
4
|
+
* Right-handed: a positive angle carries +Z towards +X. The rotation-around-X and
|
|
5
|
+
* rotation-around-Z companions are {@link m4_make_rotation_x} and {@link m4_make_rotation_z}; to
|
|
6
|
+
* compose several, build each one and chain them with {@link m4_multiply}.
|
|
7
|
+
*
|
|
8
|
+
* Allocation-free.
|
|
9
|
+
*
|
|
10
|
+
* @param {number[]|Float32Array|Float64Array} output 4x4 matrix output will be written here
|
|
11
|
+
* @param {number} angle rotation, in radians
|
|
12
|
+
* @returns {number[]|Float32Array|Float64Array} `output` parameter, returned for convenience
|
|
13
|
+
*
|
|
14
|
+
* @author Alex Goldring
|
|
15
|
+
* @copyright Company Named Limited (c) 2026
|
|
16
|
+
*/
|
|
17
|
+
export function m4_make_rotation_y(output: number[] | Float32Array | Float64Array, angle: number): number[] | Float32Array | Float64Array;
|
|
18
|
+
//# sourceMappingURL=m4_make_rotation_y.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"m4_make_rotation_y.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/m4_make_rotation_y.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,2CAPW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,SAClC,MAAM,GACJ,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,CAiC9C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { assert } from "../../../assert.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Create a 4x4 matrix that corresponds to a rotation around the Y axis.
|
|
5
|
+
*
|
|
6
|
+
* Right-handed: a positive angle carries +Z towards +X. The rotation-around-X and
|
|
7
|
+
* rotation-around-Z companions are {@link m4_make_rotation_x} and {@link m4_make_rotation_z}; to
|
|
8
|
+
* compose several, build each one and chain them with {@link m4_multiply}.
|
|
9
|
+
*
|
|
10
|
+
* Allocation-free.
|
|
11
|
+
*
|
|
12
|
+
* @param {number[]|Float32Array|Float64Array} output 4x4 matrix output will be written here
|
|
13
|
+
* @param {number} angle rotation, in radians
|
|
14
|
+
* @returns {number[]|Float32Array|Float64Array} `output` parameter, returned for convenience
|
|
15
|
+
*
|
|
16
|
+
* @author Alex Goldring
|
|
17
|
+
* @copyright Company Named Limited (c) 2026
|
|
18
|
+
*/
|
|
19
|
+
export function m4_make_rotation_y(output, angle) {
|
|
20
|
+
assert.isNumber(angle, 'angle');
|
|
21
|
+
assert.notNaN(angle, 'angle');
|
|
22
|
+
|
|
23
|
+
const s = Math.sin(angle);
|
|
24
|
+
const c = Math.cos(angle);
|
|
25
|
+
|
|
26
|
+
output[0] = c;
|
|
27
|
+
output[1] = 0;
|
|
28
|
+
output[2] = -s;
|
|
29
|
+
output[3] = 0;
|
|
30
|
+
|
|
31
|
+
output[4] = 0;
|
|
32
|
+
output[5] = 1;
|
|
33
|
+
output[6] = 0;
|
|
34
|
+
output[7] = 0;
|
|
35
|
+
|
|
36
|
+
output[8] = s;
|
|
37
|
+
output[9] = 0;
|
|
38
|
+
output[10] = c;
|
|
39
|
+
output[11] = 0;
|
|
40
|
+
|
|
41
|
+
output[12] = 0;
|
|
42
|
+
output[13] = 0;
|
|
43
|
+
output[14] = 0;
|
|
44
|
+
output[15] = 1;
|
|
45
|
+
|
|
46
|
+
return output;
|
|
47
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a 4x4 matrix that corresponds to a rotation around the Z axis.
|
|
3
|
+
*
|
|
4
|
+
* Right-handed: a positive angle carries +X towards +Y. The rotation-around-X and
|
|
5
|
+
* rotation-around-Y companions are {@link m4_make_rotation_x} and {@link m4_make_rotation_y}; to
|
|
6
|
+
* compose several, build each one and chain them with {@link m4_multiply}.
|
|
7
|
+
*
|
|
8
|
+
* Allocation-free.
|
|
9
|
+
*
|
|
10
|
+
* @param {number[]|Float32Array|Float64Array} output 4x4 matrix output will be written here
|
|
11
|
+
* @param {number} angle rotation, in radians
|
|
12
|
+
* @returns {number[]|Float32Array|Float64Array} `output` parameter, returned for convenience
|
|
13
|
+
*
|
|
14
|
+
* @author Alex Goldring
|
|
15
|
+
* @copyright Company Named Limited (c) 2026
|
|
16
|
+
*/
|
|
17
|
+
export function m4_make_rotation_z(output: number[] | Float32Array | Float64Array, angle: number): number[] | Float32Array | Float64Array;
|
|
18
|
+
//# sourceMappingURL=m4_make_rotation_z.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"m4_make_rotation_z.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/m4_make_rotation_z.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,2CAPW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,SAClC,MAAM,GACJ,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,CAiC9C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { assert } from "../../../assert.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Create a 4x4 matrix that corresponds to a rotation around the Z axis.
|
|
5
|
+
*
|
|
6
|
+
* Right-handed: a positive angle carries +X towards +Y. The rotation-around-X and
|
|
7
|
+
* rotation-around-Y companions are {@link m4_make_rotation_x} and {@link m4_make_rotation_y}; to
|
|
8
|
+
* compose several, build each one and chain them with {@link m4_multiply}.
|
|
9
|
+
*
|
|
10
|
+
* Allocation-free.
|
|
11
|
+
*
|
|
12
|
+
* @param {number[]|Float32Array|Float64Array} output 4x4 matrix output will be written here
|
|
13
|
+
* @param {number} angle rotation, in radians
|
|
14
|
+
* @returns {number[]|Float32Array|Float64Array} `output` parameter, returned for convenience
|
|
15
|
+
*
|
|
16
|
+
* @author Alex Goldring
|
|
17
|
+
* @copyright Company Named Limited (c) 2026
|
|
18
|
+
*/
|
|
19
|
+
export function m4_make_rotation_z(output, angle) {
|
|
20
|
+
assert.isNumber(angle, 'angle');
|
|
21
|
+
assert.notNaN(angle, 'angle');
|
|
22
|
+
|
|
23
|
+
const s = Math.sin(angle);
|
|
24
|
+
const c = Math.cos(angle);
|
|
25
|
+
|
|
26
|
+
output[0] = c;
|
|
27
|
+
output[1] = s;
|
|
28
|
+
output[2] = 0;
|
|
29
|
+
output[3] = 0;
|
|
30
|
+
|
|
31
|
+
output[4] = -s;
|
|
32
|
+
output[5] = c;
|
|
33
|
+
output[6] = 0;
|
|
34
|
+
output[7] = 0;
|
|
35
|
+
|
|
36
|
+
output[8] = 0;
|
|
37
|
+
output[9] = 0;
|
|
38
|
+
output[10] = 1;
|
|
39
|
+
output[11] = 0;
|
|
40
|
+
|
|
41
|
+
output[12] = 0;
|
|
42
|
+
output[13] = 0;
|
|
43
|
+
output[14] = 0;
|
|
44
|
+
output[15] = 1;
|
|
45
|
+
|
|
46
|
+
return output;
|
|
47
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a conventional perspective projection matrix: right-handed, with clip depth spanning the
|
|
3
|
+
* full −1…1 that OpenGL and three.js use.
|
|
4
|
+
*
|
|
5
|
+
* This is *not* the projection the renderer draws with — Shade's cameras use an infinite reverse-Z
|
|
6
|
+
* with a 0…1 depth range, which is what WebGPU wants. This one exists for the arithmetic that has to
|
|
7
|
+
* hold under either shape, and for reading geometry produced against the OpenGL convention.
|
|
8
|
+
*
|
|
9
|
+
* `far` is finite here on purpose: an infinite far plane is a different matrix, not a special value
|
|
10
|
+
* of this one.
|
|
11
|
+
*
|
|
12
|
+
* Allocation-free.
|
|
13
|
+
*
|
|
14
|
+
* @param {number[]|Float32Array|Float64Array} out destination 4x4 matrix
|
|
15
|
+
* @param {number} fov_y vertical field of view, in radians
|
|
16
|
+
* @param {number} aspect viewport width divided by its height
|
|
17
|
+
* @param {number} near distance to the near clipping plane, greater than 0
|
|
18
|
+
* @param {number} far distance to the far clipping plane, greater than `near`
|
|
19
|
+
* @returns {number[]|Float32Array|Float64Array} `out`, for convenience
|
|
20
|
+
*
|
|
21
|
+
* @author Alex Goldring
|
|
22
|
+
* @copyright Company Named Limited (c) 2026
|
|
23
|
+
*/
|
|
24
|
+
export function m4_perspective(out: number[] | Float32Array | Float64Array, fov_y: number, aspect: number, near: number, far: number): number[] | Float32Array | Float64Array;
|
|
25
|
+
//# sourceMappingURL=m4_perspective.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"m4_perspective.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/m4_perspective.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,oCAVW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,SAClC,MAAM,UACN,MAAM,QACN,MAAM,OACN,MAAM,GACJ,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,CA6C9C"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { assert } from "../../../assert.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Build a conventional perspective projection matrix: right-handed, with clip depth spanning the
|
|
5
|
+
* full −1…1 that OpenGL and three.js use.
|
|
6
|
+
*
|
|
7
|
+
* This is *not* the projection the renderer draws with — Shade's cameras use an infinite reverse-Z
|
|
8
|
+
* with a 0…1 depth range, which is what WebGPU wants. This one exists for the arithmetic that has to
|
|
9
|
+
* hold under either shape, and for reading geometry produced against the OpenGL convention.
|
|
10
|
+
*
|
|
11
|
+
* `far` is finite here on purpose: an infinite far plane is a different matrix, not a special value
|
|
12
|
+
* of this one.
|
|
13
|
+
*
|
|
14
|
+
* Allocation-free.
|
|
15
|
+
*
|
|
16
|
+
* @param {number[]|Float32Array|Float64Array} out destination 4x4 matrix
|
|
17
|
+
* @param {number} fov_y vertical field of view, in radians
|
|
18
|
+
* @param {number} aspect viewport width divided by its height
|
|
19
|
+
* @param {number} near distance to the near clipping plane, greater than 0
|
|
20
|
+
* @param {number} far distance to the far clipping plane, greater than `near`
|
|
21
|
+
* @returns {number[]|Float32Array|Float64Array} `out`, for convenience
|
|
22
|
+
*
|
|
23
|
+
* @author Alex Goldring
|
|
24
|
+
* @copyright Company Named Limited (c) 2026
|
|
25
|
+
*/
|
|
26
|
+
export function m4_perspective(out, fov_y, aspect, near, far) {
|
|
27
|
+
assert.isNumber(fov_y, 'fov_y');
|
|
28
|
+
assert.greaterThan(fov_y, 0, 'fov_y');
|
|
29
|
+
assert.lessThan(fov_y, Math.PI, 'fov_y');
|
|
30
|
+
|
|
31
|
+
assert.isNumber(aspect, 'aspect');
|
|
32
|
+
assert.greaterThan(aspect, 0, 'aspect');
|
|
33
|
+
|
|
34
|
+
assert.isNumber(near, 'near');
|
|
35
|
+
assert.greaterThan(near, 0, 'near');
|
|
36
|
+
|
|
37
|
+
assert.isFinite(far, 'far');
|
|
38
|
+
assert.greaterThan(far, near, 'far');
|
|
39
|
+
|
|
40
|
+
const f = 1 / Math.tan(fov_y * 0.5);
|
|
41
|
+
|
|
42
|
+
// 1 / (near - far), negative, and the shared factor of both depth terms
|
|
43
|
+
const nf = 1 / (near - far);
|
|
44
|
+
|
|
45
|
+
out[0] = f / aspect;
|
|
46
|
+
out[1] = 0;
|
|
47
|
+
out[2] = 0;
|
|
48
|
+
out[3] = 0;
|
|
49
|
+
|
|
50
|
+
out[4] = 0;
|
|
51
|
+
out[5] = f;
|
|
52
|
+
out[6] = 0;
|
|
53
|
+
out[7] = 0;
|
|
54
|
+
|
|
55
|
+
out[8] = 0;
|
|
56
|
+
out[9] = 0;
|
|
57
|
+
out[10] = (far + near) * nf;
|
|
58
|
+
out[11] = -1;
|
|
59
|
+
|
|
60
|
+
out[12] = 0;
|
|
61
|
+
out[13] = 0;
|
|
62
|
+
out[14] = 2 * far * near * nf;
|
|
63
|
+
out[15] = 0;
|
|
64
|
+
|
|
65
|
+
return out;
|
|
66
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirstPersonPlayerControllerSystem.d.ts","sourceRoot":"","sources":["../../../../../src/engine/control/first-person/FirstPersonPlayerControllerSystem.js"],"names":[],"mappings":"AAsXA;;;;;;;;;;;;;;;;;GAiBG;AACH;;IAOI,wEAAwD;IAExD,gKAIE;IAEF;;;OAGG;IACH,SAFU,IAAI,MAAM,EAAE,gBAAgB,CAAC,CAEnB;IAEpB;;;;OAIG;IACH,sBAFU,OAAO,CAEW;IAE5B;;;;OAIG;IACH,SAFU,MAAM,CAEJ;IAEZ;;;;;;;;;;;;;;;;OAgBG;IACH,oBAFc,MAAM,KAAI,MAAM,KAAI,MAAM,KAAK,MAAM,GAAC,IAAI,CAElC;IAEtB;;;;;;;OAOG;IACH,eAFU,aAAa,GAAC,IAAI,CAEP;IAErB;;;;;;;;OAQG;IACH,eAAc;IAEd,+DAA+D;IAC/D,uBAA+B;IAE/B,yDAAyD;IACzD,oBAAyB;IAEzB,2CAA2C;IAC3C,oBAAwC;IAExC,2CAMC;IAED;;;;OAIG;IACH,iBAJW,2BAA2B,iBAC3B,SAAS,UACT,MAAM,QAqIhB;IAED;;;;OAIG;IACH,mBAJW,2BAA2B,iBAC3B,SAAS,UACT,MAAM,QAWhB;IAED;;;;;;;;OAQG;IACH,mBAHW,MAAM,GACJ,gBAAgB,GAAC,SAAS,CAItC;IAUG,mBAAoB;IAYpB,yBAA0B;IAI9B;;;;OAIG;IACH,oBAsUC;IAED;;;;;OAKG;IACH;;;;;;;;;;;;;;OAcG;IACH,2BAaC;IAED,2EA0CC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,2BASC;IAED;;;;;;;;;;;OAWG;IACH,wBA+EC;IAED;;;;;;;;;;;;;OAaG;IACH,2CAIC;IAED;;;;;;;;;;;OAWG;IACH,uBAMC;IAED;;;;;OAKG;IACH,sBAWC;IAED;;;;;OAKG;IACH,sBAgDC;IAED;;;;;;;;OAQG;IACH,wBA4CC;IAED;;;;;;OAMG;IACH,gBAsBC;IAED;;;;OAIG;IACH,uBAIC;IAED;;;OAGG;IACH,wBASC;IAED;;;;;;;;;;;;;;OAcG;IACH,2BA4IC;IAED;;;;;;;;;;;;;;;OAeG;IACH,kCAsDC;IAED;;;;;;;;;;OAUG;IACH,qBAiDC;IAED;;;;;;;;OAQG;IACH,4BAUC;IAED;;;;;;;;;OASG;IACH,8BAkBC;IAED;;;;;;;;;;;;;;;OAeG;IACH,qBA0BC;IAED;;;;;OAKG;IACH,
|
|
1
|
+
{"version":3,"file":"FirstPersonPlayerControllerSystem.d.ts","sourceRoot":"","sources":["../../../../../src/engine/control/first-person/FirstPersonPlayerControllerSystem.js"],"names":[],"mappings":"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"}
|