@smplrspace/smplr-loader 2.10.1-beta.2 → 2.10.1-beta.4

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.
@@ -1,7 +1,11 @@
1
+ import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera';
1
2
  import { Dispatch } from 'react';
2
3
  import { Reducer } from 'react';
3
4
  import { ReducerAction } from 'react';
4
- import { Scene } from '@babylonjs/core';
5
+ import { RefObject } from 'react';
6
+ import { Scene } from '@babylonjs/core/scene';
7
+ import { UniversalCamera } from '@babylonjs/core/Cameras/universalCamera';
8
+ import { VRDeviceOrientationFreeCamera } from '@babylonjs/core/Cameras/VR/vrDeviceOrientationFreeCamera';
5
9
 
6
10
  declare type BaseData = {
7
11
  id?: string | number;
@@ -21,7 +25,7 @@ declare interface ClientOptions {
21
25
  clientToken: string;
22
26
  }
23
27
 
24
- declare type DataLayer<D extends UnknownData = NoData> = PointDataLayer<D> | IconDataLayer<D> | PolygonDataLayer<D> | PolylineDataLayer<D> | FurnitureDataLayer<D>;
28
+ declare type DataLayer<D extends UnknownData = NoData> = PointDataLayer<D> | IconDataLayer<D> | PolygonDataLayer<D> | PolylineDataLayer<D> | DottedPolylineDataLayer<D> | FurnitureDataLayer<D>;
25
29
 
26
30
  declare class DataLayerController<D extends UnknownData> {
27
31
  private dataLayer;
@@ -39,7 +43,7 @@ declare interface DataLayerControllerInitOptions<D extends UnknownData> {
39
43
  dataLayer: DataLayer<D>;
40
44
  scene: SmplrScene;
41
45
  dispatchDataLayersDefinition: DispatchDataLayersDefinitionFn;
42
- viewerRef: any;
46
+ viewerRef: RefObject<ViewerRendererHandle>;
43
47
  }
44
48
 
45
49
  declare type DataLayersDefinitionActions<D extends UnknownData> = {
@@ -73,6 +77,23 @@ declare interface Dimensions {
73
77
 
74
78
  declare type DispatchDataLayersDefinitionFn = Dispatch<ReducerAction<DataLayersDefinitionReducer>>;
75
79
 
80
+ declare interface DottedPolylineDataLayer<D extends UnknownData = NoData> extends BaseDataLayer<PolylineData, D> {
81
+ id: string;
82
+ type: 'dotted-polyline';
83
+ data: (PolylineData & D)[];
84
+ diameter?: number | ((dataElement: PolylineData & D) => number);
85
+ gap?: number;
86
+ anchor?: 'bottom' | 'center' | 'top';
87
+ color?: string | ((dataElement: PolylineData & D) => string);
88
+ alpha?: number;
89
+ animation?: false | 'railway' | 'waves';
90
+ speed?: number;
91
+ amplitude?: number;
92
+ waves?: number;
93
+ }
94
+
95
+ declare type EventEmitter = ReturnType<typeof useEventEmitter>;
96
+
76
97
  declare type EventHandler = () => void;
77
98
 
78
99
  declare enum EventType {
@@ -214,10 +235,31 @@ declare interface IconDataLayer<D extends UnknownData = NoData> extends BaseData
214
235
  }) => void;
215
236
  }
216
237
 
238
+ declare interface Listener {
239
+ event: EventType;
240
+ handler: EventHandler;
241
+ userDefined: boolean;
242
+ }
243
+
217
244
  declare type NoData = Record<string, never>;
218
245
 
219
246
  declare type OnPickFn = (args: { coordinates: SmplrCoord3d; furnitureId?: string }) => void
220
247
 
248
+ declare interface OrbitCamera extends ArcRotateCamera {
249
+ smplrData: {
250
+ persisted: boolean;
251
+ };
252
+ getPlacement: () => OrbitCameraPlacement;
253
+ setPlacement: (args: PartialOrbitCameraPlacement & {
254
+ animate?: boolean;
255
+ animationDuration?: number;
256
+ }) => void;
257
+ zoomIn: () => void;
258
+ zoomOut: () => void;
259
+ smplrMode: CameraMode;
260
+ setMode: (mode: CameraMode) => void;
261
+ }
262
+
221
263
  declare interface OrbitCameraPlacement {
222
264
  alpha: number;
223
265
  beta: number;
@@ -363,6 +405,8 @@ declare interface ScreenXY {
363
405
  screenY: number;
364
406
  }
365
407
 
408
+ declare type SmplrCamera = OrbitCamera | UniversalCamera | VRDeviceOrientationFreeCamera;
409
+
366
410
  declare interface SmplrCoord2d {
367
411
  levelIndex: number;
368
412
  x: number;
@@ -387,6 +431,7 @@ declare interface SmplrScene extends Scene {
387
431
  _smplr_renderLoop: SmplrRenderLoop;
388
432
  _smplr_interactive?: boolean;
389
433
  _smplr_baseHeightForLevel?: number[];
434
+ cameras: SmplrCamera[];
390
435
  }
391
436
 
392
437
  export declare class Space {
@@ -439,6 +484,16 @@ declare interface SpaceOptions {
439
484
 
440
485
  declare type UnknownData = Record<string, unknown>;
441
486
 
487
+ declare const useEventEmitter: () => {
488
+ addListener: (listener: Listener) => number;
489
+ removeListener: (listenerId: number) => void;
490
+ emit: (event: EventType) => void;
491
+ clearListeners: (event: EventType) => void;
492
+ clearUserDefinedListeners: (event: EventType) => void;
493
+ clearAllListeners: () => void;
494
+ clearAllUserDefinedListeners: () => void;
495
+ };
496
+
442
497
  declare interface Vector2Coord {
443
498
  x: number;
444
499
  y: number;
@@ -448,7 +503,7 @@ declare interface Vector3Coord extends Vector2Coord {
448
503
  z: number;
449
504
  }
450
505
 
451
- export declare const version = "2.10.1-beta.2";
506
+ export declare const version = "2.10.1-beta.4";
452
507
 
453
508
  declare interface ViewerOptions {
454
509
  mode?: CameraMode;
@@ -466,4 +521,20 @@ declare interface ViewerOptions {
466
521
  loadingMessage?: string;
467
522
  }
468
523
 
524
+ declare interface ViewerRendererHandle {
525
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
526
+ getSpaceDefinition: () => any
527
+ zoomIn: () => void
528
+ zoomOut: () => void
529
+ centerCam: () => void
530
+ showUpToLevel: (levelIndex: number) => void
531
+ showAllLevels: () => void
532
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
533
+ getFurnitureElementInstance: (furnitureId: string | string[]) => any
534
+ addEventListener: EventEmitter['addListener']
535
+ removeEventListener: EventEmitter['removeListener']
536
+ clearEventListeners: EventEmitter['clearUserDefinedListeners']
537
+ clearAllEventListeners: EventEmitter['clearAllUserDefinedListeners']
538
+ }
539
+
469
540
  export { }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smplrspace/smplr-loader",
3
- "version": "2.10.1-beta.2",
3
+ "version": "2.10.1-beta.4",
4
4
  "description": "NPM package to load a typed Smplr.js from CDN easily",
5
5
  "type": "module",
6
6
  "files": [