@realsee/five 5.0.0-alpha.53 → 5.0.0-alpha.57

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 (101) hide show
  1. package/docs/assets/js/search.js +1 -1
  2. package/docs/classes/five.AnimationFrameLoop.html +522 -0
  3. package/docs/classes/five.BVH.html +488 -0
  4. package/docs/classes/five.BVHNode.html +468 -0
  5. package/docs/classes/five.BVHVector3.html +525 -0
  6. package/docs/classes/five.Camera.html +17 -17
  7. package/docs/classes/five.Five.html +212 -168
  8. package/docs/classes/five.InternalWebGLRenderer.html +4 -4
  9. package/docs/classes/five.Model.html +23 -26
  10. package/docs/classes/five.NetworkSubscribe.html +9 -9
  11. package/docs/classes/five.PBMContainer.html +7 -7
  12. package/docs/classes/five.PBMGroup.html +7 -7
  13. package/docs/classes/five.PBMMaterial.html +34 -194
  14. package/docs/classes/five.PBMMesh.html +4 -4
  15. package/docs/classes/five.Scene.html +4 -4
  16. package/docs/classes/five.Subscribe.html +9 -9
  17. package/docs/classes/five.Work.html +348 -0
  18. package/docs/classes/gltf_loader.GLTFLoader.html +4 -4
  19. package/docs/classes/gltf_loader.GLTFObject.html +4 -4
  20. package/docs/classes/line.Line.html +4 -4
  21. package/docs/classes/line.LineGeometry.html +4 -4
  22. package/docs/classes/line.LineMaterial.html +4 -4
  23. package/docs/classes/line.LineSegmentsGeometry.html +4 -4
  24. package/docs/classes/line.THREE_Line2.html +4 -4
  25. package/docs/classes/line.THREE_LineSegments2.html +4 -4
  26. package/docs/classes/react.Store.html +4 -4
  27. package/docs/classes/server.BVH.html +587 -0
  28. package/docs/classes/server.BVHNode.html +567 -0
  29. package/docs/classes/server.BVHVector3.html +624 -0
  30. package/docs/classes/server.Model.html +30 -15
  31. package/docs/classes/server.PBMGroup.html +22 -7
  32. package/docs/classes/server.PBMMesh.html +22 -7
  33. package/docs/classes/sticker.Sticker.html +4 -4
  34. package/docs/index.html +4 -4
  35. package/docs/interfaces/five.AddableObject.html +4 -4
  36. package/docs/interfaces/five.AnimationFrame.html +243 -0
  37. package/docs/interfaces/five.BVHIntersect.html +204 -0
  38. package/docs/interfaces/five.CameraPose.html +232 -0
  39. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +40 -15
  40. package/docs/interfaces/five.EventCallback.html +33 -30
  41. package/docs/interfaces/five.FiveInitArgs.html +4 -4
  42. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +11 -11
  43. package/docs/interfaces/five.ImageOptions.html +11 -63
  44. package/docs/interfaces/five.ImageURLOptions.html +260 -0
  45. package/docs/interfaces/five.IntersectMeshInterface.html +4 -4
  46. package/docs/interfaces/five.Intersection.html +4 -4
  47. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +13 -13
  48. package/docs/interfaces/five.ModelEventCallback.html +4 -4
  49. package/docs/interfaces/five.MovePanoOptions.html +4 -4
  50. package/docs/interfaces/five.PBMPanoPicture.html +219 -0
  51. package/docs/interfaces/five.PBMPanoVideo.html +238 -0
  52. package/docs/interfaces/five.PBMParameters.html +30 -182
  53. package/docs/interfaces/five.PanoCircleMeshInterface.html +83 -18
  54. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +30 -16
  55. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +13 -13
  56. package/docs/interfaces/five.Pose.html +4 -4
  57. package/docs/interfaces/five.Scissor.html +4 -4
  58. package/docs/interfaces/five.State.html +4 -4
  59. package/docs/interfaces/five.SubscribeMixinType.emit.html +5 -5
  60. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +5 -5
  61. package/docs/interfaces/five.SubscribeMixinType.off.html +5 -5
  62. package/docs/interfaces/five.SubscribeMixinType.on.html +5 -5
  63. package/docs/interfaces/five.SubscribeMixinType.once.html +5 -5
  64. package/docs/interfaces/five.TextureOptions.html +296 -0
  65. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +7 -7
  66. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +30 -15
  67. package/docs/interfaces/five.WorkCubeImage.html +251 -0
  68. package/docs/interfaces/five.WorkImage.html +306 -0
  69. package/docs/interfaces/five.WorkInitial.html +273 -0
  70. package/docs/interfaces/five.WorkModel.html +239 -0
  71. package/docs/interfaces/five.WorkObserver.html +323 -0
  72. package/docs/interfaces/five.WorkTile.html +274 -0
  73. package/docs/interfaces/five.WorkVideo.html +211 -0
  74. package/docs/interfaces/gltf_loader.GLTF.html +4 -4
  75. package/docs/interfaces/react.FiveActionReactCallbacks.html +4 -4
  76. package/docs/interfaces/react.FiveInjectionTypes.html +8 -8
  77. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +4 -4
  78. package/docs/interfaces/server.BVHIntersect.html +303 -0
  79. package/docs/interfaces/server.Intersection.html +22 -7
  80. package/docs/interfaces/server.ModelEventCallback.html +22 -7
  81. package/docs/interfaces/sticker.IntersectionLike.html +4 -4
  82. package/docs/modules/five.SubscribeMixinType.html +4 -4
  83. package/docs/modules/five.html +230 -369
  84. package/docs/modules/gltf_loader.html +4 -4
  85. package/docs/modules/line.html +4 -4
  86. package/docs/modules/react.html +13 -13
  87. package/docs/modules/server.html +47 -22
  88. package/docs/modules/sticker.html +4 -4
  89. package/docs/modules.html +4 -4
  90. package/five/index.d.ts +305 -235
  91. package/five/index.js +13 -107
  92. package/gltf-loader/index.js +2 -2
  93. package/line/index.js +2 -2
  94. package/package.json +1 -3
  95. package/react/index.js +3 -3
  96. package/server/index.d.ts +136 -20
  97. package/server/index.js +11 -11
  98. package/sticker/index.js +2 -2
  99. package/umd/five-react.js +1 -1
  100. package/umd/five.js +1 -1
  101. package/docs/classes/five.HashCubeTexture.html +0 -266
