@viamrobotics/motion-tools 1.9.1 → 1.10.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 (45) hide show
  1. package/dist/HoverUpdater.svelte.d.ts +19 -0
  2. package/dist/HoverUpdater.svelte.js +120 -0
  3. package/dist/components/App.svelte +28 -29
  4. package/dist/components/MeasureTool/MeasurePoint.svelte +3 -3
  5. package/dist/components/MeasureTool/MeasureTool.svelte +6 -6
  6. package/dist/components/SceneProviders.svelte +2 -0
  7. package/dist/components/hover/HoveredEntities.svelte +23 -0
  8. package/dist/components/hover/HoveredEntity.svelte +15 -0
  9. package/dist/components/hover/HoveredEntity.svelte.d.ts +3 -0
  10. package/dist/components/hover/HoveredEntityTooltip.svelte +70 -0
  11. package/dist/components/{HoveredEntityTooltip.svelte.d.ts → hover/HoveredEntityTooltip.svelte.d.ts} +2 -2
  12. package/dist/components/hover/LinkedHoveredEntity.svelte +55 -0
  13. package/dist/components/hover/LinkedHoveredEntity.svelte.d.ts +9 -0
  14. package/dist/components/overlay/AddRelationship.svelte +131 -0
  15. package/dist/components/overlay/AddRelationship.svelte.d.ts +7 -0
  16. package/dist/components/overlay/Details.svelte +35 -2
  17. package/dist/components/overlay/FloatingPanel.svelte +78 -0
  18. package/dist/components/overlay/FloatingPanel.svelte.d.ts +13 -0
  19. package/dist/components/overlay/{left-pane/RefreshRate.svelte → RefreshRate.svelte} +1 -1
  20. package/dist/components/overlay/ToggleGroup.svelte +22 -26
  21. package/dist/components/overlay/ToggleGroup.svelte.d.ts +6 -7
  22. package/dist/components/overlay/left-pane/TreeContainer.svelte +0 -2
  23. package/dist/components/overlay/settings/Settings.svelte +279 -0
  24. package/dist/components/overlay/settings/Tabs.svelte +54 -0
  25. package/dist/components/overlay/settings/Tabs.svelte.d.ts +12 -0
  26. package/dist/ecs/index.d.ts +1 -0
  27. package/dist/ecs/index.js +1 -0
  28. package/dist/ecs/relations.d.ts +7 -0
  29. package/dist/ecs/relations.js +7 -0
  30. package/dist/ecs/traits.d.ts +7 -2
  31. package/dist/ecs/traits.js +10 -5
  32. package/dist/hooks/useGeometries.svelte.js +1 -1
  33. package/dist/hooks/useLinked.svelte.d.ts +7 -0
  34. package/dist/hooks/useLinked.svelte.js +35 -0
  35. package/dist/hooks/useObjectEvents.svelte.js +35 -16
  36. package/dist/hooks/usePointcloudObjects.svelte.js +1 -1
  37. package/dist/hooks/usePointclouds.svelte.js +3 -3
  38. package/dist/hooks/usePose.svelte.js +1 -1
  39. package/package.json +4 -1
  40. package/dist/components/HoveredEntities.svelte +0 -19
  41. package/dist/components/HoveredEntityTooltip.svelte +0 -242
  42. package/dist/components/overlay/left-pane/Settings.svelte +0 -221
  43. /package/dist/components/{HoveredEntities.svelte.d.ts → hover/HoveredEntities.svelte.d.ts} +0 -0
  44. /package/dist/components/overlay/{left-pane/RefreshRate.svelte.d.ts → RefreshRate.svelte.d.ts} +0 -0
  45. /package/dist/components/overlay/{left-pane → settings}/Settings.svelte.d.ts +0 -0
