melonjs 19.6.0 → 19.7.0
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/README.md +5 -4
- package/build/application/application.d.ts +34 -2
- package/build/application/application.d.ts.map +1 -1
- package/build/application/settings.d.ts +37 -1
- package/build/application/settings.d.ts.map +1 -1
- package/build/camera/camera2d.d.ts +59 -7
- package/build/camera/camera2d.d.ts.map +1 -1
- package/build/camera/camera3d.d.ts +335 -0
- package/build/camera/camera3d.d.ts.map +1 -0
- package/build/camera/frustum.d.ts +162 -0
- package/build/camera/frustum.d.ts.map +1 -0
- package/build/const.d.ts +30 -3
- package/build/const.d.ts.map +1 -1
- package/build/geometries/sphere.d.ts +105 -0
- package/build/geometries/sphere.d.ts.map +1 -0
- package/build/index.d.ts +6 -4
- package/build/index.d.ts.map +1 -1
- package/build/index.js +27489 -24693
- package/build/index.js.map +4 -4
- package/build/input/keyboard.d.ts.map +1 -1
- package/build/input/pointerevent.d.ts.map +1 -1
- package/build/lang/deprecated.d.ts +18 -0
- package/build/lang/deprecated.d.ts.map +1 -1
- package/build/loader/loadingscreen.d.ts +8 -0
- package/build/loader/loadingscreen.d.ts.map +1 -1
- package/build/loader/parsers/mtl.d.ts.map +1 -1
- package/build/loader/parsers/obj.d.ts.map +1 -1
- package/build/math/color.d.ts +43 -5
- package/build/math/color.d.ts.map +1 -1
- package/build/math/math.d.ts +44 -0
- package/build/math/math.d.ts.map +1 -1
- package/build/math/observableVector2d.d.ts +14 -2
- package/build/math/observableVector2d.d.ts.map +1 -1
- package/build/math/observableVector3d.d.ts +14 -2
- package/build/math/observableVector3d.d.ts.map +1 -1
- package/build/math/vector2d.d.ts +16 -2
- package/build/math/vector2d.d.ts.map +1 -1
- package/build/math/vector3d.d.ts +16 -2
- package/build/math/vector3d.d.ts.map +1 -1
- package/build/particles/emitter.d.ts.map +1 -1
- package/build/physics/adapter.d.ts +77 -0
- package/build/physics/adapter.d.ts.map +1 -1
- package/build/physics/broadphase/aabb3d.d.ts +115 -0
- package/build/physics/broadphase/aabb3d.d.ts.map +1 -0
- package/build/physics/broadphase/broadphase.d.ts +74 -0
- package/build/physics/broadphase/broadphase.d.ts.map +1 -0
- package/build/physics/broadphase/factory.d.ts +30 -0
- package/build/physics/broadphase/factory.d.ts.map +1 -0
- package/build/physics/broadphase/octree.d.ts +325 -0
- package/build/physics/broadphase/octree.d.ts.map +1 -0
- package/build/physics/broadphase/quadtree.d.ts +184 -0
- package/build/physics/broadphase/quadtree.d.ts.map +1 -0
- package/build/physics/builtin/body.d.ts +7 -3
- package/build/physics/builtin/body.d.ts.map +1 -1
- package/build/physics/builtin/builtin-adapter.d.ts +6 -1
- package/build/physics/builtin/builtin-adapter.d.ts.map +1 -1
- package/build/physics/builtin/raycast.d.ts.map +1 -1
- package/build/physics/world.d.ts +15 -4
- package/build/physics/world.d.ts.map +1 -1
- package/build/renderable/container.d.ts +51 -5
- package/build/renderable/container.d.ts.map +1 -1
- package/build/renderable/mesh.d.ts +85 -10
- package/build/renderable/mesh.d.ts.map +1 -1
- package/build/renderable/renderable.d.ts +9 -4
- package/build/renderable/renderable.d.ts.map +1 -1
- package/build/state/stage.d.ts +8 -0
- package/build/state/stage.d.ts.map +1 -1
- package/build/state/state.d.ts.map +1 -1
- package/build/system/device.d.ts +196 -310
- package/build/system/device.d.ts.map +1 -1
- package/build/system/event.d.ts +49 -0
- package/build/system/event.d.ts.map +1 -1
- package/build/system/fullscreen.d.ts +16 -0
- package/build/system/fullscreen.d.ts.map +1 -0
- package/build/system/platform.d.ts +32 -4
- package/build/system/platform.d.ts.map +1 -1
- package/build/system/timer.d.ts.map +1 -1
- package/build/utils/function.d.ts +7 -1
- package/build/utils/function.d.ts.map +1 -1
- package/build/utils/types.d.ts +5 -0
- package/build/utils/types.d.ts.map +1 -1
- package/build/video/buffer/vertex.d.ts +19 -4
- package/build/video/buffer/vertex.d.ts.map +1 -1
- package/build/video/canvas/canvas_renderer.d.ts +4 -4
- package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
- package/build/video/canvas_factory.d.ts +25 -0
- package/build/video/canvas_factory.d.ts.map +1 -0
- package/build/video/renderer.d.ts +89 -15
- package/build/video/renderer.d.ts.map +1 -1
- package/build/video/renderstate.d.ts +12 -0
- package/build/video/renderstate.d.ts.map +1 -1
- package/build/video/rendertarget/rendertarget.d.ts +3 -1
- package/build/video/rendertarget/rendertarget.d.ts.map +1 -1
- package/build/video/texture/cache.d.ts +5 -0
- package/build/video/texture/cache.d.ts.map +1 -1
- package/build/video/texture/resource.d.ts +22 -14
- package/build/video/texture/resource.d.ts.map +1 -1
- package/build/video/video.d.ts +3 -1
- package/build/video/video.d.ts.map +1 -1
- package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/lit_quad_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/material_batcher.d.ts +9 -0
- package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/mesh_batcher.d.ts +45 -1
- package/build/video/webgl/batchers/mesh_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/primitive_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/quad_batcher.d.ts +2 -2
- package/build/video/webgl/batchers/quad_batcher.d.ts.map +1 -1
- package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts.map +1 -1
- package/build/video/webgl/webgl_renderer.d.ts +2 -2
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
- package/package.json +3 -2
- package/build/physics/builtin/quadtree.d.ts +0 -112
- package/build/physics/builtin/quadtree.d.ts.map +0 -1
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { Matrix3d } from "../math/matrix3d.ts";
|
|
2
|
+
/**
|
|
3
|
+
* A plane in 3D space, expressed as `Ax + By + Cz + D = 0`.
|
|
4
|
+
* `normal` is `(A, B, C)`; `constant` is `D`. Used by {@link Frustum}
|
|
5
|
+
* to represent the six bounding planes for culling.
|
|
6
|
+
* @category Camera
|
|
7
|
+
*/
|
|
8
|
+
export interface Plane {
|
|
9
|
+
/** plane normal (A, B, C in the plane equation) — not necessarily unit-length */
|
|
10
|
+
nx: number;
|
|
11
|
+
ny: number;
|
|
12
|
+
nz: number;
|
|
13
|
+
/** plane constant (D in the plane equation) */
|
|
14
|
+
d: number;
|
|
15
|
+
}
|
|
16
|
+
export interface FrustumOptions {
|
|
17
|
+
/** vertical field of view in radians (default: π / 3 = 60°) */
|
|
18
|
+
fov?: number;
|
|
19
|
+
/** aspect ratio (width / height) — default 1.0 (square) */
|
|
20
|
+
aspect?: number;
|
|
21
|
+
/** distance to the near clipping plane (default 0.1) */
|
|
22
|
+
near?: number;
|
|
23
|
+
/** distance to the far clipping plane (default 1000) */
|
|
24
|
+
far?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A view frustum — the truncated pyramid that defines a perspective
|
|
28
|
+
* camera's visible volume. Holds the four projection parameters
|
|
29
|
+
* (`fov`, `aspect`, `near`, `far`) and the matching projection matrix.
|
|
30
|
+
*
|
|
31
|
+
* Used by {@link Camera3d} as its source of truth for perspective
|
|
32
|
+
* projection. The matrix follows melonJS conventions: Y-down (sprite
|
|
33
|
+
* at higher `y` appears lower on screen, matching Camera2d) and +Z
|
|
34
|
+
* forward (sprite at higher `pos.z` is farther from the camera and
|
|
35
|
+
* renders smaller). This differs from the OpenGL default of Y-up and
|
|
36
|
+
* -Z forward, but matches the rest of the engine and lets Camera2d
|
|
37
|
+
* code translate directly to Camera3d.
|
|
38
|
+
*
|
|
39
|
+
* Plane-based frustum culling is available via {@link Frustum#planes}
|
|
40
|
+
* (rebuilt by {@link Frustum#setFromViewProjection} per frame) plus
|
|
41
|
+
* {@link Frustum#containsPoint} / {@link Frustum#intersectsSphere} for
|
|
42
|
+
* culling tests. `Camera3d.update` calls `setFromViewProjection` once
|
|
43
|
+
* per frame so its `isVisible(obj)` queries against current planes —
|
|
44
|
+
* no per-frame setup needed from user code.
|
|
45
|
+
* @category Camera
|
|
46
|
+
* @example
|
|
47
|
+
* const frustum = new Frustum({ fov: Math.PI / 3, aspect: 16 / 9 });
|
|
48
|
+
* frustum.near = 0.5;
|
|
49
|
+
* frustum.update();
|
|
50
|
+
* renderer.setProjection(frustum.projectionMatrix);
|
|
51
|
+
*/
|
|
52
|
+
export default class Frustum {
|
|
53
|
+
/**
|
|
54
|
+
* vertical field of view in radians.
|
|
55
|
+
* Mutating this field requires calling {@link Frustum#update} to
|
|
56
|
+
* rebuild the projection matrix — or use {@link Frustum#set} to
|
|
57
|
+
* change multiple parameters and update in one call.
|
|
58
|
+
*/
|
|
59
|
+
fov: number;
|
|
60
|
+
/**
|
|
61
|
+
* aspect ratio (width / height). Camera3d sets this automatically
|
|
62
|
+
* from its viewport on resize.
|
|
63
|
+
*/
|
|
64
|
+
aspect: number;
|
|
65
|
+
/**
|
|
66
|
+
* distance to the near clipping plane (positive — measured along
|
|
67
|
+
* +Z, the camera's forward direction).
|
|
68
|
+
*/
|
|
69
|
+
near: number;
|
|
70
|
+
/**
|
|
71
|
+
* distance to the far clipping plane.
|
|
72
|
+
*/
|
|
73
|
+
far: number;
|
|
74
|
+
/**
|
|
75
|
+
* the perspective projection matrix derived from `fov`, `aspect`,
|
|
76
|
+
* `near` and `far`. Rebuilt by {@link Frustum#update}.
|
|
77
|
+
*/
|
|
78
|
+
projectionMatrix: Matrix3d;
|
|
79
|
+
/**
|
|
80
|
+
* The six bounding planes of this frustum in world space, in order:
|
|
81
|
+
* left, right, bottom, top, near, far. Each plane is oriented so
|
|
82
|
+
* its `(nx, ny, nz)` normal points **inward** — a point with
|
|
83
|
+
* positive signed distance to a plane is on the visible side.
|
|
84
|
+
*
|
|
85
|
+
* Populated by {@link Frustum#setFromViewProjection}. Callers that
|
|
86
|
+
* use {@link Frustum#intersectsSphere} or {@link Frustum#containsPoint}
|
|
87
|
+
* must first call `setFromViewProjection` each frame the camera
|
|
88
|
+
* moves; otherwise the planes describe a stale frustum.
|
|
89
|
+
*/
|
|
90
|
+
planes: Plane[];
|
|
91
|
+
/**
|
|
92
|
+
* @param [opts] - initial parameters; any omitted field uses the
|
|
93
|
+
* class default
|
|
94
|
+
*/
|
|
95
|
+
constructor(opts?: FrustumOptions);
|
|
96
|
+
/**
|
|
97
|
+
* Atomically set all four parameters and rebuild the projection
|
|
98
|
+
* matrix in one call.
|
|
99
|
+
* @param fov - vertical field of view in radians
|
|
100
|
+
* @param aspect - aspect ratio (width / height)
|
|
101
|
+
* @param near - distance to the near clipping plane
|
|
102
|
+
* @param far - distance to the far clipping plane
|
|
103
|
+
* @returns this Frustum for chaining
|
|
104
|
+
*/
|
|
105
|
+
set(fov: number, aspect: number, near: number, far: number): this;
|
|
106
|
+
/**
|
|
107
|
+
* Rebuild {@link Frustum#projectionMatrix} from the current
|
|
108
|
+
* parameter values. Call this after mutating any of `fov`,
|
|
109
|
+
* `aspect`, `near`, `far` individually.
|
|
110
|
+
*
|
|
111
|
+
* The matrix is the standard OpenGL perspective post-multiplied by
|
|
112
|
+
* `scale(1, -1, -1)` so that:
|
|
113
|
+
* - Y-down matches melonJS screen + Camera2d conventions
|
|
114
|
+
* - +Z is forward (positive `pos.z` = farther from camera)
|
|
115
|
+
*/
|
|
116
|
+
update(): void;
|
|
117
|
+
/**
|
|
118
|
+
* Rebuild the six bounding {@link Frustum#planes} from the world →
|
|
119
|
+
* clip matrix. Standard Gribb–Hartmann extraction: each plane is
|
|
120
|
+
* one of the six combinations of the matrix's row 3 (the "w" row)
|
|
121
|
+
* ± rows 0, 1, 2.
|
|
122
|
+
*
|
|
123
|
+
* Call this once per frame after the camera has moved (typically
|
|
124
|
+
* from `Camera3d.update`); the planes are then valid in world
|
|
125
|
+
* space for that frame and can be tested against world-space
|
|
126
|
+
* bounds via {@link Frustum#intersectsSphere} /
|
|
127
|
+
* {@link Frustum#containsPoint}.
|
|
128
|
+
*
|
|
129
|
+
* **Pass `projectionMatrix × viewMatrix`** — column-major /
|
|
130
|
+
* gl-matrix convention: a world-space point becomes a clip-space
|
|
131
|
+
* point via `clip = projection × view × world`, so the combined
|
|
132
|
+
* matrix is `projection × view`. The parameter name says
|
|
133
|
+
* `viewProjection` for that reason — it's the matrix uploaded to
|
|
134
|
+
* `uProjectionMatrix` in the vertex shader (after Camera3d bakes
|
|
135
|
+
* the per-frame world translate into the view via
|
|
136
|
+
* `container.translate`).
|
|
137
|
+
* @param viewProjection - the `projectionMatrix × viewMatrix` matrix
|
|
138
|
+
*/
|
|
139
|
+
setFromViewProjection(viewProjection: Matrix3d): void;
|
|
140
|
+
/**
|
|
141
|
+
* Test whether a world-space sphere overlaps this frustum.
|
|
142
|
+
* Conservative — a sphere that touches even one plane's positive
|
|
143
|
+
* side is reported visible. Always run {@link Frustum#setFromViewProjection}
|
|
144
|
+
* first so the planes describe the current camera view.
|
|
145
|
+
* @param x - sphere center x in world coords
|
|
146
|
+
* @param y - sphere center y in world coords
|
|
147
|
+
* @param z - sphere center z in world coords
|
|
148
|
+
* @param radius - sphere radius in world units
|
|
149
|
+
* @returns true if the sphere is at least partially inside the frustum
|
|
150
|
+
*/
|
|
151
|
+
intersectsSphere(x: number, y: number, z: number, radius: number): boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Test whether a world-space point is inside this frustum.
|
|
154
|
+
* Always run {@link Frustum#setFromViewProjection} first.
|
|
155
|
+
* @param x - world x
|
|
156
|
+
* @param y - world y
|
|
157
|
+
* @param z - world z
|
|
158
|
+
* @returns true if the point is inside (on the positive side of every plane)
|
|
159
|
+
*/
|
|
160
|
+
containsPoint(x: number, y: number, z: number): boolean;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=frustum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frustum.d.ts","sourceRoot":"","sources":["../../src/camera/frustum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IACrB,iFAAiF;IACjF,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,CAAC,EAAE,MAAM,CAAC;CACV;AAED,MAAM,WAAW,cAAc;IAC9B,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAC3B;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,gBAAgB,EAAE,QAAQ,CAAC;IAE3B;;;;;;;;;;OAUG;IACH,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB;;;OAGG;gBACS,IAAI,CAAC,EAAE,cAAc;IAoBjC;;;;;;;;OAQG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IASjE;;;;;;;;;OASG;IACH,MAAM,IAAI,IAAI;IAWd;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,qBAAqB,CAAC,cAAc,EAAE,QAAQ,GAAG,IAAI;IAqDrD;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAc1E;;;;;;;OAOG;IACH,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;CASvD"}
|
package/build/const.d.ts
CHANGED
|
@@ -1,13 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Select the HTML5 Canvas renderer. Lower performance and no shader /
|
|
3
|
+
* mesh / Camera3d support, but supported on every browser including
|
|
4
|
+
* environments where WebGL is unavailable (some embedded webviews,
|
|
5
|
+
* stripped-down kiosk browsers, GPU blocklisted by driver policy).
|
|
6
|
+
*
|
|
7
|
+
* Use when the example / game uses only 2D sprites + primitives and you
|
|
8
|
+
* want the broadest possible reach. Anything depending on `ShaderEffect`,
|
|
9
|
+
* `Mesh`, `Camera3d`, GPU TMX tile rendering or `Light2d` will silently
|
|
10
|
+
* not work — those subsystems are WebGL-only.
|
|
3
11
|
*/
|
|
4
12
|
export declare const CANVAS = 0;
|
|
5
13
|
/**
|
|
6
|
-
*
|
|
14
|
+
* Require the WebGL renderer. **Throws at `new Application(...)` time
|
|
15
|
+
* if WebGL is unavailable** (driver-blocklisted GPU, software fallback
|
|
16
|
+
* failing the `failIfMajorPerformanceCaveat` check, no `WebGLRenderingContext`
|
|
17
|
+
* in the environment, etc.) — does NOT silently fall back to Canvas.
|
|
18
|
+
*
|
|
19
|
+
* Use this when your scene needs WebGL (Camera3d, Mesh, ShaderEffect,
|
|
20
|
+
* Light2d, GPU tilemap) and you'd rather fail fast with a clear error
|
|
21
|
+
* than have the engine render a stuck blank canvas.
|
|
22
|
+
*
|
|
23
|
+
* If Canvas fallback is acceptable when WebGL isn't there, use
|
|
24
|
+
* {@link AUTO} instead.
|
|
7
25
|
*/
|
|
8
26
|
export declare const WEBGL = 1;
|
|
9
27
|
/**
|
|
10
|
-
*
|
|
28
|
+
* Auto-select the renderer: prefer WebGL when available, silently fall
|
|
29
|
+
* back to Canvas otherwise. Application construction always succeeds.
|
|
30
|
+
*
|
|
31
|
+
* Use this when your scene works under both renderers (2D sprites,
|
|
32
|
+
* primitives, basic tile maps) and you want the engine to pick the
|
|
33
|
+
* best available backend. Note: subsystems that require WebGL
|
|
34
|
+
* (Camera3d, Mesh, ShaderEffect, Light2d, GPU tilemap) will silently
|
|
35
|
+
* stop working under the Canvas fallback path — if your scene depends
|
|
36
|
+
* on any of those, use {@link WEBGL} so the failure surfaces at
|
|
37
|
+
* construction time instead of as a black canvas at runtime.
|
|
11
38
|
*/
|
|
12
39
|
export declare const AUTO = 2;
|
|
13
40
|
export type RendererType = typeof CANVAS | typeof WEBGL | typeof AUTO;
|
package/build/const.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,IAAI,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,IAAI,CAAC;AAEvB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,IAAI,CAAC;AAEtB,MAAM,MAAM,YAAY,GAAG,OAAO,MAAM,GAAG,OAAO,KAAK,GAAG,OAAO,IAAI,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Vector3d } from "../math/vector3d.ts";
|
|
2
|
+
import { AABB3d } from "../physics/broadphase/aabb3d.ts";
|
|
3
|
+
/**
|
|
4
|
+
* A 3D sphere — `{ centre, radius }`. Sibling of {@link Ellipse} in
|
|
5
|
+
* the geometry surface; used by {@link Octree} / `adapter.querySphere`
|
|
6
|
+
* as the canonical 3D region-query shape, and by user code for any
|
|
7
|
+
* sphere-vs-sphere / sphere-vs-AABB collision check under
|
|
8
|
+
* {@link Camera3d}.
|
|
9
|
+
*
|
|
10
|
+
* Not currently part of the {@link BodyShape} union — `Body` is 2D-
|
|
11
|
+
* only in melonJS today; Sphere is a math/geometry primitive that
|
|
12
|
+
* would slot in once a 3D physics adapter ships.
|
|
13
|
+
* @category Geometry
|
|
14
|
+
* @example
|
|
15
|
+
* import { Sphere } from "melonjs";
|
|
16
|
+
*
|
|
17
|
+
* const a = new Sphere(0, 0, 0, 10);
|
|
18
|
+
* const b = new Sphere(15, 0, 0, 10);
|
|
19
|
+
* a.overlaps(b); // true — surfaces touch at x = 5
|
|
20
|
+
*/
|
|
21
|
+
export declare class Sphere {
|
|
22
|
+
/** Centre coordinates of the sphere (Y-down, +Z forward — Camera3d convention). */
|
|
23
|
+
pos: Vector3d;
|
|
24
|
+
/** Sphere radius. Negative values are treated like their absolute value in {@link Sphere.overlaps} / {@link Sphere.contains}. */
|
|
25
|
+
radius: number;
|
|
26
|
+
/**
|
|
27
|
+
* Cached AABB for this sphere. Allocated lazily on the first
|
|
28
|
+
* {@link Sphere.getBounds} call so a sphere used only for inline
|
|
29
|
+
* `overlaps` checks doesn't pay for the AABB.
|
|
30
|
+
* @ignore
|
|
31
|
+
*/
|
|
32
|
+
_bounds?: AABB3d;
|
|
33
|
+
/**
|
|
34
|
+
* @param x - centre x
|
|
35
|
+
* @param y - centre y
|
|
36
|
+
* @param z - centre z
|
|
37
|
+
* @param radius - sphere radius
|
|
38
|
+
*/
|
|
39
|
+
constructor(x: number, y: number, z: number, radius: number);
|
|
40
|
+
/**
|
|
41
|
+
* Re-position and resize the sphere in one shot. Mirrors
|
|
42
|
+
* {@link Ellipse.setShape}.
|
|
43
|
+
* @param x - centre x
|
|
44
|
+
* @param y - centre y
|
|
45
|
+
* @param z - centre z
|
|
46
|
+
* @param radius - sphere radius
|
|
47
|
+
* @returns this sphere for chaining
|
|
48
|
+
*/
|
|
49
|
+
setShape(x: number, y: number, z: number, radius: number): this;
|
|
50
|
+
/**
|
|
51
|
+
* Test whether a point lies inside the sphere (boundary inclusive).
|
|
52
|
+
* Squared-distance test — no `sqrt` on the hot path. Matches the
|
|
53
|
+
* boundary convention of {@link AABB3d.contains}.
|
|
54
|
+
* @param x - point x
|
|
55
|
+
* @param y - point y
|
|
56
|
+
* @param z - point z
|
|
57
|
+
*/
|
|
58
|
+
contains(x: number, y: number, z: number): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Vector form of {@link Sphere.contains}.
|
|
61
|
+
* @param v - point
|
|
62
|
+
*/
|
|
63
|
+
contains(v: Vector3d): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Test whether this sphere overlaps another. Boundary inclusive
|
|
66
|
+
* (touching surfaces count as overlap), matching
|
|
67
|
+
* {@link AABB3d.overlaps}.
|
|
68
|
+
* @param other - the other sphere
|
|
69
|
+
*/
|
|
70
|
+
overlaps(other: Sphere): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Test whether this sphere overlaps an axis-aligned box. Delegates
|
|
73
|
+
* to {@link AABB3d.overlapsSphere} so the two shapes agree on
|
|
74
|
+
* boundary semantics.
|
|
75
|
+
* @param aabb - the box
|
|
76
|
+
*/
|
|
77
|
+
overlapsAABB(aabb: AABB3d): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Smallest {@link AABB3d} containing this sphere. Cached — repeat
|
|
80
|
+
* calls without a `setShape` between return the same instance and
|
|
81
|
+
* the same values.
|
|
82
|
+
*/
|
|
83
|
+
getBounds(): AABB3d;
|
|
84
|
+
/** @ignore */
|
|
85
|
+
_updateBounds(): void;
|
|
86
|
+
/**
|
|
87
|
+
* Reset the sphere to a zero-radius point at the origin.
|
|
88
|
+
*/
|
|
89
|
+
clear(): this;
|
|
90
|
+
/**
|
|
91
|
+
* Deep copy of this sphere. The clone shares NOTHING with the
|
|
92
|
+
* original — independent `pos` Vector3d, independent AABB cache.
|
|
93
|
+
* Pulls from {@link spherePool} so back-to-back clones are
|
|
94
|
+
* allocation-free.
|
|
95
|
+
*/
|
|
96
|
+
clone(): Sphere;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* A pool of {@link Sphere} instances. Mirrors {@link ellipsePool} —
|
|
100
|
+
* `spherePool.get(x, y, z, r)` recycles an existing instance via
|
|
101
|
+
* `setShape` before allocating a new one; release via the
|
|
102
|
+
* matching `.release()` (the `createPool` contract).
|
|
103
|
+
*/
|
|
104
|
+
export declare const spherePool: import("../system/pool.ts").Pool<Sphere, [x: number, y: number, z: number, radius: number]>;
|
|
105
|
+
//# sourceMappingURL=sphere.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sphere.d.ts","sourceRoot":"","sources":["../../src/geometries/sphere.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAGzD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,MAAM;IAClB,mFAAmF;IACnF,GAAG,EAAE,QAAQ,CAAC;IAEd,iIAAiI;IACjI,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;gBACS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK3D;;;;;;;;OAQG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAUxD;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAClD;;;OAGG;IACH,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO;IAsB9B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAahC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC;;;;OAIG;IACH,SAAS,IAAI,MAAM;IAQnB,cAAc;IACd,aAAa;IAYb;;OAEG;IACH,KAAK;IASL;;;;;OAKG;IACH,KAAK;CAGL;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,6FAWrB,CAAC"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import "./polyfill/index.ts";
|
|
2
2
|
import Application from "./application/application.ts";
|
|
3
3
|
import Camera2d from "./camera/camera2d.ts";
|
|
4
|
+
import Camera3d from "./camera/camera3d.ts";
|
|
4
5
|
import CameraEffect from "./camera/effects/camera_effect.ts";
|
|
5
6
|
import FadeEffect from "./camera/effects/fade_effect.ts";
|
|
6
7
|
import MaskEffect from "./camera/effects/mask_effect.ts";
|
|
7
8
|
import ShakeEffect from "./camera/effects/shake_effect.ts";
|
|
9
|
+
import Frustum from "./camera/frustum.ts";
|
|
8
10
|
import Pointer from "./input/pointer.ts";
|
|
9
11
|
import TMXHexagonalRenderer from "./level/tiled/renderer/TMXHexagonalRenderer.js";
|
|
10
12
|
import TMXIsometricRenderer from "./level/tiled/renderer/TMXIsometricRenderer.js";
|
|
@@ -22,7 +24,6 @@ import ParticleEmitter from "./particles/emitter.ts";
|
|
|
22
24
|
import Particle from "./particles/particle.ts";
|
|
23
25
|
import ParticleEmitterSettings from "./particles/settings.js";
|
|
24
26
|
import Body from "./physics/builtin/body.js";
|
|
25
|
-
import QuadTree from "./physics/builtin/quadtree.js";
|
|
26
27
|
import World from "./physics/world.js";
|
|
27
28
|
import { cache as plugins } from "./plugin/plugin.ts";
|
|
28
29
|
import Collectable from "./renderable/collectable.js";
|
|
@@ -93,6 +94,7 @@ export { Point } from "./geometries/point.ts";
|
|
|
93
94
|
export { Polygon } from "./geometries/polygon.ts";
|
|
94
95
|
export { Rect } from "./geometries/rectangle.ts";
|
|
95
96
|
export { RoundRect } from "./geometries/roundrect.ts";
|
|
97
|
+
export { Sphere } from "./geometries/sphere.ts";
|
|
96
98
|
export * as input from "./input/input.ts";
|
|
97
99
|
export * from "./lang/deprecated.js";
|
|
98
100
|
export { level } from "./level/level.js";
|
|
@@ -106,7 +108,7 @@ export { ObservableVector2d } from "./math/observableVector2d.ts";
|
|
|
106
108
|
export { ObservableVector3d } from "./math/observableVector3d.ts";
|
|
107
109
|
export { Vector2d } from "./math/vector2d.ts";
|
|
108
110
|
export { Vector3d } from "./math/vector3d.ts";
|
|
109
|
-
export type { AdapterCapabilities, AdapterOptions, BodyDefinition, BodyShape, BodyType, CollisionResponse, PhysicsAdapter, PhysicsBody, RaycastHit, } from "./physics/adapter.ts";
|
|
111
|
+
export type { AdapterCapabilities, AdapterOptions, BodyDefinition, BodyShape, BodyType, CollisionResponse, PhysicsAdapter, PhysicsBody, RaycastHit, RaycastHit3d, } from "./physics/adapter.ts";
|
|
110
112
|
export { Bounds } from "./physics/bounds.ts";
|
|
111
113
|
export { default as BuiltinAdapter } from "./physics/builtin/builtin-adapter.ts";
|
|
112
114
|
export { collision } from "./physics/collision.js";
|
|
@@ -117,8 +119,8 @@ export * as event from "./system/event.ts";
|
|
|
117
119
|
export * as utils from "./utils/utils.ts";
|
|
118
120
|
export * from "./version.ts";
|
|
119
121
|
export * as video from "./video/video.js";
|
|
120
|
-
export { Application, Batcher, BitmapText, BitmapTextData, BlurEffect, Body, Camera2d, CameraEffect, CanvasRenderer, CanvasRenderTarget, ChromaticAberrationEffect, Collectable, ColorLayer, ColorMatrix, ColorMatrixEffect, Container, DesaturateEffect, DissolveEffect, Draggable, DropShadowEffect, DropTarget, Entity, // eslint-disable-line @typescript-eslint/no-deprecated
|
|
121
|
-
FadeEffect, FlashEffect, GLShader, GlowEffect, Gradient, HologramEffect, ImageLayer, InvertEffect, Light2d, MaskEffect, Mesh, NineSliceSprite, OutlineEffect, Particle, ParticleEmitter, ParticleEmitterSettings, PixelateEffect, Pointer, PrimitiveBatcher, plugins, pool, QuadBatcher,
|
|
122
|
+
export { Application, Batcher, BitmapText, BitmapTextData, BlurEffect, Body, Camera2d, Camera3d, CameraEffect, CanvasRenderer, CanvasRenderTarget, ChromaticAberrationEffect, Collectable, ColorLayer, ColorMatrix, ColorMatrixEffect, Container, DesaturateEffect, DissolveEffect, Draggable, DropShadowEffect, DropTarget, Entity, // eslint-disable-line @typescript-eslint/no-deprecated
|
|
123
|
+
FadeEffect, FlashEffect, Frustum, GLShader, GlowEffect, Gradient, HologramEffect, ImageLayer, InvertEffect, Light2d, MaskEffect, Mesh, NineSliceSprite, OutlineEffect, Particle, ParticleEmitter, ParticleEmitterSettings, PixelateEffect, Pointer, PrimitiveBatcher, plugins, pool, QuadBatcher, Renderable, Renderer, RenderState, RenderTarget, ScanlineEffect, SepiaEffect, ShaderEffect, ShakeEffect, ShineEffect, Sprite, Stage, save, state, Text, TextureAtlas, Tile, TintPulseEffect, TMXHexagonalRenderer, TMXIsometricRenderer, TMXLayer, TMXOrthogonalRenderer, TMXRenderer, TMXStaggeredRenderer, TMXTileMap, TMXTileset, TMXTilesetGroup, TMXUtils, Trail, Trigger, Tween, timer, UIBaseElement, UISpriteElement, UITextButton, VignetteEffect, WaveEffect, WebGLRenderer, World, };
|
|
122
124
|
/**
|
|
123
125
|
* disable melonJS auto-initialization
|
|
124
126
|
* @see {@link boot}
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,CAAC;AAE7B,OAAO,WAA+B,MAAM,8BAA8B,CAAC;AAC3E,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,UAAU,MAAM,iCAAiC,CAAC;AACzD,OAAO,UAAU,MAAM,iCAAiC,CAAC;AACzD,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAC3D,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,oBAAoB,MAAM,gDAAgD,CAAC;AAClF,OAAO,oBAAoB,MAAM,gDAAgD,CAAC;AAClF,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AACpF,OAAO,WAAW,MAAM,uCAAuC,CAAC;AAChE,OAAO,oBAAoB,MAAM,gDAAgD,CAAC;AAClF,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAC5C,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,uBAAuB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|