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

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 +188 -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 +297 -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 - 抛出错误
@@ -297,69 +424,17 @@ export declare type ControllerEventTypes = {
297
424
  export declare interface DepthPanoramaControllerCustomInitArgs extends PanoramaLikeControllerCustomInitArgs {
298
425
  /** 最远可移动观察点距离 */
299
426
  maxAccessibleDistance?: number;
427
+ /**
428
+ * 点击地面观察点标识的判定范围
429
+ * @description
430
+ * 如果在判定范围内则确定去到目标点,
431
+ * 否则寻找点击位置方向最适合的点(可能会走到一个离相机更近的点)。
432
+ */
433
+ panoTapTriggerRadius?: number;
300
434
  /** 地面观察点标识自定义创建器 */
301
435
  panoCircleMeshCreator?: () => PanoCircleMeshInterface;
302
436
  }
303
437
 
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
438
  /**
364
439
  * Five 事件列表
365
440
  * @description
@@ -380,7 +455,7 @@ export declare type EventTypes = Pick<ControllerEventTypes, typeof PROXY_CONTROL
380
455
  */
381
456
  error(error: Error): void;
382
457
  /**
383
- * 开始加载 Work 数据
458
+ * 准备加载 Work 数据
384
459
  * @param input - 输入的 work
385
460
  * @param work - 归一化的标准 work
386
461
  * @param state - 加载时的姿态
@@ -394,7 +469,7 @@ export declare type EventTypes = Pick<ControllerEventTypes, typeof PROXY_CONTROL
394
469
  */
395
470
  load(input: any, work: Work, state: Omit<State, "offset">): void;
396
471
  /**
397
- * 开始加载 Work 数据
472
+ * 加载完 Work 数据
398
473
  * @param input - 输入的 work
399
474
  * @param work - 归一化的标准 work
400
475
  */
@@ -513,7 +588,7 @@ export declare type EventTypes = Pick<ControllerEventTypes, typeof PROXY_CONTROL
513
588
  * @param state - 状态
514
589
  * @param detail - 详情
515
590
  */
516
- network(source: string, state: NetworkState, detail: string): void;
591
+ network(source: string, type: NetworkType, state: NetworkState, detail: string): void;
517
592
  /** five 被析构。 插件中请监听用于自身析构 */
518
593
  dispose(): void;
519
594
  };
