@woosh/meep-engine 2.87.0 → 2.87.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/build/bundle-worker-terrain.js +1 -1
- package/build/meep.cjs +17 -0
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +17 -0
- package/package.json +1 -1
- package/src/core/geom/2d/quad-tree/qt_query_data_raycast.d.ts +14 -0
- package/src/core/geom/2d/quad-tree/qt_query_data_raycast.d.ts.map +1 -0
- package/src/core/geom/2d/quad-tree/qt_query_data_raycast.js +80 -0
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +4 -0
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D.js +17 -0
package/build/meep.module.js
CHANGED
|
@@ -49278,6 +49278,23 @@ class Sampler2D {
|
|
|
49278
49278
|
}
|
|
49279
49279
|
}
|
|
49280
49280
|
|
|
49281
|
+
/**
|
|
49282
|
+
*
|
|
49283
|
+
* @param {number} x
|
|
49284
|
+
* @param {number} y
|
|
49285
|
+
* @param {number[]|Float32Array|Float64Array} result
|
|
49286
|
+
* @param {number} result_offset
|
|
49287
|
+
*/
|
|
49288
|
+
sampleBicubic(x,y, result, result_offset){
|
|
49289
|
+
|
|
49290
|
+
const itemSize = this.itemSize;
|
|
49291
|
+
|
|
49292
|
+
for (let i = 0; i < itemSize; i++) {
|
|
49293
|
+
result[i + result_offset] = this.sampleChannelBicubic(x, y, i);
|
|
49294
|
+
|
|
49295
|
+
}
|
|
49296
|
+
}
|
|
49297
|
+
|
|
49281
49298
|
/**
|
|
49282
49299
|
*
|
|
49283
49300
|
* @param {number} u
|
package/package.json
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @template T
|
|
3
|
+
* @param {QuadTreeNode<T>} tree
|
|
4
|
+
* @param {number} origin_x
|
|
5
|
+
* @param {number} origin_y
|
|
6
|
+
* @param {number} direction_x
|
|
7
|
+
* @param {number} direction_y
|
|
8
|
+
* @param {number} max_distance
|
|
9
|
+
* @param {function(data:T, origin_x:number, origin_y:number, direction_x:number, direction_y:number, max_distance2:number):boolean} [predicate]
|
|
10
|
+
* @param {*} [predicateContext]
|
|
11
|
+
* @returns {number}
|
|
12
|
+
*/
|
|
13
|
+
export function qt_query_data_raycast<T>(tree: QuadTreeNode<T>, origin_x: number, origin_y: number, direction_x: number, direction_y: number, max_distance: number, predicate: any, predicateContext?: any): number;
|
|
14
|
+
//# sourceMappingURL=qt_query_data_raycast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qt_query_data_raycast.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/quad-tree/qt_query_data_raycast.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;GAWG;AACH,0EATW,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,gBACN,MAAM,2CAGJ,MAAM,CA6DlB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { aabb2_distance_sqr_to_point } from "../aabb/aabb2_distance_sqr_to_point.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @type {QuadTreeNode[]}
|
|
6
|
+
*/
|
|
7
|
+
const node_stack = [];
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @template T
|
|
11
|
+
* @param {QuadTreeNode<T>} tree
|
|
12
|
+
* @param {number} origin_x
|
|
13
|
+
* @param {number} origin_y
|
|
14
|
+
* @param {number} direction_x
|
|
15
|
+
* @param {number} direction_y
|
|
16
|
+
* @param {number} max_distance
|
|
17
|
+
* @param {function(data:T, origin_x:number, origin_y:number, direction_x:number, direction_y:number, max_distance2:number):boolean} [predicate]
|
|
18
|
+
* @param {*} [predicateContext]
|
|
19
|
+
* @returns {number}
|
|
20
|
+
*/
|
|
21
|
+
export function qt_query_data_raycast(
|
|
22
|
+
tree,
|
|
23
|
+
origin_x, origin_y,
|
|
24
|
+
direction_x, direction_y,
|
|
25
|
+
max_distance,
|
|
26
|
+
predicate, predicateContext
|
|
27
|
+
) {
|
|
28
|
+
|
|
29
|
+
let stack_pointer = 0;
|
|
30
|
+
|
|
31
|
+
const max_distance2 = max_distance * max_distance;
|
|
32
|
+
|
|
33
|
+
node_stack[stack_pointer] = tree;
|
|
34
|
+
stack_pointer++;
|
|
35
|
+
|
|
36
|
+
let best_match = undefined;
|
|
37
|
+
let best_match_distance2 = max_distance2;
|
|
38
|
+
|
|
39
|
+
while (stack_pointer > 0) {
|
|
40
|
+
|
|
41
|
+
--stack_pointer;
|
|
42
|
+
const node = node_stack[stack_pointer];
|
|
43
|
+
|
|
44
|
+
const d2 = aabb2_distance_sqr_to_point(node.x0, node.y0, node.x1, node.y1, origin_x, origin_y);
|
|
45
|
+
|
|
46
|
+
if (d2 > best_match_distance2) {
|
|
47
|
+
// too far, not a match
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const data = node.data;
|
|
52
|
+
const data_count = data.length;
|
|
53
|
+
|
|
54
|
+
for (let i = 0; i < data_count; i++) {
|
|
55
|
+
const datum = data[i];
|
|
56
|
+
|
|
57
|
+
const d2_to_datum = aabb2_distance_sqr_to_point(datum.x0, datum.y0, datum.x1, datum.y1, origin_x, origin_y);
|
|
58
|
+
|
|
59
|
+
if (d2_to_datum < best_match_distance2 && predicate.call(
|
|
60
|
+
predicateContext,
|
|
61
|
+
datum.data,
|
|
62
|
+
origin_x, origin_y,
|
|
63
|
+
direction_x, direction_y,
|
|
64
|
+
best_match_distance2
|
|
65
|
+
)) {
|
|
66
|
+
best_match = datum;
|
|
67
|
+
best_match_distance2 = d2_to_datum;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (node.isSplit()) {
|
|
72
|
+
node_stack[stack_pointer++] = node.topLeft;
|
|
73
|
+
node_stack[stack_pointer++] = node.bottomLeft;
|
|
74
|
+
node_stack[stack_pointer++] = node.topRight;
|
|
75
|
+
node_stack[stack_pointer++] = node.bottomRight;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return best_match;
|
|
80
|
+
}
|
|
@@ -20,6 +20,10 @@ export class Sampler2D {
|
|
|
20
20
|
|
|
21
21
|
sampleChannelBilinear(x: number, y: number, channel: number): number
|
|
22
22
|
|
|
23
|
+
sampleBicubic(x: number, y: number, result: ArrayLike<number>, result_offset?: number): void
|
|
24
|
+
|
|
25
|
+
sampleChannelBicubic(x: number, y: number, channel: number): number
|
|
26
|
+
|
|
23
27
|
resize(x: number, y: number, preserveData?: boolean): void
|
|
24
28
|
|
|
25
29
|
point2index(x: number, y: number): number
|
|
@@ -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":"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"}
|
|
@@ -203,6 +203,23 @@ export class Sampler2D {
|
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
+
/**
|
|
207
|
+
*
|
|
208
|
+
* @param {number} x
|
|
209
|
+
* @param {number} y
|
|
210
|
+
* @param {number[]|Float32Array|Float64Array} result
|
|
211
|
+
* @param {number} result_offset
|
|
212
|
+
*/
|
|
213
|
+
sampleBicubic(x,y, result, result_offset){
|
|
214
|
+
|
|
215
|
+
const itemSize = this.itemSize;
|
|
216
|
+
|
|
217
|
+
for (let i = 0; i < itemSize; i++) {
|
|
218
|
+
result[i + result_offset] = this.sampleChannelBicubic(x, y, i);
|
|
219
|
+
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
206
223
|
/**
|
|
207
224
|
*
|
|
208
225
|
* @param {number} u
|