feat: implement spatial quick actions with follow camera

- Add userData.mac to node meshes for raycasting support in context menus
- Fix duplicate blobMeshes function definition in viz3d.js
- Fix typo: FeeddownPanel -> FeedbackPanel in quick-actions.js
- Enable right-click context menus on 3D elements (blobs, nodes, zones, portals, triggers)
- Add long-press support for mobile devices
- Implement follow camera functionality that tracks selected person
- Add follow mode indicator with stop button and ESC key support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jedarden 2026-04-09 23:02:54 -04:00
parent 6b22ba65ac
commit b9292db99f
7 changed files with 6 additions and 4 deletions

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
6d30c6341441df56c3d7d2cea37f4d31144eda47
6b22ba65acb3e583cdd7cb786d7104402f85a495

View file

@ -513,7 +513,7 @@
function markIncorrect(blob) {
if (window.FeedbackPanel) {
window.FeeddownPanel.markIncorrect(blob.id);
window.FeedbackPanel.markIncorrect(blob.id);
} else {
// Send feedback directly
fetch('/api/feedback', {

View file

@ -272,6 +272,9 @@ const Viz3D = (function () {
new THREE.MeshPhongMaterial({ color: col, emissive: col, emissiveIntensity: 0.35, shininess: 60 })
);
}
// Store MAC in userData for spatial quick actions raycasting
m.userData = m.userData || {};
m.userData.mac = n.mac;
_scene.add(m);
_nodeMeshes.set(n.mac, m);
}
@ -3200,7 +3203,6 @@ const Viz3D = (function () {
// Blobs
applyLocUpdate: applyLocUpdate,
getBlobs3D: function() { return _blobs3D; },
blobMeshes: function() { return _blobs3D; }, // alias for quick-actions
// View presets
setViewPreset: setViewPreset,