@woosh/meep-engine 2.119.99 → 2.119.102
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/editor/view/ecs/ComponentControlView.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/collection/array/typed/is_typed_array_equals.d.ts.map +1 -1
- package/src/core/collection/array/typed/is_typed_array_equals.js +4 -1
- package/src/core/collection/list/List.d.ts.map +1 -1
- package/src/core/collection/list/List.js +1 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.d.ts +1 -0
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/BinaryElementPool.js +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_edge_create.d.ts +9 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_edge_create.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/{create_edge.js → bt_edge_create.js} +2 -2
- package/src/core/geom/3d/topology/struct/binary/io/bt_edge_get_or_create.d.ts +10 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_edge_get_or_create.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_edge_get_or_create.js +45 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.d.ts.map +1 -1
- package/src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.js +26 -61
- package/src/core/geom/3d/topology/struct/binary/io/get_or_create_edge_map.js +2 -2
- package/src/core/math/clamp.js +3 -3
- package/src/core/math/hash/computeObjectHash.d.ts.map +1 -1
- package/src/core/math/hash/computeObjectHash.js +3 -1
- package/src/core/math/inverseLerp.d.ts +6 -1
- package/src/core/math/inverseLerp.d.ts.map +1 -1
- package/src/core/math/inverseLerp.js +6 -1
- package/src/core/model/DebouncedObservedBoolean.d.ts +0 -2
- package/src/core/model/DebouncedObservedBoolean.d.ts.map +1 -1
- package/src/core/model/ObservedBoolean.d.ts +81 -11
- package/src/core/model/ObservedBoolean.d.ts.map +1 -1
- package/src/core/model/ObservedBoolean.js +19 -5
- package/src/core/model/node-graph/NodeGraph.d.ts +21 -3
- package/src/core/model/node-graph/NodeGraph.d.ts.map +1 -1
- package/src/core/model/node-graph/NodeGraph.js +20 -2
- package/src/core/model/node-graph/node/NodeDescription.d.ts.map +1 -1
- package/src/core/model/node-graph/node/NodeDescription.js +1 -1
- package/src/core/model/node-graph/node/NodeInstance.d.ts.map +1 -1
- package/src/core/model/node-graph/node/NodeInstance.js +11 -1
- package/src/core/model/node-graph/util/convert_node_graph_to_dot_string.d.ts +3 -0
- package/src/core/model/node-graph/util/convert_node_graph_to_dot_string.d.ts.map +1 -1
- package/src/core/model/node-graph/util/convert_node_graph_to_dot_string.js +3 -0
- package/src/core/primitives/strings/string_jaro_distance.d.ts +2 -1
- package/src/core/primitives/strings/string_jaro_distance.d.ts.map +1 -1
- package/src/core/primitives/strings/string_jaro_distance.js +6 -1
- package/src/core/primitives/strings/string_jaro_winkler.d.ts +1 -1
- package/src/core/primitives/strings/string_jaro_winkler.d.ts.map +1 -1
- package/src/core/primitives/strings/string_jaro_winkler.js +11 -6
- package/src/engine/achievements/AchievementGateway.d.ts.map +1 -1
- package/src/engine/achievements/AchievementGateway.js +0 -3
- package/src/engine/animation/curve/AnimationCurve.d.ts +2 -2
- package/src/engine/animation/curve/AnimationCurve.js +2 -2
- package/src/engine/animation/curve/Keyframe.d.ts +6 -2
- package/src/engine/animation/curve/Keyframe.d.ts.map +1 -1
- package/src/engine/animation/curve/Keyframe.js +6 -2
- package/src/engine/animation/keyed2/AnimationTrack.d.ts +4 -0
- package/src/engine/animation/keyed2/AnimationTrack.d.ts.map +1 -1
- package/src/engine/animation/keyed2/AnimationTrack.js +4 -0
- package/src/engine/ecs/gui/position/ViewportPosition.d.ts +1 -1
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/Terrain.js +3 -3
- package/src/engine/grid/transform2grid/Transform2GridPositionMode.js +6 -0
- package/src/engine/input/devices/InputDeviceSwitch.d.ts.map +1 -1
- package/src/engine/input/devices/InputDeviceSwitch.js +24 -3
- package/src/engine/input/devices/events/eventToSourceIdentifier.d.ts +1 -1
- package/src/engine/input/devices/events/eventToSourceIdentifier.js +1 -1
- package/src/engine/intelligence/behavior/ecs/BehaviorComponent.js +2 -2
- package/src/view/View.js +1 -1
- package/editor/view/ecs/ComponentControlFactory.d.ts.map +0 -1
- package/editor/view/ecs/EntityEditor.d.ts.map +0 -1
- package/editor/view/ecs/EntityList.d.ts.map +0 -1
- package/editor/view/ecs/HierarchicalEntityListView.d.ts.map +0 -1
- package/src/core/geom/3d/topology/struct/binary/io/create_edge.d.ts +0 -9
- package/src/core/geom/3d/topology/struct/binary/io/create_edge.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentControlView.d.ts","sourceRoot":"","sources":["ComponentControlView.js"],"names":[],"mappings":"AAUA,sDAwBC;AAED;;;;;GAKG;AACH,6CAJW,MAAM,cACN,MAAM,GACJ,
|
|
1
|
+
{"version":3,"file":"ComponentControlView.d.ts","sourceRoot":"","sources":["ComponentControlView.js"],"names":[],"mappings":"AAUA,sDAwBC;AAED;;;;;GAKG;AACH,6CAJW,MAAM,cACN,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAezB;AAED,sDAgDC;AAED;;GAEG;AACH,kCAFa,CAAC;IAGV;;;;;;;;OAQG;IACH,oBAPW,MAAM,aACN,GAAC,iBACD,aAAa,eACb,IAAI,eAqGd;IA9FG;;MAEC;IAMD,YAAkB;IAEH,wBAAwC;CAqF9D;iBA1NgB,2BAA2B;mBACzB,2CAA2C;4BAElC,4CAA4C"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is_typed_array_equals.d.ts","sourceRoot":"","sources":["../../../../../../src/core/collection/array/typed/is_typed_array_equals.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"is_typed_array_equals.d.ts","sourceRoot":"","sources":["../../../../../../src/core/collection/array/typed/is_typed_array_equals.js"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,yCAJW,UAAU,GAAC,WAAW,KACtB,UAAU,GAAC,WAAW,GACpB,OAAO,CAmFnB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
//
|
|
2
|
+
import { assert } from "../../../assert.js";
|
|
2
3
|
import { largest_common_alignment_uint32 } from "../../../binary/largest_common_alignment_uint32.js";
|
|
3
4
|
import { isArrayEqualStrict } from "../isArrayEqualStrict.js";
|
|
4
5
|
|
|
@@ -64,7 +65,9 @@ export function is_typed_array_equals(a, b) {
|
|
|
64
65
|
|
|
65
66
|
const bytes_per_element = a_constructor.BYTES_PER_ELEMENT;
|
|
66
67
|
|
|
67
|
-
|
|
68
|
+
assert.isNonNegativeInteger(bytes_per_element, 'constructor.BYTES_PER_ELEMENT');
|
|
69
|
+
|
|
70
|
+
const alignment = largest_common_alignment_uint32(a_offset, b_offset, byte_length);
|
|
68
71
|
|
|
69
72
|
if (
|
|
70
73
|
bytes_per_element < 4
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":";AAaA;;;;GAIG;AACH,mBAFa,CAAC;IAyBV;;OAEG;IACH,oBAFW,CAAC,EAAE,EAoBb;IA3CD;;OAEG;IACH;QACI;;;WAGG;wBADO,MAAM,CAAC,CAAC,EAAC,MAAM,CAAC;QAG1B;;;WAGG;0BADO,MAAM,CAAC,CAAC,EAAC,MAAM,CAAC;MAG5B;IAEF;;;OAGG;IACH,eAFU,CAAC,EAAE,CAEJ;IAkBL;;;OAGG;IACH,QAFU,MAAM,CAEc;IAGlC;;;;OAIG;IACH,WAHW,MAAM,GACJ,CAAC,GAAC,SAAS,CAOvB;IAED;;;;OAIG;IACH,WAHW,MAAM,SACN,CAAC,QAyBX;IAED;;;;OAIG;IACH,QAHW,CAAC,GACC,IAAI,CAUhB;IAED;;;;;;;OAOG;IACH,cAHW,CAAC,GACA,OAAO,CAUlB;IAED;;;;;;;OAOG;IACH,cALW,MAAM,MACN,CAAC,aAoBX;IAED;;;;;OAKG;IACH,iBAJW,GAAG,YACH,GAAG,GACD,MAAM,CAkClB;IAED;;;;;OAKG;IACH,gBAFW,CAAC,EAAE,QAqDb;IAED;;;OAGG;IACH,iBAFW,KAAK,CAAE,CAAC,CAAC,QAmBnB;IAED;;;OAGG;IACH,uBAFW,KAAK,CAAE,CAAC,CAAC,QAQnB;IAED;;;;;OAKG;IACH,kBAJW,MAAM,eACN,MAAM,GACJ,CAAC,EAAE,CAyBf;IAED;;;;OAIG;IACH,cAHW,MAAM,GACJ,CAAC,CAiBb;IAED;;;;OAIG;IACH,oBAHW,CAAC,EAAE,GACD,OAAO,CAwCnB;IAED;;;;OAIG;IACH,mBAHW,CAAC,GACA,OAAO,CAQlB;IAED;;;;OAIG;IACH,6BAFa,IAAI,CAKhB;IAED
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryElementPool.d.ts","sourceRoot":"","sources":["../../../../../../../../src/core/geom/3d/topology/struct/binary/BinaryElementPool.js"],"names":[],"mappings":"AAyBA;;GAEG;AACH;IAwBI;;;;;OAKG;IACH,uBAJW,MAAM,qBACN,MAAM,sBACN,OAAO,EAkDjB;IA5ED;;;;OAIG;IACH,eAAY;IAEZ;;;;;OAKG;IACH,uBAAmB;IAEnB;;;;OAIG;IACH,eAAW;IAeP;;;;OAIG;IACH,oBAA4B;IAG5B;;;;OAIG;IACH,sBAA8F;IAC9F;;;;OAIG;IACH,qBAAsD;IACtD;;;;OAIG;IACH,sBAAwD;IACxD;;;;OAIG;IACH,uBAA0D;IAC1D,iCAAiD;IAEjD;;;;OAIG;IACH,mBAAkC;IAItC;;;;OAIG;IACH,wBAHW,WAAW,2BACX,MAAM,QAsBhB;IAED,+BAEC;IAED;;;OAGG;IACH,iBAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,YAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,gBAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,gBAFY,MAAM,CAIjB;IAGD;;;OAGG;IACH,mBAFY,WAAW,CAItB;IAED;;;OAGG;IACH,oBAFY,YAAY,CAIvB;IAED;;OAEG;IACH,aAEC;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACL,MAAM,CAMjB;IAED;;;;;OAKG;IACH,iBAHW,MAAM,GACL,MAAM,CAIjB;IAED;;;;OAIG;IACH,iBAHW,MAAM,GACL,OAAO,CAsBlB;IAED;;;;OAIG;IACH,uBAwBC;IAED;;;;OAIG;IACH,wBAQC;IAED;;;OAGG;IACH,0BAFW,MAAM,QAMhB;IAGD;;;OAGG;IACH,YAFY,MAAM,CAqBjB;IAED;;;;OAIG;IACH,2BAHW,MAAM,GACL,MAAM,CAcjB;IAED;;;;OAIG;IACH,YAFW,MAAM,QAYhB;IAED
|
|
1
|
+
{"version":3,"file":"BinaryElementPool.d.ts","sourceRoot":"","sources":["../../../../../../../../src/core/geom/3d/topology/struct/binary/BinaryElementPool.js"],"names":[],"mappings":"AAyBA;;GAEG;AACH;IAwBI;;;;;OAKG;IACH,uBAJW,MAAM,qBACN,MAAM,sBACN,OAAO,EAkDjB;IA5ED;;;;OAIG;IACH,eAAY;IAEZ;;;;;OAKG;IACH,uBAAmB;IAEnB;;;;OAIG;IACH,eAAW;IAeP;;;;OAIG;IACH,oBAA4B;IAG5B;;;;OAIG;IACH,sBAA8F;IAC9F;;;;OAIG;IACH,qBAAsD;IACtD;;;;OAIG;IACH,sBAAwD;IACxD;;;;OAIG;IACH,uBAA0D;IAC1D,iCAAiD;IAEjD;;;;OAIG;IACH,mBAAkC;IAItC;;;;OAIG;IACH,wBAHW,WAAW,2BACX,MAAM,QAsBhB;IAED,+BAEC;IAED;;;OAGG;IACH,iBAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,YAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,gBAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,gBAFY,MAAM,CAIjB;IAGD;;;OAGG;IACH,mBAFY,WAAW,CAItB;IAED;;;OAGG;IACH,oBAFY,YAAY,CAIvB;IAED;;OAEG;IACH,aAEC;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACL,MAAM,CAMjB;IAED;;;;;OAKG;IACH,iBAHW,MAAM,GACL,MAAM,CAIjB;IAED;;;;OAIG;IACH,iBAHW,MAAM,GACL,OAAO,CAsBlB;IAED;;;;OAIG;IACH,uBAwBC;IAED;;;;OAIG;IACH,wBAQC;IAED;;;OAGG;IACH,0BAFW,MAAM,QAMhB;IAGD;;;OAGG;IACH,YAFY,MAAM,CAqBjB;IAED;;;;OAIG;IACH,2BAHW,MAAM,GACL,MAAM,CAcjB;IAED;;;;OAIG;IACH,YAFW,MAAM,QAYhB;IAED;;;OAGG;IACH,cAGC;CACJ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param {BinaryTopology} mesh
|
|
4
|
+
* @param {number} v0
|
|
5
|
+
* @param {number} v1
|
|
6
|
+
* @return {number} ID of the newly created edge
|
|
7
|
+
*/
|
|
8
|
+
export function bt_edge_create(mesh: BinaryTopology, v0: number, v1: number): number;
|
|
9
|
+
//# sourceMappingURL=bt_edge_create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bt_edge_create.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_edge_create.js"],"names":[],"mappings":"AA8DA;;;;;;GAMG;AACH,qCALW,cAAc,MACd,MAAM,MACN,MAAM,GACL,MAAM,CAsCjB"}
|
|
@@ -65,9 +65,9 @@ function edge_link_disk(mesh, edge_source, edge_new, vertex) {
|
|
|
65
65
|
* @param {BinaryTopology} mesh
|
|
66
66
|
* @param {number} v0
|
|
67
67
|
* @param {number} v1
|
|
68
|
-
* @return {number}
|
|
68
|
+
* @return {number} ID of the newly created edge
|
|
69
69
|
*/
|
|
70
|
-
export function
|
|
70
|
+
export function bt_edge_create(mesh, v0, v1) {
|
|
71
71
|
const edge_id = mesh.edges.allocate();
|
|
72
72
|
|
|
73
73
|
mesh.edge_write_vertex1(edge_id, v0);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensure an edge between two vertices
|
|
3
|
+
* NOTE: works without having to use a separate hash map, resulting in faster execution and smaller RAM requirement
|
|
4
|
+
* @param {BinaryTopology} mesh
|
|
5
|
+
* @param {number} v0
|
|
6
|
+
* @param {number} v1
|
|
7
|
+
* @returns {number} edge ID
|
|
8
|
+
*/
|
|
9
|
+
export function bt_edge_get_or_create(mesh: BinaryTopology, v0: number, v1: number): number;
|
|
10
|
+
//# sourceMappingURL=bt_edge_get_or_create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bt_edge_get_or_create.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_edge_get_or_create.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,4CALW,cAAc,MACd,MAAM,MACN,MAAM,GACJ,MAAM,CAmClB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NULL_POINTER } from "../BinaryTopology.js";
|
|
2
|
+
import { bt_edge_create } from "./bt_edge_create.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Ensure an edge between two vertices
|
|
6
|
+
* NOTE: works without having to use a separate hash map, resulting in faster execution and smaller RAM requirement
|
|
7
|
+
* @param {BinaryTopology} mesh
|
|
8
|
+
* @param {number} v0
|
|
9
|
+
* @param {number} v1
|
|
10
|
+
* @returns {number} edge ID
|
|
11
|
+
*/
|
|
12
|
+
export function bt_edge_get_or_create(mesh, v0, v1) {
|
|
13
|
+
const first_edge = mesh.vertex_read_edge(v0);
|
|
14
|
+
|
|
15
|
+
if (first_edge !== NULL_POINTER) {
|
|
16
|
+
|
|
17
|
+
// iterate over all edges around the vertex
|
|
18
|
+
let edge = first_edge;
|
|
19
|
+
|
|
20
|
+
do {
|
|
21
|
+
const edge_v1 = mesh.edge_read_vertex1(edge);
|
|
22
|
+
const edge_v2 = mesh.edge_read_vertex2(edge);
|
|
23
|
+
|
|
24
|
+
if (edge_v1 === v1 || edge_v2 === v1) {
|
|
25
|
+
// found edge that connects between v0 and v1
|
|
26
|
+
return edge;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (edge_v1 === v0) {
|
|
30
|
+
edge = mesh.edge_read_v1_disk_next(edge);
|
|
31
|
+
} else if (edge_v2 === v0) {
|
|
32
|
+
edge = mesh.edge_read_v2_disk_next(edge);
|
|
33
|
+
} else {
|
|
34
|
+
// invalid edge connection
|
|
35
|
+
throw new Error('Invalid edge, not connected to first vertex');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
} while (edge !== first_edge);
|
|
39
|
+
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// if match is found - return the match, else create a new edge and assign
|
|
43
|
+
|
|
44
|
+
return bt_edge_create(mesh, v0, v1);
|
|
45
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bt_index_geometry_to_topology.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.js"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,mDALW,cAAc,WACd,MAAM,EAAE,oBACR,MAAM,EAAE,mBACR,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"bt_index_geometry_to_topology.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/core/geom/3d/topology/struct/binary/io/bt_index_geometry_to_topology.js"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,mDALW,cAAc,WACd,MAAM,EAAE,oBACR,MAAM,EAAE,mBACR,MAAM,EAAE,QAwGlB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NULL_POINTER } from "../BinaryTopology.js";
|
|
2
|
-
import {
|
|
2
|
+
import { bt_edge_get_or_create } from "./bt_edge_get_or_create.js";
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -29,12 +29,13 @@ export function bt_index_geometry_to_topology(
|
|
|
29
29
|
// ingest all vertices
|
|
30
30
|
const vertex_count = vertex_positions.length / 3;
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
// NOTE: we ignore vertex offset, because after clear - it is guaranteed to be 0
|
|
33
|
+
out.vertices.allocate_continuous(vertex_count);
|
|
33
34
|
|
|
34
35
|
for (let i = 0; i < vertex_count; i++) {
|
|
35
36
|
const i3 = i * 3;
|
|
36
37
|
|
|
37
|
-
const vertex_id = i
|
|
38
|
+
const vertex_id = i;
|
|
38
39
|
|
|
39
40
|
out.vertex_write_coordinate(vertex_id, vertex_positions, i3);
|
|
40
41
|
|
|
@@ -49,7 +50,8 @@ export function bt_index_geometry_to_topology(
|
|
|
49
50
|
const face_count = indices.length / 3;
|
|
50
51
|
|
|
51
52
|
// create faces
|
|
52
|
-
|
|
53
|
+
// NOTE: we ignore vertex offset, because after clear - it is guaranteed to be 0
|
|
54
|
+
out.faces.allocate_continuous(face_count);
|
|
53
55
|
|
|
54
56
|
// reserve some memory to avoid extra allocations
|
|
55
57
|
out.loops.ensure_capacity(face_count * 3);
|
|
@@ -62,16 +64,16 @@ export function bt_index_geometry_to_topology(
|
|
|
62
64
|
const b = indices[i3 + 1];
|
|
63
65
|
const c = indices[i3 + 2];
|
|
64
66
|
|
|
65
|
-
const vertex_a = a
|
|
66
|
-
const vertex_b = b
|
|
67
|
-
const vertex_c = c
|
|
67
|
+
const vertex_a = a;
|
|
68
|
+
const vertex_b = b;
|
|
69
|
+
const vertex_c = c;
|
|
68
70
|
|
|
69
|
-
const face_id = i
|
|
71
|
+
const face_id = i ;
|
|
70
72
|
|
|
71
73
|
// create edges
|
|
72
|
-
const edge_ab =
|
|
73
|
-
const edge_bc =
|
|
74
|
-
const edge_ca =
|
|
74
|
+
const edge_ab = bt_edge_get_or_create(out, vertex_a, vertex_b);
|
|
75
|
+
const edge_bc = bt_edge_get_or_create(out, vertex_b, vertex_c);
|
|
76
|
+
const edge_ca = bt_edge_get_or_create(out, vertex_c, vertex_a);
|
|
75
77
|
|
|
76
78
|
// allocate loops
|
|
77
79
|
const loop_a = out.loop_create();
|
|
@@ -80,17 +82,19 @@ export function bt_index_geometry_to_topology(
|
|
|
80
82
|
|
|
81
83
|
// write loops
|
|
82
84
|
out.loop_write_vertex(loop_a, vertex_a);
|
|
85
|
+
out.loop_write_face(loop_a, face_id);
|
|
86
|
+
|
|
83
87
|
out.loop_write_vertex(loop_b, vertex_b);
|
|
88
|
+
out.loop_write_face(loop_b, face_id);
|
|
89
|
+
|
|
84
90
|
out.loop_write_vertex(loop_c, vertex_c);
|
|
91
|
+
out.loop_write_face(loop_c, face_id);
|
|
85
92
|
|
|
86
93
|
// link loops to edges
|
|
87
|
-
link_loop_to_edge(loop_a, edge_ab
|
|
88
|
-
link_loop_to_edge(loop_b, edge_bc
|
|
89
|
-
link_loop_to_edge(loop_c, edge_ca
|
|
94
|
+
link_loop_to_edge(out, loop_a, edge_ab);
|
|
95
|
+
link_loop_to_edge(out, loop_b, edge_bc);
|
|
96
|
+
link_loop_to_edge(out, loop_c, edge_ca);
|
|
90
97
|
|
|
91
|
-
out.loop_write_face(loop_a, face_id);
|
|
92
|
-
out.loop_write_face(loop_b, face_id);
|
|
93
|
-
out.loop_write_face(loop_c, face_id);
|
|
94
98
|
|
|
95
99
|
/*
|
|
96
100
|
NOTE: Vertices (#BMLoop.v & #BMLoop.next.v) always contain vertices from (#BMEdge.v1 & #BMEdge.v2).
|
|
@@ -113,11 +117,11 @@ export function bt_index_geometry_to_topology(
|
|
|
113
117
|
|
|
114
118
|
/**
|
|
115
119
|
*
|
|
120
|
+
* @param {BinaryTopology} mesh
|
|
116
121
|
* @param {number} loop_id
|
|
117
122
|
* @param {number} edge_id
|
|
118
|
-
* @param {BinaryTopology} mesh
|
|
119
123
|
*/
|
|
120
|
-
function link_loop_to_edge(loop_id, edge_id
|
|
124
|
+
function link_loop_to_edge(mesh, loop_id, edge_id) {
|
|
121
125
|
mesh.loop_write_edge(loop_id, edge_id);
|
|
122
126
|
|
|
123
127
|
/**
|
|
@@ -127,11 +131,12 @@ function link_loop_to_edge(loop_id, edge_id, mesh) {
|
|
|
127
131
|
const existing_loop = mesh.edge_read_loop(edge_id);
|
|
128
132
|
|
|
129
133
|
if (existing_loop === NULL_POINTER) {
|
|
134
|
+
|
|
130
135
|
// no loops connected yet
|
|
131
136
|
mesh.edge_write_loop(edge_id, loop_id);
|
|
132
137
|
|
|
133
|
-
|
|
134
138
|
} else {
|
|
139
|
+
|
|
135
140
|
// insert loop between existing loop and the next one
|
|
136
141
|
const next = mesh.loop_read_radial_next(existing_loop);
|
|
137
142
|
|
|
@@ -140,49 +145,9 @@ function link_loop_to_edge(loop_id, edge_id, mesh) {
|
|
|
140
145
|
|
|
141
146
|
mesh.loop_write_radial_next(loop_id, next);
|
|
142
147
|
mesh.loop_write_radial_prev(loop_id, existing_loop);
|
|
148
|
+
|
|
143
149
|
}
|
|
144
150
|
|
|
145
151
|
}
|
|
146
152
|
|
|
147
153
|
|
|
148
|
-
/**
|
|
149
|
-
* Ensure an edge between two vertices
|
|
150
|
-
* NOTE: works without having to use a separate hash map, resulting in faster execution and smaller RAM requirement
|
|
151
|
-
* @param {number} v0
|
|
152
|
-
* @param {number} v1
|
|
153
|
-
* @param {BinaryTopology} mesh
|
|
154
|
-
*/
|
|
155
|
-
function get_or_create_edge_2(v0, v1, mesh) {
|
|
156
|
-
const first_edge = mesh.vertex_read_edge(v0);
|
|
157
|
-
|
|
158
|
-
if (first_edge !== NULL_POINTER) {
|
|
159
|
-
|
|
160
|
-
// iterate over all edges around the vertex
|
|
161
|
-
let edge = first_edge;
|
|
162
|
-
|
|
163
|
-
do {
|
|
164
|
-
const edge_v1 = mesh.edge_read_vertex1(edge);
|
|
165
|
-
const edge_v2 = mesh.edge_read_vertex2(edge);
|
|
166
|
-
|
|
167
|
-
if (edge_v1 === v1 || edge_v2 === v1) {
|
|
168
|
-
// found edge that connects between v0 and v1
|
|
169
|
-
return edge;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
if (edge_v1 === v0) {
|
|
173
|
-
edge = mesh.edge_read_v1_disk_next(edge);
|
|
174
|
-
} else if (edge_v2 === v0) {
|
|
175
|
-
edge = mesh.edge_read_v2_disk_next(edge);
|
|
176
|
-
} else {
|
|
177
|
-
// invalid edge connection
|
|
178
|
-
throw new Error('Invalid edge, not connected to first vertex');
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
} while (edge !== first_edge);
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// if match is found - return the match, else create a new edge and assign
|
|
186
|
-
|
|
187
|
-
return create_edge(mesh, v0, v1);
|
|
188
|
-
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { bt_edge_create } from "./bt_edge_create.js";
|
|
1
2
|
import { OrderedEdge } from "./OrderedEdge.js";
|
|
2
|
-
import { create_edge } from "./create_edge.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
*
|
|
@@ -18,7 +18,7 @@ function get_or_create_edge_map(v0, v1, map, mesh) {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
// doesn't exist - create
|
|
21
|
-
const edge_id =
|
|
21
|
+
const edge_id = bt_edge_create(mesh, v0, v1);
|
|
22
22
|
|
|
23
23
|
map.set(scratch_ordered_edge, edge_id);
|
|
24
24
|
|
package/src/core/math/clamp.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Constrain a value to lie between specified min/max values
|
|
3
3
|
* @param {number} value
|
|
4
|
-
* @param {number} min
|
|
5
|
-
* @param {number} max
|
|
6
|
-
* @returns {number}
|
|
4
|
+
* @param {number} min lower limit
|
|
5
|
+
* @param {number} max upper limit
|
|
6
|
+
* @returns {number} constrained value
|
|
7
7
|
*/
|
|
8
8
|
export function clamp(value, min, max) {
|
|
9
9
|
if (value < min) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeObjectHash.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/hash/computeObjectHash.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,sDAHW,MAAM,GACJ,MAAM,
|
|
1
|
+
{"version":3,"file":"computeObjectHash.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/hash/computeObjectHash.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,sDAHW,MAAM,GACJ,MAAM,CAgDlB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { computeStringHash } from "../../primitives/strings/computeStringHash.js";
|
|
2
1
|
import { computeHashFloat } from "../../primitives/numbers/computeHashFloat.js";
|
|
2
|
+
import { computeStringHash } from "../../primitives/strings/computeStringHash.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Recursively computes object hash
|
|
@@ -32,6 +32,8 @@ export function computeObjectHash(value, depth = 3) {
|
|
|
32
32
|
hash = 3;
|
|
33
33
|
} else {
|
|
34
34
|
|
|
35
|
+
// TODO implement special path for arrays and typed arrays
|
|
36
|
+
|
|
35
37
|
for (let p in value) {
|
|
36
38
|
|
|
37
39
|
const pNameHash = computeStringHash(p);
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Compute fraction of linear interpolation
|
|
3
|
+
* @example
|
|
4
|
+
* inverseLerp(1, 5, 1) === 0
|
|
5
|
+
* inverseLerp(1, 5, 5) === 1
|
|
6
|
+
* inverseLerp(1, 5, 3) === 0.5
|
|
7
|
+
*
|
|
3
8
|
* @param {number} a
|
|
4
9
|
* @param {number} b
|
|
5
10
|
* @param {number} value
|
|
6
|
-
* @returns {number} fraction
|
|
11
|
+
* @returns {number} fraction of where the {@link value{} lies between {@link a} and {@link b}
|
|
7
12
|
*/
|
|
8
13
|
export function inverseLerp(a: number, b: number, value: number): number;
|
|
9
14
|
//# sourceMappingURL=inverseLerp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inverseLerp.d.ts","sourceRoot":"","sources":["../../../../src/core/math/inverseLerp.js"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"inverseLerp.d.ts","sourceRoot":"","sources":["../../../../src/core/math/inverseLerp.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,+BALW,MAAM,KACN,MAAM,SACN,MAAM,GACJ,MAAM,CAgBlB"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Compute fraction of linear interpolation
|
|
3
|
+
* @example
|
|
4
|
+
* inverseLerp(1, 5, 1) === 0
|
|
5
|
+
* inverseLerp(1, 5, 5) === 1
|
|
6
|
+
* inverseLerp(1, 5, 3) === 0.5
|
|
7
|
+
*
|
|
3
8
|
* @param {number} a
|
|
4
9
|
* @param {number} b
|
|
5
10
|
* @param {number} value
|
|
6
|
-
* @returns {number} fraction
|
|
11
|
+
* @returns {number} fraction of where the {@link value{} lies between {@link a} and {@link b}
|
|
7
12
|
*/
|
|
8
13
|
export function inverseLerp(a, b, value) {
|
|
9
14
|
const range = b - a;
|
|
@@ -35,7 +35,6 @@ export class DebouncedObservedBoolean extends ObservedBoolean {
|
|
|
35
35
|
* @param {boolean} v
|
|
36
36
|
*/
|
|
37
37
|
set(v: boolean): this;
|
|
38
|
-
__value: any;
|
|
39
38
|
/**
|
|
40
39
|
*
|
|
41
40
|
* @param {boolean} v
|
|
@@ -43,7 +42,6 @@ export class DebouncedObservedBoolean extends ObservedBoolean {
|
|
|
43
42
|
* @private
|
|
44
43
|
*/
|
|
45
44
|
private __handleSourceChange;
|
|
46
|
-
getValue(): any;
|
|
47
45
|
}
|
|
48
46
|
import ObservedBoolean from "./ObservedBoolean.js";
|
|
49
47
|
//# sourceMappingURL=DebouncedObservedBoolean.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebouncedObservedBoolean.d.ts","sourceRoot":"","sources":["../../../../src/core/model/DebouncedObservedBoolean.js"],"names":[],"mappings":"2CAYU,MAAM;;;;;;AAQhB;;GAEG;AACH;IACI;;;;;OAKG;IACH,oBAJW,eAAe,QACf,MAAM,SACN,4BAA4B,GAAC,MAAM,EAY7C;IAPG,0BAAsB;IAEtB,aAAgB;IAEhB,wBAAqB;IAErB,aAAgB;IAGpB,aAGC;IAED,eAGC;IAGD;;;OAGG;IACH,uBAKC;IAED;;OAEG;IACH,0BAOC;IAED;;;OAGG;IACH,OAFW,OAAO,QAYjB;
|
|
1
|
+
{"version":3,"file":"DebouncedObservedBoolean.d.ts","sourceRoot":"","sources":["../../../../src/core/model/DebouncedObservedBoolean.js"],"names":[],"mappings":"2CAYU,MAAM;;;;;;AAQhB;;GAEG;AACH;IACI;;;;;OAKG;IACH,oBAJW,eAAe,QACf,MAAM,SACN,4BAA4B,GAAC,MAAM,EAY7C;IAPG,0BAAsB;IAEtB,aAAgB;IAEhB,wBAAqB;IAErB,aAAgB;IAGpB,aAGC;IAED,eAGC;IAGD;;;OAGG;IACH,uBAKC;IAED;;OAEG;IACH,0BAOC;IAED;;;OAGG;IACH,OAFW,OAAO,QAYjB;IAED;;;;;OAKG;IACH,6BAYC;CAMJ;4BAhH2B,sBAAsB"}
|
|
@@ -1,11 +1,81 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
1
|
+
export default ObservedBoolean;
|
|
2
|
+
declare class ObservedBoolean extends Boolean {
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param {boolean} value
|
|
6
|
+
* @constructor
|
|
7
|
+
*/
|
|
8
|
+
constructor(value: boolean);
|
|
9
|
+
/**
|
|
10
|
+
* @readonly
|
|
11
|
+
* @type {Signal<boolean,boolean>}
|
|
12
|
+
*/
|
|
13
|
+
readonly onChanged: Signal<boolean, boolean>;
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @type {boolean}
|
|
17
|
+
* @private
|
|
18
|
+
*/
|
|
19
|
+
private __value;
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @param {boolean} value
|
|
23
|
+
* @returns {ObservedBoolean}
|
|
24
|
+
*/
|
|
25
|
+
set(value: boolean): ObservedBoolean;
|
|
26
|
+
setTrue(): void;
|
|
27
|
+
setFalse(): void;
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* @param {ObservedBoolean} other
|
|
31
|
+
*/
|
|
32
|
+
copy(other: ObservedBoolean): void;
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
* @param {ObservedBoolean} other
|
|
36
|
+
* @returns {boolean}
|
|
37
|
+
*/
|
|
38
|
+
equals(other: ObservedBoolean): boolean;
|
|
39
|
+
/**
|
|
40
|
+
*
|
|
41
|
+
* @return {number}
|
|
42
|
+
*/
|
|
43
|
+
hashCode(): number;
|
|
44
|
+
/**
|
|
45
|
+
*
|
|
46
|
+
* @param {function(boolean)} f
|
|
47
|
+
*/
|
|
48
|
+
process(f: (arg0: boolean) => any): void;
|
|
49
|
+
/**
|
|
50
|
+
*
|
|
51
|
+
* @returns {Boolean}
|
|
52
|
+
*/
|
|
53
|
+
getValue(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Flip value. If value is true - it becomes false, if it was false it becomes true
|
|
56
|
+
*/
|
|
57
|
+
invert(): void;
|
|
58
|
+
toJSON(): boolean;
|
|
59
|
+
fromJSON(obj: any): void;
|
|
60
|
+
/**
|
|
61
|
+
*
|
|
62
|
+
* @param {BinaryBuffer} buffer
|
|
63
|
+
*/
|
|
64
|
+
toBinaryBuffer(buffer: BinaryBuffer): void;
|
|
65
|
+
/**
|
|
66
|
+
*
|
|
67
|
+
* @param {BinaryBuffer} buffer
|
|
68
|
+
*/
|
|
69
|
+
fromBinaryBuffer(buffer: BinaryBuffer): void;
|
|
70
|
+
/**
|
|
71
|
+
* @readonly
|
|
72
|
+
* @type {boolean}
|
|
73
|
+
*/
|
|
74
|
+
readonly isObservedBoolean: boolean;
|
|
75
|
+
}
|
|
76
|
+
declare namespace ObservedBoolean {
|
|
77
|
+
let FALSE: ObservedBoolean;
|
|
78
|
+
let TRUE: ObservedBoolean;
|
|
79
|
+
}
|
|
80
|
+
import Signal from "../events/signal/Signal.js";
|
|
81
|
+
//# sourceMappingURL=ObservedBoolean.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedBoolean.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedBoolean.js"],"names":[],"mappings":";AAGA;
|
|
1
|
+
{"version":3,"file":"ObservedBoolean.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedBoolean.js"],"names":[],"mappings":";AAGA;IAQI;;;;OAIG;IACH,mBAHW,OAAO,EAcjB;IAtBD;;;OAGG;IACH,oBAFU,MAAM,CAAC,OAAO,EAAC,OAAO,CAAC,CAER;IAYrB;;;;OAIG;IACH,gBAAoB;IAmBxB;;;;OAIG;IACH,WAHW,OAAO,GACL,eAAe,CAa3B;IAED,gBAEC;IAED,iBAEC;IAED;;;OAGG;IACH,YAFW,eAAe,QAIzB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACb,OAAO,CAInB;IAED;;;OAGG;IACH,YAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,WAFW,CAAS,IAAO,EAAP,OAAO,QAAC,QAK3B;IAED;;;OAGG;IACH,oBAEC;IAED;;OAEG;IACH,eAEC;IAED,kBAEC;IAED,yBAEC;IAED;;;OAGG;IACH,uBAFW,YAAY,QAItB;IAED;;;OAGG;IACH,yBAFW,YAAY,QAKtB;IAeL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;CAlB1C;;eAIS,eAAe;cAMf,eAAe;;mBAzJN,4BAA4B"}
|
|
@@ -2,6 +2,13 @@ import { assert } from "../assert.js";
|
|
|
2
2
|
import Signal from "../events/signal/Signal.js";
|
|
3
3
|
|
|
4
4
|
class ObservedBoolean extends Boolean {
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @readonly
|
|
8
|
+
* @type {Signal<boolean,boolean>}
|
|
9
|
+
*/
|
|
10
|
+
onChanged = new Signal();
|
|
11
|
+
|
|
5
12
|
/**
|
|
6
13
|
*
|
|
7
14
|
* @param {boolean} value
|
|
@@ -14,17 +21,15 @@ class ObservedBoolean extends Boolean {
|
|
|
14
21
|
|
|
15
22
|
/**
|
|
16
23
|
*
|
|
17
|
-
* @type {
|
|
24
|
+
* @type {boolean}
|
|
18
25
|
* @private
|
|
19
26
|
*/
|
|
20
27
|
this.__value = value;
|
|
21
|
-
|
|
22
|
-
this.onChanged = new Signal();
|
|
23
28
|
}
|
|
24
29
|
|
|
25
30
|
/**
|
|
26
31
|
*
|
|
27
|
-
* @returns {
|
|
32
|
+
* @returns {boolean}
|
|
28
33
|
*/
|
|
29
34
|
valueOf() {
|
|
30
35
|
return this.__value;
|
|
@@ -40,7 +45,7 @@ class ObservedBoolean extends Boolean {
|
|
|
40
45
|
|
|
41
46
|
/**
|
|
42
47
|
*
|
|
43
|
-
* @param {
|
|
48
|
+
* @param {boolean} value
|
|
44
49
|
* @returns {ObservedBoolean}
|
|
45
50
|
*/
|
|
46
51
|
set(value) {
|
|
@@ -139,7 +144,16 @@ class ObservedBoolean extends Boolean {
|
|
|
139
144
|
}
|
|
140
145
|
}
|
|
141
146
|
|
|
147
|
+
/**
|
|
148
|
+
* @readonly
|
|
149
|
+
* @type {ObservedBoolean}
|
|
150
|
+
*/
|
|
142
151
|
ObservedBoolean.FALSE = Object.freeze(new ObservedBoolean(false));
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* @readonly
|
|
155
|
+
* @type {ObservedBoolean}
|
|
156
|
+
*/
|
|
143
157
|
ObservedBoolean.TRUE = Object.freeze(new ObservedBoolean(true));
|
|
144
158
|
|
|
145
159
|
/**
|