@viamrobotics/motion-tools 1.31.0 → 1.32.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 (62) hide show
  1. package/dist/components/App.svelte +51 -46
  2. package/dist/components/App.svelte.d.ts +1 -1
  3. package/dist/components/Entities/Arrows/Arrows.svelte +4 -7
  4. package/dist/components/Entities/hooks/useEntityEvents.svelte.d.ts +0 -1
  5. package/dist/components/Entities/hooks/useEntityEvents.svelte.js +30 -16
  6. package/dist/components/InputBindings.svelte +0 -43
  7. package/dist/components/KeyboardBindings.svelte +38 -0
  8. package/dist/components/KeyboardBindings.svelte.d.ts +18 -0
  9. package/dist/components/PointerMissBox.svelte +6 -3
  10. package/dist/components/Scene.svelte +34 -45
  11. package/dist/components/SceneProviders.svelte +2 -4
  12. package/dist/components/SceneProviders.svelte.d.ts +1 -3
  13. package/dist/components/Selected.svelte +20 -27
  14. package/dist/components/SelectedTransformControls.svelte +8 -7
  15. package/dist/components/StaticGeometries.svelte +3 -5
  16. package/dist/components/hover/HoveredEntities.svelte +15 -14
  17. package/dist/components/hover/HoveredEntities.svelte.d.ts +17 -2
  18. package/dist/components/hover/HoveredEntity.svelte +8 -5
  19. package/dist/components/hover/HoveredEntity.svelte.d.ts +5 -1
  20. package/dist/components/hover/LinkedHoveredEntity.svelte +7 -11
  21. package/dist/components/hover/LinkedHoveredEntity.svelte.d.ts +1 -0
  22. package/dist/components/overlay/Details.svelte +22 -37
  23. package/dist/components/overlay/Details.svelte.d.ts +3 -1
  24. package/dist/components/overlay/controls/Controls.svelte +0 -2
  25. package/dist/components/overlay/dashboard/Button.svelte +5 -3
  26. package/dist/components/overlay/dashboard/Button.svelte.d.ts +1 -1
  27. package/dist/components/overlay/left-pane/Tree.svelte +13 -10
  28. package/dist/components/overlay/left-pane/TreeContainer.svelte +9 -4
  29. package/dist/components/overlay/left-pane/TreeNode.svelte +6 -4
  30. package/dist/draw.d.ts +1 -0
  31. package/dist/draw.js +1 -1
  32. package/dist/ecs/index.d.ts +1 -0
  33. package/dist/ecs/index.js +1 -0
  34. package/dist/ecs/traits.d.ts +22 -5
  35. package/dist/ecs/traits.js +33 -4
  36. package/dist/ecs/useTag.svelte.d.ts +5 -0
  37. package/dist/ecs/useTag.svelte.js +43 -0
  38. package/dist/hooks/useEnvironment.svelte.d.ts +1 -1
  39. package/dist/hooks/useLinked.svelte.js +7 -8
  40. package/dist/hooks/useMouseRaycaster.svelte.d.ts +4 -3
  41. package/dist/hooks/useMouseRaycaster.svelte.js +1 -0
  42. package/dist/hooks/useSettings.svelte.d.ts +1 -1
  43. package/dist/plugins/Focus/Focus.svelte +45 -0
  44. package/dist/plugins/Focus/Focus.svelte.d.ts +3 -0
  45. package/dist/plugins/Focus/FocusBox.svelte +75 -0
  46. package/dist/plugins/Focus/FocusBox.svelte.d.ts +3 -0
  47. package/dist/plugins/Focus/provideFocus.svelte.d.ts +1 -0
  48. package/dist/plugins/Focus/provideFocus.svelte.js +61 -0
  49. package/dist/{components → plugins}/MeasureTool/MeasureTool.svelte +6 -8
  50. package/dist/plugins/Selection/SelectionTool.svelte +10 -3
  51. package/dist/plugins/index.d.ts +2 -0
  52. package/dist/plugins/index.js +2 -0
  53. package/dist/three/arrow.d.ts +2 -0
  54. package/dist/three/arrow.js +3 -1
  55. package/package.json +16 -4
  56. package/dist/components/Focus.svelte +0 -46
  57. package/dist/components/Focus.svelte.d.ts +0 -7
  58. package/dist/hooks/useSelection.svelte.d.ts +0 -33
  59. package/dist/hooks/useSelection.svelte.js +0 -94
  60. /package/dist/{components → plugins}/MeasureTool/MeasurePoint.svelte +0 -0
  61. /package/dist/{components → plugins}/MeasureTool/MeasurePoint.svelte.d.ts +0 -0
  62. /package/dist/{components → plugins}/MeasureTool/MeasureTool.svelte.d.ts +0 -0
