@viamrobotics/motion-tools 1.14.0 → 1.15.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/FrameConfigUpdater.svelte.d.ts +2 -2
- package/dist/HoverUpdater.svelte.d.ts +1 -1
- package/dist/attribute.js +1 -1
- package/dist/buf/common/v1/common_pb.d.ts +45 -0
- package/dist/buf/common/v1/common_pb.js +65 -0
- package/dist/color.d.ts +1 -1
- package/dist/color.js +2 -2
- package/dist/components/App.svelte +27 -21
- package/dist/components/App.svelte.d.ts +1 -1
- package/dist/components/BatchedArrows.svelte +5 -3
- package/dist/components/Camera.svelte +1 -0
- package/dist/components/CameraControls.svelte +5 -3
- package/dist/components/Entities/Arrows/ArrowGroups.svelte +6 -3
- package/dist/components/Entities/Arrows/Arrows.svelte +6 -3
- package/dist/components/Entities/Entities.svelte +7 -5
- package/dist/components/Entities/Frame.svelte +8 -5
- package/dist/components/Entities/Frame.svelte.d.ts +2 -2
- package/dist/components/Entities/GLTF.svelte +8 -5
- package/dist/components/Entities/GLTF.svelte.d.ts +2 -2
- package/dist/components/Entities/Geometry.svelte +13 -6
- package/dist/components/Entities/Line.svelte +8 -5
- package/dist/components/Entities/Line.svelte.d.ts +1 -1
- package/dist/components/Entities/LineDots.svelte +1 -1
- package/dist/components/Entities/LineGeometry.svelte +1 -1
- package/dist/components/Entities/Mesh.svelte +8 -5
- package/dist/components/Entities/Points.svelte +9 -6
- package/dist/components/Entities/Points.svelte.d.ts +2 -2
- package/dist/components/Entities/Pose.svelte +4 -3
- package/dist/components/Entities/hooks/useEntityEvents.svelte.d.ts +1 -1
- package/dist/components/Entities/hooks/useEntityEvents.svelte.js +2 -2
- package/dist/components/FileDrop/FileDrop.svelte +10 -6
- package/dist/components/FileDrop/file-dropper.d.ts +1 -1
- package/dist/components/FileDrop/pcd-dropper.js +1 -1
- package/dist/components/FileDrop/ply-dropper.js +1 -1
- package/dist/components/FileDrop/snapshot-dropper.js +1 -1
- package/dist/components/Focus.svelte +4 -2
- package/dist/components/KeyboardControls.svelte +4 -2
- package/dist/components/Lasso/Debug.svelte +5 -2
- package/dist/components/Lasso/Lasso.svelte +9 -6
- package/dist/components/Lasso/Tool.svelte +10 -7
- package/dist/components/MeasureTool/MeasurePoint.svelte +2 -1
- package/dist/components/MeasureTool/MeasurePoint.svelte.d.ts +1 -1
- package/dist/components/MeasureTool/MeasureTool.svelte +7 -5
- package/dist/components/PCD.svelte +4 -3
- package/dist/components/PointerMissBox.svelte +3 -2
- package/dist/components/Scene.svelte +12 -9
- package/dist/components/SceneProviders.svelte +20 -18
- package/dist/components/Selected.svelte +6 -20
- package/dist/components/Snapshot.svelte +8 -5
- package/dist/components/StaticGeometries.svelte +10 -7
- package/dist/components/hover/HoveredEntities.svelte +2 -1
- package/dist/components/hover/HoveredEntity.svelte +2 -1
- package/dist/components/hover/HoveredEntityTooltip.svelte +1 -0
- package/dist/components/hover/LinkedHoveredEntity.svelte +7 -5
- package/dist/components/overlay/AddFrames.svelte +64 -0
- package/dist/components/overlay/AddFrames.svelte.d.ts +3 -0
- package/dist/components/overlay/AddRelationship.svelte +4 -2
- package/dist/components/overlay/Details.svelte +23 -21
- package/dist/components/overlay/FloatingPanel.svelte +47 -5
- package/dist/components/overlay/FloatingPanel.svelte.d.ts +1 -0
- package/dist/components/overlay/LiveUpdatesBanner.svelte +1 -0
- package/dist/components/overlay/Logs.svelte +4 -2
- package/dist/components/overlay/Popover.svelte +3 -2
- package/dist/components/overlay/RefreshRate.svelte +4 -2
- package/dist/components/overlay/dashboard/Button.svelte +2 -1
- package/dist/components/overlay/dashboard/Button.svelte.d.ts +1 -1
- package/dist/components/overlay/dashboard/Dashboard.svelte +3 -1
- package/dist/components/overlay/left-pane/Drawer.svelte +3 -2
- package/dist/components/overlay/left-pane/Tree.svelte +27 -38
- package/dist/components/overlay/left-pane/TreeContainer.svelte +17 -47
- package/dist/components/overlay/left-pane/TreeContainer.svelte.d.ts +1 -1
- package/dist/components/overlay/settings/Settings.svelte +37 -10
- package/dist/components/overlay/settings/Tabs.svelte +2 -1
- package/dist/components/overlay/widgets/ArmPositions.svelte +3 -2
- package/dist/components/overlay/widgets/Camera.svelte +6 -5
- package/dist/components/weblab/WeblabActive.svelte +2 -1
- package/dist/components/xr/ArmTeleop.svelte +7 -6
- package/dist/components/xr/BentPlaneGeometry.svelte +3 -2
- package/dist/components/xr/CameraFeed.svelte +2 -0
- package/dist/components/xr/Controllers.svelte +5 -3
- package/dist/components/xr/Draggable.svelte +4 -3
- package/dist/components/xr/HandCollider.svelte +2 -1
- package/dist/components/xr/JointLimitsWidget.svelte +1 -0
- package/dist/components/xr/OriginMarker.svelte +2 -1
- package/dist/components/xr/PointDistance.svelte +3 -2
- package/dist/components/xr/XR.svelte +8 -6
- package/dist/components/xr/XRConfigPanel.svelte +4 -3
- package/dist/components/xr/XRControllerSettings.svelte +2 -1
- package/dist/components/xr/XRToast.svelte +4 -3
- package/dist/ecs/traits.d.ts +1 -1
- package/dist/ecs/traits.js +1 -1
- package/dist/ecs/useQuery.svelte.js +1 -1
- package/dist/frame.js +1 -1
- package/dist/hooks/use3DModels.svelte.js +3 -3
- package/dist/hooks/useConfigFrames.svelte.js +3 -3
- package/dist/hooks/useDrawAPI.svelte.js +9 -9
- package/dist/hooks/useFramelessComponents.svelte.js +1 -1
- package/dist/hooks/useFrames.svelte.js +7 -7
- package/dist/hooks/useGeometries.svelte.js +8 -8
- package/dist/hooks/useMouseRaycaster.svelte.d.ts +1 -1
- package/dist/hooks/useMouseRaycaster.svelte.js +1 -1
- package/dist/hooks/usePartConfig.svelte.d.ts +1 -1
- package/dist/hooks/usePartConfig.svelte.js +3 -3
- package/dist/hooks/usePointcloudObjects.svelte.js +6 -6
- package/dist/hooks/usePointclouds.svelte.js +5 -5
- package/dist/hooks/usePose.svelte.js +7 -7
- package/dist/hooks/useSelection.svelte.d.ts +1 -1
- package/dist/hooks/useWeblabs.svelte.d.ts +1 -0
- package/dist/hooks/useWeblabs.svelte.js +15 -3
- package/dist/hooks/useWorldState.svelte.js +8 -8
- package/dist/plugins/bvh.svelte.js +2 -2
- package/dist/snapshot.d.ts +2 -2
- package/dist/snapshot.js +4 -4
- package/dist/three/BatchedArrow.d.ts +1 -1
- package/dist/three/BatchedArrow.js +1 -1
- package/dist/three/InstancedArrows/InstancedArrows.d.ts +1 -1
- package/dist/three/InstancedArrows/InstancedArrows.js +3 -3
- package/dist/three/InstancedArrows/box.js +1 -1
- package/dist/three/InstancedArrows/geometry.js +1 -1
- package/dist/three/InstancedArrows/raycast.d.ts +1 -1
- package/dist/three/InstancedArrows/raycast.js +1 -1
- package/dist/three/OBBHelper.d.ts +2 -3
- package/dist/three/OBBHelper.js +64 -43
- package/dist/three/OrientationVector.js +1 -1
- package/dist/transform.js +1 -1
- package/package.json +7 -6
- package/dist/components/overlay/left-pane/AddFrames.svelte +0 -30
- package/dist/components/overlay/left-pane/AddFrames.svelte.d.ts +0 -18
- package/dist/hooks/__tests__/fixtures/ResizableTestWrapper.svelte +0 -41
- package/dist/hooks/__tests__/fixtures/ResizableTestWrapper.svelte.d.ts +0 -6
- package/dist/hooks/useResizable.svelte.d.ts +0 -12
- 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 {
|
|
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
|
};
|
package/dist/attribute.js
CHANGED
|
@@ -147,6 +147,47 @@ export declare class Orientation extends Message<Orientation> {
|
|
|
147
147
|
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Orientation;
|
|
148
148
|
static equals(a: Orientation | PlainMessage<Orientation> | undefined, b: Orientation | PlainMessage<Orientation> | undefined): boolean;
|
|
149
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* @generated from message viam.common.v1.PoseCloud
|
|
152
|
+
*/
|
|
153
|
+
export declare class PoseCloud extends Message<PoseCloud> {
|
|
154
|
+
/**
|
|
155
|
+
* @generated from field: double x = 1;
|
|
156
|
+
*/
|
|
157
|
+
x: number;
|
|
158
|
+
/**
|
|
159
|
+
* @generated from field: double y = 2;
|
|
160
|
+
*/
|
|
161
|
+
y: number;
|
|
162
|
+
/**
|
|
163
|
+
* @generated from field: double z = 3;
|
|
164
|
+
*/
|
|
165
|
+
z: number;
|
|
166
|
+
/**
|
|
167
|
+
* @generated from field: double o_x = 4;
|
|
168
|
+
*/
|
|
169
|
+
oX: number;
|
|
170
|
+
/**
|
|
171
|
+
* @generated from field: double o_y = 5;
|
|
172
|
+
*/
|
|
173
|
+
oY: number;
|
|
174
|
+
/**
|
|
175
|
+
* @generated from field: double o_z = 6;
|
|
176
|
+
*/
|
|
177
|
+
oZ: number;
|
|
178
|
+
/**
|
|
179
|
+
* @generated from field: double theta = 7;
|
|
180
|
+
*/
|
|
181
|
+
theta: number;
|
|
182
|
+
constructor(data?: PartialMessage<PoseCloud>);
|
|
183
|
+
static readonly runtime: typeof proto3;
|
|
184
|
+
static readonly typeName = "viam.common.v1.PoseCloud";
|
|
185
|
+
static readonly fields: FieldList;
|
|
186
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PoseCloud;
|
|
187
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PoseCloud;
|
|
188
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PoseCloud;
|
|
189
|
+
static equals(a: PoseCloud | PlainMessage<PoseCloud> | undefined, b: PoseCloud | PlainMessage<PoseCloud> | undefined): boolean;
|
|
190
|
+
}
|
|
150
191
|
/**
|
|
151
192
|
* PoseInFrame contains a pose and the reference frame in which it was observed
|
|
152
193
|
*
|
|
@@ -161,6 +202,10 @@ export declare class PoseInFrame extends Message<PoseInFrame> {
|
|
|
161
202
|
* @generated from field: viam.common.v1.Pose pose = 2;
|
|
162
203
|
*/
|
|
163
204
|
pose?: Pose;
|
|
205
|
+
/**
|
|
206
|
+
* @generated from field: optional viam.common.v1.PoseCloud goal_cloud = 3;
|
|
207
|
+
*/
|
|
208
|
+
goalCloud?: PoseCloud;
|
|
164
209
|
constructor(data?: PartialMessage<PoseInFrame>);
|
|
165
210
|
static readonly runtime: typeof proto3;
|
|
166
211
|
static readonly typeName = "viam.common.v1.PoseInFrame";
|
|
@@ -205,6 +205,66 @@ export class Orientation extends Message {
|
|
|
205
205
|
return proto3.util.equals(Orientation, a, b);
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* @generated from message viam.common.v1.PoseCloud
|
|
210
|
+
*/
|
|
211
|
+
export class PoseCloud extends Message {
|
|
212
|
+
/**
|
|
213
|
+
* @generated from field: double x = 1;
|
|
214
|
+
*/
|
|
215
|
+
x = 0;
|
|
216
|
+
/**
|
|
217
|
+
* @generated from field: double y = 2;
|
|
218
|
+
*/
|
|
219
|
+
y = 0;
|
|
220
|
+
/**
|
|
221
|
+
* @generated from field: double z = 3;
|
|
222
|
+
*/
|
|
223
|
+
z = 0;
|
|
224
|
+
/**
|
|
225
|
+
* @generated from field: double o_x = 4;
|
|
226
|
+
*/
|
|
227
|
+
oX = 0;
|
|
228
|
+
/**
|
|
229
|
+
* @generated from field: double o_y = 5;
|
|
230
|
+
*/
|
|
231
|
+
oY = 0;
|
|
232
|
+
/**
|
|
233
|
+
* @generated from field: double o_z = 6;
|
|
234
|
+
*/
|
|
235
|
+
oZ = 0;
|
|
236
|
+
/**
|
|
237
|
+
* @generated from field: double theta = 7;
|
|
238
|
+
*/
|
|
239
|
+
theta = 0;
|
|
240
|
+
constructor(data) {
|
|
241
|
+
super();
|
|
242
|
+
proto3.util.initPartial(data, this);
|
|
243
|
+
}
|
|
244
|
+
static runtime = proto3;
|
|
245
|
+
static typeName = "viam.common.v1.PoseCloud";
|
|
246
|
+
static fields = proto3.util.newFieldList(() => [
|
|
247
|
+
{ no: 1, name: "x", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
|
|
248
|
+
{ no: 2, name: "y", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
|
|
249
|
+
{ no: 3, name: "z", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
|
|
250
|
+
{ no: 4, name: "o_x", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
|
|
251
|
+
{ no: 5, name: "o_y", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
|
|
252
|
+
{ no: 6, name: "o_z", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
|
|
253
|
+
{ no: 7, name: "theta", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
|
|
254
|
+
]);
|
|
255
|
+
static fromBinary(bytes, options) {
|
|
256
|
+
return new PoseCloud().fromBinary(bytes, options);
|
|
257
|
+
}
|
|
258
|
+
static fromJson(jsonValue, options) {
|
|
259
|
+
return new PoseCloud().fromJson(jsonValue, options);
|
|
260
|
+
}
|
|
261
|
+
static fromJsonString(jsonString, options) {
|
|
262
|
+
return new PoseCloud().fromJsonString(jsonString, options);
|
|
263
|
+
}
|
|
264
|
+
static equals(a, b) {
|
|
265
|
+
return proto3.util.equals(PoseCloud, a, b);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
208
268
|
/**
|
|
209
269
|
* PoseInFrame contains a pose and the reference frame in which it was observed
|
|
210
270
|
*
|
|
@@ -219,6 +279,10 @@ export class PoseInFrame extends Message {
|
|
|
219
279
|
* @generated from field: viam.common.v1.Pose pose = 2;
|
|
220
280
|
*/
|
|
221
281
|
pose;
|
|
282
|
+
/**
|
|
283
|
+
* @generated from field: optional viam.common.v1.PoseCloud goal_cloud = 3;
|
|
284
|
+
*/
|
|
285
|
+
goalCloud;
|
|
222
286
|
constructor(data) {
|
|
223
287
|
super();
|
|
224
288
|
proto3.util.initPartial(data, this);
|
|
@@ -228,6 +292,7 @@ export class PoseInFrame extends Message {
|
|
|
228
292
|
static fields = proto3.util.newFieldList(() => [
|
|
229
293
|
{ no: 1, name: "reference_frame", kind: "scalar", T: 9 /* ScalarType.STRING */ },
|
|
230
294
|
{ no: 2, name: "pose", kind: "message", T: Pose },
|
|
295
|
+
{ no: 3, name: "goal_cloud", kind: "message", T: PoseCloud, opt: true },
|
|
231
296
|
]);
|
|
232
297
|
static fromBinary(bytes, options) {
|
|
233
298
|
return new PoseInFrame().fromBinary(bytes, options);
|
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,41 @@
|
|
|
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 {
|
|
8
|
+
import { useXR } from '@threlte/xr'
|
|
6
9
|
import { provideToast, ToastContainer } from '@viamrobotics/prime-core'
|
|
7
|
-
|
|
8
|
-
import
|
|
9
|
-
|
|
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
|
|
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
|
|
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
|
|
32
|
-
import
|
|
32
|
+
import AddFrames from './overlay/AddFrames.svelte'
|
|
33
|
+
import LiveUpdatesBanner from './overlay/LiveUpdatesBanner.svelte'
|
|
33
34
|
import Logs from './overlay/Logs.svelte'
|
|
35
|
+
import ArmPositions from './overlay/widgets/ArmPositions.svelte'
|
|
36
|
+
import Camera from './overlay/widgets/Camera.svelte'
|
|
37
|
+
import Scene from './Scene.svelte'
|
|
38
|
+
import SceneProviders from './SceneProviders.svelte'
|
|
34
39
|
|
|
35
40
|
interface LocalConfigProps {
|
|
36
41
|
current: Struct
|
|
@@ -96,7 +101,7 @@
|
|
|
96
101
|
{/if}
|
|
97
102
|
|
|
98
103
|
<div
|
|
99
|
-
class="relative h-full w-full overflow-hidden"
|
|
104
|
+
class="relative h-full w-full overflow-hidden dark:bg-white"
|
|
100
105
|
bind:this={root}
|
|
101
106
|
>
|
|
102
107
|
<Canvas renderMode="on-demand">
|
|
@@ -140,6 +145,7 @@
|
|
|
140
145
|
|
|
141
146
|
<Settings />
|
|
142
147
|
<Logs />
|
|
148
|
+
<AddFrames />
|
|
143
149
|
</div>
|
|
144
150
|
{/snippet}
|
|
145
151
|
</SceneProviders>
|
|
@@ -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,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 {
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
16
|
+
|
|
15
17
|
import { T, useThrelte } from '@threlte/core'
|
|
16
18
|
import { Portal, PortalTarget } from '@threlte/extras'
|
|
17
|
-
import {
|
|
18
|
-
|
|
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 {
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
16
|
+
import { poseToObject3d } from '../../transform'
|
|
17
|
+
|
|
14
18
|
import { useEntityEvents } from './hooks/useEntityEvents.svelte'
|
|
15
|
-
import
|
|
16
|
-
import type { Snippet } from 'svelte'
|
|
19
|
+
import Mesh from './Mesh.svelte'
|
|
17
20
|
|
|
18
21
|
interface Props {
|
|
19
22
|
entity: Entity
|
|
@@ -60,7 +63,11 @@ Renders a Viam Geometry object
|
|
|
60
63
|
|
|
61
64
|
<Portal id={parent.current}>
|
|
62
65
|
{#if model}
|
|
63
|
-
<T
|
|
66
|
+
<T
|
|
67
|
+
is={model}
|
|
68
|
+
name={entity}
|
|
69
|
+
{...events}
|
|
70
|
+
/>
|
|
64
71
|
{/if}
|
|
65
72
|
|
|
66
73
|
{#if settings.current.renderArmModels.includes('colliders') || !model}
|
|
@@ -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
|
|
12
|
-
|
|
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
|
|
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,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { T } from '@threlte/core'
|
|
3
|
-
import { BatchedMesh, Matrix4, SphereGeometry, Vector3
|
|
3
|
+
import { BatchedMesh, type ColorRepresentation, Matrix4, SphereGeometry, Vector3 } from 'three'
|
|
4
4
|
|
|
5
5
|
interface Props {
|
|
6
6
|
color: ColorRepresentation
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|
|
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 {
|
|
6
|
-
|
|
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,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) => {
|