@viamrobotics/motion-tools 0.11.8 → 0.13.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 (63) hide show
  1. package/dist/Detail.svelte.d.ts +41 -0
  2. package/dist/Detail.svelte.js +147 -0
  3. package/dist/WorldObject.svelte.d.ts +18 -27
  4. package/dist/WorldObject.svelte.js +48 -3
  5. package/dist/components/App.svelte +80 -30
  6. package/dist/components/App.svelte.d.ts +8 -0
  7. package/dist/components/Details.svelte +320 -37
  8. package/dist/components/FileDrop.svelte +5 -2
  9. package/dist/components/Geometry.svelte +86 -70
  10. package/dist/components/Geometry.svelte.d.ts +3 -3
  11. package/dist/components/LiveUpdatesBanner.svelte +39 -0
  12. package/dist/components/LiveUpdatesBanner.svelte.d.ts +3 -0
  13. package/dist/components/Pointcloud.svelte +3 -3
  14. package/dist/components/Pointcloud.svelte.d.ts +2 -5
  15. package/dist/components/RefreshRate.svelte +11 -6
  16. package/dist/components/RefreshRate.svelte.d.ts +3 -1
  17. package/dist/components/SceneProviders.svelte +5 -1
  18. package/dist/components/Selected.svelte +10 -10
  19. package/dist/components/StaticGeometries.svelte +2 -2
  20. package/dist/components/Tree/Settings.svelte +10 -4
  21. package/dist/components/Tree/TreeContainer.svelte +2 -0
  22. package/dist/components/Tree/Widgets.svelte +24 -0
  23. package/dist/components/Tree/Widgets.svelte.d.ts +18 -0
  24. package/dist/components/Tree/buildTree.js +1 -1
  25. package/dist/components/WorldObjects.svelte +12 -10
  26. package/dist/components/shared/Table.svelte +37 -0
  27. package/dist/components/shared/Table.svelte.d.ts +7 -0
  28. package/dist/components/weblab/WeblabActive.svelte +21 -0
  29. package/dist/components/weblab/WeblabActive.svelte.d.ts +9 -0
  30. package/dist/components/weblab/WeblabProvider.svelte +8 -0
  31. package/dist/components/weblab/WeblabProvider.svelte.d.ts +5 -0
  32. package/dist/components/widgets/ArmPositions.svelte +76 -0
  33. package/dist/components/widgets/ArmPositions.svelte.d.ts +3 -0
  34. package/dist/format.d.ts +1 -0
  35. package/dist/format.js +15 -0
  36. package/dist/hooks/useArmClient.svelte.d.ts +7 -0
  37. package/dist/hooks/useArmClient.svelte.js +36 -0
  38. package/dist/hooks/useArrows.svelte.d.ts +3 -0
  39. package/dist/hooks/useArrows.svelte.js +9 -0
  40. package/dist/hooks/useDrawAPI.svelte.d.ts +0 -4
  41. package/dist/hooks/useDrawAPI.svelte.js +34 -29
  42. package/dist/hooks/useFrames.svelte.d.ts +1 -0
  43. package/dist/hooks/useFrames.svelte.js +172 -11
  44. package/dist/hooks/useGeometries.svelte.js +4 -7
  45. package/dist/hooks/useMachineSettings.svelte.d.ts +4 -0
  46. package/dist/hooks/useMachineSettings.svelte.js +8 -1
  47. package/dist/hooks/usePartConfig.svelte.d.ts +98 -0
  48. package/dist/hooks/usePartConfig.svelte.js +230 -0
  49. package/dist/hooks/usePointclouds.svelte.js +3 -6
  50. package/dist/hooks/usePose.svelte.js +8 -3
  51. package/dist/hooks/useSettings.svelte.d.ts +2 -0
  52. package/dist/hooks/useSettings.svelte.js +2 -0
  53. package/dist/hooks/useStaticGeometries.svelte.js +1 -1
  54. package/dist/hooks/useWeblabs.svelte.d.ts +12 -0
  55. package/dist/hooks/useWeblabs.svelte.js +25 -0
  56. package/dist/hooks/useWorldState.svelte.d.ts +2 -38
  57. package/dist/three/BatchedArrow.d.ts +4 -3
  58. package/dist/three/BatchedArrow.js +14 -7
  59. package/dist/three/OBBHelper.d.ts +14 -0
  60. package/dist/three/OBBHelper.js +71 -0
  61. package/package.json +1 -1
  62. package/dist/hooks/usePoses.svelte.d.ts +0 -12
  63. package/dist/hooks/usePoses.svelte.js +0 -63
@@ -1,63 +0,0 @@
1
- import { createQueries, queryOptions } from '@tanstack/svelte-query';
2
- import { MotionClient, PoseInFrame, ResourceName } from '@viamrobotics/sdk';
3
- import { createResourceClient, useResourceNames } from '@viamrobotics/svelte-sdk';
4
- import { getContext, setContext } from 'svelte';
5
- import { fromStore, toStore } from 'svelte/store';
6
- import { useMachineSettings } from './useMachineSettings.svelte';
7
- const key = Symbol('poses-context');
8
- export const providePoses = (partID) => {
9
- const { refreshRates } = useMachineSettings();
10
- const resources = useResourceNames(partID);
11
- const components = $derived(resources.current.filter(({ type }) => type === 'component'));
12
- const motionResources = useResourceNames(partID, 'motion');
13
- const clients = $derived(motionResources.current.map((resource) => createResourceClient(MotionClient, partID, () => resource.name)));
14
- if (!refreshRates.has('Poses')) {
15
- refreshRates.set('Poses', 1000);
16
- }
17
- const options = $derived(clients.map((motionClient) => {
18
- const interval = refreshRates.get('Poses');
19
- return queryOptions({
20
- enabled: interval !== -1 && motionClient.current !== undefined,
21
- refetchInterval: interval === 0 ? false : interval,
22
- queryKey: ['partID', partID(), motionClient.current?.name, 'getPose'],
23
- queryFn: async () => {
24
- const client = motionClient.current;
25
- if (!client) {
26
- throw new Error('No client');
27
- }
28
- const promises = components.map((component) => {
29
- return client.getPose(component.name, 'world', []);
30
- });
31
- const results = await Promise.allSettled(promises);
32
- return results
33
- .map((result, index) => ({ ...result, component: components[index] }))
34
- .filter((result) => result.status === 'fulfilled')
35
- .map((result) => ({ ...result.value, component: result.component }));
36
- },
37
- });
38
- }));
39
- const queries = fromStore(createQueries({
40
- queries: toStore(() => options),
41
- combine: (results) => {
42
- const obj = {};
43
- for (const service of results) {
44
- let i = 0;
45
- if (service.data) {
46
- for (const pose of service.data) {
47
- obj[components[i].name] = pose;
48
- i += 1;
49
- }
50
- }
51
- }
52
- return obj;
53
- },
54
- }));
55
- setContext(key, {
56
- get current() {
57
- return queries.current;
58
- },
59
- });
60
- };
61
- export const usePoses = () => {
62
- return getContext(key);
63
- };