package/five/index.d.ts CHANGED
@@ -6,17 +6,150 @@ export declare interface AddableObject extends THREE_2.Object3D {
6
6
  setResolution?(width: number, height: number): void;
7
7
  }
8
8
 
9
+ export declare interface AnimationFrame {
10
+ callback: (time: number, deltaTime: number) => void;
11
+ once: boolean;
12
+ delay: number;
13
+ order: number;
14
+ }
15
+
16
+ export declare class AnimationFrameLoop {
17
+ private frames;
18
+ private time;
19
+ private stoped;
20
+ private static sharedInstance?;
21
+ static get shared(): AnimationFrameLoop;
22
+ constructor();
23
+ private loop;
24
+ private remove;
25
+ /**
26
+ * 添加到动画循环
27
+ * @param callback - 动画循环回调
28
+ * @param once - 是否只回调一次
29
+ * @param delay - 延迟多少个动画循环回调
30
+ * @param order - 优先级,数字越小越早被调用
31
+ * @returns 移除动画循环函数
32
+ */
33
+ add(callback: AnimationFrame["callback"], once?: boolean, delay?: number, order?: number): () => void;
34
+ disponse(): void;
35
+ /**
36
+ * 获取下一帧间隔时间
37
+ * @param callback - 返回下一帧间隔时间
38
+ */
39
+ getFrameTime(callback: (deltaTime: number) => void): () => void;
40
+ }
41
+
42
+ export declare class BVH {
43
+ _trianglesArray: Float32Array;
44
+ _maxTrianglesPerNode: number;
45
+ _bboxArray: Float32Array;
46
+ _bboxHelper: Float32Array;
47
+ _rootNode: BVHNode | null;
48
+ _nodesToSplit: BVHNode[];
49
+ constructor(trianglesArray: Float32Array, maxTrianglesPerNode?: number);
50
+ private calcBoundingBoxes;
51
+ splitNode(): void;
52
+ private _splitNode;
53
+ /**
54
+ * 计算包围盒
55
+ * @param startIndex - 开始的三角形序号
56
+ * @param endIndex - 结束的三角形序号
57
+ * @param expandBy - 外面扩展
58
+ */
59
+ private calcExtents;
60
+ /**
61
+ * 计算射线与三角形的碰撞
62
+ * @param rayOrigin - 射线的原点坐标
63
+ * @param rayDirection - 设想的方向向量
64
+ * @param backfaceCulling - 是否背面剔除
65
+ * @return 碰撞焦点数组
66
+ */
67
+ intersectRay(rayOrigin: BVHVector3, rayDirection: BVHVector3, backfaceCulling: boolean): BVHIntersect[];
68
+ dispose(): void;
69
+ }
70
+
71
+ export declare interface BVHIntersect {
72
+ triangle: [BVHVector3, BVHVector3, BVHVector3];
73
+ triangleIndex: number;
74
+ intersectionPoint: BVHVector3;
75
+ }
76
+
77
+ /**
78
+ * A node in the BVH structure
79
+ * @param extentsMin - the min coords of this node's bounding box
80
+ * @param extentsMax - the max coords of this node's bounding box
81
+ * @param startIndex - an index in the bbox array, where the first element of this node is located
82
+ * @param endIndex - an index in the bbox array, where the last of this node is located, plus 1 (meaning that its non-inclusive).
83
+ * @param level - distance of this node from the root for the bvh tree. root node has level=0, its children have level=1 etc.
84
+ */
85
+ export declare class BVHNode {
86
+ _extentsMin: {
87
+ x: number;
88
+ y: number;
89
+ z: number;
90
+ };
91
+ _extentsMax: {
92
+ x: number;
93
+ y: number;
94
+ z: number;
95
+ };
96
+ _startIndex: number;
97
+ _endIndex: number;
98
+ _level: number;
99
+ _node0: BVHNode | null;
100
+ _node1: BVHNode | null;
101
+ elementCount: number;
102
+ center: number[];
103
+ size: number[];
104
+ order: number[];
105
+ constructor(extentsMin: {
106
+ x: number;
107
+ y: number;
108
+ z: number;
109
+ }, extentsMax: {
110
+ x: number;
111
+ y: number;
112
+ z: number;
113
+ }, startIndex: number, endIndex: number, level: number);
114
+ clearShapes(): void;
115
+ }
116
+
117
+ export declare class BVHVector3 {
118
+ x: number;
119
+ y: number;
120
+ z: number;
121
+ constructor(x?: number, y?: number, z?: number);
122
+ copy(v: BVHVector3): this;
123
+ set(x: number, y: number, z: number): this;
124
+ fromArray(array: ArrayLike<number>, firstElementPos?: number): this;
125
+ add(v: BVHVector3): this;
126
+ multiplyScalar(scalar: number): this;
127
+ subVectors(a: BVHVector3, b: BVHVector3): this;
128
+ dot(v: BVHVector3): number;
129
+ cross(v: BVHVector3): this;
130
+ crossVectors(a: BVHVector3, b: BVHVector3): this;
131
+ clone(): BVHVector3;
132
+ }
133
+
9
134
  /** Five 相机 */