@@ -1,33 +0,0 @@
1
- import type { Entity } from 'koota';
2
- import { Object3D } from 'three';
3
- interface SelectedEntityContext {
4
- readonly current: Entity | undefined;
5
- readonly instance: number | undefined;
6
- set(entity?: Entity, instance?: number): void;
7
- }
8
- interface FocusedEntityContext {
9
- readonly current: Entity | undefined;
10
- readonly instance: number | undefined;
11
- set(entity?: Entity, instance?: number): void;
12
- }
13
- export declare const provideSelection: () => {
14
- selection: {
15
- readonly current: Entity | undefined;
16
- readonly instance: number | undefined;
17
- set(entity: Entity, instance?: number): void;
18
- };
19
- focus: {
20
- readonly current: Entity | undefined;
21
- readonly instance: number | undefined;
22
- set(entity: Entity, instance?: number): void;
23
- };
24
- };
25
- export declare const useFocusedEntity: () => FocusedEntityContext;
26
- export declare const useSelectedEntity: () => SelectedEntityContext;
27
- export declare const useFocusedObject3d: () => {
28
- current: Object3D | undefined;
29
- };
30
- export declare const useSelectedObject3d: () => {
31
- current: Object3D | undefined;
32
- };
33
- export {};
@@ -1,94 +0,0 @@
1
- import { useThrelte } from '@threlte/core';
2
- import { getContext, setContext, untrack } from 'svelte';
3
- import { Object3D } from 'three';
4
- import { traits, useWorld } from '../ecs';
5
- import { useEnvironment } from './useEnvironment.svelte';
6
- const selectedKey = Symbol('selected-frame-context');
7
- const focusedKey = Symbol('focused-frame-context');
8
- const focusedObject3dKey = Symbol('focused-object-3d-context');
9
- export const provideSelection = () => {
10
- const world = useWorld();
11
- const { scene } = useThrelte();
12
- const environment = useEnvironment();
13
- let selected = $state.raw();
14
- let selectedInstance = $state();
15
- let focused = $state.raw();
16
- let focusedInstance = $state();
17
- $effect(() => {
18
- return world.onRemove(traits.Name, (entity) => {
19
- if (entity === selected)
20
- selected = undefined;
21
- if (entity === focused)
22
- focused = undefined;
23
- });
24
- });
25
- const selectedEntityContext = {
26
- get current() {
27
- return selected;
28
- },
29
- get instance() {
30
- return selectedInstance;
31
- },
32
- set(entity, instance) {
33
- selected = entity;
34
- selectedInstance = instance;
35
- },
36
- };
37
- setContext(selectedKey, selectedEntityContext);
38
- const focusedEntityContext = {
39
- get current() {
40
- return focused;
41
- },
42
- get instance() {
43
- return focusedInstance;
44
- },
45
- set(entity, instance) {
46
- focused = entity;
47
- focusedInstance = instance;
48
- },
49
- };
50
- setContext(focusedKey, focusedEntityContext);
51
- const focusedObject3d = $derived(focused ? scene.getObjectByName(focused)?.clone() : undefined);
52
- $effect(() => {
53
- const previousMode = untrack(() => environment.current.viewerMode);
54
- if (focusedObject3d) {
55
- environment.current.viewerMode = 'focus';
56
- return () => {
57
- environment.current.viewerMode = previousMode;
58
- };
59
- }
60
- });
61
- setContext(focusedObject3dKey, {
62
- get current() {
63
- return focusedObject3d;
64
- },
65
- });
66
- return {
67
- selection: selectedEntityContext,
68
- focus: focusedEntityContext,
69
- };
70
- };
71
- export const useFocusedEntity = () => {
72
- return getContext(focusedKey);
73
- };
74
- export const useSelectedEntity = () => {
75
- return getContext(selectedKey);
76
- };
77
- export const useFocusedObject3d = () => {
78
- return getContext(focusedObject3dKey);
79
- };
80
- export const useSelectedObject3d = () => {
81
- const selectedEntity = useSelectedEntity();
82
- const { scene } = useThrelte();
83
- const object = $derived.by(() => {
84
- if (!selectedEntity.current) {
85
- return;
86
- }
87
- return scene.getObjectByName(selectedEntity.current);
88
- });
89
- return {
90
- get current() {
91
- return object;
92
- },
93
- };
94
- };