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.
Files changed (114) hide show
  1. package/README.md +5 -4
  2. package/build/application/application.d.ts +34 -2
  3. package/build/application/application.d.ts.map +1 -1
  4. package/build/application/settings.d.ts +37 -1
  5. package/build/application/settings.d.ts.map +1 -1
  6. package/build/camera/camera2d.d.ts +59 -7
  7. package/build/camera/camera2d.d.ts.map +1 -1
  8. package/build/camera/camera3d.d.ts +335 -0
  9. package/build/camera/camera3d.d.ts.map +1 -0
  10. package/build/camera/frustum.d.ts +162 -0
  11. package/build/camera/frustum.d.ts.map +1 -0
  12. package/build/const.d.ts +30 -3
  13. package/build/const.d.ts.map +1 -1
  14. package/build/geometries/sphere.d.ts +105 -0
  15. package/build/geometries/sphere.d.ts.map +1 -0
  16. package/build/index.d.ts +6 -4
  17. package/build/index.d.ts.map +1 -1
  18. package/build/index.js +27489 -24693
  19. package/build/index.js.map +4 -4
  20. package/build/input/keyboard.d.ts.map +1 -1
  21. package/build/input/pointerevent.d.ts.map +1 -1
  22. package/build/lang/deprecated.d.ts +18 -0
  23. package/build/lang/deprecated.d.ts.map +1 -1
  24. package/build/loader/loadingscreen.d.ts +8 -0
  25. package/build/loader/loadingscreen.d.ts.map +1 -1
  26. package/build/loader/parsers/mtl.d.ts.map +1 -1
  27. package/build/loader/parsers/obj.d.ts.map +1 -1
  28. package/build/math/color.d.ts +43 -5
  29. package/build/math/color.d.ts.map +1 -1
  30. package/build/math/math.d.ts +44 -0
  31. package/build/math/math.d.ts.map +1 -1
  32. package/build/math/observableVector2d.d.ts +14 -2
  33. package/build/math/observableVector2d.d.ts.map +1 -1
  34. package/build/math/observableVector3d.d.ts +14 -2
  35. package/build/math/observableVector3d.d.ts.map +1 -1
  36. package/build/math/vector2d.d.ts +16 -2
  37. package/build/math/vector2d.d.ts.map +1 -1
  38. package/build/math/vector3d.d.ts +16 -2
  39. package/build/math/vector3d.d.ts.map +1 -1
  40. package/build/particles/emitter.d.ts.map +1 -1
  41. package/build/physics/adapter.d.ts +77 -0
  42. package/build/physics/adapter.d.ts.map +1 -1
  43. package/build/physics/broadphase/aabb3d.d.ts +115 -0
  44. package/build/physics/broadphase/aabb3d.d.ts.map +1 -0
  45. package/build/physics/broadphase/broadphase.d.ts +74 -0
  46. package/build/physics/broadphase/broadphase.d.ts.map +1 -0
  47. package/build/physics/broadphase/factory.d.ts +30 -0
  48. package/build/physics/broadphase/factory.d.ts.map +1 -0
  49. package/build/physics/broadphase/octree.d.ts +325 -0
  50. package/build/physics/broadphase/octree.d.ts.map +1 -0
  51. package/build/physics/broadphase/quadtree.d.ts +184 -0
  52. package/build/physics/broadphase/quadtree.d.ts.map +1 -0
  53. package/build/physics/builtin/body.d.ts +7 -3
  54. package/build/physics/builtin/body.d.ts.map +1 -1
  55. package/build/physics/builtin/builtin-adapter.d.ts +6 -1
  56. package/build/physics/builtin/builtin-adapter.d.ts.map +1 -1
  57. package/build/physics/builtin/raycast.d.ts.map +1 -1
  58. package/build/physics/world.d.ts +15 -4
  59. package/build/physics/world.d.ts.map +1 -1
  60. package/build/renderable/container.d.ts +51 -5
  61. package/build/renderable/container.d.ts.map +1 -1
  62. package/build/renderable/mesh.d.ts +85 -10
  63. package/build/renderable/mesh.d.ts.map +1 -1
  64. package/build/renderable/renderable.d.ts +9 -4
  65. package/build/renderable/renderable.d.ts.map +1 -1
  66. package/build/state/stage.d.ts +8 -0
  67. package/build/state/stage.d.ts.map +1 -1
  68. package/build/state/state.d.ts.map +1 -1
  69. package/build/system/device.d.ts +196 -310
  70. package/build/system/device.d.ts.map +1 -1
  71. package/build/system/event.d.ts +49 -0
  72. package/build/system/event.d.ts.map +1 -1
  73. package/build/system/fullscreen.d.ts +16 -0
  74. package/build/system/fullscreen.d.ts.map +1 -0
  75. package/build/system/platform.d.ts +32 -4
  76. package/build/system/platform.d.ts.map +1 -1
  77. package/build/system/timer.d.ts.map +1 -1
  78. package/build/utils/function.d.ts +7 -1
  79. package/build/utils/function.d.ts.map +1 -1
  80. package/build/utils/types.d.ts +5 -0
  81. package/build/utils/types.d.ts.map +1 -1
  82. package/build/video/buffer/vertex.d.ts +19 -4
  83. package/build/video/buffer/vertex.d.ts.map +1 -1
  84. package/build/video/canvas/canvas_renderer.d.ts +4 -4
  85. package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
  86. package/build/video/canvas_factory.d.ts +25 -0
  87. package/build/video/canvas_factory.d.ts.map +1 -0
  88. package/build/video/renderer.d.ts +89 -15
  89. package/build/video/renderer.d.ts.map +1 -1
  90. package/build/video/renderstate.d.ts +12 -0
  91. package/build/video/renderstate.d.ts.map +1 -1
  92. package/build/video/rendertarget/rendertarget.d.ts +3 -1
  93. package/build/video/rendertarget/rendertarget.d.ts.map +1 -1
  94. package/build/video/texture/cache.d.ts +5 -0
  95. package/build/video/texture/cache.d.ts.map +1 -1
  96. package/build/video/texture/resource.d.ts +22 -14
  97. package/build/video/texture/resource.d.ts.map +1 -1
  98. package/build/video/video.d.ts +3 -1
  99. package/build/video/video.d.ts.map +1 -1
  100. package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
  101. package/build/video/webgl/batchers/lit_quad_batcher.d.ts.map +1 -1
  102. package/build/video/webgl/batchers/material_batcher.d.ts +9 -0
  103. package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -1
  104. package/build/video/webgl/batchers/mesh_batcher.d.ts +45 -1
  105. package/build/video/webgl/batchers/mesh_batcher.d.ts.map +1 -1
  106. package/build/video/webgl/batchers/primitive_batcher.d.ts.map +1 -1
  107. package/build/video/webgl/batchers/quad_batcher.d.ts +2 -2
  108. package/build/video/webgl/batchers/quad_batcher.d.ts.map +1 -1
  109. package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts.map +1 -1
  110. package/build/video/webgl/webgl_renderer.d.ts +2 -2
  111. package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
  112. package/package.json +3 -2
  113. package/build/physics/builtin/quadtree.d.ts +0 -112
  114. 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
- * constant to select the HTML5 Canvas renderer
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
- * constant to select select the WebGL renderer
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
- * constant to auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
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;
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,MAAM,IAAI,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,KAAK,IAAI,CAAC;AAEvB;;GAEG;AACH,eAAO,MAAM,IAAI,IAAI,CAAC;AAEtB,MAAM,MAAM,YAAY,GAAG,OAAO,MAAM,GAAG,OAAO,KAAK,GAAG,OAAO,IAAI,CAAC"}
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, QuadTree, 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
+ 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}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}