@@ -550,62 +625,6 @@ export declare class Five extends Subscribe<EventTypes> {
550
625
  * 请使用 `import { Line } from "@realsee/five/line"` 代替;
551
626
  */
552
627
  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
628
  /**
610
629
  * 自动播放状态是否暂停
611
630
  * @description
@@ -661,7 +680,7 @@ export declare class Five extends Subscribe<EventTypes> {
661
680
  * 可以动态对配置在 `work` 数据中的模型贴图在 runtime 做 url 调整。
662
681
  * 平衡加载时间和图片质量
663
682
  */
664
- textureOptions: ImageOptions;
683
+ textureOptions: TextureOptions;
665
684
  /**
666
685
  * 模型贴图的配置参数
667
686
  * @description
@@ -692,11 +711,12 @@ export declare class Five extends Subscribe<EventTypes> {
692
711
  plugins: {
693
712
  [key: string]: FivePluginInstance<any>;
694
713
  };
695
- private ident;
714
+ ident: string;
715
+ private stopAnimationLoop?;
716
+ private fps;
696
717
  private helperGroup;
697
718
  private modeChangeDuration;
698
719
  private onlyRenderIfNeeds;
699
- private maxFps;
700
720
  private poweredByRealsee;
701
721
  private controller?;
702
722
  private destroyed;
@@ -704,11 +724,10 @@ export declare class Five extends Subscribe<EventTypes> {
704
724
  private controllerInits;
705
725
  private panoramaLikeSavedPose;
706
726
  private extraElements;
707
- private moveToPanoQueue?;
708
727
  private getPixelsRenderTarget;
709
- private tweenCoordinates?;
710
728
  private readyCallbacks;
711
729
  private modelPending;
730
+ private syncingState;
712
731
  /**
713
732
  * 是否开启 IOS EDR 模式
714
733
  * 需要客户端配合
@@ -802,7 +821,7 @@ export declare class Five extends Subscribe<EventTypes> {
802
821
  * @param userAction - 是否用户触发
803
822
  * @returns Promise 是否移动成功
804
823
  */
805
- updateCamera(pose: Partial<Pose>, duration: number, userAction?: boolean): Promise<void>;
824
+ updateCamera(pose: Partial<Omit<Pose, "offset">>, duration: number, userAction?: boolean): Promise<void>;
806
825
  /**
807
826
  * 获取当前相机经纬度
808
827
  * @deprecated 请使用使用 getPose
@@ -861,8 +880,9 @@ export declare class Five extends Subscribe<EventTypes> {
861
880
  * @param state - 切换完成时的姿态
862
881
  * @param duration - 模态切换动画用时
863
882
  * @param userAction - 是否时用户动作触发 默认 true
883
+ * @param force - 必须重新初始化 controller
864
884
  */
865
- changeMode<T extends Mode>(mode: T, state?: Partial<Omit<State, "mode">>, duration?: number, userAction?: boolean): Promise<void>;
885
+ changeMode<T extends Mode>(mode: T, state?: Partial<Omit<State, "mode">>, duration?: number, userAction?: boolean, force?: boolean): Promise<void>;
866
886
  /**
867
887
  * 获取画面中的像素颜色
868
888
  * @param x - 获取像素区域的起始坐标 x
@@ -877,10 +897,6 @@ export declare class Five extends Subscribe<EventTypes> {
877
897
  * 获取显示用的画布(Canvas DOM节点)
878
898
  */
879
899
  getElement(): HTMLCanvasElement | undefined;
880
- /**
881
- * 但停自动播放
882
- */
883
- pause(): void;
884
900
  /**
885
901
  * 强制渲染
886
902
  * @description
@@ -893,6 +909,11 @@ export declare class Five extends Subscribe<EventTypes> {
893
909
  * @param callback - 渲染完成回调
894
910
  */
895
911
  render(callback?: () => void, updateObjectResolution?: boolean): THREE_2.WebGLRenderTarget;
912
+ updateTime(time: number, deltaTime: number): void;
913
+ /**
914
+ * 但停自动播放
915
+ */
916
+ pause(): void;
896
917
  play(): void;
897
918
  /**
898
919
  * 转化到 Panorama 模态,并移动到对应序号的观察点。
@@ -1159,34 +1180,33 @@ export declare type GestureTypes = "pan" | "tap" | "pinch" | "mouseWheel";
1159
1180
 
1160
1181
  export declare function getViewportScale(): number;
1161
1182
 
1162
- export declare class HashCubeTexture extends THREE_2.CubeTexture {
1163
- /** 识别哈希 */
1164
- hash: string;
1165
- meta: (Meta | null)[];
1166
- }
1167
-
1168
1183
  /**
1169
1184
  * 图片参数
1170
1185
  */
1171
1186
  export declare interface ImageOptions {
1172
- key?: string;
1173
1187
  /**
1174
1188
  * url 地址转化
1175
1189
  * @param url - 原始地址
1176
1190
  * @param options - 当前地址参数
1177
1191
  * @returns 转化后地址
1178
1192
  */
1179
- transform?: (url: string, options: ImageOptions) => string;
1193
+ transform?: (url: string, options: ImageURLOptions) => string;
1180
1194
  /** 图片尺寸参数 */
1181
1195
  size?: number;
1182
1196
  /** 图片质量参数(0-100) */
1183
1197
  quality?: number;
1184
1198
  /** 图片格式参数(jpg, png) */
1185
- format?: string;
1186
- /** basis loader 是否初始化完成 */
1187
- basisLoaderInitialized?: boolean;
1188
- /** 针对 textureOptions 是否自动通过模型贴图的数量计算需要的模型贴图的尺寸 默认 true */
1189
- autoResize?: boolean;
1199
+ format?: "jpg" | "png" | "heif" | "webp" | "avif";
1200
+ }
1201
+
1202
+ export declare interface ImageURLOptions {
1203
+ key: string;
1204
+ basisLoaderInitialized: boolean;
1205
+ size?: number;
1206
+ quality?: number;
1207
+ format?: "jpg" | "png" | "heif" | "webp" | "avif";
1208
+ cut?: [x: number, y: number, width: number, height: number];
1209
+ sharpen?: number;
1190
1210
  }
1191
1211
 
