@luxonis/visualizer-protobuf 2.57.0 → 2.58.0
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/dist/{index-NeXqwiF7.js → index-1ad9mF-6.js} +1 -1
- package/dist/{index-BSkbbsBs.js → index-B7TpDVXX.js} +1 -1
- package/dist/{index-APJLEG3F.js → index-BAxUH3rx.js} +1 -1
- package/dist/{index-DT1L2GJv.js → index-BcQrfdBV.js} +1 -1
- package/dist/{index-BJKCsj7L.js → index-Bvqv79EN.js} +1 -1
- package/dist/{index-CJKBGyqg.js → index-C4GhcLZP.js} +1 -1
- package/dist/{index-D5NVzgfB.js → index-CKLrevxv.js} +48 -39
- package/dist/{index-BFLpoF0o.js → index-CN1nJB-l.js} +110 -1
- package/dist/{index-DhMY6_f0.js → index-CeMhPaGN.js} +1 -1
- package/dist/{index-BwcYZrXk.js → index-ClzK6yW2.js} +1 -1
- package/dist/{index-CSdP9WuF.js → index-D1bBBSN8.js} +1 -1
- package/dist/{index-B_v4vYFq.js → index-DKlcFX6d.js} +1 -1
- package/dist/{index-DUahEwlc.js → index-DROES6Ao.js} +1 -1
- package/dist/{index-BkD-h35E.js → index-DUpvO59u.js} +1 -1
- package/dist/{index-DszCF1JN.js → index-DeEszsqb.js} +2 -2
- package/dist/{index-xOnGLFPm.js → index-IhfRddgY.js} +1 -1
- package/dist/{index-BQTr3SzH.js → index-JyyEtFg5.js} +1 -1
- package/dist/{index-BEytZkov.js → index-XibaEjom.js} +1 -1
- package/dist/{index-Chj4qsE1.js → index-j4EekEtI.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/src/components/PanelToolbar.d.ts.map +1 -1
- package/dist/lib/src/components/PanelToolbar.js +7 -4
- package/dist/lib/src/components/PanelToolbar.js.map +1 -1
- package/dist/lib/src/output.css +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/CameraStateSettings.d.ts +2 -0
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/CameraStateSettings.d.ts.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/CameraStateSettings.js +109 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/CameraStateSettings.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import React__default, { useReducer, useRef, useCallback, useLayoutEffect, Compo
|
|
|
3
3
|
import ReactDOM__default from 'react-dom';
|
|
4
4
|
import { Z as isSymbol, $ as toString, a0 as keys, a1 as getSymbols$1, a2 as stubArray, a3 as arrayPush, a4 as baseGetAllKeys, g as getTag, a5 as getAllKeys, k as baseGet, c as baseIteratee, j as castPath, t as toKey, a6 as arrayMap$1, a7 as baseUniq, b as baseFlatten, a8 as useMustNotChange, a9 as useCurrentLayoutActions, aa as useCurrentLayoutSelector, r as reportError, A as AppError, L as Logger, u as useGuaranteedContext, ab as usePanelMosaicId, ac as useSelectedPanels, ad as PANEL_TITLE_CONFIG_KEY, ae as noop$4, o as getPanelTypeFromId, M as useShallowMemo, T as TAB_PANEL_TYPE, J as filterMap, d as dist$2, af as useAppConfiguration, ag as useValueChangedDebugLog, V as typescript, ah as useJsonTreeTheme } from './depth-CJRDcPfJ.js';
|
|
5
5
|
import { createStore, useStore } from 'zustand';
|
|
6
|
-
import { g as generateUtilityClass, c as createAggregator, f as flatRest, b as baseSet, A as AnalyticsContext, P as PropTypes, E as ErrorDisplay, S as Stack$1, m as makeStyles$1, _ as _extends$1, W as WorkspaceContext, u as useAnalytics, a as AppEvent, L as LeftSidebarItemKeys, R as RightSidebarItemKeys, d as useTranslation, e as usePanelCatalog, h as EmptyState, i as isEmpty, j as PanelContext, k as PanelCatalogContext, l as usePanelStateStore, n as useDefaultPanelTitle, o as useWorkspaceStore, p as WorkspaceStoreSelectors, q as difference, r as usePanelContext, s as useMessagePipeline, v as v4, t as useHoverValue, w as useSetHoverValue, x as useClearHoverValue, y as useMessagePipelineGetter, z as usePanelSettingsTreeUpdate, B as PlayerCapabilities, C as assertNever, D as PlayerPresence, F as isEqual, G as isDesktopApp, H as createTheme, I as propTypesExports, J as DEFAULT_CAMERA_STATE$1, K as format$1, M as z, N as serializeError, O as stringify$1, Q as createIntl, T as createIntlCache } from './index-
|
|
6
|
+
import { g as generateUtilityClass, c as createAggregator, f as flatRest, b as baseSet, A as AnalyticsContext, P as PropTypes, E as ErrorDisplay, S as Stack$1, m as makeStyles$1, _ as _extends$1, W as WorkspaceContext, u as useAnalytics, a as AppEvent, L as LeftSidebarItemKeys, R as RightSidebarItemKeys, d as useTranslation, e as usePanelCatalog, h as EmptyState, i as isEmpty, j as PanelContext, k as PanelCatalogContext, l as usePanelStateStore, n as useDefaultPanelTitle, o as useWorkspaceStore, p as WorkspaceStoreSelectors, q as difference, r as usePanelContext, s as useMessagePipeline, v as v4, t as useHoverValue, w as useSetHoverValue, x as useClearHoverValue, y as useMessagePipelineGetter, z as usePanelSettingsTreeUpdate, B as PlayerCapabilities, C as assertNever, D as PlayerPresence, F as isEqual, G as isDesktopApp, H as createTheme, I as propTypesExports, J as DEFAULT_CAMERA_STATE$1, K as format$1, M as z, N as serializeError, O as stringify$1, Q as createIntl, T as createIntlCache } from './index-CKLrevxv.js';
|
|
7
7
|
import { MosaicDragType, MosaicContext, MosaicWindowContext, getOtherBranch, getNodeAtPath } from 'react-mosaic-component';
|
|
8
8
|
import { g as getDefaultExportFromCjs, c as commonjsGlobal, d as getAugmentedNamespace } from './protobuf-B55JS-Px.js';
|
|
9
9
|
import { Link, Button, alpha, IconButton, Card, CardActionArea, CardMedia, CardContent, Typography, Container, Tooltip, Fade, ListItem, ListItemButton, ListItemText, List, TextField, InputAdornment, Popper, Grow, Paper, ClickAwayListener, Menu, MenuItem, Divider, buttonClasses, Backdrop, Chip, useTheme, alertClasses, darken, lighten, inputBaseClasses, autocompleteClasses, inputClasses, Checkbox, dialogActionsClasses, filledInputClasses, inputAdornmentClasses, listSubheaderClasses, selectClasses, tableCellClasses, ThemeProvider as ThemeProvider$1, SvgIcon, tabsClasses as tabsClasses$1, tabClasses, Tabs, Tab, ListItemIcon } from '@mui/material';
|
|
@@ -72634,6 +72634,14 @@ class CameraStateSettings extends SceneExtension {
|
|
|
72634
72634
|
#isDraggingForRotation = false;
|
|
72635
72635
|
#lastMouseX = 0;
|
|
72636
72636
|
#lastMouseY = 0;
|
|
72637
|
+
|
|
72638
|
+
// Keyboard panning state
|
|
72639
|
+
#pressedKeys = new Set();
|
|
72640
|
+
// Orbiting state
|
|
72641
|
+
#orbitActive = false;
|
|
72642
|
+
#orbitSpeedDegPerSec = 15; // degrees per second
|
|
72643
|
+
#orbitDirection = 1; // 1 or -1
|
|
72644
|
+
|
|
72637
72645
|
constructor(renderer, canvas, aspect) {
|
|
72638
72646
|
super("foxglove.CameraStateSettings", renderer);
|
|
72639
72647
|
this.renderer = renderer;
|
|
@@ -72673,7 +72681,17 @@ class CameraStateSettings extends SceneExtension {
|
|
|
72673
72681
|
this.#setDefaultCameraState(true);
|
|
72674
72682
|
});
|
|
72675
72683
|
const controls = this.#controls;
|
|
72684
|
+
// Track time between frames for consistent keyboard pan speed
|
|
72685
|
+
let lastTime = performance.now();
|
|
72676
72686
|
const animate = () => {
|
|
72687
|
+
const now = performance.now();
|
|
72688
|
+
const dt = Math.max(0, (now - lastTime) / 1000);
|
|
72689
|
+
lastTime = now;
|
|
72690
|
+
|
|
72691
|
+
// Apply keyboard panning before updating controls
|
|
72692
|
+
this.#applyKeyboardPan(dt);
|
|
72693
|
+
// Apply orbiting if enabled
|
|
72694
|
+
this.#updateOrbit(dt);
|
|
72677
72695
|
controls.update(1.0);
|
|
72678
72696
|
requestAnimationFrame(animate);
|
|
72679
72697
|
};
|
|
@@ -72686,6 +72704,11 @@ class CameraStateSettings extends SceneExtension {
|
|
|
72686
72704
|
canvas.addEventListener("mouseleave", this.#handleMouseLeave);
|
|
72687
72705
|
canvas.addEventListener("contextmenu", event => event.preventDefault());
|
|
72688
72706
|
|
|
72707
|
+
// Keyboard listeners (canvas must be focused)
|
|
72708
|
+
canvas.addEventListener("keydown", this.#handleKeyDown);
|
|
72709
|
+
canvas.addEventListener("keyup", this.#handleKeyUp);
|
|
72710
|
+
canvas.addEventListener("blur", this.#handleBlur);
|
|
72711
|
+
|
|
72689
72712
|
// CAMERA "ICON"
|
|
72690
72713
|
this.cameraIcon();
|
|
72691
72714
|
this.#setDefaultCameraState();
|
|
@@ -72799,12 +72822,26 @@ class CameraStateSettings extends SceneExtension {
|
|
|
72799
72822
|
window.removeEventListener("mouseup", this.#handleMouseUp);
|
|
72800
72823
|
this.#canvas.removeEventListener("mouseleave", this.#handleMouseLeave);
|
|
72801
72824
|
this.#canvas.removeEventListener("contextmenu", event => event.preventDefault());
|
|
72825
|
+
// Keyboard listeners cleanup
|
|
72826
|
+
this.#canvas.removeEventListener("keydown", this.#handleKeyDown);
|
|
72827
|
+
this.#canvas.removeEventListener("keyup", this.#handleKeyUp);
|
|
72828
|
+
this.#canvas.removeEventListener("blur", this.#handleBlur);
|
|
72802
72829
|
this.#controls.dispose();
|
|
72803
72830
|
if (this.#updateInterval) {
|
|
72804
72831
|
clearInterval(this.#updateInterval);
|
|
72805
72832
|
}
|
|
72806
72833
|
super.dispose();
|
|
72807
72834
|
}
|
|
72835
|
+
|
|
72836
|
+
// Public API to control orbiting externally
|
|
72837
|
+
startOrbit(speedDegPerSec, direction) {
|
|
72838
|
+
if (speedDegPerSec != undefined) this.#orbitSpeedDegPerSec = Math.max(0.1, speedDegPerSec);
|
|
72839
|
+
if (direction === 1 || direction === -1) this.#orbitDirection = direction;
|
|
72840
|
+
this.#orbitActive = true;
|
|
72841
|
+
}
|
|
72842
|
+
stopOrbit() {
|
|
72843
|
+
this.#orbitActive = false;
|
|
72844
|
+
}
|
|
72808
72845
|
settingsNodes() {
|
|
72809
72846
|
return [this.#cameraSettingsNode(), this.#frameSettingsNode()];
|
|
72810
72847
|
}
|
|
@@ -73069,6 +73106,8 @@ class CameraStateSettings extends SceneExtension {
|
|
|
73069
73106
|
}
|
|
73070
73107
|
};
|
|
73071
73108
|
#handleMouseDown = event => {
|
|
73109
|
+
// Ensure canvas has focus for keyboard input
|
|
73110
|
+
this.#canvas.focus();
|
|
73072
73111
|
if (event.button === 0) {
|
|
73073
73112
|
event.preventDefault();
|
|
73074
73113
|
this.#isDraggingForRotation = true;
|
|
@@ -73076,6 +73115,76 @@ class CameraStateSettings extends SceneExtension {
|
|
|
73076
73115
|
this.#lastMouseY = event.clientY;
|
|
73077
73116
|
}
|
|
73078
73117
|
};
|
|
73118
|
+
|
|
73119
|
+
// Keyboard input handlers and per-frame pan
|
|
73120
|
+
#handleKeyDown = event => {
|
|
73121
|
+
const key = event.key.toLowerCase();
|
|
73122
|
+
|
|
73123
|
+
// Orbit controls
|
|
73124
|
+
if (key === "o") {
|
|
73125
|
+
// Shift+O toggles and flips direction
|
|
73126
|
+
if (event.shiftKey) this.#orbitDirection *= -1;
|
|
73127
|
+
this.#orbitActive = !this.#orbitActive;
|
|
73128
|
+
event.preventDefault();
|
|
73129
|
+
return;
|
|
73130
|
+
}
|
|
73131
|
+
if (key === "q") {
|
|
73132
|
+
// slower
|
|
73133
|
+
this.#orbitSpeedDegPerSec = Math.max(0.5, this.#orbitSpeedDegPerSec * 0.8);
|
|
73134
|
+
event.preventDefault();
|
|
73135
|
+
return;
|
|
73136
|
+
}
|
|
73137
|
+
if (key === "e") {
|
|
73138
|
+
// faster
|
|
73139
|
+
this.#orbitSpeedDegPerSec = Math.min(360, this.#orbitSpeedDegPerSec * 1.25);
|
|
73140
|
+
event.preventDefault();
|
|
73141
|
+
return;
|
|
73142
|
+
}
|
|
73143
|
+
|
|
73144
|
+
// Panning keys
|
|
73145
|
+
if (key === "w" || key === "a" || key === "s" || key === "d" || key === "shift") {
|
|
73146
|
+
this.#pressedKeys.add(key);
|
|
73147
|
+
event.preventDefault();
|
|
73148
|
+
}
|
|
73149
|
+
};
|
|
73150
|
+
#handleKeyUp = event => {
|
|
73151
|
+
const key = event.key.toLowerCase();
|
|
73152
|
+
if (this.#pressedKeys.has(key)) {
|
|
73153
|
+
this.#pressedKeys.delete(key);
|
|
73154
|
+
event.preventDefault();
|
|
73155
|
+
}
|
|
73156
|
+
};
|
|
73157
|
+
#handleBlur = () => {
|
|
73158
|
+
this.#pressedKeys.clear();
|
|
73159
|
+
};
|
|
73160
|
+
#applyKeyboardPan(dt) {
|
|
73161
|
+
if (this.#pressedKeys.size === 0) return;
|
|
73162
|
+
|
|
73163
|
+
// Scale pan speed with camera distance for consistent feel
|
|
73164
|
+
const baseSpeed = Math.max(0.001, this.#controls.distance * 0.5); // world units per second
|
|
73165
|
+
const speed = this.#pressedKeys.has("shift") ? baseSpeed * 2 : baseSpeed;
|
|
73166
|
+
let dx = 0;
|
|
73167
|
+
let dy = 0;
|
|
73168
|
+
if (this.#pressedKeys.has("a")) dx -= speed * dt; // left
|
|
73169
|
+
if (this.#pressedKeys.has("d")) dx += speed * dt; // right
|
|
73170
|
+
if (this.#pressedKeys.has("w")) dy -= speed * dt; // up
|
|
73171
|
+
if (this.#pressedKeys.has("s")) dy += speed * dt; // down
|
|
73172
|
+
|
|
73173
|
+
if (dx !== 0 || dy !== 0) {
|
|
73174
|
+
// Truck pans along camera's local X/Y axes
|
|
73175
|
+
this.#controls.truck(dx, dy, false);
|
|
73176
|
+
}
|
|
73177
|
+
}
|
|
73178
|
+
#updateOrbit(dt) {
|
|
73179
|
+
if (!this.#orbitActive) return;
|
|
73180
|
+
const previousState = cloneDeep(this.renderer.config.cameraState);
|
|
73181
|
+
const delta = this.#orbitSpeedDegPerSec * dt * this.#orbitDirection;
|
|
73182
|
+
this.renderer.updateConfig(draft => {
|
|
73183
|
+
draft.cameraState.thetaOffset += delta;
|
|
73184
|
+
});
|
|
73185
|
+
this.#applyCameraStateToControls(this.renderer.config.cameraState, previousState);
|
|
73186
|
+
this.renderer.emit("cameraMove", this.renderer);
|
|
73187
|
+
}
|
|
73079
73188
|
#handleMouseMove = event => {
|
|
73080
73189
|
if (!this.#isDraggingForRotation) {
|
|
73081
73190
|
return;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a9 as ContextTracker, a1 as ExternalTokenizer, Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport, ai as parseMixed } from './index-
|
|
1
|
+
import { a9 as ContextTracker, a1 as ExternalTokenizer, Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport, ai as parseMixed } from './index-CKLrevxv.js';
|
|
2
2
|
import './depth-CJRDcPfJ.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a1 as ExternalTokenizer, Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, a6 as flatIndent, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport } from './index-
|
|
1
|
+
import { a1 as ExternalTokenizer, Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, a6 as flatIndent, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport } from './index-CKLrevxv.js';
|
|
2
2
|
import './depth-CJRDcPfJ.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Y as styleTags, Z as tags, ak as javascriptLanguage, $ as LRLanguage, a0 as LanguageSupport, a2 as LRParser, ah as html, ai as parseMixed, a1 as ExternalTokenizer } from './index-
|
|
1
|
+
import { Y as styleTags, Z as tags, ak as javascriptLanguage, $ as LRLanguage, a0 as LanguageSupport, a2 as LRParser, ah as html, ai as parseMixed, a1 as ExternalTokenizer } from './index-CKLrevxv.js';
|
|
2
2
|
import './depth-CJRDcPfJ.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a1 as ExternalTokenizer, a9 as ContextTracker, Y as styleTags, Z as tags, a2 as LRParser, aa as LocalTokenGroup, ab as snippetCompletion, a5 as syntaxTree, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, a6 as flatIndent, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport, a3 as ifNotIn, a4 as completeFromList, ac as IterMode, ad as NodeWeakMap } from './index-
|
|
1
|
+
import { a1 as ExternalTokenizer, a9 as ContextTracker, Y as styleTags, Z as tags, a2 as LRParser, aa as LocalTokenGroup, ab as snippetCompletion, a5 as syntaxTree, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, a6 as flatIndent, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport, a3 as ifNotIn, a4 as completeFromList, ac as IterMode, ad as NodeWeakMap } from './index-CKLrevxv.js';
|
|
2
2
|
import './depth-CJRDcPfJ.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as LRLanguage, U as indentNodeProp, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, Y as styleTags, Z as tags, a0 as LanguageSupport, a2 as LRParser } from './index-
|
|
1
|
+
import { $ as LRLanguage, U as indentNodeProp, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, Y as styleTags, Z as tags, a0 as LanguageSupport, a2 as LRParser } from './index-CKLrevxv.js';
|
|
2
2
|
import './depth-CJRDcPfJ.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a1 as ExternalTokenizer, a9 as ContextTracker, Y as styleTags, Z as tags, a2 as LRParser, a5 as syntaxTree, a3 as ifNotIn, $ as LRLanguage, U as indentNodeProp, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport, ac as IterMode, a4 as completeFromList, ad as NodeWeakMap, ab as snippetCompletion } from './index-
|
|
1
|
+
import { a1 as ExternalTokenizer, a9 as ContextTracker, Y as styleTags, Z as tags, a2 as LRParser, a5 as syntaxTree, a3 as ifNotIn, $ as LRLanguage, U as indentNodeProp, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport, ac as IterMode, a4 as completeFromList, ad as NodeWeakMap, ab as snippetCompletion } from './index-CKLrevxv.js';
|
|
2
2
|
import './depth-CJRDcPfJ.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ImagePanel } from './index-
|
|
1
|
+
import { ImagePanel } from './index-CN1nJB-l.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import 'react-dom';
|
|
4
4
|
import './depth-CJRDcPfJ.js';
|
|
@@ -8,7 +8,7 @@ import 'zustand';
|
|
|
8
8
|
import 'react-mosaic-component';
|
|
9
9
|
import '@mui/material';
|
|
10
10
|
import './isArrayLikeObject-Bytw9p-q.js';
|
|
11
|
-
import './index-
|
|
11
|
+
import './index-CKLrevxv.js';
|
|
12
12
|
import './comlink-DHMAu6X7.js';
|
|
13
13
|
import './utils-Hzt3wxhG.js';
|
|
14
14
|
import './FoxgloveServer-MMAMiqqQ.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { af as EditorView, ag as EditorSelection, $ as LRLanguage, Y as styleTags, Z as tags, U as indentNodeProp, a7 as delimitedIndent, X as foldNodeProp, a0 as LanguageSupport, a2 as LRParser, a5 as syntaxTree, ah as html, ai as parseMixed, a1 as ExternalTokenizer } from './index-
|
|
1
|
+
import { af as EditorView, ag as EditorSelection, $ as LRLanguage, Y as styleTags, Z as tags, U as indentNodeProp, a7 as delimitedIndent, X as foldNodeProp, a0 as LanguageSupport, a2 as LRParser, a5 as syntaxTree, ah as html, ai as parseMixed, a1 as ExternalTokenizer } from './index-CKLrevxv.js';
|
|
2
2
|
import './depth-CJRDcPfJ.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a1 as ExternalTokenizer, a9 as ContextTracker, Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, X as foldNodeProp, a8 as foldInside, U as indentNodeProp, V as continuedIndent, ae as defineCSSCompletionSource, a0 as LanguageSupport } from './index-
|
|
1
|
+
import { a1 as ExternalTokenizer, a9 as ContextTracker, Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, X as foldNodeProp, a8 as foldInside, U as indentNodeProp, V as continuedIndent, ae as defineCSSCompletionSource, a0 as LanguageSupport } from './index-CKLrevxv.js';
|
|
2
2
|
import './depth-CJRDcPfJ.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Y as styleTags, Z as tags, $ as LRLanguage, a0 as LanguageSupport, a2 as LRParser, aa as LocalTokenGroup, ah as html, ai as parseMixed, ak as javascriptLanguage } from './index-
|
|
1
|
+
import { Y as styleTags, Z as tags, $ as LRLanguage, a0 as LanguageSupport, a2 as LRParser, aa as LocalTokenGroup, ah as html, ai as parseMixed, ak as javascriptLanguage } from './index-CKLrevxv.js';
|
|
2
2
|
import './depth-CJRDcPfJ.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Y as styleTags, Z as tags, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, X as foldNodeProp, a8 as foldInside, ae as defineCSSCompletionSource, a0 as LanguageSupport, a2 as LRParser, a1 as ExternalTokenizer } from './index-
|
|
1
|
+
import { Y as styleTags, Z as tags, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, X as foldNodeProp, a8 as foldInside, ae as defineCSSCompletionSource, a0 as LanguageSupport, a2 as LRParser, a1 as ExternalTokenizer } from './index-CKLrevxv.js';
|
|
2
2
|
import './depth-CJRDcPfJ.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { au as FrameStore, ao as ImagePanel, an as PanelLayout, ap as PointCloudPanel, al as VisualizerConnection, am as VisualizerContext, ar as globalDecodeMetricsManager, aq as globalInputEventMetricsManager, as as globalRenderMetricsManager, at as globalThroughputMetricsManager } from './index-
|
|
1
|
+
export { au as FrameStore, ao as ImagePanel, an as PanelLayout, ap as PointCloudPanel, al as VisualizerConnection, am as VisualizerContext, ar as globalDecodeMetricsManager, aq as globalInputEventMetricsManager, as as globalRenderMetricsManager, at as globalThroughputMetricsManager } from './index-CKLrevxv.js';
|
|
2
2
|
export { S as getDistanceFromDepthDataForOffset } from './depth-CJRDcPfJ.js';
|
|
3
3
|
import './comlink-DHMAu6X7.js';
|
|
4
4
|
import './utils-Hzt3wxhG.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,eAAe,CAAC;AA6BvB,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,YAAY,CAAC;AAI5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"PanelToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,eAAe,CAAC;AA6BvB,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,YAAY,CAAC;AAI5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,sCAAsC,CAAC;AA0N9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,CAAC;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2UpD,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
3
3
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
4
4
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
5
5
|
import "../output.css";
|
|
6
|
-
import { ArrowDownIcon, ArrowUpIcon, Button, CrossIcon, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Flex, FullscreenIcon, HelpIcon, Icon, Label, MoreMenuIcon, NormalText, SubHeader, Tooltip } from "@luxonis/common-fe-components";
|
|
6
|
+
import { ArrowDownIcon, ArrowUpIcon, Button, CrossIcon, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Flex, FullscreenIcon, HelpIcon, Icon, Label, MoreMenuIcon, NormalText, SubHeader, Tooltip, } from "@luxonis/common-fe-components";
|
|
7
7
|
import { CiFilter } from "react-icons/ci";
|
|
8
8
|
import { FaCaretDown, FaCaretUp } from "react-icons/fa";
|
|
9
9
|
import { ImCheckboxChecked, ImCheckboxUnchecked } from "react-icons/im";
|
|
@@ -12,7 +12,10 @@ import { useDetections } from "./Panel.js";
|
|
|
12
12
|
import { createEventLoopDelaySampler } from "./measure-event-loop-delay";
|
|
13
13
|
import { useConnections } from "../context/ConnectionsProvider.js";
|
|
14
14
|
import "@luxonis/common-fe-components/styles";
|
|
15
|
-
import { constructKeyForTopicRenderMetrics, globalInputEventMetricsManager, globalRenderMetricsManager } from "../utils/metrics-manager";
|
|
15
|
+
import { constructKeyForTopicRenderMetrics, globalInputEventMetricsManager, globalRenderMetricsManager, } from "../utils/metrics-manager";
|
|
16
|
+
function PointCloudPanelInstructions() {
|
|
17
|
+
return (_jsxs(_Fragment, { children: [_jsx(Label, { text: "To move camera:" }), _jsxs("ul", { children: [_jsxs("li", { children: [_jsx("b", { className: "font-semibold", children: "Scroll:" }), " Zoom In and Out"] }), _jsxs("li", { children: [_jsx("b", { className: "font-semibold", children: "Left-click + Drag:" }), " Rotate Camera"] }), _jsxs("li", { children: [_jsx("b", { className: "font-semibold", children: "Right-click + Drag:" }), " Move Camera (X and Y axes)"] }), _jsxs("li", { children: [_jsx("b", { className: "font-semibold", children: "WASD:" }), " Pan Camera"] }), _jsxs("li", { children: [_jsx("b", { className: "font-semibold", children: "SHIFT+WASD:" }), " Pan Camera (Faster)"] }), _jsxs("li", { children: [_jsx("b", { className: "font-semibold", children: "O:" }), " Orbit Camera"] }), _jsxs("li", { children: [_jsx("b", { className: "font-semibold", children: "SHIFT+O:" }), " Orbit Camera (Opposite Direction)"] })] }), _jsx(Label, { text: "While orbiting:" }), _jsxs("ul", { children: [_jsxs("li", { children: [_jsx("b", { className: "font-semibold", children: "Q:" }), " Slow Down"] }), _jsxs("li", { children: [_jsx("b", { className: "font-semibold", children: "E:" }), " Speed Up"] })] })] }));
|
|
18
|
+
}
|
|
16
19
|
const METRICS_UPDATE_INTERVAL = 500;
|
|
17
20
|
function PanelToolbarMetrics({ targetFps, metrics, inDropdown, topic, isPointcloud, }) {
|
|
18
21
|
const [renderMetricsKey, annotationsMetricsKey] = React.useMemo(() => {
|
|
@@ -139,7 +142,7 @@ export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations =
|
|
|
139
142
|
const wrapperRef = React.useRef(null);
|
|
140
143
|
const wrapperBreakpointRef = React.useRef(null);
|
|
141
144
|
const parentContainer = wrapperBreakpointRef.current ?? wrapperRef.current ?? document.body;
|
|
142
|
-
return (_jsx(Flex, { direction: "row", gap: "xs", align: "center", justify: "space-between", className: "px-4 bg-white", ref: wrapperRef, children: _jsxs(Flex, { direction: "row", gap: "xs", align: "center", justify: touchesBreakpoint ? "space-between" : "start", width: "full", paddingY: "xs", children: [_jsxs(Flex, { width: "fit", gap: "xxs", className: "flex-col xl:flex-row items-start xl:items-end", children: [_jsx(SubHeader, { text: name, className: "whitespace-nowrap text-[20px]/[20px]" }), resolution && (_jsx(Label, { text: `(${resolution})`, className: "text-[14px]/[14px] xl:pb-[2px]" }))] }), touchesBreakpoint ? (_jsxs(Flex, { direction: "row", gap: "xs", align: "center", children: [actions, _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { icon: MoreMenuIcon, variant: "outline", colorVariant: "white", size: "sm" }) }), _jsxs(DropdownMenuContent, { ref: wrapperBreakpointRef, children: [_jsx(PanelToolbarMetrics, { targetFps: targetFps, metrics: metrics, topic: topic, inDropdown: true, isPointcloud: kind === "pointCloud" }), kind === "pointCloud" && (_jsx(Tooltip, { parentContainer: parentContainer, side: "bottom", content:
|
|
145
|
+
return (_jsx(Flex, { direction: "row", gap: "xs", align: "center", justify: "space-between", className: "px-4 bg-white", ref: wrapperRef, children: _jsxs(Flex, { direction: "row", gap: "xs", align: "center", justify: touchesBreakpoint ? "space-between" : "start", width: "full", paddingY: "xs", children: [_jsxs(Flex, { width: "fit", gap: "xxs", className: "flex-col xl:flex-row items-start xl:items-end", children: [_jsx(SubHeader, { text: name, className: "whitespace-nowrap text-[20px]/[20px]" }), resolution && (_jsx(Label, { text: `(${resolution})`, className: "text-[14px]/[14px] xl:pb-[2px]" }))] }), touchesBreakpoint ? (_jsxs(Flex, { direction: "row", gap: "xs", align: "center", children: [actions, _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { icon: MoreMenuIcon, variant: "outline", colorVariant: "white", size: "sm" }) }), _jsxs(DropdownMenuContent, { ref: wrapperBreakpointRef, children: [_jsx(PanelToolbarMetrics, { targetFps: targetFps, metrics: metrics, topic: topic, inDropdown: true, isPointcloud: kind === "pointCloud" }), kind === "pointCloud" && (_jsx(Tooltip, { parentContainer: parentContainer, side: "bottom", content: _jsx(PointCloudPanelInstructions, {}), children: _jsx(DropdownMenuItem, { icon: HelpIcon, onClick: (e) => {
|
|
143
146
|
e.stopPropagation();
|
|
144
147
|
e.preventDefault();
|
|
145
148
|
}, cursor: "help", children: "Point Cloud Details" }) })), !disableAnnotations && kind === "image" && (_jsxs(DropdownMenuSub, { children: [_jsx(DropdownMenuSubTrigger, { disabled: detections.length === 0, style: { opacity: detections.length === 0 ? 0.5 : 1 }, children: "Annotations" }), _jsxs(DropdownMenuSubContent, { children: [detections.map((detection) => makeDetection(detection, { extra: false })), hasExtra && (_jsx(Button, { width: "full", paddingY: "xs", variant: "ghost", "aria-expanded": extraVisible ? "true" : undefined, onClick: () => {
|
|
@@ -152,6 +155,6 @@ export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations =
|
|
|
152
155
|
}, icon: extraVisible ? ArrowUpIcon : ArrowDownIcon, style: {
|
|
153
156
|
borderRadius: 4,
|
|
154
157
|
}, children: extraVisible ? "Less" : "More" })), extraVisible &&
|
|
155
|
-
detections.map((detection) => makeDetection(detection, { extra: true }))] })] })), kind === "pointCloud" && (_jsx(Flex, { children: _jsx(Tooltip, { parentContainer: parentContainer, side: "bottom", content:
|
|
158
|
+
detections.map((detection) => makeDetection(detection, { extra: true }))] })] })), kind === "pointCloud" && (_jsx(Flex, { children: _jsx(Tooltip, { parentContainer: parentContainer, side: "bottom", content: _jsx(PointCloudPanelInstructions, {}), children: _jsx(Button, { icon: HelpIcon, variant: "outline", colorVariant: "white", size: "sm", className: "text-gray-700" }) }) })), _jsx(Tooltip, { content: "Move Panel Up", parentContainer: parentContainer, children: _jsx(Button, { icon: FaCaretUp, variant: "outline", colorVariant: "white", size: "sm", disabled: !canMoveUp, onClick: moveUp }) }), _jsx(Tooltip, { content: "Move Panel Down", parentContainer: parentContainer, children: _jsx(Button, { icon: FaCaretDown, variant: "outline", colorVariant: "white", size: "sm", disabled: !canMoveDown, onClick: moveDown }) }), toggleFullscreen && (_jsx(Tooltip, { content: "Fullscreen", parentContainer: parentContainer, children: _jsx(Button, { icon: FullscreenIcon, variant: "outline", colorVariant: "white", size: "sm", onClick: toggleFullscreen }) })), actions, _jsx(Tooltip, { content: "Close Stream", parentContainer: parentContainer, children: _jsx(Button, { icon: CrossIcon, variant: "outline", colorVariant: "white", size: "sm", onClick: () => toggleTopic?.(name) }) })] })] }))] }) }));
|
|
156
159
|
};
|
|
157
160
|
//# sourceMappingURL=PanelToolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelToolbar.js","sourceRoot":"","sources":["../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PanelToolbar.js","sourceRoot":"","sources":["../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"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"}
|
package/dist/lib/src/output.css
CHANGED
package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/CameraStateSettings.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export declare class CameraStateSettings extends SceneExtension implements ICame
|
|
|
13
13
|
constructor(renderer: IRenderer, canvas: HTMLCanvasElement, aspect: number);
|
|
14
14
|
private cameraIcon;
|
|
15
15
|
dispose(): void;
|
|
16
|
+
startOrbit(speedDegPerSec?: number, direction?: 1 | -1): void;
|
|
17
|
+
stopOrbit(): void;
|
|
16
18
|
settingsNodes(): SettingsTreeEntry[];
|
|
17
19
|
handleSettingsAction: (action: SettingsTreeAction) => void;
|
|
18
20
|
startFrame(currentTime: bigint, renderFrameId: AnyFrameId, fixedFrameId: AnyFrameId): void;
|
package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/CameraStateSettings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CameraStateSettings.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/studio-base/src/panels/ThreeDeeRender/renderables/CameraStateSettings.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wEAAwE,CAAC;AAC7G,OAAO,EACL,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"CameraStateSettings.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/studio-base/src/panels/ThreeDeeRender/renderables/CameraStateSettings.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wEAAwE,CAAC;AAC7G,OAAO,EACL,KAAK,UAAU,EAGf,KAAK,IAAI,EAEV,MAAM,wDAAwD,CAAC;AAEhE,OAAO,KAAK,EAAc,SAAS,EAAkB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,WAAW,CAAC;AAgBnE,qBAAa,mBACb,SAAQ,cACR,YAAW,cAAc;;IAEvB,SAAkB,QAAQ,EAAE,SAAS,CAAC;IAO/B,oBAAoB,EAAE,IAAI,GAAG,SAAS,CAAC;gBA0B5C,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,MAAM;IA8KhB,OAAO,CAAC,UAAU;IA8CF,OAAO,IAAI,IAAI;IA4BxB,UAAU,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;IAM7D,SAAS,IAAI,IAAI;IAIR,aAAa,IAAI,iBAAiB,EAAE;IAoJpC,oBAAoB,WAAY,kBAAkB,KAAG,IAAI,CA8EvE;IAEc,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,UAAU,EACzB,YAAY,EAAE,UAAU,GACvB,IAAI;IA6UA,eAAe,IAAI,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,kBAAkB;IAMrE,YAAY,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,IAAI;IAMA,cAAc,IAAI,WAAW;IAI7B,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAmFtD"}
|
package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/CameraStateSettings.js
CHANGED
|
@@ -5,7 +5,7 @@ import { t } from "i18next";
|
|
|
5
5
|
import * as _ from "lodash-es";
|
|
6
6
|
import * as THREE from "three";
|
|
7
7
|
import CameraControls from "camera-controls";
|
|
8
|
-
import { CoordinateFrame, makePose
|
|
8
|
+
import { CoordinateFrame, makePose } from "@foxglove/studio-base/panels/ThreeDeeRender/transforms";
|
|
9
9
|
import { SceneExtension } from "../SceneExtension";
|
|
10
10
|
import { DEFAULT_CAMERA_STATE } from "../camera";
|
|
11
11
|
import { PRECISION_DEGREES, PRECISION_DISTANCE } from "../settings";
|
|
@@ -35,6 +35,12 @@ export class CameraStateSettings extends SceneExtension {
|
|
|
35
35
|
#isDraggingForRotation = false;
|
|
36
36
|
#lastMouseX = 0;
|
|
37
37
|
#lastMouseY = 0;
|
|
38
|
+
// Keyboard panning state
|
|
39
|
+
#pressedKeys = new Set();
|
|
40
|
+
// Orbiting state
|
|
41
|
+
#orbitActive = false;
|
|
42
|
+
#orbitSpeedDegPerSec = 15; // degrees per second
|
|
43
|
+
#orbitDirection = 1; // 1 or -1
|
|
38
44
|
constructor(renderer, canvas, aspect) {
|
|
39
45
|
super("foxglove.CameraStateSettings", renderer);
|
|
40
46
|
this.renderer = renderer;
|
|
@@ -72,7 +78,16 @@ export class CameraStateSettings extends SceneExtension {
|
|
|
72
78
|
this.#setDefaultCameraState(true);
|
|
73
79
|
});
|
|
74
80
|
const controls = this.#controls;
|
|
81
|
+
// Track time between frames for consistent keyboard pan speed
|
|
82
|
+
let lastTime = performance.now();
|
|
75
83
|
const animate = () => {
|
|
84
|
+
const now = performance.now();
|
|
85
|
+
const dt = Math.max(0, (now - lastTime) / 1000);
|
|
86
|
+
lastTime = now;
|
|
87
|
+
// Apply keyboard panning before updating controls
|
|
88
|
+
this.#applyKeyboardPan(dt);
|
|
89
|
+
// Apply orbiting if enabled
|
|
90
|
+
this.#updateOrbit(dt);
|
|
76
91
|
controls.update(1.0);
|
|
77
92
|
requestAnimationFrame(animate);
|
|
78
93
|
};
|
|
@@ -84,6 +99,10 @@ export class CameraStateSettings extends SceneExtension {
|
|
|
84
99
|
window.addEventListener("mouseup", this.#handleMouseUp);
|
|
85
100
|
canvas.addEventListener("mouseleave", this.#handleMouseLeave);
|
|
86
101
|
canvas.addEventListener("contextmenu", (event) => event.preventDefault());
|
|
102
|
+
// Keyboard listeners (canvas must be focused)
|
|
103
|
+
canvas.addEventListener("keydown", this.#handleKeyDown);
|
|
104
|
+
canvas.addEventListener("keyup", this.#handleKeyUp);
|
|
105
|
+
canvas.addEventListener("blur", this.#handleBlur);
|
|
87
106
|
// CAMERA "ICON"
|
|
88
107
|
this.cameraIcon();
|
|
89
108
|
this.#setDefaultCameraState();
|
|
@@ -192,12 +211,27 @@ export class CameraStateSettings extends SceneExtension {
|
|
|
192
211
|
window.removeEventListener("mouseup", this.#handleMouseUp);
|
|
193
212
|
this.#canvas.removeEventListener("mouseleave", this.#handleMouseLeave);
|
|
194
213
|
this.#canvas.removeEventListener("contextmenu", (event) => event.preventDefault());
|
|
214
|
+
// Keyboard listeners cleanup
|
|
215
|
+
this.#canvas.removeEventListener("keydown", this.#handleKeyDown);
|
|
216
|
+
this.#canvas.removeEventListener("keyup", this.#handleKeyUp);
|
|
217
|
+
this.#canvas.removeEventListener("blur", this.#handleBlur);
|
|
195
218
|
this.#controls.dispose();
|
|
196
219
|
if (this.#updateInterval) {
|
|
197
220
|
clearInterval(this.#updateInterval);
|
|
198
221
|
}
|
|
199
222
|
super.dispose();
|
|
200
223
|
}
|
|
224
|
+
// Public API to control orbiting externally
|
|
225
|
+
startOrbit(speedDegPerSec, direction) {
|
|
226
|
+
if (speedDegPerSec != undefined)
|
|
227
|
+
this.#orbitSpeedDegPerSec = Math.max(0.1, speedDegPerSec);
|
|
228
|
+
if (direction === 1 || direction === -1)
|
|
229
|
+
this.#orbitDirection = direction;
|
|
230
|
+
this.#orbitActive = true;
|
|
231
|
+
}
|
|
232
|
+
stopOrbit() {
|
|
233
|
+
this.#orbitActive = false;
|
|
234
|
+
}
|
|
201
235
|
settingsNodes() {
|
|
202
236
|
return [this.#cameraSettingsNode(), this.#frameSettingsNode()];
|
|
203
237
|
}
|
|
@@ -477,6 +511,8 @@ export class CameraStateSettings extends SceneExtension {
|
|
|
477
511
|
}
|
|
478
512
|
};
|
|
479
513
|
#handleMouseDown = (event) => {
|
|
514
|
+
// Ensure canvas has focus for keyboard input
|
|
515
|
+
this.#canvas.focus();
|
|
480
516
|
if (event.button === 0) {
|
|
481
517
|
event.preventDefault();
|
|
482
518
|
this.#isDraggingForRotation = true;
|
|
@@ -484,6 +520,78 @@ export class CameraStateSettings extends SceneExtension {
|
|
|
484
520
|
this.#lastMouseY = event.clientY;
|
|
485
521
|
}
|
|
486
522
|
};
|
|
523
|
+
// Keyboard input handlers and per-frame pan
|
|
524
|
+
#handleKeyDown = (event) => {
|
|
525
|
+
const key = event.key.toLowerCase();
|
|
526
|
+
// Orbit controls
|
|
527
|
+
if (key === "o") {
|
|
528
|
+
// Shift+O toggles and flips direction
|
|
529
|
+
if (event.shiftKey)
|
|
530
|
+
this.#orbitDirection *= -1;
|
|
531
|
+
this.#orbitActive = !this.#orbitActive;
|
|
532
|
+
event.preventDefault();
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
if (key === "q") {
|
|
536
|
+
// slower
|
|
537
|
+
this.#orbitSpeedDegPerSec = Math.max(0.5, this.#orbitSpeedDegPerSec * 0.8);
|
|
538
|
+
event.preventDefault();
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
if (key === "e") {
|
|
542
|
+
// faster
|
|
543
|
+
this.#orbitSpeedDegPerSec = Math.min(360, this.#orbitSpeedDegPerSec * 1.25);
|
|
544
|
+
event.preventDefault();
|
|
545
|
+
return;
|
|
546
|
+
}
|
|
547
|
+
// Panning keys
|
|
548
|
+
if (key === "w" || key === "a" || key === "s" || key === "d" || key === "shift") {
|
|
549
|
+
this.#pressedKeys.add(key);
|
|
550
|
+
event.preventDefault();
|
|
551
|
+
}
|
|
552
|
+
};
|
|
553
|
+
#handleKeyUp = (event) => {
|
|
554
|
+
const key = event.key.toLowerCase();
|
|
555
|
+
if (this.#pressedKeys.has(key)) {
|
|
556
|
+
this.#pressedKeys.delete(key);
|
|
557
|
+
event.preventDefault();
|
|
558
|
+
}
|
|
559
|
+
};
|
|
560
|
+
#handleBlur = () => {
|
|
561
|
+
this.#pressedKeys.clear();
|
|
562
|
+
};
|
|
563
|
+
#applyKeyboardPan(dt) {
|
|
564
|
+
if (this.#pressedKeys.size === 0)
|
|
565
|
+
return;
|
|
566
|
+
// Scale pan speed with camera distance for consistent feel
|
|
567
|
+
const baseSpeed = Math.max(0.001, this.#controls.distance * 0.5); // world units per second
|
|
568
|
+
const speed = this.#pressedKeys.has("shift") ? baseSpeed * 2 : baseSpeed;
|
|
569
|
+
let dx = 0;
|
|
570
|
+
let dy = 0;
|
|
571
|
+
if (this.#pressedKeys.has("a"))
|
|
572
|
+
dx -= speed * dt; // left
|
|
573
|
+
if (this.#pressedKeys.has("d"))
|
|
574
|
+
dx += speed * dt; // right
|
|
575
|
+
if (this.#pressedKeys.has("w"))
|
|
576
|
+
dy -= speed * dt; // up
|
|
577
|
+
if (this.#pressedKeys.has("s"))
|
|
578
|
+
dy += speed * dt; // down
|
|
579
|
+
if (dx !== 0 || dy !== 0) {
|
|
580
|
+
// Truck pans along camera's local X/Y axes
|
|
581
|
+
this.#controls.truck(dx, dy, false);
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
#updateOrbit(dt) {
|
|
585
|
+
if (!this.#orbitActive)
|
|
586
|
+
return;
|
|
587
|
+
const previousState = _.cloneDeep(this.renderer.config.cameraState);
|
|
588
|
+
const delta = this.#orbitSpeedDegPerSec * dt * this.#orbitDirection;
|
|
589
|
+
this.renderer.updateConfig((draft) => {
|
|
590
|
+
draft.cameraState.thetaOffset += delta;
|
|
591
|
+
});
|
|
592
|
+
this.#applyCameraStateToControls(this.renderer.config.cameraState, previousState);
|
|
593
|
+
this.renderer.emit("cameraMove", this.renderer);
|
|
594
|
+
}
|
|
487
595
|
#handleMouseMove = (event) => {
|
|
488
596
|
if (!this.#isDraggingForRotation) {
|
|
489
597
|
return;
|