@woosh/meep-engine 2.84.9 → 2.84.11

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.
Files changed (31) hide show
  1. package/README.md +27 -13
  2. package/build/meep.cjs +185 -87
  3. package/build/meep.min.js +1 -1
  4. package/build/meep.module.js +185 -87
  5. package/editor/process/symbolic/makePositionedIconDisplaySymbol.js +2 -4
  6. package/editor/view/EditorView.js +48 -204
  7. package/editor/view/ecs/HierarchicalEntityListView.js +191 -0
  8. package/editor/view/ecs/HierarchicalEntityListView.module.scss +13 -0
  9. package/editor/view/prepareMeshLibrary.js +178 -0
  10. package/editor/view/v2/SplitView.js +104 -0
  11. package/editor/view/v2/ViewManagementSystem.js +0 -0
  12. package/editor/view/v2/prototypeEditor.js +127 -0
  13. package/package.json +1 -1
  14. package/src/core/cache/Cache.d.ts +2 -0
  15. package/src/core/cache/Cache.js +58 -8
  16. package/src/core/cache/Cache.spec.js +38 -0
  17. package/src/core/cache/CacheElement.js +6 -0
  18. package/src/core/cache/LoadingCache.js +35 -4
  19. package/src/core/cache/LoadingCache.spec.js +44 -6
  20. package/src/core/collection/array/arraySetSortingDiff.js +6 -6
  21. package/src/core/collection/table/RowFirstTable.js +364 -368
  22. package/src/core/geom/3d/plane/plane3_compute_ray_intersection.js +3 -1
  23. package/src/core/geom/3d/topology/simplify/prototypeMeshSimplification.js +7 -7
  24. package/src/engine/animation/curve/ecd_bind_animation_curve.js +9 -0
  25. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometryFlags.js +8 -1
  26. package/src/engine/graphics/ecs/mesh-v2/aggregate/prototypeSGMesh.js +23 -19
  27. package/src/engine/graphics/ecs/mesh-v2/sg_hierarchy_compute_bounding_box_via_parent_entity.js +2 -2
  28. package/src/engine/graphics/ecs/mesh-v2/three_object_to_entity_composition.js +3 -1
  29. package/src/view/View.js +64 -95
  30. package/src/view/setElementTransform.js +20 -0
  31. package/src/view/setElementVisibility.js +15 -0
@@ -44,18 +44,21 @@ test("timeout reload reuse", async () => {
44
44
 
45
45
  const cache = new LoadingCache({
46
46
  load,
47
- timeToLive: 0.00001
47
+ timeToLive: 0.0000001
48
48
  });
49
49
 
50
- expect(await cache.get(1)).toEqual(11);
50
+ const request_1 = await cache.get(1);
51
+ expect(request_1).toEqual(11);
51
52
 
52
- await delay(1);
53
+ await delay(2);
53
54
 
54
- expect(await cache.get(1)).toEqual(5);
55
+ const request_2 = await cache.get(1);
56
+ expect(request_2).toEqual(5);
55
57
 
56
- await delay(1);
58
+ await delay(2);
57
59
 
58
- expect(await cache.get(1)).toEqual(3);
60
+ const request_3 = await cache.get(1);
61
+ expect(request_3).toEqual(3);
59
62
  });
60
63
 
61
64
  test("insert element directly", async () => {
@@ -81,3 +84,38 @@ test("clear", async () => {
81
84
 
82
85
  expect(await cache.get("x")).toEqual(3);
83
86
  });
87
+
88
+ test("eviction", async () => {
89
+
90
+ /**
91
+ *
92
+ * @type {LoadingCache<number, number>}
93
+ */
94
+ const cache = new LoadingCache({
95
+ valueWeigher(num) {
96
+ return num;
97
+ },
98
+ load: async () => {
99
+ return 2;
100
+ },
101
+ maxWeight: 6,
102
+ });
103
+
104
+ await cache.get(1);
105
+ await cache.get(2);
106
+ await cache.get(3);
107
+
108
+ expect(cache.contains(1)).toBe(true);
109
+ expect(cache.contains(2)).toBe(true);
110
+ expect(cache.contains(3)).toBe(true);
111
+
112
+ await cache.get(4);
113
+
114
+ await delay(1);
115
+
116
+ expect(cache.contains(1)).toBe(false);
117
+ expect(cache.contains(2)).toBe(true);
118
+ expect(cache.contains(3)).toBe(true);
119
+ expect(cache.contains(4)).toBe(true);
120
+
121
+ });
@@ -22,17 +22,17 @@ export function arraySetSortingDiff(a, b, compare) {
22
22
 
23
23
  const common = [];
24
24
 
25
- let lA = uniqueA.length;
26
- let lB = uniqueB.length;
25
+ let length_a = uniqueA.length;
26
+ let length_b = uniqueB.length;
27
27
 
28
28
  let i;
29
29
  let j;
30
30
  let cursor_j = 0;
31
31
 
32
- for (i = 0; i < lA; i++) {
32
+ for (i = 0; i < length_a; i++) {
33
33
  const el_a = uniqueA[i];
34
34
 
35
- for (j = cursor_j; j < lB; j++) {
35
+ for (j = cursor_j; j < length_b; j++) {
36
36
  const el_b = uniqueB[j];
37
37
 
38
38
  const diff = compare(el_a, el_b);
@@ -46,8 +46,8 @@ export function arraySetSortingDiff(a, b, compare) {
46
46
  i--;
47
47
  j--;
48
48
 
49
- lA--;
50
- lB--;
49
+ length_a--;
50
+ length_b--;
51
51
 
52
52
  } else if (diff > 0) {
53
53
  cursor_j++;