@luxonis/visualizer-protobuf 2.15.0 → 2.16.1
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-DiLI7KZU.js → FoxgloveServer-tJZcJH5-.js} +21 -35
- package/dist/comlink-D0blLC4P.js +344 -0
- package/dist/{communicator-CkB-oBVq.js → communicator-D9LSiWws.js} +1 -1
- package/dist/{foxglove-protocol-RZlF5fna.js → foxglove-protocol-RBwoTi12.js} +1 -1
- package/dist/i420ToRgbaToPoitcloud.worker-CQFm7P7B.js +48 -0
- package/dist/{index-BwXQcktX.js → index-B2r7A42O.js} +4 -3
- package/dist/{index-CU7EP-1Z.js → index-BBF7QY1k.js} +4 -3
- package/dist/{index-DWzj93US.js → index-BRBbEfLt.js} +4 -3
- package/dist/{index-XYuXuR6J.js → index-Bj3e-oMi.js} +4 -3
- package/dist/{index-BHvk_lXs.js → index-BjoXQ__u.js} +4 -3
- package/dist/{index-CvOH_4Vb.js → index-BlnWOxsk.js} +4 -3
- package/dist/{index-B5Y2BwAY.js → index-BvVi0uRg.js} +4 -3
- package/dist/{index-B_XiOSDG.js → index-BvllHttZ.js} +4 -3
- package/dist/{index-Dj1nE_e2.js → index-C23TCUNb.js} +5 -4
- package/dist/{index-B3np51f5.js → index-C2PLp2cB.js} +4 -3
- package/dist/{index-DqahF3Pt.js → index-C3ZYC-qt.js} +4 -3
- package/dist/{index-BVlhWOws.js → index-CMdpLs9w.js} +4 -3
- package/dist/{index-ClHNc7K7.js → index-Cr9fA6Pt.js} +18 -10
- package/dist/{index-D2l8qtZA.js → index-DH9dOOR3.js} +4 -3
- package/dist/{index-XshD358Z.js → index-DZlfOfTk.js} +180 -106
- package/dist/{index-u_8JsVuJ.js → index-Fxi-epuT.js} +4 -3
- package/dist/{index-BlTiOUx8.js → index-QKUoKEdA.js} +4 -3
- package/dist/{index-DVFtn83p.js → index-eGfSIJKq.js} +4 -3
- package/dist/{index-duY9KDhj.js → index-rGnzrljf.js} +4 -3
- package/dist/index.js +4 -3
- package/dist/lib/src/components/Panel.d.ts +2 -1
- package/dist/lib/src/components/Panel.d.ts.map +1 -1
- package/dist/lib/src/components/Panel.js +2 -2
- package/dist/lib/src/components/Panel.js.map +1 -1
- package/dist/lib/src/components/PanelToolbar.d.ts +2 -1
- package/dist/lib/src/components/PanelToolbar.d.ts.map +1 -1
- package/dist/lib/src/components/PanelToolbar.js +10 -8
- package/dist/lib/src/components/PanelToolbar.js.map +1 -1
- package/dist/lib/src/connection/foxglove-connection.d.ts +8 -4
- package/dist/lib/src/connection/foxglove-connection.d.ts.map +1 -1
- package/dist/lib/src/connection/foxglove-connection.js +28 -13
- package/dist/lib/src/connection/foxglove-connection.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.d.ts +2 -0
- package/dist/lib/src/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.d.ts.map +1 -0
- package/dist/lib/src/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.js +45 -0
- package/dist/lib/src/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.js.map +1 -0
- package/dist/lib/src/messaging/deserialization/pointcloud/utils.d.ts +1 -0
- package/dist/lib/src/messaging/deserialization/pointcloud/utils.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/utils.js +8 -0
- package/dist/lib/src/messaging/deserialization/pointcloud/utils.js.map +1 -1
- package/dist/lib/src/panels/ImagePanel.d.ts +6 -2
- package/dist/lib/src/panels/ImagePanel.d.ts.map +1 -1
- package/dist/lib/src/panels/ImagePanel.js +2 -2
- package/dist/lib/src/panels/ImagePanel.js.map +1 -1
- package/dist/lib/src/panels/PointCloudPanel.d.ts +3 -1
- package/dist/lib/src/panels/PointCloudPanel.d.ts.map +1 -1
- package/dist/lib/src/panels/PointCloudPanel.js +10 -7
- package/dist/lib/src/panels/PointCloudPanel.js.map +1 -1
- package/dist/lib/src/protobuf.generated/EncodedFrame.d.ts.map +1 -1
- package/dist/lib/src/protobuf.generated/EncodedFrame.js +4 -1
- package/dist/lib/src/protobuf.generated/EncodedFrame.js.map +1 -1
- package/dist/lib/src/protobuf.generated/Event.d.ts.map +1 -1
- package/dist/lib/src/protobuf.generated/Event.js +4 -1
- package/dist/lib/src/protobuf.generated/Event.js.map +1 -1
- package/dist/lib/src/protobuf.generated/ImageAnnotations.d.ts.map +1 -1
- package/dist/lib/src/protobuf.generated/ImageAnnotations.js +4 -1
- package/dist/lib/src/protobuf.generated/ImageAnnotations.js.map +1 -1
- package/dist/lib/src/protobuf.generated/ImgDetections.d.ts.map +1 -1
- package/dist/lib/src/protobuf.generated/ImgDetections.js +4 -1
- package/dist/lib/src/protobuf.generated/ImgDetections.js.map +1 -1
- package/dist/lib/src/protobuf.generated/ImgFrame.d.ts.map +1 -1
- package/dist/lib/src/protobuf.generated/ImgFrame.js +4 -1
- package/dist/lib/src/protobuf.generated/ImgFrame.js.map +1 -1
- package/dist/lib/src/protobuf.generated/PointCloudData.d.ts.map +1 -1
- package/dist/lib/src/protobuf.generated/PointCloudData.js +4 -1
- package/dist/lib/src/protobuf.generated/PointCloudData.js.map +1 -1
- package/dist/lib/src/protobuf.generated/SpatialImgDetections.d.ts.map +1 -1
- package/dist/lib/src/protobuf.generated/SpatialImgDetections.js +4 -1
- package/dist/lib/src/protobuf.generated/SpatialImgDetections.js.map +1 -1
- package/dist/lib/src/protobuf.generated/common.d.ts.map +1 -1
- package/dist/lib/src/protobuf.generated/common.js +4 -1
- package/dist/lib/src/protobuf.generated/common.js.map +1 -1
- package/dist/lib/src/utils/poitcloud-sync.d.ts +8 -0
- package/dist/lib/src/utils/poitcloud-sync.d.ts.map +1 -0
- package/dist/lib/src/utils/poitcloud-sync.js +48 -0
- package/dist/lib/src/utils/poitcloud-sync.js.map +1 -0
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/Input.d.ts +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/Input.d.ts.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/Input.js +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/Input.js.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/Renderer.js +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/Renderer.js.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/ThreeDeeRender.d.ts +4 -4
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/ThreeDeeRender.d.ts.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/ThreeDeeRender.js +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/ThreeDeeRender.js.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/ImageMode.d.ts.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/ImageMode.js +1 -0
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/renderables/ImageMode/ImageMode.js.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/updatePose.d.ts.map +1 -1
- package/dist/packages/studio-base/src/panels/ThreeDeeRender/updatePose.js.map +1 -1
- package/dist/{worker-CtuCYYTr.js → worker-8hm-Dhmm.js} +3 -3
- package/dist/{worker-Bd7K1fGT.js → worker-vqRhkSaI.js} +2 -2
- package/package.json +1 -1
- package/dist/lib/src/protobuf.generated/IMUData.d.ts +0 -122
- package/dist/lib/src/protobuf.generated/IMUData.d.ts.map +0 -1
- package/dist/lib/src/protobuf.generated/IMUData.js +0 -691
- package/dist/lib/src/protobuf.generated/IMUData.js.map +0 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { aI as EditorView, aJ as EditorSelection, as as LRLanguage, aq as styleTags, ar as tags, an as indentNodeProp, aA as delimitedIndent, ap as foldNodeProp, at as LanguageSupport, av as LRParser, ay as syntaxTree, aK as html, aL as parseMixed, au as ExternalTokenizer } from './index-
|
|
2
|
-
import './FoxgloveServer-
|
|
1
|
+
import { aI as EditorView, aJ as EditorSelection, as as LRLanguage, aq as styleTags, ar as tags, an as indentNodeProp, aA as delimitedIndent, ap as foldNodeProp, at as LanguageSupport, av as LRParser, ay as syntaxTree, aK as html, aL as parseMixed, au as ExternalTokenizer } from './index-DZlfOfTk.js';
|
|
2
|
+
import './FoxgloveServer-tJZcJH5-.js';
|
|
3
3
|
import 'protobufjs/minimal';
|
|
4
4
|
import 'ms';
|
|
5
|
+
import './comlink-D0blLC4P.js';
|
|
5
6
|
import 'react';
|
|
6
7
|
import 'zustand';
|
|
7
8
|
import 'react-mosaic-component';
|
|
8
9
|
import '@mui/material';
|
|
9
10
|
import './i18next-C5Qe4-E1.js';
|
|
10
|
-
import './foxglove-protocol-
|
|
11
|
+
import './foxglove-protocol-RBwoTi12.js';
|
|
11
12
|
import 'react-dnd';
|
|
12
13
|
import 'react-dnd-html5-backend';
|
|
13
14
|
import '@emotion/react';
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { aC as ContextTracker, au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ap as foldNodeProp, aM as bracketMatchingHandle, at as LanguageSupport, aI as EditorView, ay as syntaxTree, aJ as EditorSelection } from './index-
|
|
2
|
-
import './FoxgloveServer-
|
|
1
|
+
import { aC as ContextTracker, au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ap as foldNodeProp, aM as bracketMatchingHandle, at as LanguageSupport, aI as EditorView, ay as syntaxTree, aJ as EditorSelection } from './index-DZlfOfTk.js';
|
|
2
|
+
import './FoxgloveServer-tJZcJH5-.js';
|
|
3
3
|
import 'protobufjs/minimal';
|
|
4
4
|
import 'ms';
|
|
5
|
+
import './comlink-D0blLC4P.js';
|
|
5
6
|
import 'react';
|
|
6
7
|
import 'zustand';
|
|
7
8
|
import 'react-mosaic-component';
|
|
8
9
|
import '@mui/material';
|
|
9
10
|
import './i18next-C5Qe4-E1.js';
|
|
10
|
-
import './foxglove-protocol-
|
|
11
|
+
import './foxglove-protocol-RBwoTi12.js';
|
|
11
12
|
import 'react-dnd';
|
|
12
13
|
import 'react-dnd-html5-backend';
|
|
13
14
|
import '@emotion/react';
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, ap as foldNodeProp, aB as foldInside, at as LanguageSupport } from './index-
|
|
2
|
-
import './FoxgloveServer-
|
|
1
|
+
import { aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, ap as foldNodeProp, aB as foldInside, at as LanguageSupport } from './index-DZlfOfTk.js';
|
|
2
|
+
import './FoxgloveServer-tJZcJH5-.js';
|
|
3
3
|
import 'protobufjs/minimal';
|
|
4
4
|
import 'ms';
|
|
5
|
+
import './comlink-D0blLC4P.js';
|
|
5
6
|
import 'react';
|
|
6
7
|
import 'zustand';
|
|
7
8
|
import 'react-mosaic-component';
|
|
8
9
|
import '@mui/material';
|
|
9
10
|
import './i18next-C5Qe4-E1.js';
|
|
10
|
-
import './foxglove-protocol-
|
|
11
|
+
import './foxglove-protocol-RBwoTi12.js';
|
|
11
12
|
import 'react-dnd';
|
|
12
13
|
import 'react-dnd-html5-backend';
|
|
13
14
|
import '@emotion/react';
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, aA as delimitedIndent, ap as foldNodeProp, aB as foldInside, aK as html, at as LanguageSupport, aL as parseMixed } from './index-
|
|
2
|
-
import './FoxgloveServer-
|
|
1
|
+
import { au as ExternalTokenizer, aq as styleTags, ar as tags, av as LRParser, as as LRLanguage, an as indentNodeProp, ao as continuedIndent, aA as delimitedIndent, ap as foldNodeProp, aB as foldInside, aK as html, at as LanguageSupport, aL as parseMixed } from './index-DZlfOfTk.js';
|
|
2
|
+
import './FoxgloveServer-tJZcJH5-.js';
|
|
3
3
|
import 'protobufjs/minimal';
|
|
4
4
|
import 'ms';
|
|
5
|
+
import './comlink-D0blLC4P.js';
|
|
5
6
|
import 'react';
|
|
6
7
|
import 'zustand';
|
|
7
8
|
import 'react-mosaic-component';
|
|
8
9
|
import '@mui/material';
|
|
9
10
|
import './i18next-C5Qe4-E1.js';
|
|
10
|
-
import './foxglove-protocol-
|
|
11
|
+
import './foxglove-protocol-RBwoTi12.js';
|
|
11
12
|
import 'react-dnd';
|
|
12
13
|
import 'react-dnd-html5-backend';
|
|
13
14
|
import '@emotion/react';
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
export { aR as ImagePanel, aQ as PanelLayout, aS as PointCloudPanel, aO as VisualizerConnection, aP as VisualizerContext } from './index-
|
|
2
|
-
import './FoxgloveServer-
|
|
1
|
+
export { aR as ImagePanel, aQ as PanelLayout, aS as PointCloudPanel, aO as VisualizerConnection, aP as VisualizerContext } from './index-DZlfOfTk.js';
|
|
2
|
+
import './FoxgloveServer-tJZcJH5-.js';
|
|
3
3
|
import 'protobufjs/minimal';
|
|
4
4
|
import 'ms';
|
|
5
|
+
import './comlink-D0blLC4P.js';
|
|
5
6
|
import 'react';
|
|
6
7
|
import 'zustand';
|
|
7
8
|
import 'react-mosaic-component';
|
|
8
9
|
import '@mui/material';
|
|
9
10
|
import './i18next-C5Qe4-E1.js';
|
|
10
|
-
import './foxglove-protocol-
|
|
11
|
+
import './foxglove-protocol-RBwoTi12.js';
|
|
11
12
|
import 'react-dnd';
|
|
12
13
|
import 'react-dnd-html5-backend';
|
|
13
14
|
import '@emotion/react';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProtobufKind } from "../messaging/protobuf.js";
|
|
1
|
+
import type { ProtobufKind } from "../messaging/protobuf.js";
|
|
2
2
|
import '../fonts/fonts.css';
|
|
3
3
|
export type PanelTopic = {
|
|
4
4
|
name: string;
|
|
@@ -15,6 +15,7 @@ export type PanelProps = React.PropsWithChildren<{
|
|
|
15
15
|
triggerToast?: () => void;
|
|
16
16
|
renderedFps?: number;
|
|
17
17
|
renderDelay?: number;
|
|
18
|
+
toggleTopic?: (topic: string) => void;
|
|
18
19
|
}>;
|
|
19
20
|
export type PanelDetections = Record<string, boolean>;
|
|
20
21
|
export type AllDetections = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../src/components/Panel.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../../src/components/Panel.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,oBAAoB,CAAC;AAE5B,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B,CAAC;AAIF,eAAO,MAAM,aAAa,QAAO,aAEhC,CAAC;AASF,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA4DtC,CAAC"}
|
|
@@ -18,7 +18,7 @@ const rawToAnnotations = (rawAnnotations, kind, current) => rawAnnotations.map((
|
|
|
18
18
|
extra: kind === 'extra',
|
|
19
19
|
enabled: current.find(({ name }) => name === annotationTopic)?.enabled ?? kind === 'main'
|
|
20
20
|
}));
|
|
21
|
-
export const Panel = ({ children, kind, topic, disableAnnotations = false, annotationTopics = [], extraAnnotationTopics = [], targetFps, renderedFps, renderDelay, triggerToast }) => {
|
|
21
|
+
export const Panel = ({ children, kind, topic, disableAnnotations = false, annotationTopics = [], extraAnnotationTopics = [], targetFps, renderedFps, renderDelay, toggleTopic, triggerToast }) => {
|
|
22
22
|
const [detections, setDetections] = React.useState([]);
|
|
23
23
|
React.useEffect(() => {
|
|
24
24
|
if (!disableAnnotations) {
|
|
@@ -29,6 +29,6 @@ export const Panel = ({ children, kind, topic, disableAnnotations = false, annot
|
|
|
29
29
|
}
|
|
30
30
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
31
31
|
}, [JSON.stringify(annotationTopics), JSON.stringify(extraAnnotationTopics)]);
|
|
32
|
-
return (_jsx(RemountOnValueChange, { value: "internal-player", children: _jsx(ErrorBoundary, { children: _jsx(DetectionContext.Provider, { value: { detections }, children: _jsxs(Stack, { flexGrow: 1, overflow: "hidden", border: "1px solid #d3d3d3d9", style: { borderRadius: "8px" }, children: [_jsx(PanelToolbar, { kind: kind, topic: topic, setDetections: setDetections, disableAnnotations: disableAnnotations, targetFps: targetFps, renderedFps: renderedFps, renderDelay: renderDelay, triggerToast: triggerToast }), _jsx(Suspense, { fallback: _jsx(EmptyState, { children: _jsx("div", { children: "Loading..." }) }), children: _jsx(RemountOnValueChange, { value: detections, children: children }) })] }) }) }) }));
|
|
32
|
+
return (_jsx(RemountOnValueChange, { value: "internal-player", children: _jsx(ErrorBoundary, { children: _jsx(DetectionContext.Provider, { value: { detections }, children: _jsxs(Stack, { flexGrow: 1, overflow: "hidden", border: "1px solid #d3d3d3d9", style: { borderRadius: "8px" }, children: [_jsx(PanelToolbar, { kind: kind, topic: topic, setDetections: setDetections, disableAnnotations: disableAnnotations, targetFps: targetFps, renderedFps: renderedFps, renderDelay: renderDelay, toggleTopic: toggleTopic, triggerToast: triggerToast }), _jsx(Suspense, { fallback: _jsx(EmptyState, { children: _jsx("div", { children: "Loading..." }) }), children: _jsx(RemountOnValueChange, { value: detections, children: children }) })] }) }) }) }));
|
|
33
33
|
};
|
|
34
34
|
//# sourceMappingURL=Panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../../src/components/Panel.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,UAAU,MAAM,gDAAgD,CAAC;AACxE,OAAO,aAAa,MAAM,mDAAmD,CAAC;AAC9E,OAAO,oBAAoB,MAAM,0DAA0D,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../../src/components/Panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type PanelTopic } from "./Panel.js";
|
|
2
|
-
import { ProtobufKind } from "../messaging/protobuf.js";
|
|
2
|
+
import type { ProtobufKind } from "../messaging/protobuf.js";
|
|
3
3
|
import "@luxonis/common-fe-components/styles";
|
|
4
4
|
export type PanelToolbarProps = {
|
|
5
5
|
topic: string;
|
|
@@ -10,6 +10,7 @@ export type PanelToolbarProps = {
|
|
|
10
10
|
renderedFps?: number;
|
|
11
11
|
renderDelay?: number;
|
|
12
12
|
triggerToast?: () => void;
|
|
13
|
+
toggleTopic?: (topic: string) => void;
|
|
13
14
|
};
|
|
14
15
|
export declare const PanelToolbar: React.FC<PanelToolbarProps>;
|
|
15
16
|
//# sourceMappingURL=PanelToolbar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PanelToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,YAAY,CAAC;AAG5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,sCAAsC,CAAC;AA4B9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,CAAC;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyMpD,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
3
3
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
4
4
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
5
|
-
import { ArrowDownIcon, ArrowUpIcon, Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Flex, HelpIcon, Icon, Label, NormalText, SubHeader, Tooltip, } from "@luxonis/common-fe-components";
|
|
5
|
+
import { ArrowDownIcon, ArrowUpIcon, Button, CloseIcon, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Flex, HelpIcon, Icon, Label, NormalText, SubHeader, Tooltip, } from "@luxonis/common-fe-components";
|
|
6
6
|
import { ImCheckboxChecked, ImCheckboxUnchecked } from "react-icons/im";
|
|
7
7
|
import { useDetections } from "./Panel.js";
|
|
8
8
|
import { useConnections } from "../context/ConnectionsProvider.js";
|
|
@@ -15,7 +15,7 @@ const PanelAnnotationButton = ({ topic, onClick }) => {
|
|
|
15
15
|
}, [onClick]);
|
|
16
16
|
return (_jsx(DropdownMenuItem, { onClick: handleClick, children: _jsxs(Flex, { align: "center", gap: "sm", children: [_jsx(Icon, { color: "active", icon: topic.enabled ? ImCheckboxChecked : ImCheckboxUnchecked }), _jsx(NormalText, { text: topic.name })] }) }));
|
|
17
17
|
};
|
|
18
|
-
export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations = false, targetFps, triggerToast, renderedFps,
|
|
18
|
+
export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations = false, targetFps, triggerToast, renderedFps, toggleTopic }) => {
|
|
19
19
|
const [metrics, setMetrics] = React.useState();
|
|
20
20
|
const { detections } = useDetections();
|
|
21
21
|
const connections = useConnections();
|
|
@@ -56,13 +56,16 @@ export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations =
|
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
58
|
return;
|
|
59
|
-
}, [targetFps, metrics?.incomingMessagesFps]);
|
|
59
|
+
}, [targetFps, metrics?.incomingMessagesFps, triggerToast]);
|
|
60
60
|
const makeDetection = React.useCallback((detection, { extra }) => (extra ? detection.extra && !detection.enabled : !detection.extra || detection.enabled) && (_jsx(PanelAnnotationButton, { topic: detection, onClick: () => {
|
|
61
61
|
onToggleTopic(detection.name);
|
|
62
62
|
} }, detection.name)), [onToggleTopic]);
|
|
63
|
+
const descriptionRef = React.useRef(null);
|
|
63
64
|
return (_jsxs(Flex, { direction: "row", gap: "sm", align: "center", justify: "space-between", style: {
|
|
64
65
|
paddingLeft: 16,
|
|
65
|
-
}, children: [_jsxs(Flex, { direction: "column", gap: "xxs", align: "start", justify: "start", paddingY: "xs", children: [
|
|
66
|
+
}, children: [_jsxs(Flex, { direction: "column", gap: "xxs", align: "start", justify: "start", paddingY: "xs", children: [_jsxs(Flex, { direction: "row", gap: "sm", align: "center", justify: "start", children: [_jsx(SubHeader, { text: name }), _jsx(Button, { variant: "outline", colorVariant: "white", size: "xs", p: "2", icon: CloseIcon, onClick: () => {
|
|
67
|
+
toggleTopic?.(name);
|
|
68
|
+
} })] }), _jsx(Flex, { direction: "row", gap: "sm", align: "start", justify: "start", children: _jsxs(Flex, { direction: "row", gap: "sm", align: "start", justify: "start", ref: descriptionRef, children: [targetFps && (_jsx(Label, { text: `Camera: ${targetFps} FPS` })), metrics?.incomingMessagesFps && (_jsx(Label, { text: `Network: ${metrics.incomingMessagesFps} FPS` })), metrics?.decodedMessagesFps && (_jsx(Label, { text: `Decoding: ${metrics.decodedMessagesFps} FPS` })), renderedFps && (_jsx(Label, { text: `Rendering: ${renderedFps} ${Math.round(renderedFps / 2)} FPS` })), eventLoopDelay && (_jsx(Label, { text: `Frontend Delay: ${Math.ceil(eventLoopDelay)} ms` }))] }) })] }), !disableAnnotations && kind === "image" && (_jsxs(DropdownMenu, { onOpenChange: setAnnotationsOpened, children: [_jsx(DropdownMenuTrigger, { asChild: true, disabled: detections.length === 0, children: _jsx(Button, { variant: "outline", label: "Annotations", "aria-controls": annotationsOpened ? "basic-menu" : undefined, "aria-haspopup": "true", "aria-expanded": annotationsOpened ? "true" : undefined, icon: annotationsOpened ? ArrowUpIcon : ArrowDownIcon, disabled: detections.length === 0, style: {
|
|
66
69
|
borderRadius: 0,
|
|
67
70
|
borderTopRightRadius: 8,
|
|
68
71
|
height: "100%",
|
|
@@ -71,9 +74,8 @@ export const PanelToolbar = ({ topic, kind, setDetections, disableAnnotations =
|
|
|
71
74
|
}, icon: extraVisible ? ArrowUpIcon : ArrowDownIcon, style: {
|
|
72
75
|
borderRadius: 4,
|
|
73
76
|
}, children: extraVisible ? "Less" : "More" })), extraVisible &&
|
|
74
|
-
detections.map((detection) => makeDetection(detection, { extra: true }))] })] })), kind === "pointCloud" && (_jsx(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
} }) }))] }));
|
|
77
|
+
detections.map((detection) => makeDetection(detection, { extra: true }))] })] })), kind === "pointCloud" && (_jsx(Flex, { style: {
|
|
78
|
+
paddingRight: 16,
|
|
79
|
+
}, children: _jsx(Tooltip, { content: _jsxs(_Fragment, { children: [_jsx(Label, { text: "To move camera:" }), _jsxs("ul", { children: [_jsx("li", { children: "W - Move camera forward" }), _jsx("li", { children: "A - Move camera backward" }), _jsx("li", { children: "S - Move camera to the left" }), _jsx("li", { children: "D - Move camera to the right" }), _jsx("li", { children: "Scroll \u2013 Zoom in and out" }), _jsx("li", { children: "Drag \u2013 Move camera parallel to the ground" }), _jsx("li", { children: `Right-click + Drag horizontally – Rotate the camera around the world's z-axis` }), _jsx("li", { children: `Right-click + Drag vertically – Pan the camera around the world's x- and y- axes` })] })] }), children: _jsx(Icon, { icon: HelpIcon, size: "sm", color: "gray", cursor: "help" }) }) }))] }));
|
|
78
80
|
};
|
|
79
81
|
//# sourceMappingURL=PanelToolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelToolbar.js","sourceRoot":"","sources":["../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EACL,aAAa,EACb,WAAW,EACX,MAAM,EACN,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,UAAU,EACV,SAAS,EACT,OAAO,GACR,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EAAmB,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,sCAAsC,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"PanelToolbar.js","sourceRoot":"","sources":["../../../../src/components/PanelToolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Time } from "@foxglove/rostime";
|
|
2
|
-
import { MessageEvent,
|
|
3
|
-
import {
|
|
4
|
-
import { MessageHandler } from "../messaging/message-handler.js";
|
|
1
|
+
import { type Time } from "@foxglove/rostime";
|
|
2
|
+
import { type MessageEvent, PlayerPresence, type PlayerProblem, type PlayerState } from "@foxglove/studio-base/players/types";
|
|
3
|
+
import { type MessageHandler } from "../messaging/message-handler.js";
|
|
5
4
|
import { MetricsManager } from "../utils/metrics-manager.js";
|
|
5
|
+
import { PoitCloudSyncFramework } from "../utils/poitcloud-sync.js";
|
|
6
|
+
import type { FoxgloveMessage } from "./communicator.js";
|
|
6
7
|
export type Metrics = {
|
|
7
8
|
incomingMessagesFps: number;
|
|
8
9
|
decodedMessagesFps: number;
|
|
@@ -27,9 +28,11 @@ export declare abstract class FoxgloveConnection {
|
|
|
27
28
|
protected publishedTopics: Map<any, any>;
|
|
28
29
|
protected subscribedTopics: Map<any, any>;
|
|
29
30
|
protected advertisedServices: Map<any, any>;
|
|
31
|
+
protected skipPoitcloud: boolean;
|
|
30
32
|
protected problems: ProblemManager;
|
|
31
33
|
protected inputMetrics: MetricsManager;
|
|
32
34
|
protected decodeMetrics: MetricsManager;
|
|
35
|
+
protected PoitCloudSyncFramework: PoitCloudSyncFramework;
|
|
33
36
|
protected messageHandler: MessageHandler;
|
|
34
37
|
protected topics: {
|
|
35
38
|
[key: string]: {
|
|
@@ -42,6 +45,7 @@ export declare abstract class FoxgloveConnection {
|
|
|
42
45
|
getTopicMetrics(topic: string): Metrics;
|
|
43
46
|
protected getCurrentTime(): Time;
|
|
44
47
|
protected onMessagePacket(event: globalThis.MessageEvent<FoxgloveMessage>): void;
|
|
48
|
+
protected handleParsePoitcloudMessage(coloredEvent: MessageEvent): Promise<void>;
|
|
45
49
|
protected handleParsedMessage(event: MessageEvent): void;
|
|
46
50
|
protected emitState: (() => void) & {
|
|
47
51
|
currentPromise?: Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foxglove-connection.d.ts","sourceRoot":"","sources":["../../../../src/connection/foxglove-connection.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAyC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"foxglove-connection.d.ts","sourceRoot":"","sources":["../../../../src/connection/foxglove-connection.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,IAAI,EAAyC,MAAM,mBAAmB,CAAC;AAErF,OAAO,EACL,KAAK,YAAY,EAEjB,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,MAAM,MAAM,OAAO,GAAG;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,cAAM,cAAc;IAClB,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAM;IAElC,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIxC,aAAa,IAAI,IAAI;IAIrB,WAAW,IAAI,aAAa,EAAE;CAGtC;AAED,8BAAsB,kBAAkB;IACtC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;IAGrB,SAAS,CAAC,cAAc,EAAE,cAAc,CAA8B;IACtE,SAAS,CAAC,kBAAkB,WAAwC;IAGpE,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,CAAM;IAC7C,SAAS,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAE1C,SAAS,CAAC,aAAa,SAAK;IAE5B,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC3B,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAEzB,SAAS,CAAC,UAAU,gBAAa;IACjC,SAAS,CAAC,eAAe,gBAAa;IACtC,SAAS,CAAC,gBAAgB,gBAAa;IACvC,SAAS,CAAC,kBAAkB,gBAAa;IACzC,SAAS,CAAC,aAAa,UAAS;IAChC,SAAS,CAAC,QAAQ,iBAAwB;IAC1C,SAAS,CAAC,YAAY,iBAAwB;IAC9C,SAAS,CAAC,aAAa,iBAAwB;IAC/C,SAAS,CAAC,sBAAsB,yBAAgC;IAEhE,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAEzC,SAAS,CAAC,MAAM,EAAE;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAM;gBAGY,EAAE,EAAE,MAAM;IAKtB,WAAW,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAKxE,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAO9C,SAAS,CAAC,cAAc,IAAI,IAAI;IAIhC,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,IAAI;cAKhE,2BAA2B,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBtF,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAexD,SAAS,CAAC,SAAS;;MAyDhB;CACJ"}
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
import { debouncePromise } from "@foxglove/den/async";
|
|
5
5
|
import { fromMillis, isGreaterThan, isLessThan } from "@foxglove/rostime";
|
|
6
6
|
import { estimateObjectSize } from "@foxglove/studio-base/players/messageMemoryEstimation";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { PlayerCapabilities, PlayerPresence } from "@foxglove/studio-base/players/types";
|
|
8
|
+
import { i420ToRgbaToPointcloudWorker } from '../messaging/deserialization/pointcloud/utils.js';
|
|
9
9
|
import { createMessageHandler } from "../messaging/message-handler.js";
|
|
10
10
|
import { MetricsManager } from "../utils/metrics-manager.js";
|
|
11
|
+
import { PoitCloudSyncFramework } from "../utils/poitcloud-sync.js";
|
|
11
12
|
class ProblemManager {
|
|
12
13
|
problems = [];
|
|
13
14
|
addProblem(problem) {
|
|
@@ -36,9 +37,11 @@ export class FoxgloveConnection {
|
|
|
36
37
|
publishedTopics = new Map();
|
|
37
38
|
subscribedTopics = new Map();
|
|
38
39
|
advertisedServices = new Map();
|
|
40
|
+
skipPoitcloud = false;
|
|
39
41
|
problems = new ProblemManager();
|
|
40
42
|
inputMetrics = new MetricsManager();
|
|
41
43
|
decodeMetrics = new MetricsManager();
|
|
44
|
+
PoitCloudSyncFramework = new PoitCloudSyncFramework();
|
|
42
45
|
// message handler
|
|
43
46
|
messageHandler;
|
|
44
47
|
topics = {};
|
|
@@ -63,25 +66,37 @@ export class FoxgloveConnection {
|
|
|
63
66
|
this.inputMetrics.registerEvent(event.data.topic);
|
|
64
67
|
this.messageHandler.handle(event.data);
|
|
65
68
|
}
|
|
69
|
+
async handleParsePoitcloudMessage(coloredEvent) {
|
|
70
|
+
const poitcloudFrame = this.PoitCloudSyncFramework.getFrame(coloredEvent.receiveTime.nsec);
|
|
71
|
+
if (poitcloudFrame) {
|
|
72
|
+
// @ts-expect-error - ITS unknow
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
74
|
+
const message = await i420ToRgbaToPointcloudWorker(coloredEvent.message.data, coloredEvent.message.width, coloredEvent.message.height, poitcloudFrame.width, poitcloudFrame.height, poitcloudFrame.data);
|
|
75
|
+
coloredEvent.topic = "Point Cloud";
|
|
76
|
+
coloredEvent.schemaName = "foxglove.PointCloud";
|
|
77
|
+
coloredEvent.message = poitcloudFrame;
|
|
78
|
+
// @ts-expect-error - ITS unknow
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
80
|
+
coloredEvent.message.data = message;
|
|
81
|
+
const messageSize = estimateObjectSize(coloredEvent.message);
|
|
82
|
+
coloredEvent.sizeInBytes = messageSize;
|
|
83
|
+
this.messageEvents.push(coloredEvent);
|
|
84
|
+
this.emitState();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
66
87
|
handleParsedMessage(event) {
|
|
67
88
|
this.decodeMetrics.registerEvent(event.topic);
|
|
68
|
-
if (event.topic === "H.264 Stream") {
|
|
69
|
-
this.lastEncodedFrame = event;
|
|
70
|
-
}
|
|
71
89
|
if (event.topic === "Point Cloud") {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
// @ts-expect-error - ITS unknow
|
|
77
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
78
|
-
event.message.data = i420ToRgbaToPointcloud(this.lastEncodedFrame.message.data, this.lastEncodedFrame.message.width, this.lastEncodedFrame.message.height, event.message.width, event.message.height, event.message.data);
|
|
79
|
-
}
|
|
90
|
+
this.PoitCloudSyncFramework.addFrame(event.message);
|
|
91
|
+
return;
|
|
80
92
|
}
|
|
81
93
|
const messageSize = estimateObjectSize(event.message);
|
|
82
94
|
event.sizeInBytes = messageSize;
|
|
83
95
|
this.messageEvents.push(event);
|
|
84
96
|
this.emitState();
|
|
97
|
+
if (event.topic === "H.264 Stream") {
|
|
98
|
+
void this.handleParsePoitcloudMessage(event);
|
|
99
|
+
}
|
|
85
100
|
}
|
|
86
101
|
emitState = debouncePromise(async () => {
|
|
87
102
|
const messages = this.messageEvents;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foxglove-connection.js","sourceRoot":"","sources":["../../../../src/connection/foxglove-connection.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"foxglove-connection.js","sourceRoot":"","sources":["../../../../src/connection/foxglove-connection.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/src/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i420ToRgbaToPoitcloud.worker.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
4
|
+
import { expose } from "comlink";
|
|
5
|
+
function i420ToRgbaToPointcloud(i420Data, i420Width, i420Height, depthWidth, depthHeight, data) {
|
|
6
|
+
const frameSize = i420Width * i420Height;
|
|
7
|
+
const uOffset = frameSize;
|
|
8
|
+
const vOffset = frameSize + frameSize / 4;
|
|
9
|
+
const pointCount = data.byteLength / 16;
|
|
10
|
+
const buffer = new ArrayBuffer(data.byteLength);
|
|
11
|
+
const view = new DataView(buffer);
|
|
12
|
+
const dataView = new DataView(data.buffer);
|
|
13
|
+
for (let i = 0; i < pointCount; i++) {
|
|
14
|
+
const depthX = i % depthWidth;
|
|
15
|
+
const depthY = Math.floor(i / depthWidth);
|
|
16
|
+
const i420X = Math.round(depthX * (i420Width / depthWidth));
|
|
17
|
+
const i420Y = Math.round(depthY * (i420Height / depthHeight));
|
|
18
|
+
if (i420X >= i420Width || i420Y >= i420Height) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const index = i420Y * i420Width + i420X;
|
|
22
|
+
const uvIndex = Math.floor(i420Y / 2) * (i420Width / 2) + Math.floor(i420X / 2);
|
|
23
|
+
const Y = i420Data[index] ?? 0;
|
|
24
|
+
const U = (i420Data[uOffset + uvIndex] ?? 128) - 128;
|
|
25
|
+
const V = (i420Data[vOffset + uvIndex] ?? 128) - 128;
|
|
26
|
+
let R = Y + 1.402 * V;
|
|
27
|
+
let G = Y - 0.344136 * U - 0.714136 * V;
|
|
28
|
+
let B = Y + 1.772 * U;
|
|
29
|
+
R = Math.min(255, Math.max(0, R));
|
|
30
|
+
G = Math.min(255, Math.max(0, G));
|
|
31
|
+
B = Math.min(255, Math.max(0, B));
|
|
32
|
+
const offset = i * 16;
|
|
33
|
+
view.setFloat32(offset, dataView.getFloat32(offset, true), true); // x
|
|
34
|
+
view.setFloat32(offset + 4, dataView.getFloat32(offset + 4, true), true); // y
|
|
35
|
+
view.setFloat32(offset + 8, dataView.getFloat32(offset + 8, true), true); // z
|
|
36
|
+
view.setUint8(offset + 12, R); // Red
|
|
37
|
+
view.setUint8(offset + 13, G); // Green
|
|
38
|
+
view.setUint8(offset + 14, B); // Blue
|
|
39
|
+
view.setUint8(offset + 15, 255); // Alpha (fully opaque)
|
|
40
|
+
}
|
|
41
|
+
return new Uint8Array(buffer);
|
|
42
|
+
}
|
|
43
|
+
// Expose the function using Comlink
|
|
44
|
+
expose({ i420ToRgbaToPointcloud });
|
|
45
|
+
//# sourceMappingURL=i420ToRgbaToPoitcloud.worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i420ToRgbaToPoitcloud.worker.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare function uint8ArrayToUint16Array(uint8Array: Uint8Array): Uint16Array;
|
|
2
2
|
export declare function nv12ToRgbaToPointcloud(nv12Data: Uint8Array, nv12Width: number, nv12Height: number, depthWidth: number, depthHeight: number, data: Uint8Array): Uint8Array;
|
|
3
|
+
export declare function i420ToRgbaToPointcloudWorker(i420Data: Uint8Array, i420Width: number, i420Height: number, depthWidth: number, depthHeight: number, data: Uint8Array): Promise<Uint8Array>;
|
|
3
4
|
export declare function i420ToRgbaToPointcloud(i420Data: Uint8Array, i420Width: number, i420Height: number, depthWidth: number, depthHeight: number, data: Uint8Array): Uint8Array;
|
|
4
5
|
type NeuralCameraIntrinsic = {
|
|
5
6
|
focalLenght: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/pointcloud/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/pointcloud/utils.ts"],"names":[],"mappings":"AAMA,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,CAmB3E;AAID,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,UAAU,GACf,UAAU,CA2CZ;AAiBD,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,UAAU,CAAC,CAErB;AAGD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,UAAU,GACf,UAAU,CA4CZ;AAED,KAAK,qBAAqB,GAAG;IAC3B,WAAW,EAAE;QACX,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,cAAc,EAAE;QACd,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAI;IACpC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
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
4
|
/// <reference types="@webgpu/types" />
|
|
5
|
+
import { wrap } from "comlink";
|
|
5
6
|
export function uint8ArrayToUint16Array(uint8Array) {
|
|
6
7
|
if (uint8Array.length % 2 !== 0) {
|
|
7
8
|
throw new Error("Uint8Array length must be a multiple of 2 for conversion to Uint16Array");
|
|
@@ -55,6 +56,13 @@ export function nv12ToRgbaToPointcloud(nv12Data, nv12Width, nv12Height, depthWid
|
|
|
55
56
|
}
|
|
56
57
|
return new Uint8Array(buffer);
|
|
57
58
|
}
|
|
59
|
+
const worker = new Worker(new URL("./i420ToRgbaToPoitcloud.worker.ts", import.meta.url), {
|
|
60
|
+
type: "module",
|
|
61
|
+
});
|
|
62
|
+
const workerApi = wrap(worker);
|
|
63
|
+
export async function i420ToRgbaToPointcloudWorker(i420Data, i420Width, i420Height, depthWidth, depthHeight, data) {
|
|
64
|
+
return await workerApi.i420ToRgbaToPointcloud(i420Data, i420Width, i420Height, depthWidth, depthHeight, data);
|
|
65
|
+
}
|
|
58
66
|
/* H264 (i420) to RGBA */
|
|
59
67
|
export function i420ToRgbaToPointcloud(i420Data, i420Width, i420Height, depthWidth, depthHeight, data) {
|
|
60
68
|
const frameSize = i420Width * i420Height;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/pointcloud/utils.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,uCAAuC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/messaging/deserialization/pointcloud/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { PanelProps } from "../components/Panel.js";
|
|
2
|
+
import { type PanelProps } from "../components/Panel.js";
|
|
3
3
|
type ImagePanelBodyProps = {
|
|
4
4
|
topic: string;
|
|
5
5
|
frameRenderedEvent?: (currentTime: number) => void;
|
|
6
6
|
};
|
|
7
|
-
export type ImagePanelProps = Omit<PanelProps, 'kind' | 'metrics'> & ImagePanelBodyProps
|
|
7
|
+
export type ImagePanelProps = Omit<PanelProps, 'kind' | 'metrics'> & ImagePanelBodyProps & {
|
|
8
|
+
toggleTopic?: (topic: string) => void;
|
|
9
|
+
};
|
|
8
10
|
export declare const ImagePanel: React.NamedExoticComponent<Omit<PanelProps, "kind" | "metrics"> & ImagePanelBodyProps & {
|
|
11
|
+
toggleTopic?: (topic: string) => void;
|
|
12
|
+
} & {
|
|
9
13
|
targetFps?: number;
|
|
10
14
|
triggerToast?: () => void;
|
|
11
15
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImagePanel.d.ts","sourceRoot":"","sources":["../../../../src/panels/ImagePanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAS,UAAU,EAAiB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ImagePanel.d.ts","sourceRoot":"","sources":["../../../../src/panels/ImagePanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAS,KAAK,UAAU,EAAiB,MAAM,wBAAwB,CAAC;AAQ/E,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD,CAAC;AAyBF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,mBAAmB,GAAG;IAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,CAAC;AAErI,eAAO,MAAM,UAAU;kBAFoF,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;;gBAElC,MAAM;mBAAiB,MAAM,IAAI;EAmC/H,CAAC"}
|
|
@@ -4,8 +4,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
4
4
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
5
5
|
import React from "react";
|
|
6
6
|
import { Panel, useDetections } from "../components/Panel.js";
|
|
7
|
-
import { MetricsManager } from "../utils/metrics-manager";
|
|
8
7
|
import { createRenderDelaySampler } from "../components/measure-render-delay";
|
|
8
|
+
import { MetricsManager } from "../utils/metrics-manager";
|
|
9
9
|
const ImagePanelComponent = React.lazy(async () => await import("@foxglove/studio-base/panels/Image"));
|
|
10
10
|
const ImagePanelBody = ({ topic, frameRenderedEvent }) => {
|
|
11
11
|
const { detections } = useDetections();
|
|
@@ -45,6 +45,6 @@ export const ImagePanel = React.memo(function ImagePanel(props) {
|
|
|
45
45
|
renderedFpsMetricsManagerRef.current?.registerEvent('render');
|
|
46
46
|
addFrameTime(frameTime);
|
|
47
47
|
}, [addFrameTime]);
|
|
48
|
-
return (_jsx(Panel, { kind: "image", ...props, renderedFps: renderedFps, renderDelay: averageFrameDelay, children: _jsx(ImagePanelBody, { topic: props.topic, frameRenderedEvent: handleFrameRendered }) }));
|
|
48
|
+
return (_jsx(Panel, { kind: "image", ...props, toggleTopic: props.toggleTopic, renderedFps: renderedFps, renderDelay: averageFrameDelay, children: _jsx(ImagePanelBody, { topic: props.topic, frameRenderedEvent: handleFrameRendered }) }));
|
|
49
49
|
});
|
|
50
50
|
//# sourceMappingURL=ImagePanel.js.map
|