@viamrobotics/motion-tools 1.14.0 → 1.15.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.
Files changed (127) hide show
  1. package/dist/FrameConfigUpdater.svelte.d.ts +2 -2
  2. package/dist/HoverUpdater.svelte.d.ts +1 -1
  3. package/dist/attribute.js +1 -1
  4. package/dist/color.d.ts +1 -1
  5. package/dist/color.js +2 -2
  6. package/dist/components/App.svelte +25 -21
  7. package/dist/components/App.svelte.d.ts +1 -1
  8. package/dist/components/BatchedArrows.svelte +5 -3
  9. package/dist/components/Camera.svelte +1 -0
  10. package/dist/components/CameraControls.svelte +5 -3
  11. package/dist/components/Entities/Arrows/ArrowGroups.svelte +6 -3
  12. package/dist/components/Entities/Arrows/Arrows.svelte +6 -3
  13. package/dist/components/Entities/Entities.svelte +7 -5
  14. package/dist/components/Entities/Frame.svelte +8 -5
  15. package/dist/components/Entities/Frame.svelte.d.ts +2 -2
  16. package/dist/components/Entities/GLTF.svelte +8 -5
  17. package/dist/components/Entities/GLTF.svelte.d.ts +2 -2
  18. package/dist/components/Entities/Geometry.svelte +8 -5
  19. package/dist/components/Entities/Line.svelte +8 -5
  20. package/dist/components/Entities/Line.svelte.d.ts +1 -1
  21. package/dist/components/Entities/LineDots.svelte +1 -1
  22. package/dist/components/Entities/LineGeometry.svelte +1 -1
  23. package/dist/components/Entities/Mesh.svelte +8 -5
  24. package/dist/components/Entities/Points.svelte +9 -6
  25. package/dist/components/Entities/Points.svelte.d.ts +2 -2
  26. package/dist/components/Entities/Pose.svelte +4 -3
  27. package/dist/components/Entities/hooks/useEntityEvents.svelte.d.ts +1 -1
  28. package/dist/components/Entities/hooks/useEntityEvents.svelte.js +2 -2
  29. package/dist/components/FileDrop/FileDrop.svelte +10 -6
  30. package/dist/components/FileDrop/file-dropper.d.ts +1 -1
  31. package/dist/components/FileDrop/pcd-dropper.js +1 -1
  32. package/dist/components/FileDrop/ply-dropper.js +1 -1
  33. package/dist/components/FileDrop/snapshot-dropper.js +1 -1
  34. package/dist/components/Focus.svelte +4 -2
  35. package/dist/components/KeyboardControls.svelte +4 -2
  36. package/dist/components/Lasso/Debug.svelte +5 -2
  37. package/dist/components/Lasso/Lasso.svelte +9 -6
  38. package/dist/components/Lasso/Tool.svelte +10 -7
  39. package/dist/components/MeasureTool/MeasurePoint.svelte +2 -1
  40. package/dist/components/MeasureTool/MeasurePoint.svelte.d.ts +1 -1
  41. package/dist/components/MeasureTool/MeasureTool.svelte +7 -5
  42. package/dist/components/PCD.svelte +4 -3
  43. package/dist/components/PointerMissBox.svelte +3 -2
  44. package/dist/components/Scene.svelte +12 -9
  45. package/dist/components/SceneProviders.svelte +20 -18
  46. package/dist/components/Selected.svelte +5 -3
  47. package/dist/components/Snapshot.svelte +8 -5
  48. package/dist/components/StaticGeometries.svelte +10 -7
  49. package/dist/components/hover/HoveredEntities.svelte +2 -1
  50. package/dist/components/hover/HoveredEntity.svelte +2 -1
  51. package/dist/components/hover/HoveredEntityTooltip.svelte +1 -0
  52. package/dist/components/hover/LinkedHoveredEntity.svelte +7 -5
  53. package/dist/components/overlay/AddRelationship.svelte +4 -2
  54. package/dist/components/overlay/Details.svelte +21 -19
  55. package/dist/components/overlay/FloatingPanel.svelte +40 -3
  56. package/dist/components/overlay/FloatingPanel.svelte.d.ts +1 -0
  57. package/dist/components/overlay/LiveUpdatesBanner.svelte +1 -0
  58. package/dist/components/overlay/Logs.svelte +4 -2
  59. package/dist/components/overlay/Popover.svelte +3 -2
  60. package/dist/components/overlay/RefreshRate.svelte +4 -2
  61. package/dist/components/overlay/dashboard/Button.svelte +2 -1
  62. package/dist/components/overlay/dashboard/Button.svelte.d.ts +1 -1
  63. package/dist/components/overlay/dashboard/Dashboard.svelte +3 -1
  64. package/dist/components/overlay/left-pane/AddFrames.svelte +4 -2
  65. package/dist/components/overlay/left-pane/Drawer.svelte +3 -2
  66. package/dist/components/overlay/left-pane/Tree.svelte +6 -12
  67. package/dist/components/overlay/left-pane/TreeContainer.svelte +33 -50
  68. package/dist/components/overlay/left-pane/TreeContainer.svelte.d.ts +1 -1
  69. package/dist/components/overlay/settings/Settings.svelte +37 -10
  70. package/dist/components/overlay/settings/Tabs.svelte +2 -1
  71. package/dist/components/overlay/widgets/ArmPositions.svelte +3 -2
  72. package/dist/components/overlay/widgets/Camera.svelte +6 -5
  73. package/dist/components/weblab/WeblabActive.svelte +2 -1
  74. package/dist/components/xr/ArmTeleop.svelte +7 -6
  75. package/dist/components/xr/BentPlaneGeometry.svelte +3 -2
  76. package/dist/components/xr/CameraFeed.svelte +2 -0
  77. package/dist/components/xr/Controllers.svelte +5 -3
  78. package/dist/components/xr/Draggable.svelte +4 -3
  79. package/dist/components/xr/HandCollider.svelte +2 -1
  80. package/dist/components/xr/JointLimitsWidget.svelte +1 -0
  81. package/dist/components/xr/OriginMarker.svelte +2 -1
  82. package/dist/components/xr/PointDistance.svelte +3 -2
  83. package/dist/components/xr/XR.svelte +8 -6
  84. package/dist/components/xr/XRConfigPanel.svelte +4 -3
  85. package/dist/components/xr/XRControllerSettings.svelte +2 -1
  86. package/dist/components/xr/XRToast.svelte +4 -3
  87. package/dist/ecs/traits.d.ts +1 -1
  88. package/dist/ecs/traits.js +1 -1
  89. package/dist/ecs/useQuery.svelte.js +1 -1
  90. package/dist/frame.js +1 -1
  91. package/dist/hooks/use3DModels.svelte.js +3 -3
  92. package/dist/hooks/useConfigFrames.svelte.js +3 -3
  93. package/dist/hooks/useDrawAPI.svelte.js +9 -9
  94. package/dist/hooks/useFramelessComponents.svelte.js +1 -1
  95. package/dist/hooks/useFrames.svelte.js +7 -7
  96. package/dist/hooks/useGeometries.svelte.js +8 -8
  97. package/dist/hooks/useMouseRaycaster.svelte.d.ts +1 -1
  98. package/dist/hooks/useMouseRaycaster.svelte.js +1 -1
  99. package/dist/hooks/usePartConfig.svelte.d.ts +1 -1
  100. package/dist/hooks/usePartConfig.svelte.js +3 -3
  101. package/dist/hooks/usePointcloudObjects.svelte.js +6 -6
  102. package/dist/hooks/usePointclouds.svelte.js +5 -5
  103. package/dist/hooks/usePose.svelte.js +7 -7
  104. package/dist/hooks/useSelection.svelte.d.ts +1 -1
  105. package/dist/hooks/useWeblabs.svelte.d.ts +1 -0
  106. package/dist/hooks/useWeblabs.svelte.js +15 -3
  107. package/dist/hooks/useWorldState.svelte.js +8 -8
  108. package/dist/plugins/bvh.svelte.js +2 -2
  109. package/dist/snapshot.d.ts +2 -2
  110. package/dist/snapshot.js +4 -4
  111. package/dist/three/BatchedArrow.d.ts +1 -1
  112. package/dist/three/BatchedArrow.js +1 -1
  113. package/dist/three/InstancedArrows/InstancedArrows.d.ts +1 -1
  114. package/dist/three/InstancedArrows/InstancedArrows.js +3 -3
  115. package/dist/three/InstancedArrows/box.js +1 -1
  116. package/dist/three/InstancedArrows/geometry.js +1 -1
  117. package/dist/three/InstancedArrows/raycast.d.ts +1 -1
  118. package/dist/three/InstancedArrows/raycast.js +1 -1
  119. package/dist/three/OBBHelper.d.ts +1 -1
  120. package/dist/three/OBBHelper.js +1 -1
  121. package/dist/three/OrientationVector.js +1 -1
  122. package/dist/transform.js +1 -1
  123. package/package.json +3 -2
  124. package/dist/hooks/__tests__/fixtures/ResizableTestWrapper.svelte +0 -41
  125. package/dist/hooks/__tests__/fixtures/ResizableTestWrapper.svelte.d.ts +0 -6
  126. package/dist/hooks/useResizable.svelte.d.ts +0 -12
  127. package/dist/hooks/useResizable.svelte.js +0 -46
