@realsee/five 6.4.2 → 6.5.0-alpha.0

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 (167) hide show
  1. package/docs/assets/navigation.js +1 -1
  2. package/docs/assets/search.js +1 -1
  3. package/docs/classes/five.BoxBoundingVolume.html +2 -2
  4. package/docs/classes/five.Camera.html +7 -7
  5. package/docs/classes/five.CullingVolume.html +2 -2
  6. package/docs/classes/five.Five.html +69 -81
  7. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  8. package/docs/classes/five.Model.html +55 -43
  9. package/docs/classes/five.ModelScene.html +38 -0
  10. package/docs/classes/five.Motion.html +17 -0
  11. package/docs/classes/five.PBMContainer.html +4 -12
  12. package/docs/classes/five.PBMCustomShader.html +11 -0
  13. package/docs/classes/five.PBMMaterial.html +2 -0
  14. package/docs/classes/five.PBMMesh.html +2 -4
  15. package/docs/classes/five.PBMMeshMaterial.html +27 -57
  16. package/docs/classes/five.PBMPointCloud.html +2 -3
  17. package/docs/classes/five.PBMPointCloudMaterial.html +15 -51
  18. package/docs/classes/five.PBMSkinnedMesh.html +2 -3
  19. package/docs/classes/five.Parameter.html +113 -0
  20. package/docs/classes/five.RegionBoundingVolume.html +2 -2
  21. package/docs/classes/five.Scene.html +6 -4
  22. package/docs/classes/five.SphereBoundingVolume.html +2 -2
  23. package/docs/classes/five.TextureLoader.html +2 -3
  24. package/docs/classes/five.Tile.html +2 -2
  25. package/docs/classes/five.Tile3DModel.html +55 -34
  26. package/docs/classes/five.TileNode.html +2 -2
  27. package/docs/classes/five.TileRequestScheduler.html +2 -2
  28. package/docs/classes/five.Tileset.html +4 -31
  29. package/docs/classes/five.Trajectory.html +2 -2
  30. package/docs/classes/five.TrajectoryNode.html +2 -2
  31. package/docs/classes/five.Work.html +17 -15
  32. package/docs/classes/gltf_loader.GLTFParser.html +1 -1
  33. package/docs/classes/sticker.Sticker.html +1 -1
  34. package/docs/functions/five.loadAt3d.html +1 -1
  35. package/docs/functions/five.loadB3dm.html +1 -1
  36. package/docs/functions/five.loadDome.html +1 -1
  37. package/docs/functions/five.loadDomez.html +1 -1
  38. package/docs/functions/five.loadFbx.html +1 -1
  39. package/docs/functions/five.loadGltf.html +1 -1
  40. package/docs/functions/five.loadPbm.html +1 -1
  41. package/docs/functions/five.loadPly.html +1 -1
  42. package/docs/functions/five.loadPnts.html +1 -1
  43. package/docs/functions/five.loadX3p.html +1 -1
  44. package/docs/functions/five.parseWork.html +1 -1
  45. package/docs/functions/react.useFiveCurrentObserver.html +2 -2
  46. package/docs/functions/react.withFive.html +1 -1
  47. package/docs/hierarchy.html +1 -1
  48. package/docs/interfaces/five.BaseEvent.html +1 -1
  49. package/docs/interfaces/five.BoundingVolume.html +2 -2
  50. package/docs/interfaces/five.CameraPose.html +2 -2
  51. package/docs/interfaces/five.EventCallback.html +3 -3
  52. package/docs/interfaces/five.FiveInitArgs.html +2 -2
  53. package/docs/interfaces/five.FiveLoadOptions.html +6 -6
  54. package/docs/interfaces/five.Intersection.html +2 -2
  55. package/docs/interfaces/five.LoosePanoWork.html +2 -2
  56. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +9 -9
  57. package/docs/interfaces/five.ModelLike.html +3 -0
  58. package/docs/interfaces/five.ModelSceneEvent.html +6 -0
  59. package/docs/interfaces/five.PBMClipperParameter.html +3 -0
  60. package/docs/interfaces/five.PBMCustomShaderInitArgs.html +6 -0
  61. package/docs/interfaces/five.PBMCustomShaderSlots.html +3 -0
  62. package/docs/interfaces/five.PBMMeshMaterialParameters.html +29 -0
  63. package/docs/interfaces/five.PBMPanoDepth.html +9 -0
  64. package/docs/interfaces/five.PBMPanoPicture.html +9 -7
  65. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +27 -0
  66. package/docs/interfaces/five.PBMRefinedScreen.html +6 -0
  67. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +10 -10
  68. package/docs/interfaces/five.ParameterMaterialValue.html +71 -0
  69. package/docs/interfaces/five.ParameterTilesetValue.html +32 -0
  70. package/docs/interfaces/five.ParameterValue.html +102 -0
  71. package/docs/interfaces/five.ResolvedParameterValue.html +103 -0
  72. package/docs/interfaces/five.Tile3DModelLoaderOptions.html +4 -4
  73. package/docs/interfaces/five.TileCubeNode.html +2 -2
  74. package/docs/interfaces/five.TileCubeTree.html +2 -2
  75. package/docs/interfaces/five.TilesetHeader.html +5 -4
  76. package/docs/interfaces/five.TilesetOptions.html +2 -2
  77. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +10 -10
  78. package/docs/interfaces/five.WorkCubeImage.html +7 -9
  79. package/docs/interfaces/five.WorkImage.html +10 -12
  80. package/docs/interfaces/five.WorkInitial.html +8 -8
  81. package/docs/interfaces/five.WorkModel.html +6 -6
  82. package/docs/interfaces/five.WorkModelLayer.html +2 -2
  83. package/docs/interfaces/five.WorkObserver.html +30 -20
  84. package/docs/interfaces/five.WorkResolvedObserver.html +22 -21
  85. package/docs/interfaces/five.WorkTile.html +16 -7
  86. package/docs/interfaces/five.WorkVideo.html +4 -4
  87. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +10 -10
  88. package/docs/interfaces/gltf_loader.DDS.html +2 -2
  89. package/docs/interfaces/gltf_loader.GLTFReference.html +2 -2
  90. package/docs/interfaces/react.FiveInjectionTypes.html +9 -8
  91. package/docs/modules/five.html +38 -17
  92. package/docs/types/five.EventTypes.html +3 -3
  93. package/docs/types/five.LoadResultType.html +1 -0
  94. package/docs/types/five.LooseWork.html +1 -1
  95. package/docs/types/five.LooseWorkInitial.html +1 -1
  96. package/docs/types/five.LooseWorkModel.html +1 -1
  97. package/docs/types/five.LooseWorkObserver.html +1 -1
  98. package/docs/types/five.LooseWorkPanorama.html +1 -1
  99. package/docs/types/five.LooseWorkWithExtrinsics.html +1 -1
  100. package/docs/types/five.Models.html +11 -14
  101. package/docs/types/five.MotionCircle.html +2 -0
  102. package/docs/types/five.MotionConfig.html +1 -0
  103. package/docs/types/five.MotionInitalValue.html +1 -0
  104. package/docs/types/five.PBMAlphaMode.html +1 -0
  105. package/docs/types/five.PBMColorStyle.html +1 -0
  106. package/docs/types/five.PBMFloorStyle.html +1 -0
  107. package/docs/types/five.PBMMeshShaderType.html +1 -0
  108. package/docs/types/five.PBMPointBack.html +1 -0
  109. package/docs/types/five.PBMPointCloudShaderType.html +1 -0
  110. package/docs/types/five.PBMPointShape.html +1 -0
  111. package/docs/types/five.PBMPointSize.html +1 -0
  112. package/docs/types/five.PBMTransition.html +1 -0
  113. package/docs/types/five.ParseWorkOptions.html +1 -1
  114. package/docs/types/five.PostProcessingType.html +1 -1
  115. package/docs/types/five.Tile3dOptions.html +1 -1
  116. package/docs/types/five.TileContentData.html +1 -1
  117. package/docs/types/five.TileDebug.html +1 -0
  118. package/docs/types/five.TileRequestOrder.html +1 -1
  119. package/docs/types/five.TilesetFrameState.html +1 -1
  120. package/docs/types/five.Works.html +1 -1
  121. package/five/index.d.ts +1079 -675
  122. package/five/index.js +208 -154
  123. package/five/index.mjs +9053 -8801
  124. package/gltf-loader/index.js +3 -3
  125. package/gltf-loader/index.mjs +146 -146
  126. package/line/index.js +3 -3
  127. package/line/index.mjs +10 -10
  128. package/package.json +1 -4
  129. package/plugins/index.js +2 -2
  130. package/plugins/index.mjs +2 -2
  131. package/react/index.d.ts +3 -2
  132. package/react/index.js +2 -2
  133. package/react/index.mjs +2 -2
  134. package/shader-lib/index.js +47 -25
  135. package/shader-lib/index.mjs +79 -57
  136. package/sticker/index.js +3 -3
  137. package/sticker/index.mjs +7 -7
  138. package/umd/five-gltf-loader.js +3 -3
  139. package/umd/five-line.js +3 -3
  140. package/umd/five-plugins.js +2 -2
  141. package/umd/five-react.js +2 -2
  142. package/umd/five-shader-lib.js +47 -25
  143. package/umd/five-sticker.js +3 -3
  144. package/umd/five-vfx.js +2 -2
  145. package/umd/five-vue.js +2 -2
  146. package/umd/five.js +208 -154
  147. package/vfx/index.js +2 -2
  148. package/vfx/index.mjs +2 -2
  149. package/vue/index.js +2 -2
  150. package/vue/index.mjs +2 -2
  151. package/work-downloader/index.js +2 -2
  152. package/work-downloader/index.mjs +2 -2
  153. package/docs/classes/five.CustomShader.html +0 -9
  154. package/docs/classes/five.ModelViewLayer.html +0 -17
  155. package/docs/classes/five.TileCubeTextureTarget.html +0 -12
  156. package/docs/interfaces/five.ClipperParameter.html +0 -3
  157. package/docs/interfaces/five.CustomShaderInitArgs.html +0 -6
  158. package/docs/interfaces/five.FragmentShaderChunks.html +0 -5
  159. package/docs/interfaces/five.ModelsEvent.html +0 -6
  160. package/docs/interfaces/five.PBMParameters.html +0 -58
  161. package/docs/interfaces/five.Tile3dLayerOptions.html +0 -31
  162. package/docs/interfaces/five.VertexShaderChunks.html +0 -4
  163. package/docs/types/five.Mirror.html +0 -1
  164. package/docs/types/five.ModelMaterialValues.html +0 -1
  165. package/docs/types/five.ParsedResultType.html +0 -1
  166. package/docs/variables/five.defaultPbmParameters.html +0 -1
  167. package/scripts/five-staticify.js +0 -207
package/five/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { IUniform as IUniform_2 } from 'three';
1
2
  import * as THREE_2 from 'three';
2
3
 
