@woosh/meep-engine 2.89.1 → 2.89.4
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 +1 -1
- package/build/meep.module.js +1 -1
- package/package.json +1 -1
- package/src/core/json/abstractJSONDeserializer.js +1 -1
- package/src/core/json/abstractJSONSerializer.js +1 -1
- package/src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.d.ts.map +1 -1
- package/src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.js +32 -2
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D.js +5 -2
package/build/meep.cjs
CHANGED
|
@@ -49287,7 +49287,7 @@ class Sampler2D {
|
|
|
49287
49287
|
* @param {number[]|Float32Array|Float64Array} result
|
|
49288
49288
|
* @param {number} result_offset
|
|
49289
49289
|
*/
|
|
49290
|
-
sampleBicubic(x,y, result, result_offset){
|
|
49290
|
+
sampleBicubic(x, y, result, result_offset) {
|
|
49291
49291
|
|
|
49292
49292
|
const itemSize = this.itemSize;
|
|
49293
49293
|
|
package/build/meep.module.js
CHANGED
|
@@ -49285,7 +49285,7 @@ class Sampler2D {
|
|
|
49285
49285
|
* @param {number[]|Float32Array|Float64Array} result
|
|
49286
49286
|
* @param {number} result_offset
|
|
49287
49287
|
*/
|
|
49288
|
-
sampleBicubic(x,y, result, result_offset){
|
|
49288
|
+
sampleBicubic(x, y, result, result_offset) {
|
|
49289
49289
|
|
|
49290
49290
|
const itemSize = this.itemSize;
|
|
49291
49291
|
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paintTerrainOverlayViaLookupTable.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paintTerrainOverlayViaLookupTable.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/terrain/util/paintTerrainOverlayViaLookupTable.js"],"names":[],"mappings":"AA2BA;;;;;;;;GAQG;AACH;IAPkC,OAAO;IACZ,OAAO,EAAzB,SAAS;IACqB,GAAG,GAAjC,oBAAoB;IACK,KAAK,GAA9B,eAAe;IACkB,mBAAmB,UAA3C,MAAM,KAAE,MAAM;IACP,OAAO,GAAvB,MAAM;SAiEhB;0BA7FyB,gDAAgD;qCAFrC,iFAAiF;gCADtF,mDAAmD"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { assert } from "../../../../core/assert.js";
|
|
1
2
|
import { passThrough } from "../../../../core/function/passThrough.js";
|
|
2
3
|
import { clamp01 } from "../../../../core/math/clamp01.js";
|
|
3
4
|
import { NumericInterval } from "../../../../core/math/interval/NumericInterval.js";
|
|
4
5
|
import { ParameterLookupTable } from "../../../graphics/particles/particular/engine/parameter/ParameterLookupTable.js";
|
|
5
6
|
import { sampler2d_scale } from "../../../graphics/texture/sampler/resize/sampler2d_scale.js";
|
|
6
7
|
import { Sampler2D } from "../../../graphics/texture/sampler/Sampler2D.js";
|
|
8
|
+
import { logger } from "../../../logging/GlobalLogger.js";
|
|
7
9
|
|
|
8
10
|
|
|
9
11
|
const heatmap_lut = new ParameterLookupTable(4);
|
|
@@ -17,6 +19,12 @@ heatmap_lut.write([
|
|
|
17
19
|
]);
|
|
18
20
|
heatmap_lut.computeUniformPositions();
|
|
19
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Color to use when sampled value is NaN
|
|
24
|
+
* @type {number[]}
|
|
25
|
+
*/
|
|
26
|
+
const NAN_COLOR = [0, 0, 0, 0];
|
|
27
|
+
|
|
20
28
|
/**
|
|
21
29
|
* @param {Object} params
|
|
22
30
|
* @param {TerrainOverlay} params.overlay
|
|
@@ -34,6 +42,10 @@ export function paintTerrainOverlayViaLookupTable({
|
|
|
34
42
|
lookupScaleFunction = passThrough,
|
|
35
43
|
channel = 0
|
|
36
44
|
}) {
|
|
45
|
+
|
|
46
|
+
assert.isNonNegativeInteger(channel, 'channel');
|
|
47
|
+
assert.lessThan(channel, sampler.itemSize);
|
|
48
|
+
|
|
37
49
|
let i, j;
|
|
38
50
|
|
|
39
51
|
const colorSample = [];
|
|
@@ -48,6 +60,8 @@ export function paintTerrainOverlayViaLookupTable({
|
|
|
48
60
|
scaled_sampler.resize(w, h);
|
|
49
61
|
sampler2d_scale(sampler, scaled_sampler);
|
|
50
62
|
|
|
63
|
+
let NaN_count = 0;
|
|
64
|
+
|
|
51
65
|
for (j = 0; j < h; j++) {
|
|
52
66
|
|
|
53
67
|
|
|
@@ -55,9 +69,21 @@ export function paintTerrainOverlayViaLookupTable({
|
|
|
55
69
|
|
|
56
70
|
const p = scaled_sampler.readChannel(i, j, channel);
|
|
57
71
|
|
|
58
|
-
|
|
72
|
+
if (Number.isNaN(p)) {
|
|
73
|
+
// handle NaN values by writing special color
|
|
74
|
+
|
|
75
|
+
buffer.set(i, j, NAN_COLOR);
|
|
59
76
|
|
|
60
|
-
|
|
77
|
+
NaN_count++;
|
|
78
|
+
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const transformed_value = lookupScaleFunction(p);
|
|
83
|
+
|
|
84
|
+
const remapped_value = range.normalizeValue(transformed_value);
|
|
85
|
+
|
|
86
|
+
const position = clamp01(remapped_value);
|
|
61
87
|
|
|
62
88
|
lut.sample(position, colorSample);
|
|
63
89
|
|
|
@@ -67,4 +93,8 @@ export function paintTerrainOverlayViaLookupTable({
|
|
|
67
93
|
|
|
68
94
|
overlay.clear();
|
|
69
95
|
overlay.writeData(buffer.data);
|
|
96
|
+
|
|
97
|
+
if (NaN_count > 0) {
|
|
98
|
+
logger.warn(`sampler had ${NaN_count} NaN values`);
|
|
99
|
+
}
|
|
70
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sampler2D.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/sampler/Sampler2D.js"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH;
|
|
1
|
+
{"version":3,"file":"Sampler2D.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/sampler/Sampler2D.js"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH;IAg8BI;;;;;;OAMG;IACH,6DAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,sDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,uDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,uDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,qDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,sDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,sDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,wDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,wDAFY,SAAS,CAKpB;IAziCD;;;;;;;OAOG;IACH,mBANW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,iBAAiB,GAAC,UAAU,GAAC,WAAW,GAAC,WAAW,GAAC,SAAS,GAAC,UAAU,GAAC,UAAU,GAAC,YAAY,GAAC,YAAY,aACzI,MAAM,UACN,MAAM,WACN,MAAM,EAmDhB;IA7BG;;;OAGG;IACH,cAAkB;IAElB;;;OAGG;IACH,eAAoB;IAEpB;;;OAGG;IACH,iBAAwB;IAExB;;;OAGG;IACH,MAFU,MAAM,EAAE,GAAC,iBAAiB,GAAC,UAAU,GAAC,WAAW,GAAC,WAAW,GAAC,SAAS,GAAC,UAAU,GAAC,UAAU,GAAC,YAAY,GAAC,YAAY,CAEjH;IAEhB;;;OAGG;IACH,SAFU,MAAM,CAEA;IAGpB;;;;;;;OAOG;IACH,OALW,MAAM,KACN,MAAM,UACN,qCAA+B,GAC7B,MAAM,CAIlB;IAED;;;;;OAKG;IACH,sBAJW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,QAQlB;IAED;;;;;;OAMG;IACH,6BALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CAOlB;IAED;;;;;;;OAOG;IACH,2BALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CA2DlB;IAED;;;;;OAKG;IACH,mBAJW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,QAQlB;IAED;;;;;;OAMG;IACH,iBALW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,QAUhB;IAED;;;;;;OAMG;IACH,0BALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CAOlB;IAED;;;;;;OAMG;IACH,wBALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CAgFlB;IAED;;;;;;OAMG;IACH,oBALW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,kBACR,MAAM,QAUhB;IAED;;;;;;OAMG;IACH,kBALW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,kBAClC,MAAM,QAWhB;IAED;;;;;;OAMG;IACH,2BALW,MAAM,KACN,MAAM,WACN,MAAM,GACL,MAAM,CAOjB;IAED;;;;;;OAMG;IACH,yBALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CAgFlB;IAED;;;;;OAKG;IACH,mBAJW,MAAM,KACN,MAAM,UACN,UAAU,MAAM,CAAC,QAU3B;IAED;;;;;;OAMG;IACH,eALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CAalB;IAED;;;;;OAKG;IACH,QAJW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,QAalB;IAED;;;;;OAKG;IACH,SAJW,MAAM,KACN,MAAM,QACN,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,QAapC;IAED;;;;;;OAMG;IACH,UALW,MAAM,KACN,MAAM,WACN,2BAAuB,OAajC;IAED;;;;;OAKG;IACH,eAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;;OAIG;IACH,mBAHW,MAAM,yBAUhB;IAED;;;;;;;;;OASG;IACH,aARW,SAAS,qHAoDnB;IAGD;;;;;;;OAOG;IACH,oEA8BC;IAED;;;;OAIG;IACH,2BAHW,MAAM,SACN,MAAM,QAYhB;IAED;;;;;;;OAOG;IACH,iEAFW,aAAc,QAqCxB;IAED;;;;;;OAMG;IACH,gBALW,MAAM,KACN,MAAM,WACN,MAAM,SACN,MAAM,QAqBhB;IAED;;;;;OAKG;IACH,OAJW,MAAM,KACN,MAAM,SACN,MAAM,EAAE,GAAC,YAAY,QAe/B;IAED;;;;;;;OAOG;IACH,wBALW,MAAM,WACN,MAAM,UACN,MAAM,sBAyBhB;IAED;;;;;OAKG;IACH,UAJW,MAAM,KACN,MAAM,iBACN,OAAO,QAyDjB;IAED;;;OAGG;IACH,mBAFY,MAAM,CAYjB;IAED;;;;OAIG;IACH,cAHW,SAAS,GACR,OAAO,CAYlB;IAED;;;OAGG;IACH,QAFY,MAAM,CAYjB;IAGD;;OAEG;IACH,SAFa,SAAS,CAerB;IAED;;;;;;MAUC;IAED;;;;;;aAwBC;IAgHL;;;OAGG;IACH,sBAFU,OAAO,CAEc;CAN9B;;kBAUS,MAAM"}
|
|
@@ -210,7 +210,7 @@ export class Sampler2D {
|
|
|
210
210
|
* @param {number[]|Float32Array|Float64Array} result
|
|
211
211
|
* @param {number} result_offset
|
|
212
212
|
*/
|
|
213
|
-
sampleBicubic(x,y, result, result_offset){
|
|
213
|
+
sampleBicubic(x, y, result, result_offset) {
|
|
214
214
|
|
|
215
215
|
const itemSize = this.itemSize;
|
|
216
216
|
|
|
@@ -486,7 +486,7 @@ export class Sampler2D {
|
|
|
486
486
|
assert.isNumber(channel, "channel");
|
|
487
487
|
|
|
488
488
|
assert.isNonNegativeInteger(channel, 'channel');
|
|
489
|
-
assert.
|
|
489
|
+
assert.lessThan(channel, this.itemSize);
|
|
490
490
|
|
|
491
491
|
const index = (y * this.width + x) * this.itemSize + channel;
|
|
492
492
|
|
|
@@ -749,6 +749,9 @@ export class Sampler2D {
|
|
|
749
749
|
assert.lessThan(x, this.width);
|
|
750
750
|
assert.lessThan(y, this.height);
|
|
751
751
|
|
|
752
|
+
assert.isNonNegativeInteger(channel, 'channel');
|
|
753
|
+
assert.lessThan(channel, this.itemSize);
|
|
754
|
+
|
|
752
755
|
const pointIndex = y * this.width + x;
|
|
753
756
|
const pointAddress = pointIndex * this.itemSize;
|
|
754
757
|
const channelAddress = pointAddress + channel;
|