@luxonis/visualizer-protobuf 2.64.0 → 2.65.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-Bt8NKGgQ.js → index-1c6__YmG.js} +123 -62
- package/dist/{index-B7nNBAQK.js → index-4zBZhITl.js} +1 -1
- package/dist/{index-D7jkC67I.js → index-7qy5F51w.js} +1 -1
- package/dist/{index-fCMuSW-j.js → index-BKgrv32b.js} +1 -1
- package/dist/{index-BxkJ2Rkh.js → index-BTg1Juch.js} +1 -1
- package/dist/{index-B53S6byS.js → index-BaC6YOFz.js} +1 -1
- package/dist/{index-PCEpYVVD.js → index-Bc_qkAT2.js} +1 -1
- package/dist/{index-C2I0SvM_.js → index-BmFISqbo.js} +1 -1
- package/dist/{index-Dy0KZSfH.js → index-C1xd4eqI.js} +1 -1
- package/dist/{index-DvvaZvBj.js → index-Cc9XbP2A.js} +1 -1
- package/dist/{index-B1iI7RoB.js → index-D1VQYW7r.js} +1 -1
- package/dist/{index-CTUZw7U6.js → index-D7OE7wIR.js} +1 -1
- package/dist/{index-STYyVl4n.js → index-Dn_s4esG.js} +1 -1
- package/dist/{index-CJ0ouF_X.js → index-DyDtgl5_.js} +1 -1
- package/dist/{index-b8JQ8FbB.js → index-IOA4ZGmc.js} +1 -1
- package/dist/{index-BnLSHvn1.js → index-O7Hd0ZQa.js} +2 -2
- package/dist/{index-CuBQ8sfd.js → index-j9SA4AnC.js} +1 -1
- package/dist/{index-B86puxfC.js → index-rblj1gA1.js} +1 -1
- package/dist/{index-btWll_X8.js → index-ynJe1rwL.js} +20 -20
- package/dist/index.js +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.d.ts +1 -3
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.d.ts.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.js +108 -53
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.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-CgtekUia.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-ynJe1rwL.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';
|
|
@@ -31965,6 +31965,13 @@ function getFrameIdFromImage(image) {
|
|
|
31965
31965
|
return image.frame_id;
|
|
31966
31966
|
}
|
|
31967
31967
|
}
|
|
31968
|
+
function getTimestampFromImage(image) {
|
|
31969
|
+
if ("header" in image) {
|
|
31970
|
+
return image.header.stamp;
|
|
31971
|
+
} else {
|
|
31972
|
+
return image.timestamp;
|
|
31973
|
+
}
|
|
31974
|
+
}
|
|
31968
31975
|
|
|
31969
31976
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
31970
31977
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
@@ -32499,6 +32506,15 @@ function getAnnotationAtPath(message, path) {
|
|
|
32499
32506
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
32500
32507
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
32501
32508
|
|
|
32509
|
+
const syncToleranceSec = Number(localStorage.getItem('viewer-syncToleranceSec')) || 0.15; // maximum acceptable time difference for selecting a “closest” annotation.
|
|
32510
|
+
const maxStalenessSec = Number(localStorage.getItem('viewer-maxStalenessSec')) || 0.5; // how long we can hold the last older annotation if no better match is available.
|
|
32511
|
+
const hysteresisSec = Number(localStorage.getItem('viewer-hysteresisSec')) || 0.03; // how much “stickiness” we allow before switching candidates.
|
|
32512
|
+
|
|
32513
|
+
console.log("synchronization parameters:", {
|
|
32514
|
+
syncToleranceSec,
|
|
32515
|
+
maxStalenessSec,
|
|
32516
|
+
hysteresisSec
|
|
32517
|
+
});
|
|
32502
32518
|
// Have constants for the HUD items so that they don't need to be recreated and GCed every message
|
|
32503
32519
|
const WAITING_FOR_BOTH_HUD_ITEM = {
|
|
32504
32520
|
id: WAITING_FOR_BOTH_MESSAGES_HUD_ID,
|
|
@@ -32555,10 +32571,10 @@ class MessageHandler {
|
|
|
32555
32571
|
|
|
32556
32572
|
#onAnnotationReceivedEvent;
|
|
32557
32573
|
#annotationsFpsRefreshInterval = null;
|
|
32574
|
+
// Store a small buffer of recent annotations per topic with computed seconds timestamps
|
|
32558
32575
|
annotationsMap = new Map();
|
|
32559
|
-
|
|
32560
|
-
|
|
32561
|
-
ghostTimeoutMs = 1000;
|
|
32576
|
+
// Track last selected annotation per topic to add hysteresis and reduce flicker
|
|
32577
|
+
lastSelectedByTopic = new Map();
|
|
32562
32578
|
/**
|
|
32563
32579
|
*
|
|
32564
32580
|
* @param config - subset of ImageMode settings required for message handling
|
|
@@ -32570,6 +32586,17 @@ class MessageHandler {
|
|
|
32570
32586
|
annotationsByTopic: new Map()
|
|
32571
32587
|
};
|
|
32572
32588
|
this.availableAnnotationTopics = new Set();
|
|
32589
|
+
|
|
32590
|
+
// Set default values for synchronization to local storage if they're not already set
|
|
32591
|
+
if (localStorage.getItem('viewer-syncToleranceSec') === null) {
|
|
32592
|
+
localStorage.setItem('viewer-syncToleranceSec', syncToleranceSec.toString());
|
|
32593
|
+
}
|
|
32594
|
+
if (localStorage.getItem('viewer-maxStalenessSec') === null) {
|
|
32595
|
+
localStorage.setItem('viewer-maxStalenessSec', maxStalenessSec.toString());
|
|
32596
|
+
}
|
|
32597
|
+
if (localStorage.getItem('viewer-hysteresisSec') === null) {
|
|
32598
|
+
localStorage.setItem('viewer-hysteresisSec', hysteresisSec.toString());
|
|
32599
|
+
}
|
|
32573
32600
|
}
|
|
32574
32601
|
dispose() {
|
|
32575
32602
|
if (this.#annotationsFpsRefreshInterval) {
|
|
@@ -32598,54 +32625,60 @@ class MessageHandler {
|
|
|
32598
32625
|
this.handleImage(messageEvent, normalizeCompressedImage(messageEvent.message));
|
|
32599
32626
|
};
|
|
32600
32627
|
handleImage(message, image) {
|
|
32601
|
-
|
|
32628
|
+
this.lastImage = {
|
|
32602
32629
|
...message,
|
|
32603
32630
|
message: image
|
|
32604
32631
|
};
|
|
32605
|
-
this.lastImage = normalized;
|
|
32606
32632
|
this.#emitState();
|
|
32607
32633
|
}
|
|
32608
32634
|
handleCameraInfo = message => {
|
|
32609
|
-
|
|
32610
|
-
this.#lastReceivedMessages.cameraInfo = cameraInfo;
|
|
32635
|
+
this.#lastReceivedMessages.cameraInfo = normalizeCameraInfo(message.message);
|
|
32611
32636
|
this.#emitState();
|
|
32612
32637
|
};
|
|
32613
32638
|
handleAnnotations = messageEvent => {
|
|
32614
32639
|
const list = normalizeAnnotations(messageEvent.message, messageEvent.schemaName);
|
|
32615
|
-
const
|
|
32640
|
+
const arrivalSec = performance.now() / 1000;
|
|
32616
32641
|
if (list.length > 0 && messageEvent.topic) {
|
|
32617
32642
|
this.#onAnnotationReceivedEvent?.();
|
|
32618
|
-
|
|
32619
|
-
|
|
32620
|
-
|
|
32621
|
-
|
|
32622
|
-
|
|
32623
|
-
|
|
32624
|
-
|
|
32625
|
-
|
|
32643
|
+
|
|
32644
|
+
// Prefer timestamps embedded in the annotations themselves
|
|
32645
|
+
const stampTimes = [];
|
|
32646
|
+
for (const a of list) {
|
|
32647
|
+
const sec = a.stamp?.sec;
|
|
32648
|
+
const nsec = a.stamp?.nsec;
|
|
32649
|
+
if (typeof sec === "number" && typeof nsec === "number") {
|
|
32650
|
+
stampTimes.push(sec + nsec / 1e9);
|
|
32651
|
+
}
|
|
32652
|
+
}
|
|
32653
|
+
const timeSec = stampTimes.length > 0 ? Math.max(...stampTimes) : arrivalSec;
|
|
32654
|
+
const entry = {
|
|
32626
32655
|
annotation: {
|
|
32627
32656
|
originalMessage: messageEvent,
|
|
32628
32657
|
annotations: list
|
|
32629
32658
|
},
|
|
32630
|
-
|
|
32631
|
-
|
|
32659
|
+
timeSec,
|
|
32660
|
+
arrivalSec
|
|
32661
|
+
};
|
|
32662
|
+
const topic = messageEvent.topic;
|
|
32663
|
+
const buffer = this.annotationsMap.get(topic) ?? [];
|
|
32664
|
+
buffer.push(entry);
|
|
32665
|
+
const maxLen = 60;
|
|
32666
|
+
const retentionSec = 2;
|
|
32667
|
+
const cutoff = timeSec - retentionSec;
|
|
32668
|
+
const trimmed = buffer.filter(e => e.timeSec >= cutoff);
|
|
32669
|
+
while (trimmed.length > maxLen) {
|
|
32670
|
+
trimmed.shift();
|
|
32671
|
+
}
|
|
32672
|
+
this.annotationsMap.set(topic, trimmed);
|
|
32632
32673
|
}
|
|
32674
|
+
|
|
32675
|
+
// Always emit; render selection logic will pick appropriate annotations for the last image
|
|
32676
|
+
this.#emitState();
|
|
32633
32677
|
if (this.#config.synchronize === false) {
|
|
32634
|
-
this.#emitState();
|
|
32635
|
-
return;
|
|
32636
|
-
}
|
|
32637
|
-
if (list.length === 0 && messageEvent.topic) {
|
|
32638
|
-
for (const [topic, annotation] of this.ghostAnnotationsMap.entries()) {
|
|
32639
|
-
if (Math.abs(timestamp - annotation.timestamp) <= this.syncToleranceMs) {
|
|
32640
|
-
this.annotationsMap.set(topic, {
|
|
32641
|
-
annotation: annotation.annotation,
|
|
32642
|
-
timestamp
|
|
32643
|
-
});
|
|
32644
|
-
}
|
|
32645
|
-
}
|
|
32646
|
-
this.#emitState();
|
|
32647
32678
|
return;
|
|
32648
32679
|
}
|
|
32680
|
+
|
|
32681
|
+
// synchronized mode does selection in #getRenderState
|
|
32649
32682
|
};
|
|
32650
32683
|
setConfig(newConfig) {
|
|
32651
32684
|
let changed = false;
|
|
@@ -32688,6 +32721,9 @@ class MessageHandler {
|
|
|
32688
32721
|
this.#lastReceivedMessages = {
|
|
32689
32722
|
annotationsByTopic: new Map()
|
|
32690
32723
|
};
|
|
32724
|
+
this.annotationsMap.clear();
|
|
32725
|
+
this.lastSelectedByTopic.clear();
|
|
32726
|
+
this.lastImage = undefined;
|
|
32691
32727
|
this.#oldRenderState = undefined;
|
|
32692
32728
|
this.#emitState();
|
|
32693
32729
|
}
|
|
@@ -32727,40 +32763,65 @@ class MessageHandler {
|
|
|
32727
32763
|
image: this.lastImage,
|
|
32728
32764
|
annotationsByTopic: new Map()
|
|
32729
32765
|
};
|
|
32730
|
-
const
|
|
32731
|
-
|
|
32732
|
-
|
|
32733
|
-
|
|
32734
|
-
|
|
32735
|
-
|
|
32736
|
-
|
|
32737
|
-
|
|
32738
|
-
|
|
32739
|
-
|
|
32766
|
+
const imageTimestampSec = (() => {
|
|
32767
|
+
const stamp = getTimestampFromImage(this.lastImage.message);
|
|
32768
|
+
const sec = stamp?.sec;
|
|
32769
|
+
const nsec = stamp?.nsec;
|
|
32770
|
+
if (typeof sec === "number" && typeof nsec === "number") {
|
|
32771
|
+
return sec + nsec / 1e9;
|
|
32772
|
+
}
|
|
32773
|
+
return performance.now() / 1000;
|
|
32774
|
+
})();
|
|
32775
|
+
for (const [topic, buffer] of this.annotationsMap.entries()) {
|
|
32776
|
+
if (buffer.length === 0) continue;
|
|
32777
|
+
|
|
32778
|
+
// Prefer newest annotation older than the image within staleness window
|
|
32779
|
+
let preferred;
|
|
32780
|
+
for (let i = buffer.length - 1; i >= 0; i--) {
|
|
32781
|
+
const entry = buffer[i];
|
|
32782
|
+
const age = imageTimestampSec - entry.timeSec;
|
|
32783
|
+
if (age >= 0 && age <= maxStalenessSec) {
|
|
32784
|
+
preferred = entry;
|
|
32785
|
+
break;
|
|
32786
|
+
}
|
|
32740
32787
|
}
|
|
32741
32788
|
|
|
32742
|
-
//
|
|
32743
|
-
|
|
32744
|
-
|
|
32745
|
-
|
|
32746
|
-
|
|
32747
|
-
|
|
32748
|
-
|
|
32749
|
-
|
|
32750
|
-
|
|
32751
|
-
|
|
32752
|
-
|
|
32753
|
-
|
|
32754
|
-
|
|
32789
|
+
// If none older within staleness, fall back to closest within tolerance
|
|
32790
|
+
let fallback;
|
|
32791
|
+
let fallbackDelta = Number.POSITIVE_INFINITY;
|
|
32792
|
+
for (let i = 0; i < buffer.length; i++) {
|
|
32793
|
+
const entry = buffer[i];
|
|
32794
|
+
const delta = Math.abs(entry.timeSec - imageTimestampSec);
|
|
32795
|
+
if (delta < fallbackDelta) {
|
|
32796
|
+
fallback = entry;
|
|
32797
|
+
fallbackDelta = delta;
|
|
32798
|
+
}
|
|
32799
|
+
}
|
|
32800
|
+
let candidate = preferred ?? fallback;
|
|
32801
|
+
if (!candidate) continue;
|
|
32802
|
+
const candidateDelta = Math.abs(candidate.timeSec - imageTimestampSec);
|
|
32803
|
+
const candidateAge = imageTimestampSec - candidate.timeSec;
|
|
32804
|
+
const acceptable = preferred != undefined && candidateAge >= 0 && candidateAge <= maxStalenessSec || preferred == undefined && candidateDelta <= syncToleranceSec;
|
|
32805
|
+
const notFutureFar = candidate.timeSec <= imageTimestampSec + syncToleranceSec;
|
|
32806
|
+
if (!acceptable || !notFutureFar) {
|
|
32807
|
+
continue;
|
|
32808
|
+
}
|
|
32755
32809
|
|
|
32756
|
-
if
|
|
32757
|
-
|
|
32758
|
-
|
|
32759
|
-
|
|
32760
|
-
|
|
32761
|
-
|
|
32762
|
-
|
|
32810
|
+
// Hysteresis: if previous selection is very close and still valid, keep it to avoid flicker
|
|
32811
|
+
const prevTime = this.lastSelectedByTopic.get(topic);
|
|
32812
|
+
if (prevTime != undefined) {
|
|
32813
|
+
const prevEntry = buffer.find(e => Math.abs(e.timeSec - prevTime) < 1e-6);
|
|
32814
|
+
if (prevEntry) {
|
|
32815
|
+
const prevDelta = Math.abs(prevEntry.timeSec - imageTimestampSec);
|
|
32816
|
+
const prevAge = imageTimestampSec - prevEntry.timeSec;
|
|
32817
|
+
const prevValid = prevAge >= 0 && prevAge <= maxStalenessSec || prevDelta <= syncToleranceSec;
|
|
32818
|
+
if (prevValid && Math.abs(prevEntry.timeSec - candidate.timeSec) <= hysteresisSec) {
|
|
32819
|
+
candidate = prevEntry;
|
|
32820
|
+
}
|
|
32821
|
+
}
|
|
32763
32822
|
}
|
|
32823
|
+
state.annotationsByTopic.set(topic, candidate.annotation);
|
|
32824
|
+
this.lastSelectedByTopic.set(topic, candidate.timeSec);
|
|
32764
32825
|
}
|
|
32765
32826
|
return state;
|
|
32766
32827
|
}
|
|
@@ -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, 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, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport } from './index-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.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, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport } from './index-
|
|
1
|
+
import { Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, X as foldNodeProp, a8 as foldInside, a0 as LanguageSupport } from './index-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.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-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.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, 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 { 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-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -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-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.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-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.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-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -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-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.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-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -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, X as foldNodeProp, aj as bracketMatchingHandle, a0 as LanguageSupport, af as EditorView, a5 as syntaxTree, ag as EditorSelection } from './index-
|
|
1
|
+
import { a9 as ContextTracker, a1 as ExternalTokenizer, Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, X as foldNodeProp, aj as bracketMatchingHandle, a0 as LanguageSupport, af as EditorView, a5 as syntaxTree, ag as EditorSelection } from './index-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.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-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.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-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { U as indentNodeProp, V as continuedIndent, X as foldNodeProp, Y as styleTags, Z as tags, $ as LRLanguage, a0 as LanguageSupport, a1 as ExternalTokenizer, a2 as LRParser, a3 as ifNotIn, a4 as completeFromList, a5 as syntaxTree } from './index-
|
|
1
|
+
import { U as indentNodeProp, V as continuedIndent, X as foldNodeProp, Y as styleTags, Z as tags, $ as LRLanguage, a0 as LanguageSupport, a1 as ExternalTokenizer, a2 as LRParser, a3 as ifNotIn, a4 as completeFromList, a5 as syntaxTree } from './index-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.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-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.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-1c6__YmG.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import 'react-dom';
|
|
4
4
|
import './depth-CgtekUia.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-ynJe1rwL.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 { 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-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.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, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, ah as html, a0 as LanguageSupport, ai as parseMixed } from './index-
|
|
1
|
+
import { a1 as ExternalTokenizer, Y as styleTags, Z as tags, a2 as LRParser, $ as LRLanguage, U as indentNodeProp, V as continuedIndent, a7 as delimitedIndent, X as foldNodeProp, a8 as foldInside, ah as html, a0 as LanguageSupport, ai as parseMixed } from './index-ynJe1rwL.js';
|
|
2
2
|
import './depth-CgtekUia.js';
|
|
3
3
|
import './protobuf-B55JS-Px.js';
|
|
4
4
|
import 'protobufjs/minimal';
|
|
@@ -86796,7 +86796,7 @@ function legacy(parser) {
|
|
|
86796
86796
|
return new LanguageSupport(StreamLanguage.define(parser));
|
|
86797
86797
|
}
|
|
86798
86798
|
function sql$1(dialectName) {
|
|
86799
|
-
return import('./index-
|
|
86799
|
+
return import('./index-DyDtgl5_.js').then(m => m.sql({ dialect: m[dialectName] }));
|
|
86800
86800
|
}
|
|
86801
86801
|
/**
|
|
86802
86802
|
An array of language descriptions for known language packages.
|
|
@@ -86807,7 +86807,7 @@ const languages = [
|
|
|
86807
86807
|
name: "C",
|
|
86808
86808
|
extensions: ["c", "h", "ino"],
|
|
86809
86809
|
load() {
|
|
86810
|
-
return import('./index-
|
|
86810
|
+
return import('./index-j9SA4AnC.js').then(m => m.cpp());
|
|
86811
86811
|
}
|
|
86812
86812
|
}),
|
|
86813
86813
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -86815,7 +86815,7 @@ const languages = [
|
|
|
86815
86815
|
alias: ["cpp"],
|
|
86816
86816
|
extensions: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"],
|
|
86817
86817
|
load() {
|
|
86818
|
-
return import('./index-
|
|
86818
|
+
return import('./index-j9SA4AnC.js').then(m => m.cpp());
|
|
86819
86819
|
}
|
|
86820
86820
|
}),
|
|
86821
86821
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -86835,7 +86835,7 @@ const languages = [
|
|
|
86835
86835
|
name: "Go",
|
|
86836
86836
|
extensions: ["go"],
|
|
86837
86837
|
load() {
|
|
86838
|
-
return import('./index-
|
|
86838
|
+
return import('./index-D7OE7wIR.js').then(m => m.go());
|
|
86839
86839
|
}
|
|
86840
86840
|
}),
|
|
86841
86841
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -86850,7 +86850,7 @@ const languages = [
|
|
|
86850
86850
|
name: "Java",
|
|
86851
86851
|
extensions: ["java"],
|
|
86852
86852
|
load() {
|
|
86853
|
-
return import('./index-
|
|
86853
|
+
return import('./index-BTg1Juch.js').then(m => m.java());
|
|
86854
86854
|
}
|
|
86855
86855
|
}),
|
|
86856
86856
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -86866,7 +86866,7 @@ const languages = [
|
|
|
86866
86866
|
alias: ["json5"],
|
|
86867
86867
|
extensions: ["json", "map"],
|
|
86868
86868
|
load() {
|
|
86869
|
-
return import('./index-
|
|
86869
|
+
return import('./index-7qy5F51w.js').then(m => m.json());
|
|
86870
86870
|
}
|
|
86871
86871
|
}),
|
|
86872
86872
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -86880,14 +86880,14 @@ const languages = [
|
|
|
86880
86880
|
name: "LESS",
|
|
86881
86881
|
extensions: ["less"],
|
|
86882
86882
|
load() {
|
|
86883
|
-
return import('./index-
|
|
86883
|
+
return import('./index-Bc_qkAT2.js').then(m => m.less());
|
|
86884
86884
|
}
|
|
86885
86885
|
}),
|
|
86886
86886
|
/*@__PURE__*/LanguageDescription.of({
|
|
86887
86887
|
name: "Liquid",
|
|
86888
86888
|
extensions: ["liquid"],
|
|
86889
86889
|
load() {
|
|
86890
|
-
return import('./index-
|
|
86890
|
+
return import('./index-BaC6YOFz.js').then(m => m.liquid());
|
|
86891
86891
|
}
|
|
86892
86892
|
}),
|
|
86893
86893
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -86913,7 +86913,7 @@ const languages = [
|
|
|
86913
86913
|
name: "PHP",
|
|
86914
86914
|
extensions: ["php", "php3", "php4", "php5", "php7", "phtml"],
|
|
86915
86915
|
load() {
|
|
86916
|
-
return import('./index-
|
|
86916
|
+
return import('./index-rblj1gA1.js').then(m => m.php());
|
|
86917
86917
|
}
|
|
86918
86918
|
}),
|
|
86919
86919
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -86930,28 +86930,28 @@ const languages = [
|
|
|
86930
86930
|
extensions: ["BUILD", "bzl", "py", "pyw"],
|
|
86931
86931
|
filename: /^(BUCK|BUILD)$/,
|
|
86932
86932
|
load() {
|
|
86933
|
-
return import('./index-
|
|
86933
|
+
return import('./index-BKgrv32b.js').then(m => m.python());
|
|
86934
86934
|
}
|
|
86935
86935
|
}),
|
|
86936
86936
|
/*@__PURE__*/LanguageDescription.of({
|
|
86937
86937
|
name: "Rust",
|
|
86938
86938
|
extensions: ["rs"],
|
|
86939
86939
|
load() {
|
|
86940
|
-
return import('./index-
|
|
86940
|
+
return import('./index-4zBZhITl.js').then(m => m.rust());
|
|
86941
86941
|
}
|
|
86942
86942
|
}),
|
|
86943
86943
|
/*@__PURE__*/LanguageDescription.of({
|
|
86944
86944
|
name: "Sass",
|
|
86945
86945
|
extensions: ["sass"],
|
|
86946
86946
|
load() {
|
|
86947
|
-
return import('./index-
|
|
86947
|
+
return import('./index-Dn_s4esG.js').then(m => m.sass({ indented: true }));
|
|
86948
86948
|
}
|
|
86949
86949
|
}),
|
|
86950
86950
|
/*@__PURE__*/LanguageDescription.of({
|
|
86951
86951
|
name: "SCSS",
|
|
86952
86952
|
extensions: ["scss"],
|
|
86953
86953
|
load() {
|
|
86954
|
-
return import('./index-
|
|
86954
|
+
return import('./index-Dn_s4esG.js').then(m => m.sass());
|
|
86955
86955
|
}
|
|
86956
86956
|
}),
|
|
86957
86957
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -86982,7 +86982,7 @@ const languages = [
|
|
|
86982
86982
|
name: "WebAssembly",
|
|
86983
86983
|
extensions: ["wat", "wast"],
|
|
86984
86984
|
load() {
|
|
86985
|
-
return import('./index-
|
|
86985
|
+
return import('./index-IOA4ZGmc.js').then(m => m.wast());
|
|
86986
86986
|
}
|
|
86987
86987
|
}),
|
|
86988
86988
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -86990,7 +86990,7 @@ const languages = [
|
|
|
86990
86990
|
alias: ["rss", "wsdl", "xsd"],
|
|
86991
86991
|
extensions: ["xml", "xsl", "xsd", "svg"],
|
|
86992
86992
|
load() {
|
|
86993
|
-
return import('./index-
|
|
86993
|
+
return import('./index-D1VQYW7r.js').then(m => m.xml());
|
|
86994
86994
|
}
|
|
86995
86995
|
}),
|
|
86996
86996
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -86998,7 +86998,7 @@ const languages = [
|
|
|
86998
86998
|
alias: ["yml"],
|
|
86999
86999
|
extensions: ["yaml", "yml"],
|
|
87000
87000
|
load() {
|
|
87001
|
-
return import('./index-
|
|
87001
|
+
return import('./index-C1xd4eqI.js').then(m => m.yaml());
|
|
87002
87002
|
}
|
|
87003
87003
|
}),
|
|
87004
87004
|
// Legacy modes ported from CodeMirror 5
|
|
@@ -87794,13 +87794,13 @@ const languages = [
|
|
|
87794
87794
|
name: "Vue",
|
|
87795
87795
|
extensions: ["vue"],
|
|
87796
87796
|
load() {
|
|
87797
|
-
return import('./index-
|
|
87797
|
+
return import('./index-BmFISqbo.js').then(m => m.vue());
|
|
87798
87798
|
}
|
|
87799
87799
|
}),
|
|
87800
87800
|
/*@__PURE__*/LanguageDescription.of({
|
|
87801
87801
|
name: "Angular Template",
|
|
87802
87802
|
load() {
|
|
87803
|
-
return import('./index-
|
|
87803
|
+
return import('./index-Cc9XbP2A.js').then(m => m.angular());
|
|
87804
87804
|
}
|
|
87805
87805
|
})
|
|
87806
87806
|
];
|
|
@@ -166509,7 +166509,7 @@ function createRenderDelaySampler() {
|
|
|
166509
166509
|
};
|
|
166510
166510
|
}
|
|
166511
166511
|
|
|
166512
|
-
const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-
|
|
166512
|
+
const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-O7Hd0ZQa.js'));
|
|
166513
166513
|
const ImagePanelBody = ({
|
|
166514
166514
|
topic,
|
|
166515
166515
|
frameRenderedEvent,
|
|
@@ -166604,7 +166604,7 @@ const DEFAULT_CAMERA_STATE = {
|
|
|
166604
166604
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
166605
166605
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
166606
166606
|
|
|
166607
|
-
const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-
|
|
166607
|
+
const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-1c6__YmG.js'));
|
|
166608
166608
|
const PointCloudPanelBody = ({
|
|
166609
166609
|
topic,
|
|
166610
166610
|
frameRenderedEvent,
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { av as FrameStore, ao as ImagePanel, an as PanelLayout, ap as PointCloudPanel, al as VisualizerConnection, am as VisualizerContext, aq as constructKeyForTopicRenderMetrics, as as globalDecodeMetricsManager, ar as globalInputEventMetricsManager, at as globalRenderMetricsManager, au as globalThroughputMetricsManager } from './index-
|
|
1
|
+
export { av as FrameStore, ao as ImagePanel, an as PanelLayout, ap as PointCloudPanel, al as VisualizerConnection, am as VisualizerContext, aq as constructKeyForTopicRenderMetrics, as as globalDecodeMetricsManager, ar as globalInputEventMetricsManager, at as globalRenderMetricsManager, au as globalThroughputMetricsManager } from './index-ynJe1rwL.js';
|
|
2
2
|
export { S as getDistanceFromDepthDataForOffset } from './depth-CgtekUia.js';
|
|
3
3
|
import './comlink-DHMAu6X7.js';
|
|
4
4
|
import './utils-Hzt3wxhG.js';
|
|
@@ -39,9 +39,7 @@ export declare class MessageHandler implements IMessageHandler {
|
|
|
39
39
|
#private;
|
|
40
40
|
private lastImage?;
|
|
41
41
|
private annotationsMap;
|
|
42
|
-
private
|
|
43
|
-
private syncToleranceMs;
|
|
44
|
-
private ghostTimeoutMs;
|
|
42
|
+
private lastSelectedByTopic;
|
|
45
43
|
availableAnnotationTopics: Set<string>;
|
|
46
44
|
/**
|
|
47
45
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageHandler.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,eAAe,EACf,gBAAgB,IAAI,wBAAwB,EAC5C,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EACL,OAAO,EACP,cAAc,EACf,MAAM,4DAA4D,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAC;AACxF,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"MessageHandler.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.ts"],"names":[],"mappings":"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"}
|
package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
4
|
+
import { getTimestampFromImage } from "@foxglove/studio-base/panels/ThreeDeeRender/renderables/Images/ImageTypes";
|
|
4
5
|
import { normalizeCompressedImage, normalizeRawImage, normalizeRosCompressedImage, normalizeRosImage, } from "@foxglove/studio-base/panels/ThreeDeeRender/renderables/Images/imageNormalizers";
|
|
5
6
|
import { normalizeCameraInfo } from "@foxglove/studio-base/panels/ThreeDeeRender/renderables/projections";
|
|
6
7
|
import { normalizeAnnotations } from "./annotations/normalizeAnnotations";
|
|
7
8
|
import { IMAGE_MODE_HUD_GROUP_ID, WAITING_FOR_BOTH_MESSAGES_HUD_ID, WAITING_FOR_CALIBRATION_HUD_ID, WAITING_FOR_IMAGES_EMPTY_HUD_ID, WAITING_FOR_IMAGES_NOTICE_ID, WAITING_FOR_SYNC_EMPTY_HUD_ID, WAITING_FOR_SYNC_NOTICE_HUD_ID, } from "./constants";
|
|
8
9
|
import { t3D } from "../../t3D";
|
|
10
|
+
const syncToleranceSec = Number(localStorage.getItem('viewer-syncToleranceSec')) || 0.15; // maximum acceptable time difference for selecting a “closest” annotation.
|
|
11
|
+
const maxStalenessSec = Number(localStorage.getItem('viewer-maxStalenessSec')) || 0.5; // how long we can hold the last older annotation if no better match is available.
|
|
12
|
+
const hysteresisSec = Number(localStorage.getItem('viewer-hysteresisSec')) || 0.03; // how much “stickiness” we allow before switching candidates.
|
|
13
|
+
console.log("synchronization parameters:", { syncToleranceSec, maxStalenessSec, hysteresisSec });
|
|
9
14
|
// Have constants for the HUD items so that they don't need to be recreated and GCed every message
|
|
10
15
|
export const WAITING_FOR_BOTH_HUD_ITEM = {
|
|
11
16
|
id: WAITING_FOR_BOTH_MESSAGES_HUD_ID,
|
|
@@ -68,10 +73,10 @@ export class MessageHandler {
|
|
|
68
73
|
#onAnnotationReceivedEvent;
|
|
69
74
|
#annotationsFpsRefreshInterval = null;
|
|
70
75
|
lastImage;
|
|
76
|
+
// Store a small buffer of recent annotations per topic with computed seconds timestamps
|
|
71
77
|
annotationsMap = new Map();
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
ghostTimeoutMs = 1000;
|
|
78
|
+
// Track last selected annotation per topic to add hysteresis and reduce flicker
|
|
79
|
+
lastSelectedByTopic = new Map();
|
|
75
80
|
availableAnnotationTopics;
|
|
76
81
|
/**
|
|
77
82
|
*
|
|
@@ -84,6 +89,16 @@ export class MessageHandler {
|
|
|
84
89
|
annotationsByTopic: new Map(),
|
|
85
90
|
};
|
|
86
91
|
this.availableAnnotationTopics = new Set();
|
|
92
|
+
// Set default values for synchronization to local storage if they're not already set
|
|
93
|
+
if (localStorage.getItem('viewer-syncToleranceSec') === null) {
|
|
94
|
+
localStorage.setItem('viewer-syncToleranceSec', syncToleranceSec.toString());
|
|
95
|
+
}
|
|
96
|
+
if (localStorage.getItem('viewer-maxStalenessSec') === null) {
|
|
97
|
+
localStorage.setItem('viewer-maxStalenessSec', maxStalenessSec.toString());
|
|
98
|
+
}
|
|
99
|
+
if (localStorage.getItem('viewer-hysteresisSec') === null) {
|
|
100
|
+
localStorage.setItem('viewer-hysteresisSec', hysteresisSec.toString());
|
|
101
|
+
}
|
|
87
102
|
}
|
|
88
103
|
dispose() {
|
|
89
104
|
if (this.#annotationsFpsRefreshInterval) {
|
|
@@ -112,51 +127,57 @@ export class MessageHandler {
|
|
|
112
127
|
this.handleImage(messageEvent, normalizeCompressedImage(messageEvent.message));
|
|
113
128
|
};
|
|
114
129
|
handleImage(message, image) {
|
|
115
|
-
|
|
130
|
+
this.lastImage = {
|
|
116
131
|
...message,
|
|
117
132
|
message: image,
|
|
118
133
|
};
|
|
119
|
-
this.lastImage = normalized;
|
|
120
134
|
this.#emitState();
|
|
121
135
|
}
|
|
122
136
|
handleCameraInfo = (message) => {
|
|
123
|
-
|
|
124
|
-
this.#lastReceivedMessages.cameraInfo = cameraInfo;
|
|
137
|
+
this.#lastReceivedMessages.cameraInfo = normalizeCameraInfo(message.message);
|
|
125
138
|
this.#emitState();
|
|
126
139
|
};
|
|
127
140
|
handleAnnotations = (messageEvent) => {
|
|
128
141
|
const list = normalizeAnnotations(messageEvent.message, messageEvent.schemaName);
|
|
129
|
-
const
|
|
142
|
+
const arrivalSec = performance.now() / 1000;
|
|
130
143
|
if (list.length > 0 && messageEvent.topic) {
|
|
131
144
|
this.#onAnnotationReceivedEvent?.();
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
145
|
+
// Prefer timestamps embedded in the annotations themselves
|
|
146
|
+
const stampTimes = [];
|
|
147
|
+
for (const a of list) {
|
|
148
|
+
const sec = a.stamp?.sec;
|
|
149
|
+
const nsec = a.stamp?.nsec;
|
|
150
|
+
if (typeof sec === "number" && typeof nsec === "number") {
|
|
151
|
+
stampTimes.push(sec + nsec / 1e9);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const timeSec = stampTimes.length > 0 ? Math.max(...stampTimes) : arrivalSec;
|
|
155
|
+
const entry = {
|
|
140
156
|
annotation: {
|
|
141
157
|
originalMessage: messageEvent,
|
|
142
158
|
annotations: list,
|
|
143
159
|
},
|
|
144
|
-
|
|
145
|
-
|
|
160
|
+
timeSec,
|
|
161
|
+
arrivalSec,
|
|
162
|
+
};
|
|
163
|
+
const topic = messageEvent.topic;
|
|
164
|
+
const buffer = this.annotationsMap.get(topic) ?? [];
|
|
165
|
+
buffer.push(entry);
|
|
166
|
+
const maxLen = 60;
|
|
167
|
+
const retentionSec = 2;
|
|
168
|
+
const cutoff = timeSec - retentionSec;
|
|
169
|
+
const trimmed = buffer.filter((e) => e.timeSec >= cutoff);
|
|
170
|
+
while (trimmed.length > maxLen) {
|
|
171
|
+
trimmed.shift();
|
|
172
|
+
}
|
|
173
|
+
this.annotationsMap.set(topic, trimmed);
|
|
146
174
|
}
|
|
175
|
+
// Always emit; render selection logic will pick appropriate annotations for the last image
|
|
176
|
+
this.#emitState();
|
|
147
177
|
if (this.#config.synchronize === false) {
|
|
148
|
-
this.#emitState();
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
if (list.length === 0 && messageEvent.topic) {
|
|
152
|
-
for (const [topic, annotation] of this.ghostAnnotationsMap.entries()) {
|
|
153
|
-
if (Math.abs(timestamp - annotation.timestamp) <= this.syncToleranceMs) {
|
|
154
|
-
this.annotationsMap.set(topic, { annotation: annotation.annotation, timestamp });
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
this.#emitState();
|
|
158
178
|
return;
|
|
159
179
|
}
|
|
180
|
+
// synchronized mode does selection in #getRenderState
|
|
160
181
|
};
|
|
161
182
|
setConfig(newConfig) {
|
|
162
183
|
let changed = false;
|
|
@@ -201,6 +222,9 @@ export class MessageHandler {
|
|
|
201
222
|
this.#lastReceivedMessages = {
|
|
202
223
|
annotationsByTopic: new Map(),
|
|
203
224
|
};
|
|
225
|
+
this.annotationsMap.clear();
|
|
226
|
+
this.lastSelectedByTopic.clear();
|
|
227
|
+
this.lastImage = undefined;
|
|
204
228
|
this.#oldRenderState = undefined;
|
|
205
229
|
this.#emitState();
|
|
206
230
|
}
|
|
@@ -239,34 +263,65 @@ export class MessageHandler {
|
|
|
239
263
|
image: this.lastImage,
|
|
240
264
|
annotationsByTopic: new Map(),
|
|
241
265
|
};
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
266
|
+
const imageTimestampSec = (() => {
|
|
267
|
+
const stamp = getTimestampFromImage(this.lastImage.message);
|
|
268
|
+
const sec = stamp?.sec;
|
|
269
|
+
const nsec = stamp?.nsec;
|
|
270
|
+
if (typeof sec === "number" && typeof nsec === "number") {
|
|
271
|
+
return sec + nsec / 1e9;
|
|
272
|
+
}
|
|
273
|
+
return performance.now() / 1000;
|
|
274
|
+
})();
|
|
275
|
+
for (const [topic, buffer] of this.annotationsMap.entries()) {
|
|
276
|
+
if (buffer.length === 0)
|
|
252
277
|
continue;
|
|
278
|
+
// Prefer newest annotation older than the image within staleness window
|
|
279
|
+
let preferred;
|
|
280
|
+
for (let i = buffer.length - 1; i >= 0; i--) {
|
|
281
|
+
const entry = buffer[i];
|
|
282
|
+
const age = imageTimestampSec - entry.timeSec;
|
|
283
|
+
if (age >= 0 && age <= maxStalenessSec) {
|
|
284
|
+
preferred = entry;
|
|
285
|
+
break;
|
|
286
|
+
}
|
|
253
287
|
}
|
|
254
|
-
//
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
288
|
+
// If none older within staleness, fall back to closest within tolerance
|
|
289
|
+
let fallback;
|
|
290
|
+
let fallbackDelta = Number.POSITIVE_INFINITY;
|
|
291
|
+
for (let i = 0; i < buffer.length; i++) {
|
|
292
|
+
const entry = buffer[i];
|
|
293
|
+
const delta = Math.abs(entry.timeSec - imageTimestampSec);
|
|
294
|
+
if (delta < fallbackDelta) {
|
|
295
|
+
fallback = entry;
|
|
296
|
+
fallbackDelta = delta;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
let candidate = preferred ?? fallback;
|
|
300
|
+
if (!candidate)
|
|
301
|
+
continue;
|
|
302
|
+
const candidateDelta = Math.abs(candidate.timeSec - imageTimestampSec);
|
|
303
|
+
const candidateAge = imageTimestampSec - candidate.timeSec;
|
|
304
|
+
const acceptable = (preferred != undefined && candidateAge >= 0 && candidateAge <= maxStalenessSec) ||
|
|
305
|
+
(preferred == undefined && candidateDelta <= syncToleranceSec);
|
|
306
|
+
const notFutureFar = candidate.timeSec <= imageTimestampSec + syncToleranceSec;
|
|
307
|
+
if (!acceptable || !notFutureFar) {
|
|
308
|
+
continue;
|
|
309
|
+
}
|
|
310
|
+
// Hysteresis: if previous selection is very close and still valid, keep it to avoid flicker
|
|
311
|
+
const prevTime = this.lastSelectedByTopic.get(topic);
|
|
312
|
+
if (prevTime != undefined) {
|
|
313
|
+
const prevEntry = buffer.find((e) => Math.abs(e.timeSec - prevTime) < 1e-6);
|
|
314
|
+
if (prevEntry) {
|
|
315
|
+
const prevDelta = Math.abs(prevEntry.timeSec - imageTimestampSec);
|
|
316
|
+
const prevAge = imageTimestampSec - prevEntry.timeSec;
|
|
317
|
+
const prevValid = (prevAge >= 0 && prevAge <= maxStalenessSec) || prevDelta <= syncToleranceSec;
|
|
318
|
+
if (prevValid && Math.abs(prevEntry.timeSec - candidate.timeSec) <= hysteresisSec) {
|
|
319
|
+
candidate = prevEntry;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
269
322
|
}
|
|
323
|
+
state.annotationsByTopic.set(topic, candidate.annotation);
|
|
324
|
+
this.lastSelectedByTopic.set(topic, candidate.timeSec);
|
|
270
325
|
}
|
|
271
326
|
return state;
|
|
272
327
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageHandler.js","sourceRoot":"","sources":["../../../../../../../../../packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageHandler.js","sourceRoot":"","sources":["../../../../../../../../../packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/MessageHandler.ts"],"names":[],"mappings":"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"}
|