10
135
  export declare class Camera extends THREE_2.PerspectiveCamera {
11
136
  /** 相机姿态 */
12
- pose: Pose;
137
+ pose: CameraPose;
13
138
  constructor(fov: number);
14
139
  /** 通过相机参数反算姿态 */
15
- computePose(): void;
140
+ computePose(): this;
16
141
  /** 设置相机姿态 */
17
- setFromPose(pose: Partial<Pose>): void;
142
+ setFromPose(pose: Partial<CameraPose>): this;
18
143
  /** 拷贝相机姿态 */
19
- copyPose(): Pose;
144
+ copyPose(): CameraPose;
145
+ }
146
+
147
+ export declare interface CameraPose {
148
+ longitude: number;
149
+ latitude: number;
150
+ fov: number;
151
+ distance: number;
152
+ offset: THREE_2.Vector3;
20
153
  }
21
154
 
22
155
  export declare type ControllerCustomInitTypes = {
@@ -156,20 +289,14 @@ export declare type ControllerEventTypes = {
156
289
  * @param final - 是否手势结束
157
290
  * @returns 可以通过 `return false` 阻止
158
291
  */
159
- wantsGesture(type: GestureTypes, pointers: {
160
- x: number;
161
- y: number;
162
- }[], final: boolean): void | false;
292
+ wantsGesture(type: GestureTypes, pointers: any[], final: boolean): void | false;
163
293
  /**
164
294
  * 手势 触发
165
295
  * @param type - 手势类型
166
296
  * @param pointers - 手指位置
167
297
  * @param final - 是否手势结束
168
298
  */
169
- gesture(type: GestureTypes, pointers: {
170
- x: number;
171
- y: number;
172
- }[], final: boolean): void;
299
+ gesture(type: GestureTypes, pointers: any[], final: boolean): void;
173
300
  /**
174
301
  * 意图要触发 pan 手势(滑动屏幕), 可以通过 `return false` 阻止
175
302
  * @param pose - 意图的相机姿态
@@ -286,7 +413,7 @@ export declare type ControllerEventTypes = {
286
413
  * @param panoIndex - 加载点位下标
287
414
  * @param observer - 对应的 observer 详情
288
415
  */
289
- textureLoaded(panoIndex: number, observer: WorkObserver, meta: (Meta | null)[]): void;
416
+ textureLoaded(panoIndex: number, observer: WorkObserver, meta: (NetWorkMeta | null)[]): void;
290
417
  /**
291
418
  * 抛出错误
292
419
  * @param error - 抛出错误
@@ -294,72 +421,28 @@ export declare type ControllerEventTypes = {
294
421
  error(error: Error): void;
295
422
  };
296
423
 
424
+ /**
425
+ * URL 地址的转换
426
+ * @param url - url 原地址
427
+ * @param options - url 转换参数
428
+ * @returns url 转换结果
429
+ */
430
+ export declare function defaultImageURLTransform(url: string, options: ImageURLOptions): string;
431
+
297
432
  export declare interface DepthPanoramaControllerCustomInitArgs extends PanoramaLikeControllerCustomInitArgs {
298
433
  /** 最远可移动观察点距离 */
299
434
  maxAccessibleDistance?: number;
435
+ /**
436
+ * 点击地面观察点标识的判定范围
437
+ * @description
438
+ * 如果在判定范围内则确定去到目标点,
439
+ * 否则寻找点击位置方向最适合的点(可能会走到一个离相机更近的点)。
440
+ */
441
+ panoTapTriggerRadius?: number;
300
442
  /** 地面观察点标识自定义创建器 */
301
443
  panoCircleMeshCreator?: () => PanoCircleMeshInterface;
302
444
  }
303
445
 
304
- /**
305
- * 动画变化曲线
306
- */
307
- export declare const Easing: {
308
- Linear: {
309
- None: (amount: number) => number;
310
- };
311
- Quadratic: {
312
- In: (amount: number) => number;
313
- Out: (amount: number) => number;
314
- InOut: (amount: number) => number;
315
- };
316
- Cubic: {
317
- In: (amount: number) => number;
318
- Out: (amount: number) => number;
319
- InOut: (amount: number) => number;
320
- };
321
- Quartic: {
322
- In: (amount: number) => number;
323
- Out: (amount: number) => number;
324
- InOut: (amount: number) => number;
325
- };
326
- Quintic: {
327
- In: (amount: number) => number;
328
- Out: (amount: number) => number;
329
- InOut: (amount: number) => number;
330
- };
331
- Sinusoidal: {
332
- In: (amount: number) => number;
333
- Out: (amount: number) => number;
334
- InOut: (amount: number) => number;
335
- };
336
- Exponential: {
337
- In: (amount: number) => number;
338
- Out: (amount: number) => number;
339
- InOut: (amount: number) => number;
340
- };
341
- Circular: {
342
- In: (amount: number) => number;
343
- Out: (amount: number) => number;
344
- InOut: (amount: number) => number;
345
- };
346
- Elastic: {
347
- In: (amount: number) => number;
348
- Out: (amount: number) => number;
349
- InOut: (amount: number) => number;
350
- };
351
- Back: {
352
- In: (amount: number) => number;
353
- Out: (amount: number) => number;
354
- InOut: (amount: number) => number;
355
- };
356
- Bounce: {
357
- In: (amount: number) => number;
358
- Out: (amount: number) => number;
359
- InOut: (amount: number) => number;
360
- };
361
- };
362
-
363
446
  /**
364
447
  * Five 事件列表
365
448
  * @description
@@ -380,7 +463,7 @@ export declare type EventTypes = Pick<ControllerEventTypes, typeof PROXY_CONTROL
380
463
  */
381
464
  error(error: Error): void;
382
465
  /**
383
- * 开始加载 Work 数据
466
+ * 准备加载 Work 数据
384
467
  * @param input - 输入的 work
385
468
  * @param work - 归一化的标准 work
386
469
  * @param state - 加载时的姿态
@@ -394,7 +477,7 @@ export declare type EventTypes = Pick<ControllerEventTypes, typeof PROXY_CONTROL
394
477
  */
395
478
  load(input: any, work: Work, state: Omit<State, "offset">): void;
396
479
  /**
397
- * 开始加载 Work 数据
480
+ * 加载完 Work 数据
398
481
  * @param input - 输入的 work
399
482
  * @param work - 归一化的标准 work
400
483
  */
@@ -513,7 +596,7 @@ export declare type EventTypes = Pick<ControllerEventTypes, typeof PROXY_CONTROL
513
596
  * @param state - 状态
514
597
  * @param detail - 详情
515
598
  */
516
- network(source: string, state: NetworkState, detail: string): void;
599
+ network(source: string, type: NetworkType, state: NetworkState, detail: string): void;
517
600
  /** five 被析构。 插件中请监听用于自身析构 */
518
601
  dispose(): void;
519
602
  };
@@ -550,62 +633,6 @@ export declare class Five extends Subscribe<EventTypes> {
550
633
  * 请使用 `import { Line } from "@realsee/five/line"` 代替;
551
634
  */
552
635
  static Line: any;
553
- /** Five 的动画函数*/
554
- static Easing: {
555
- Linear: {
556
- None: (amount: number) => number;
557
- };
558
- Quadratic: {
559
- In: (amount: number) => number;
560
- Out: (amount: number) => number;
561
- InOut: (amount: number) => number;
562
- };
563
- Cubic: {
564
- In: (amount: number) => number;
565
- Out: (amount: number) => number;
566
- InOut: (amount: number) => number;
567
- };
568
- Quartic: {
569
- In: (amount: number) => number;
570
- Out: (amount: number) => number;
571
- InOut: (amount: number) => number;
572
- };
573
- Quintic: {
574
- In: (amount: number) => number;
575
- Out: (amount: number) => number;
576
- InOut: (amount: number) => number;
577
- };
578
- Sinusoidal: {
579
- In: (amount: number) => number;
580
- Out: (amount: number) => number;
581
- InOut: (amount: number) => number;
582
- };
583
- Exponential: {
584
- In: (amount: number) => number;
585
- Out: (amount: number) => number;
586
- InOut: (amount: number) => number;
587
- };
588
- Circular: {
589
- In: (amount: number) => number;
590
- Out: (amount: number) => number;
591
- InOut: (amount: number) => number;
592
- };
593
- Elastic: {
594
- In: (amount: number) => number;
595
- Out: (amount: number) => number;
596
- InOut: (amount: number) => number;
597
- };
598
- Back: {
599
- In: (amount: number) => number;
600
- Out: (amount: number) => number;
601
- InOut: (amount: number) => number;
602
- };
603
- Bounce: {
604
- In: (amount: number) => number;
605
- Out: (amount: number) => number;
606
- InOut: (amount: number) => number;
607
- };
608
- };
609
636
  /**
610
637
  * 自动播放状态是否暂停
611
638
  * @description
@@ -661,7 +688,7 @@ export declare class Five extends Subscribe<EventTypes> {
661
688
  * 可以动态对配置在 `work` 数据中的模型贴图在 runtime 做 url 调整。
662
689
  * 平衡加载时间和图片质量
663
690
  */
664
- textureOptions: ImageOptions;
691
+ textureOptions: TextureOptions;
665
692
  /**
666
693
  * 模型贴图的配置参数
667
694
  * @description
@@ -692,11 +719,12 @@ export declare class Five extends Subscribe<EventTypes> {
692
719
  plugins: {
693
720
  [key: string]: FivePluginInstance<any>;
694
721
  };
695
- private ident;
722
+ ident: string;
723
+ private stopAnimationLoop?;
724
+ private fps;
696
725
  private helperGroup;
697
726
  private modeChangeDuration;
698
727
  private onlyRenderIfNeeds;
699
- private maxFps;
700
728
  private poweredByRealsee;
701
729
  private controller?;
702
730
  private destroyed;
@@ -704,11 +732,10 @@ export declare class Five extends Subscribe<EventTypes> {
704
732
  private controllerInits;
705
733
  private panoramaLikeSavedPose;
706
734
  private extraElements;
707
- private moveToPanoQueue?;
708
735
  private getPixelsRenderTarget;
709
- private tweenCoordinates?;
710
736
  private readyCallbacks;
711
737
  private modelPending;
738
+ private syncingState;
712
739
  /**
713
740
  * 是否开启 IOS EDR 模式
714
741
  * 需要客户端配合
@@ -802,7 +829,7 @@ export declare class Five extends Subscribe<EventTypes> {
802
829
  * @param userAction - 是否用户触发
803
830
  * @returns Promise 是否移动成功
804
831
  */
805
- updateCamera(pose: Partial<Pose>, duration: number, userAction?: boolean): Promise<void>;
832
+ updateCamera(pose: Partial<Omit<Pose, "offset">>, duration: number, userAction?: boolean): Promise<void>;
806
833
  /**
807
834
  * 获取当前相机经纬度
808
835
  * @deprecated 请使用使用 getPose
@@ -861,8 +888,9 @@ export declare class Five extends Subscribe<EventTypes> {
861
888
  * @param state - 切换完成时的姿态
862
889
  * @param duration - 模态切换动画用时
863
890
  * @param userAction - 是否时用户动作触发 默认 true
891
+ * @param force - 必须重新初始化 controller
864
892
  */
865
- changeMode<T extends Mode>(mode: T, state?: Partial<Omit<State, "mode">>, duration?: number, userAction?: boolean): Promise<void>;
893
+ changeMode<T extends Mode>(mode: T, state?: Partial<Omit<State, "mode">>, duration?: number, userAction?: boolean, force?: boolean): Promise<void>;
866
894
  /**
867
895
  * 获取画面中的像素颜色
868
896
  * @param x - 获取像素区域的起始坐标 x
@@ -877,10 +905,6 @@ export declare class Five extends Subscribe<EventTypes> {
877
905
  * 获取显示用的画布(Canvas DOM节点)
878
906
  */
879
907
  getElement(): HTMLCanvasElement | undefined;
880
- /**
881
- * 但停自动播放
882
- */
883
- pause(): void;
884
908
  /**
885
909
  * 强制渲染
886
910
  * @description
@@ -893,6 +917,11 @@ export declare class Five extends Subscribe<EventTypes> {
893
917
  * @param callback - 渲染完成回调
894
918
  */
895
919
  render(callback?: () => void, updateObjectResolution?: boolean): THREE_2.WebGLRenderTarget;
920
+ updateTime(time: number, deltaTime: number): void;
921
+ /**
922
+ * 但停自动播放
923
+ */
924
+ pause(): void;
896
925
  play(): void;
897
926
  /**
898
927
  * 转化到 Panorama 模态,并移动到对应序号的观察点。
@@ -1159,34 +1188,33 @@ export declare type GestureTypes = "pan" | "tap" | "pinch" | "mouseWheel";
1159
1188
 
1160
1189
  export declare function getViewportScale(): number;
1161
1190
 
1162
- export declare class HashCubeTexture extends THREE_2.CubeTexture {
1163
- /** 识别哈希 */
1164
- hash: string;
1165
- meta: (Meta | null)[];
1166
- }
1167
-
1168
1191
  /**
1169
1192
  * 图片参数
1170
1193
  */
1171
1194
  export declare interface ImageOptions {
1172
- key?: string;
1173
1195
  /**
1174
1196
  * url 地址转化
1175
1197
  * @param url - 原始地址
1176
1198
  * @param options - 当前地址参数
1177
1199
  * @returns 转化后地址
1178
1200
  */
1179
- transform?: (url: string, options: ImageOptions) => string;
1201
+ transform?: (url: string, options: ImageURLOptions) => string;
1180
1202
  /** 图片尺寸参数 */
1181
1203
  size?: number;
1182
1204
  /** 图片质量参数(0-100) */
1183
1205
  quality?: number;
1184
1206
  /** 图片格式参数(jpg, png) */
1185
- format?: string;
1186
- /** basis loader 是否初始化完成 */
1187
- basisLoaderInitialized?: boolean;
1188
- /** 针对 textureOptions 是否自动通过模型贴图的数量计算需要的模型贴图的尺寸 默认 true */
1189
- autoResize?: boolean;
1207
+ format?: "jpg" | "png" | "heif" | "webp" | "avif";
1208
+ }
1209
+
1210
+ export declare interface ImageURLOptions {
1211
+ key: string;
1212
+ basisLoaderInitialized: boolean;
1213
+ size?: number;
1214
+ quality?: number;
1215
+ format?: "jpg" | "png" | "heif" | "webp" | "avif";
1216
+ cut?: [x: number, y: number, width: number, height: number];
1217
+ sharpen?: number;
1190
1218
  }
1191
1219
 
1192
1220
  export declare class InternalWebGLRenderer extends THREE_2.WebGLRenderer {
@@ -1271,7 +1299,15 @@ export declare type LooseWorkPanorama = {
1271
1299
  front: string;
1272
1300
  back: string;
1273
1301
  video?: LooseWorkVideo;
1274
- tiles?: string;
1302
+ luminance?: {
1303
+ up: string;
1304
+ down: string;
1305
+ right: string;
1306
+ left: string;
1307
+ front: string;
1308
+ back: string;
1309
+ };
1310
+ tiles?: number[];
1275
1311
  };
1276
1312
 
1277
1313
  export declare type LooseWorkVideo = {
@@ -1280,16 +1316,6 @@ export declare type LooseWorkVideo = {
1280
1316
  size: number[];
1281
1317
  };
1282
1318
 
1283
- export declare type Meta = {
1284
- source: string;
1285
- headers: {
1286
- [name: string]: string;
1287
- };
1288
- requestTime: number;
1289
- responseTime: number;
1290
- costs: number;
1291
- };
1292
-
1293
1319
  export declare type Mirror<T extends string> = Record<T, T>;
1294
1320
 
1295
1321
  /**
@@ -1360,8 +1386,8 @@ export declare class Model extends PBMContainer implements Subscribe<ModelEventT
1360
1386
  */
1361
1387
  emit: SubscribeMixinType.emit<ModelEventType>;
1362
1388
  /** bvh 树的计算结果 */
1363
- bvhs: any[] & {
1364
- loaded?: boolean;
1389
+ bvhs: BVH[] & {
1390
+ loaded: boolean;
1365
1391
  };
1366
1392
  /** 网络跟踪 */
1367
1393
  private networkSubscribe?;
@@ -1408,13 +1434,13 @@ export declare class Model extends PBMContainer implements Subscribe<ModelEventT
1408
1434
  * @returns 返回碰撞
1409
1435
  */
1410
1436
  intersectRaycaster(raycaster: THREE_2.Raycaster, floors?: number | number[]): Intersection[];
1411
- buildBVH(): Promise<void>;
1437
+ buildBVH(): void;
1412
1438
  /**
1413
1439
  * 加载模型
1414
1440
  * @param workModel - work 的 model 内容
1415
1441
  * @param imageOptions - 图片参数
1416
1442
  */
1417
- load(workModel: WorkModel, imageOptions?: ImageOptions): Promise<void>;
1443
+ load(workModel: WorkModel, textureOptions?: TextureOptions): Promise<void>;
1418
1444
  /**
1419
1445
  * 析构函数
1420
1446
  * @description
@@ -1504,21 +1530,39 @@ export declare interface MovePanoOptions extends Partial<Omit<Pose, "offset">> {
1504
1530
  moveCancelCallback?: () => void;
1505
1531
  }
1506
1532
 
1507
- export declare type NetworkState = "ok" | "preload" | "error" | "abort" | "timeout" | "forbidden";
1533
+ export declare type NetWorkMeta = {
1534
+ source: string;
1535
+ headers: {
1536
+ [name: string]: string;
1537
+ };
1538
+ requestTime: number;
1539
+ responseTime: number;
1540
+ costs: number;
1541
+ size?: number;
1542
+ };
1543
+
1544
+ export declare type NetworkState = "ok" | "preload" | "error" | "timeout" | "forbidden";
1508
1545
 
1509
1546
  export declare class NetworkSubscribe extends Subscribe<{
1510
- network(source: string, state: NetworkState, detail: string): void;
1547
+ network(source: string, type: NetworkType, state: NetworkState, detail: string): void;
1511
1548
  }> {
1512
1549
  }
1513
1550
 
1551
+ export declare type NetworkType = "XMLHttpRequest" | "Script" | "Image" | "Link";
1552
+
1514
1553
  export declare interface PanoCircleMeshInterface extends THREE_2.Object3D {
1515
1554
  needsRender: boolean;
1555
+ /** 当前高亮 */
1556
+ current: boolean;
1557
+ /** 是否当前高亮 */
1558
+ setCurrent(current: boolean): void;
1516
1559
  loading: boolean;
1517
- disabled: boolean;
1518
- panoIndex: number;
1519
1560
  setLoading(shown: boolean): void;
1561
+ disabled: boolean;
1520
1562
  setDisabled(disabled: boolean): void;
1563
+ progress: number;
1521
1564
  setProgress(progress: number): void;
1565
+ opacity: number;
1522
1566
  setOpacity(opacity: number): void;
1523
1567
  dispose(): void;
1524
1568
  }
@@ -1535,6 +1579,7 @@ export declare interface PanoramaControllerCustomInitArgs extends PanoramaLikeCo
1535
1579
  panoTapTriggerRadius?: number;
1536
1580
  /** 地面观察点标识自定义创建器 */
1537
1581
  panoCircleMeshCreator?: () => PanoCircleMeshInterface;
1582
+ tileLevelForFov?: false | ((fov: number) => number);
1538
1583
  }
1539
1584
 
1540
1585
  export declare interface PanoramaLikeControllerCustomInitArgs {
@@ -1609,14 +1654,10 @@ export declare class PBMGroup extends PBMContainer {
1609
1654
 
1610
1655
  /** PBM 材质 */
1611
1656
  export declare class PBMMaterial extends THREE_2.ShaderMaterial implements PBMParameters {
1612
- /** 起始点位全景图 */
1613
- pano0Map: HashCubeTexture | null;
1614
- /** 起始点全景图变换矩阵 4x4 */
1615
- pano0Matrix: THREE_2.Matrix4;
1616
- /** 结束点位全景图 */
1617
- pano1Map: HashCubeTexture | null;
1618
- /** 结束点全景图变换矩阵 4x4 */
1619
- pano1Matrix: THREE_2.Matrix4;
1657
+ /** 起始点 */
1658
+ pano0: PBMPanoPicture | null;
1659
+ /** 结束点 */
1660
+ pano1: PBMPanoPicture | null;
1620
1661
  /** 模型贴图和全景图的混合程度 [0-1] */
1621
1662
  modelAlpha: number;
1622
1663
  /** 全景图混合程度 [0-1] */
@@ -1626,20 +1667,8 @@ export declare class PBMMaterial extends THREE_2.ShaderMaterial implements PBMPa
1626
1667
  perspToOrtho: number;
1627
1668
  /** 模型透明度 */
1628
1669
  opacity: number;
1629
- /** 起始点位深度, 需要使用深度参与计算全景图混合的话 */
1630
- pano0DepthMap: THREE_2.CubeTexture | null;
1631
- /** 全景视频贴图 */
1632
- panoVideoMap: THREE_2.VideoTexture | null;
1633
- /** 全景视频尺寸 */
1634
- panoVideoSize: THREE_2.Vector2;
1635
- /** 全景视频贴图变换矩阵 */
1636
- panoVideoMatrix: THREE_2.Matrix4;
1637
- /** 全景视频透明度 [0-1] */
1638
- panoVideoAlpha: number;
1639
- /** 瓦片材质 */
1640
- panoTileMap: THREE_2.Texture | null;
1641
- /** 瓦片寻址规则 */
1642
- panoTileMappings: THREE_2.Vector4[][] | null;
1670
+ /** 视频 */
1671
+ panoVideo: PBMPanoVideo | null;
1643
1672
  constructor(parameters?: Partial<PBMParameters>);
1644
1673
  }
1645
1674
 
@@ -1651,16 +1680,32 @@ export declare class PBMMesh extends THREE_2.Mesh<THREE_2.BufferGeometry, PBMMat
1651
1680
  needsRender: boolean;
1652
1681
  }
1653
1682
 
1654
- /** PBM 材质参数 */
1655
- export declare interface PBMParameters {
1683
+ export declare interface PBMPanoPicture {
1656
1684
  /** 起始点位全景图 */
1657
- pano0Map: HashCubeTexture | null;
1685
+ map: THREE_2.CubeTexture;
1686
+ /** 亮度增益 */
1687
+ luminanceMap: THREE_2.CubeTexture | null;
1658
1688
  /** 起始点全景图变换矩阵 4x4 */
1659
- pano0Matrix: THREE_2.Matrix4;
1660
- /** 结束点位全景图 */
1661
- pano1Map: HashCubeTexture | null;
1662
- /** 结束点位全景图变换矩阵 */
1663
- pano1Matrix: THREE_2.Matrix4;
1689
+ matrix: THREE_2.Matrix4;
1690
+ }
1691
+
1692
+ export declare interface PBMPanoVideo {
1693
+ /** 全景视频贴图 */
1694
+ map: THREE_2.VideoTexture | null;
1695
+ /** 全景视频尺寸 */
1696
+ size: THREE_2.Vector2;
1697
+ /** 全景视频贴图变换矩阵 */
1698
+ matrix: THREE_2.Matrix4;
1699
+ /** 全景视频透明度 [0-1] */
1700
+ alpha: number;
1701
+ }
1702
+
1703
+ /** PBM 材质参数 */
1704
+ export declare interface PBMParameters {
1705
+ /** 起始点 */
1706
+ pano0: PBMPanoPicture | null;
1707
+ /** 结束点 */
1708
+ pano1: PBMPanoPicture | null;
1664
1709
  /** 模型贴图和全景图的混合程度 [0-1] */
1665
1710
  modelAlpha: number;
1666
1711
  /** 全景图混合程度 [0-1] */
@@ -1670,20 +1715,8 @@ export declare interface PBMParameters {
1670
1715
  perspToOrtho: number;
1671
1716
  /** 模型透明度 */
1672
1717
  opacity: number;
1673
- /** 起始点位深度, 需要使用深度参与计算全景图混合的话 */
1674
- pano0DepthMap: THREE_2.CubeTexture | null;
1675
- /** 全景视频贴图 */
1676
- panoVideoMap: THREE_2.VideoTexture | null;
1677
- /** 全景视频尺寸 */
1678
- panoVideoSize: THREE_2.Vector2;
1679
- /** 全景视频贴图变换矩阵 */
1680
- panoVideoMatrix: THREE_2.Matrix4;
1681
- /** 全景视频透明度 [0-1] */
1682
- panoVideoAlpha: number;
1683
- /** 瓦片材质 */
1684
- panoTileMap: THREE_2.Texture | null;
1685
- /** 瓦片寻址规则 */
1686
- panoTileMappings: THREE_2.Vector4[][] | null;
1718
+ /** 视频 */
1719
+ panoVideo: PBMPanoVideo | null;
1687
1720
  }
1688
1721
 
1689
1722
  /**
@@ -1743,8 +1776,6 @@ export declare interface State extends Pose {
1743
1776
  panoIndex: number;
1744
1777
  }
1745
1778
 
1746
- export declare function stringifyWork(work: Work): string;
1747
-
1748
1779
  /**
1749
1780
  * 监听者模式
1750
1781
  * @template T - 预设的监听回调类型
@@ -1823,6 +1854,27 @@ export declare namespace SubscribeMixinType {
1823
1854
  }
1824
1855
  }
1825
1856
 
1857
+ /**
1858
+ * 图片参数
1859
+ */
1860
+ export declare interface TextureOptions {
1861
+ /**
1862
+ * url 地址转化
1863
+ * @param url - 原始地址
1864
+ * @param options - 当前地址参数
1865
+ * @returns 转化后地址
1866
+ */
1867
+ transform?: (url: string, options: ImageURLOptions) => string;
1868
+ /** 图片尺寸参数 */
1869
+ size?: number;
1870
+ /** 图片质量参数(0-100) */
1871
+ quality?: number;
1872
+ /** 图片格式参数(jpg, png) */
1873
+ format?: "jpg" | "png" | "heif" | "webp" | "avif";
1874
+ /** 针对 textureOptions 是否自动通过模型贴图的数量计算需要的模型贴图的尺寸 默认 true */
1875
+ autoResize?: boolean;
1876
+ }
1877
+
1826
1878
  export declare interface TopviewControllerCustomInitArgs extends Omit<FloorplanControllerCustomInitArgs, "defaultLongitude" | "defaultLatitude" | "maxLatitude" | "minLatitude"> {
1827
1879
  }
1828
1880
 
@@ -1835,48 +1887,55 @@ export declare interface VRPanoramaControllerCustomInitArgs extends Omit<Panoram
1835
1887
  webvrPolyfillConfig?: any;
1836
1888
  }
1837
1889
 
1838
- export declare type Work = {
1890
+ export declare class Work {
1891
+ name: string;
1839
1892
  workCode: string;
1840
1893
  allowHosts: string[];
1841
1894
  expire: Date;
1842
- uuid: string;
1843
1895
  initial: WorkInitial;
1844
1896
  model?: WorkModel;
1845
1897
  observers: WorkObserver[];
1846
1898
  issuer: string;
1847
1899
  raw: any;
1848
- };
1900
+ constructor();
1901
+ toJSON(): any;
1902
+ }
1849
1903
 
1850
- /** 全景图 */
1851
- export declare type WorkImages = {
1904
+ export declare interface WorkCubeImage {
1852
1905
  up: string;
1853
1906
  down: string;
1854
1907
  right: string;
1855
1908
  left: string;
1856
1909
  front: string;
1857
1910
  back: string;
1911
+ }
1912
+
1913
+ /** 全景图 */
1914
+ export declare interface WorkImage extends WorkCubeImage {
1858
1915
  depth?: string;
1859
- tiles?: string;
1860
- };
1916
+ luminance?: WorkCubeImage;
1917
+ tiles?: WorkTile[];
1918
+ }
1861
1919
 
1862
1920
  /** 初始化位姿参数 */
1863
- export declare type WorkInitial = Omit<State, "offset">;
1921
+ export declare interface WorkInitial extends Omit<State, "offset"> {
1922
+ }
1864
1923
 
1865
1924
  /** 模型数据 */
1866
- export declare type WorkModel = {
1925
+ export declare interface WorkModel {
1867
1926
  file: string;
1868
1927
  textures: string[];
1869
1928
  textureBase: string;
1870
1929
  bvh: boolean;
1871
1930
  async: boolean;
1872
- };
1931
+ }
1873
1932
 
1874
1933
  /** 每个点位的数据 */
1875
- export declare type WorkObserver = {
1934
+ export declare interface WorkObserver {
1876
1935
  panoIndex: number;
1877
1936
  active: boolean;
1878
1937
  loadable: boolean;
1879
- images: WorkImages;
1938
+ images: WorkImage;
1880
1939
  video?: WorkVideo;
1881
1940
  visibleNodes: number[];
1882
1941
  accessibleNodes: number[];
@@ -1884,13 +1943,24 @@ export declare type WorkObserver = {
1884
1943
  standingPosition: THREE_2.Vector3;
1885
1944
  position: THREE_2.Vector3;
1886
1945
  floorIndex: number;
1887
- };
1946
+ }
1947
+
1948
+ export declare interface WorkTile {
1949
+ level: number;
1950
+ size: number;
1951
+ up: string;
1952
+ down: string;
1953
+ right: string;
1954
+ left: string;
1955
+ front: string;
1956
+ back: string;
1957
+ }
1888
1958
 
1889
1959
  /** 全景视频贴片 */
1890
- export declare type WorkVideo = {
1960
+ export declare interface WorkVideo {
1891
1961
  source: string;
1892
1962
  matrix: THREE_2.Matrix4;
1893
1963
  size: THREE_2.Vector2;
1894
- };
1964
+ }
1895
1965
 
1896
1966
  export { }