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

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;
@@ -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,8 @@ declare interface Dimensions {
73
77
 
74
78
  declare type DispatchDataLayersDefinitionFn = Dispatch<ReducerAction<DataLayersDefinitionReducer>>;
75
79
 
80
+ declare type EventEmitter = ReturnType<typeof useEventEmitter>;
81
+
76
82
  declare type EventHandler = () => void;
77
83
 
78
84
  declare enum EventType {
@@ -214,10 +220,31 @@ declare interface IconDataLayer<D extends UnknownData = NoData> extends BaseData
214
220
  }) => void;
215
221
  }
216
222
 
223
+ declare interface Listener {
224
+ event: EventType;
225
+ handler: EventHandler;
226
+ userDefined: boolean;
227
+ }
228
+
217
229
  declare type NoData = Record<string, never>;
218
230
 
219
231
  declare type OnPickFn = (args: { coordinates: SmplrCoord3d; furnitureId?: string }) => void
220
232
 
233
+ declare interface OrbitCamera extends ArcRotateCamera {
234
+ smplrData: {
235
+ persisted: boolean;
236
+ };
237
+ getPlacement: () => OrbitCameraPlacement;
238
+ setPlacement: (args: PartialOrbitCameraPlacement & {
239
+ animate?: boolean;
240
+ animationDuration?: number;
241
+ }) => void;
242
+ zoomIn: () => void;
243
+ zoomOut: () => void;
244
+ smplrMode: CameraMode;
245
+ setMode: (mode: CameraMode) => void;
246
+ }
247
+
221
248
  declare interface OrbitCameraPlacement {
222
249
  alpha: number;
223
250
  beta: number;
@@ -363,6 +390,8 @@ declare interface ScreenXY {
363
390
  screenY: number;
364
391
  }
365
392
 
393
+ declare type SmplrCamera = OrbitCamera | UniversalCamera | VRDeviceOrientationFreeCamera;
394
+
366
395
  declare interface SmplrCoord2d {
367
396
  levelIndex: number;
368
397
  x: number;
@@ -387,6 +416,7 @@ declare interface SmplrScene extends Scene {
387
416
  _smplr_renderLoop: SmplrRenderLoop;
388
417
  _smplr_interactive?: boolean;
389
418
  _smplr_baseHeightForLevel?: number[];
419
+ cameras: SmplrCamera[];
390
420
  }
391
421
 
392
422
  export declare class Space {
@@ -439,6 +469,16 @@ declare interface SpaceOptions {
439
469
 
440
470
  declare type UnknownData = Record<string, unknown>;
441
471
 
472
+ declare const useEventEmitter: () => {
473
+ addListener: (listener: Listener) => number;
474
+ removeListener: (listenerId: number) => void;
475
+ emit: (event: EventType) => void;
476
+ clearListeners: (event: EventType) => void;
477
+ clearUserDefinedListeners: (event: EventType) => void;
478
+ clearAllListeners: () => void;
479
+ clearAllUserDefinedListeners: () => void;
480
+ };
481
+
442
482
  declare interface Vector2Coord {
443
483
  x: number;
444
484
  y: number;
@@ -448,7 +488,7 @@ declare interface Vector3Coord extends Vector2Coord {
448
488
  z: number;
449
489
  }
450
490
 
451
- export declare const version = "2.10.1-beta.2";
491
+ export declare const version = "2.10.1-beta.3";
452
492
 
453
493
  declare interface ViewerOptions {
454
494
  mode?: CameraMode;
@@ -466,4 +506,20 @@ declare interface ViewerOptions {
466
506
  loadingMessage?: string;
467
507
  }
468
508
 
509
+ declare interface ViewerRendererHandle {
510
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
511
+ getSpaceDefinition: () => any
512
+ zoomIn: () => void
513
+ zoomOut: () => void
514
+ centerCam: () => void
515
+ showUpToLevel: (levelIndex: number) => void
516
+ showAllLevels: () => void
517
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
518
+ getFurnitureElementInstance: (furnitureId: string | string[]) => any
519
+ addEventListener: EventEmitter['addListener']
520
+ removeEventListener: EventEmitter['removeListener']
521
+ clearEventListeners: EventEmitter['clearUserDefinedListeners']
522
+ clearAllEventListeners: EventEmitter['clearAllUserDefinedListeners']
523
+ }
524
+
469
525
  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.3",
4
4
  "description": "NPM package to load a typed Smplr.js from CDN easily",
5
5
  "type": "module",
6
6
  "files": [