@mindexec/cli 0.2.446 → 0.2.447
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/README.md +2 -2
- package/package.json +2 -2
- package/remote-fast/osx-arm64/mindexec-remote-fast.dll +0 -0
- package/remote-fast/osx-x64/mindexec-remote-fast.dll +0 -0
- package/remote-fast/win-x64/mindexec-remote-fast.dll +0 -0
- package/remote-hub.js +1 -1
- package/scripts/remote-fleet-render-smoke.mjs +74 -36
- package/scripts/remote-hub-smoke.mjs +7 -0
- package/wwwroot/_content/MindExecution.Shared/js/background-themes.js +1 -3
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +199 -100
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-hotpath.js +902 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +56 -385
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +90 -134
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +167 -24
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-nodes.js +92 -50
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-pipeline.js +35 -12
- package/wwwroot/_content/MindExecution.Shared/js/renderers/CSS3DRenderer.js +35 -2
- package/wwwroot/_framework/{MindExecution.Core.djyzj5mxyk.dll → MindExecution.Core.mswl4wlkm9.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Kernel.6e5cj9aijz.dll → MindExecution.Kernel.zupeldfptg.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Admin.siulh9tfrf.dll → MindExecution.Plugins.Admin.hq0vyqnqtn.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Business.8cjtrc7qd3.dll → MindExecution.Plugins.Business.pucw3o7rno.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Concept.rpp78mc75u.dll → MindExecution.Plugins.Concept.557tzzkrrx.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.Directory.wfv0ff9v4u.dll → MindExecution.Plugins.Directory.zh1ddg1fn6.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.jdppnbd6g4.dll → MindExecution.Plugins.PlanMaster.0z9pzynpu9.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Plugins.YouTube.a43f2q3pkw.dll → MindExecution.Plugins.YouTube.y8g77r54fa.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Shared.gwtyj0e9lw.dll → MindExecution.Shared.1ymsdbwid2.dll} +0 -0
- package/wwwroot/_framework/{MindExecution.Web.j3zaapcxtt.dll → MindExecution.Web.bb1txupuv0.dll} +0 -0
- package/wwwroot/_framework/blazor.boot.json +21 -21
- package/wwwroot/index.html +2 -1
- package/wwwroot/service-worker-assets.js +35 -31
- package/wwwroot/service-worker.js +1 -1
|
@@ -525,7 +525,7 @@
|
|
|
525
525
|
return nodeEntry.cssObject.userData.spatialGridKeys;
|
|
526
526
|
}
|
|
527
527
|
|
|
528
|
-
return
|
|
528
|
+
return null;
|
|
529
529
|
}
|
|
530
530
|
|
|
531
531
|
function setNodeSpatialGridKeys(nodeEntry, keys) {
|
|
@@ -589,7 +589,7 @@
|
|
|
589
589
|
const bounds = getNodeWorldBounds(nodeEntry);
|
|
590
590
|
if (!bounds) return;
|
|
591
591
|
|
|
592
|
-
const oldKeys = getNodeSpatialGridKeys(nodeEntry);
|
|
592
|
+
const oldKeys = getNodeSpatialGridKeys(nodeEntry) || new Set();
|
|
593
593
|
const newKeys = new Set();
|
|
594
594
|
const startCellX = Math.floor(bounds.minX / module.GRID_CELL_SIZE);
|
|
595
595
|
const endCellX = Math.floor(bounds.maxX / module.GRID_CELL_SIZE);
|
|
@@ -789,7 +789,7 @@
|
|
|
789
789
|
const preservedY = Number(oldGroup?.position?.y ?? model.positionY ?? 0);
|
|
790
790
|
const preservedZ = Number(oldGroup?.position?.z ?? model.positionZ ?? 0);
|
|
791
791
|
const preservedVisible = oldGroup?.visible !== false;
|
|
792
|
-
const preservedSpatialKeys = new Set(getNodeSpatialGridKeys(nodeEntry));
|
|
792
|
+
const preservedSpatialKeys = new Set(getNodeSpatialGridKeys(nodeEntry) || []);
|
|
793
793
|
const width = Number(model.width || 400);
|
|
794
794
|
const height = Number(model.height || 200);
|
|
795
795
|
|
|
@@ -846,21 +846,15 @@
|
|
|
846
846
|
function removeNodeFromSpatialGrid(module, nodeId, nodeEntry = null) {
|
|
847
847
|
if (!module?.spatialGrid || !nodeId) return;
|
|
848
848
|
|
|
849
|
-
const keys = getNodeSpatialGridKeys(nodeEntry)
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
if (cell && cell.size === 0) module.spatialGrid.delete(key);
|
|
855
|
-
});
|
|
856
|
-
setNodeSpatialGridKeys(nodeEntry, new Set());
|
|
857
|
-
return;
|
|
858
|
-
}
|
|
859
|
-
|
|
860
|
-
module.spatialGrid.forEach((cell, key) => {
|
|
849
|
+
const keys = getNodeSpatialGridKeys(nodeEntry)
|
|
850
|
+
|| window.MindMapCss3dHotPath?.getSpatialGridKeysForBounds?.(module, nodeEntry)
|
|
851
|
+
|| new Set();
|
|
852
|
+
keys.forEach(key => {
|
|
853
|
+
const cell = module.spatialGrid.get(key);
|
|
861
854
|
if (!cell?.delete?.(nodeId)) return;
|
|
862
855
|
if (cell.size === 0) module.spatialGrid.delete(key);
|
|
863
856
|
});
|
|
857
|
+
setNodeSpatialGridKeys(nodeEntry, new Set());
|
|
864
858
|
}
|
|
865
859
|
// ▲▲▲ [New] ▲▲▲
|
|
866
860
|
|
|
@@ -927,6 +921,7 @@
|
|
|
927
921
|
return null;
|
|
928
922
|
}
|
|
929
923
|
|
|
924
|
+
const geometryKey = `${Math.round(width)}x${Math.round(height)}:${IMAGE_SELECTION_GLOW_PAD}`;
|
|
930
925
|
if (!outline) {
|
|
931
926
|
outline = new THREE.Mesh(
|
|
932
927
|
createRoundedRectFilledGeometry(
|
|
@@ -943,15 +938,20 @@
|
|
|
943
938
|
})
|
|
944
939
|
);
|
|
945
940
|
outline.name = 'outline';
|
|
941
|
+
outline.userData.geometrySizeKey = geometryKey;
|
|
946
942
|
group.add(outline);
|
|
943
|
+
} else {
|
|
944
|
+
window.MindMapCss3dHotPath?.replaceGeometryIfSizeChanged?.(
|
|
945
|
+
outline,
|
|
946
|
+
geometryKey,
|
|
947
|
+
() => createRoundedRectFilledGeometry(
|
|
948
|
+
width + IMAGE_SELECTION_GLOW_PAD,
|
|
949
|
+
height + IMAGE_SELECTION_GLOW_PAD,
|
|
950
|
+
20 + (IMAGE_SELECTION_GLOW_PAD * 0.5)
|
|
951
|
+
)
|
|
952
|
+
);
|
|
947
953
|
}
|
|
948
954
|
|
|
949
|
-
outline.geometry?.dispose?.();
|
|
950
|
-
outline.geometry = createRoundedRectFilledGeometry(
|
|
951
|
-
width + IMAGE_SELECTION_GLOW_PAD,
|
|
952
|
-
height + IMAGE_SELECTION_GLOW_PAD,
|
|
953
|
-
20 + (IMAGE_SELECTION_GLOW_PAD * 0.5)
|
|
954
|
-
);
|
|
955
955
|
outline.position.set(-(IMAGE_SELECTION_GLOW_PAD / 2), IMAGE_SELECTION_GLOW_PAD / 2, 0);
|
|
956
956
|
outline.renderOrder = Math.max(0, (baseRenderOrder || 1) - 1);
|
|
957
957
|
outline.visible = !!isSelected;
|
|
@@ -3487,6 +3487,66 @@
|
|
|
3487
3487
|
window.MindMapTextOverlayV2?.invalidateView?.(module);
|
|
3488
3488
|
}
|
|
3489
3489
|
|
|
3490
|
+
function applyNodeGlRenderOrder(module, entry, targetBaseOrder) {
|
|
3491
|
+
if (!entry?.glObject) return;
|
|
3492
|
+
const renderables = [];
|
|
3493
|
+
let minOrder = Infinity;
|
|
3494
|
+
let maxOrder = -Infinity;
|
|
3495
|
+
entry.glObject.traverse(child => {
|
|
3496
|
+
if (!child.isMesh && !child.isLine) return;
|
|
3497
|
+
const order = Number(child.renderOrder || 0);
|
|
3498
|
+
renderables.push(child);
|
|
3499
|
+
if (order < minOrder) minOrder = order;
|
|
3500
|
+
if (order > maxOrder) maxOrder = order;
|
|
3501
|
+
});
|
|
3502
|
+
if (!Number.isFinite(minOrder)) return;
|
|
3503
|
+
const delta = Number(targetBaseOrder || 0) - minOrder;
|
|
3504
|
+
for (let i = 0; i < renderables.length; i++) {
|
|
3505
|
+
renderables[i].renderOrder = Number(renderables[i].renderOrder || 0) + delta;
|
|
3506
|
+
}
|
|
3507
|
+
module.nodeZCounter = Math.max(Number(module.nodeZCounter || 0), maxOrder + delta + 1);
|
|
3508
|
+
}
|
|
3509
|
+
|
|
3510
|
+
function flushPendingGlRenderOrder(module, entry) {
|
|
3511
|
+
if (!module || !entry || !Number.isFinite(entry._pendingGlRenderOrderBase)) {
|
|
3512
|
+
return false;
|
|
3513
|
+
}
|
|
3514
|
+
applyNodeGlRenderOrder(module, entry, entry._pendingGlRenderOrderBase);
|
|
3515
|
+
delete entry._pendingGlRenderOrderBase;
|
|
3516
|
+
entry._pendingGlRenderOrderScheduled = false;
|
|
3517
|
+
return true;
|
|
3518
|
+
}
|
|
3519
|
+
|
|
3520
|
+
function schedulePendingGlRenderOrder(module, nodeId, entry, attempt = 0) {
|
|
3521
|
+
if (!module || !entry || entry._pendingGlRenderOrderScheduled === true) return;
|
|
3522
|
+
entry._pendingGlRenderOrderScheduled = true;
|
|
3523
|
+
const run = () => {
|
|
3524
|
+
entry._pendingGlRenderOrderScheduled = false;
|
|
3525
|
+
if (module.nodeObjectsById?.get?.(nodeId) !== entry ||
|
|
3526
|
+
!Number.isFinite(entry._pendingGlRenderOrderBase)) {
|
|
3527
|
+
return;
|
|
3528
|
+
}
|
|
3529
|
+
const isInteracting =
|
|
3530
|
+
module.isPanning === true ||
|
|
3531
|
+
module.isZooming === true ||
|
|
3532
|
+
module.isDraggingNode === true ||
|
|
3533
|
+
module.isDraggingMultipleNodes === true ||
|
|
3534
|
+
module.isSelecting === true;
|
|
3535
|
+
if (isInteracting && attempt < 12) {
|
|
3536
|
+
schedulePendingGlRenderOrder(module, nodeId, entry, attempt + 1);
|
|
3537
|
+
return;
|
|
3538
|
+
}
|
|
3539
|
+
if (!isInteracting) {
|
|
3540
|
+
flushPendingGlRenderOrder(module, entry);
|
|
3541
|
+
}
|
|
3542
|
+
};
|
|
3543
|
+
if (typeof requestIdleCallback === 'function') {
|
|
3544
|
+
requestIdleCallback(run, { timeout: 180 });
|
|
3545
|
+
} else {
|
|
3546
|
+
setTimeout(run, 32);
|
|
3547
|
+
}
|
|
3548
|
+
}
|
|
3549
|
+
|
|
3490
3550
|
function bringNodeToFront(module, nodeId) {
|
|
3491
3551
|
if (!module || !nodeId) return;
|
|
3492
3552
|
|
|
@@ -3495,35 +3555,15 @@
|
|
|
3495
3555
|
const contentTypeLower = getNodeContentTypeLower(entry.model);
|
|
3496
3556
|
const usesSafeMediaSelectionChrome = contentTypeLower === 'video' || contentTypeLower === 'embed';
|
|
3497
3557
|
|
|
3498
|
-
|
|
3499
|
-
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
entry.
|
|
3504
|
-
|
|
3505
|
-
|
|
3506
|
-
|
|
3507
|
-
if (order > maxOrder) maxOrder = order;
|
|
3508
|
-
}
|
|
3509
|
-
});
|
|
3510
|
-
|
|
3511
|
-
if (!Number.isFinite(minOrder)) minOrder = 0;
|
|
3512
|
-
if (!Number.isFinite(maxOrder)) maxOrder = minOrder;
|
|
3513
|
-
|
|
3514
|
-
const targetBaseOrder = module.nodeZCounter++;
|
|
3515
|
-
const delta = targetBaseOrder - minOrder;
|
|
3516
|
-
|
|
3517
|
-
entry.glObject.traverse(child => {
|
|
3518
|
-
if (child.isMesh || child.isLine) {
|
|
3519
|
-
child.renderOrder = (child.renderOrder || 0) + delta;
|
|
3520
|
-
}
|
|
3521
|
-
});
|
|
3522
|
-
|
|
3523
|
-
const nextTop = maxOrder + delta + 1;
|
|
3524
|
-
if (nextTop > module.nodeZCounter) {
|
|
3525
|
-
module.nodeZCounter = nextTop;
|
|
3526
|
-
}
|
|
3558
|
+
const targetBaseOrder = module.nodeZCounter++;
|
|
3559
|
+
const deferGlOrder = entry.currentType === 'CSS' &&
|
|
3560
|
+
entry.cssObject?.visible === true &&
|
|
3561
|
+
Number(module.camera?.position?.z || 0) < 9000;
|
|
3562
|
+
if (deferGlOrder) {
|
|
3563
|
+
entry._pendingGlRenderOrderBase = targetBaseOrder;
|
|
3564
|
+
schedulePendingGlRenderOrder(module, nodeId, entry);
|
|
3565
|
+
} else {
|
|
3566
|
+
applyNodeGlRenderOrder(module, entry, targetBaseOrder);
|
|
3527
3567
|
}
|
|
3528
3568
|
|
|
3529
3569
|
// CSS3DObject re-parenting can trigger a one-frame detach flicker.
|
|
@@ -4295,6 +4335,7 @@
|
|
|
4295
4335
|
// ▲▲▲ [Changed] ▲▲▲
|
|
4296
4336
|
|
|
4297
4337
|
if (nodeEntry.currentType === 'GL') {
|
|
4338
|
+
flushPendingGlRenderOrder(module, nodeEntry);
|
|
4298
4339
|
log(`[MindMapNodes] SwitchToWebGL(${nodeId}) SKIPPED (Already in GL mode).`);
|
|
4299
4340
|
return;
|
|
4300
4341
|
}
|
|
@@ -4304,6 +4345,7 @@
|
|
|
4304
4345
|
if (nodeEntry.isDeferredShell === true) {
|
|
4305
4346
|
await ensureDeferredNodeMaterialized(module, nodeEntry, { attachToScene: true });
|
|
4306
4347
|
}
|
|
4348
|
+
flushPendingGlRenderOrder(module, nodeEntry);
|
|
4307
4349
|
|
|
4308
4350
|
// Store CSS3D textarea scroll ratio into WebGL scrollOffset
|
|
4309
4351
|
const textarea = nodeEntry.cssObject.element.querySelector('textarea');
|
|
@@ -150,8 +150,10 @@
|
|
|
150
150
|
let renderQueueScheduled = false;
|
|
151
151
|
let renderModuleRef = null;
|
|
152
152
|
let renderQueueDirty = false;
|
|
153
|
-
const RENDER_BUDGET_MS = 8;
|
|
154
|
-
let renderSeq = 0;
|
|
153
|
+
const RENDER_BUDGET_MS = 8;
|
|
154
|
+
let renderSeq = 0;
|
|
155
|
+
let renderQueueSortCount = 0;
|
|
156
|
+
let renderQueueMaxLength = 0;
|
|
155
157
|
|
|
156
158
|
function computeRenderPriority(module, nodeId) {
|
|
157
159
|
const entry = module?.nodeObjectsById?.get(nodeId);
|
|
@@ -183,6 +185,7 @@
|
|
|
183
185
|
renderQueue.push({ nodeId, priority: computeRenderPriority(module, nodeId), seq: renderSeq++ });
|
|
184
186
|
renderQueueSet.add(nodeId);
|
|
185
187
|
renderQueueDirty = true;
|
|
188
|
+
renderQueueMaxLength = Math.max(renderQueueMaxLength, renderQueue.length);
|
|
186
189
|
}
|
|
187
190
|
scheduleRenderQueue();
|
|
188
191
|
}
|
|
@@ -200,6 +203,7 @@
|
|
|
200
203
|
if (renderQueueDirty) {
|
|
201
204
|
if (renderQueue.length > 1) {
|
|
202
205
|
renderQueue.sort((a, b) => (b.priority - a.priority) || (b.seq - a.seq));
|
|
206
|
+
renderQueueSortCount++;
|
|
203
207
|
}
|
|
204
208
|
renderQueueDirty = false;
|
|
205
209
|
}
|
|
@@ -348,6 +352,7 @@
|
|
|
348
352
|
if (!group) return null;
|
|
349
353
|
|
|
350
354
|
let outline = group.getObjectByName('outline');
|
|
355
|
+
const geometryKey = `${Math.round(width)}x${Math.round(height)}:${IMAGE_SELECTION_GLOW_PAD}`;
|
|
351
356
|
if (!outline) {
|
|
352
357
|
outline = new THREE.Mesh(
|
|
353
358
|
createRoundedRectFilledGeometry(
|
|
@@ -364,16 +369,24 @@
|
|
|
364
369
|
})
|
|
365
370
|
);
|
|
366
371
|
outline.name = 'outline';
|
|
367
|
-
outline.userData = {
|
|
372
|
+
outline.userData = {
|
|
373
|
+
...(outline.userData || {}),
|
|
374
|
+
isImageSelectionGlow: true,
|
|
375
|
+
geometrySizeKey: geometryKey
|
|
376
|
+
};
|
|
368
377
|
group.add(outline);
|
|
378
|
+
} else {
|
|
379
|
+
window.MindMapCss3dHotPath?.replaceGeometryIfSizeChanged?.(
|
|
380
|
+
outline,
|
|
381
|
+
geometryKey,
|
|
382
|
+
() => createRoundedRectFilledGeometry(
|
|
383
|
+
width + IMAGE_SELECTION_GLOW_PAD,
|
|
384
|
+
height + IMAGE_SELECTION_GLOW_PAD,
|
|
385
|
+
20 + (IMAGE_SELECTION_GLOW_PAD * 0.5)
|
|
386
|
+
)
|
|
387
|
+
);
|
|
369
388
|
}
|
|
370
389
|
|
|
371
|
-
outline.geometry?.dispose?.();
|
|
372
|
-
outline.geometry = createRoundedRectFilledGeometry(
|
|
373
|
-
width + IMAGE_SELECTION_GLOW_PAD,
|
|
374
|
-
height + IMAGE_SELECTION_GLOW_PAD,
|
|
375
|
-
20 + (IMAGE_SELECTION_GLOW_PAD * 0.5)
|
|
376
|
-
);
|
|
377
390
|
outline.position.set(-(IMAGE_SELECTION_GLOW_PAD / 2), IMAGE_SELECTION_GLOW_PAD / 2, 0);
|
|
378
391
|
outline.renderOrder = baseRenderOrder - 1;
|
|
379
392
|
outline.visible = !!isSelected;
|
|
@@ -2199,7 +2212,7 @@
|
|
|
2199
2212
|
}
|
|
2200
2213
|
|
|
2201
2214
|
// Expose MindMapPipeline globally
|
|
2202
|
-
window.MindMapPipeline = {
|
|
2215
|
+
window.MindMapPipeline = {
|
|
2203
2216
|
processRenderQueue: processRenderQueue,
|
|
2204
2217
|
debouncedProcessRenderQueue: debouncedProcessRenderQueue,
|
|
2205
2218
|
throttledScrollUpdate: throttledScrollUpdate,
|
|
@@ -2207,8 +2220,18 @@
|
|
|
2207
2220
|
throttledProcessRenderQueueDuringResize: throttledProcessRenderQueueDuringResize,
|
|
2208
2221
|
startResizing: startResizing,
|
|
2209
2222
|
doResizing: doResizing,
|
|
2210
|
-
stopResizing: stopResizing,
|
|
2211
|
-
|
|
2223
|
+
stopResizing: stopResizing,
|
|
2224
|
+
getQueueDebugMetrics: () => ({
|
|
2225
|
+
sortCount: renderQueueSortCount,
|
|
2226
|
+
maxLength: renderQueueMaxLength,
|
|
2227
|
+
currentLength: renderQueue.length,
|
|
2228
|
+
disposePending: Math.max(0, disposeQueue.length - disposeQueueHead)
|
|
2229
|
+
}),
|
|
2230
|
+
resetQueueDebugMetrics: () => {
|
|
2231
|
+
renderQueueSortCount = 0;
|
|
2232
|
+
renderQueueMaxLength = renderQueue.length;
|
|
2233
|
+
},
|
|
2234
|
+
throttledUpdateScrollInCSharp: throttledUpdateScrollInCSharp
|
|
2212
2235
|
};
|
|
2213
2236
|
|
|
2214
2237
|
console.log('? mind-map-pipeline.js loaded');
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
function CSS3DRenderer(){
|
|
34
34
|
var _width, _height, _widthHalf, _heightHalf;
|
|
35
35
|
var cache = { camera:{ fov:0, style:'' }, objects: new WeakMap() };
|
|
36
|
+
var debugCounters = { sceneObjectsVisited:0, visibilityPatchEntered:0, visibilityPatchExited:0 };
|
|
36
37
|
var domElement = document.createElement('div');
|
|
37
38
|
domElement.style.overflow = 'hidden';
|
|
38
39
|
domElement.style.contain = 'layout style';
|
|
@@ -63,8 +64,8 @@
|
|
|
63
64
|
for (var i=0;i<16;i++) next[i]=epsilon(elements[i]);
|
|
64
65
|
return next;
|
|
65
66
|
}
|
|
66
|
-
function
|
|
67
|
-
if (object
|
|
67
|
+
function renderCssObject(object){
|
|
68
|
+
if (object?.isCSS3DObject){
|
|
68
69
|
var visible=object.visible===true;
|
|
69
70
|
var layoutPrepared=object.userData?._residentTransitionPrepared===true || object.userData?._fullResFringePrepared===true;
|
|
70
71
|
var display=(visible || layoutPrepared) ? '' : 'none';
|
|
@@ -85,6 +86,10 @@
|
|
|
85
86
|
cached.display=display;
|
|
86
87
|
if (element.parentNode!==cameraElement) cameraElement.appendChild(element);
|
|
87
88
|
}
|
|
89
|
+
}
|
|
90
|
+
function renderObject(object){
|
|
91
|
+
debugCounters.sceneObjectsVisited++;
|
|
92
|
+
renderCssObject(object);
|
|
88
93
|
for (var i=0,l=object.children.length;i<l;i++) renderObject(object.children[i]);
|
|
89
94
|
}
|
|
90
95
|
function renderCameraOnly(renderer, camera, matrixWorldIsCurrent){
|
|
@@ -109,6 +114,34 @@
|
|
|
109
114
|
object.element?.getBoundingClientRect?.();
|
|
110
115
|
return true;
|
|
111
116
|
};
|
|
117
|
+
this.applyVisibilityDiff = function(enteredObjects, exitedObjects){
|
|
118
|
+
var entered=Array.isArray(enteredObjects) ? enteredObjects : [];
|
|
119
|
+
var exited=Array.isArray(exitedObjects) ? exitedObjects : [];
|
|
120
|
+
var visited=0;
|
|
121
|
+
try {
|
|
122
|
+
for (var i=0;i<exited.length;i++){
|
|
123
|
+
var exitedObject=exited[i];
|
|
124
|
+
if (!exitedObject || exitedObject.isCSS3DObject!==true) continue;
|
|
125
|
+
exitedObject.updateMatrixWorld(true);
|
|
126
|
+
renderCssObject(exitedObject);
|
|
127
|
+
visited++;
|
|
128
|
+
}
|
|
129
|
+
for (var j=0;j<entered.length;j++){
|
|
130
|
+
var enteredObject=entered[j];
|
|
131
|
+
if (!enteredObject || enteredObject.isCSS3DObject!==true) continue;
|
|
132
|
+
enteredObject.updateMatrixWorld(true);
|
|
133
|
+
renderCssObject(enteredObject);
|
|
134
|
+
visited++;
|
|
135
|
+
}
|
|
136
|
+
} catch (error) {
|
|
137
|
+
return { complete:false, reason:'visibility-diff-exception', visited:visited, error:error };
|
|
138
|
+
}
|
|
139
|
+
debugCounters.visibilityPatchEntered+=entered.length;
|
|
140
|
+
debugCounters.visibilityPatchExited+=exited.length;
|
|
141
|
+
return { complete:true, entered:entered.length, exited:exited.length, visited:visited };
|
|
142
|
+
};
|
|
143
|
+
this.getDebugCounters = function(){ return { ...debugCounters }; };
|
|
144
|
+
this.resetDebugCounters = function(){ debugCounters={ sceneObjectsVisited:0, visibilityPatchEntered:0, visibilityPatchExited:0 }; };
|
|
112
145
|
this.render = function(scene, camera){ if (scene.autoUpdate===true) scene.updateMatrixWorld(); renderCameraOnly(this, camera, false); renderObject(scene); };
|
|
113
146
|
}
|
|
114
147
|
|
package/wwwroot/_framework/{MindExecution.Core.djyzj5mxyk.dll → MindExecution.Core.mswl4wlkm9.dll}
RENAMED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/wwwroot/_framework/{MindExecution.Web.j3zaapcxtt.dll → MindExecution.Web.bb1txupuv0.dll}
RENAMED
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mainAssemblyName": "MindExecution.Web",
|
|
3
3
|
"resources": {
|
|
4
|
-
"hash": "sha256-
|
|
4
|
+
"hash": "sha256-UZuh8tLI9D39IO7I9pnWdRUu1iZ6Vy2k6IjaF0olNBI=",
|
|
5
5
|
"fingerprinting": {
|
|
6
6
|
"Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
|
|
7
7
|
"Markdig.d1j7v41cl1.dll": "Markdig.dll",
|
|
@@ -122,16 +122,16 @@
|
|
|
122
122
|
"System.brmz7yk5qh.dll": "System.dll",
|
|
123
123
|
"netstandard.b50t77veor.dll": "netstandard.dll",
|
|
124
124
|
"System.Private.CoreLib.g6ztz7cmo2.dll": "System.Private.CoreLib.dll",
|
|
125
|
-
"MindExecution.Core.
|
|
126
|
-
"MindExecution.Kernel.
|
|
127
|
-
"MindExecution.Plugins.Admin.
|
|
128
|
-
"MindExecution.Plugins.Business.
|
|
129
|
-
"MindExecution.Plugins.Concept.
|
|
130
|
-
"MindExecution.Plugins.Directory.
|
|
131
|
-
"MindExecution.Plugins.PlanMaster.
|
|
132
|
-
"MindExecution.Plugins.YouTube.
|
|
133
|
-
"MindExecution.Shared.
|
|
134
|
-
"MindExecution.Web.
|
|
125
|
+
"MindExecution.Core.mswl4wlkm9.dll": "MindExecution.Core.dll",
|
|
126
|
+
"MindExecution.Kernel.zupeldfptg.dll": "MindExecution.Kernel.dll",
|
|
127
|
+
"MindExecution.Plugins.Admin.hq0vyqnqtn.dll": "MindExecution.Plugins.Admin.dll",
|
|
128
|
+
"MindExecution.Plugins.Business.pucw3o7rno.dll": "MindExecution.Plugins.Business.dll",
|
|
129
|
+
"MindExecution.Plugins.Concept.557tzzkrrx.dll": "MindExecution.Plugins.Concept.dll",
|
|
130
|
+
"MindExecution.Plugins.Directory.zh1ddg1fn6.dll": "MindExecution.Plugins.Directory.dll",
|
|
131
|
+
"MindExecution.Plugins.PlanMaster.0z9pzynpu9.dll": "MindExecution.Plugins.PlanMaster.dll",
|
|
132
|
+
"MindExecution.Plugins.YouTube.y8g77r54fa.dll": "MindExecution.Plugins.YouTube.dll",
|
|
133
|
+
"MindExecution.Shared.1ymsdbwid2.dll": "MindExecution.Shared.dll",
|
|
134
|
+
"MindExecution.Web.bb1txupuv0.dll": "MindExecution.Web.dll",
|
|
135
135
|
"dotnet.native.566r55w3xu.js": "dotnet.native.js",
|
|
136
136
|
"dotnet.native.x6q5aixc38.wasm": "dotnet.native.wasm",
|
|
137
137
|
"dotnet.js": "dotnet.js",
|
|
@@ -276,18 +276,18 @@
|
|
|
276
276
|
"System.Xml.XDocument.sn51jas17n.dll": "sha256-GNI2kFgFmPTwzuzwUn8gxK+AzGLUWRJFdg9JzIbrybQ=",
|
|
277
277
|
"System.brmz7yk5qh.dll": "sha256-CfM2miyj1KHApFmqMdLYWio3S/jrdON2pW9Xr2nTwlo=",
|
|
278
278
|
"netstandard.b50t77veor.dll": "sha256-//jQGOXjb8ET8WtXgOJrAxLx6E7zDJ5RjRRutwkvmxo=",
|
|
279
|
-
"MindExecution.Core.
|
|
280
|
-
"MindExecution.Kernel.
|
|
281
|
-
"MindExecution.Plugins.Business.
|
|
282
|
-
"MindExecution.Plugins.Concept.
|
|
283
|
-
"MindExecution.Plugins.PlanMaster.
|
|
284
|
-
"MindExecution.Shared.
|
|
285
|
-
"MindExecution.Web.
|
|
279
|
+
"MindExecution.Core.mswl4wlkm9.dll": "sha256-Ru09H3PbP8MVKjeEE5FLXnXm2LVpv421tfgliW/vN+M=",
|
|
280
|
+
"MindExecution.Kernel.zupeldfptg.dll": "sha256-azMSlIBQcPcmVNI3eX+WxSnlXUQ/j/NDCtOKDp++owk=",
|
|
281
|
+
"MindExecution.Plugins.Business.pucw3o7rno.dll": "sha256-EXxUy+DRMR51sHo+Q/QYuTh2Oz7/wxeKGhADP07KWcw=",
|
|
282
|
+
"MindExecution.Plugins.Concept.557tzzkrrx.dll": "sha256-aTh3k+ncbMY0UZ0EWHp19SSWyHKIv8/MUW6AqDDmWW8=",
|
|
283
|
+
"MindExecution.Plugins.PlanMaster.0z9pzynpu9.dll": "sha256-vHnd6UzPOrh35E0y1VPsWGj+Jl+Ze2rM9c6SYb+grpM=",
|
|
284
|
+
"MindExecution.Shared.1ymsdbwid2.dll": "sha256-KRyO57WBUyFvSyLnDWqpBoELgMoiC+d6lyBMU9qz8PQ=",
|
|
285
|
+
"MindExecution.Web.bb1txupuv0.dll": "sha256-57REdRLMDGVtyh6YhuvZe0XLVkNhrJHqLDnEDR45l9Q="
|
|
286
286
|
},
|
|
287
287
|
"lazyAssembly": {
|
|
288
|
-
"MindExecution.Plugins.Admin.
|
|
289
|
-
"MindExecution.Plugins.Directory.
|
|
290
|
-
"MindExecution.Plugins.YouTube.
|
|
288
|
+
"MindExecution.Plugins.Admin.hq0vyqnqtn.dll": "sha256-eQ9YVFpetThf85xrcPIDWGPIHp2E3kzSVYmghtRFDFo=",
|
|
289
|
+
"MindExecution.Plugins.Directory.zh1ddg1fn6.dll": "sha256-KXobDyCfuJf/4WJf7DAJaBPanfkPZHkdrCiSWwefotg=",
|
|
290
|
+
"MindExecution.Plugins.YouTube.y8g77r54fa.dll": "sha256-/q58KqYenDmVBAYkDcB/Frnz97E/69zjgE++VeKa2Ug="
|
|
291
291
|
}
|
|
292
292
|
},
|
|
293
293
|
"cacheBootResources": true,
|
package/wwwroot/index.html
CHANGED
|
@@ -579,7 +579,7 @@
|
|
|
579
579
|
}
|
|
580
580
|
|
|
581
581
|
const base = '_content/MindExecution.Shared/js/';
|
|
582
|
-
const scriptVersion = '
|
|
582
|
+
const scriptVersion = '20260725-cold-mid-local-grid-v945';
|
|
583
583
|
const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
|
|
584
584
|
console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
|
|
585
585
|
const criticalScripts = [
|
|
@@ -595,6 +595,7 @@
|
|
|
595
595
|
'mind-map-glow-shader.js', // ??SDF Glow (no textures, GPU only)
|
|
596
596
|
'mind-map-video-playback-controls.js',
|
|
597
597
|
'mind-map-remote-codecs.js',
|
|
598
|
+
'mind-map-css3d-hotpath.js',
|
|
598
599
|
'mind-map-css3d-manager.js',
|
|
599
600
|
'mind-map-object-manager.js',
|
|
600
601
|
'mind-map-pipeline.js',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
self.assetsManifest = {
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "1hca8nFH",
|
|
3
3
|
"assets": [
|
|
4
4
|
{
|
|
5
5
|
"hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"url": "_content/MindExecution.Shared/js/agent-visualization.js"
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
|
-
"hash": "sha256-
|
|
61
|
+
"hash": "sha256-qCfvX9VTWXpI/7IAJyV8FXc83Z7vDq7yxYHg5rkp4ZE=",
|
|
62
62
|
"url": "_content/MindExecution.Shared/js/background-themes.js"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"url": "_content/MindExecution.Shared/js/marked.min.js"
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
|
-
"hash": "sha256-
|
|
81
|
+
"hash": "sha256-4eD2o9mTDubyz6mpk1N9GZ3MmCi09MaC923iYGCb348=",
|
|
82
82
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -86,7 +86,11 @@
|
|
|
86
86
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js.backup"
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
"hash": "sha256-
|
|
89
|
+
"hash": "sha256-3OXymXLbgQLXbqa2rQrPpfUq3tnWYVv2LZR3azSeGV0=",
|
|
90
|
+
"url": "_content/MindExecution.Shared/js/mind-map-css3d-hotpath.js"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"hash": "sha256-2JJyLe6OTexKRnFxVzybuaMqnwJggLHXs37xmjWlUkg=",
|
|
90
94
|
"url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
|
|
91
95
|
},
|
|
92
96
|
{
|
|
@@ -106,7 +110,7 @@
|
|
|
106
110
|
"url": "_content/MindExecution.Shared/js/mind-map-glow-shader.js"
|
|
107
111
|
},
|
|
108
112
|
{
|
|
109
|
-
"hash": "sha256-
|
|
113
|
+
"hash": "sha256-yU6+cCQmi+iqU9PH1W17Kpgbn4t9MUsgMSRbByeJebw=",
|
|
110
114
|
"url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
|
|
111
115
|
},
|
|
112
116
|
{
|
|
@@ -114,7 +118,7 @@
|
|
|
114
118
|
"url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
|
|
115
119
|
},
|
|
116
120
|
{
|
|
117
|
-
"hash": "sha256-
|
|
121
|
+
"hash": "sha256-I07Vo+UaV2ej2xI0H0Rd3t6oagbgg1Yhime3SMHEDiU=",
|
|
118
122
|
"url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
|
|
119
123
|
},
|
|
120
124
|
{
|
|
@@ -134,7 +138,7 @@
|
|
|
134
138
|
"url": "_content/MindExecution.Shared/js/mind-map-node-search-worker.js"
|
|
135
139
|
},
|
|
136
140
|
{
|
|
137
|
-
"hash": "sha256-
|
|
141
|
+
"hash": "sha256-X5aI8spIp8PTAdgUHXT84MNn5jboAkTAPkvqroiKwZ8=",
|
|
138
142
|
"url": "_content/MindExecution.Shared/js/mind-map-nodes.js"
|
|
139
143
|
},
|
|
140
144
|
{
|
|
@@ -150,7 +154,7 @@
|
|
|
150
154
|
"url": "_content/MindExecution.Shared/js/mind-map-object-manager.js.backup"
|
|
151
155
|
},
|
|
152
156
|
{
|
|
153
|
-
"hash": "sha256-
|
|
157
|
+
"hash": "sha256-5DDlGOvO+rSwX72WkOOoK+XnOQn376q7XozwyQYV54s=",
|
|
154
158
|
"url": "_content/MindExecution.Shared/js/mind-map-pipeline.js"
|
|
155
159
|
},
|
|
156
160
|
{
|
|
@@ -194,7 +198,7 @@
|
|
|
194
198
|
"url": "_content/MindExecution.Shared/js/plan-master.js"
|
|
195
199
|
},
|
|
196
200
|
{
|
|
197
|
-
"hash": "sha256-
|
|
201
|
+
"hash": "sha256-bhxag0Uf6KL+a8LEeYLS3UvXAkh4nTflb7xcxtbIl+U=",
|
|
198
202
|
"url": "_content/MindExecution.Shared/js/renderers/CSS3DRenderer.js"
|
|
199
203
|
},
|
|
200
204
|
{
|
|
@@ -422,44 +426,44 @@
|
|
|
422
426
|
"url": "_framework/MimeMapping.og9ys58ylm.dll"
|
|
423
427
|
},
|
|
424
428
|
{
|
|
425
|
-
"hash": "sha256-
|
|
426
|
-
"url": "_framework/MindExecution.Core.
|
|
429
|
+
"hash": "sha256-Ru09H3PbP8MVKjeEE5FLXnXm2LVpv421tfgliW/vN+M=",
|
|
430
|
+
"url": "_framework/MindExecution.Core.mswl4wlkm9.dll"
|
|
427
431
|
},
|
|
428
432
|
{
|
|
429
|
-
"hash": "sha256-
|
|
430
|
-
"url": "_framework/MindExecution.Kernel.
|
|
433
|
+
"hash": "sha256-azMSlIBQcPcmVNI3eX+WxSnlXUQ/j/NDCtOKDp++owk=",
|
|
434
|
+
"url": "_framework/MindExecution.Kernel.zupeldfptg.dll"
|
|
431
435
|
},
|
|
432
436
|
{
|
|
433
|
-
"hash": "sha256-
|
|
434
|
-
"url": "_framework/MindExecution.Plugins.Admin.
|
|
437
|
+
"hash": "sha256-eQ9YVFpetThf85xrcPIDWGPIHp2E3kzSVYmghtRFDFo=",
|
|
438
|
+
"url": "_framework/MindExecution.Plugins.Admin.hq0vyqnqtn.dll"
|
|
435
439
|
},
|
|
436
440
|
{
|
|
437
|
-
"hash": "sha256-
|
|
438
|
-
"url": "_framework/MindExecution.Plugins.Business.
|
|
441
|
+
"hash": "sha256-EXxUy+DRMR51sHo+Q/QYuTh2Oz7/wxeKGhADP07KWcw=",
|
|
442
|
+
"url": "_framework/MindExecution.Plugins.Business.pucw3o7rno.dll"
|
|
439
443
|
},
|
|
440
444
|
{
|
|
441
|
-
"hash": "sha256-
|
|
442
|
-
"url": "_framework/MindExecution.Plugins.Concept.
|
|
445
|
+
"hash": "sha256-aTh3k+ncbMY0UZ0EWHp19SSWyHKIv8/MUW6AqDDmWW8=",
|
|
446
|
+
"url": "_framework/MindExecution.Plugins.Concept.557tzzkrrx.dll"
|
|
443
447
|
},
|
|
444
448
|
{
|
|
445
|
-
"hash": "sha256-
|
|
446
|
-
"url": "_framework/MindExecution.Plugins.Directory.
|
|
449
|
+
"hash": "sha256-KXobDyCfuJf/4WJf7DAJaBPanfkPZHkdrCiSWwefotg=",
|
|
450
|
+
"url": "_framework/MindExecution.Plugins.Directory.zh1ddg1fn6.dll"
|
|
447
451
|
},
|
|
448
452
|
{
|
|
449
|
-
"hash": "sha256-
|
|
450
|
-
"url": "_framework/MindExecution.Plugins.PlanMaster.
|
|
453
|
+
"hash": "sha256-vHnd6UzPOrh35E0y1VPsWGj+Jl+Ze2rM9c6SYb+grpM=",
|
|
454
|
+
"url": "_framework/MindExecution.Plugins.PlanMaster.0z9pzynpu9.dll"
|
|
451
455
|
},
|
|
452
456
|
{
|
|
453
|
-
"hash": "sha256
|
|
454
|
-
"url": "_framework/MindExecution.Plugins.YouTube.
|
|
457
|
+
"hash": "sha256-/q58KqYenDmVBAYkDcB/Frnz97E/69zjgE++VeKa2Ug=",
|
|
458
|
+
"url": "_framework/MindExecution.Plugins.YouTube.y8g77r54fa.dll"
|
|
455
459
|
},
|
|
456
460
|
{
|
|
457
|
-
"hash": "sha256-
|
|
458
|
-
"url": "_framework/MindExecution.Shared.
|
|
461
|
+
"hash": "sha256-KRyO57WBUyFvSyLnDWqpBoELgMoiC+d6lyBMU9qz8PQ=",
|
|
462
|
+
"url": "_framework/MindExecution.Shared.1ymsdbwid2.dll"
|
|
459
463
|
},
|
|
460
464
|
{
|
|
461
|
-
"hash": "sha256-
|
|
462
|
-
"url": "_framework/MindExecution.Web.
|
|
465
|
+
"hash": "sha256-57REdRLMDGVtyh6YhuvZe0XLVkNhrJHqLDnEDR45l9Q=",
|
|
466
|
+
"url": "_framework/MindExecution.Web.bb1txupuv0.dll"
|
|
463
467
|
},
|
|
464
468
|
{
|
|
465
469
|
"hash": "sha256-IsZJ91/OW+fHzNqIgEc7Y072ns8z9dGritiSyvR9Wgc=",
|
|
@@ -778,7 +782,7 @@
|
|
|
778
782
|
"url": "_framework/Websocket.Client.vapounvmnl.dll"
|
|
779
783
|
},
|
|
780
784
|
{
|
|
781
|
-
"hash": "sha256-
|
|
785
|
+
"hash": "sha256-y+apDynf1Lx2swoTt7EoIRlZ26seLNBsgZjBYUjkSc8=",
|
|
782
786
|
"url": "_framework/blazor.boot.json"
|
|
783
787
|
},
|
|
784
788
|
{
|
|
@@ -838,7 +842,7 @@
|
|
|
838
842
|
"url": "icon-512.png"
|
|
839
843
|
},
|
|
840
844
|
{
|
|
841
|
-
"hash": "sha256
|
|
845
|
+
"hash": "sha256-/9v1YExJbRhqbwfDeyeXT/IrmqGDhzowehpIIwAJc+c=",
|
|
842
846
|
"url": "index.html"
|
|
843
847
|
},
|
|
844
848
|
{
|