@@ -1,221 +0,0 @@
1
- <script lang="ts">
2
- import { Select, Switch, Input } from '@viamrobotics/prime-core'
3
- import RefreshRate from './RefreshRate.svelte'
4
- import Drawer from './Drawer.svelte'
5
- import { useSettings } from '../../../hooks/useSettings.svelte'
6
- import { useResourceNames } from '@viamrobotics/svelte-sdk'
7
- import { usePartID } from '../../../hooks/usePartID.svelte'
8
- import { RefreshRates, useMachineSettings } from '../../../hooks/useMachineSettings.svelte'
9
- import { useGeometries } from '../../../hooks/useGeometries.svelte'
10
- import { usePointClouds } from '../../../hooks/usePointclouds.svelte'
11
- import { useThrelte } from '@threlte/core'
12
- import { useRefetchPoses } from '../../../hooks/useRefetchPoses'
13
-
14
- const { invalidate } = useThrelte()
15
- const partID = usePartID()
16
- const cameras = useResourceNames(() => partID.current, 'camera')
17
- const visionServices = useResourceNames(() => partID.current, 'vision')
18
- const settings = useSettings()
19
- const { disabledCameras, disabledVisionServices } = useMachineSettings()
20
- const geometries = useGeometries()
21
- const pointclouds = usePointClouds()
22
- const { refetchPoses } = useRefetchPoses()
23
-
24
- // Invalidate the renderer for any settings change
25
- $effect(() => {
26
- for (const key in settings.current) {
27
- // eslint-disable-next-line @typescript-eslint/no-unused-expressions
28
- settings.current[key as keyof typeof settings.current]
29
- }
30
-
31
- invalidate()
32
- })
33
- </script>
34
-
35
- <Drawer
36
- name="Settings"
37
- defaultOpen
38
- >
39
- <div class="flex h-100 flex-col gap-2 overflow-scroll p-3">
40
- <h3 class="text-sm"><strong>Machine connection</strong></h3>
41
-
42
- <RefreshRate
43
- id={RefreshRates.poses}
44
- label="Poses"
45
- allowLive
46
- onManualRefetch={() => {
47
- refetchPoses()
48
- geometries.refetch()
49
- }}
50
- />
51
- <RefreshRate
52
- id={RefreshRates.pointclouds}
53
- label="Pointclouds"
54
- onManualRefetch={() => {
55
- pointclouds.refetch()
56
- }}
57
- />
58
-
59
- <div class="mt-4">
60
- <h3 class="text-sm"><strong>Enabled pointcloud cameras</strong></h3>
61
- {#each cameras.current as camera (camera)}
62
- <div class="flex items-center justify-between gap-4 py-2">
63
- {camera.name}
64
- <Switch
65
- on={disabledCameras.get(camera.name) !== true}
66
- on:change={(event) => {
67
- disabledCameras.set(camera.name, !event.detail)
68
- }}
69
- />
70
- </div>
71
- {:else}
72
- No cameras detected
73
- {/each}
74
- </div>
75
-
76
- <div class="mt-4">
77
- <h3 class="text-sm"><strong>Enabled vision services</strong></h3>
78
- {#each visionServices.current as visionService (visionService)}
79
- <div class="flex items-center justify-between gap-4 py-2">
80
- {visionService.name}
81
- <Switch
82
- on={disabledVisionServices.get(visionService.name) !== true}
83
- on:change={(event) => {
84
- disabledVisionServices.set(visionService.name, !event.detail)
85
- }}
86
- />
87
- </div>
88
- {:else}
89
- No vision services detected
90
- {/each}
91
- </div>
92
-
93
- <h3 class="pt-2 text-sm"><strong>Pointclouds</strong></h3>
94
- <div class="flex flex-col gap-2.5">
95
- <label class="flex items-center justify-between gap-2">
96
- Default point size
97
-
98
- <div class="w-20">
99
- <Input
100
- bind:value={settings.current.pointSize}
101
- on:keydown={(event) => event.stopImmediatePropagation()}
102
- />
103
- </div>
104
- </label>
105
-
106
- <label class="flex items-center justify-between gap-2">
107
- Default point color
108
-
109
- <div class="w-20">
110
- <Input
111
- type="color"
112
- bind:value={settings.current.pointColor}
113
- on:keydown={(event) => event.stopImmediatePropagation()}
114
- />
115
- </div>
116
- </label>
117
- </div>
118
-
119
- <h3 class="pt-2 text-sm"><strong>Scene</strong></h3>
120
- <div class="flex flex-col gap-2.5">
121
- <label class="flex items-center justify-between gap-2">
122
- Object labels <Switch bind:on={settings.current.enableLabels} />
123
- </label>
124
-
125
- <label class="flex items-center justify-between gap-2">
126
- Grid <Switch bind:on={settings.current.grid} />
127
- </label>
128
-
129
- <label class="flex items-center justify-between gap-2">
130
- Grid cell size (m)
131
-
132
- <div class="w-20">
133
- <Input
134
- bind:value={settings.current.gridCellSize}
135
- on:keydown={(event) => event.stopImmediatePropagation()}
136
- />
137
- </div>
138
- </label>
139
-
140
- <label class="flex items-center justify-between gap-2">
141
- Grid section size (m)
142
-
143
- <div class="w-20">
144
- <Input
145
- bind:value={settings.current.gridSectionSize}
146
- on:keydown={(event) => event.stopImmediatePropagation()}
147
- />
148
- </div>
149
- </label>
150
-
151
- <label class="flex items-center justify-between gap-2">
152
- Grid fade distance (m)
153
-
154
- <div class="w-20">
155
- <Input
156
- bind:value={settings.current.gridFadeDistance}
157
- on:keydown={(event) => event.stopImmediatePropagation()}
158
- />
159
- </div>
160
- </label>
161
- </div>
162
-
163
- <h3 class="pt-2 text-sm"><strong>Lines</strong></h3>
164
- <div class="flex flex-col gap-2.5">
165
- <label class="flex items-center justify-between gap-2">
166
- Thickness
167
-
168
- <div class="w-20">
169
- <Input
170
- bind:value={settings.current.lineWidth}
171
- on:keydown={(event) => event.stopImmediatePropagation()}
172
- />
173
- </div>
174
- </label>
175
-
176
- <label class="flex items-center justify-between gap-2">
177
- Dot size
178
-
179
- <div class="w-20">
180
- <Input
181
- bind:value={settings.current.lineDotSize}
182
- on:keydown={(event) => event.stopImmediatePropagation()}
183
- />
184
- </div>
185
- </label>
186
- </div>
187
-
188
- <h3 class="pt-2 text-sm"><strong>Misc</strong></h3>
189
- <div class="flex flex-col gap-2.5">
190
- <label class="flex items-center justify-between gap-2">
191
- Query devtools <Switch bind:on={settings.current.enableQueryDevtools} />
192
- </label>
193
- <label class="flex items-center justify-between gap-2">
194
- Render stats <Switch bind:on={settings.current.renderStats} />
195
- </label>
196
- <label class="flex items-center justify-between gap-2">
197
- Render sub-entity hover detail <Switch
198
- bind:on={settings.current.renderSubEntityHoverDetail}
199
- />
200
- </label>
201
- <label class="flex items-center justify-between gap-2">
202
- Render Arm Models
203
- <Select
204
- value={settings.current.renderArmModels}
205
- onchange={(event: InputEvent) => {
206
- if (event.target instanceof HTMLSelectElement) {
207
- settings.current.renderArmModels = event.target.value as
208
- | 'colliders'
209
- | 'colliders+model'
210
- | 'model'
211
- }
212
- }}
213
- >
214
- <option value="colliders">Colliders</option>
215
- <option value="colliders+model">Colliders + Model</option>
216
- <option value="model">Model</option>
217
- </Select>
218
- </label>
219
- </div>
220
- </div>
221
- </Drawer>