@woosh/meep-engine 2.94.6 → 2.94.8
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 +68 -13
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +68 -13
- package/package.json +1 -1
- package/src/core/geom/3d/aabb/AABB3.d.ts +8 -0
- package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/AABB3.js +24 -0
- package/src/engine/simulation/Ticker.d.ts +8 -9
- package/src/engine/simulation/Ticker.d.ts.map +1 -1
- package/src/engine/simulation/Ticker.js +43 -10
package/build/meep.module.js
CHANGED
|
@@ -56603,6 +56603,10 @@ class AABB3 {
|
|
|
56603
56603
|
return (this.x1 - this.x0);
|
|
56604
56604
|
}
|
|
56605
56605
|
|
|
56606
|
+
get width() {
|
|
56607
|
+
return this.getExtentsX();
|
|
56608
|
+
}
|
|
56609
|
+
|
|
56606
56610
|
/**
|
|
56607
56611
|
*
|
|
56608
56612
|
* @returns {number}
|
|
@@ -56611,6 +56615,10 @@ class AABB3 {
|
|
|
56611
56615
|
return (this.y1 - this.y0);
|
|
56612
56616
|
}
|
|
56613
56617
|
|
|
56618
|
+
get height() {
|
|
56619
|
+
return this.getExtentsY();
|
|
56620
|
+
}
|
|
56621
|
+
|
|
56614
56622
|
/**
|
|
56615
56623
|
*
|
|
56616
56624
|
* @returns {number}
|
|
@@ -56619,6 +56627,10 @@ class AABB3 {
|
|
|
56619
56627
|
return (this.z1 - this.z0);
|
|
56620
56628
|
}
|
|
56621
56629
|
|
|
56630
|
+
get depth() {
|
|
56631
|
+
return this.getExtentsZ();
|
|
56632
|
+
}
|
|
56633
|
+
|
|
56622
56634
|
/**
|
|
56623
56635
|
* half-width in X axis
|
|
56624
56636
|
* @returns {number}
|
|
@@ -56663,6 +56675,10 @@ class AABB3 {
|
|
|
56663
56675
|
return (this.x0 + this.x1) * 0.5;
|
|
56664
56676
|
}
|
|
56665
56677
|
|
|
56678
|
+
get centerX() {
|
|
56679
|
+
return this.getCenterX();
|
|
56680
|
+
}
|
|
56681
|
+
|
|
56666
56682
|
/**
|
|
56667
56683
|
*
|
|
56668
56684
|
* @returns {number}
|
|
@@ -56671,6 +56687,10 @@ class AABB3 {
|
|
|
56671
56687
|
return (this.y0 + this.y1) * 0.5;
|
|
56672
56688
|
}
|
|
56673
56689
|
|
|
56690
|
+
get centerY() {
|
|
56691
|
+
return this.getCenterY();
|
|
56692
|
+
}
|
|
56693
|
+
|
|
56674
56694
|
/**
|
|
56675
56695
|
*
|
|
56676
56696
|
* @returns {number}
|
|
@@ -56679,6 +56699,10 @@ class AABB3 {
|
|
|
56679
56699
|
return (this.z0 + this.z1) * 0.5;
|
|
56680
56700
|
}
|
|
56681
56701
|
|
|
56702
|
+
get centerZ() {
|
|
56703
|
+
return this.getCenterZ();
|
|
56704
|
+
}
|
|
56705
|
+
|
|
56682
56706
|
/**
|
|
56683
56707
|
* Get center position of the box
|
|
56684
56708
|
* @param {Vector3} target where to write result
|
|
@@ -95580,6 +95604,8 @@ class Ticker {
|
|
|
95580
95604
|
*/
|
|
95581
95605
|
#isRunning = false;
|
|
95582
95606
|
|
|
95607
|
+
#animationFrameHandle = -1;
|
|
95608
|
+
#timeoutHandle = -1;
|
|
95583
95609
|
|
|
95584
95610
|
/**
|
|
95585
95611
|
* Dispatches time delta in seconds since last tick
|
|
@@ -95609,6 +95635,7 @@ class Ticker {
|
|
|
95609
95635
|
* @param {*} [thisArg]
|
|
95610
95636
|
*/
|
|
95611
95637
|
subscribe(callback, thisArg) {
|
|
95638
|
+
|
|
95612
95639
|
this.onTick.add(callback, thisArg);
|
|
95613
95640
|
}
|
|
95614
95641
|
|
|
@@ -95618,17 +95645,23 @@ class Ticker {
|
|
|
95618
95645
|
* @param {*} [thisArg]
|
|
95619
95646
|
*/
|
|
95620
95647
|
unsubscribe(callback, thisArg) {
|
|
95648
|
+
|
|
95621
95649
|
this.onTick.remove(callback, thisArg);
|
|
95622
95650
|
}
|
|
95623
95651
|
|
|
95652
|
+
#isUpdateLoopActive() {
|
|
95653
|
+
return this.#timeoutHandle !== -1 && this.#animationFrameHandle !== -1;
|
|
95654
|
+
}
|
|
95655
|
+
|
|
95624
95656
|
/**
|
|
95625
95657
|
*
|
|
95626
95658
|
* @param {number} [maxTimeout]
|
|
95627
95659
|
*/
|
|
95628
95660
|
start({ maxTimeout = 100 } = {}) {
|
|
95629
95661
|
|
|
95630
|
-
|
|
95631
|
-
|
|
95662
|
+
if (this.#isUpdateLoopActive()) {
|
|
95663
|
+
throw new Error("Already running");
|
|
95664
|
+
}
|
|
95632
95665
|
|
|
95633
95666
|
this.#isRunning = true;
|
|
95634
95667
|
|
|
@@ -95642,23 +95675,25 @@ class Ticker {
|
|
|
95642
95675
|
this.onTick.send1(delta);
|
|
95643
95676
|
};
|
|
95644
95677
|
|
|
95645
|
-
|
|
95646
|
-
cancelAnimationFrame(
|
|
95678
|
+
const timeoutCallback = () => {
|
|
95679
|
+
cancelAnimationFrame(this.#animationFrameHandle);
|
|
95647
95680
|
animate();
|
|
95648
|
-
}
|
|
95681
|
+
};
|
|
95649
95682
|
|
|
95650
|
-
|
|
95651
|
-
clearTimeout(
|
|
95683
|
+
const animationFrameCallback = () => {
|
|
95684
|
+
clearTimeout(this.#timeoutHandle);
|
|
95652
95685
|
|
|
95653
95686
|
//push tick beyond animation frame stack allowing draw to happen
|
|
95654
|
-
setTimeout(animate, 0);
|
|
95655
|
-
}
|
|
95687
|
+
this.#timeoutHandle = setTimeout(animate, 0);
|
|
95688
|
+
};
|
|
95689
|
+
|
|
95690
|
+
const animate = () => {
|
|
95691
|
+
this.#animationFrameHandle = requestAnimationFrame(animationFrameCallback);
|
|
95656
95692
|
|
|
95657
|
-
function animate() {
|
|
95658
|
-
animationFrame = requestAnimationFrame(animationFrameCallback);
|
|
95659
95693
|
update();
|
|
95660
|
-
|
|
95661
|
-
|
|
95694
|
+
|
|
95695
|
+
this.#timeoutHandle = setTimeout(timeoutCallback, maxTimeout);
|
|
95696
|
+
};
|
|
95662
95697
|
|
|
95663
95698
|
this.clock.getDelta(); //purge delta
|
|
95664
95699
|
this.clock.start();
|
|
@@ -95667,12 +95702,32 @@ class Ticker {
|
|
|
95667
95702
|
}
|
|
95668
95703
|
|
|
95669
95704
|
pause() {
|
|
95705
|
+
|
|
95706
|
+
if (!this.#isUpdateLoopActive()) {
|
|
95707
|
+
throw new Error("Not currently running");
|
|
95708
|
+
}
|
|
95709
|
+
|
|
95670
95710
|
this.#isRunning = false;
|
|
95671
95711
|
}
|
|
95672
95712
|
|
|
95673
95713
|
resume() {
|
|
95714
|
+
|
|
95715
|
+
if (!this.#isUpdateLoopActive()) {
|
|
95716
|
+
throw new Error("Not currently running");
|
|
95717
|
+
}
|
|
95718
|
+
|
|
95719
|
+
|
|
95674
95720
|
this.#isRunning = true;
|
|
95675
95721
|
}
|
|
95722
|
+
|
|
95723
|
+
stop() {
|
|
95724
|
+
clearTimeout(this.#timeoutHandle);
|
|
95725
|
+
cancelAnimationFrame(this.#animationFrameHandle);
|
|
95726
|
+
this.#isRunning = false;
|
|
95727
|
+
|
|
95728
|
+
this.#timeoutHandle = -1;
|
|
95729
|
+
this.#animationFrameHandle = -1;
|
|
95730
|
+
}
|
|
95676
95731
|
}
|
|
95677
95732
|
|
|
95678
95733
|
/**
|
package/package.json
CHANGED
|
@@ -8,6 +8,14 @@ export class AABB3 {
|
|
|
8
8
|
y1: number
|
|
9
9
|
z1: number
|
|
10
10
|
|
|
11
|
+
readonly centerX: number
|
|
12
|
+
readonly centerY: number
|
|
13
|
+
readonly centerZ: number
|
|
14
|
+
|
|
15
|
+
readonly width: number
|
|
16
|
+
readonly height: number
|
|
17
|
+
readonly depth: number
|
|
18
|
+
|
|
11
19
|
constructor(x0?: number, y0?: number, z0?: number, x1?: number, y1?: number, z1?: number)
|
|
12
20
|
|
|
13
21
|
setBounds(x0: number, y0: number, z0: number, x1: number, y1: number, z1: number): void
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AABB3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/AABB3.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AABB3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/AABB3.js"],"names":[],"mappings":"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"}
|
|
@@ -531,6 +531,10 @@ export class AABB3 {
|
|
|
531
531
|
return (this.x1 - this.x0);
|
|
532
532
|
}
|
|
533
533
|
|
|
534
|
+
get width() {
|
|
535
|
+
return this.getExtentsX();
|
|
536
|
+
}
|
|
537
|
+
|
|
534
538
|
/**
|
|
535
539
|
*
|
|
536
540
|
* @returns {number}
|
|
@@ -539,6 +543,10 @@ export class AABB3 {
|
|
|
539
543
|
return (this.y1 - this.y0);
|
|
540
544
|
}
|
|
541
545
|
|
|
546
|
+
get height() {
|
|
547
|
+
return this.getExtentsY();
|
|
548
|
+
}
|
|
549
|
+
|
|
542
550
|
/**
|
|
543
551
|
*
|
|
544
552
|
* @returns {number}
|
|
@@ -547,6 +555,10 @@ export class AABB3 {
|
|
|
547
555
|
return (this.z1 - this.z0);
|
|
548
556
|
}
|
|
549
557
|
|
|
558
|
+
get depth() {
|
|
559
|
+
return this.getExtentsZ();
|
|
560
|
+
}
|
|
561
|
+
|
|
550
562
|
/**
|
|
551
563
|
* half-width in X axis
|
|
552
564
|
* @returns {number}
|
|
@@ -591,6 +603,10 @@ export class AABB3 {
|
|
|
591
603
|
return (this.x0 + this.x1) * 0.5;
|
|
592
604
|
}
|
|
593
605
|
|
|
606
|
+
get centerX() {
|
|
607
|
+
return this.getCenterX();
|
|
608
|
+
}
|
|
609
|
+
|
|
594
610
|
/**
|
|
595
611
|
*
|
|
596
612
|
* @returns {number}
|
|
@@ -599,6 +615,10 @@ export class AABB3 {
|
|
|
599
615
|
return (this.y0 + this.y1) * 0.5;
|
|
600
616
|
}
|
|
601
617
|
|
|
618
|
+
get centerY() {
|
|
619
|
+
return this.getCenterY();
|
|
620
|
+
}
|
|
621
|
+
|
|
602
622
|
/**
|
|
603
623
|
*
|
|
604
624
|
* @returns {number}
|
|
@@ -607,6 +627,10 @@ export class AABB3 {
|
|
|
607
627
|
return (this.z0 + this.z1) * 0.5;
|
|
608
628
|
}
|
|
609
629
|
|
|
630
|
+
get centerZ() {
|
|
631
|
+
return this.getCenterZ();
|
|
632
|
+
}
|
|
633
|
+
|
|
610
634
|
/**
|
|
611
635
|
* Get center position of the box
|
|
612
636
|
* @param {Vector3} target where to write result
|
|
@@ -3,13 +3,12 @@ import Signal from "../../core/events/signal/Signal";
|
|
|
3
3
|
export default class Ticker {
|
|
4
4
|
readonly onTick: Signal<number>
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
unsubscribe(f: (timeDelta: number) => any, thisArg?: any): void
|
|
6
|
+
start(): void
|
|
7
|
+
|
|
8
|
+
stop(): void
|
|
9
|
+
|
|
10
|
+
pause(): void
|
|
11
|
+
|
|
12
|
+
resume(): void
|
|
13
|
+
|
|
15
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ticker.d.ts","sourceRoot":"","sources":["../../../../src/engine/simulation/Ticker.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IACI;;;OAGG;IACH,gBAFU,KAAK,CAEK;
|
|
1
|
+
{"version":3,"file":"Ticker.d.ts","sourceRoot":"","sources":["../../../../src/engine/simulation/Ticker.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IACI;;;OAGG;IACH,gBAFU,KAAK,CAEK;IAWpB;;;;OAIG;IACH,iBAFU,OAAO,MAAM,CAAC,CAEF;IAEtB;;OAEG;IACH,sBAEC;IAUD;;;;OAIG;IACH,mDAIC;IAED;;;;OAIG;IACH,qDAIC;IAMD;;;OAGG;IACH,uBAFW,MAAM,QA8ChB;IAED,cAOC;IAED,eAQC;IAED,aAOC;;CACJ;kBApJiB,aAAa;mBADZ,oCAAoC"}
|
|
@@ -23,6 +23,8 @@ class Ticker {
|
|
|
23
23
|
*/
|
|
24
24
|
#isRunning = false;
|
|
25
25
|
|
|
26
|
+
#animationFrameHandle = -1;
|
|
27
|
+
#timeoutHandle = -1;
|
|
26
28
|
|
|
27
29
|
/**
|
|
28
30
|
* Dispatches time delta in seconds since last tick
|
|
@@ -52,6 +54,8 @@ class Ticker {
|
|
|
52
54
|
* @param {*} [thisArg]
|
|
53
55
|
*/
|
|
54
56
|
subscribe(callback, thisArg) {
|
|
57
|
+
console.warn('deprecated use onTick signal directly instead');
|
|
58
|
+
|
|
55
59
|
this.onTick.add(callback, thisArg);
|
|
56
60
|
}
|
|
57
61
|
|
|
@@ -61,9 +65,15 @@ class Ticker {
|
|
|
61
65
|
* @param {*} [thisArg]
|
|
62
66
|
*/
|
|
63
67
|
unsubscribe(callback, thisArg) {
|
|
68
|
+
console.warn('deprecated use onTick signal directly instead');
|
|
69
|
+
|
|
64
70
|
this.onTick.remove(callback, thisArg);
|
|
65
71
|
}
|
|
66
72
|
|
|
73
|
+
#isUpdateLoopActive() {
|
|
74
|
+
return this.#timeoutHandle !== -1 && this.#animationFrameHandle !== -1;
|
|
75
|
+
}
|
|
76
|
+
|
|
67
77
|
/**
|
|
68
78
|
*
|
|
69
79
|
* @param {number} [maxTimeout]
|
|
@@ -72,8 +82,9 @@ class Ticker {
|
|
|
72
82
|
assert.isNumber(maxTimeout, 'maxTimeout');
|
|
73
83
|
assert.greaterThan(maxTimeout, 0);
|
|
74
84
|
|
|
75
|
-
|
|
76
|
-
|
|
85
|
+
if (this.#isUpdateLoopActive()) {
|
|
86
|
+
throw new Error("Already running");
|
|
87
|
+
}
|
|
77
88
|
|
|
78
89
|
this.#isRunning = true;
|
|
79
90
|
|
|
@@ -87,22 +98,24 @@ class Ticker {
|
|
|
87
98
|
this.onTick.send1(delta);
|
|
88
99
|
}
|
|
89
100
|
|
|
90
|
-
|
|
91
|
-
cancelAnimationFrame(
|
|
101
|
+
const timeoutCallback = () => {
|
|
102
|
+
cancelAnimationFrame(this.#animationFrameHandle);
|
|
92
103
|
animate();
|
|
93
104
|
}
|
|
94
105
|
|
|
95
|
-
|
|
96
|
-
clearTimeout(
|
|
106
|
+
const animationFrameCallback = () => {
|
|
107
|
+
clearTimeout(this.#timeoutHandle);
|
|
97
108
|
|
|
98
109
|
//push tick beyond animation frame stack allowing draw to happen
|
|
99
|
-
setTimeout(animate, 0);
|
|
110
|
+
this.#timeoutHandle = setTimeout(animate, 0);
|
|
100
111
|
}
|
|
101
112
|
|
|
102
|
-
|
|
103
|
-
|
|
113
|
+
const animate = () => {
|
|
114
|
+
this.#animationFrameHandle = requestAnimationFrame(animationFrameCallback);
|
|
115
|
+
|
|
104
116
|
update();
|
|
105
|
-
|
|
117
|
+
|
|
118
|
+
this.#timeoutHandle = setTimeout(timeoutCallback, maxTimeout);
|
|
106
119
|
}
|
|
107
120
|
|
|
108
121
|
this.clock.getDelta(); //purge delta
|
|
@@ -112,12 +125,32 @@ class Ticker {
|
|
|
112
125
|
}
|
|
113
126
|
|
|
114
127
|
pause() {
|
|
128
|
+
|
|
129
|
+
if (!this.#isUpdateLoopActive()) {
|
|
130
|
+
throw new Error("Not currently running");
|
|
131
|
+
}
|
|
132
|
+
|
|
115
133
|
this.#isRunning = false;
|
|
116
134
|
}
|
|
117
135
|
|
|
118
136
|
resume() {
|
|
137
|
+
|
|
138
|
+
if (!this.#isUpdateLoopActive()) {
|
|
139
|
+
throw new Error("Not currently running");
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
|
|
119
143
|
this.#isRunning = true;
|
|
120
144
|
}
|
|
145
|
+
|
|
146
|
+
stop() {
|
|
147
|
+
clearTimeout(this.#timeoutHandle);
|
|
148
|
+
cancelAnimationFrame(this.#animationFrameHandle);
|
|
149
|
+
this.#isRunning = false;
|
|
150
|
+
|
|
151
|
+
this.#timeoutHandle = -1;
|
|
152
|
+
this.#animationFrameHandle = -1;
|
|
153
|
+
}
|
|
121
154
|
}
|
|
122
155
|
|
|
123
156
|
export default Ticker;
|