@luxonis/visualizer-protobuf 3.1.13 → 3.1.14
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/{FoxgloveServer-Da9kV1cr.js → FoxgloveServer-CpnCBMeV.js} +1 -1
- package/dist/{communicator-Dh2aL-rj.js → communicator-DO6hmBxI.js} +1 -1
- package/dist/{depth-DiD1V2Sg.js → depth-Me_0Xnx6.js} +89 -2
- package/dist/{deserialization.worker-DU2Hs4UP.js → deserialization.worker-CUrCdjHf.js} +401 -137
- package/dist/{foxglove-protocol-BtLMVx24.js → foxglove-protocol-SrBOBs-8.js} +1 -1
- package/dist/{index-B5oN0fQm.js → index-5ZSfZI8d.js} +1 -1
- package/dist/{index-CNjpp5xs.js → index-B8aafdRQ.js} +5 -5
- package/dist/{index-B_3PleIH.js → index-BMew9qiQ.js} +57 -126
- package/dist/{index-D686pHc1.js → index-BsIRFSYD.js} +36 -9
- package/dist/{index-CqayH0_I.js → index-CIhAU5Cs.js} +5 -5
- package/dist/{index-DnhrXuH6.js → index-CN6tI-uI.js} +5 -5
- package/dist/{index--95nXh6E.js → index-CQtXiN8I.js} +5 -5
- package/dist/{index-DewnJOHY.js → index-CZGEFE1k.js} +5 -5
- package/dist/{index-CcWunxJv.js → index-CeRrHeG_.js} +5 -5
- package/dist/{index-BMp_L7Aa.js → index-CqH6rdRP.js} +5 -5
- package/dist/{index-JlGCfxtk.js → index-CrPun-aU.js} +5 -5
- package/dist/{index-B9-rLgJ9.js → index-Dc3rS1Cf.js} +7 -7
- package/dist/{index-CidrwlEk.js → index-DgNYLOM9.js} +5 -5
- package/dist/{index-DzOBiI2h.js → index-DjRF0u25.js} +5 -5
- package/dist/{index-CxKEiKY9.js → index-Dmc1065I.js} +5 -5
- package/dist/{index-BjiepKHF.js → index-Dn6pTTdu.js} +5 -5
- package/dist/{index-CCq5_y78.js → index-N2I7Bhtx.js} +5 -5
- package/dist/{index-X1k93Nku.js → index-_Z7btKy-.js} +5 -5
- package/dist/{index-C45UVGjk.js → index-_ggcs841.js} +5 -5
- package/dist/{index-DopAEQk2.js → index-svPKcEP3.js} +5 -5
- package/dist/{index-DWt4Nj5G.js → index-u1cGSF5c.js} +5 -5
- package/dist/index.js +5 -5
- package/dist/lib/src/components/PanelToolbar.d.ts.map +1 -1
- package/dist/lib/src/components/PanelToolbar.js +2 -2
- package/dist/lib/src/components/PanelToolbar.js.map +1 -1
- package/dist/lib/src/connection/foxglove-connection.d.ts.map +1 -1
- package/dist/lib/src/connection/foxglove-connection.js +12 -2
- package/dist/lib/src/connection/foxglove-connection.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js +59 -20
- package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/utils.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/utils.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/h264.d.ts +2 -1
- package/dist/lib/src/messaging/deserialization/video/h264.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/h264.js +14 -10
- package/dist/lib/src/messaging/deserialization/video/h264.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/h265.d.ts +1 -0
- package/dist/lib/src/messaging/deserialization/video/h265.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/h265.js +12 -6
- package/dist/lib/src/messaging/deserialization/video/h265.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/rgbd-to-pointcloud.d.ts +4 -4
- package/dist/lib/src/messaging/deserialization/video/rgbd-to-pointcloud.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/rgbd-to-pointcloud.js +350 -84
- package/dist/lib/src/messaging/deserialization/video/rgbd-to-pointcloud.js.map +1 -1
- package/dist/lib/src/messaging/protobuf.d.ts +2 -2
- package/dist/lib/src/messaging/protobuf.d.ts.map +1 -1
- package/dist/lib/src/messaging/protobuf.js +3 -3
- package/dist/lib/src/messaging/protobuf.js.map +1 -1
- package/dist/lib/src/utils/poitcloud-sync.d.ts +7 -2
- package/dist/lib/src/utils/poitcloud-sync.d.ts.map +1 -1
- package/dist/lib/src/utils/poitcloud-sync.js +10 -6
- package/dist/lib/src/utils/poitcloud-sync.js.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/Renderer.d.ts.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/Renderer.js +7 -2
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/Renderer.js.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/ThreeDeeRender.d.ts.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/ThreeDeeRender.js +33 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/ThreeDeeRender.js.map +1 -1
- package/dist/{pointcloudFromDepth.worker-60RA4Ief.js → pointcloudFromDepth.worker-wzSOsJVb.js} +86 -47
- package/dist/{protobuf-OcbVtxg1.js → protobuf-CKMA2Rn8.js} +214 -214
- package/dist/{worker-C2MHIq3t.js → worker-Bhe7uYcO.js} +4 -4
- package/dist/{worker-Be-hru8f.js → worker-VIU0v1ZW.js} +3 -3
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { C as ClientBinaryOpcode, B as BinaryOpcode } from './FoxgloveServer-
|
|
2
|
+
import { C as ClientBinaryOpcode, B as BinaryOpcode } from './FoxgloveServer-CpnCBMeV.js';
|
|
3
3
|
|
|
4
4
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
5
5
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { U as styleTags, V as tags, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, T as foldNodeProp, a5 as foldInside, ae as defineCSSCompletionSource, X as LanguageSupport, Z as LRParser, Y as ExternalTokenizer } from './index-
|
|
3
|
-
import './protobuf-
|
|
2
|
+
import { U as styleTags, V as tags, W as LRLanguage, Q as indentNodeProp, R as continuedIndent, T as foldNodeProp, a5 as foldInside, ae as defineCSSCompletionSource, X as LanguageSupport, Z as LRParser, Y as ExternalTokenizer } from './index-BMew9qiQ.js';
|
|
3
|
+
import './protobuf-CKMA2Rn8.js';
|
|
4
4
|
import './logger-Bqy1nuLj.js';
|
|
5
|
-
import './depth-
|
|
5
|
+
import './depth-Me_0Xnx6.js';
|
|
6
6
|
import './comlink-jf8bdrAf.js';
|
|
7
7
|
import 'react';
|
|
8
8
|
import 'zustand';
|
|
@@ -10,9 +10,9 @@ import 'react-mosaic-component';
|
|
|
10
10
|
import '@mui/material';
|
|
11
11
|
import './isArrayLikeObject-n9ytTioB.js';
|
|
12
12
|
import './utils-DmlHZWuo.js';
|
|
13
|
-
import './FoxgloveServer-
|
|
13
|
+
import './FoxgloveServer-CpnCBMeV.js';
|
|
14
14
|
import 'ms';
|
|
15
|
-
import './foxglove-protocol-
|
|
15
|
+
import './foxglove-protocol-SrBOBs-8.js';
|
|
16
16
|
import 'react-dnd';
|
|
17
17
|
import 'react-dnd-html5-backend';
|
|
18
18
|
import './i18next-17tp0Ngf.js';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { _ as _classPrivateFieldLooseBase, a as _classPrivateFieldLooseKey, b as _objectSpread2, p as protobufsBySchema, c as protobufSchemaNameToType, g as getDefaultExportFromCjs, d as _objectWithoutProperties$2, e as _extends$2, f as commonjsGlobal } from './protobuf-
|
|
2
|
+
import { _ as _classPrivateFieldLooseBase, a as _classPrivateFieldLooseKey, b as _objectSpread2, p as protobufsBySchema, c as protobufSchemaNameToType, g as getDefaultExportFromCjs, d as _objectWithoutProperties$2, e as _extends$2, f as commonjsGlobal } from './protobuf-CKMA2Rn8.js';
|
|
3
3
|
import { L as Logger } from './logger-Bqy1nuLj.js';
|
|
4
|
-
import { d as dist$1, e as estimateObjectSize,
|
|
4
|
+
import { g as globalInputEventMetricsManager, a as globalDecodeMetricsManager, b as globalThroughputMetricsManager, c as constructKeyForTopicRenderMetrics, d as dist$1, e as estimateObjectSize, f as globalRenderMetricsManager, h as createDecodingError, r as reportError, A as AppError, i as baseFlatten, j as baseEach, k as baseIteratee, l as baseDifference, m as getTag, n as baseKeys, o as baseIsEqual, p as castPath, t as toKey, q as baseGet, s as hasIn, u as sendNotification, v as shallowequal, w as useGuaranteedContext, x as getPanelIdsInsideTabPanels, y as getPanelTypeFromId, T as TAB_PANEL_TYPE, z as removePanelFromTabPanel, B as getPanelIdForType, C as getPathFromNode, D as updateTabPanelLayout, E as getSaveConfigsPayloadForAddedPanel, F as replaceAndRemovePanels, G as inlineTabPanelLayouts, H as getAllPanelIds, I as DEFAULT_TAB_PANEL_CONFIG, J as getConfigsForNestedPanelsInsideTab, K as reorderTabWithinTabPanel, L as moveTabBetweenTabPanels, M as isTabPanelConfig, N as addPanelToTab, O as createAddUpdates, P as filterMap, Q as Logger$1, R as uniq$2, S as useShallowMemo, U as CurrentLayoutContext, V as MessageOrderTracker, W as AppConfigurationContext, X as DecodingError } from './depth-Me_0Xnx6.js';
|
|
5
5
|
import { w as wrap$3, r as releaseProxy, p as proxy } from './comlink-jf8bdrAf.js';
|
|
6
6
|
import { u as uint8ArrayToUint16Array } from './utils-DmlHZWuo.js';
|
|
7
|
-
import { B as BinaryOpcode } from './FoxgloveServer-
|
|
7
|
+
import { B as BinaryOpcode } from './FoxgloveServer-CpnCBMeV.js';
|
|
8
8
|
import * as React$1 from 'react';
|
|
9
9
|
import React__default, { useRef, useMemo, createContext, useContext, forwardRef, createElement, useState, Component, useCallback, useEffect, useLayoutEffect, useReducer, useImperativeHandle, Fragment as Fragment$1, Suspense } from 'react';
|
|
10
|
-
import { p as parseFoxgloveMessage } from './foxglove-protocol-
|
|
10
|
+
import { p as parseFoxgloveMessage } from './foxglove-protocol-SrBOBs-8.js';
|
|
11
11
|
import { DndProvider } from 'react-dnd';
|
|
12
12
|
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
13
13
|
import { getLeaves, createRemoveUpdate, updateTree, createHideUpdate, createDragToUpdates, getNodeAtPath, MosaicContext, MosaicWindowContext } from 'react-mosaic-component';
|
|
@@ -537,93 +537,6 @@ function ComlinkWrap(worker) {
|
|
|
537
537
|
};
|
|
538
538
|
}
|
|
539
539
|
|
|
540
|
-
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
541
|
-
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
542
|
-
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
543
|
-
|
|
544
|
-
const MAX_SAMPLE_SIZE = 100;
|
|
545
|
-
function constructKeyForTopicRenderMetrics(key, topic) {
|
|
546
|
-
return `${key}:${topic}`;
|
|
547
|
-
}
|
|
548
|
-
function bytesToMegabits(bytes) {
|
|
549
|
-
return bytes / (1024 * 1024) * 8;
|
|
550
|
-
}
|
|
551
|
-
class MetricsManager {
|
|
552
|
-
constructor() {
|
|
553
|
-
this.metrics = {};
|
|
554
|
-
}
|
|
555
|
-
getMetrics() {
|
|
556
|
-
return this.metrics;
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
class EventMetricsManager extends MetricsManager {
|
|
560
|
-
ensureTopic(topic) {
|
|
561
|
-
var _this$metrics, _this$metrics$topic;
|
|
562
|
-
(_this$metrics$topic = (_this$metrics = this.metrics)[topic]) !== null && _this$metrics$topic !== void 0 ? _this$metrics$topic : _this$metrics[topic] = [];
|
|
563
|
-
}
|
|
564
|
-
calculate(topic) {
|
|
565
|
-
const topicMetrics = this.metrics[topic];
|
|
566
|
-
if (!topicMetrics) {
|
|
567
|
-
return undefined;
|
|
568
|
-
}
|
|
569
|
-
let totalInterval = 0;
|
|
570
|
-
for (let i = 1; i < topicMetrics.length; ++i) {
|
|
571
|
-
totalInterval += topicMetrics[i - 1] - topicMetrics[i];
|
|
572
|
-
}
|
|
573
|
-
if (isNaN(totalInterval)) {
|
|
574
|
-
return undefined;
|
|
575
|
-
}
|
|
576
|
-
const fps = 1000 / (totalInterval / (topicMetrics.length - 1));
|
|
577
|
-
return Math.round(fps);
|
|
578
|
-
}
|
|
579
|
-
registerEvent(topic) {
|
|
580
|
-
const currentTime = performance.now();
|
|
581
|
-
this.ensureTopic(topic);
|
|
582
|
-
this.metrics[topic].unshift(currentTime);
|
|
583
|
-
if (this.metrics[topic].length > MAX_SAMPLE_SIZE) {
|
|
584
|
-
this.metrics[topic].length = MAX_SAMPLE_SIZE;
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
class ThroughputMetricsManager extends MetricsManager {
|
|
589
|
-
calculate(topic) {
|
|
590
|
-
const topicMetrics = this.metrics[topic];
|
|
591
|
-
if (!topicMetrics || topicMetrics.length < 2 || !topicMetrics.at(0) || !topicMetrics.at(-1)) {
|
|
592
|
-
return undefined;
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
// Get time span in seconds
|
|
596
|
-
// biome-ignore lint/style/noNonNullAssertion: <explanation>
|
|
597
|
-
const timeSpanMs = topicMetrics.at(0).timestamp - topicMetrics.at(-1).timestamp;
|
|
598
|
-
const timeSpanSec = timeSpanMs / 1000;
|
|
599
|
-
if (timeSpanSec === 0) {
|
|
600
|
-
return undefined;
|
|
601
|
-
}
|
|
602
|
-
|
|
603
|
-
// Sum up all values (bytes)
|
|
604
|
-
const totalBytes = topicMetrics.reduce((sum, metric) => sum + metric.value, 0);
|
|
605
|
-
|
|
606
|
-
// Calculate bytes per second
|
|
607
|
-
const bytesPerSecond = totalBytes / timeSpanSec;
|
|
608
|
-
|
|
609
|
-
// Return rounded value
|
|
610
|
-
return Number(bytesToMegabits(bytesPerSecond).toFixed(2));
|
|
611
|
-
}
|
|
612
|
-
registerEvent(topic, value) {
|
|
613
|
-
var _this$metrics2, _this$metrics2$topic;
|
|
614
|
-
const timestamp = performance.now();
|
|
615
|
-
(_this$metrics2$topic = (_this$metrics2 = this.metrics)[topic]) !== null && _this$metrics2$topic !== void 0 ? _this$metrics2$topic : _this$metrics2[topic] = [];
|
|
616
|
-
this.metrics[topic].unshift({
|
|
617
|
-
timestamp,
|
|
618
|
-
value
|
|
619
|
-
});
|
|
620
|
-
if (this.metrics[topic].length > MAX_SAMPLE_SIZE) {
|
|
621
|
-
this.metrics[topic].length = MAX_SAMPLE_SIZE;
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
const [globalInputEventMetricsManager, globalDecodeMetricsManager, globalRenderMetricsManager, globalThroughputMetricsManager] = [new EventMetricsManager(), new EventMetricsManager(), new EventMetricsManager(), new ThroughputMetricsManager()];
|
|
626
|
-
|
|
627
540
|
const logger$6 = Logger.getLogger();
|
|
628
541
|
const WORKER_COUNT = 4;
|
|
629
542
|
const DEFAULT_TARGET_FPS = 9;
|
|
@@ -753,7 +666,7 @@ class DepthToPointcloudWorkerPool {
|
|
|
753
666
|
_classPrivateFieldLooseBase(this, _targetDispatchIntervalMs)[_targetDispatchIntervalMs] = DISPATCH_INTERVAL_MS / Math.max(1, Math.round(targetFps / DISPATCH_INTERVAL_FRACTION)) * _classPrivateFieldLooseBase(this, _calculateBatchMultiplier)[_calculateBatchMultiplier]();
|
|
754
667
|
_classPrivateFieldLooseBase(this, _maxProcessedQueueSize)[_maxProcessedQueueSize] = Math.max(1, maxProcessedQueueSize);
|
|
755
668
|
this.workerApis = new Array(WORKER_COUNT).fill(undefined).map(() => {
|
|
756
|
-
const worker = new Worker(new URL("pointcloudFromDepth.worker-
|
|
669
|
+
const worker = new Worker(new URL("pointcloudFromDepth.worker-wzSOsJVb.js", import.meta.url), {
|
|
757
670
|
type: "module"
|
|
758
671
|
});
|
|
759
672
|
return ComlinkWrap(worker);
|
|
@@ -977,7 +890,7 @@ ConfigStore.instance = void 0;
|
|
|
977
890
|
|
|
978
891
|
var _localStorage$getItem;
|
|
979
892
|
function initWorker(callback) {
|
|
980
|
-
const worker = new Worker(new URL("deserialization.worker-
|
|
893
|
+
const worker = new Worker(new URL("deserialization.worker-CUrCdjHf.js", import.meta.url), {
|
|
981
894
|
type: "module",
|
|
982
895
|
name: `message-decoder`
|
|
983
896
|
});
|
|
@@ -1177,6 +1090,7 @@ function getIMUEventEmitter() {
|
|
|
1177
1090
|
return imuEvent;
|
|
1178
1091
|
}
|
|
1179
1092
|
|
|
1093
|
+
var _toTimestampKey = /*#__PURE__*/_classPrivateFieldLooseKey("toTimestampKey");
|
|
1180
1094
|
var _binarySearch = /*#__PURE__*/_classPrivateFieldLooseKey("binarySearch");
|
|
1181
1095
|
var _MAX_DELAY_SEC = /*#__PURE__*/_classPrivateFieldLooseKey("MAX_DELAY_SEC");
|
|
1182
1096
|
var _MAX_STORED_FRAMES = /*#__PURE__*/_classPrivateFieldLooseKey("MAX_STORED_FRAMES");
|
|
@@ -1189,6 +1103,9 @@ class PoitCloudSyncFramework {
|
|
|
1189
1103
|
Object.defineProperty(this, _binarySearch, {
|
|
1190
1104
|
value: _binarySearch2
|
|
1191
1105
|
});
|
|
1106
|
+
Object.defineProperty(this, _toTimestampKey, {
|
|
1107
|
+
value: _toTimestampKey2
|
|
1108
|
+
});
|
|
1192
1109
|
this.storedFrames = [];
|
|
1193
1110
|
Object.defineProperty(this, _MAX_DELAY_SEC, {
|
|
1194
1111
|
writable: true,
|
|
@@ -1199,11 +1116,12 @@ class PoitCloudSyncFramework {
|
|
|
1199
1116
|
value: 100
|
|
1200
1117
|
});
|
|
1201
1118
|
}
|
|
1202
|
-
getFrame(
|
|
1119
|
+
getFrame(timestamp) {
|
|
1120
|
+
const targetKey = _classPrivateFieldLooseBase(this, _toTimestampKey)[_toTimestampKey](timestamp);
|
|
1203
1121
|
const {
|
|
1204
1122
|
res,
|
|
1205
1123
|
index = 0
|
|
1206
|
-
} = _classPrivateFieldLooseBase(this, _binarySearch)[_binarySearch](this.storedFrames,
|
|
1124
|
+
} = _classPrivateFieldLooseBase(this, _binarySearch)[_binarySearch](this.storedFrames, targetKey);
|
|
1207
1125
|
// cleans the array
|
|
1208
1126
|
for (let i = 0; i < index; i++) {
|
|
1209
1127
|
Array.prototype.shift.call(this.storedFrames);
|
|
@@ -1213,7 +1131,7 @@ class PoitCloudSyncFramework {
|
|
|
1213
1131
|
}
|
|
1214
1132
|
const popedFrame = this.storedFrames.pop();
|
|
1215
1133
|
if (popedFrame) {
|
|
1216
|
-
if (Math.abs(popedFrame.timestamp
|
|
1134
|
+
if (Math.abs(_classPrivateFieldLooseBase(this, _toTimestampKey)[_toTimestampKey](popedFrame.timestamp) - targetKey) / 10 ** 9 < _classPrivateFieldLooseBase(this, _MAX_DELAY_SEC)[_MAX_DELAY_SEC]) {
|
|
1217
1135
|
return popedFrame;
|
|
1218
1136
|
}
|
|
1219
1137
|
//@ts-ignore
|
|
@@ -1229,6 +1147,9 @@ class PoitCloudSyncFramework {
|
|
|
1229
1147
|
this.storedFrames.push(frame);
|
|
1230
1148
|
}
|
|
1231
1149
|
}
|
|
1150
|
+
function _toTimestampKey2(timestamp) {
|
|
1151
|
+
return timestamp.sec * 1000000000 + timestamp.nsec;
|
|
1152
|
+
}
|
|
1232
1153
|
function _binarySearch2(arr, targetKey) {
|
|
1233
1154
|
let left = 0;
|
|
1234
1155
|
let right = arr.length;
|
|
@@ -1240,7 +1161,7 @@ function _binarySearch2(arr, targetKey) {
|
|
|
1240
1161
|
index: 0
|
|
1241
1162
|
};
|
|
1242
1163
|
}
|
|
1243
|
-
if (element.timestamp
|
|
1164
|
+
if (_classPrivateFieldLooseBase(this, _toTimestampKey)[_toTimestampKey](element.timestamp) < targetKey) {
|
|
1244
1165
|
return {
|
|
1245
1166
|
res: arr[arr.length - 1],
|
|
1246
1167
|
index: arr.length
|
|
@@ -1249,7 +1170,7 @@ function _binarySearch2(arr, targetKey) {
|
|
|
1249
1170
|
while (left <= right) {
|
|
1250
1171
|
const mid = Math.floor((left + right) / 2);
|
|
1251
1172
|
// biome-ignore lint/style/noNonNullAssertion:
|
|
1252
|
-
const midKey = arr[mid].timestamp
|
|
1173
|
+
const midKey = _classPrivateFieldLooseBase(this, _toTimestampKey)[_toTimestampKey](arr[mid].timestamp);
|
|
1253
1174
|
if (midKey === targetKey) {
|
|
1254
1175
|
if (Math.abs(midKey - targetKey) / 10 ** 9 < _classPrivateFieldLooseBase(this, _MAX_DELAY_SEC)[_MAX_DELAY_SEC]) {
|
|
1255
1176
|
return {
|
|
@@ -1269,7 +1190,7 @@ function _binarySearch2(arr, targetKey) {
|
|
|
1269
1190
|
right = mid - 1;
|
|
1270
1191
|
}
|
|
1271
1192
|
}
|
|
1272
|
-
if (bestMatch && Math.abs(bestMatch.timestamp
|
|
1193
|
+
if (bestMatch && Math.abs(_classPrivateFieldLooseBase(this, _toTimestampKey)[_toTimestampKey](bestMatch.timestamp) - targetKey) / 10 ** 9 < _classPrivateFieldLooseBase(this, _MAX_DELAY_SEC)[_MAX_DELAY_SEC]) {
|
|
1273
1194
|
return {
|
|
1274
1195
|
res: bestMatch,
|
|
1275
1196
|
index: left
|
|
@@ -1473,12 +1394,14 @@ class FoxgloveConnection {
|
|
|
1473
1394
|
this.decodeMetrics.registerEvent("Point Cloud");
|
|
1474
1395
|
this.throughputMetrics.registerEvent("Point Cloud", messageSize);
|
|
1475
1396
|
this.parseResolutionFromMessage(coloredEvent.message, "Point Cloud");
|
|
1476
|
-
|
|
1397
|
+
for (const topic of ["Point Cloud", "PointCloud", "pointCloud"]) {
|
|
1398
|
+
FrameStore.getInstance().registerFrame(topic, coloredEvent);
|
|
1399
|
+
}
|
|
1477
1400
|
this.messageEvents.push(coloredEvent);
|
|
1478
1401
|
this.emitState();
|
|
1479
1402
|
}
|
|
1480
1403
|
async handleParsePointcloudMessage(coloredEvent) {
|
|
1481
|
-
const poitcloudFrame = this.PoitCloudSyncFramework.getFrame(coloredEvent.receiveTime
|
|
1404
|
+
const poitcloudFrame = this.PoitCloudSyncFramework.getFrame(coloredEvent.receiveTime);
|
|
1482
1405
|
const {
|
|
1483
1406
|
width: colorWith,
|
|
1484
1407
|
height: colorHeight
|
|
@@ -1535,9 +1458,17 @@ class FoxgloveConnection {
|
|
|
1535
1458
|
}
|
|
1536
1459
|
this.parseResolutionFromMessage(event.message, event.topic);
|
|
1537
1460
|
if (event.schemaName === "foxglove.PointCloud") {
|
|
1461
|
+
for (const topic of ["Point Cloud", "PointCloud", "pointCloud"]) {
|
|
1462
|
+
FrameStore.getInstance().registerFrame(topic, event);
|
|
1463
|
+
}
|
|
1538
1464
|
this.PoitCloudSyncFramework.addFrame(event.message);
|
|
1539
1465
|
return;
|
|
1540
1466
|
}
|
|
1467
|
+
if (event.schemaName === "foxglove.PointCloud.Colored") {
|
|
1468
|
+
for (const topic of ["Point Cloud", "PointCloud", "pointCloud"]) {
|
|
1469
|
+
FrameStore.getInstance().registerFrame(topic, event);
|
|
1470
|
+
}
|
|
1471
|
+
}
|
|
1541
1472
|
if (event.schemaName === "foxglove.PointClouds.Colored") {
|
|
1542
1473
|
event.schemaName = "foxglove.PointClouds";
|
|
1543
1474
|
}
|
|
@@ -22321,7 +22252,7 @@ class WebRtcBridge extends ArtificialWorker {
|
|
|
22321
22252
|
writable: true,
|
|
22322
22253
|
value: null
|
|
22323
22254
|
});
|
|
22324
|
-
_classPrivateFieldLooseBase(this, _worker)[_worker] = new Worker(new URL("worker-
|
|
22255
|
+
_classPrivateFieldLooseBase(this, _worker)[_worker] = new Worker(new URL("worker-Bhe7uYcO.js", import.meta.url), {
|
|
22325
22256
|
type: "module"
|
|
22326
22257
|
});
|
|
22327
22258
|
_classPrivateFieldLooseBase(this, _setupArtificialWorker)[_setupArtificialWorker]();
|
|
@@ -22642,7 +22573,7 @@ class VisualizerConnection extends FoxgloveConnection {
|
|
|
22642
22573
|
let _worker;
|
|
22643
22574
|
if (type === "ws") {
|
|
22644
22575
|
_classPrivateFieldLooseBase(this, _url)[_url] = data.connectionUrl;
|
|
22645
|
-
_worker = new Worker(new URL("worker-
|
|
22576
|
+
_worker = new Worker(new URL("worker-VIU0v1ZW.js", import.meta.url), {
|
|
22646
22577
|
type: "module"
|
|
22647
22578
|
});
|
|
22648
22579
|
} else {
|
|
@@ -88712,7 +88643,7 @@ function legacy(parser) {
|
|
|
88712
88643
|
return new LanguageSupport(StreamLanguage.define(parser));
|
|
88713
88644
|
}
|
|
88714
88645
|
function sql$1(dialectName) {
|
|
88715
|
-
return import('./index-
|
|
88646
|
+
return import('./index-CeRrHeG_.js').then(m => m.sql({ dialect: m[dialectName] }));
|
|
88716
88647
|
}
|
|
88717
88648
|
/**
|
|
88718
88649
|
An array of language descriptions for known language packages.
|
|
@@ -88723,7 +88654,7 @@ const languages = [
|
|
|
88723
88654
|
name: "C",
|
|
88724
88655
|
extensions: ["c", "h", "ino"],
|
|
88725
88656
|
load() {
|
|
88726
|
-
return import('./index-
|
|
88657
|
+
return import('./index-N2I7Bhtx.js').then(m => m.cpp());
|
|
88727
88658
|
}
|
|
88728
88659
|
}),
|
|
88729
88660
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -88731,7 +88662,7 @@ const languages = [
|
|
|
88731
88662
|
alias: ["cpp"],
|
|
88732
88663
|
extensions: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"],
|
|
88733
88664
|
load() {
|
|
88734
|
-
return import('./index-
|
|
88665
|
+
return import('./index-N2I7Bhtx.js').then(m => m.cpp());
|
|
88735
88666
|
}
|
|
88736
88667
|
}),
|
|
88737
88668
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -88751,7 +88682,7 @@ const languages = [
|
|
|
88751
88682
|
name: "Go",
|
|
88752
88683
|
extensions: ["go"],
|
|
88753
88684
|
load() {
|
|
88754
|
-
return import('./index-
|
|
88685
|
+
return import('./index-svPKcEP3.js').then(m => m.go());
|
|
88755
88686
|
}
|
|
88756
88687
|
}),
|
|
88757
88688
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -88766,7 +88697,7 @@ const languages = [
|
|
|
88766
88697
|
name: "Java",
|
|
88767
88698
|
extensions: ["java"],
|
|
88768
88699
|
load() {
|
|
88769
|
-
return import('./index-
|
|
88700
|
+
return import('./index-CN6tI-uI.js').then(m => m.java());
|
|
88770
88701
|
}
|
|
88771
88702
|
}),
|
|
88772
88703
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -88781,7 +88712,7 @@ const languages = [
|
|
|
88781
88712
|
name: "Jinja",
|
|
88782
88713
|
extensions: ["j2", "jinja", "jinja2"],
|
|
88783
88714
|
load() {
|
|
88784
|
-
return import('./index-
|
|
88715
|
+
return import('./index-CZGEFE1k.js').then(m => m.jinja());
|
|
88785
88716
|
}
|
|
88786
88717
|
}),
|
|
88787
88718
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -88789,7 +88720,7 @@ const languages = [
|
|
|
88789
88720
|
alias: ["json5"],
|
|
88790
88721
|
extensions: ["json", "map"],
|
|
88791
88722
|
load() {
|
|
88792
|
-
return import('./index-
|
|
88723
|
+
return import('./index-Dn6pTTdu.js').then(m => m.json());
|
|
88793
88724
|
}
|
|
88794
88725
|
}),
|
|
88795
88726
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -88803,14 +88734,14 @@ const languages = [
|
|
|
88803
88734
|
name: "LESS",
|
|
88804
88735
|
extensions: ["less"],
|
|
88805
88736
|
load() {
|
|
88806
|
-
return import('./index-
|
|
88737
|
+
return import('./index-B8aafdRQ.js').then(m => m.less());
|
|
88807
88738
|
}
|
|
88808
88739
|
}),
|
|
88809
88740
|
/*@__PURE__*/LanguageDescription.of({
|
|
88810
88741
|
name: "Liquid",
|
|
88811
88742
|
extensions: ["liquid"],
|
|
88812
88743
|
load() {
|
|
88813
|
-
return import('./index-
|
|
88744
|
+
return import('./index-DjRF0u25.js').then(m => m.liquid());
|
|
88814
88745
|
}
|
|
88815
88746
|
}),
|
|
88816
88747
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -88836,7 +88767,7 @@ const languages = [
|
|
|
88836
88767
|
name: "PHP",
|
|
88837
88768
|
extensions: ["php", "php3", "php4", "php5", "php7", "phtml"],
|
|
88838
88769
|
load() {
|
|
88839
|
-
return import('./index-
|
|
88770
|
+
return import('./index-_ggcs841.js').then(m => m.php());
|
|
88840
88771
|
}
|
|
88841
88772
|
}),
|
|
88842
88773
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -88853,28 +88784,28 @@ const languages = [
|
|
|
88853
88784
|
extensions: ["BUILD", "bzl", "py", "pyw"],
|
|
88854
88785
|
filename: /^(BUCK|BUILD)$/,
|
|
88855
88786
|
load() {
|
|
88856
|
-
return import('./index
|
|
88787
|
+
return import('./index-CQtXiN8I.js').then(m => m.python());
|
|
88857
88788
|
}
|
|
88858
88789
|
}),
|
|
88859
88790
|
/*@__PURE__*/LanguageDescription.of({
|
|
88860
88791
|
name: "Rust",
|
|
88861
88792
|
extensions: ["rs"],
|
|
88862
88793
|
load() {
|
|
88863
|
-
return import('./index-
|
|
88794
|
+
return import('./index-_Z7btKy-.js').then(m => m.rust());
|
|
88864
88795
|
}
|
|
88865
88796
|
}),
|
|
88866
88797
|
/*@__PURE__*/LanguageDescription.of({
|
|
88867
88798
|
name: "Sass",
|
|
88868
88799
|
extensions: ["sass"],
|
|
88869
88800
|
load() {
|
|
88870
|
-
return import('./index-
|
|
88801
|
+
return import('./index-Dmc1065I.js').then(m => m.sass({ indented: true }));
|
|
88871
88802
|
}
|
|
88872
88803
|
}),
|
|
88873
88804
|
/*@__PURE__*/LanguageDescription.of({
|
|
88874
88805
|
name: "SCSS",
|
|
88875
88806
|
extensions: ["scss"],
|
|
88876
88807
|
load() {
|
|
88877
|
-
return import('./index-
|
|
88808
|
+
return import('./index-Dmc1065I.js').then(m => m.sass());
|
|
88878
88809
|
}
|
|
88879
88810
|
}),
|
|
88880
88811
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -88905,7 +88836,7 @@ const languages = [
|
|
|
88905
88836
|
name: "WebAssembly",
|
|
88906
88837
|
extensions: ["wat", "wast"],
|
|
88907
88838
|
load() {
|
|
88908
|
-
return import('./index-
|
|
88839
|
+
return import('./index-u1cGSF5c.js').then(m => m.wast());
|
|
88909
88840
|
}
|
|
88910
88841
|
}),
|
|
88911
88842
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -88913,7 +88844,7 @@ const languages = [
|
|
|
88913
88844
|
alias: ["rss", "wsdl", "xsd"],
|
|
88914
88845
|
extensions: ["xml", "xsl", "xsd", "svg"],
|
|
88915
88846
|
load() {
|
|
88916
|
-
return import('./index-
|
|
88847
|
+
return import('./index-DgNYLOM9.js').then(m => m.xml());
|
|
88917
88848
|
}
|
|
88918
88849
|
}),
|
|
88919
88850
|
/*@__PURE__*/LanguageDescription.of({
|
|
@@ -88921,7 +88852,7 @@ const languages = [
|
|
|
88921
88852
|
alias: ["yml"],
|
|
88922
88853
|
extensions: ["yaml", "yml"],
|
|
88923
88854
|
load() {
|
|
88924
|
-
return import('./index-
|
|
88855
|
+
return import('./index-CIhAU5Cs.js').then(m => m.yaml());
|
|
88925
88856
|
}
|
|
88926
88857
|
}),
|
|
88927
88858
|
// Legacy modes ported from CodeMirror 5
|
|
@@ -89710,13 +89641,13 @@ const languages = [
|
|
|
89710
89641
|
name: "Vue",
|
|
89711
89642
|
extensions: ["vue"],
|
|
89712
89643
|
load() {
|
|
89713
|
-
return import('./index-
|
|
89644
|
+
return import('./index-CrPun-aU.js').then(m => m.vue());
|
|
89714
89645
|
}
|
|
89715
89646
|
}),
|
|
89716
89647
|
/*@__PURE__*/LanguageDescription.of({
|
|
89717
89648
|
name: "Angular Template",
|
|
89718
89649
|
load() {
|
|
89719
|
-
return import('./index-
|
|
89650
|
+
return import('./index-CqH6rdRP.js').then(m => m.angular());
|
|
89720
89651
|
}
|
|
89721
89652
|
})
|
|
89722
89653
|
];
|
|
@@ -174274,7 +174205,7 @@ function PanelToolbarMetrics({
|
|
|
174274
174205
|
React__default.useEffect(() => {
|
|
174275
174206
|
const interval = setInterval(() => {
|
|
174276
174207
|
setRenderedFps(globalRenderMetricsManager.calculate(renderMetricsKey));
|
|
174277
|
-
setAnnotationsFps(
|
|
174208
|
+
setAnnotationsFps(globalRenderMetricsManager.calculate(annotationsMetricsKey));
|
|
174278
174209
|
}, METRICS_UPDATE_INTERVAL);
|
|
174279
174210
|
return () => {
|
|
174280
174211
|
clearInterval(interval);
|
|
@@ -174770,7 +174701,7 @@ function createRenderDelaySampler() {
|
|
|
174770
174701
|
};
|
|
174771
174702
|
}
|
|
174772
174703
|
|
|
174773
|
-
const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-
|
|
174704
|
+
const ImagePanelComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-Dc3rS1Cf.js'));
|
|
174774
174705
|
const ImagePanelBody = ({
|
|
174775
174706
|
topic,
|
|
174776
174707
|
frameRenderedEvent,
|
|
@@ -174865,7 +174796,7 @@ const DEFAULT_CAMERA_STATE = {
|
|
|
174865
174796
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
174866
174797
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
174867
174798
|
|
|
174868
|
-
const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-
|
|
174799
|
+
const ThreeDeeRenderComponent = /*#__PURE__*/React__default.lazy(async () => await import('./index-BsIRFSYD.js'));
|
|
174869
174800
|
const PointCloudPanelBody = ({
|
|
174870
174801
|
topic,
|
|
174871
174802
|
frameRenderedEvent,
|
|
@@ -174978,4 +174909,4 @@ const PointCloudPanel = /*#__PURE__*/React__default.memo(function PointCloudPane
|
|
|
174978
174909
|
}));
|
|
174979
174910
|
});
|
|
174980
174911
|
|
|
174981
|
-
export { ifNotIn as $, AnalyticsContext as A, isEqual as B, AppEvent as C, isDesktopApp as D, ErrorDisplay as E, createTheme$1 as F, propTypesExports as G, DEFAULT_CAMERA_STATE as H, format as I, stringType as J, serializeError as K, stringify$3 as L, createIntl as M, createIntlCache as N, useAnalytics as O, PropTypes as P, indentNodeProp as Q, continuedIndent as R, Stack$1 as S, foldNodeProp as T, styleTags as U, tags$1 as V, LRLanguage as W, LanguageSupport as X, ExternalTokenizer as Y, LRParser as Z, _objectWithoutPropertiesLoose$2 as _, makeStyles as a, completeFromList as a0, syntaxTree as a1, LocalTokenGroup as a2, flatIndent as a3, delimitedIndent as a4, foldInside as a5, ContextTracker as a6, snippetCompletion as a7, IterMode as a8, NodeWeakMap as a9, EditorView as aa, EditorSelection as ab, html$6 as ac, parseMixed as ad, defineCSSCompletionSource as ae, bracketMatchingHandle as af, javascriptLanguage as ag, VisualizerConnection as ah, VisualizerContext as ai, PanelLayout as aj, ImagePanel as ak, PointCloudPanel as al,
|
|
174912
|
+
export { ifNotIn as $, AnalyticsContext as A, isEqual as B, AppEvent as C, isDesktopApp as D, ErrorDisplay as E, createTheme$1 as F, propTypesExports as G, DEFAULT_CAMERA_STATE as H, format as I, stringType as J, serializeError as K, stringify$3 as L, createIntl as M, createIntlCache as N, useAnalytics as O, PropTypes as P, indentNodeProp as Q, continuedIndent as R, Stack$1 as S, foldNodeProp as T, styleTags as U, tags$1 as V, LRLanguage as W, LanguageSupport as X, ExternalTokenizer as Y, LRParser as Z, _objectWithoutPropertiesLoose$2 as _, makeStyles as a, completeFromList as a0, syntaxTree as a1, LocalTokenGroup as a2, flatIndent as a3, delimitedIndent as a4, foldInside as a5, ContextTracker as a6, snippetCompletion as a7, IterMode as a8, NodeWeakMap as a9, EditorView as aa, EditorSelection as ab, html$6 as ac, parseMixed as ad, defineCSSCompletionSource as ae, bracketMatchingHandle as af, javascriptLanguage as ag, VisualizerConnection as ah, VisualizerContext as ai, PanelLayout as aj, ImagePanel as ak, PointCloudPanel as al, FrameStore as am, getIMUEventEmitter as an, baseSet as b, createAggregator as c, usePanelCatalog as d, EmptyState as e, flatRest as f, generateUtilityClass as g, PanelContext as h, isEmpty as i, PanelCatalogContext as j, usePanelStateStore as k, difference as l, murmur2 as m, usePanelContext as n, useMessagePipeline as o, useDefaultPanelTitle as p, useHoverValue as q, useSetHoverValue as r, useClearHoverValue as s, useMessagePipelineGetter as t, useTranslation as u, v4$1 as v, usePanelSettingsTreeUpdate as w, PlayerCapabilities as x, assertNever as y, PlayerPresence as z };
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { useReducer, useRef, useCallback, useLayoutEffect, Component, useContext, useState, useEffect, createContext, forwardRef, useMemo, Profiler, createElement, cloneElement, memo, StrictMode } from 'react';
|
|
4
4
|
import { createRoot } from 'react-dom/client';
|
|
5
|
-
import {
|
|
5
|
+
import { a4 as isSymbol, a5 as toString, a6 as keys, a7 as getSymbols$1, a8 as stubArray, a9 as arrayPush, aa as baseGetAllKeys, m as getTag, ab as getAllKeys, q as baseGet, k as baseIteratee, p as castPath, t as toKey, ac as arrayMap$1, ad as useCurrentLayoutActions, ae as useCurrentLayoutSelector, r as reportError, A as AppError, af as usePanelMosaicId, ag as noop$4, Q as Logger, ah as useSelectedPanels, y as getPanelTypeFromId, S as useShallowMemo, T as TAB_PANEL_TYPE, P as filterMap, d as dist$2, ai as useAppConfiguration, aj as useJsonTreeTheme } from './depth-Me_0Xnx6.js';
|
|
6
6
|
import { createStore, useStore } from 'zustand';
|
|
7
|
-
import { g as generateUtilityClass, c as createAggregator, f as flatRest, b as baseSet, A as AnalyticsContext, m as murmur2, P as PropTypes, _ as _objectWithoutPropertiesLoose$1, E as ErrorDisplay, S as Stack$1, a as makeStyles$1, u as useTranslation, d as usePanelCatalog, e as EmptyState, i as isEmpty, h as PanelContext, j as PanelCatalogContext, k as usePanelStateStore, l as difference, n as usePanelContext, o as useMessagePipeline, v as v4, p as useDefaultPanelTitle, q as useHoverValue, r as useSetHoverValue, s as useClearHoverValue, t as useMessagePipelineGetter, w as usePanelSettingsTreeUpdate, x as PlayerCapabilities, y as assertNever, z as PlayerPresence, B as isEqual, C as AppEvent, D as isDesktopApp, F as createTheme, G as propTypesExports, H as DEFAULT_CAMERA_STATE$1, I as format$1, J as stringType, K as serializeError, L as stringify$1, M as createIntl, N as createIntlCache, O as useAnalytics } from './index-
|
|
8
|
-
import { _ as _classPrivateFieldLooseBase, a as _classPrivateFieldLooseKey, d as _objectWithoutProperties, e as _extends$1, f as commonjsGlobal, g as getDefaultExportFromCjs, b as _objectSpread2, i as getAugmentedNamespace, j as _asyncIterator } from './protobuf-
|
|
7
|
+
import { g as generateUtilityClass, c as createAggregator, f as flatRest, b as baseSet, A as AnalyticsContext, m as murmur2, P as PropTypes, _ as _objectWithoutPropertiesLoose$1, E as ErrorDisplay, S as Stack$1, a as makeStyles$1, u as useTranslation, d as usePanelCatalog, e as EmptyState, i as isEmpty, h as PanelContext, j as PanelCatalogContext, k as usePanelStateStore, l as difference, n as usePanelContext, o as useMessagePipeline, v as v4, p as useDefaultPanelTitle, q as useHoverValue, r as useSetHoverValue, s as useClearHoverValue, t as useMessagePipelineGetter, w as usePanelSettingsTreeUpdate, x as PlayerCapabilities, y as assertNever, z as PlayerPresence, B as isEqual, C as AppEvent, D as isDesktopApp, F as createTheme, G as propTypesExports, H as DEFAULT_CAMERA_STATE$1, I as format$1, J as stringType, K as serializeError, L as stringify$1, M as createIntl, N as createIntlCache, O as useAnalytics } from './index-BMew9qiQ.js';
|
|
8
|
+
import { _ as _classPrivateFieldLooseBase, a as _classPrivateFieldLooseKey, d as _objectWithoutProperties, e as _extends$1, f as commonjsGlobal, g as getDefaultExportFromCjs, b as _objectSpread2, i as getAugmentedNamespace, j as _asyncIterator } from './protobuf-CKMA2Rn8.js';
|
|
9
9
|
import { MosaicDragType, MosaicContext, MosaicWindowContext, getOtherBranch, getNodeAtPath } from 'react-mosaic-component';
|
|
10
10
|
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, inputBaseClasses, autocompleteClasses, inputClasses, Checkbox, dialogActionsClasses, filledInputClasses, inputAdornmentClasses, listSubheaderClasses, selectClasses, tableCellClasses, ThemeProvider as ThemeProvider$1, tabsClasses as tabsClasses$1, tabClasses, Tabs, Tab, ListItemIcon } from '@mui/material';
|
|
11
11
|
import { a as assignValue, b as baseAssignValue, t as tinycolor, c as t$1, i as instance } from './i18next-17tp0Ngf.js';
|
|
@@ -18,10 +18,10 @@ import { useDrag, useDrop } from 'react-dnd';
|
|
|
18
18
|
import { h as isObject, r as root, S as Symbol$1, k as isObjectLike, A as nodeUtil, B as baseUnary, d as isBuffer, v as Stack, i as isArray, b as baseRest } from './isArrayLikeObject-n9ytTioB.js';
|
|
19
19
|
import ReactDOM__default from 'react-dom';
|
|
20
20
|
import { c as copyObject, k as keysIn, g as getPrototype, a as cloneArrayBuffer, b as cloneTypedArray, e as copyArray, f as cloneBuffer, i as initCloneObject, h as isPlainObject$1, B as Box3, V as Vector3, I as InstancedBufferGeometry, F as Float32BufferAttribute, j as InstancedInterleavedBuffer, l as InterleavedBufferAttribute, W as WireframeGeometry, S as Sphere, U as UniformsLib, m as Vector2, n as ShaderLib, o as UniformsUtils, p as ShaderMaterial, q as Vector4, M as Matrix4, L as Line3, r as Mesh, s as MathUtils, O as Object3D, C as Color, t as rgbToThreeColor, u as stringToRgba, v as makeRgba, w as MeshStandardMaterial, R as ReplaceStencilOp, N as NotEqualStencilFunc, D as DoubleSide, P as PointsMaterial, x as rgbaToCssString, y as autoSelectColorSettings, z as colorModeSettingsFields, A as PlaneGeometry, E as DataTexture, G as UVMapping, H as ClampToEdgeWrapping, J as NearestFilter, K as LinearFilter, Q as FS_SRGB_TO_LINEAR, T as SRGBColorSpace, X as LinearSRGBColorSpace, Y as rgbaToLinear, Z as RedFormat, _ as RGBAFormat, $ as getColorConverter, a0 as FloatType, a1 as UnsignedByteType, a2 as NEEDS_MIN_MAX$1, a3 as InstancedMesh, a4 as CylinderGeometry, a5 as ConeGeometry, a6 as DataTextureLoader, a7 as LinearMipmapLinearFilter, a8 as Loader, a9 as LoaderUtils, aa as FileLoader, ab as MeshBasicMaterial, ac as Scene, ad as TextureLoader, ae as AnimationClip, af as VectorKeyframeTrack, ag as QuaternionKeyframeTrack, ah as MeshLambertMaterial, ai as MeshPhongMaterial, aj as FrontSide, ak as PerspectiveCamera, al as OrthographicCamera, am as AmbientLight, an as SpotLight, ao as PointLight, ap as DirectionalLight, aq as BufferGeometry, ar as Group, as as Quaternion, at as Bone, au as LineBasicMaterial, av as SkinnedMesh, aw as Line, ax as LineSegments, ay as RepeatWrapping, az as Skeleton, aA as BufferAttribute, aB as TrianglesDrawMode, aC as TriangleFanDrawMode, aD as TriangleStripDrawMode, aE as MeshPhysicalMaterial, aF as ImageBitmapLoader, aG as InterleavedBuffer, aH as Material, aI as PropertyBinding, aJ as LineLoop, aK as Points, aL as InterpolateLinear, aM as ColorManagement, aN as NearestMipmapNearestFilter, aO as LinearMipmapNearestFilter, aP as NearestMipmapLinearFilter, aQ as MirroredRepeatWrapping, aR as InterpolateDiscrete, aS as Texture, aT as NumberKeyframeTrack, aU as Interpolant, aV as EdgesGeometry, aW as LoadingManager, aX as stringToRgb, aY as getLuminance, aZ as Euler, a_ as vec3TupleApproxEquals, a$ as decodeCompressedImageToBitmap, b0 as CanvasTexture, b1 as Shape, b2 as SRGBToLinear, b3 as ShapeGeometry, b4 as DynamicDrawUsage, b5 as ShaderChunk, b6 as IMAGE_DEFAULT_COLOR_MODE_SETTINGS, b7 as merge$1, b8 as colorHasTransparency, b9 as StaticDrawUsage, ba as RawShaderMaterial, bb as GLSL3, bc as colorFieldComputedPrefix, bd as getRotationTo, be as SphereGeometry, bf as rgbaGradient, bg as InstancedBufferAttribute, bh as BoxGeometry, bi as DARK_OUTLINE, bj as LIGHT_OUTLINE, bk as CircleGeometry, bl as LineDashedMaterial, bm as GreaterDepth, bn as EventDispatcher$1, bo as Plane, bp as Raycaster, bq as WebGLRenderTarget, br as THREE$1, bs as Spherical, bt as WebGLRenderer, bu as NoToneMapping, bv as VSMShadowMap, bw as HemisphereLight } from './decodeImage-DseBx4N0.js';
|
|
21
|
-
import { t as typescript } from './index-
|
|
21
|
+
import { t as typescript } from './index-5ZSfZI8d.js';
|
|
22
22
|
import { CacheProvider } from '@emotion/react';
|
|
23
23
|
import '@mui/material/styles/createTypography';
|
|
24
|
-
import { E as EventEmitter } from './FoxgloveServer-
|
|
24
|
+
import { E as EventEmitter } from './FoxgloveServer-CpnCBMeV.js';
|
|
25
25
|
import require$$1$3 from 'color';
|
|
26
26
|
import require$$2$1 from 'lodash.curry';
|
|
27
27
|
import OpenInNewIcon from '@mui/icons-material/OpenInNew';
|
|
@@ -29,7 +29,7 @@ import SettingsIcon from '@mui/icons-material/Settings';
|
|
|
29
29
|
import './comlink-jf8bdrAf.js';
|
|
30
30
|
import './logger-Bqy1nuLj.js';
|
|
31
31
|
import './utils-DmlHZWuo.js';
|
|
32
|
-
import './foxglove-protocol-
|
|
32
|
+
import './foxglove-protocol-SrBOBs-8.js';
|
|
33
33
|
import 'react-dnd-html5-backend';
|
|
34
34
|
import '@mui/system/colorManipulator';
|
|
35
35
|
import 'object-assign';
|
|
@@ -77539,10 +77539,15 @@ class Renderer extends EventEmitter {
|
|
|
77539
77539
|
|
|
77540
77540
|
// 4. Get the intersection point in local space
|
|
77541
77541
|
const intersection = intersects[0];
|
|
77542
|
+
if (!intersection) {
|
|
77543
|
+
return null;
|
|
77544
|
+
}
|
|
77542
77545
|
const localPoint = picked.worldToLocal(intersection.point.clone());
|
|
77543
77546
|
|
|
77544
|
-
// 5. Normalize localPoint to [0, 1] based on the bounding box
|
|
77545
|
-
|
|
77547
|
+
// 5. Normalize localPoint to [0, 1] based on the object's local-space bounding box.
|
|
77548
|
+
picked.updateWorldMatrix(true, true);
|
|
77549
|
+
const inverseMatrix = picked.matrixWorld.clone().invert();
|
|
77550
|
+
const box = new Box3().setFromObject(picked).applyMatrix4(inverseMatrix);
|
|
77546
77551
|
const size = new Vector3();
|
|
77547
77552
|
box.getSize(size);
|
|
77548
77553
|
|
|
@@ -81882,6 +81887,24 @@ const PANEL_STYLE = {
|
|
|
81882
81887
|
display: "flex",
|
|
81883
81888
|
position: "relative"
|
|
81884
81889
|
};
|
|
81890
|
+
const POINT_CLOUD_RENDER_SCHEMAS = new Set(["foxglove.PointCloud", "foxglove.PointClouds", "foxglove.PointCloud.Colored", "foxglove.PointClouds.Colored"]);
|
|
81891
|
+
function getOffsetCoordsFromPickedInstance(selection) {
|
|
81892
|
+
if (!selection || selection.instanceIndex == undefined) {
|
|
81893
|
+
return undefined;
|
|
81894
|
+
}
|
|
81895
|
+
const pointCloud = selection.renderable.userData.pointCloud;
|
|
81896
|
+
const width = pointCloud === null || pointCloud === void 0 ? void 0 : pointCloud.width;
|
|
81897
|
+
const height = pointCloud === null || pointCloud === void 0 ? void 0 : pointCloud.height;
|
|
81898
|
+
if (width == undefined || height == undefined || width <= 0 || height <= 0 || selection.instanceIndex < 0 || selection.instanceIndex >= width * height) {
|
|
81899
|
+
return undefined;
|
|
81900
|
+
}
|
|
81901
|
+
const pixelX = selection.instanceIndex % width;
|
|
81902
|
+
const pixelY = Math.floor(selection.instanceIndex / width);
|
|
81903
|
+
return {
|
|
81904
|
+
offsetX: (pixelX + 0.5) / width,
|
|
81905
|
+
offsetY: (pixelY + 0.5) / height
|
|
81906
|
+
};
|
|
81907
|
+
}
|
|
81885
81908
|
|
|
81886
81909
|
/**
|
|
81887
81910
|
* A panel that renders a 3D scene. This is a thin wrapper around a `Renderer` instance.
|
|
@@ -82188,7 +82211,7 @@ function ThreeDeeRender(props) {
|
|
|
82188
82211
|
|
|
82189
82212
|
// allFrames has messages on preloaded topics across all frames (as they are loaded)
|
|
82190
82213
|
setAllFrames(renderState.allFrames);
|
|
82191
|
-
if (props.frameRenderedEvent !== undefined && (_renderState$currentF = renderState.currentFrame) !== null && _renderState$currentF !== void 0 && _renderState$currentF.find(m => m.schemaName
|
|
82214
|
+
if (props.frameRenderedEvent !== undefined && (_renderState$currentF = renderState.currentFrame) !== null && _renderState$currentF !== void 0 && _renderState$currentF.find(m => POINT_CLOUD_RENDER_SCHEMAS.has(m.schemaName))) {
|
|
82192
82215
|
props.frameRenderedEvent();
|
|
82193
82216
|
}
|
|
82194
82217
|
});
|
|
@@ -82542,6 +82565,10 @@ function ThreeDeeRender(props) {
|
|
|
82542
82565
|
if (!selectedObject) {
|
|
82543
82566
|
return;
|
|
82544
82567
|
}
|
|
82568
|
+
const pointCloudOffsetCoords = getOffsetCoordsFromPickedInstance(selectedObject);
|
|
82569
|
+
if (pointCloudOffsetCoords) {
|
|
82570
|
+
return pointCloudOffsetCoords;
|
|
82571
|
+
}
|
|
82545
82572
|
|
|
82546
82573
|
// Calculate the percentage offset coordinates relative to the renderable
|
|
82547
82574
|
// This is number from <0, 1> range and can be used to map click position to depth data
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { a6 as ContextTracker, Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport, ad as parseMixed } from './index-
|
|
3
|
-
import './protobuf-
|
|
2
|
+
import { a6 as ContextTracker, Y as ExternalTokenizer, U as styleTags, V as tags, Z as LRParser, W as LRLanguage, Q as indentNodeProp, a4 as delimitedIndent, T as foldNodeProp, a5 as foldInside, X as LanguageSupport, ad as parseMixed } from './index-BMew9qiQ.js';
|
|
3
|
+
import './protobuf-CKMA2Rn8.js';
|
|
4
4
|
import './logger-Bqy1nuLj.js';
|
|
5
|
-
import './depth-
|
|
5
|
+
import './depth-Me_0Xnx6.js';
|
|
6
6
|
import './comlink-jf8bdrAf.js';
|
|
7
7
|
import 'react';
|
|
8
8
|
import 'zustand';
|
|
@@ -10,9 +10,9 @@ import 'react-mosaic-component';
|
|
|
10
10
|
import '@mui/material';
|
|
11
11
|
import './isArrayLikeObject-n9ytTioB.js';
|
|
12
12
|
import './utils-DmlHZWuo.js';
|
|
13
|
-
import './FoxgloveServer-
|
|
13
|
+
import './FoxgloveServer-CpnCBMeV.js';
|
|
14
14
|
import 'ms';
|
|
15
|
-
import './foxglove-protocol-
|
|
15
|
+
import './foxglove-protocol-SrBOBs-8.js';
|
|
16
16
|
import 'react-dnd';
|
|
17
17
|
import 'react-dnd-html5-backend';
|
|
18
18
|
import './i18next-17tp0Ngf.js';
|