3
4
  export declare interface AddableObject extends THREE_2.Object3D {
@@ -73,6 +74,24 @@ export declare interface BaseEvent {
73
74
  defaultPrevented: boolean;
74
75
  }
75
76
 
77
+ declare class BaseRenderer {
78
+ screenBuffers: (THREE_2.WebGLRenderTarget | null)[];
79
+ enableLayeringRendering: boolean;
80
+ enableFragDepth: boolean;
81
+ renderer: THREE_2.WebGLRenderer;
82
+ camera: Camera;
83
+ scene: THREE_2.Scene;
84
+ modelScene: ModelScene;
85
+ type: 'default' | 'edl' | 'hq';
86
+ protected modelRenderTarget: THREE_2.WebGLRenderTarget;
87
+ protected copyPass: CopyPass;
88
+ protected depthCopyPass: DepthCopyPass;
89
+ constructor(args: RendererInitArgs);
90
+ render(modelSceneNeedsRender: boolean): void;
91
+ setSize(width: number, height: number): void;
92
+ dispose(): void;
93
+ }
94
+
76
95
  export declare interface BoundingVolume {
77
96
  type: 'box' | 'sphere' | 'regin';
78
97
  applyMatrix4(matrix: THREE_2.Matrix4): this;
@@ -130,11 +149,11 @@ export declare class Camera extends THREE_2.Camera {
130
149
  pose: CameraPose;
131
150
  private perspectiveCamera;
132
151
  private orthographicCamera;
133
- time: number;
134
152
  autoNearFar: boolean;
135
153
  needsRender: boolean;
136
154
  refineModel: boolean;
137
- environment: THREE_2.Texture | null;
155
+ time: number;
156
+ controllerMode: Mode | null;
138
157
  private lastValues;
139
158
  constructor(fov: number, aspect?: number, near?: number, far?: number, perspToOrtho?: THREE_2.Vector2, resolution?: THREE_2.Vector2, pixelRatio?: number);
140
159
  get orthoDistance(): number;
@@ -172,11 +191,6 @@ export declare interface CameraPose {
172
191
  offset: THREE_2.Vector3;
173
192
  }
174
193
 
175
- export declare interface ClipperParameter {
176
- clippingBoxMatrix: THREE_2.Matrix4;
177
- floorIndex?: number;
178
- }
179
-
180
194
  export declare type ControllerCustomInitTypes = {
181
195
  Floorplan: FloorplanControllerCustomInitArgs;
182
196
  Topview: TopviewControllerCustomInitArgs;
@@ -265,6 +279,10 @@ export declare const controllersDefaultInitArgs: {
265
279
  XRPanorama: Required<XRPanoramaControllerCustomInitArgs>;
266
280
  };
267
281
 
282
+ declare class CopyPass extends Pass {
283
+ constructor(renderer: THREE_2.WebGLRenderer);
284
+ }
285
+
268
286
  export declare class CullingVolume {
269
287
  static get MASK_OUTSIDE(): number;
270
288
  static get MASK_INSIDE(): number;
@@ -280,33 +298,6 @@ export declare class CullingVolume {
280
298
  computeVisibilityWithPlaneMask(boundingVolume: BoundingVolume, parentPlaneMask: number): number;
281
299
  }
282
300
 
283
- export declare class CustomShader {
284
- uniforms: {
285
- [key: string]: THREE_2.Uniform;
286
- };
287
- defines: {
288
- [key: string]: any;
289
- };
290
- type: CustomShaderInitArgs['type'];
291
- vertex: VertexShaderChunks;
292
- fragment: FragmentShaderChunks;
293
- constructor(initArgs: CustomShaderInitArgs);
294
- getHash(): string;
295
- onBeforeCompile(shader: THREE_2.Shader, renderer: THREE_2.WebGLRenderer): void;
296
- }
297
-
298
- export declare interface CustomShaderInitArgs {
299
- type: Array<'none' | 'basic' | 'phong' | 'standard' | 'pointcloud'>;
300
- vertex?: Partial<VertexShaderChunks>;
301
- fragment?: Partial<FragmentShaderChunks>;
302
- uniforms?: {
303
- [key: string]: any;
304
- };
305
- defines?: {
306
- [key: string]: any;
307
- };
308
- }
309
-
310
301
  /**
311
302
  * URL 地址的转换
312
303
  * @param source - url 原地址
@@ -315,7 +306,19 @@ export declare interface CustomShaderInitArgs {
315
306
  */
316
307
  export declare function defaultImageURLTransform(source: string, options: ImageURLOptions): string;
317
308
 
318
- export declare const defaultPbmParameters: PBMParameters;
309
+ declare class DefaultRenderer extends BaseRenderer {
310
+ constructor(args: RendererInitArgs);
311
+ render(modelSceneNeedsRender: boolean): void;
312
+ setSize(width: number, height: number): void;
313
+ }
314
+
315
+ declare class DepthCopyPass {
316
+ renderer: THREE_2.WebGLRenderer;
317
+ material: THREE_2.ShaderMaterial;
318
+ constructor(renderer: THREE_2.WebGLRenderer);
319
+ render(depthTexture: THREE_2.DepthTexture, outputBuffer?: THREE_2.WebGLRenderTarget): void;
320
+ dispose(): void;
321
+ }
319
322
 
320
323
  export declare class Draco {
321
324
  decoderPath: string;
@@ -344,6 +347,70 @@ export declare class Draco {
344
347
 
345
348
  export declare const draco: Draco;
346
349
 
350
+ declare class EDLEffect extends Effect {
351
+ sharedV2: THREE_2.Vector2;
352
+ material: EDLMaterial;
353
+ constructor(renderer: THREE_2.WebGLRenderer, scene: THREE_2.Scene, camera: Camera, modelScene: ModelScene);
354
+ render(screenBuffers: (THREE_2.WebGLRenderTarget | null)[]): void;
355
+ dispose(): void;
356
+ }
357
+
358
+ declare class EDLMaterial extends THREE_2.RawShaderMaterial {
359
+ uniforms: EDLUniforms & Record<string, IUniform<any>>;
360
+ screenWidth: number;
361
+ screenHeight: number;
362
+ edlStrength: number;
363
+ uNear: number;
364
+ uFar: number;
365
+ radius: number;
366
+ neighbours: Float32Array;
367
+ depthMap: THREE_2.Texture;
368
+ uEDLColor: THREE_2.Texture;
369
+ uEDLDepth: THREE_2.Texture;
370
+ uProj: Array<number>;
371
+ neighbourCount: number;
372
+ constructor();
373
+ getUniform<K extends keyof EDLUniforms>(name: K): EDLUniforms[K]["value"];
374
+ setUniform<K extends keyof EDLUniforms>(name: K, value: EDLUniforms[K]["value"]): void;
375
+ getDefines(): string;
376
+ updateShaderSource(): void;
377
+ }
378
+
379
+ declare class EDLRenderer extends BaseRenderer {
380
+ edlEffect: EDLEffect;
381
+ constructor(args: RendererInitArgs);
382
+ render(modelSceneNeedsRender: boolean): void;
383
+ setSize(width: number, height: number): void;
384
+ dispose(): void;
385
+ }
386
+
387
+ declare interface EDLUniforms {
388
+ screenWidth: IUniform<number>;
389
+ screenHeight: IUniform<number>;
390
+ edlStrength: IUniform<number>;
391
+ uNear: IUniform<number>;
392
+ uFar: IUniform<number>;
393
+ radius: IUniform<number>;
394
+ neighbours: IUniform<Float32Array>;
395
+ depthMap: IUniform<THREE_2.Texture>;
396
+ uEDLColor: IUniform<THREE_2.Texture>;
397
+ uEDLDepth: IUniform<THREE_2.Texture>;
398
+ opacity: IUniform<number>;
399
+ uProj: IUniform<Float32Array>;
400
+ }
401
+
402
+ declare class Effect {
403
+ enable: boolean;
404
+ protected renderer: THREE_2.WebGLRenderer;
405
+ protected copyPass: CopyPass;
406
+ protected camera: Camera;
407
+ protected modelScene: ModelScene;
408
+ protected scene: THREE_2.Scene;
409
+ constructor(renderer: THREE_2.WebGLRenderer, scene: THREE_2.Scene, camera: Camera, modelScene: ModelScene);
410
+ render(buffers: (THREE_2.WebGLRenderTarget | null)[], payload?: any): void;
411
+ dispose(): void;
412
+ }
413
+
347
414
  /**
348
415
  * Five 事件列表
349
416
  * @description
@@ -385,9 +452,9 @@ export declare type EventTypes = Pick<ControllerEventTypes, typeof PROXY_CONTROL
385
452
  /** 当模型修改楼层 */
386
453
  "model.changeShownFloor"(event: ModelEvent): void;
387
454
  /** 模型加载完成 */
388
- "models.load"(event: ModelsEvent): void;
455
+ "models.load"(event: ModelSceneEvent): void;
389
456
  /** 模型细化完成 */
390
- "models.refined"(event: ModelsEvent): void;
457
+ "models.refined"(event: ModelSceneEvent): void;
391
458
  /** 渲染前 */
392
459
  "render.prepare"(event: RenderEvent): void;
393
460
  /** 渲染后 */
@@ -445,7 +512,15 @@ export declare class Five extends Subscribe<EventTypes> {
445
512
  * XRPanorama VR硬件模式
446
513
  * ```
447
514
  */
448
- static Mode: Mirror<Mode>;
515
+ static Mode: {
516
+ readonly Panorama: "Panorama";
517
+ readonly Model: "Model";
518
+ readonly Floorplan: "Floorplan";
519
+ readonly Topview: "Topview";
520
+ readonly Mapview: "Mapview";
521
+ readonly VRPanorama: "VRPanorama";
522
+ readonly XRPanorama: "XRPanorama";
523
+ };
449
524
  /**
450
525
  * @deprecated
451
526
  * 请使用 `import { Line } from "@realsee/five/line"` 代替;
@@ -464,7 +539,7 @@ export declare class Five extends Subscribe<EventTypes> {
464
539
  /** 非模型部分使用的 `THREE.Scene` */
465
540
  scene: Scene;
466
541
  /** 内部模型部分使用的 `THREE.Scene` */
467
- modelScene: Scene;
542
+ modelScene: ModelScene;
468
543
  /** 供外部放置需要在xr场景下产生遮挡的物体们*/
469
544
  xrCustomObjectsScene: THREE_2.Scene;
470
545
  /** 内部使用的 `Camera` */
@@ -488,10 +563,6 @@ export declare class Five extends Subscribe<EventTypes> {
488
563
  * 否则会通过 `preserveDrawingBuffer` `backgroundColor` `backgroundAlpha` `antialias` 创建一个 `THREE.WebGLRenderer`
489
564
  */
490
565
  renderer?: THREE_2.WebGLRenderer;
491
- /** 当前加载的模型 */
492
- models: Models;
493
- private lastModels;
494
- private lastWorks?;
495
566
  /**
496
567
  * 是否需要渲染
497
568
  * @description
@@ -563,13 +634,10 @@ export declare class Five extends Subscribe<EventTypes> {
563
634
  [key: string]: FivePluginInstance<any>;
564
635
  };
565
636
  ident: string;
566
- /** 模型渲染缓冲*/
567
- modelRenderTarget: THREE_2.WebGLRenderTarget;
568
637
  /** 包围盒子 */
569
638
  private boundingMesh;
570
639
  private stopAnimationLoop?;
571
640
  private fps;
572
- private modelGroup;
573
641
  private helperGroup;
574
642
  private modeChangeDuration;
575
643
  private enableWheel;
@@ -583,15 +651,11 @@ export declare class Five extends Subscribe<EventTypes> {
583
651
  private getPixelsRenderTarget;
584
652
  private readyCallbacks;
585
653
  private syncingState;
586
- private lastLoadWorkTask;
654
+ private loadWorkTask;
587
655
  private requestProxy;
588
656
  private networkSubscribe;
589
657
  private analysis?;
590
658
  private renderSwitch01;
591
- /**
592
- * gpu_picking
593
- */
594
- private gpuPickingRenderTarget;
595
659
  private meshReplaceMaterialMap;
596
660
  private meshOriginMaterialMap;
597
661
  /**
@@ -604,19 +668,10 @@ export declare class Five extends Subscribe<EventTypes> {
604
668
  private _enableEDL;
605
669
  private _enableHQ;
606
670
  enableLayeringRendering: boolean;
671
+ private _buildInRenderer;
672
+ buildInRendererType: 'default' | 'edl' | 'hq' | 'luminance';
607
673
  constructor(initArgs?: FiveInitArgs);
608
674
  get panoIndex(): number;
609
- /**
610
- * GPU Picking 获取选中的 mesh
611
- * @param x - 屏幕坐标 x
612
- * @param y - 屏幕坐标 y
613
- * @param colorMap - 需要选取的 mesh 的颜色与 uuid 的映射
614
- * @param color - 指定的模型颜色
615
- * @returns 选中 mesh 的 uuid
616
- */
617
- getGPUPicking(x: number, y: number, colorMap: {
618
- [key: string]: THREE_2.Color;
619
- }, pixelRatio?: number, color?: THREE_2.Vector3): string | false;
620
675
  /**
621
676
  * 析构 five 对象。
622
677
  * @description
@@ -648,10 +703,6 @@ export declare class Five extends Subscribe<EventTypes> {
648
703
  */
649
704
  get enableIOSEDR(): boolean;
650
705
  set enableIOSEDR(enable: boolean);
651
- /**
652
- * 后处理类型
653
- */
654
- get postProcessingType(): PostProcessingType;
655
706
  /**
656
707
  * 是否开启EDL模式
657
708
  */
@@ -664,6 +715,7 @@ export declare class Five extends Subscribe<EventTypes> {
664
715
  */
665
716
  get enablePostProcessing(): boolean;
666
717
  set enablePostProcessing(enable: boolean);
718
+ get buildInRenderer(): FiveBuildInRenderer;
667
719
  updateConfiguration(args: Pick<FiveInitArgs, "panorama" | "model" | "floorplan" | "topview" | "mapview" | "vrPanorama" | "imageOptions" | "textureOptions">, refresh?: boolean): void;
668
720
  /**
669
721
  * 将显示区域加载到页面 DOM 中
@@ -699,6 +751,7 @@ export declare class Five extends Subscribe<EventTypes> {
699
751
  */
700
752
  removeExtraElement(element: HTMLElement): void;
701
753
  /**
754
+ * @deprecated
702
755
  * 获取当前相机姿态, 可以使用 getCurrentState 代替
703
756
  */
704
757
  getPose(): Pose;
@@ -752,6 +805,7 @@ export declare class Five extends Subscribe<EventTypes> {
752
805
  /** 当前加载的 work 数据 */
753
806
  get works(): Works;
754
807
  get work(): Work | undefined;
808
+ get models(): Models;
755
809
  get model(): Model;
756
810
  /**
757
811
  * 加载 Work 数据
@@ -907,20 +961,17 @@ export declare class Five extends Subscribe<EventTypes> {
907
961
  */
908
962
  exitFullscreen(): void;
909
963
  private throwError;
910
- private loadModel;
964
+ private loadModels;
911
965
  private commonParams;
912
966
  private applyController;
913
967
  /** 移除事件绑定 */
914
968
  private removeEventListeners;
915
- /** 暂时通过这个函数获取所有 work 中的数据 */
916
- getWorkResources(work: Work): Promise<{
917
- url: string;
918
- type: string;
919
- }[]>;
920
969
  get internalLightsEnabled(): boolean;
921
970
  set internalLightsEnabled(value: boolean);
922
971
  }
923
972
 
973
+ declare type FiveBuildInRenderer = DefaultRenderer | EDLRenderer | HQRenderer | LuminanceRenderer;
974
+
924
975
  /** Five 初始化参数 */
925
976
  export declare interface FiveInitArgs {
926
977
  /**
@@ -1166,13 +1217,6 @@ export declare interface FloorplanControllerCustomInitArgs {
1166
1217
  intersectMeshCreator?: () => IntersectMeshInterface;
1167
1218
  }
1168
1219
 
1169
- export declare interface FragmentShaderChunks {
1170
- mainBefore: string;
1171
- mainStart: string;
1172
- mainModelColor: string;
1173
- mainEnd: string;
1174
- }
1175
-
1176
1220
  export declare interface GestureEvent extends StateEvent {
1177
1221
  target: EventTarget | null;
1178
1222
  pointerType: 'touch' | 'pen' | 'mouse' | 'kinect';
@@ -1206,6 +1250,36 @@ export declare type GestureTypes = "pan" | "tap" | "dbltap" | "pinch" | "press"
1206
1250
 
1207
1251
  export declare function getViewportScale(): number;
1208
1252
 
1253
+ declare class HQEffect extends Effect {
1254
+ sharedV2: THREE_2.Vector2;
1255
+ material: HQMaterial;
1256
+ constructor(renderer: THREE_2.WebGLRenderer, scene: THREE_2.Scene, camera: Camera, modelScene: ModelScene);
1257
+ render(screenBuffers: (THREE_2.WebGLRenderTarget | null)[]): void;
1258
+ dispose(): void;
1259
+ }
1260
+
1261
+ declare class HQMaterial extends THREE_2.RawShaderMaterial {
1262
+ uniforms: HQUniform & Record<string, IUniform<any>>;
1263
+ uDepthMap: number;
1264
+ uWeightMap: number;
1265
+ constructor();
1266
+ getUniform<K extends keyof HQUniform>(name: K): HQUniform[K]["value"];
1267
+ setUniform<K extends keyof HQUniform>(name: K, value: HQUniform[K]["value"]): void;
1268
+ }
1269
+
1270
+ declare class HQRenderer extends BaseRenderer {
1271
+ hqEffect: HQEffect;
1272
+ constructor(args: RendererInitArgs);
1273
+ render(modelSceneNeedsRender: boolean): void;
1274
+ setSize(width: number, height: number): void;
1275
+ dispose(): void;
1276
+ }
1277
+
1278
+ declare interface HQUniform {
1279
+ uDepthMap: IUniform<THREE_2.Texture | null>;
1280
+ uWeightMap: IUniform<THREE_2.Texture | null>;
1281
+ }
1282
+
1209
1283
  /**
1210
1284
  * 图片参数
1211
1285
  */
@@ -1288,7 +1362,7 @@ export declare interface Intersection extends THREE_2.Intersection {
1288
1362
  /** 楼层 */
1289
1363
  floor: number;
1290
1364
  model?: Model;
1291
- viewLayer?: ModelViewLayer;
1365
+ viewLayer?: Tile3DModel;
1292
1366
  }
1293
1367
 
1294
1368
  export declare class IntersectMesh extends THREE_2.Object3D implements IntersectMeshInterface {
@@ -1306,6 +1380,11 @@ export declare interface IntersectMeshInterface extends THREE_2.Object3D {
1306
1380
 
1307
1381
  export declare function isPanoId(id: any): id is PanoId;
1308
1382
 
1383
+ declare interface IUniform<T> extends IUniform_2 {
1384
+ type: string;
1385
+ value: T;
1386
+ }
1387
+
1309
1388
  export declare class KTX2 {
1310
1389
  transcoderPath: string;
1311
1390
  private workerPool;
@@ -1746,51 +1825,58 @@ export declare type LegacyEventType = {
1746
1825
  };
1747
1826
 
1748
1827
  export declare function loadAt3d(url: string, options?: {
1828
+ upAxis?: 'Y' | 'Z';
1749
1829
  light?: boolean;
1750
1830
  textureOptions?: TextureOptions;
1751
1831
  textureBaseUri?: string;
1752
1832
  textureArray?: string[];
1753
1833
  fetcher?: Fetcher;
1754
- }): Promise<ParsedResultType>;
1834
+ }): Promise<LoadResultType>;
1755
1835
 
1756
1836
  export declare function loadB3dm(url: string, options?: {
1837
+ modelUpAxis?: 'Y' | 'Z';
1757
1838
  upAxis?: 'Y' | 'Z';
1758
1839
  light?: boolean;
1759
1840
  fetcher?: Fetcher;
1760
- }): Promise<ParsedResultType>;
1841
+ }): Promise<LoadResultType>;
1761
1842
 
1762
1843
  export declare function loadDome(url: string, options?: {
1844
+ upAxis?: 'Y' | 'Z';
1763
1845
  light?: boolean;
1764
1846
  textureOptions?: TextureOptions;
1765
1847
  textureBaseUri?: string;
1766
1848
  fetcher?: Fetcher;
1767
- }): Promise<ParsedResultType>;
1849
+ }): Promise<LoadResultType>;
1768
1850
 
1769
1851
  export declare function loadDomez(url: string, options?: {
1852
+ upAxis?: 'Y' | 'Z';
1770
1853
  light?: boolean;
1771
1854
  textureOptions?: TextureOptions;
1772
1855
  textureBaseUri?: string;
1773
1856
  fetcher?: Fetcher;
1774
- }): Promise<ParsedResultType>;
1857
+ }): Promise<LoadResultType>;
1775
1858
 
1776
1859
  export declare function loadFbx(url: string, options?: {
1860
+ upAxis?: 'Y' | 'Z';
1777
1861
  light?: boolean;
1778
1862
  fetcher?: Fetcher;
1779
- }): Promise<ParsedResultType>;
1863
+ }): Promise<LoadResultType>;
1780
1864
 
1781
1865
  export declare function loadGltf(url: string, options?: {
1866
+ modelUpAxis?: 'Y' | 'Z';
1782
1867
  upAxis?: 'Y' | 'Z';
1783
1868
  light?: boolean;
1784
1869
  fetcher?: Fetcher;
1785
- }): Promise<ParsedResultType>;
1870
+ }): Promise<LoadResultType>;
1786
1871
 
1787
1872
  export declare function loadPbm(url: string, options?: {
1873
+ upAxis?: 'Y' | 'Z';
1788
1874
  light?: boolean;
1789
1875
  textureOptions?: TextureOptions;
1790
1876
  textureBaseUri?: string;
1791
1877
  textureArray?: string[];
1792
1878
  fetcher?: Fetcher;
1793
- }): Promise<ParsedResultType>;
1879
+ }): Promise<LoadResultType>;
1794
1880
 
1795
1881
  export declare function loadPly<Type extends 'geometry' | 'line' | 'pbmMesh' | 'pbmPointCloud', ResultType = {
1796
1882
  'geometry': THREE_2.BufferGeometry;
@@ -1798,6 +1884,7 @@ export declare function loadPly<Type extends 'geometry' | 'line' | 'pbmMesh' | '
1798
1884
  'pbmMesh': PBMMesh;
1799
1885
  'pbmPointCloud': PBMPointCloud;
1800
1886
  }[Type]>(url: string, options?: {
1887
+ modelUpAxis?: 'Y' | 'Z';
1801
1888
  upAxis?: 'Y' | 'Z';
1802
1889
  light?: boolean;
1803
1890
  propertyNameMapping?: Record<string, string>;
@@ -1808,18 +1895,34 @@ export declare function loadPly<Type extends 'geometry' | 'line' | 'pbmMesh' | '
1808
1895
  }>;
1809
1896
  type?: Type;
1810
1897
  fetcher?: Fetcher;
1811
- }): Promise<ParsedResultType<ResultType>>;
1898
+ }): Promise<LoadResultType<ResultType>>;
1812
1899
 
1813
1900
  export declare function loadPnts(url: string, options?: {
1901
+ upAxis?: 'Y' | 'Z';
1814
1902
  fetcher?: Fetcher;
1815
1903
  computeBoundingBox?: boolean;
1816
- }): Promise<ParsedResultType>;
1904
+ }): Promise<LoadResultType>;
1905
+
1906
+ export declare type LoadResultType<Scene = THREE_2.Object3D> = {
1907
+ type: 'unknown' | 'b3dm' | 'pnts' | 'at3d' | 'pbm' | 'dome' | 'domez' | 'gltf' | 'ply' | 'obj' | 'fbx' | 'x3p';
1908
+ modelUpAxis: 'Y' | 'Z';
1909
+ upAxis: 'Y' | 'Z';
1910
+ byteLength: number;
1911
+ memoryUsage: number;
1912
+ uri: string;
1913
+ scene: Scene;
1914
+ textures: THREE_2.Texture[];
1915
+ animations: THREE_2.AnimationClip[];
1916
+ rtcCenter?: THREE_2.Vector3;
1917
+ dispose: () => void;
1918
+ };
1817
1919
 
1818
1920
  export declare function loadX3p(url: string, options?: {
1921
+ upAxis?: 'Y' | 'Z';
1819
1922
  color?: THREE_2.Color;
1820
1923
  light?: boolean;
1821
1924
  fetcher?: Fetcher;
1822
- }): Promise<ParsedResultType>;
1925
+ }): Promise<LoadResultType>;
1823
1926
 
1824
1927
  export declare interface LoosePanoWork {
1825
1928
  code?: string;
@@ -1905,14 +2008,6 @@ export declare type LooseWorkPanorama = {
1905
2008
  front: string;
1906
2009
  back: string;
1907
2010
  video?: LooseWorkVideo;
1908
- luminance?: {
1909
- up: string;
1910
- down: string;
1911
- right: string;
1912
- left: string;
1913
- front: string;
1914
- back: string;
1915
- };
1916
2011
  tiles?: number[];
1917
2012
  size_list?: number[];
1918
2013
  };
@@ -1928,6 +2023,27 @@ export declare type LooseWorkWithExtrinsics = ParseWorkOptions & {
1928
2023
  work: LooseWork;
1929
2024
  };
1930
2025
 
2026
+ declare class LuminanceAdaptiveEffect extends Effect {
2027
+ private luminanceTargetBuffer?;
2028
+ private luminancePrevBuffer?;
2029
+ private luminanceNextBuffer?;
2030
+ private valuePass;
2031
+ private luminancePass;
2032
+ private nextStepPass;
2033
+ private luminanceAdaptivePass;
2034
+ private enableTime;
2035
+ constructor(renderer: THREE_2.WebGLRenderer, scene: THREE_2.Scene, camera: Camera, modelScene: ModelScene);
2036
+ render(screenBuffers: (THREE_2.WebGLRenderTarget | null)[]): void;
2037
+ dispose(): void;
2038
+ }
2039
+
2040
+ declare class LuminanceRenderer extends BaseRenderer {
2041
+ luminanceAdaptiveEffect: LuminanceAdaptiveEffect;
2042
+ constructor(args: RendererInitArgs);
2043
+ render(modelSceneNeedsRender: boolean): void;
2044
+ setSize(width: number, height: number): void;
2045
+ }
2046
+
1931
2047
  export declare interface MapviewControllerCustomInitArgs {
1932
2048
  /** 默认水平角 */
1933
2049
  defaultLongitude?: number;
@@ -1954,8 +2070,6 @@ export declare interface MapviewControllerCustomInitArgs {
1954
2070
  intersectMeshCreator?: () => IntersectMeshInterface;
1955
2071
  }
1956
2072
 
1957
- export declare type Mirror<T extends string> = Record<T, T>;
1958
-
1959
2073
  /**
1960
2074
  * Five 的显示模式,可以通过 `five.changeMode` `five.setState` 来切换
1961
2075
  * - **Panorama**: 全景图游走模式
@@ -1986,6 +2100,36 @@ export declare interface ModeChangeEvent extends StateEvent {
1986
2100
  mode: Mode;
1987
2101
  }
1988
2102
 
2103
+ export declare interface Model {
2104
+ dispatchEvent(event: {
2105
+ type: 'error';
2106
+ error: Error;
2107
+ }): void;
2108
+ dispatchEvent(event: {
2109
+ type: 'load';
2110
+ }): void;
2111
+ dispatchEvent(event: {
2112
+ type: 'shownFloorChange';
2113
+ floorIndex: number | null;
2114
+ }): void;
2115
+ dispatchEvent(event: {
2116
+ type: string;
2117
+ [attachment: string]: any;
2118
+ }): void;
2119
+ addEventListener(type: 'error', listener: (event: THREE_2.Event & {
2120
+ type: 'error';
2121
+ error: Error;
2122
+ }) => void): void;
2123
+ addEventListener(type: 'load', listener: (event: THREE_2.Event & {
2124
+ type: 'load';
2125
+ }) => void): void;
2126
+ addEventListener(type: 'changeShownFloor', listener: (event: THREE_2.Event & {
2127
+ type: 'changeShownFloor';
2128
+ floorIndex: number | null;
2129
+ }) => void): void;
2130
+ addEventListener(type: string, listener: (event: THREE_2.Event) => void): void;
2131
+ }
2132
+
1989
2133
  /**
1990
2134
  * Five 模型
1991
2135
  * @description
@@ -1995,51 +2139,62 @@ export declare interface ModeChangeEvent extends StateEvent {
1995
2139
  * 通过 json_xxxxxx(<dataURL>) 方式返回。
1996
2140
  */
1997
2141
  export declare class Model extends THREE_2.Object3D {
2142
+ children: Tile3DModel[];
2143
+ add: (...object: Tile3DModel[]) => this;
2144
+ private disposed;
2145
+ parameter: Parameter;
1998
2146
  /** work */
1999
- work: Work | null;
2000
- /** 模型的不同图层 */
2001
- viewLayers: ModelViewLayer[];
2002
- onError: (error: Error) => void;
2003
- onShownFloorChange: (floorIndex: number | null) => void;
2004
- onLoad: () => void;
2005
- /** 外接盒子的大小 */
2006
- bounding: THREE_2.Box3;
2007
- /** 所有楼层 */
2008
- floorLength: number;
2009
- /** 材质贴图参数 */
2010
- textureOptions: TextureOptions;
2147
+ work: Work;
2148
+ /** 是否过期 */
2149
+ outdated: boolean;
2150
+ /** 是否自动细化 */
2011
2151
  autoRefine: boolean;
2152
+ /** 是否在加载元信息 */
2153
+ metaPending: boolean;
2154
+ /** 模型已经加载 */
2155
+ loaded: boolean;
2012
2156
  /** 模型是否已经细化 */
2013
2157
  refined: boolean;
2014
2158
  /** 模型细化进度 */
2015
2159
  refineProgress: [number, number];
2016
- /** 模型已经加载 */
2017
- loaded: boolean;
2018
- /** 是否更新 */
2019
- needsRender: boolean;
2020
- /** 缓存相机 */
2021
- cacheCameras: (THREE_2.PerspectiveCamera | Camera)[];
2022
- /** 当前样式参数 */
2023
- materialVersion: number;
2024
- private materialParameters;
2025
- private disposed;
2026
- constructor(options?: {
2027
- onError?: (error: Error) => void;
2028
- onShownFloorChange?: (floorIndex: number | null) => void;
2029
- onLoad?: () => void;
2160
+ /** 初始化完成 */
2161
+ initReady: Promise<void>;
2162
+ /** 初次加载完成 */
2163
+ loadedReady: Promise<void>;
2164
+ /** 外接盒子的大小 */
2165
+ boundingBox: THREE_2.Box3;
2166
+ /** 所有楼层 */
2167
+ floorLength: number;
2168
+ constructor(work: Work, options?: {
2169
+ light?: boolean;
2170
+ textureOptions?: TextureOptions;
2030
2171
  });
2172
+ /** 析构函数 一旦析构,则不能使用 */
2173
+ dispose(): void;
2174
+ /** 模型内容是否为空 */
2031
2175
  get empty(): boolean;
2032
- /** 获取材质参数 */
2033
- getMaterial(): PBMParameters;
2034
- /** 设置材质参数 */
2035
- setMaterial(values: Partial<PBMParameters>): void;
2036
- get brightness(): PBMParameters['brightness'];
2037
- set brightness(brightness: PBMParameters['brightness']);
2176
+ /** 模型的不同图层 */
2177
+ get viewLayers(): Tile3DModel[];
2038
2178
  /**
2039
- * 当前显示的楼层
2179
+ * 获取模型边界线
2180
+ * @param sphere - 获取区域
2181
+ * @param threshold - 面片间夹角阈值
2182
+ * @returns 所有模型边界线
2183
+ */
2184
+ getEdgesBySphere(sphere: THREE_2.Sphere, threshold?: number): THREE_2.Line3[];
2185
+ /**
2186
+ * 计算模型射线碰撞检测
2187
+ * @param raycaster - THREE 射线对象
2188
+ * @param filterFloorIndex - 和某一楼层做碰撞检测, 不传为和所有楼层做碰撞检测
2189
+ * @param sortByDistance - 是否对结果进行排序
2190
+ * @returns 返回碰撞
2040
2191
  */
2041
- get shownFloorIndex(): PBMParameters['shownFloorIndex'];
2042
- set shownFloorIndex(floorIndex: PBMParameters['shownFloorIndex']);
2192
+ intersectRaycaster(raycaster: THREE_2.Raycaster, filterFloorIndex?: undefined | null | number, sortByDistance?: boolean): Intersection[];
2193
+ update(renderer: THREE_2.WebGLRenderer, camera: Camera, modelScene: ModelScene): boolean;
2194
+ localToEnu(vector: THREE_2.Vector3): THREE_2.Vector3;
2195
+ enuToLocal(vector: THREE_2.Vector3): THREE_2.Vector3;
2196
+ worldToEnu(vector: THREE_2.Vector3): THREE_2.Vector3;
2197
+ enuToWorld(vector: THREE_2.Vector3): THREE_2.Vector3;
2043
2198
  /**
2044
2199
  * 当前显示的楼层
2045
2200
  */
@@ -2055,43 +2210,49 @@ export declare class Model extends THREE_2.Object3D {
2055
2210
  */
2056
2211
  show(floor?: number | null): void;
2057
2212
  /**
2058
- * 裁切
2213
+ * @deprecated
2214
+ * Use `.boundingBox` instead
2059
2215
  */
2060
- get clippers(): PBMParameters['clippers'];
2061
- set clippers(clippers: PBMParameters['clippers']);
2062
- get customShaders(): PBMParameters['customShaders'];
2063
- set customShaders(customShaders: PBMParameters['customShaders']);
2216
+ get bounding(): THREE_2.Box3;
2064
2217
  /**
2065
- * 获取模型边界线
2066
- * @param sphere - 获取区域
2067
- * @param threshold - 面片间夹角阈值
2068
- * @returns 所有模型边界线
2218
+ * @deprecated
2219
+ * Use `.parameter.set` instead
2069
2220
  */
2070
- getEdgesBySphere(sphere: THREE_2.Sphere, threshold?: number): THREE_2.Line3[];
2221
+ setMaterial(parameter: Partial<ParameterValue>): void;
2071
2222
  /**
2072
- * 计算模型射线碰撞检测
2073
- * @param raycaster - THREE 射线对象
2074
- * @param floor - 和某一楼层做碰撞检测, 不传为和所有楼层做碰撞检测
2075
- * @returns 返回碰撞
2223
+ * @deprecated
2224
+ * Use `.parameter.get` instead
2076
2225
  */
2077
- intersectRaycaster(raycaster: THREE_2.Raycaster, floor?: undefined | null | number, sortByDistance?: boolean): Intersection[];
2226
+ getMaterial(): Partial<ParameterValue>;
2078
2227
  /**
2079
- * 加载模型
2080
- * @param work - work
2081
- * @param options - 图片参数
2228
+ * @deprecated
2229
+ * Use `.parameter.shownFloorIndex` `.parameter.set('brightness', brightness)` instead
2082
2230
  */
2083
- load(work: Work, options?: {
2084
- light?: boolean;
2085
- textureOptions?: TextureOptions;
2086
- "3d-tiles"?: Tile3dOptions;
2087
- }): Promise<void>;
2088
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, mode: Mode): void;
2231
+ get shownFloorIndex(): ParameterValue['shownFloorIndex'];
2232
+ set shownFloorIndex(floorIndex: ParameterValue['shownFloorIndex']);
2089
2233
  /**
2090
- * 析构函数
2091
- * @description
2092
- * 一旦析构,则不能使用
2234
+ * @deprecated
2235
+ * Use `.parameter.brightness` `.parameter.set('brightness', brightness)` instead
2093
2236
  */
2094
- dispose(): void;
2237
+ get brightness(): ParameterValue['brightness'];
2238
+ set brightness(brightness: ParameterValue['brightness']);
2239
+ /**
2240
+ * @deprecated
2241
+ * Use `.parameter.clippers` `.parameter.set('clippers', clippers)` instead
2242
+ */
2243
+ get clippers(): ParameterValue['clippers'];
2244
+ set clippers(clippers: ParameterValue['clippers']);
2245
+ /**
2246
+ * @deprecated
2247
+ * Use `.parameter.customShaders` `.parameter.set('customShaders', customShaders)` instead
2248
+ */
2249
+ get customShaders(): ParameterValue['customShaders'];
2250
+ set customShaders(customShaders: ParameterValue['customShaders']);
2251
+ /**
2252
+ * @deprecated
2253
+ * Use `.parameter.reset('brightness')` instead
2254
+ */
2255
+ resetBrightness(): void;
2095
2256
  }
2096
2257
 
2097
2258
  export declare interface ModelControllerCustomInitArgs extends PanoramaLikeControllerCustomInitArgs {
@@ -2103,82 +2264,152 @@ export declare interface ModelEvent extends BaseEvent {
2103
2264
  error: Error | null;
2104
2265
  }
2105
2266
 
2106
- export declare type ModelMaterialValues = Omit<PBMParameters, 'clippers' | 'shownFloorIndex' | 'brightness' | 'customShaders'>;
2267
+ export declare interface ModelLike extends THREE_2.Object3D {
2268
+ update?(renderer: THREE_2.WebGLRenderer, camera: Camera, modelScene: ModelScene): boolean;
2269
+ dispose?: () => void;
2270
+ }
2107
2271
 
2108
2272
  export declare type Models = Model[] & {
2109
- needsRender: boolean;
2110
- /** 包围盒 */
2273
+ /**
2274
+ * @deprecated
2275
+ * use `modelScene.autoRefine` instead
2276
+ */
2277
+ autoUpdate: boolean;
2278
+ /**
2279
+ * @deprecated
2280
+ * use `modelScene.boundingBox` instead
2281
+ */
2111
2282
  bounding: THREE_2.Box3;
2112
- /** 是否家在完成 */
2283
+ /**
2284
+ * @deprecated
2285
+ * use `modelScene.loaded` instead
2286
+ */
2113
2287
  loaded: boolean;
2114
- /** 是否细化完成 */
2288
+ /**
2289
+ * @deprecated
2290
+ * use `modelScene.refined` instead
2291
+ */
2115
2292
  refined: boolean;
2116
- /** 细化成都 */
2293
+ /**
2294
+ * @deprecated
2295
+ * use `modelScene.refineProgress` instead
2296
+ */
2117
2297
  refineProgress: [number, number];
2118
- materialVersion: number;
2119
- /** 缓存相机 */
2120
- cacheCameras: (THREE_2.PerspectiveCamera | Camera)[];
2121
- /** 是否自动更新模型 */
2122
- autoUpdate: boolean;
2123
2298
  /**
2124
- * 计算模型射线碰撞检测
2125
- * @param raycaster - THREE 射线对象
2126
- * @returns 返回碰撞
2299
+ * @deprecated
2300
+ * use `modelScene.parameter.cacheCameras` `modelScene.parameter.set('cacheCameras', cacheCameras)` instead
2301
+ */
2302
+ cacheCameras: readonly (THREE_2.PerspectiveCamera | Camera)[];
2303
+ /**
2304
+ * @deprecated
2305
+ * use `modelScene.intersectRaycaster` instead
2127
2306
  */
2128
2307
  intersectRaycaster(raycaster: THREE_2.Raycaster): Intersection[];
2129
- /** 设置材质参数 */
2130
- setMaterial(values: Partial<ModelMaterialValues>): void;
2131
- /** 获取材质参数 */
2132
- getMaterial(): ModelMaterialValues;
2133
- /** 突出模型 */
2308
+ /**
2309
+ * @deprecated
2310
+ * Use `.parameter.set` instead
2311
+ */
2312
+ setMaterial(values: Partial<ParameterValue>): void;
2313
+ /**
2314
+ * @deprecated
2315
+ * Use `.parameter.get` instead
2316
+ */
2317
+ getMaterial(): ParameterValue;
2318
+ /**
2319
+ * @deprecated
2320
+ * Use `.parameter.reset('brightness')` instead
2321
+ */
2134
2322
  resetBrightness(): void;
2135
- /** 更新模型 */
2136
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, mode: Mode): void;
2137
2323
  };
2138
2324
 
2139
- export declare interface ModelsEvent extends BaseEvent {
2140
- models: Models;
2141
- }
2142
-
2143
- export declare class ModelViewLayer {
2144
- readonly scene: Tile3DModel;
2145
- readonly error: Error | null;
2146
- constructor(scene: Tile3DModel, error: Error | null);
2147
- get name(): string;
2148
- get type(): "point_cloud" | "mesh";
2149
- get upAxis(): string;
2150
- get groundHeight(): number;
2151
- get model(): Model;
2325
+ export declare class ModelScene extends THREE_2.Scene {
2326
+ needsRender: boolean;
2327
+ children: ModelLike[];
2328
+ /** 自动细化 */
2329
+ autoRefine: boolean;
2330
+ /** 包围盒 */
2331
+ boundingBox: THREE_2.Box3;
2332
+ /** 加载完成 */
2333
+ loaded: boolean;
2334
+ /** 细化完成 */
2335
+ refined: boolean;
2336
+ /** 细化进度 */
2337
+ refineProgress: [number, number];
2338
+ /** 参数 */
2339
+ parameter: Parameter;
2340
+ /** 模型列表 */
2341
+ readonly models: Models;
2342
+ constructor();
2343
+ add(...objects: ModelLike[]): this;
2344
+ remove(...objects: ModelLike[]): this;
2345
+ /**
2346
+ * 计算模型射线碰撞检测
2347
+ * @param raycaster - THREE 射线对象
2348
+ * @param floor - 和某一楼层做碰撞检测, 不传为和所有楼层做碰撞检测
2349
+ * @param sortByDistance - 根据距离排序
2350
+ * @returns 返回碰撞点
2351
+ */
2352
+ intersectRaycaster(raycaster: THREE_2.Raycaster, floor?: number | null, sortByDistance?: boolean): Intersection[];
2353
+ update(renderer: THREE_2.WebGLRenderer, camera: Camera): boolean;
2152
2354
  /**
2153
2355
  * @deprecated
2154
- * 使用 modelViewLayer.scene.localToLla(new THREE.Vector()) 替代
2356
+ * Use `.boundingBox` instead
2155
2357
  */
2156
- get coordinates(): string;
2358
+ get bounding(): THREE_2.Box3;
2157
2359
  /**
2158
2360
  * @deprecated
2159
- * 使用 modelViewLayer.scene.coordinateTransform 替代
2361
+ * Use `.parameter.set` instead
2160
2362
  */
2161
- getTransformMatrix4(target?: THREE_2.Matrix4): THREE_2.Matrix4;
2363
+ setMaterial(parameter: Partial<ParameterValue>): void;
2162
2364
  /**
2163
2365
  * @deprecated
2164
- * 使用 modelViewLayer.scene.llaToWorld 替代
2366
+ * Use `.parameter.get` instead
2165
2367
  */
2166
- coordinatesToWorldPoint(coordinates: {
2167
- longitude: number;
2168
- latitude: number;
2169
- altitude: number;
2170
- }): THREE_2.Vector3;
2368
+ getMaterial(): ParameterValue;
2171
2369
  /**
2172
2370
  * @deprecated
2173
- * 使用 modelViewLayer.scene.llaToWorld 替代
2371
+ * Use `.parameter.reset('brightness')` instead
2174
2372
  */
2175
- worldPointToCoordinates(point: THREE_2.Vector3): {
2176
- longitude: number;
2177
- latitude: number;
2178
- altitude: number;
2179
- };
2373
+ resetBrightness(): void;
2180
2374
  }
2181
2375
 
2376
+ export declare interface ModelSceneEvent extends BaseEvent {
2377
+ modelScene: ModelScene;
2378
+ }
2379
+
2380
+ export declare class Motion<K extends string> {
2381
+ config: MotionConfig<K>;
2382
+ value: MotionValue<K>;
2383
+ progress: number;
2384
+ ended: boolean;
2385
+ startTime: number;
2386
+ startVelocity: number;
2387
+ duration: number;
2388
+ keyframes: MotionKeyframe<K>[];
2389
+ private callbacks?;
2390
+ constructor(initalValue: MotionInitalValue<K>);
2391
+ private getProgress;
2392
+ private getValue;
2393
+ getProgressVelocity(time: number): number;
2394
+ update(time: number): boolean;
2395
+ getKeyFrameSegment(time: number): [MotionKeyframe<K>, MotionKeyframe<K>];
2396
+ getTargetKeyframe(): MotionKeyframe<K>;
2397
+ set(value: Partial<MotionValue<K>>, duration: number, startProgressVelocity?: number, time?: number): Promise<void>;
2398
+ setKeyframes(keyframes: MotionKeyframe<K>[], duration: number, startProgressVelocity?: number, time?: number): Promise<void>;
2399
+ dispose(): void;
2400
+ }
2401
+
2402
+ /** 是否是循环变化,比如 [0, 2 * Math.PI], 前闭后开 */
2403
+ export declare type MotionCircle = [number, number];
2404
+
2405
+ export declare type MotionConfig<K extends string> = Record<K, {
2406
+ circle: MotionCircle | false;
2407
+ }>;
2408
+
2409
+ export declare type MotionInitalValue<K extends string> = Record<K, MotionValue<K>[K] | ({
2410
+ value: MotionValue<K>[K];
2411
+ } & MotionConfig<K>[K])>;
2412
+
2182
2413
  export declare interface MotionKeyframe<K extends string> {
2183
2414
  progress: number;
2184
2415
  value: MotionValue<K>;
@@ -2474,8 +2705,6 @@ export declare interface PanoramaControllerCustomInitArgs extends PanoramaLikeCo
2474
2705
  panoTapTriggerRadius?: number;
2475
2706
  /** 地面观察点标识自定义创建器 */
2476
2707
  panoCircleMeshCreator?: (pano: Pano) => PanoCircleMeshInterface;
2477
- /** TiledCubeTextureLevel */
2478
- tiledCubeTextureLevel?: number;
2479
2708
  /**
2480
2709
  * 全景瓦片登记
2481
2710
  * @param fov - 当前 fov
@@ -2489,6 +2718,8 @@ export declare interface PanoramaControllerCustomInitArgs extends PanoramaLikeCo
2489
2718
  tileMaxRequest?: number;
2490
2719
  /** 是否开启光照自适应效果 */
2491
2720
  luminanceAdaptiveEffectEnable?: boolean;
2721
+ /** 是否使用深度信息干预全景图着色 */
2722
+ flyEffectUseDepthBuffer?: boolean;
2492
2723
  }
2493
2724
 
2494
2725
  export declare interface PanoramaLikeControllerCustomInitArgs {
@@ -2523,16 +2754,134 @@ export declare interface PanoTextureEvent extends BaseEvent {
2523
2754
  error: Error | null;
2524
2755
  }
2525
2756
 
2526
- export declare type ParsedResultType<Scene = THREE_2.Object3D> = {
2527
- type: 'unknown' | 'b3dm' | 'pnts' | 'at3d' | 'pbm' | 'dome' | 'domez' | 'gltf' | 'ply' | 'obj' | 'fbx' | 'x3p';
2528
- upAxis: 'Z';
2529
- byteLength: number;
2530
- memoryUsage: number;
2531
- uri: string;
2532
- scene: Scene;
2533
- textures: THREE_2.Texture[];
2534
- dispose: () => void;
2535
- };
2757
+ export declare interface Parameter extends Readonly<Partial<ParameterValue>> {
2758
+ }
2759
+
2760
+ export declare class Parameter {
2761
+ static createDefault(): Required<ParameterValue>;
2762
+ static resolveValue(...values: Partial<ParameterValue>[]): ResolvedParameterValue;
2763
+ private value;
2764
+ id: string;
2765
+ versionNumber: number;
2766
+ constructor(initialValue?: Partial<ParameterValue>);
2767
+ get version(): string;
2768
+ resolveValue(...baseValues: Partial<ParameterValue>[]): ResolvedParameterValue;
2769
+ set<T extends keyof ParameterValue>(name: T, value: ParameterValue[T]): this;
2770
+ set(values: Partial<ParameterValue>): this;
2771
+ reset(...names: (keyof ParameterValue)[]): this;
2772
+ resetAll(): this;
2773
+ copy(value: Partial<ParameterValue>): this;
2774
+ }
2775
+
2776
+ export declare interface ParameterMaterialValue {
2777
+ /** 自定义材质*/
2778
+ customShaders: readonly PBMCustomShader[];
2779
+ /** 是否生效标注 */
2780
+ vertexMarks: boolean;
2781
+ /** 起始点 */
2782
+ pano0: PBMPanoPicture | null;
2783
+ /** 结束点 */
2784
+ pano1: PBMPanoPicture | null;
2785
+ /** 起始点深度 */
2786
+ pano0Depth: PBMPanoDepth | null;
2787
+ /** 结束点深度 */
2788
+ pano1Depth: PBMPanoDepth | null;
2789
+ /** 细化瓦片的屏幕渲染 */
2790
+ refinedScreen: PBMRefinedScreen | null;
2791
+ /** 模型贴图和全景图的混合程度 [0-1] */
2792
+ modelAlpha: number;
2793
+ /** 全景图混合程度 [0-1] */
2794
+ progress: number;
2795
+ /** 全景图过度混合 */
2796
+ transition: PBMTransition;
2797
+ /** 模型透明度 */
2798
+ opacity: number;
2799
+ /** 楼层样式 */
2800
+ floorStyle: PBMFloorStyle;
2801
+ /** 颜色样式 */
2802
+ colorStyle: PBMColorStyle;
2803
+ /** 模型颜色*/
2804
+ constantColor: THREE_2.Vector3;
2805
+ /** 楼层参数*/
2806
+ shownFloorIndex: number;
2807
+ /** 模型裁切参数(工程侧调用)*/
2808
+ clippers: readonly PBMClipperParameter[];
2809
+ /** 亮度 */
2810
+ brightness: number;
2811
+ /** 是否使用EDL*/
2812
+ useEDL: boolean;
2813
+ /** 是否使用HQ*/
2814
+ useHQWeight: boolean;
2815
+ /** 是否使用HQ_DEPTH_MASK*/
2816
+ useHQDepth: boolean;
2817
+ /** 点云形状*/
2818
+ pointShape: PBMPointShape;
2819
+ /** 点云大小绘制方式*/
2820
+ pointSize: PBMPointSize;
2821
+ /** 点云背面绘制方式*/
2822
+ pointBack: PBMPointBack;
2823
+ /** 点云基础大小*/
2824
+ pointScale: number;
2825
+ /** 点云最小尺寸*/
2826
+ pointMinPixel: number;
2827
+ /** 点云最大尺寸*/
2828
+ pointMaxPixel: number;
2829
+ /** 点云出现动画 */
2830
+ pointAppearAnimation: boolean;
2831
+ /** 饱和度调整值*/
2832
+ colorSaturation: number;
2833
+ /** 亮度调整值*/
2834
+ colorBrightness: number;
2835
+ /** outline增益*/
2836
+ outlineGain: number;
2837
+ /** distance增益*/
2838
+ distanceGain: number;
2839
+ /** 高程着色材质*/
2840
+ gradientTexture: THREE_2.Texture | null;
2841
+ /** 是否产生阴影 */
2842
+ castShadow: boolean;
2843
+ /** 是否接受阴影 */
2844
+ receiveShadow: boolean;
2845
+ /** 半透明叠加渲染*/
2846
+ useAddBlend: boolean;
2847
+ }
2848
+
2849
+ export declare interface ParameterTilesetValue {
2850
+ tileDebug: TileDebug;
2851
+ /** 模型显示最小细化层级 */
2852
+ minLevelOfDetail: number;
2853
+ /** 模型显示最大细化层级 */
2854
+ maxLevelOfDetail: number;
2855
+ /** 模型显示最小细化误差 */
2856
+ minGeometricError: number;
2857
+ /** 模型显示最大细化误差 */
2858
+ maxGeometricError: number;
2859
+ /** 全景态下模型显示最小细化误差 */
2860
+ panoramaMinGeometricError: number;
2861
+ /** 模型越层级加载 */
2862
+ skipLevelOfDetail: boolean;
2863
+ /** 模型是否最密 */
2864
+ mostDetail: boolean;
2865
+ /** 模型加载不在视野中的兄弟节点 */
2866
+ loadSiblings: boolean;
2867
+ /** 模型加载不在视野中的所有节点 */
2868
+ loadAll: boolean;
2869
+ /** 模型最大内存缓存 */
2870
+ maxMemoryUsage: number;
2871
+ /** 模型网络最大请求并发数 */
2872
+ maxRequests: number;
2873
+ /** 模型网络请求顺序 */
2874
+ requestOrder: TileRequestOrder;
2875
+ /** 模型屏幕空间误差计算最大值 */
2876
+ maxScreenSpaceError: number;
2877
+ memoryAdjustedOverflow: number;
2878
+ memoryAdjustedScreenSpaceError: boolean;
2879
+ /** 缓存相机 */
2880
+ cacheCameras: readonly (Camera | THREE_2.PerspectiveCamera)[];
2881
+ }
2882
+
2883
+ export declare interface ParameterValue extends ParameterMaterialValue, ParameterTilesetValue {
2884
+ }
2536
2885
 
2537
2886
  /**
2538
2887
  * 解析 Work 数据
@@ -2561,20 +2910,83 @@ export declare type ParseWorkOptions = {
2561
2910
  }) => void;
2562
2911
  };
2563
2912
 
2564
- /** PBM 模型组 */
2913
+ declare class Pass {
2914
+ renderer: THREE_2.WebGLRenderer;
2915
+ material: THREE_2.ShaderMaterial;
2916
+ constructor(renderer: THREE_2.WebGLRenderer, shader: Shader);
2917
+ render(inputBuffer: THREE_2.WebGLRenderTarget, outputBuffer: THREE_2.WebGLRenderTarget | null): void;
2918
+ dispose(): void;
2919
+ }
2920
+
2921
+ export declare type PBMAlphaMode = 'OPAQUE' | 'MASK' | 'BLEND';
2922
+
2923
+ export declare interface PBMClipperParameter {
2924
+ clippingBoxMatrix: THREE_2.Matrix4;
2925
+ floorIndex?: number;
2926
+ }
2927
+
2928
+ export declare type PBMColorStyle = 'RGB' | 'ALTITUDE' | 'CONSTANT';
2929
+
2930
+ /**
2931
+ * PBM 模型组
2932
+ * @deprecated 弃用, 直接使用 THREE.Group
2933
+ */
2565
2934
  export declare class PBMContainer extends THREE_2.Group {
2566
- pbmMaterialParametersVersion: number;
2567
- /** 是否需要更新按需渲染 */
2568
- needsRender: boolean;
2569
- /** 当前样式参数 */
2570
- materialParameters: PBMParameters;
2571
2935
  constructor();
2572
- /** 获取材质参数 */
2573
- getMaterial(): PBMParameters;
2574
- /** 设置材质参数 */
2575
- setMaterial(parameters: Partial<PBMParameters>): void;
2576
2936
  }
2577
2937
 
2938
+ declare class PBMCustomShader {
2939
+ id: string;
2940
+ version: number;
2941
+ uniforms: {
2942
+ [key: string]: THREE_2.Uniform;
2943
+ };
2944
+ defines: {
2945
+ [key: string]: any;
2946
+ };
2947
+ type: PBMCustomShaderInitArgs['type'];
2948
+ vertex: PBMCustomShaderSlots['vertex'];
2949
+ fragment: PBMCustomShaderSlots['fragment'];
2950
+ constructor(initArgs: PBMCustomShaderInitArgs);
2951
+ get needsUpdate(): boolean;
2952
+ set needsUpdate(value: boolean);
2953
+ onBeforeCompile(shader: THREE_2.Shader, renderer: THREE_2.WebGLRenderer): void;
2954
+ }
2955
+ export { PBMCustomShader as CustomShader }
2956
+ export { PBMCustomShader }
2957
+
2958
+ declare interface PBMCustomShaderInitArgs {
2959
+ type: Array<'none' | 'basic' | 'phong' | 'standard' | 'pointcloud'>;
2960
+ vertex?: Partial<PBMCustomShaderSlots['vertex']>;
2961
+ fragment?: Partial<PBMCustomShaderSlots['fragment']>;
2962
+ uniforms?: {
2963
+ [key: string]: THREE_2.Uniform;
2964
+ };
2965
+ defines?: {
2966
+ [key: string]: any;
2967
+ };
2968
+ }
2969
+ export { PBMCustomShaderInitArgs as CustomShaderInitArgs }
2970
+ export { PBMCustomShaderInitArgs }
2971
+
2972
+ declare interface PBMCustomShaderSlots {
2973
+ vertex: {
2974
+ mainBefore: string;
2975
+ mainStart: string;
2976
+ mainEnd: string;
2977
+ };
2978
+ fragment: {
2979
+ mainBefore: string;
2980
+ mainStart: string;
2981
+ mainModelColor: string;
2982
+ mainEnd: string;
2983
+ };
2984
+ }
2985
+ export { PBMCustomShaderSlots as CustomShaderChunks }
2986
+ export { PBMCustomShaderSlots }
2987
+
2988
+ export declare type PBMFloorStyle = 'VISIBILITY' | 'OPACITY';
2989
+
2578
2990
  /**
2579
2991
  * PBM 模型组
2580
2992
  * @deprecated 弃用, 直接使用 THREE.Group
@@ -2582,21 +2994,22 @@ export declare class PBMContainer extends THREE_2.Group {
2582
2994
  export declare class PBMGroup extends THREE_2.Group {
2583
2995
  }
2584
2996
 
2585
- /** PBM 对象 */
2997
+ export declare class PBMMaterial extends THREE_2.Material {
2998
+ }
2999
+
2586
3000
  export declare class PBMMesh extends THREE_2.Mesh<THREE_2.BufferGeometry, PBMMeshMaterial[]> {
2587
3001
  constructor(geometry: THREE_2.BufferGeometry, materials: PBMMeshMaterial[]);
2588
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model, tile?: Tile): void;
2589
3002
  }
2590
3003
 
2591
- /** PBM 材质 */
2592
- export declare class PBMMeshMaterial extends THREE_2.ShaderMaterial implements PBMParameters {
2593
- shaderType: 'none' | 'basic' | 'phong' | 'standard';
2594
- /** 更新版本 */
2595
- syncModelVersion?: string;
3004
+ export declare class PBMMeshMaterial extends PBMMaterial implements THREE_2.MeshBasicMaterial, THREE_2.MeshPhongMaterial, THREE_2.MeshStandardMaterial {
3005
+ readonly isPBMMeshMaterial: true;
3006
+ readonly isShaderMaterial: true;
3007
+ readonly isMeshBasicMaterial: boolean;
3008
+ readonly isMeshPhongMaterial: boolean;
3009
+ readonly isMeshStandardMaterial: boolean;
3010
+ shaderType: PBMMeshShaderType;
2596
3011
  vertexTangents: boolean;
2597
- /** 内置参数 */
2598
3012
  color: THREE_2.Color;
2599
- colorAlpha: number;
2600
3013
  map: THREE_2.Texture | null;
2601
3014
  lightMap: THREE_2.Texture | null;
2602
3015
  lightMapIntensity: number;
@@ -2604,13 +3017,13 @@ export declare class PBMMeshMaterial extends THREE_2.ShaderMaterial implements P
2604
3017
  aoMapIntensity: number;
2605
3018
  specularMap: THREE_2.Texture | null;
2606
3019
  specular: THREE_2.Color;
3020
+ shininess: number;
2607
3021
  roughnessMap: THREE_2.Texture | null;
2608
3022
  roughness: number;
2609
3023
  metalnessMap: THREE_2.Texture | null;
2610
3024
  metalness: number;
2611
3025
  alphaMap: THREE_2.Texture | null;
2612
- alphaMode: 'OPAQUE' | 'MASK' | 'BLEND';
2613
- combine: THREE_2.Combine | null;
3026
+ combine: THREE_2.Combine;
2614
3027
  envMap: THREE_2.Texture | THREE_2.CubeTexture | null;
2615
3028
  envMapIntensity: number;
2616
3029
  reflectivity: number;
@@ -2626,235 +3039,210 @@ export declare class PBMMeshMaterial extends THREE_2.ShaderMaterial implements P
2626
3039
  displacementMap: THREE_2.Texture | null;
2627
3040
  displacementScale: number;
2628
3041
  displacementBias: number;
2629
- shininess: number;
2630
- /** 自定义材质*/
2631
- customShaders: CustomShader[];
2632
- /** 上一次的customShader*/
2633
- customShaderHash: string;
2634
- /** 上一次的customShaderUniforms*/
2635
- customShaderUniforms: Record<string, THREE_2.Uniform | undefined>;
2636
- /** 上一次的customShaderDefines*/
2637
- customShaderDefines: Record<string, any>;
2638
- /** 起始点 */
2639
- pano0: PBMParameters['pano0'];
2640
- /** 结束点 */
2641
- pano1: PBMParameters['pano1'];
2642
- /** 模型贴图和全景图的混合程度 [0-1] */
2643
- modelAlpha: PBMParameters['modelAlpha'];
2644
- /** 全景图混合程度 [0-1] */
2645
- progress: PBMParameters['progress'];
2646
- /** 全景图过度混合 */
2647
- transition: PBMParameters['transition'];
2648
- /** 模型透明度 */
2649
- opacity: PBMParameters['opacity'];
2650
- /** 点云着色方式*/
2651
- colorStyle: PBMParameters['colorStyle'];
2652
- /** 模型颜色*/
2653
- constantColor: PBMParameters['constantColor'];
2654
- /** 楼层样式*/
2655
- floorStyle: PBMParameters['floorStyle'];
2656
- /** 楼层参数*/
2657
- shownFloorIndex: PBMParameters['shownFloorIndex'];
2658
- /** 亮度 */
2659
- brightness: PBMParameters['brightness'];
2660
- /** 对外模型裁切参数*/
2661
- clippers: PBMParameters['clippers'];
2662
- /** edl*/
2663
- useEDL: PBMParameters['useEDL'];
2664
- /** hq*/
2665
- useHQWeight: PBMParameters['useHQWeight'];
2666
- /** HQDepthMask*/
2667
- useHQDepth: PBMParameters['useHQDepth'];
2668
- /** 点云大小绘制方式*/
2669
- pointSize: PBMParameters['pointSize'];
2670
- /** 点云形状*/
2671
- pointShape: PBMParameters['pointShape'];
2672
- /** 点云基础大小*/
2673
- pointScale: PBMParameters['pointScale'];
2674
- /** 点云背面绘制方式*/
2675
- pointBack: PBMParameters['pointBack'];
2676
- /** 点云像素最小值*/
2677
- pointMinPixel: PBMParameters['pointMinPixel'];
2678
- /** 点云像素最大值*/
2679
- pointMaxPixel: PBMParameters['pointMaxPixel'];
2680
- /** 高程彩色图*/
2681
- gradientTexture: PBMParameters['gradientTexture'];
2682
- /** HSV饱和度调整值*/
3042
+ wireframe: boolean;
3043
+ wireframeLinewidth: number;
3044
+ wireframeLinecap: string;
3045
+ wireframeLinejoin: string;
3046
+ skinning: boolean;
3047
+ morphTargets: boolean;
3048
+ morphNormals: boolean;
3049
+ metal: boolean;
3050
+ vertexMarks: boolean;
3051
+ alphaMode: PBMAlphaMode;
3052
+ colorAlpha: number;
3053
+ pano0: PBMPanoPicture | null;
3054
+ pano1: PBMPanoPicture | null;
3055
+ pano0Depth: PBMPanoDepth | null;
3056
+ pano1Depth: PBMPanoDepth | null;
3057
+ refinedScreen: PBMRefinedScreen | null;
3058
+ modelAlpha: number;
3059
+ progress: number;
3060
+ transition: PBMTransition;
3061
+ colorStyle: PBMColorStyle;
3062
+ constantColor: THREE_2.Vector3;
3063
+ floorIndex: number;
3064
+ shownFloorIndex: number;
3065
+ floorStyle: PBMFloorStyle;
3066
+ gradientTexture: THREE_2.Texture | null;
3067
+ brightness: number;
2683
3068
  colorSaturation: number;
2684
- /** HSV亮度调整值*/
2685
3069
  colorBrightness: number;
2686
- /** outline增益*/
2687
3070
  outlineGain: number;
2688
- /** distance增益 */
2689
3071
  distanceGain: number;
2690
- /** 半透明叠加渲染*/
2691
- useAddBlend: boolean;
2692
- /** 所属楼层*/
2693
- floorIndex: number;
2694
- constructor(shaderType?: 'none' | 'basic' | 'phong' | 'standard', parameters?: Partial<PBMParameters>);
2695
- onBeforeCompile(shader: THREE_2.Shader, renderer: THREE_2.WebGLRenderer): void;
2696
- refreshUniforms(renderer?: THREE_2.WebGLRenderer): void;
2697
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model): void;
3072
+ useEDL: boolean;
3073
+ useHQWeight: boolean;
3074
+ useHQDepth: boolean;
3075
+ modelBoundingMin: THREE_2.Vector3;
3076
+ modelBoundingMax: THREE_2.Vector3;
3077
+ clippers: readonly PBMClipperParameter[];
3078
+ customShaders: readonly PBMCustomShader[];
3079
+ onBeforeRender?: (renderer: THREE_2.WebGLRenderer, scene: THREE_2.Scene, camera: THREE_2.Camera, geometry: THREE_2.BufferGeometry | THREE_2.Geometry, object: THREE_2.Object3D, group: THREE_2.Group) => void;
3080
+ constructor(parameters?: PBMMeshMaterialParameters | PBMMeshShaderType);
2698
3081
  copy(source: PBMMeshMaterial): this;
2699
- clone(): any;
3082
+ clone(): this;
3083
+ /**
3084
+ * @deprecated
3085
+ * 已经不需要再被调用了
3086
+ */
3087
+ refreshUniforms(): void;
3088
+ }
3089
+
3090
+ export declare interface PBMMeshMaterialParameters extends THREE_2.MaterialParameters, THREE_2.MaterialParameters, THREE_2.MeshBasicMaterialParameters, THREE_2.MeshPhongMaterialParameters, THREE_2.MeshStandardMaterialParameters {
3091
+ shaderType?: PBMMeshShaderType;
3092
+ vertexMarks?: boolean;
3093
+ colorAlpha?: number;
3094
+ alphaMode?: PBMAlphaMode;
3095
+ pano0?: PBMPanoPicture | null;
3096
+ pano1?: PBMPanoPicture | null;
3097
+ refinedScreen?: PBMRefinedScreen | null;
3098
+ modelAlpha?: number;
3099
+ progress?: number;
3100
+ transition?: PBMTransition;
3101
+ colorStyle?: PBMColorStyle;
3102
+ constantColor?: THREE_2.Vector3;
3103
+ floorIndex?: number;
3104
+ shownFloorIndex?: number;
3105
+ floorStyle?: PBMFloorStyle;
3106
+ gradientTexture?: THREE_2.Texture | null;
3107
+ brightness?: number;
3108
+ colorSaturation?: number;
3109
+ colorBrightness?: number;
3110
+ outlineGain?: number;
3111
+ distanceGain?: number;
3112
+ useEDL?: boolean;
3113
+ useHQWeight?: boolean;
3114
+ useHQDepth?: boolean;
3115
+ modelBoundingMin?: THREE_2.Vector3;
3116
+ modelBoundingMax?: THREE_2.Vector3;
3117
+ clippers?: PBMClipperParameter[];
3118
+ customShaders?: PBMCustomShader[];
3119
+ }
3120
+
3121
+ export declare type PBMMeshShaderType = 'none' | 'basic' | 'phong' | 'standard';
3122
+
3123
+ export declare interface PBMPanoDepth {
3124
+ /** 点位 Id */
3125
+ panoId: PanoId;
3126
+ /** 深度图 */
3127
+ map: THREE_2.CubeTexture;
3128
+ /** 图片尺寸 */
3129
+ mapSize: number;
3130
+ /** 图片最大深度 */
3131
+ maxDepth: number;
2700
3132
  }
2701
3133
 
2702
3134
  export declare interface PBMPanoPicture {
2703
- /** 起始点位全景图 */
2704
- map: THREE_2.CubeTexture | TileCubeTextureTarget;
2705
- /** 亮度增益 */
2706
- luminanceMap: null | THREE_2.CubeTexture | TileCubeTextureTarget;
2707
- /** 起始点全景图变换矩阵 4x4 */
3135
+ /** 点位 Id */
3136
+ panoId: PanoId;
3137
+ /** 全景图 */
3138
+ map: THREE_2.CubeTexture;
3139
+ /** 图片尺寸 */
3140
+ mapSize: number;
3141
+ /** 全景图变换矩阵 4x4 */
2708
3142
  matrix: THREE_2.Matrix4;
2709
3143
  /** 缩放 */
2710
3144
  zoom: number;
2711
3145
  }
2712
3146
 
2713
- /** PBM 材质参数 */
2714
- export declare interface PBMParameters {
2715
- /** 自定义材质*/
2716
- customShaders: CustomShader[];
2717
- /** 起始点 */
2718
- pano0: PBMPanoPicture | null;
2719
- /** 结束点 */
2720
- pano1: PBMPanoPicture | null;
2721
- /** 模型贴图和全景图的混合程度 [0-1] */
2722
- modelAlpha: number;
2723
- /** 全景图混合程度 [0-1] */
2724
- progress: number;
2725
- /** 全景图过度混合 */
2726
- transition: 'BLACK' | 'SPREAD' | 'FADE';
2727
- /** 模型透明度 */
2728
- opacity: number;
2729
- /** 楼层样式 */
2730
- floorStyle: 'VISIBILITY' | 'OPACITY';
2731
- /** 颜色样式 */
2732
- colorStyle: 'RGB' | 'ALTITUDE' | 'CONSTANT';
2733
- /** 模型颜色*/
2734
- constantColor: THREE_2.Vector3;
2735
- /** 楼层参数*/
2736
- shownFloorIndex: number;
2737
- /** 模型裁切参数(工程侧调用)*/
2738
- clippers: ClipperParameter[] | null;
2739
- /** 亮度 */
2740
- brightness: number;
2741
- /** 是否使用EDL*/
2742
- useEDL: boolean;
2743
- /** 是否使用HQ*/
2744
- useHQWeight: boolean;
2745
- /** 是否使用HQ_DEPTH_MASK*/
2746
- useHQDepth: boolean;
2747
- /** 点云形状*/
2748
- pointShape: 'SQUARE' | 'CIRCLE';
2749
- /** 点云大小绘制方式*/
2750
- pointSize: 'FIXED' | 'ATTENUATION' | 'GEOMETRIC';
2751
- /** 点云背面绘制方式*/
2752
- pointBack: 'VISIBLE' | 'HIDDEN' | 'DARK';
2753
- /** 点云基础大小*/
2754
- pointScale: number;
2755
- /** 点云最小尺寸*/
2756
- pointMinPixel: number;
2757
- /** 点云最大尺寸*/
2758
- pointMaxPixel: number;
2759
- /** 饱和度调整值*/
2760
- colorSaturation: number;
2761
- /** 亮度调整值*/
2762
- colorBrightness: number;
2763
- /** 半透明叠加渲染*/
2764
- useAddBlend: boolean;
2765
- /** outline增益*/
2766
- outlineGain: number;
2767
- /** distance增益*/
2768
- distanceGain: number;
2769
- /** 高程着色材质*/
2770
- gradientTexture: THREE_2.Texture | null;
2771
- }
3147
+ export declare type PBMPointBack = 'VISIBLE' | 'HIDDEN' | 'DARK';
2772
3148
 
2773
3149
  /** PBM 对象 */
2774
3150
  export declare class PBMPointCloud extends THREE_2.Points<THREE_2.BufferGeometry, PBMPointCloudMaterial> {
2775
- private appearMotion;
2776
3151
  constructor(geometry: THREE_2.BufferGeometry, materials: PBMPointCloudMaterial);
2777
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model, tile?: Tile): void;
2778
3152
  }
2779
3153
 
2780
- export declare class PBMPointCloudMaterial extends THREE_2.ShaderMaterial implements PBMParameters {
2781
- /** 自定义材质*/
2782
- customShaders: CustomShader[];
2783
- /** 上一次的customShader*/
2784
- customShaderHash: string;
2785
- /** 上一次的customShaderUniforms*/
2786
- customShaderUniforms: Record<string, THREE_2.Uniform | undefined>;
2787
- /** 上一次的customShaderDefines*/
2788
- customShaderDefines: Record<string, any>;
2789
- /** 更新版本 */
2790
- syncModelVersion?: string;
2791
- /** 起始点 */
2792
- pano0: PBMParameters['pano0'];
2793
- /** 结束点 */
2794
- pano1: PBMParameters['pano1'];
2795
- /** 全景图混合程度 [0-1] */
2796
- progress: PBMParameters['progress'];
2797
- /** 全景图过度混合 */
2798
- transition: PBMParameters['transition'];
2799
- /** 楼层样式 */
2800
- floorStyle: PBMParameters['floorStyle'];
2801
- /** 楼层参数*/
2802
- shownFloorIndex: PBMParameters['shownFloorIndex'];
2803
- /** 亮度 */
2804
- brightness: PBMParameters['brightness'];
2805
- /** 对外模型裁切参数*/
2806
- clippers: PBMParameters['clippers'];
2807
- /** 着色样式*/
2808
- colorStyle: PBMParameters['colorStyle'];
2809
- /** 模型颜色*/
2810
- constantColor: PBMParameters['constantColor'];
2811
- /** 全景和点云/模型的混合程度*/
2812
- modelAlpha: PBMParameters['modelAlpha'];
2813
- /** 是否使用EDL*/
2814
- useEDL: PBMParameters['useEDL'];
2815
- /** 是否使用HQ*/
2816
- useHQWeight: PBMParameters['useHQWeight'];
2817
- /** 是否使用HQ_DEPTH_MASK*/
2818
- useHQDepth: PBMParameters['useHQDepth'];
2819
- /** 点云大小绘制方式*/
2820
- pointSize: PBMParameters['pointSize'];
2821
- /** 点云形状*/
2822
- pointShape: PBMParameters['pointShape'];
2823
- /** 点云基础缩放*/
2824
- pointScale: PBMParameters['pointScale'];
2825
- /** 点云背面绘制方式*/
2826
- pointBack: PBMParameters['pointBack'];
2827
- /** 点云像素最小值*/
2828
- pointMinPixel: PBMParameters['pointMinPixel'];
2829
- /** 点云像素最大值*/
2830
- pointMaxPixel: PBMParameters['pointMaxPixel'];
2831
- /** 高程彩色图*/
2832
- gradientTexture: PBMParameters['gradientTexture'];
2833
- /** 所属楼层*/
3154
+ export declare class PBMPointCloudMaterial extends PBMMaterial {
3155
+ readonly isPBMPointCloudMaterial: true;
3156
+ readonly isShaderMaterial: true;
3157
+ readonly shaderType: PBMPointCloudShaderType;
3158
+ vertexMarks: boolean;
3159
+ pointScale: number;
3160
+ pointMinPixel: number;
3161
+ pointMaxPixel: number;
3162
+ pointSize: PBMPointSize;
3163
+ pointShape: PBMPointShape;
3164
+ pointBack: PBMPointBack;
3165
+ modelAlpha: number;
3166
+ colorStyle: PBMColorStyle;
3167
+ constantColor: THREE_2.Vector3;
2834
3168
  floorIndex: number;
2835
- /** 饱HSV和度调整值*/
3169
+ shownFloorIndex: number;
3170
+ floorStyle: PBMFloorStyle;
3171
+ gradientTexture: THREE_2.Texture | null;
3172
+ brightness: number;
2836
3173
  colorSaturation: number;
2837
- /** HSV亮度调整值*/
2838
3174
  colorBrightness: number;
2839
- /** outline增益*/
2840
3175
  outlineGain: number;
2841
- /** distance增益*/
2842
3176
  distanceGain: number;
2843
- /** 半透明叠加渲染*/
2844
- useAddBlend: boolean;
2845
- constructor(parameters?: Partial<PBMParameters>);
2846
- onBeforeCompile(shader: THREE_2.Shader, renderer: THREE_2.WebGLRenderer): void;
2847
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model): void;
3177
+ useEDL: boolean;
3178
+ useHQWeight: boolean;
3179
+ useHQDepth: boolean;
3180
+ modelBoundingMin: THREE_2.Vector3;
3181
+ modelBoundingMax: THREE_2.Vector3;
3182
+ clippers: readonly PBMClipperParameter[];
3183
+ customShaders: readonly PBMCustomShader[];
3184
+ onBeforeRender?: (renderer: THREE_2.WebGLRenderer, scene: THREE_2.Scene, camera: THREE_2.Camera, geometry: THREE_2.BufferGeometry | THREE_2.Geometry, object: THREE_2.Object3D, group: THREE_2.Group) => void;
3185
+ constructor(parameters?: PBMPointCloudMaterialParameters);
2848
3186
  copy(source: PBMPointCloudMaterial): this;
3187
+ clone(): this;
3188
+ /**
3189
+ * @deprecated
3190
+ * 已经不需要再被调用了
3191
+ */
3192
+ refreshUniforms(): void;
3193
+ }
3194
+
3195
+ export declare interface PBMPointCloudMaterialParameters extends THREE_2.MaterialParameters {
3196
+ vertexMarks?: boolean;
3197
+ pointScale?: number;
3198
+ pointMinPixel?: number;
3199
+ pointMaxPixel?: number;
3200
+ pointSize?: PBMPointSize;
3201
+ pointShape?: PBMPointShape;
3202
+ pointBack?: PBMPointBack;
3203
+ modelAlpha?: number;
3204
+ colorStyle?: PBMColorStyle;
3205
+ constantColor?: THREE_2.Vector3;
3206
+ floorIndex?: number;
3207
+ shownFloorIndex?: number;
3208
+ floorStyle?: PBMFloorStyle;
3209
+ gradientTexture?: THREE_2.Texture | null;
3210
+ brightness?: number;
3211
+ colorSaturation?: number;
3212
+ colorBrightness?: number;
3213
+ outlineGain?: number;
3214
+ distanceGain?: number;
3215
+ useEDL?: boolean;
3216
+ useHQWeight?: boolean;
3217
+ useHQDepth?: boolean;
3218
+ modelBoundingMin?: THREE_2.Vector3;
3219
+ modelBoundingMax?: THREE_2.Vector3;
3220
+ clippers?: PBMClipperParameter[];
3221
+ customShaders?: PBMCustomShader[];
3222
+ }
3223
+
3224
+ export declare type PBMPointCloudShaderType = 'pointcloud';
3225
+
3226
+ export declare type PBMPointShape = 'SQUARE' | 'CIRCLE';
3227
+
3228
+ export declare type PBMPointSize = 'FIXED' | 'ATTENUATION';
3229
+
3230
+ export declare interface PBMRefinedScreen {
3231
+ projectionMatrix: THREE_2.Matrix4;
3232
+ matrixInverse: THREE_2.Matrix4;
3233
+ map: THREE_2.Texture | null;
3234
+ pano: number;
3235
+ opacity: number;
2849
3236
  }
2850
3237
 
2851
3238
  export declare class PBMSkinnedMesh extends THREE_2.SkinnedMesh<THREE_2.BufferGeometry, PBMMeshMaterial[]> {
2852
3239
  geometry: THREE_2.BufferGeometry;
2853
3240
  material: PBMMeshMaterial[];
2854
3241
  constructor(geometry: THREE_2.BufferGeometry, materials: PBMMeshMaterial[], useVertexTexture?: boolean);
2855
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model, tile?: Tile): void;
2856
3242
  }
2857
3243
 
3244
+ export declare type PBMTransition = 'BLACK' | 'SPREAD' | 'FADE';
3245
+
2858
3246
  /**
2859
3247
  * 相机位姿
2860
3248
  * @document ../../../guides/coordinate.md
@@ -2904,6 +3292,14 @@ export declare type RegionBoundingVolumeJson = {
2904
3292
  region: number[];
2905
3293
  };
2906
3294
 
3295
+ declare interface RendererInitArgs {
3296
+ renderer: THREE_2.WebGLRenderer;
3297
+ camera: Camera;
3298
+ scene: THREE_2.Scene;
3299
+ modelScene: ModelScene;
3300
+ enableLayeringRendering: boolean;
3301
+ }
3302
+
2907
3303
  export declare interface RenderEvent extends BaseEvent {
2908
3304
  needsRender: boolean;
2909
3305
  info: null | {
@@ -2921,10 +3317,16 @@ export declare interface RenderEvent extends BaseEvent {
2921
3317
  };
2922
3318
  }
2923
3319
 
3320
+ export declare interface ResolvedParameterValue extends ParameterValue {
3321
+ versions: string[];
3322
+ }
3323
+
2924
3324
  /** Five 场景*/
2925
3325
  export declare class Scene extends THREE_2.Scene {
3326
+ needsRender: boolean;
2926
3327
  add(...objects: AddableObject[]): this;
2927
3328
  remove(...objects: AddableObject[]): this;
3329
+ update(renderer: THREE_2.WebGLRenderer, camera: THREE_2.Camera): boolean;
2928
3330
  }
2929
3331
 
2930
3332
  /**
@@ -2945,6 +3347,17 @@ export declare interface Scissor {
2945
3347
  height: number;
2946
3348
  }
2947
3349
 
3350
+ declare type Shader = {
3351
+ uniforms?: {
3352
+ [name: string]: THREE_2.IUniform;
3353
+ };
3354
+ defines?: {
3355
+ [name: string]: boolean;
3356
+ };
3357
+ vertex?: string;
3358
+ fragment: string;
3359
+ };
3360
+
2948
3361
  export declare class SphereBoundingVolume implements BoundingVolume {
2949
3362
  type: "sphere";
2950
3363
  center: THREE_2.Vector3;
@@ -3115,22 +3528,6 @@ export declare class TextureLoader {
3115
3528
  timeout?: number;
3116
3529
  fetcher: Fetcher;
3117
3530
  }, onLoad: (response: NetworkResponse<THREE_2.CubeTexture, NetWorkMeta[]>) => void, onError: (error: Error) => void, onProgress: (percent: number) => void, renderer: THREE_2.WebGLRenderer): Promise<NetworkResponse<THREE_2.CubeTexture, NetWorkMeta[]>>;
3118
- loadTiledCubeTexture(sources: WorkCubeImage, tileSources: WorkTile[], options: {
3119
- tileMaxLevel?: number;
3120
- imageURL?: {
3121
- transform?: (source: string, options: ImageURLOptions) => string;
3122
- options?: ImageURLOptions;
3123
- };
3124
- format?: THREE_2.PixelFormat;
3125
- minFilter?: THREE_2.TextureFilter;
3126
- magFilter?: THREE_2.TextureFilter;
3127
- generateMipmaps?: boolean;
3128
- wrapS?: THREE_2.Wrapping;
3129
- wrapT?: THREE_2.Wrapping;
3130
- viaAjax?: boolean;
3131
- timeout?: number;
3132
- fetcher: Fetcher;
3133
- }, onLoad: (response: NetworkResponse<TileCubeTextureTarget, NetWorkMeta[]>) => void, onError: (error: Error) => void, onProgress: (percent: number) => void, renderer: THREE_2.WebGLRenderer): Promise<NetworkResponse<TileCubeTextureTarget, NetWorkMeta[]>>;
3134
3531
  }
3135
3532
 
3136
3533
  /**
@@ -3168,7 +3565,6 @@ export declare class Tile {
3168
3565
  content: {
3169
3566
  uri: string;
3170
3567
  group?: number;
3171
- boundingVolume?: BoundingVolume;
3172
3568
  data?: TileContentData;
3173
3569
  loadState: 'LOADING' | 'UNLOADED' | 'READY' | 'FAILED';
3174
3570
  loadStateUpdateTime: number;
@@ -3221,89 +3617,32 @@ export declare class Tile {
3221
3617
  get contentByteLength(): number;
3222
3618
  get contentMemoryUsage(): number;
3223
3619
  getScreenSpaceError(frameState: TilesetFrameState, distanceToCamera: number, useParentGeometricError: boolean): number;
3224
- getPriority(): number;
3225
- }
3226
-
3227
- export declare interface Tile3dLayerOptions {
3228
- /** 调试模式 */
3229
- debug?: 'root-bounding-volume' | 'selected-bounding-volume' | 'none';
3230
- /** 显示图层 */
3231
- showLayers?: boolean | string[];
3232
- /** 可观测区域, 相对于 local 系 */
3233
- viewerRequestVolume?: BoundingVolume | BoundingVolumeJson;
3234
- /** 模型显示最小细化层级 */
3235
- minLevelOfDetail?: number;
3236
- /** 模型显示最大细化层级 */
3237
- maxLevelOfDetail?: number;
3238
- /** 模型显示最小细化误差 */
3239
- minGeometricError?: number;
3240
- /** 模型显示最大细化误差 */
3241
- maxGeometricError?: number;
3242
- /** 模型越层级加载 */
3243
- skipLevelOfDetail?: boolean;
3244
- /** 模型是否最密 */
3245
- mostDetail?: boolean;
3246
- /** 模型加载不在视野中的兄弟节点 */
3247
- loadSiblings?: boolean;
3248
- /** 模型加载不在视野中的所有节点 */
3249
- loadAll?: boolean;
3250
- /** 模型最大内存缓存 */
3251
- maxMemoryUsage?: number;
3252
- /** 模型网络最大请求并发数 */
3253
- maxRequests?: number;
3254
- /** 模型网络请求顺序 */
3255
- requestOrder?: 'SCREEN_SPACE_ERROR' | 'SCREEN_LEVEL_VERTICAL' | 'SCREEN_VERTICAL';
3256
- /** 模型屏幕空间误差计算最大值 */
3257
- maxScreenSpaceError?: number;
3620
+ getPriority(frameState: TilesetFrameState): number;
3258
3621
  }
3259
3622
 
3260
3623
  export declare class Tile3DModel extends THREE_2.Object3D {
3261
- static DEFAULT_PANORAMA_MIN_GEOMETRIC_ERROR: number;
3262
- static DEFAULT_MIN_LEVEL_OF_DETAIL: number;
3263
- static DEFAULT_MAX_LEVEL_OF_DETAIL: number;
3264
- static DEFAULT_MIN_GEOMETRIC_ERROR: number;
3265
- static DEFAULT_MAX_GEOMETRIC_ERROR: number;
3266
- static DEFAULT_MAX_MEMORY_USAGE: number;
3267
- static DEFAULT_MAX_SCREEN_SPACE_ERROR: number;
3268
- static DEFAULT_SKIP_LEVEL_OF_DETAIL: boolean;
3269
- static DEFAULT_MOST_DETAIL: boolean;
3270
- static DEFAULT_LOAD_SIBLINGS: boolean;
3271
- static DEFAULT_LOAD_ALL: boolean;
3272
- static DEFAULT_MAX_REQUESTS: number;
3273
- static DEFAULT_REQUEST_ORDER: TileRequestOrder;
3274
- modelIndex: number;
3275
- modelsLoaded: any;
3276
- debug: 'root-bounding-volume' | 'selected-bounding-volume' | 'none';
3277
3624
  type: 'point_cloud' | 'mesh';
3625
+ parent: Model | null;
3626
+ /** meta 信息加载错误 */
3627
+ error?: Error | null;
3628
+ /** meta 信息加载错误 */
3629
+ onError?: (error: Error) => void;
3630
+ /** 更新帧次数 */
3631
+ frameNumber: number;
3632
+ parameter: Parameter;
3278
3633
  light: boolean;
3279
3634
  upAxis: string;
3280
- model: Model;
3281
- viewLayer?: ModelViewLayer;
3282
3635
  fetcher: Fetcher;
3283
3636
  search: string;
3284
3637
  groundHeight: number | null;
3285
- coordinateTransform: {
3286
- localToEnuMatrix: THREE_2.Matrix4;
3287
- enuToLocalMatrix: THREE_2.Matrix4;
3288
- enuToEcefMatrix: THREE_2.Matrix4;
3289
- ecefToEnuMatrix: THREE_2.Matrix4;
3290
- localToEcefMatrix: THREE_2.Matrix4;
3291
- ecefToLocalMatrix: THREE_2.Matrix4;
3292
- };
3638
+ enuToEcefMatrix: THREE_2.Matrix4;
3639
+ ecefToEnuMatrix: THREE_2.Matrix4;
3293
3640
  tileset: Tileset;
3294
- minLevelOfDetail: number;
3295
- maxLevelOfDetail: number;
3296
- maxGeometricError: number;
3297
- minGeometricError: number;
3298
- panoramaMinGeometricError: number;
3299
3641
  boundingBox: THREE_2.Box3;
3300
- needsRefined: boolean;
3642
+ autoRefine: boolean;
3301
3643
  refined: boolean;
3302
3644
  refineProgress: [number, number];
3303
3645
  loaded: boolean;
3304
- needsRender: boolean;
3305
- lastRenderHash: string;
3306
- cacheCameras: (THREE_2.PerspectiveCamera | Camera)[];
3307
3646
  private clearStencilObject;
3308
3647
  private disposed;
3309
3648
  private renderer?;
@@ -3311,7 +3650,9 @@ export declare class Tile3DModel extends THREE_2.Object3D {
3311
3650
  private backfaceObjects;
3312
3651
  private debugObjects;
3313
3652
  private tileObjects;
3314
- constructor(model: Model, tilesetHeader: TilesetHeader, options: Tile3DModelLoaderOptions);
3653
+ constructor(tilesetHeader: TilesetHeader, options: Tile3DModelLoaderOptions);
3654
+ get tiles(): Tile[];
3655
+ get trajectories(): Trajectory[];
3315
3656
  getRecommendProps(options?: {
3316
3657
  powerPreference?: 'high' | 'default';
3317
3658
  }): {
@@ -3320,27 +3661,34 @@ export declare class Tile3DModel extends THREE_2.Object3D {
3320
3661
  maxScreenSpaceError: number;
3321
3662
  maxMemoryUsage: number;
3322
3663
  };
3323
- getRenderHash(): string;
3324
- get maxMemoryUsage(): number;
3325
- set maxMemoryUsage(value: number);
3326
- get maxRequests(): number;
3327
- set maxRequests(value: number);
3328
- get requestOrder(): TileRequestOrder;
3329
- set requestOrder(value: TileRequestOrder);
3330
- get skipLevelOfDetail(): boolean;
3331
- set skipLevelOfDetail(value: boolean);
3332
- get mostDetail(): boolean;
3333
- set mostDetail(value: boolean);
3334
- get loadSiblings(): boolean;
3335
- set loadSiblings(value: boolean);
3336
- get loadAll(): boolean;
3337
- set loadAll(value: boolean);
3338
- get maxScreenSpaceError(): number;
3339
- set maxScreenSpaceError(value: number);
3340
- get currentMaxScreenSpaceError(): number;
3341
- get trajectories(): Trajectory[];
3664
+ loadContent(tile: Tile): Promise<void>;
3665
+ unloadContent(tile: Tile): Promise<void>;
3666
+ loadAllTilesets(): Promise<void>;
3667
+ loadTrajectory(trajectory: Trajectory): Promise<void>;
3668
+ unloadTrajectory(trajectory: Trajectory): Promise<void>;
3669
+ intersectRaycaster(raycaster: THREE_2.Raycaster, filterFloorIndex?: undefined | null | number, sortByDistance?: boolean, target?: Intersection[]): Intersection[];
3670
+ private cloneSkipBackfaceObject;
3671
+ update(renderer: THREE_2.WebGLRenderer, camera: Camera, modelScene: ModelScene, model: Model): boolean;
3672
+ dispose(): void;
3673
+ /**
3674
+ * @deprecated
3675
+ * use this.parent instead.
3676
+ */
3677
+ get model(): Model;
3678
+ /**
3679
+ * @deprecated
3680
+ * it's self
3681
+ */
3682
+ get scene(): this;
3683
+ /**
3684
+ * @deprecated
3685
+ * it's self
3686
+ */
3687
+ get viewLayer(): this;
3342
3688
  localToEnu(vector: THREE_2.Vector3): THREE_2.Vector3;
3343
3689
  enuToLocal(vector: THREE_2.Vector3): THREE_2.Vector3;
3690
+ enuToEcef(vector: THREE_2.Vector3): THREE_2.Vector3;
3691
+ ecefToEnu(vector: THREE_2.Vector3): THREE_2.Vector3;
3344
3692
  localToEcef(vector: THREE_2.Vector3): THREE_2.Vector3;
3345
3693
  ecefToLocal(vector: THREE_2.Vector3): THREE_2.Vector3;
3346
3694
  localToLla(vector: THREE_2.Vector3): THREE_2.Vector3;
@@ -3351,15 +3699,123 @@ export declare class Tile3DModel extends THREE_2.Object3D {
3351
3699
  ecefToWorld(vector: THREE_2.Vector3): THREE_2.Vector3;
3352
3700
  worldToLla(vector: THREE_2.Vector3): THREE_2.Vector3;
3353
3701
  llaToWorld(vector: THREE_2.Vector3): THREE_2.Vector3;
3354
- loadContent(tile: Tile): Promise<void>;
3355
- unloadContent(tile: Tile): Promise<void>;
3356
- loadAllTilesets(): Promise<void>;
3357
- loadTrajectory(trajectory: Trajectory): Promise<void>;
3358
- unloadTrajectory(trajectory: Trajectory): Promise<void>;
3359
- intersectRaycaster(raycaster: THREE_2.Raycaster, sortByDistance?: boolean, target?: Intersection[]): Intersection[];
3360
- private cloneSkipBackfaceObject;
3361
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, mode: Mode): void;
3362
- dispose(): void;
3702
+ /**
3703
+ * @deprecated
3704
+ * 使用 localToLla(new THREE.Vector()) 替代
3705
+ */
3706
+ get coordinates(): string;
3707
+ /**
3708
+ * @deprecated
3709
+ * 使用 coordinateTransform 替代
3710
+ */
3711
+ getTransformMatrix4(target?: THREE_2.Matrix4): THREE_2.Matrix4;
3712
+ /**
3713
+ * @deprecated
3714
+ * 使用 llaToWorld 替代
3715
+ */
3716
+ coordinatesToWorldPoint(coordinates: {
3717
+ longitude: number;
3718
+ latitude: number;
3719
+ altitude: number;
3720
+ }): THREE_2.Vector3;
3721
+ /**
3722
+ * @deprecated
3723
+ * 使用 llaToWorld 替代
3724
+ */
3725
+ worldPointToCoordinates(point: THREE_2.Vector3): {
3726
+ longitude: number;
3727
+ latitude: number;
3728
+ altitude: number;
3729
+ };
3730
+ /**
3731
+ * @deprecated
3732
+ * Use `.parameter.reset('brightness')` instead
3733
+ */
3734
+ resetBrightness(): void;
3735
+ /**
3736
+ * @deprecated
3737
+ * use `.parameter.tileDebug` `.parameter.set('tileDebug', tileDebug)` instend
3738
+ */
3739
+ get debug(): TileDebug;
3740
+ set debug(value: TileDebug);
3741
+ /**
3742
+ * @deprecated
3743
+ * use `.parameter.minLevelOfDetail` `.parameter.set('minLevelOfDetail', minLevelOfDetail)` instend
3744
+ */
3745
+ get minLevelOfDetail(): number;
3746
+ set minLevelOfDetail(value: number);
3747
+ /**
3748
+ * @deprecated
3749
+ * use `.parameter.maxLevelOfDetail` `.parameter.set('maxLevelOfDetail', maxLevelOfDetail)` instend
3750
+ */
3751
+ get maxLevelOfDetail(): number;
3752
+ set maxLevelOfDetail(value: number);
3753
+ /**
3754
+ * @deprecated
3755
+ * use `.parameter.minGeometricError` `.parameter.set('minGeometricError', minGeometricError)` instend
3756
+ */
3757
+ get minGeometricError(): number;
3758
+ set minGeometricError(value: number);
3759
+ /**
3760
+ * @deprecated
3761
+ * use `.parameter.maxGeometricError` `.parameter.set('maxGeometricError', maxGeometricError)` instend
3762
+ */
3763
+ get maxGeometricError(): number;
3764
+ set maxGeometricError(value: number);
3765
+ /**
3766
+ * @deprecated
3767
+ * use `.parameter.panoramaMinGeometricError` `.parameter.set('panoramaMinGeometricError', panoramaMinGeometricError)` instend
3768
+ */
3769
+ get panoramaMinGeometricError(): number;
3770
+ set panoramaMinGeometricError(value: number);
3771
+ /**
3772
+ * @deprecated
3773
+ * use `.parameter.skipLevelOfDetail` `.parameter.set('skipLevelOfDetail', skipLevelOfDetail)` instend
3774
+ */
3775
+ get skipLevelOfDetail(): boolean;
3776
+ set skipLevelOfDetail(value: boolean);
3777
+ /**
3778
+ * @deprecated
3779
+ * use `.parameter.mostDetail` `.parameter.set('mostDetail', mostDetail)` instend
3780
+ */
3781
+ get mostDetail(): boolean;
3782
+ set mostDetail(value: boolean);
3783
+ /**
3784
+ * @deprecated
3785
+ * use `.parameter.loadSiblings` `.parameter.set('loadSiblings', loadSiblings)` instend
3786
+ */
3787
+ get loadSiblings(): boolean;
3788
+ set loadSiblings(value: boolean);
3789
+ /**
3790
+ * @deprecated
3791
+ * use `.parameter.loadAll` `.parameter.set('loadAll', loadAll)` instend
3792
+ */
3793
+ get loadAll(): boolean;
3794
+ set loadAll(value: boolean);
3795
+ /**
3796
+ * @deprecated
3797
+ * use `.parameter.maxMemoryUsage` `.parameter.set('maxMemoryUsage', maxMemoryUsage)` instend
3798
+ */
3799
+ get maxMemoryUsage(): number;
3800
+ set maxMemoryUsage(value: number);
3801
+ /**
3802
+ * @deprecated
3803
+ * use `.parameter.maxRequests` `.parameter.set('maxRequests', maxRequests)` instend
3804
+ */
3805
+ get maxRequests(): number;
3806
+ set maxRequests(value: number);
3807
+ /**
3808
+ * @deprecated
3809
+ * use `.parameter.requestOrder` `.parameter.set('requestOrder', requestOrder)` instend
3810
+ */
3811
+ get requestOrder(): TileRequestOrder;
3812
+ set requestOrder(value: TileRequestOrder);
3813
+ /**
3814
+ * @deprecated
3815
+ * use `.parameter.maxScreenSpaceError` `.parameter.set('maxScreenSpaceError', maxScreenSpaceError)` instend
3816
+ */
3817
+ get maxScreenSpaceError(): number;
3818
+ set maxScreenSpaceError(value: number);
3363
3819
  }
3364
3820
 
3365
3821
  /** Advanced loader options */
@@ -3368,23 +3824,20 @@ export declare interface Tile3DModelLoaderOptions {
3368
3824
  light: boolean;
3369
3825
  type: 'point_cloud' | 'mesh';
3370
3826
  upAxis: string;
3371
- url: string;
3372
3827
  referer: string;
3373
3828
  fetcher: Fetcher;
3374
- groundHeight: number | null;
3375
- coordinateTransform: {
3376
- localToEnuMatrix: THREE_2.Matrix4;
3377
- enuToLocalMatrix: THREE_2.Matrix4;
3378
- enuToEcefMatrix: THREE_2.Matrix4;
3379
- ecefToEnuMatrix: THREE_2.Matrix4;
3380
- localToEcefMatrix: THREE_2.Matrix4;
3381
- ecefToLocalMatrix: THREE_2.Matrix4;
3382
- };
3383
3829
  search?: string;
3384
- onError?: (error: Error) => void;
3830
+ groundHeight: number | null;
3831
+ enuToEcefMatrix: THREE_2.Matrix4;
3832
+ ecefToEnuMatrix: THREE_2.Matrix4;
3833
+ error?: Error | null;
3385
3834
  }
3386
3835
 
3387
- export declare type Tile3dOptions = Tile3dLayerOptions | ((layer: WorkModelLayer) => Tile3dLayerOptions);
3836
+ export declare type Tile3dOptions = (Partial<ParameterTilesetValue> & {
3837
+ showLayers?: boolean | string[];
3838
+ }) | ((viewLayer: Tile3DModel, model: Model) => void | (Partial<ParameterTilesetValue> & {
3839
+ showLayers?: boolean | string[];
3840
+ }));
3388
3841
 
3389
3842
  export declare class TileCache {
3390
3843
  private options;
@@ -3406,7 +3859,7 @@ export declare type TileCacheOptions = {
3406
3859
  };
3407
3860
 
3408
3861
  export declare type TileContentData = {
3409
- type: ParsedResultType['type'];
3862
+ type: LoadResultType['type'];
3410
3863
  byteLength: number;
3411
3864
  memoryUsage: number;
3412
3865
  uri: string;
@@ -3423,52 +3876,12 @@ export declare interface TileCubeNode {
3423
3876
  children: TileCubeNode[];
3424
3877
  }
3425
3878
 
3426
- export declare class TileCubeTextureTarget {
3427
- private tileTree;
3428
- private tileSources;
3429
- private options;
3430
- private renderer;
3431
- static DEFAULT_MAX_REQUEST: number;
3432
- name: string;
3433
- needsRender: boolean;
3434
- baseLevel: number;
3435
- maxRequest: number;
3436
- private disposed;
3437
- private loadedCubeNodes;
3438
- private loadingCubeNodes;
3439
- private drawedCubeNodes;
3440
- private baseCubeTexture;
3441
- private _cubeRenderTarget;
3442
- private prepareToRender;
3443
- constructor(baseCubeTexture: THREE_2.CubeTexture, tileTree: TileCubeTree, tileSources: WorkTile[], options: {
3444
- textureSize: number;
3445
- textureLoader: TextureLoader;
3446
- imageURL?: {
3447
- transform?: (source: string, options: ImageURLOptions) => string;
3448
- options?: ImageURLOptions;
3449
- };
3450
- format?: THREE_2.PixelFormat;
3451
- minFilter?: THREE_2.TextureFilter;
3452
- magFilter?: THREE_2.TextureFilter;
3453
- generateMipmaps?: boolean;
3454
- wrapS?: THREE_2.Wrapping;
3455
- wrapT?: THREE_2.Wrapping;
3456
- timeout?: number;
3457
- fetcher: Fetcher;
3458
- }, renderer: THREE_2.WebGLRenderer);
3459
- get cubeRenderTarget(): THREE_2.WebGLCubeRenderTarget | null;
3460
- set cubeRenderTarget(cubeRenderTarget: THREE_2.WebGLCubeRenderTarget | null);
3461
- private requestTile;
3462
- update(frustum: THREE_2.Frustum, level: number): void;
3463
- get tilePending(): number;
3464
- get texture(): THREE_2.Texture;
3465
- dispose(): void;
3466
- }
3467
-
3468
3879
  export declare interface TileCubeTree {
3469
3880
  children: TileCubeNode[];
3470
3881
  }
3471
3882
 
3883
+ export declare type TileDebug = 'root-bounding-volume' | 'selected-bounding-volume' | 'none';
3884
+
3472
3885
  export declare interface TileHeader {
3473
3886
  content?: {
3474
3887
  uri?: string;
@@ -3486,14 +3899,15 @@ export declare interface TileHeader {
3486
3899
  }
3487
3900
 
3488
3901
  export declare class TileNode extends THREE_2.Object3D {
3489
- private contentObject;
3490
- private disposers;
3491
3902
  materials: THREE_2.Material[];
3492
3903
  pbmObjects: (PBMMesh | PBMSkinnedMesh | PBMPointCloud)[];
3904
+ private contentObject;
3905
+ private appearMotion;
3906
+ private disposers;
3493
3907
  constructor(name: string, contentObject: THREE_2.Object3D, disposer?: () => void);
3494
3908
  generateBvhTree(): Promise<this>;
3495
- intersectRaycaster(raycaster: THREE_2.Raycaster, sortByDistance?: boolean, target?: Intersection[]): Intersection[];
3496
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model, tile: Tile): void;
3909
+ intersectRaycaster(raycaster: THREE_2.Raycaster, filterFloorIndex?: undefined | null | number, sortByDistance?: boolean, target?: Intersection[]): Intersection[];
3910
+ update(renderer: THREE_2.WebGLRenderer, camera: Camera, modelScene: ModelScene, tile: Tile, parameterValue: ResolvedParameterValue): boolean;
3497
3911
  dispose(): void;
3498
3912
  clone(): this;
3499
3913
  }
@@ -3517,16 +3931,6 @@ export declare type TileRequestSchedulerOptions = {
3517
3931
  };
3518
3932
 
3519
3933
  export declare class Tileset {
3520
- static DEFAULT_MAX_MEMORY_USAGE: number;
3521
- static DEFAULT_MEMORY_OVERFLOW: number;
3522
- static DEFAULT_MEMORY_ADJUSTED_SCREEN_SPACE_ERROR: boolean;
3523
- static DEFAULT_MAX_SCREEN_SPACE_ERROR: number;
3524
- static DEFAULT_SKIP_LEVEL_OF_DETAIL: boolean;
3525
- static DEFAULT_MOST_DETAIL: boolean;
3526
- static DEFAULT_LOAD_SIBLINGS: boolean;
3527
- static DEFAULT_LOAD_ALL: boolean;
3528
- static DEFAULT_MAX_REQUESTS: number;
3529
- static DEFAULT_REQUEST_ORDER: TileRequestOrder;
3530
3934
  asset: {
3531
3935
  version: string;
3532
3936
  tilesetVersion: string;
@@ -3541,20 +3945,13 @@ export declare class Tileset {
3541
3945
  [key: string]: any;
3542
3946
  };
3543
3947
  id: string;
3544
- url: string;
3545
- referer: string;
3546
- hasMixedContent: boolean;
3547
3948
  frameNumber: number;
3548
- minLevelOfDetail: number;
3549
- maxLevelOfDetail: number;
3550
- minGeometricError: number;
3551
- maxGeometricError: number;
3552
- properties: Record<string, any>;
3949
+ hasMixedContent: boolean;
3950
+ properties: NonNullable<TilesetHeader['properties']>;
3553
3951
  options: TilesetOptions;
3554
3952
  root: Tile;
3555
3953
  rootMeta: NonNullable<TilesetHeader['rootMeta']>;
3556
3954
  transform: THREE_2.Matrix4;
3557
- transformIsIdentity: boolean;
3558
3955
  geometricError: number;
3559
3956
  cache: TileCache;
3560
3957
  currentMaxScreenSpaceError: number;
@@ -3563,16 +3960,6 @@ export declare class Tileset {
3563
3960
  private normalTraverser;
3564
3961
  private skipTraverser;
3565
3962
  private mostDetailTraverser;
3566
- maxMemoryUsage: number;
3567
- memoryOverflow: number;
3568
- memoryAdjustedScreenSpaceError: boolean;
3569
- maxScreenSpaceError: number;
3570
- skipLevelOfDetail: boolean;
3571
- mostDetail: boolean;
3572
- loadSiblings: boolean;
3573
- loadAll: boolean;
3574
- maxRequests: number;
3575
- tileRequestOrder: TileRequestOrder;
3576
3963
  loadedTiles: Set<Tile>;
3577
3964
  needsRefinedTiles: Set<Tile>;
3578
3965
  requestedTiles: Tile[];
@@ -3582,23 +3969,24 @@ export declare class Tileset {
3582
3969
  selectedTrajectories: Trajectory[];
3583
3970
  pointLength: number;
3584
3971
  floorLength: number;
3585
- constructor(id: string, header: TilesetHeader, options: TilesetOptions);
3972
+ constructor(header: TilesetHeader, options: TilesetOptions);
3586
3973
  private adjustScreenSpaceError;
3587
- private get traverser();
3974
+ private getTraverser;
3588
3975
  /** Release resources */
3589
3976
  reset(): void;
3590
3977
  update(frameState: TilesetFrameState, cacheFrameStates?: TilesetFrameState[]): void;
3591
3978
  }
3592
3979
 
3593
3980
  export declare type TilesetFrameState = {
3981
+ debug: TileDebug;
3594
3982
  frameNumber: number;
3595
3983
  time: number;
3596
3984
  camera: {
3597
3985
  type: "PerspectiveCamera" | "OrthographicCamera";
3598
- position: THREE.Vector3;
3599
- direction: THREE.Vector3;
3600
- up: THREE.Vector3;
3601
- projectionMatrix: THREE.Matrix4;
3986
+ position: THREE_2.Vector3;
3987
+ direction: THREE_2.Vector3;
3988
+ up: THREE_2.Vector3;
3989
+ projectionMatrix: THREE_2.Matrix4;
3602
3990
  visible: boolean;
3603
3991
  refine: boolean;
3604
3992
  };
@@ -3610,9 +3998,20 @@ export declare type TilesetFrameState = {
3610
3998
  maxLevelOfDetail: number;
3611
3999
  minGeometricError: number;
3612
4000
  maxGeometricError: number;
4001
+ skipLevelOfDetail: boolean;
4002
+ mostDetail: boolean;
4003
+ loadSiblings: boolean;
4004
+ loadAll: boolean;
4005
+ maxRequests: number;
4006
+ requestOrder: TileRequestOrder;
4007
+ maxScreenSpaceError: number;
4008
+ memoryAdjustedOverflow: number;
4009
+ memoryAdjustedScreenSpaceError: boolean;
4010
+ maxMemoryUsage: number;
3613
4011
  };
3614
4012
 
3615
4013
  export declare interface TilesetHeader {
4014
+ tilesetUrl: string;
3616
4015
  asset: {
3617
4016
  version: string;
3618
4017
  tilesetVersion?: string;
@@ -3635,7 +4034,12 @@ export declare interface TilesetHeader {
3635
4034
  * @deprecated
3636
4035
  * 老数据,记录层高。现在记录在 tile 的 extra 中
3637
4036
  */
3638
- properties?: Record<string, any>;
4037
+ properties?: {
4038
+ floorInfo?: {
4039
+ ground: number;
4040
+ height: number;
4041
+ }[];
4042
+ };
3639
4043
  geometricError: number;
3640
4044
  root: TileHeader;
3641
4045
  rootMeta?: {
@@ -3691,7 +4095,7 @@ export declare interface TopviewControllerCustomInitArgs extends Omit<FloorplanC
3691
4095
  }
3692
4096
 
3693
4097
  export declare class Trajectory {
3694
- index: number;
4098
+ id: string;
3695
4099
  name: string;
3696
4100
  tileset: Tileset;
3697
4101
  transform: THREE_2.Matrix4;
@@ -3705,7 +4109,7 @@ export declare class Trajectory {
3705
4109
  byteLength: number;
3706
4110
  memoryUsage: number;
3707
4111
  };
3708
- constructor(index: number, header: TrajectoryHeader, tileset: Tileset);
4112
+ constructor(id: string, header: TrajectoryHeader, tileset: Tileset);
3709
4113
  }
3710
4114
 
3711
4115
  export declare type TrajectoryContentData = {
@@ -3729,17 +4133,11 @@ export declare class TrajectoryNode extends THREE_2.Object3D {
3729
4133
  contentObject: THREE_2.Object3D;
3730
4134
  private disposers;
3731
4135
  constructor(name: string, contentObject: THREE_2.Object3D, disposer?: () => void);
3732
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model): void;
4136
+ update(renderer: THREE_2.WebGLRenderer, camera: Camera, modelScene: ModelScene, trajectory: Trajectory, parameterValue: ParameterValue): boolean;
3733
4137
  dispose(): void;
3734
4138
  clone(): this;
3735
4139
  }
3736
4140
 
3737
- export declare interface VertexShaderChunks {
3738
- mainBefore: string;
3739
- mainStart: string;
3740
- mainEnd: string;
3741
- }
3742
-
3743
4141
  export declare enum VolumePlaneIntersect {
3744
4142
  Outside = -1,
3745
4143
  Intersecting = 0,
@@ -3791,6 +4189,8 @@ export declare class Work {
3791
4189
  model?: WorkModel;
3792
4190
  /** 全景点位信息 */
3793
4191
  observers: WorkObserver[];
4192
+ /** 全景点位包围盒 */
4193
+ observerBox: THREE_2.Box3;
3794
4194
  /** 数据签发人 */
3795
4195
  issuer: string;
3796
4196
  /** 位姿修正 */
@@ -3835,16 +4235,12 @@ export declare interface WorkCubeImage {
3835
4235
  front: string;
3836
4236
  /** 全景图 back */
3837
4237
  back: string;
3838
- /** 分辨率表 */
3839
- sizeList?: number[];
3840
4238
  }
3841
4239
 
3842
4240
  /** 全景图 */
3843
4241
  export declare interface WorkImage extends WorkCubeImage {
3844
- /** 光照强度图 */
3845
- luminance?: WorkCubeImage & {
3846
- tiles?: WorkTile[];
3847
- };
4242
+ /** 分辨率表 */
4243
+ sizeList?: number[];
3848
4244
  /** 瓦片信息 */
3849
4245
  tiles?: WorkTile[];
3850
4246
  }
@@ -3929,14 +4325,25 @@ export declare interface WorkObserver {
3929
4325
  position: THREE_2.Vector3;
3930
4326
  /** 点位和模型的旋转对齐关系四元数 */
3931
4327
  quaternion: THREE_2.Quaternion;
4328
+ /** 点位和模型的旋转对齐关系矩阵 */
4329
+ matrix: THREE_2.Matrix4;
4330
+ /** 点位和模型的地面坐标 */
4331
+ getResolvedStandingPosition(target: THREE_2.Vector3): typeof target;
4332
+ /** 点位和模型的观察点坐标 */
4333
+ getResolvedPosition(target: THREE_2.Vector3): typeof target;
4334
+ /** 点位和模型的旋转对齐关系四元数 */
4335
+ getResolvedQuaternion(target: THREE_2.Quaternion): typeof target;
4336
+ /** 点位和模型的旋转对齐关系矩阵 */
4337
+ getResolvedMatrix(target: THREE_2.Matrix4): typeof target;
3932
4338
  }
3933
4339
 
3934
- export declare interface WorkResolvedObserver extends WorkObserver {
4340
+ export declare interface WorkResolvedObserver extends Omit<WorkObserver, 'getResolvedStandingPosition' | 'getResolvedPosition' | 'getResolvedQuaternion' | 'getResolvedMatrix'> {
3935
4341
  isResolved: true;
3936
4342
  }
3937
4343
 
3938
4344
  export declare type Works = ReadonlyArray<Work> & {
3939
4345
  resolvedObservers: WorkResolvedObserver[];
4346
+ resolvedObserverBox: THREE_2.Box3;
3940
4347
  initial: WorkInitial;
3941
4348
  getWork(workCode: string): Work | undefined;
3942
4349
  getResolvedObserver(pano: PanoId | Pano | number): WorkResolvedObserver | undefined;
@@ -3950,16 +4357,13 @@ export declare interface WorksEvent extends BaseEvent {
3950
4357
  userAction: boolean;
3951
4358
  }
3952
4359
 
3953
- export declare interface WorkTile {
4360
+ export declare interface WorkTile extends WorkCubeImage {
4361
+ /** 层级 */
3954
4362
  level: number;
4363
+ /** 尺寸 */
3955
4364
  size: number;
4365
+ /** 缩放比例 */
3956
4366
  scale: number;
3957
- up: string;
3958
- down: string;
3959
- right: string;
3960
- left: string;
3961
- front: string;
3962
- back: string;
3963
4367
  }
3964
4368
 
3965
4369
  /** 全景视频贴片 */