@@ -1,7 +1,7 @@
1
- import type { Entity } from 'koota';
2
1
  import type { Pose } from '@viamrobotics/sdk';
3
- import type { Frame } from './frame';
2
+ import type { Entity } from 'koota';
4
3
  import type { Vector3Like } from 'three';
4
+ import type { Frame } from './frame';
5
5
  type UpdateFrameCallback = {
6
6
  (componentName: string, referenceFrame: string, pose: Pose, geometry?: Frame['geometry']): void;
7
7
  };
@@ -1,5 +1,5 @@
1
- import type { Entity } from 'koota';
2
1
  import type { IntersectionEvent } from '@threlte/extras';
2
+ import type { Entity } from 'koota';
3
3
  export interface HoverInfo {
4
4
  index: number;
5
5
  x: number;
package/dist/attribute.js CHANGED
@@ -1,4 +1,4 @@
1
- import { BufferGeometry, BufferAttribute } from 'three';
1
+ import { BufferAttribute, BufferGeometry } from 'three';
2
2
  import { STRIDE } from './buffer';
3
3
  const colorStride = (colors, positions) => {
4
4
  const numVertices = positions.length / STRIDE.POSITIONS;
package/dist/color.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Color, type ColorRepresentation, type RGB } from 'three';
2
1
  import { ResourceName } from '@viamrobotics/sdk';
2
+ import { Color, type ColorRepresentation, type RGB } from 'three';
3
3
  /**
4
4
  * Darkens a THREE.Color by a given percentage while preserving hue.
5
5
  * @param color The original THREE.Color instance.
package/dist/color.js CHANGED
@@ -1,6 +1,6 @@
1
- import { Color } from 'three';
2
- import twColors from 'tailwindcss/colors';
3
1
  import { ResourceName } from '@viamrobotics/sdk';
2
+ import twColors from 'tailwindcss/colors';
3
+ import { Color } from 'three';
4
4
  // Step 3: linear sRGB → sRGB
5
5
  const linearToSrgb = (x) => {
6
6
  return x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055;
@@ -1,36 +1,40 @@
1
1
  <script lang="ts">
2
+ import type { Struct } from '@viamrobotics/sdk'
2
3
  import type { Snippet } from 'svelte'
4
+
5
+ import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools'
3
6
  import { Canvas } from '@threlte/core'
4
7
  import { PortalTarget } from '@threlte/extras'
5
- import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools'
8
+ import { useXR } from '@threlte/xr'
6
9
  import { provideToast, ToastContainer } from '@viamrobotics/prime-core'
7
- import type { Struct } from '@viamrobotics/sdk'
8
- import Scene from './Scene.svelte'
9
- import TreeContainer from './overlay/left-pane/TreeContainer.svelte'
10
+
11
+ import type { CameraPose } from '../hooks/useControls.svelte'
12
+
13
+ import Dashboard from './overlay/dashboard/Dashboard.svelte'
10
14
  import Details from './overlay/Details.svelte'
11
- import SceneProviders from './SceneProviders.svelte'
15
+ import TreeContainer from './overlay/left-pane/TreeContainer.svelte'
16
+ import Settings from './overlay/settings/Settings.svelte'
12
17
  import XR from './xr/XR.svelte'
13
- import { createPartIDContext } from '../hooks/usePartID.svelte'
14
- import Dashboard from './overlay/dashboard/Dashboard.svelte'
15
- import { domPortal } from '../portal'
16
- import { provideSettings } from '../hooks/useSettings.svelte'
17
- import FileDrop from './FileDrop/FileDrop.svelte'
18
- import { provideWeblabs } from '../hooks/useWeblabs.svelte'
19
- import { providePartConfig } from '../hooks/usePartConfig.svelte'
20
- import LiveUpdatesBanner from './overlay/LiveUpdatesBanner.svelte'
21
- import ArmPositions from './overlay/widgets/ArmPositions.svelte'
22
- import { provideEnvironment } from '../hooks/useEnvironment.svelte'
23
- import type { CameraPose } from '../hooks/useControls.svelte'
24
18
  import { provideWorld } from '../ecs'
25
19
  import {
26
- provideDrawConnectionConfig,
27
20
  type DrawConnectionConfig,
21
+ provideDrawConnectionConfig,
28
22
  } from '../hooks/useDrawConnectionConfig.svelte'
29
- import Camera from './overlay/widgets/Camera.svelte'
23
+ import { provideEnvironment } from '../hooks/useEnvironment.svelte'
24
+ import { providePartConfig } from '../hooks/usePartConfig.svelte'
25
+ import { createPartIDContext } from '../hooks/usePartID.svelte'
26
+ import { provideSettings } from '../hooks/useSettings.svelte'
27
+ import { provideWeblabs } from '../hooks/useWeblabs.svelte'
28
+ import { domPortal } from '../portal'
29
+
30
+ import FileDrop from './FileDrop/FileDrop.svelte'
30
31
  import HoveredEntities from './hover/HoveredEntities.svelte'
31
- import Settings from './overlay/settings/Settings.svelte'
32
- import { useXR } from '@threlte/xr'
32
+ import LiveUpdatesBanner from './overlay/LiveUpdatesBanner.svelte'
33
33
  import Logs from './overlay/Logs.svelte'
34
+ import ArmPositions from './overlay/widgets/ArmPositions.svelte'
35
+ import Camera from './overlay/widgets/Camera.svelte'
36
+ import Scene from './Scene.svelte'
37
+ import SceneProviders from './SceneProviders.svelte'
34
38
 
35
39
  interface LocalConfigProps {
36
40
  current: Struct
@@ -96,7 +100,7 @@
96
100
  {/if}
97
101
 
98
102
  <div
99
- class="relative h-full w-full overflow-hidden"
103
+ class="relative h-full w-full overflow-hidden dark:bg-white"
100
104
  bind:this={root}
101
105
  >
102
106
  <Canvas renderMode="on-demand">
@@ -1,5 +1,5 @@
1
- import type { Snippet } from 'svelte';
2
1
  import type { Struct } from '@viamrobotics/sdk';
2
+ import type { Snippet } from 'svelte';
3
3
  import type { CameraPose } from '../hooks/useControls.svelte';
4
4
  import { type DrawConnectionConfig } from '../hooks/useDrawConnectionConfig.svelte';
5
5
  interface LocalConfigProps {
@@ -1,11 +1,13 @@
1
1
  <script lang="ts">
2
+ import type { Entity } from 'koota'
3
+
2
4
  import { T } from '@threlte/core'
3
5
  import { Portal } from '@threlte/extras'
4
- import { BatchedArrow } from '../three/BatchedArrow'
5
- import { traits, useWorld } from '../ecs'
6
- import type { Entity } from 'koota'
7
6
  import { Color, Vector3 } from 'three'
8
7
 
8
+ import { traits, useWorld } from '../ecs'
9
+ import { BatchedArrow } from '../three/BatchedArrow'
10
+
9
11
  const arrowBatchMap = $state<Record<string, BatchedArrow>>({
10
12
  world: new BatchedArrow(),
11
13
  })
@@ -1,5 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { T } from '@threlte/core'
3
+
3
4
  import { useSettings } from '../hooks/useSettings.svelte'
4
5
 
5
6
  let { children, ...rest } = $props()
@@ -1,11 +1,13 @@
1
1
  <script lang="ts">
2
- import { MathUtils } from 'three'
3
2
  import { CameraControls, type CameraControlsRef, Gizmo, Portal } from '@threlte/extras'
4
- import { useCameraControls, useTransformControls } from '../hooks/useControls.svelte'
5
- import KeyboardControls from './KeyboardControls.svelte'
3
+ import { MathUtils } from 'three'
4
+
6
5
  import Button from './overlay/dashboard/Button.svelte'
6
+ import { useCameraControls, useTransformControls } from '../hooks/useControls.svelte'
7
7
  import { useSettings } from '../hooks/useSettings.svelte'
8
8
 
9
+ import KeyboardControls from './KeyboardControls.svelte'
10
+
9
11
  const cameraControls = useCameraControls()
10
12
  const settings = useSettings()
11
13
  const transformControls = useTransformControls()
@@ -1,10 +1,13 @@
1
1
  <script lang="ts">
2
- import { InstancedArrows } from '../../../three/InstancedArrows/InstancedArrows'
3
- import { traits, useWorld } from '../../../ecs'
4
2
  import type { Entity } from 'koota'
5
- import { STRIDE } from '../../../buffer'
3
+
6
4
  import { SvelteMap } from 'svelte/reactivity'
7
5
  import { Color } from 'three'
6
+
7
+ import { STRIDE } from '../../../buffer'
8
+ import { traits, useWorld } from '../../../ecs'
9
+ import { InstancedArrows } from '../../../three/InstancedArrows/InstancedArrows'
10
+
8
11
  import Arrows from './Arrows.svelte'
9
12
 
10
13
  const world = useWorld()
@@ -1,10 +1,13 @@
1
1
  <script lang="ts">
2
+ import type { Entity } from 'koota'
3
+
2
4
  import { T } from '@threlte/core'
3
5
  import { Portal } from '@threlte/extras'
4
- import type { Entity } from 'koota'
5
- import { traits } from '../../../ecs'
6
- import { useEntityEvents } from '../hooks/useEntityEvents.svelte'
6
+
7
7
  import type { InstancedArrows } from '../../../three/InstancedArrows/InstancedArrows'
8
+
9
+ import { useEntityEvents } from '../hooks/useEntityEvents.svelte'
10
+ import { traits } from '../../../ecs'
8
11
  import { useFocusedEntity, useSelectedEntity } from '../../../hooks/useSelection.svelte'
9
12
  import { meshBoundsRaycast, raycast } from '../../../three/InstancedArrows/raycast'
10
13
 
@@ -1,14 +1,16 @@
1
1
  <script lang="ts">
2
- import Pose from './Pose.svelte'
2
+ import { Not, Or } from 'koota'
3
+
4
+ import { traits, useQuery } from '../../ecs'
5
+
6
+ import Arrows from './Arrows/ArrowGroups.svelte'
3
7
  import Frame from './Frame.svelte'
8
+ import Geometry from './Geometry.svelte'
4
9
  import GLTF from './GLTF.svelte'
5
10
  import Label from './Label.svelte'
6
11
  import Line from './Line.svelte'
7
12
  import Points from './Points.svelte'
8
- import Arrows from './Arrows/ArrowGroups.svelte'
9
- import { traits, useQuery } from '../../ecs'
10
- import { Not, Or } from 'koota'
11
- import Geometry from './Geometry.svelte'
13
+ import Pose from './Pose.svelte'
12
14
 
13
15
  /**
14
16
  * Frames from a live machine are bucketed into their own query
@@ -10,19 +10,22 @@ Renders a Viam Frame object
10
10
  </script>
11
11
 
12
12
  <script lang="ts">
13
+ import type { Pose } from '@viamrobotics/sdk'
14
+ import type { Entity } from 'koota'
13
15
  import type { Snippet } from 'svelte'
14
- import { Group, type Object3D } from 'three'
16
+
15
17
  import { T, useThrelte } from '@threlte/core'
16
18
  import { Portal, PortalTarget } from '@threlte/extras'
17
- import { useEntityEvents } from './hooks/useEntityEvents.svelte'
18
- import Mesh from './Mesh.svelte'
19
+ import { Group, type Object3D } from 'three'
20
+
19
21
  import { colors, resourceColors } from '../../color'
20
- import type { Entity } from 'koota'
21
22
  import { traits, useTrait } from '../../ecs'
22
- import type { Pose } from '@viamrobotics/sdk'
23
23
  import { useResourceByName } from '../../hooks/useResourceByName.svelte'
24
24
  import { poseToObject3d } from '../../transform'
25
25
 
26
+ import { useEntityEvents } from './hooks/useEntityEvents.svelte'
27
+ import Mesh from './Mesh.svelte'
28
+
26
29
  interface Props {
27
30
  entity: Entity
28
31
  pose?: Pose
@@ -1,7 +1,7 @@
1
+ import type { Pose } from '@viamrobotics/sdk';
2
+ import type { Entity } from 'koota';
1
3
  import type { Snippet } from 'svelte';
2
4
  import { type Object3D } from 'three';
3
- import type { Entity } from 'koota';
4
- import type { Pose } from '@viamrobotics/sdk';
5
5
  interface Props {
6
6
  entity: Entity;
7
7
  pose?: Pose;
@@ -2,7 +2,7 @@
2
2
  module
3
3
  lang="ts"
4
4
  >
5
- import { GLTFLoader, DRACOLoader } from 'three/examples/jsm/Addons.js'
5
+ import { DRACOLoader, GLTFLoader } from 'three/examples/jsm/Addons.js'
6
6
 
7
7
  const dracoLoader = new DRACOLoader()
8
8
  const gltfLoader = new GLTFLoader()
@@ -12,15 +12,18 @@
12
12
  </script>
13
13
 
14
14
  <script lang="ts">
15
- import { T, type Props as ThrelteProps } from '@threlte/core'
16
- import { Portal, PortalTarget, useGltfAnimations, type ThrelteGltf } from '@threlte/extras'
15
+ import type { Entity } from 'koota'
17
16
  import type { Snippet } from 'svelte'
17
+
18
+ import { T, type Props as ThrelteProps } from '@threlte/core'
19
+ import { Portal, PortalTarget, type ThrelteGltf, useGltfAnimations } from '@threlte/extras'
18
20
  import { Group, type Object3D } from 'three'
19
- import { useEntityEvents } from './hooks/useEntityEvents.svelte'
20
- import type { Entity } from 'koota'
21
+
21
22
  import { traits, useTrait } from '../../ecs'
22
23
  import { poseToObject3d } from '../../transform'
23
24
 
25
+ import { useEntityEvents } from './hooks/useEntityEvents.svelte'
26
+
24
27
  interface Props extends ThrelteProps<Object3D> {
25
28
  entity: Entity
26
29
  children?: Snippet
@@ -1,7 +1,7 @@
1
- import { type Props as ThrelteProps } from '@threlte/core';
1
+ import type { Entity } from 'koota';
2
2
  import type { Snippet } from 'svelte';
3
+ import { type Props as ThrelteProps } from '@threlte/core';
3
4
  import { type Object3D } from 'three';
4
- import type { Entity } from 'koota';
5
5
  interface Props extends ThrelteProps<Object3D> {
6
6
  entity: Entity;
7
7
  children?: Snippet;
@@ -4,16 +4,19 @@
4
4
  Renders a Viam Geometry object
5
5
  -->
6
6
  <script lang="ts">
7
+ import type { Entity } from 'koota'
8
+ import type { Snippet } from 'svelte'
9
+
7
10
  import { T, useThrelte } from '@threlte/core'
11
+ import { Portal } from '@threlte/extras'
12
+
8
13
  import { traits, useTrait } from '../../ecs'
9
14
  import { use3DModels } from '../../hooks/use3DModels.svelte'
10
- import { Portal } from '@threlte/extras'
11
- import { poseToObject3d } from '../../transform'
12
15
  import { useSettings } from '../../hooks/useSettings.svelte'
13
- import Mesh from './Mesh.svelte'
16
+ import { poseToObject3d } from '../../transform'
17
+
14
18
  import { useEntityEvents } from './hooks/useEntityEvents.svelte'
15
- import type { Entity } from 'koota'
16
- import type { Snippet } from 'svelte'
19
+ import Mesh from './Mesh.svelte'
17
20
 
18
21
  interface Props {
19
22
  entity: Entity
@@ -5,17 +5,20 @@
5
5
  </script>
6
6
 
7
7
  <script lang="ts">
8
+ import type { Entity } from 'koota'
8
9
  import type { Snippet } from 'svelte'
10
+
9
11
  import { T, useThrelte } from '@threlte/core'
10
12
  import { meshBounds, Portal, PortalTarget } from '@threlte/extras'
11
- import type { Entity } from 'koota'
12
- import { traits, useTrait } from '../../ecs'
13
- import LineDots from './LineDots.svelte'
13
+ import { Line2, LineMaterial } from 'three/examples/jsm/Addons.js'
14
+
14
15
  import { darkenColor } from '../../color'
16
+ import { traits, useTrait } from '../../ecs'
17
+ import { poseToObject3d } from '../../transform'
18
+
15
19
  import { useEntityEvents } from './hooks/useEntityEvents.svelte'
16
- import { Line2, LineMaterial } from 'three/examples/jsm/Addons.js'
20
+ import LineDots from './LineDots.svelte'
17
21
  import LineGeometry from './LineGeometry.svelte'
18
- import { poseToObject3d } from '../../transform'
19
22
 
20
23
  interface Props {
21
24
  entity: Entity
@@ -1,5 +1,5 @@
1
- import type { Snippet } from 'svelte';
2
1
  import type { Entity } from 'koota';
2
+ import type { Snippet } from 'svelte';
3
3
  interface Props {
4
4
  entity: Entity;
5
5
  children?: Snippet;
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { T } from '@threlte/core'
3
- import { BatchedMesh, Matrix4, SphereGeometry, Vector3, type ColorRepresentation } from 'three'
3
+ import { BatchedMesh, type ColorRepresentation, Matrix4, SphereGeometry, Vector3 } from 'three'
4
4
 
5
5
  interface Props {
6
6
  color: ColorRepresentation
@@ -1,7 +1,7 @@
1
1
  <script>
2
- import { LineGeometry } from 'three/examples/jsm/Addons.js'
3
2
  import { T } from '@threlte/core'
4
3
  import { untrack } from 'svelte'
4
+ import { LineGeometry } from 'three/examples/jsm/Addons.js'
5
5
 
6
6
  let { positions } = $props()
7
7
 
@@ -1,14 +1,17 @@
1
1
  <script lang="ts">
2
- import { T, useThrelte, type Props as ThrelteProps } from '@threlte/core'
2
+ import type { Pose } from '@viamrobotics/sdk'
3
+ import type { Entity } from 'koota'
4
+
5
+ import { T, type Props as ThrelteProps, useThrelte } from '@threlte/core'
3
6
  import { type Snippet } from 'svelte'
4
7
  import { BufferGeometry, Color, DoubleSide, FrontSide, Mesh } from 'three'
5
- import { CapsuleGeometry } from '../../three/CapsuleGeometry'
8
+
6
9
  import { colors, darkenColor } from '../../color'
7
- import AxesHelper from '../AxesHelper.svelte'
8
- import type { Entity } from 'koota'
9
10
  import { traits, useTrait } from '../../ecs'
11
+ import { CapsuleGeometry } from '../../three/CapsuleGeometry'
10
12
  import { poseToObject3d } from '../../transform'
11
- import type { Pose } from '@viamrobotics/sdk'
13
+
14
+ import AxesHelper from '../AxesHelper.svelte'
12
15
 
13
16
  interface Props extends ThrelteProps<Mesh> {
14
17
  entity: Entity
@@ -1,13 +1,16 @@
1
1
  <script lang="ts">
2
- import { Points, PointsMaterial, OrthographicCamera } from 'three'
2
+ import type { Entity } from 'koota'
3
+ import type { Snippet } from 'svelte'
4
+
3
5
  import { T, useTask, useThrelte } from '@threlte/core'
4
6
  import { Portal } from '@threlte/extras'
5
- import { useEntityEvents } from './hooks/useEntityEvents.svelte'
6
- import { poseToObject3d } from '../../transform'
7
- import { useSettings } from '../../hooks/useSettings.svelte'
8
- import type { Snippet } from 'svelte'
9
- import type { Entity } from 'koota'
7
+ import { OrthographicCamera, Points, PointsMaterial } from 'three'
8
+
10
9
  import { traits, useTrait } from '../../ecs'
10
+ import { useSettings } from '../../hooks/useSettings.svelte'
11
+ import { poseToObject3d } from '../../transform'
12
+
13
+ import { useEntityEvents } from './hooks/useEntityEvents.svelte'
11
14
 
12
15
  interface Props {
13
16
  entity: Entity
@@ -1,6 +1,6 @@
1
- import { Points } from 'three';
2
- import type { Snippet } from 'svelte';
3
1
  import type { Entity } from 'koota';
2
+ import type { Snippet } from 'svelte';
3
+ import { Points } from 'three';
4
4
  interface Props {
5
5
  entity: Entity;
6
6
  children?: Snippet;
@@ -1,11 +1,12 @@
1
1
  <script lang="ts">
2
- import { traits, useTrait } from '../../ecs'
3
- import { usePose } from '../../hooks/usePose.svelte'
4
- import { matrixToPose, poseToMatrix } from '../../transform'
5
2
  import type { Pose } from '@viamrobotics/sdk'
6
3
  import type { Entity } from 'koota'
7
4
  import type { Snippet } from 'svelte'
8
5
 
6
+ import { traits, useTrait } from '../../ecs'
7
+ import { usePose } from '../../hooks/usePose.svelte'
8
+ import { matrixToPose, poseToMatrix } from '../../transform'
9
+
9
10
  interface Props {
10
11
  entity: Entity
11
12
  children: Snippet<[{ pose: Pose | undefined }]>
@@ -1,5 +1,5 @@
1
- import { type IntersectionEvent } from '@threlte/extras';
2
1
  import type { Entity } from 'koota';
2
+ import { type IntersectionEvent } from '@threlte/extras';
3
3
  export declare const useEntityEvents: (entity: () => Entity | undefined) => {
4
4
  readonly visible: boolean;
5
5
  onpointerenter: (event: IntersectionEvent<MouseEvent>) => void;
@@ -1,8 +1,8 @@
1
1
  import { useCursor } from '@threlte/extras';
2
- import { useFocusedEntity, useSelectedEntity } from '../../../hooks/useSelection.svelte';
3
- import { useVisibility } from '../../../hooks/useVisibility.svelte';
4
2
  import { Vector2 } from 'three';
5
3
  import { traits } from '../../../ecs';
4
+ import { useFocusedEntity, useSelectedEntity } from '../../../hooks/useSelection.svelte';
5
+ import { useVisibility } from '../../../hooks/useVisibility.svelte';
6
6
  import { updateHoverInfo } from '../../../HoverUpdater.svelte';
7
7
  import { createPose, matrixToPose, poseToMatrix } from '../../../transform';
8
8
  export const useEntityEvents = (entity) => {
@@ -1,13 +1,17 @@
1
1
  <script lang="ts">
2
2
  import type { HTMLAttributes } from 'svelte/elements'
3
- import { useToast, ToastVariant } from '@viamrobotics/prime-core'
4
- import { useFileDrop } from './useFileDrop.svelte'
5
- import { useWorld } from '../../ecs/useWorld'
6
- import type { FileDropperSuccess } from './file-dropper'
3
+
4
+ import { ToastVariant, useToast } from '@viamrobotics/prime-core'
5
+
6
+ import { createBufferGeometry } from '../../attribute'
7
7
  import { traits } from '../../ecs'
8
- import { spawnSnapshotEntities } from '../../snapshot'
8
+ import { useWorld } from '../../ecs/useWorld'
9
9
  import { useCameraControls } from '../../hooks/useControls.svelte'
10
- import { createBufferGeometry } from '../../attribute'
10
+ import { spawnSnapshotEntities } from '../../snapshot'
11
+
12
+ import type { FileDropperSuccess } from './file-dropper'
13
+
14
+ import { useFileDrop } from './useFileDrop.svelte'
11
15
 
12
16
  const props: HTMLAttributes<HTMLDivElement> = $props()
13
17
 
@@ -1,6 +1,6 @@
1
+ import type { BufferGeometry } from 'three';
1
2
  import type { Snapshot } from '../../buf/draw/v1/snapshot_pb';
2
3
  import type { SuccessMessage } from '../../loaders/pcd/messages';
3
- import type { BufferGeometry } from 'three';
4
4
  interface FileDropSuccess {
5
5
  success: true;
6
6
  name: string;
@@ -1,6 +1,6 @@
1
1
  import { isArrayBuffer } from 'lodash-es';
2
- import { FileDropperError } from './file-dropper';
3
2
  import { parsePcdInWorker } from '../../loaders/pcd';
3
+ import { FileDropperError } from './file-dropper';
4
4
  export const pcdDropper = async (params) => {
5
5
  const { name, content } = params;
6
6
  if (!isArrayBuffer(content)) {
@@ -1,6 +1,6 @@
1
1
  import { isArrayBuffer } from 'lodash-es';
2
- import { FileDropperError } from './file-dropper';
3
2
  import { PLYLoader } from 'three/examples/jsm/loaders/PLYLoader.js';
3
+ import { FileDropperError } from './file-dropper';
4
4
  export const plyDropper = async (params) => {
5
5
  const { name, content } = params;
6
6
  if (!isArrayBuffer(content)) {
@@ -1,5 +1,5 @@
1
- import { Snapshot } from '../../buf/draw/v1/snapshot_pb';
2
1
  import { isArrayBuffer, isString } from 'lodash-es';
2
+ import { Snapshot } from '../../buf/draw/v1/snapshot_pb';
3
3
  import { FileDropperError, } from './file-dropper';
4
4
  import { Extensions } from './file-names';
5
5
  const decodeJson = (params) => {
@@ -1,11 +1,13 @@
1
1
  <script lang="ts">
2
2
  import { T } from '@threlte/core'
3
- import { TrackballControls, Gizmo, Portal } from '@threlte/extras'
3
+ import { Gizmo, Portal, TrackballControls } from '@threlte/extras'
4
4
  import { Box3, type Object3D, Vector3 } from 'three'
5
5
  import { TrackballControls as ThreeTrackballControls } from 'three/examples/jsm/controls/TrackballControls.js'
6
- import Camera from './Camera.svelte'
6
+
7
7
  import Button from './overlay/dashboard/Button.svelte'
8
8
 
9
+ import Camera from './Camera.svelte'
10
+
9
11
  interface Props {
10
12
  object3d: Object3D
11
13
  }
@@ -1,8 +1,10 @@
1
1
  <script lang="ts">
2
- import { MathUtils } from 'three'
3
- import { useTask } from '@threlte/core'
4
2
  import type { CameraControlsRef } from '@threlte/extras'
3
+
4
+ import { useTask } from '@threlte/core'
5
5
  import { PressedKeys } from 'runed'
6
+ import { MathUtils } from 'three'
7
+
6
8
  import { useFocusedEntity, useSelectedEntity } from '../hooks/useSelection.svelte'
7
9
  import { useSettings } from '../hooks/useSettings.svelte'
8
10
  import { useVisibility } from '../hooks/useVisibility.svelte'
@@ -4,10 +4,13 @@
4
4
  Shows all steps for querying points within a lasso selection
5
5
  -->
6
6
  <script lang="ts">
7
+ import type { Entity } from 'koota'
8
+
7
9
  import { T } from '@threlte/core'
8
10
  import { Box3, BufferAttribute, BufferGeometry, Vector3 } from 'three'
9
- import { useTrait, traits } from '../../ecs'
10
- import type { Entity } from 'koota'
11
+
12
+ import { traits, useTrait } from '../../ecs'
13
+
11
14
  import * as lassoTraits from './traits'
12
15
 
13
16
  const box3 = new Box3()
@@ -1,14 +1,17 @@
1
1
  <script lang="ts">
2
- import { Raycaster, Box3, Vector3, Vector2, Plane, Triangle } from 'three'
2
+ import type { ShapecastCallbacks } from 'three-mesh-bvh'
3
+
3
4
  import { useThrelte } from '@threlte/core'
4
- import { Not } from 'koota'
5
- import { useCameraControls } from '../../hooks/useControls.svelte'
6
5
  import earcut from 'earcut'
7
- import { traits, useQuery, useWorld } from '../../ecs'
8
- import type { ShapecastCallbacks } from 'three-mesh-bvh'
6
+ import { Not } from 'koota'
7
+ import { Box3, Plane, Raycaster, Triangle, Vector2, Vector3 } from 'three'
8
+
9
9
  import { createBufferGeometry } from '../../attribute'
10
- import * as lassoTraits from './traits'
10
+ import { traits, useQuery, useWorld } from '../../ecs'
11
+ import { useCameraControls } from '../../hooks/useControls.svelte'
12
+
11
13
  import Debug from './Debug.svelte'
14
+ import * as lassoTraits from './traits'
12
15
 
13
16
  interface Props {
14
17
  debug?: boolean