@woosh/meep-engine 2.89.0 → 2.89.2
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/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":"AA0BA;;;;;;;;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;SA6DhB;0BAzFyB,gDAAgD;qCAFrC,iFAAiF;gCADtF,mDAAmD"}
|
|
@@ -4,6 +4,7 @@ import { NumericInterval } from "../../../../core/math/interval/NumericInterval.
|
|
|
4
4
|
import { ParameterLookupTable } from "../../../graphics/particles/particular/engine/parameter/ParameterLookupTable.js";
|
|
5
5
|
import { sampler2d_scale } from "../../../graphics/texture/sampler/resize/sampler2d_scale.js";
|
|
6
6
|
import { Sampler2D } from "../../../graphics/texture/sampler/Sampler2D.js";
|
|
7
|
+
import { logger } from "../../../logging/GlobalLogger.js";
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
const heatmap_lut = new ParameterLookupTable(4);
|
|
@@ -17,6 +18,12 @@ heatmap_lut.write([
|
|
|
17
18
|
]);
|
|
18
19
|
heatmap_lut.computeUniformPositions();
|
|
19
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Color to use when sampled value is NaN
|
|
23
|
+
* @type {number[]}
|
|
24
|
+
*/
|
|
25
|
+
const NAN_COLOR = [0, 0, 0, 0];
|
|
26
|
+
|
|
20
27
|
/**
|
|
21
28
|
* @param {Object} params
|
|
22
29
|
* @param {TerrainOverlay} params.overlay
|
|
@@ -48,6 +55,8 @@ export function paintTerrainOverlayViaLookupTable({
|
|
|
48
55
|
scaled_sampler.resize(w, h);
|
|
49
56
|
sampler2d_scale(sampler, scaled_sampler);
|
|
50
57
|
|
|
58
|
+
let NaN_count = 0;
|
|
59
|
+
|
|
51
60
|
for (j = 0; j < h; j++) {
|
|
52
61
|
|
|
53
62
|
|
|
@@ -55,9 +64,21 @@ export function paintTerrainOverlayViaLookupTable({
|
|
|
55
64
|
|
|
56
65
|
const p = scaled_sampler.readChannel(i, j, channel);
|
|
57
66
|
|
|
58
|
-
|
|
67
|
+
if (Number.isNaN(p)) {
|
|
68
|
+
// handle NaN values by writing special color
|
|
69
|
+
|
|
70
|
+
buffer.set(i, j, NAN_COLOR);
|
|
71
|
+
|
|
72
|
+
NaN_count++;
|
|
59
73
|
|
|
60
|
-
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const transformed_value = lookupScaleFunction(p);
|
|
78
|
+
|
|
79
|
+
const remapped_value = range.normalizeValue(transformed_value);
|
|
80
|
+
|
|
81
|
+
const position = clamp01(remapped_value);
|
|
61
82
|
|
|
62
83
|
lut.sample(position, colorSample);
|
|
63
84
|
|
|
@@ -67,4 +88,8 @@ export function paintTerrainOverlayViaLookupTable({
|
|
|
67
88
|
|
|
68
89
|
overlay.clear();
|
|
69
90
|
overlay.writeData(buffer.data);
|
|
91
|
+
|
|
92
|
+
if (NaN_count > 0) {
|
|
93
|
+
logger.warn(`sampler had ${NaN_count} NaN values`);
|
|
94
|
+
}
|
|
70
95
|
}
|