@woosh/meep-engine 2.109.26 → 2.110.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/build/meep.cjs +199 -435
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +199 -435
- package/editor/tools/GridPaintTool.js +12 -11
- package/editor/tools/engine/ToolEngine.js +2 -1
- package/package.json +1 -1
- package/src/core/graph/Edge.js +1 -1
- package/src/core/math/interval/NumericInterval.d.ts +13 -7
- package/src/core/math/interval/NumericInterval.d.ts.map +1 -1
- package/src/core/math/interval/NumericInterval.js +35 -15
- package/src/engine/graphics/camera/makeOrbitalCameraController.d.ts.map +1 -1
- package/src/engine/graphics/camera/makeOrbitalCameraController.js +4 -4
- package/src/engine/graphics/geometry/VertexDataSpec.d.ts.map +1 -1
- package/src/engine/graphics/geometry/VertexDataSpec.js +4 -7
- package/src/engine/input/devices/LocationalInteractionMetadata.d.ts +4 -0
- package/src/engine/input/devices/LocationalInteractionMetadata.d.ts.map +1 -1
- package/src/engine/input/devices/LocationalInteractionMetadata.js +6 -1
- package/src/engine/input/devices/PointerDevice.d.ts +0 -3
- package/src/engine/input/devices/PointerDevice.d.ts.map +1 -1
- package/src/engine/input/devices/PointerDevice.js +49 -306
- package/src/engine/input/devices/events/PointerEvents.d.ts +14 -0
- package/src/engine/input/devices/events/PointerEvents.d.ts.map +1 -0
- package/src/engine/input/devices/events/PointerEvents.js +16 -0
- package/src/engine/input/devices/mouse/decodeMouseEventButtons.d.ts +10 -0
- package/src/engine/input/devices/mouse/decodeMouseEventButtons.d.ts.map +1 -0
- package/src/engine/input/devices/mouse/decodeMouseEventButtons.js +19 -0
- package/src/engine/input/devices/mouse/suppressContextMenu.d.ts +7 -0
- package/src/engine/input/devices/mouse/suppressContextMenu.d.ts.map +1 -0
- package/src/engine/input/devices/mouse/suppressContextMenu.js +11 -0
- package/src/engine/input/devices/touch/TouchDevice.d.ts +20 -0
- package/src/engine/input/devices/touch/TouchDevice.d.ts.map +1 -0
- package/src/engine/input/devices/touch/TouchDevice.js +95 -0
- package/src/engine/input/devices/touch/getTouchCenter.d.ts +7 -0
- package/src/engine/input/devices/touch/getTouchCenter.d.ts.map +1 -0
- package/src/engine/input/devices/touch/getTouchCenter.js +32 -0
- package/src/engine/input/devices/touch/observePinch.d.ts +12 -0
- package/src/engine/input/devices/touch/observePinch.d.ts.map +1 -0
- package/src/engine/input/devices/touch/observePinch.js +128 -0
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import GridPosition from "../../src/engine/grid/position/GridPosition.js";
|
|
3
|
-
import GridObstacle from "../../src/engine/grid/obstacle/GridObstacle.js";
|
|
4
|
-
import Vector4 from "../../src/core/geom/Vector4.js";
|
|
5
|
-
import ObservedValue from "../../src/core/model/ObservedValue.js";
|
|
1
|
+
import { hex2rgb } from "../../src/core/color/hex/hex2rgb.js";
|
|
6
2
|
import Vector1 from "../../src/core/geom/Vector1.js";
|
|
7
|
-
import WriteGridValueAction from "../actions/concrete/WriteGridValueAction.js";
|
|
8
|
-
import PaintTerrainOverlayAction from "../actions/concrete/PaintTerrainOverlayAction.js";
|
|
9
|
-
import { decodeMouseEventButtons, PointerDevice } from "../../src/engine/input/devices/PointerDevice.js";
|
|
10
3
|
import Vector2 from "../../src/core/geom/Vector2.js";
|
|
4
|
+
import Vector4 from "../../src/core/geom/Vector4.js";
|
|
5
|
+
import ObservedValue from "../../src/core/model/ObservedValue.js";
|
|
6
|
+
import { pick } from "../../src/engine/ecs/grid/pick.js";
|
|
7
|
+
import { obtainTerrain } from "../../src/engine/ecs/terrain/util/obtainTerrain.js";
|
|
11
8
|
import TopDownCameraControllerSystem
|
|
12
9
|
from "../../src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js";
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
10
|
+
import GridObstacle from "../../src/engine/grid/obstacle/GridObstacle.js";
|
|
11
|
+
import GridPosition from "../../src/engine/grid/position/GridPosition.js";
|
|
12
|
+
import { decodeMouseEventButtons } from "../../src/engine/input/devices/mouse/decodeMouseEventButtons.js";
|
|
13
|
+
import { PointerDevice } from "../../src/engine/input/devices/PointerDevice.js";
|
|
14
|
+
import PaintTerrainOverlayAction from "../actions/concrete/PaintTerrainOverlayAction.js";
|
|
15
|
+
import WriteGridValueAction from "../actions/concrete/WriteGridValueAction.js";
|
|
16
|
+
import Tool from "./engine/Tool.js";
|
|
16
17
|
|
|
17
18
|
class GridPaintTool extends Tool {
|
|
18
19
|
constructor() {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import List from '../../../src/core/collection/list/List.js';
|
|
2
2
|
import ObservedValue from '../../../src/core/model/ObservedValue.js';
|
|
3
3
|
import Clock from "../../../src/engine/Clock.js";
|
|
4
|
-
import { decodeMouseEventButtons
|
|
4
|
+
import { decodeMouseEventButtons } from "../../../src/engine/input/devices/mouse/decodeMouseEventButtons.js";
|
|
5
|
+
import { PointerDevice } from '../../../src/engine/input/devices/PointerDevice.js';
|
|
5
6
|
import GridPaintTool from "../GridPaintTool.js";
|
|
6
7
|
import { TerrainHeightPaintTool } from "../paint/TerrainHeightPaintTool.js";
|
|
7
8
|
import { TerrainTexturePaintTool } from "../paint/TerrainTexturePaintTool.js";
|
package/package.json
CHANGED
package/src/core/graph/Edge.js
CHANGED
|
@@ -120,7 +120,7 @@ export class Edge {
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
toString() {
|
|
123
|
-
return `Edge
|
|
123
|
+
return `Edge{ first=${this.first}, second=${this.second}, direction=${objectKeyByValue(EdgeDirectionType, this.direction)} }`
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
}
|
|
@@ -16,18 +16,17 @@ export class NumericInterval {
|
|
|
16
16
|
* @type {number}
|
|
17
17
|
*/
|
|
18
18
|
max: number;
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* @readonly
|
|
21
|
+
* @type {Signal<number, number, number, number>}
|
|
22
|
+
*/
|
|
23
|
+
readonly onChanged: Signal<number, number, number, number>;
|
|
20
24
|
/**
|
|
21
25
|
*
|
|
22
26
|
* @param {number} min
|
|
23
27
|
* @param {number} max
|
|
24
28
|
*/
|
|
25
29
|
set(min: number, max: number): void;
|
|
26
|
-
/**
|
|
27
|
-
*
|
|
28
|
-
* @param {NumericInterval} other
|
|
29
|
-
*/
|
|
30
|
-
copy(other: NumericInterval): void;
|
|
31
30
|
/**
|
|
32
31
|
*
|
|
33
32
|
* @param {number} value
|
|
@@ -66,6 +65,7 @@ export class NumericInterval {
|
|
|
66
65
|
min: number;
|
|
67
66
|
max: number;
|
|
68
67
|
};
|
|
68
|
+
toString(): string;
|
|
69
69
|
/**
|
|
70
70
|
*
|
|
71
71
|
* @param {BinaryBuffer} buffer
|
|
@@ -76,6 +76,11 @@ export class NumericInterval {
|
|
|
76
76
|
* @param {BinaryBuffer} buffer
|
|
77
77
|
*/
|
|
78
78
|
fromBinaryBuffer(buffer: BinaryBuffer): void;
|
|
79
|
+
/**
|
|
80
|
+
*
|
|
81
|
+
* @param {NumericInterval} other
|
|
82
|
+
*/
|
|
83
|
+
copy(other: NumericInterval): void;
|
|
79
84
|
/**
|
|
80
85
|
*
|
|
81
86
|
* @param {NumericInterval} other
|
|
@@ -99,8 +104,9 @@ export class NumericInterval {
|
|
|
99
104
|
readonly isNumericInterval: boolean;
|
|
100
105
|
}
|
|
101
106
|
export namespace NumericInterval {
|
|
102
|
-
let one_one: NumericInterval;
|
|
103
107
|
let zero_zero: NumericInterval;
|
|
108
|
+
let zero_one: NumericInterval;
|
|
109
|
+
let one_one: NumericInterval;
|
|
104
110
|
}
|
|
105
111
|
import Signal from "../../events/signal/Signal.js";
|
|
106
112
|
//# sourceMappingURL=NumericInterval.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumericInterval.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/interval/NumericInterval.js"],"names":[],"mappings":"AAKA;IACI;;;;;OAKG;IACH,kBAJW,MAAM,QACN,MAAM,
|
|
1
|
+
{"version":3,"file":"NumericInterval.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/interval/NumericInterval.js"],"names":[],"mappings":"AAKA;IACI;;;;;OAKG;IACH,kBAJW,MAAM,QACN,MAAM,EA4BhB;IAhBG;;;OAGG;IACH,KAFU,MAAM,CAEF;IACd;;;OAGG;IACH,KAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,oBAFU,OAAO,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEnB;IAIjC;;;;OAIG;IACH,SAHW,MAAM,OACN,MAAM,QA0BhB;IAGD;;;OAGG;IACH,sBAFW,MAAM,QAahB;IAED;;;;OAIG;IACH,kBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,UAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,WAFa,OAAO,CAInB;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAED;;;;OAIG;IACH,gCAFa,MAAM,CAMlB;IAED,0BAEC;IAED;;;MAKC;IAED,mBAEC;IAED;;;OAGG;IACH,2CAGC;IAED;;;OAGG;IACH,6CAGC;IAED;;;OAGG;IACH,YAFW,eAAe,QAIzB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACb,OAAO,CAInB;IAED;;;OAGG;IACH,QAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,mBAEC;IAGL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;CAN1C;;mBAUS,eAAe;kBAMf,eAAe;iBAMf,eAAe;;mBAhON,+BAA+B"}
|
|
@@ -30,6 +30,10 @@ export class NumericInterval {
|
|
|
30
30
|
*/
|
|
31
31
|
this.max = max;
|
|
32
32
|
|
|
33
|
+
/**
|
|
34
|
+
* @readonly
|
|
35
|
+
* @type {Signal<number, number, number, number>}
|
|
36
|
+
*/
|
|
33
37
|
this.onChanged = new Signal();
|
|
34
38
|
}
|
|
35
39
|
|
|
@@ -51,24 +55,21 @@ export class NumericInterval {
|
|
|
51
55
|
const oldMin = this.min;
|
|
52
56
|
const oldMax = this.max;
|
|
53
57
|
|
|
54
|
-
if (min
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
if (min === oldMin && max === oldMax) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
57
61
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
this.min = min;
|
|
63
|
+
this.max = max;
|
|
64
|
+
|
|
65
|
+
if (!this.onChanged.hasHandlers()) {
|
|
66
|
+
return;
|
|
61
67
|
}
|
|
62
|
-
}
|
|
63
68
|
|
|
64
|
-
|
|
65
|
-
*
|
|
66
|
-
* @param {NumericInterval} other
|
|
67
|
-
*/
|
|
68
|
-
copy(other) {
|
|
69
|
-
this.set(other.min, other.max);
|
|
69
|
+
this.onChanged.send4(min, max, oldMin, oldMax);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
|
|
72
73
|
/**
|
|
73
74
|
*
|
|
74
75
|
* @param {number} value
|
|
@@ -142,6 +143,10 @@ export class NumericInterval {
|
|
|
142
143
|
};
|
|
143
144
|
}
|
|
144
145
|
|
|
146
|
+
toString() {
|
|
147
|
+
return `NumericInterval{ min=${this.min}, max=${this.max} }`;
|
|
148
|
+
}
|
|
149
|
+
|
|
145
150
|
/**
|
|
146
151
|
*
|
|
147
152
|
* @param {BinaryBuffer} buffer
|
|
@@ -160,6 +165,14 @@ export class NumericInterval {
|
|
|
160
165
|
this.max = buffer.readFloat64();
|
|
161
166
|
}
|
|
162
167
|
|
|
168
|
+
/**
|
|
169
|
+
*
|
|
170
|
+
* @param {NumericInterval} other
|
|
171
|
+
*/
|
|
172
|
+
copy(other) {
|
|
173
|
+
this.set(other.min, other.max);
|
|
174
|
+
}
|
|
175
|
+
|
|
163
176
|
/**
|
|
164
177
|
*
|
|
165
178
|
* @param {NumericInterval} other
|
|
@@ -200,10 +213,17 @@ NumericInterval.prototype.isNumericInterval = true;
|
|
|
200
213
|
* @readonly
|
|
201
214
|
* @type {NumericInterval}
|
|
202
215
|
*/
|
|
203
|
-
NumericInterval.
|
|
216
|
+
NumericInterval.zero_zero = Object.freeze(new NumericInterval(0, 0));
|
|
217
|
+
|
|
204
218
|
/**
|
|
205
219
|
* @readonly
|
|
206
220
|
* @type {NumericInterval}
|
|
207
221
|
*/
|
|
208
|
-
NumericInterval.
|
|
222
|
+
NumericInterval.zero_one = Object.freeze(new NumericInterval(0, 1));
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* @readonly
|
|
226
|
+
* @type {NumericInterval}
|
|
227
|
+
*/
|
|
228
|
+
NumericInterval.one_one = Object.freeze(new NumericInterval(1, 1));
|
|
209
229
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeOrbitalCameraController.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/camera/makeOrbitalCameraController.js"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,8FANW,MAAM,GAIL,MAAM,CA8FjB;
|
|
1
|
+
{"version":3,"file":"makeOrbitalCameraController.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/camera/makeOrbitalCameraController.js"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,8FANW,MAAM,GAIL,MAAM,CA8FjB;mBA1GkB,qBAAqB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import InputController from "../../input/ecs/components/InputController.js";
|
|
3
|
-
import { decodeMouseEventButtons } from "../../input/devices/PointerDevice.js";
|
|
1
|
+
import { clamp } from "../../../core/math/clamp.js";
|
|
4
2
|
import Entity from "../../ecs/Entity.js";
|
|
3
|
+
import { decodeMouseEventButtons } from "../../input/devices/mouse/decodeMouseEventButtons.js";
|
|
4
|
+
import InputController from "../../input/ecs/components/InputController.js";
|
|
5
5
|
import { Camera } from "../ecs/camera/Camera.js";
|
|
6
|
-
import {
|
|
6
|
+
import TopDownCameraController, { rotate_from_view } from "../ecs/camera/topdown/TopDownCameraController.js";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VertexDataSpec.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/geometry/VertexDataSpec.js"],"names":[],"mappings":"AAYA;;;GAGG;AACH;IAeI;;;;OAIG;IACH,2BAHW,aAAa,GACX,cAAc,CAQ1B;IAxBD;;;OAGG;IACH,YAFU,aAAa,EAAE,CAET;IAsBhB;;;;OAIG;IACH,yBAHW,MAAM,GACL,aAAa,GAAC,SAAS,CAgBlC;IAED;;;OAGG;IACH,8BAFW,MAAM,GADJ,MAAM,CAiBlB;IAED;;;OAGG;IACH,oBAFW,aAAa,EAAE,QAOzB;IAED;;;;OAIG;IACH,eAHW,aAAa,GACZ,cAAc,CAkBzB;IAED;;;OAGG;IACH,0BAFW,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"VertexDataSpec.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/geometry/VertexDataSpec.js"],"names":[],"mappings":"AAYA;;;GAGG;AACH;IAeI;;;;OAIG;IACH,2BAHW,aAAa,GACX,cAAc,CAQ1B;IAxBD;;;OAGG;IACH,YAFU,aAAa,EAAE,CAET;IAsBhB;;;;OAIG;IACH,yBAHW,MAAM,GACL,aAAa,GAAC,SAAS,CAgBlC;IAED;;;OAGG;IACH,8BAFW,MAAM,GADJ,MAAM,CAiBlB;IAED;;;OAGG;IACH,oBAFW,aAAa,EAAE,QAOzB;IAED;;;;OAIG;IACH,eAHW,aAAa,GACZ,cAAc,CAkBzB;IAED;;;OAGG;IACH,0BAFW,aAAa,EAAE,QAQzB;IAED,cAMC;IAED;;;;OAIG;IACH,cAHW,cAAc,GACZ,OAAO,CAQnB;IAED,sBAEC;IAED,eAMC;IAED;;MAIC;IAED;;aAkBC;IAED;;;OAGG;IACH,eAFa,MAAM,CAelB;IAIL;;;OAGG;IACH,2BAFU,OAAO,CAEwB;;CAPxC;8BA5M6B,oBAAoB"}
|
|
@@ -118,23 +118,20 @@ export class VertexDataSpec {
|
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
/**
|
|
121
|
-
*
|
|
121
|
+
* Replace existing attributes
|
|
122
122
|
* @param {AttributeSpec[]} attributes
|
|
123
123
|
*/
|
|
124
124
|
setAttributes(attributes) {
|
|
125
125
|
|
|
126
126
|
this.clear();
|
|
127
127
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
for (let i = 0; i < n; i++) {
|
|
131
|
-
this.add(attributes[i]);
|
|
132
|
-
}
|
|
128
|
+
this.addMany(attributes);
|
|
133
129
|
|
|
134
130
|
}
|
|
135
131
|
|
|
136
132
|
clear() {
|
|
137
|
-
|
|
133
|
+
const count = this.attributes.length;
|
|
134
|
+
this.attributes.splice(0, count);
|
|
138
135
|
|
|
139
136
|
// reset hash to trigger hash update
|
|
140
137
|
this.#hash = DEFAULT_HASH;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocationalInteractionMetadata.d.ts","sourceRoot":"","sources":["../../../../../src/engine/input/devices/LocationalInteractionMetadata.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LocationalInteractionMetadata.d.ts","sourceRoot":"","sources":["../../../../../src/engine/input/devices/LocationalInteractionMetadata.js"],"names":[],"mappings":"AAGA;IAQI;;;OAGG;IACH,eAFW,OAAO,iCAQjB;IAjBD;;;OAGG;IACH,WAFU,MAAM,CAEqB;IACrC,kBAAwB;CAa3B;oBAtBmB,+BAA+B"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import Vector2 from "../../../core/geom/Vector2.js";
|
|
2
|
+
import { current_time_in_seconds } from "../../../core/time/current_time_in_seconds.js";
|
|
2
3
|
|
|
3
4
|
export class LocationalInteractionMetadata {
|
|
4
|
-
|
|
5
|
+
/**
|
|
6
|
+
* In seconds
|
|
7
|
+
* @type {number}
|
|
8
|
+
*/
|
|
9
|
+
timestamp = current_time_in_seconds()
|
|
5
10
|
position = new Vector2()
|
|
6
11
|
|
|
7
12
|
/**
|
|
@@ -27,8 +27,5 @@ export class PointerDevice {
|
|
|
27
27
|
dragStart: Signal<Vector2, MouseEvent | TouchEvent>,
|
|
28
28
|
dragEnd: Signal<Vector2>,
|
|
29
29
|
wheel: Signal<Vector3, Vector2, WheelEvent>,
|
|
30
|
-
pinch: Signal<Vector2, Vector2>,
|
|
31
|
-
pinchStart: Signal<Vector2>,
|
|
32
|
-
pinchEnd: Signal<void>
|
|
33
30
|
}
|
|
34
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointerDevice.d.ts","sourceRoot":"","sources":["../../../../../src/engine/input/devices/PointerDevice.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PointerDevice.d.ts","sourceRoot":"","sources":["../../../../../src/engine/input/devices/PointerDevice.js"],"names":[],"mappings":"AA2LA;;;;;GAKG;AACH,mDAJW,OAAO,SACP,UAAU,GAAC,KAAK,WAChB,OAAO,QAejB;AAED;;GAEG;AACH;IAiFI;;;;OAIG;IACH,wBAHW,WAAW,EAsBrB;IAvGD;;;;OAIG;IACH,mBAFU,OAAO,CAEQ;IAIzB;;OAEG;IACH;;;;QAII;;WAEG;aADO,OAAO,OAAO,EAAE,CAAC,UAAU,GAAC,UAAU,CAAC,CAAC;;;;;;;;MAUpD;IAeF;;;OAGG;IACH,kBAAkB;IAElB;;;;OAIG;IACH,kBAFU,iBAAiB,EAAE,CAEL;IAExB;;;OAGG;IACH,yCAEC;IAED;;;OAGG;IACH,0CAEC;IAED;;;OAGG;IACH,2CAEC;IAyGD;;;OAGG;IACH,oBAFY,OAAO,CAIlB;IAED;;;OAGG;IACH,6BAsBC;IAED,0BAEC;IAED;;;;OAIG;IACH,qCAHW,OAAO,SACP,UAAU,GAAC,KAAK,QAI1B;IAED,cA6BC;IAED,aAsBC;;CACJ;oBAhfmB,+BAA+B;mBADhC,uCAAuC;kCAOxB,wBAAwB"}
|