1192
1212
  export declare class InternalWebGLRenderer extends THREE_2.WebGLRenderer {
@@ -1271,7 +1291,15 @@ export declare type LooseWorkPanorama = {
1271
1291
  front: string;
1272
1292
  back: string;
1273
1293
  video?: LooseWorkVideo;
1274
- tiles?: string;
1294
+ luminance?: {
1295
+ up: string;
1296
+ down: string;
1297
+ right: string;
1298
+ left: string;
1299
+ front: string;
1300
+ back: string;
1301
+ };
1302
+ tiles?: number[];
1275
1303
  };
1276
1304
 
1277
1305
  export declare type LooseWorkVideo = {
@@ -1280,16 +1308,6 @@ export declare type LooseWorkVideo = {
1280
1308
  size: number[];
1281
1309
  };
1282
1310
 
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
1311
  export declare type Mirror<T extends string> = Record<T, T>;
1294
1312
 
1295
1313
  /**
@@ -1360,8 +1378,8 @@ export declare class Model extends PBMContainer implements Subscribe<ModelEventT
1360
1378
  */
1361
1379
  emit: SubscribeMixinType.emit<ModelEventType>;
1362
1380
  /** bvh 树的计算结果 */
1363
- bvhs: any[] & {
1364
- loaded?: boolean;
1381
+ bvhs: BVH[] & {
1382
+ loaded: boolean;
1365
1383
  };
1366
1384
  /** 网络跟踪 */
1367
1385
  private networkSubscribe?;
@@ -1408,13 +1426,13 @@ export declare class Model extends PBMContainer implements Subscribe<ModelEventT
1408
1426
  * @returns 返回碰撞
1409
1427
  */
1410
1428
  intersectRaycaster(raycaster: THREE_2.Raycaster, floors?: number | number[]): Intersection[];
1411
- buildBVH(): Promise<void>;
1429
+ buildBVH(): void;
1412
1430
  /**
1413
1431
  * 加载模型
1414
1432
  * @param workModel - work 的 model 内容
1415
1433
  * @param imageOptions - 图片参数
1416
1434
  */
1417
- load(workModel: WorkModel, imageOptions?: ImageOptions): Promise<void>;
1435
+ load(workModel: WorkModel, textureOptions?: TextureOptions): Promise<void>;
1418
1436
  /**
1419
1437
  * 析构函数
1420
1438
  * @description
@@ -1504,21 +1522,39 @@ export declare interface MovePanoOptions extends Partial<Omit<Pose, "offset">> {
1504
1522
  moveCancelCallback?: () => void;
1505
1523
  }
1506
1524
 
1507
- export declare type NetworkState = "ok" | "preload" | "error" | "abort" | "timeout" | "forbidden";
1525
+ export declare type NetWorkMeta = {
1526
+ source: string;
1527
+ headers: {
1528
+ [name: string]: string;
1529
+ };
1530
+ requestTime: number;
1531
+ responseTime: number;
1532
+ costs: number;
1533
+ size?: number;
1534
+ };
1535
+
1536
+ export declare type NetworkState = "ok" | "preload" | "error" | "timeout" | "forbidden";
1508
1537
 
1509
1538
  export declare class NetworkSubscribe extends Subscribe<{
1510
- network(source: string, state: NetworkState, detail: string): void;
1539
+ network(source: string, type: NetworkType, state: NetworkState, detail: string): void;
1511
1540
  }> {
1512
1541
  }
1513
1542
 
1543
+ export declare type NetworkType = "XMLHttpRequest" | "Script" | "Image" | "Link";
1544
+
1514
1545
  export declare interface PanoCircleMeshInterface extends THREE_2.Object3D {
1515
1546
  needsRender: boolean;
1547
+ /** 当前高亮 */
1548
+ current: boolean;
1549
+ /** 是否当前高亮 */
1550
+ setCurrent(current: boolean): void;
1516
1551
  loading: boolean;
1517
- disabled: boolean;
1518
- panoIndex: number;
1519
1552
  setLoading(shown: boolean): void;
1553
+ disabled: boolean;
1520
1554
  setDisabled(disabled: boolean): void;
1555
+ progress: number;
1521
1556
  setProgress(progress: number): void;
1557
+ opacity: number;
1522
1558
  setOpacity(opacity: number): void;
1523
1559
  dispose(): void;
1524
1560
  }
@@ -1535,6 +1571,7 @@ export declare interface PanoramaControllerCustomInitArgs extends PanoramaLikeCo
1535
1571
  panoTapTriggerRadius?: number;
1536
1572
  /** 地面观察点标识自定义创建器 */
1537
1573
  panoCircleMeshCreator?: () => PanoCircleMeshInterface;
1574
+ tileLevelForFov?: false | ((fov: number) => number);
1538
1575
  }
1539
1576
 
1540
1577
  export declare interface PanoramaLikeControllerCustomInitArgs {
@@ -1609,14 +1646,10 @@ export declare class PBMGroup extends PBMContainer {
1609
1646
 
1610
1647
  /** PBM 材质 */
1611
1648
  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;
1649
+ /** 起始点 */
1650
+ pano0: PBMPanoPicture | null;
1651
+ /** 结束点 */
1652
+ pano1: PBMPanoPicture | null;
1620
1653
  /** 模型贴图和全景图的混合程度 [0-1] */
1621
1654
  modelAlpha: number;
1622
1655
  /** 全景图混合程度 [0-1] */
@@ -1626,20 +1659,8 @@ export declare class PBMMaterial extends THREE_2.ShaderMaterial implements PBMPa
1626
1659
  perspToOrtho: number;
1627
1660
  /** 模型透明度 */
1628
1661
  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;
1662
+ /** 视频 */
1663
+ panoVideo: PBMPanoVideo | null;
1643
1664
  constructor(parameters?: Partial<PBMParameters>);
1644
1665
  }
1645
1666
 
@@ -1651,16 +1672,32 @@ export declare class PBMMesh extends THREE_2.Mesh<THREE_2.BufferGeometry, PBMMat
1651
1672
  needsRender: boolean;
1652
1673
  }
1653
1674
 
1654
- /** PBM 材质参数 */
1655
- export declare interface PBMParameters {
1675
+ export declare interface PBMPanoPicture {
1656
1676
  /** 起始点位全景图 */
1657
- pano0Map: HashCubeTexture | null;
1677
+ map: THREE_2.CubeTexture;
1678
+ /** 亮度增益 */
1679
+ luminanceMap: THREE_2.CubeTexture | null;
1658
1680
  /** 起始点全景图变换矩阵 4x4 */
1659
- pano0Matrix: THREE_2.Matrix4;
1660
- /** 结束点位全景图 */
1661
- pano1Map: HashCubeTexture | null;
1662
- /** 结束点位全景图变换矩阵 */
1663
- pano1Matrix: THREE_2.Matrix4;
1681
+ matrix: THREE_2.Matrix4;
1682
+ }
1683
+
1684
+ export declare interface PBMPanoVideo {
1685
+ /** 全景视频贴图 */
1686
+ map: THREE_2.VideoTexture | null;
1687
+ /** 全景视频尺寸 */
1688
+ size: THREE_2.Vector2;
1689
+ /** 全景视频贴图变换矩阵 */
1690
+ matrix: THREE_2.Matrix4;
1691
+ /** 全景视频透明度 [0-1] */
1692
+ alpha: number;
1693
+ }
1694
+
1695
+ /** PBM 材质参数 */
1696
+ export declare interface PBMParameters {
1697
+ /** 起始点 */
1698
+ pano0: PBMPanoPicture | null;
1699
+ /** 结束点 */
1700
+ pano1: PBMPanoPicture | null;
1664
1701
  /** 模型贴图和全景图的混合程度 [0-1] */
1665
1702
  modelAlpha: number;
1666
1703
  /** 全景图混合程度 [0-1] */
@@ -1670,20 +1707,8 @@ export declare interface PBMParameters {
1670
1707
  perspToOrtho: number;
1671
1708
  /** 模型透明度 */
1672
1709
  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;
1710
+ /** 视频 */
1711
+ panoVideo: PBMPanoVideo | null;
1687
1712
  }
1688
1713
 
1689
1714
  /**
@@ -1743,8 +1768,6 @@ export declare interface State extends Pose {
1743
1768
  panoIndex: number;
1744
1769
  }
1745
1770
 
1746
- export declare function stringifyWork(work: Work): string;
1747
-
1748
1771
  /**
1749
1772
  * 监听者模式
1750
1773
  * @template T - 预设的监听回调类型
@@ -1823,6 +1846,27 @@ export declare namespace SubscribeMixinType {
1823
1846
  }
1824
1847
  }
1825
1848
 
1849
+ /**
1850
+ * 图片参数
1851
+ */
1852
+ export declare interface TextureOptions {
1853
+ /**
1854
+ * url 地址转化
1855
+ * @param url - 原始地址
1856
+ * @param options - 当前地址参数
1857
+ * @returns 转化后地址
1858
+ */
1859
+ transform?: (url: string, options: ImageURLOptions) => string;
1860
+ /** 图片尺寸参数 */
1861
+ size?: number;
1862
+ /** 图片质量参数(0-100) */
1863
+ quality?: number;
1864
+ /** 图片格式参数(jpg, png) */
1865
+ format?: "jpg" | "png" | "heif" | "webp" | "avif";
1866
+ /** 针对 textureOptions 是否自动通过模型贴图的数量计算需要的模型贴图的尺寸 默认 true */
1867
+ autoResize?: boolean;
1868
+ }
1869
+
1826
1870
  export declare interface TopviewControllerCustomInitArgs extends Omit<FloorplanControllerCustomInitArgs, "defaultLongitude" | "defaultLatitude" | "maxLatitude" | "minLatitude"> {
1827
1871
  }
1828
1872
 
@@ -1835,48 +1879,55 @@ export declare interface VRPanoramaControllerCustomInitArgs extends Omit<Panoram
1835
1879
  webvrPolyfillConfig?: any;
1836
1880
  }
1837
1881
 
1838
- export declare type Work = {
1882
+ export declare class Work {
1883
+ name: string;
1839
1884
  workCode: string;
1840
1885
  allowHosts: string[];
1841
1886
  expire: Date;
1842
- uuid: string;
1843
1887
  initial: WorkInitial;
1844
1888
  model?: WorkModel;
1845
1889
  observers: WorkObserver[];
1846
1890
  issuer: string;
1847
1891
  raw: any;
1848
- };
1892
+ constructor();
1893
+ toJSON(): any;
1894
+ }
1849
1895
 
1850
- /** 全景图 */
1851
- export declare type WorkImages = {
1896
+ export declare interface WorkCubeImage {
1852
1897
  up: string;
1853
1898
  down: string;
1854
1899
  right: string;
1855
1900
  left: string;
1856
1901
  front: string;
1857
1902
  back: string;
1903
+ }
1904
+
1905
+ /** 全景图 */
1906
+ export declare interface WorkImage extends WorkCubeImage {
1858
1907
  depth?: string;
1859
- tiles?: string;
1860
- };
1908
+ luminance?: WorkCubeImage;
1909
+ tiles?: WorkTile[];
1910
+ }
1861
1911
 
1862
1912
  /** 初始化位姿参数 */
1863
- export declare type WorkInitial = Omit<State, "offset">;
1913
+ export declare interface WorkInitial extends Omit<State, "offset"> {
1914
+ }
1864
1915
 
1865
1916
  /** 模型数据 */
1866
- export declare type WorkModel = {
1917
+ export declare interface WorkModel {
1867
1918
  file: string;
1868
1919
  textures: string[];
1869
1920
  textureBase: string;
1870
1921
  bvh: boolean;
1871
1922
  async: boolean;
1872
- };
1923
+ }
1873
1924
 
1874
1925
  /** 每个点位的数据 */
1875
- export declare type WorkObserver = {
1926
+ export declare interface WorkObserver {
1876
1927
  panoIndex: number;
1877
1928
  active: boolean;
1878
1929
  loadable: boolean;
1879
- images: WorkImages;
1930
+ images: WorkImage;
1880
1931
  video?: WorkVideo;
1881
1932
  visibleNodes: number[];
1882
1933
  accessibleNodes: number[];
@@ -1884,13 +1935,24 @@ export declare type WorkObserver = {
1884
1935
  standingPosition: THREE_2.Vector3;
1885
1936
  position: THREE_2.Vector3;
1886
1937
  floorIndex: number;
1887
- };
1938
+ }
1939
+
1940
+ export declare interface WorkTile {
1941
+ level: number;
1942
+ size: number;
1943
+ up: string;
1944
+ down: string;
1945
+ right: string;
1946
+ left: string;
1947
+ front: string;
1948
+ back: string;
1949
+ }
1888
1950
 
1889
1951
  /** 全景视频贴片 */
1890
- export declare type WorkVideo = {
1952
+ export declare interface WorkVideo {
1891
1953
  source: string;
1892
1954
  matrix: THREE_2.Matrix4;
1893
1955
  size: THREE_2.Vector2;
1894
- };
1956
+ }
1895
1957
 
1896
1958
  export { }