@realsee/five 6.0.0-alpha.6 → 6.0.0-alpha.62

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 (180) hide show
  1. package/docs/assets/search.js +1 -1
  2. package/docs/classes/five.AnimationFrameLoop.html +1 -1
  3. package/docs/classes/five.BoxBoundingVolume.html +1 -1
  4. package/docs/classes/five.Camera.html +6 -6
  5. package/docs/classes/five.CullingVolume.html +1 -1
  6. package/docs/classes/five.Fetcher.html +1 -0
  7. package/docs/classes/five.Five.html +70 -69
  8. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  9. package/docs/classes/five.IntersectMesh.html +1 -1
  10. package/docs/classes/five.Model.html +32 -22
  11. package/docs/classes/five.NetworkAbortError.html +1 -0
  12. package/docs/classes/five.NetworkFirbiddenError.html +1 -0
  13. package/docs/classes/five.NetworkResponseError.html +1 -0
  14. package/docs/classes/five.NetworkSubscribe.html +1 -1
  15. package/docs/classes/five.NetworkTimeoutError.html +1 -0
  16. package/docs/classes/five.PBMContainer.html +5 -7
  17. package/docs/classes/five.PBMGroup.html +2 -2
  18. package/docs/classes/five.PBMMesh.html +2 -4
  19. package/docs/classes/five.PBMMeshMaterial.html +31 -29
  20. package/docs/classes/five.PanoCircleMesh.html +1 -1
  21. package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
  22. package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
  23. package/docs/classes/five.RegionBoundingVolume.html +1 -1
  24. package/docs/classes/five.RequestScheduler.html +1 -1
  25. package/docs/classes/five.Scene.html +1 -1
  26. package/docs/classes/five.SphereBoundingVolume.html +1 -1
  27. package/docs/classes/five.Subscribe.html +1 -1
  28. package/docs/classes/five.TextureLoader.html +1 -1
  29. package/docs/classes/five.Tile.html +1 -1
  30. package/docs/classes/five.Tile3DModel.html +1 -1
  31. package/docs/classes/five.TileCubeTextureTarget.html +1 -1
  32. package/docs/classes/five.TileNode.html +1 -1
  33. package/docs/classes/five.Tileset.html +3 -3
  34. package/docs/classes/five.TilesetCache.html +1 -1
  35. package/docs/classes/five.TilesetTraverser.html +1 -1
  36. package/docs/classes/five.Work.html +12 -12
  37. package/docs/classes/five.XRButton.html +1 -1
  38. package/docs/classes/gltf_loader.DDSLoader.html +1 -1
  39. package/docs/classes/gltf_loader.DRACOLoader.html +1 -1
  40. package/docs/classes/gltf_loader.GLTFLoader.html +1 -1
  41. package/docs/classes/gltf_loader.GLTFObject.html +1 -1
  42. package/docs/classes/gltf_loader.GLTFParser.html +1 -1
  43. package/docs/classes/gltf_loader.THREEGLTFLoader.html +1 -1
  44. package/docs/classes/line.Line.html +1 -1
  45. package/docs/classes/line.LineGeometry.html +1 -1
  46. package/docs/classes/line.LineMaterial.html +1 -1
  47. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  48. package/docs/classes/line.THREE_Line2.html +1 -1
  49. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  50. package/docs/classes/react.Store.html +1 -1
  51. package/docs/classes/sticker.Sticker.html +1 -1
  52. package/docs/classes/vfx.Airflow.html +1 -1
  53. package/docs/classes/vfx.Flame.html +1 -1
  54. package/docs/classes/vfx.Particle.html +1 -1
  55. package/docs/classes/vfx.SpotLight.html +1 -1
  56. package/docs/enums/five.VolumePlaneIntersect.html +1 -1
  57. package/docs/index.html +1 -1
  58. package/docs/interfaces/five.AddableObject.html +1 -1
  59. package/docs/interfaces/five.AjaxOptions.html +11 -0
  60. package/docs/interfaces/five.AnimationFrame.html +1 -1
  61. package/docs/interfaces/five.BaseEvent.html +1 -1
  62. package/docs/interfaces/five.BoundingVolume.html +1 -1
  63. package/docs/interfaces/five.CameraPose.html +1 -1
  64. package/docs/interfaces/five.ClipperParameter.html +1 -1
  65. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +11 -11
  66. package/docs/interfaces/five.EventCallback.html +99 -85
  67. package/docs/interfaces/five.FiveInitArgs.html +31 -31
  68. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +10 -8
  69. package/docs/interfaces/five.GestureEvent.html +1 -1
  70. package/docs/interfaces/five.ImageOptions.html +1 -1
  71. package/docs/interfaces/five.ImageURLMappings.html +1 -1
  72. package/docs/interfaces/five.ImageURLOptions.html +1 -1
  73. package/docs/interfaces/five.IntersectEvent.html +1 -1
  74. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  75. package/docs/interfaces/five.Intersection.html +3 -7
  76. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +8 -6
  77. package/docs/interfaces/five.ModeChangeEvent.html +1 -1
  78. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +8 -8
  79. package/docs/interfaces/five.ModelEvent.html +1 -1
  80. package/docs/interfaces/five.ModelLodOptions.html +1 -1
  81. package/docs/interfaces/five.ModelsEvent.html +1 -1
  82. package/docs/interfaces/five.MotionKeyframe.html +1 -1
  83. package/docs/interfaces/five.MovePanoOptions.html +1 -1
  84. package/docs/interfaces/five.NetworkOptions.html +1 -1
  85. package/docs/interfaces/five.NetworkResourceEvent.html +1 -1
  86. package/docs/interfaces/five.ObjectEvent.html +1 -1
  87. package/docs/interfaces/five.PBMPanoPicture.html +3 -3
  88. package/docs/interfaces/five.PBMParameters.html +25 -25
  89. package/docs/interfaces/five.PanoCircleMeshCustomOptions.html +1 -1
  90. package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
  91. package/docs/interfaces/five.PanoCircleMeshOptions.html +1 -1
  92. package/docs/interfaces/five.PanoCircleMeshSolidOptions.html +1 -1
  93. package/docs/interfaces/five.PanoEvent.html +1 -1
  94. package/docs/interfaces/five.PanoTextureEvent.html +1 -1
  95. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +13 -13
  96. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +8 -8
  97. package/docs/interfaces/five.Pose.html +1 -1
  98. package/docs/interfaces/five.RenderEvent.html +1 -1
  99. package/docs/interfaces/five.Scissor.html +1 -1
  100. package/docs/interfaces/five.State.html +1 -1
  101. package/docs/interfaces/five.StateEvent.html +1 -1
  102. package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -1
  103. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -1
  104. package/docs/interfaces/five.SubscribeMixinType.off.html +1 -1
  105. package/docs/interfaces/five.SubscribeMixinType.on.html +1 -1
  106. package/docs/interfaces/five.SubscribeMixinType.once.html +1 -1
  107. package/docs/interfaces/five.SubscribeMixinType.waitUnitl.html +1 -1
  108. package/docs/interfaces/five.TextureOptions.html +1 -1
  109. package/docs/interfaces/five.Tile3DModelLoaderOptions.html +2 -2
  110. package/docs/interfaces/five.TileCubeNode.html +1 -1
  111. package/docs/interfaces/five.TileCubeTree.html +1 -1
  112. package/docs/interfaces/five.TileHeader.html +1 -1
  113. package/docs/interfaces/five.TilesetHeader.html +1 -1
  114. package/docs/interfaces/five.TilesetOptions.html +1 -1
  115. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +4 -4
  116. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +11 -11
  117. package/docs/interfaces/five.WebXRAxesParams.html +1 -0
  118. package/docs/interfaces/five.WebXRControllerParams.html +1 -1
  119. package/docs/interfaces/five.WorkCubeImage.html +6 -6
  120. package/docs/interfaces/five.WorkImage.html +10 -10
  121. package/docs/interfaces/five.WorkInitial.html +9 -9
  122. package/docs/interfaces/five.WorkModel.html +6 -6
  123. package/docs/interfaces/five.WorkObserver.html +22 -20
  124. package/docs/interfaces/five.WorkOptions.html +10 -8
  125. package/docs/interfaces/five.WorkResolvedObserver.html +21 -19
  126. package/docs/interfaces/five.WorkTile.html +1 -1
  127. package/docs/interfaces/five.WorkVideo.html +4 -4
  128. package/docs/interfaces/five.WorksEvent.html +1 -1
  129. package/docs/interfaces/five.XRControllerEvent.html +1 -0
  130. package/docs/interfaces/five.XRGestureEvent.html +1 -1
  131. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +12 -12
  132. package/docs/interfaces/five.XRSessionEvent.html +1 -1
  133. package/docs/interfaces/gltf_loader.DDS.html +1 -1
  134. package/docs/interfaces/gltf_loader.GLTF.html +1 -1
  135. package/docs/interfaces/gltf_loader.GLTFReference.html +1 -1
  136. package/docs/interfaces/gltf_loader.THREEGLTF.html +1 -1
  137. package/docs/interfaces/react.FiveActionReactCallbacks.html +1 -1
  138. package/docs/interfaces/react.FiveInjectionTypes.html +8 -8
  139. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +1 -1
  140. package/docs/interfaces/sticker.IntersectionLike.html +1 -1
  141. package/docs/interfaces/vfx.ParticleArgs.html +1 -1
  142. package/docs/interfaces/vfx.ParticleTweenKeyframe.html +1 -1
  143. package/docs/interfaces/vue.FiveActionVueCallbacks.html +1 -1
  144. package/docs/modules/five.SubscribeMixinType.html +1 -1
  145. package/docs/modules/five.html +86 -70
  146. package/docs/modules/gltf_loader.html +1 -1
  147. package/docs/modules/line.html +1 -1
  148. package/docs/modules/react.html +1 -1
  149. package/docs/modules/sticker.html +1 -1
  150. package/docs/modules/vfx.html +1 -1
  151. package/docs/modules/vue.html +1 -1
  152. package/docs/modules.html +1 -1
  153. package/five/index.d.ts +364 -239
  154. package/five/index.js +7 -7
  155. package/gltf-loader/index.js +3 -3
  156. package/line/index.js +3 -3
  157. package/package.json +1 -1
  158. package/react/index.js +3 -3
  159. package/sticker/index.js +3 -3
  160. package/umd/five-gltf-loader.js +1 -1
  161. package/umd/five-line.js +1 -1
  162. package/umd/five-react.js +1 -1
  163. package/umd/five-sticker.js +1 -1
  164. package/umd/five-vue.js +1 -1
  165. package/umd/five.js +1 -1
  166. package/vfx/index.js +2 -2
  167. package/vue/index.js +3 -3
  168. package/docs/classes/five.BVH.html +0 -10
  169. package/docs/classes/five.BVHIntersect.html +0 -1
  170. package/docs/classes/five.BVHNode.html +0 -7
  171. package/docs/classes/five.BVHVector3.html +0 -1
  172. package/docs/classes/five.Clipper.html +0 -1
  173. package/docs/classes/five.PBMMaterialReferenceCache.html +0 -1
  174. package/docs/enums/five.PBMPointColorType.html +0 -1
  175. package/docs/enums/five.PBMPointShapeType.html +0 -1
  176. package/docs/enums/five.PBMPointSizeType.html +0 -1
  177. package/umd/five-gltf-loader.js.LICENSE.txt +0 -14
  178. package/umd/five-line.js.LICENSE.txt +0 -14
  179. package/umd/five-react.js.LICENSE.txt +0 -14
  180. package/umd/five-sticker.js.LICENSE.txt +0 -14
package/five/index.d.ts CHANGED
@@ -13,6 +13,15 @@ export declare interface AddableObject extends THREE_2.Object3D {
13
13
  setTime?(time: number): void;
14
14
  }
15
15
 
16
+ export declare interface AjaxOptions<T extends AjaxResponseType = AjaxResponseType> extends NetworkOptions {
17
+ /** 数据返回类型 */
18
+ responseType?: T;
19
+ }
20
+
21
+ export declare type AjaxResponseType = "arraybuffer" | "blob" | "text";
22
+
23
+ export declare type AjaxResponseTypeMapping<K extends AjaxResponseType> = K extends "arraybuffer" ? ArrayBuffer : K extends "blob" ? Blob : K extends "text" ? string : never;
24
+
16
25
  export declare interface AnimationFrame {
17
26
  callback: (time: number, deltaTime: number, ...args: any[]) => void;
18
27
  once: boolean;
@@ -64,7 +73,7 @@ export declare interface BoundingVolume {
64
73
  distanceSquaredTo(point: THREE_2.Vector3): number;
65
74
  distanceTo(point: THREE_2.Vector3): number;
66
75
  intersectPlane(plane: THREE_2.Plane): VolumePlaneIntersect;
67
- intersectRay(ray: THREE_2.Ray): boolean;
76
+ intersectRay(ray: THREE_2.Ray, far?: number): boolean;
68
77
  clone(): BoundingVolume;
69
78
  copy(boundingVolume: this): this;
70
79
  fromJson(json: any): this;
@@ -90,70 +99,13 @@ export declare class BoxBoundingVolume implements BoundingVolume {
90
99
  getBoundingBox(target: THREE_2.Box3): THREE_2.Box3;
91
100
  toGeometry(): THREE_2.BufferGeometry;
92
101
  intersectPlane(plane: THREE_2.Plane): VolumePlaneIntersect;
93
- intersectRay(ray: THREE_2.Ray): boolean;
102
+ intersectRay(ray: THREE_2.Ray, far?: number): boolean;
94
103
  }
95
104
 
96
105
  export declare type BoxBoundingVolumeJson = {
97
106
  box: number[];
98
107
  };
99
108
 
100
- export declare class BVH {
101
- trianglesArray?: Float32Array;
102
- offsetArray?: Uint32Array;
103
- rootNode?: BVHNode;
104
- create(trianglesArray: Float32Array): this;
105
- splitNode(maxTrianglesPerNode: number): this;
106
- /**
107
- * 计算射线与三角形的碰撞
108
- * @param rayOrigin - 射线的原点坐标
109
- * @param rayDirection - 设想的方向向量
110
- * @param backfaceCulling - 是否背面剔除
111
- * @return 碰撞焦点数组
112
- */
113
- intersectRay(rayOrigin: BVHVector3, rayDirection: BVHVector3, backfaceCulling: boolean): BVHIntersect[];
114
- trianglesInSphere(center: BVHVector3, radius: number): Float32Array;
115
- dispose(): void;
116
- }
117
-
118
- export declare class BVHIntersect {
119
- triangle: [BVHVector3, BVHVector3, BVHVector3];
120
- intersectionPoint: BVHVector3;
121
- constructor(triangle: [BVHVector3, BVHVector3, BVHVector3], intersectionPoint: BVHVector3);
122
- }
123
-
124
- /**
125
- * A node in the BVH structure
126
- * @param extents - the min coords of this node's bounding box
127
- * @param startIndex - an index in the bbox array, where the first element of this node is located
128
- * @param endIndex - an index in the bbox array, where the last of this node is located, plus 1 (meaning that its non-inclusive).
129
- * @param level - distance of this node from the root for the bvh tree. root node has level=0, its children have level=1 etc.
130
- */
131
- export declare class BVHNode {
132
- extents: ArrayLike<number>;
133
- startIndex: number;
134
- endIndex: number;
135
- node0?: BVHNode;
136
- node1?: BVHNode;
137
- constructor(extents: ArrayLike<number>, startIndex: number, endIndex: number);
138
- }
139
-
140
- export declare class BVHVector3 {
141
- x: number;
142
- y: number;
143
- z: number;
144
- constructor(x: number, y: number, z: number);
145
- copy(v: BVHVector3): this;
146
- set(x: number, y: number, z: number): this;
147
- fromArray(array: number[], firstElementPos?: number): this;
148
- add(v: BVHVector3): this;
149
- multiplyScalar(scalar: number): this;
150
- subVectors(a: BVHVector3, b: BVHVector3): this;
151
- dot(v: BVHVector3): number;
152
- cross(v: BVHVector3): this;
153
- crossVectors(a: BVHVector3, b: BVHVector3): this;
154
- clone(): BVHVector3;
155
- }
156
-
157
109
  /** Five 相机 */
158
110
  export declare class Camera extends THREE_2.Camera {
159
111
  fov: number;
@@ -161,14 +113,16 @@ export declare class Camera extends THREE_2.Camera {
161
113
  near: number;
162
114
  far: number;
163
115
  perspToOrtho: THREE_2.Vector2;
164
- orthoDistance: number;
116
+ screenHeight: number;
117
+ pixelRatio: number;
165
118
  /** 相机姿态 */
166
119
  pose: CameraPose;
167
120
  private perspectiveCamera;
168
121
  private orthographicCamera;
169
122
  needsRender: boolean;
170
123
  private lastValues;
171
- constructor(fov: number, aspect?: number, near?: number, far?: number, perspToOrtho?: THREE_2.Vector2, orthoDistance?: number);
124
+ constructor(fov: number, aspect?: number, near?: number, far?: number, perspToOrtho?: THREE_2.Vector2, screenHeight?: number, pixelRatio?: number);
125
+ get orthoDistance(): number;
172
126
  get zoom(): number;
173
127
  get top(): number;
174
128
  get bottom(): number;
@@ -203,17 +157,6 @@ export declare interface CameraPose {
203
157
  offset: THREE_2.Vector3;
204
158
  }
205
159
 
206
- export declare class Clipper {
207
- numPlanes: number;
208
- clipperPlanes: Float32Array | null;
209
- clipperFloors: number[] | null;
210
- private static sharedInstance?;
211
- static get shared(): Clipper;
212
- constructor();
213
- update(clipperParameters: ClipperParameter[], camera: THREE_2.Camera): void;
214
- private projectPlanes;
215
- }
216
-
217
160
  export declare interface ClipperParameter {
218
161
  clippingBoxMatrix: THREE_2.Matrix4;
219
162
  floorIndex?: number;
@@ -284,10 +227,26 @@ export declare type ControllerEventTypes = {
284
227
  "xr.session.start"(event: XRSessionEvent_2): void;
285
228
  /** XR 手势(按钮) */
286
229
  "xr.gesture.tap"(event: XRGestureEvent): void;
230
+ /** XR 手势(按钮) */
231
+ "xr.gesture.press"(event: XRGestureEvent): void;
232
+ /** XR 手势(按钮) */
233
+ "xr.gesture.buttonUp"(event: XRGestureEvent): void;
234
+ /** XR 手势(按钮) */
235
+ "xr.gesture.buttonDown"(event: XRGestureEvent): void;
236
+ /** XR手柄更新*/
237
+ "xr.controller.update"(event: XRControllerEvent): void;
287
238
  /** 抛出错误 */
288
239
  "error"(error: Error): void;
289
240
  };
290
241
 
242
+ export declare type CoordinatesSystemTransformer = {
243
+ name: string;
244
+ transformToWGS84: (xyz: THREE.Vector3) => THREE.Matrix4 | Promise<THREE.Matrix4>;
245
+ } | {
246
+ name: string;
247
+ transformToUpAxisZ: (xyz: THREE.Vector3) => THREE.Matrix4 | Promise<THREE.Matrix4>;
248
+ };
249
+
291
250
  export declare class CullingVolume {
292
251
  static get MASK_OUTSIDE(): number;
293
252
  static get MASK_INSIDE(): number;
@@ -295,6 +254,7 @@ export declare class CullingVolume {
295
254
  planes: THREE_2.Plane[];
296
255
  constructor(planes?: THREE_2.Plane[]);
297
256
  setFromFrustum(frustum: THREE_2.Frustum): this;
257
+ setFromCamera(camera: THREE_2.Camera): this;
298
258
  computeVisibility(boundingVolume: BoundingVolume): VolumePlaneIntersect;
299
259
  computeVisibilityWithPlaneMask(boundingVolume: BoundingVolume, parentPlaneMask: number): number;
300
260
  }
@@ -307,6 +267,8 @@ export declare class CullingVolume {
307
267
  */
308
268
  export declare function defaultImageURLTransform(source: string, options: ImageURLOptions): string;
309
269
 
270
+ export declare const defaultPbmParameters: PBMParameters;
271
+
310
272
  export declare interface DepthPanoramaControllerCustomInitArgs extends PanoramaLikeControllerCustomInitArgs {
311
273
  /** 最远可移动观察点距离 */
312
274
  maxAccessibleDistance?: number;
@@ -363,6 +325,8 @@ export declare type EventTypes = Pick<ControllerEventTypes, typeof PROXY_CONTROL
363
325
  "model.changeShownFloor"(event: ModelEvent): void;
364
326
  /** 模型加载完成 */
365
327
  "models.load"(event: ModelsEvent): void;
328
+ /** 模型细化完成 */
329
+ "models.refined"(event: ModelsEvent): void;
366
330
  /** 渲染前 */
367
331
  "render.prepare"(event: RenderEvent): void;
368
332
  /** 渲染后 */
@@ -381,6 +345,14 @@ export declare type EventTypes = Pick<ControllerEventTypes, typeof PROXY_CONTROL
381
345
  "dispose"(): void;
382
346
  };
383
347
 
348
+ export declare class Fetcher {
349
+ private options;
350
+ constructor(options?: NetworkOptions);
351
+ ajax<T extends AjaxResponseType = "text">(source: string, options?: AjaxOptions<T>, onLoad?: NetworkSuccessCallback<AjaxResponseTypeMapping<T>>, onError?: NetworkErrorCallback, onProgress?: NetworkProgressCallback): Promise<NetworkResponse<AjaxResponseTypeMapping<T>>>;
352
+ loadImage<T extends HTMLImageElement = HTMLImageElement>(source: string, options?: NetworkOptions, onLoad?: NetworkSuccessCallback, onError?: NetworkErrorCallback, onProgress?: NetworkProgressCallback, target?: T): Promise<NetworkResponse<T>>;
353
+ preload(source: string, options?: NetworkOptions): Promise<void>;
354
+ }
355
+
384
356
  /**
385
357
  * 如视 VR Web展示器
386
358
  *
@@ -398,6 +370,8 @@ export declare class Five extends Subscribe<EventTypes> {
398
370
  static get version(): string;
399
371
  static get dracoPath(): string;
400
372
  static set dracoPath(path: string);
373
+ static get ktx2Path(): string;
374
+ static set ktx2Path(path: string);
401
375
  /**
402
376
  * Five 的显示模式,可以通过 `five.changeMode` `five.setState` 来切换
403
377
  * @description
@@ -429,6 +403,8 @@ export declare class Five extends Subscribe<EventTypes> {
429
403
  currentMode: Mode;
430
404
  /** 内部使用的 `THREE.Scene` */
431
405
  scene: Scene;
406
+ /** 供外部放置需要在xr场景下产生遮挡的物体们*/
407
+ xrCustomObjectsScene: THREE_2.Scene;
432
408
  /** 内部使用的 `Camera` */
433
409
  camera: Camera;
434
410
  /**
@@ -474,12 +450,6 @@ export declare class Five extends Subscribe<EventTypes> {
474
450
  * 平衡加载时间和图片质量
475
451
  */
476
452
  textureOptions: TextureOptions;
477
- /**
478
- * 模型lod的配置参数
479
- * @description
480
- * 可以配置加载模型lod的相关参数
481
- */
482
- modelLodOptions: ModelLodOptions;
483
453
  /**
484
454
  * 模型贴图的配置参数
485
455
  * @description
@@ -506,6 +476,10 @@ export declare class Five extends Subscribe<EventTypes> {
506
476
  * ```
507
477
  */
508
478
  state: State;
479
+ /**
480
+ * 模型坐标转换
481
+ */
482
+ coordinatesSystemTransformers: CoordinatesSystemTransformer[];
509
483
  info: null | {
510
484
  memory: {
511
485
  geometries: number;
@@ -531,6 +505,7 @@ export declare class Five extends Subscribe<EventTypes> {
531
505
  private modelGroup;
532
506
  private helperGroup;
533
507
  private modeChangeDuration;
508
+ private enableWheel;
534
509
  private onlyRenderIfNeeds;
535
510
  private poweredByRealsee;
536
511
  private controller?;
@@ -670,7 +645,7 @@ export declare class Five extends Subscribe<EventTypes> {
670
645
  * @param userAction - 是否用户触发
671
646
  * @returns Promise 是否移动成功
672
647
  */
673
- updateCamera(pose: Partial<Omit<Pose, "offset">>, duration: number, userAction?: boolean): Promise<void>;
648
+ updateCamera(pose: Partial<Pose>, duration: number, userAction?: boolean): Promise<void>;
674
649
  /**
675
650
  * 通过帧动画移动相机。(不触发点位移动)
676
651
  * @description
@@ -681,7 +656,11 @@ export declare class Five extends Subscribe<EventTypes> {
681
656
  * @param userAction - 是否用户触发
682
657
  * @returns Promise 是否移动成功
683
658
  */
684
- updateCameraWithKeyframes(keyframes: MotionKeyframe<Exclude<keyof Pose, "offset">>[], duration: number, userAction?: boolean): Promise<void>;
659
+ updateCameraWithKeyframes(keyframes: {
660
+ progress: number;
661
+ value: Pose;
662
+ key?: string;
663
+ }[], duration: number, userAction?: boolean): Promise<void>;
685
664
  /**
686
665
  * 获取当前相机经纬度
687
666
  * @deprecated 请使用使用 getPose
@@ -943,6 +922,10 @@ export declare interface FiveInitArgs {
943
922
  * 给予更多外部操作的空间。
944
923
  */
945
924
  videoInstance?: HTMLVideoElement;
925
+ /**
926
+ * 模型坐标转换
927
+ */
928
+ coordinatesSystemTransformers?: CoordinatesSystemTransformer[];
946
929
  /** 全景图游走模式下的特定参数 */
947
930
  panorama?: ControllerCustomInitTypes["Panorama"];
948
931
  /** 模型游走模式下的特定参数 */
@@ -966,6 +949,10 @@ export declare interface FiveInitArgs {
966
949
  * @default `800`
967
950
  */
968
951
  modeChangeDuration?: number;
952
+ /**
953
+ * 是否支持滚轮
954
+ */
955
+ enableWheel?: boolean;
969
956
  /**
970
957
  * 插件定义
971
958
  * @description
@@ -980,22 +967,12 @@ export declare interface FiveInitArgs {
980
967
  * 是否使用webgl2渲染执行环境, 默认值 false
981
968
  */
982
969
  webgl2?: boolean;
983
- /**
984
- * 是否开启模型裁切
985
- */
986
- localClippingEnabled?: boolean;
987
970
  /**
988
971
  * 请求代理
989
972
  * @param url - 发起的请求
990
973
  * @returns 返回的请求
991
974
  */
992
975
  requestProxy?(url: string): string | Promise<string>;
993
- /**
994
- * 模型lod相关的配置,maxDepth为加载的最大深度
995
- */
996
- modelLod?: {
997
- maxDepth?: number;
998
- };
999
976
  }
1000
977
 
1001
978
  /**
@@ -1026,6 +1003,8 @@ parameters: Parameters<T>[1]
1026
1003
  export declare type FivePluginInstance<T extends FivePlugin<any, any>> = ReturnType<T>;
1027
1004
 
1028
1005
  export declare interface FloorplanControllerCustomInitArgs {
1006
+ /** 默认水平角 */
1007
+ defaultLongitude?: number;
1029
1008
  /** 默认俯仰角 */
1030
1009
  defaultLatitude?: number;
1031
1010
  /** 最大俯仰角 */
@@ -1098,8 +1077,9 @@ export declare interface ImageOptions {
1098
1077
  }
1099
1078
 
1100
1079
  export declare function imageSupport(): Promise<{
1101
- avif: boolean;
1102
1080
  webp: boolean;
1081
+ avif: boolean;
1082
+ heif: boolean;
1103
1083
  }>;
1104
1084
 
1105
1085
  export declare interface ImageURLMappings {
@@ -1147,15 +1127,9 @@ export declare interface IntersectEvent extends BaseEvent {
1147
1127
  intersection: Intersection | null;
1148
1128
  }
1149
1129
 
1150
- export declare interface Intersection {
1151
- /** 焦点坐标 */
1152
- point: THREE.Vector3;
1153
- /** 焦点面片 */
1154
- face?: {
1155
- normal: THREE.Vector3;
1156
- } | null;
1157
- /** 焦点距离 */
1158
- distance: number;
1130
+ export declare interface Intersection extends THREE_2.Intersection {
1131
+ /** 楼层 */
1132
+ floor: number;
1159
1133
  }
1160
1134
 
1161
1135
  export declare class IntersectMesh extends THREE_2.Object3D implements IntersectMeshInterface {
@@ -1470,6 +1444,17 @@ export declare type LegacyEventType = {
1470
1444
  * axes代表控制杆,axes数组的0-1元素分别代表左控制器的左(-1)右(1),左控制器的上(-1)下(1),axes数组的2-3元素同理
1471
1445
  */
1472
1446
  webXRControllerEvent(type: WebXRControllerType, key: WebXRControllerKey, params: WebXRControllerParams): void;
1447
+ /**
1448
+ * xr控制器的Axes原始实时数据状态
1449
+ */
1450
+ webXRAxesUpdate(type: 'left' | 'right', param: WebXRAxesParams): void;
1451
+ /**
1452
+ * xr控制器的控制器射线更新
1453
+ */
1454
+ webXRControllerRayUpdate(raycaster: {
1455
+ leftRay?: THREE_2.Raycaster;
1456
+ rightRay?: THREE_2.Raycaster;
1457
+ }): void;
1473
1458
  /**
1474
1459
  * 准备加载 Work 数据
1475
1460
  * @param input - 输入的 work
@@ -1568,6 +1553,42 @@ export declare type LegacyEventType = {
1568
1553
  network(source: string, type: NetworkType, state: NetworkState, detail: string): void;
1569
1554
  };
1570
1555
 
1556
+ export declare function loadAt3d(url: string, options: {
1557
+ textureOptions?: TextureOptions;
1558
+ textureBaseUri?: string;
1559
+ textureArray?: string[];
1560
+ fetcher: Fetcher;
1561
+ }): Promise<ParsedResultType>;
1562
+
1563
+ export declare function loadB3dm(url: string, options: {
1564
+ upAxis: 'X' | 'Y' | 'Z';
1565
+ fetcher: Fetcher;
1566
+ }): Promise<ParsedResultType>;
1567
+
1568
+ export declare function loadDome(url: string, options: {
1569
+ textureOptions: TextureOptions;
1570
+ textureBaseUri?: string;
1571
+ fetcher: Fetcher;
1572
+ }): Promise<ParsedResultType>;
1573
+
1574
+ export declare function loadDomez(url: string, options: {
1575
+ textureOptions: TextureOptions;
1576
+ textureBaseUri?: string;
1577
+ fetcher: Fetcher;
1578
+ }): Promise<ParsedResultType>;
1579
+
1580
+ export declare function loadPbm(url: string, options: {
1581
+ textureOptions?: TextureOptions;
1582
+ textureBaseUri?: string;
1583
+ textureArray?: string[];
1584
+ fetcher: Fetcher;
1585
+ }): Promise<ParsedResultType>;
1586
+
1587
+ export declare function loadPnts(url: string, options: {
1588
+ fetcher: Fetcher;
1589
+ computeBoundingBox?: boolean;
1590
+ }): Promise<ParsedResultType>;
1591
+
1571
1592
  export declare type LooseWork = {
1572
1593
  work_code?: string;
1573
1594
  code?: string;
@@ -1665,6 +1686,8 @@ export declare type LooseWorkWithExtrinsics = {
1665
1686
  transform?: number[];
1666
1687
  /** 可视区域 */
1667
1688
  viewerRequestVolume?: BoundingVolumeJson;
1689
+ /** 模型显示最小细化层级 */
1690
+ modelMinLevelOfDetail?: number;
1668
1691
  /** 模型显示最大细化层级 */
1669
1692
  modelMaxLevelOfDetail?: number;
1670
1693
  /** 模型最大内存缓存 */
@@ -1676,6 +1699,8 @@ export declare type LooseWorkWithExtrinsics = {
1676
1699
  };
1677
1700
 
1678
1701
  export declare interface MapviewControllerCustomInitArgs {
1702
+ /** 默认水平角 */
1703
+ defaultLongitude?: number;
1679
1704
  /** 默认俯仰角 */
1680
1705
  defaultLatitude?: number;
1681
1706
  /** 默认相机距离 */
@@ -1740,7 +1765,18 @@ export declare class Model extends THREE_2.Object3D {
1740
1765
  type: string;
1741
1766
  upAxis: string;
1742
1767
  coordinates: string;
1743
- scene: Tile3DModel;
1768
+ scene: Tile3DModel | null;
1769
+ error: Error | null;
1770
+ coordinatesToWorldPoint: (coordinates: {
1771
+ longitude: number;
1772
+ latitude: number;
1773
+ altitude: number;
1774
+ }) => THREE_2.Vector3;
1775
+ worldPointToCoordinates: (point: THREE_2.Vector3) => {
1776
+ longitude: number;
1777
+ latitude: number;
1778
+ altitude: number;
1779
+ };
1744
1780
  }[];
1745
1781
  onError: (error: Error) => void;
1746
1782
  onShownFloorChange: (floorIndex: number | null) => void;
@@ -1751,37 +1787,43 @@ export declare class Model extends THREE_2.Object3D {
1751
1787
  floorLength: number;
1752
1788
  /** 材质贴图参数 */
1753
1789
  textureOptions: TextureOptions;
1790
+ autoRefine: boolean;
1754
1791
  /** 模型是否已经细化 */
1755
1792
  refined: boolean;
1793
+ /** 模型细化进度 */
1794
+ refineProgress: [number, number];
1756
1795
  /** 模型已经加载 */
1757
1796
  loaded: boolean;
1758
- /** 当前样式参数 */
1759
- materialVersion: string;
1760
- private _materialValues;
1761
- private _materialVersionMap;
1762
- private _floorIndex;
1763
- private _clippers;
1764
- /** 样式缓存 */
1765
- private cache;
1797
+ /** 是否更新 */
1766
1798
  needsRender: boolean;
1799
+ coordinatesSystemTransformers: CoordinatesSystemTransformer[];
1800
+ /** 缓存相机 */
1801
+ cacheCameras: (THREE_2.PerspectiveCamera | Camera)[];
1802
+ /** 当前样式参数 */
1803
+ materialVersion: number;
1804
+ private materialParameters;
1767
1805
  private disposed;
1768
1806
  constructor(options?: {
1807
+ coordinatesSystemTransformers?: CoordinatesSystemTransformer[];
1769
1808
  onError?: (error: Error) => void;
1770
1809
  onShownFloorChange?: (floorIndex: number | null) => void;
1771
1810
  onLoad?: () => void;
1772
1811
  });
1773
1812
  get empty(): boolean;
1774
1813
  /** 获取材质参数 */
1775
- getMaterial(): ModelMaterialValues;
1814
+ getMaterial(): PBMParameters;
1776
1815
  /** 设置材质参数 */
1777
- setMaterial(values: Partial<ModelMaterialValues>): void;
1816
+ setMaterial(values: Partial<PBMParameters>): void;
1778
1817
  /**
1779
1818
  * 当前显示的楼层
1780
1819
  */
1781
- get shownFloor(): PBMParameters['floorIndex'] | null;
1782
- set shownFloor(floorIndex: PBMParameters['floorIndex'] | null);
1783
- get shownfloor(): PBMParameters['floorIndex'] | null;
1784
- set shownfloor(floorIndex: PBMParameters['floorIndex'] | null);
1820
+ get shownFloorIndex(): PBMParameters['shownFloorIndex'];
1821
+ set shownFloorIndex(floorIndex: PBMParameters['shownFloorIndex']);
1822
+ /**
1823
+ * 当前显示的楼层
1824
+ */
1825
+ get shownFloor(): number | null;
1826
+ set shownFloor(floor: number | null);
1785
1827
  /**
1786
1828
  * 显示某楼层
1787
1829
  * @example
@@ -1790,7 +1832,7 @@ export declare class Model extends THREE_2.Object3D {
1790
1832
  * model.show(1) //显示第一楼层
1791
1833
  * ```
1792
1834
  */
1793
- show(floorIndex?: PBMParameters['floorIndex'] | null): void;
1835
+ show(floor?: number | null): void;
1794
1836
  /**
1795
1837
  * 裁切
1796
1838
  */
@@ -1809,15 +1851,13 @@ export declare class Model extends THREE_2.Object3D {
1809
1851
  * @param floors - 和某一楼层做碰撞检测, 不传为和所有楼层做碰撞检测
1810
1852
  * @returns 返回碰撞
1811
1853
  */
1812
- intersectRaycaster(raycaster: THREE_2.Raycaster): Intersection[];
1854
+ intersectRaycaster(raycaster: THREE_2.Raycaster, floor?: undefined | null | number, sortByDistance?: boolean): Intersection[];
1813
1855
  /**
1814
1856
  * 加载模型
1815
1857
  * @param work - work 的
1816
1858
  * @param imageOptions - 图片参数
1817
1859
  */
1818
1860
  load(work: Work, options?: {
1819
- networkSubscribe?: NetworkSubscribe;
1820
- requestProxy?: (url: string) => string | Promise<string>;
1821
1861
  textureOptions?: TextureOptions;
1822
1862
  }): Promise<void>;
1823
1863
  update(renderer: THREE_2.WebGLRenderer, camera: Camera, mode: Mode): void;
@@ -1842,16 +1882,33 @@ export declare interface ModelLodOptions {
1842
1882
  maxDepth?: number;
1843
1883
  }
1844
1884
 
1845
- export declare type ModelMaterialValues = Pick<PBMParameters, 'pano0' | 'pano1' | 'modelAlpha' | 'progress' | 'useBlackTransition' | 'opacity' | 'constantColor' | 'useEDL' | 'useHQWeight' | 'useHQDepth' | 'pointShape' | 'pointColorType' | 'pointSizeType' | 'pointSize' | 'pointMinSize' | 'pointMaxSize' | 'pointSizeAdaptiveScale' | 'gradientTexture'>;
1885
+ export declare type ModelMaterialValues = Omit<PBMParameters, 'clippers' | 'shownFloorIndex'>;
1846
1886
 
1847
1887
  export declare type Models = Model[] & {
1848
1888
  needsRender: boolean;
1889
+ /** 包围盒 */
1849
1890
  bounding: THREE_2.Box3;
1891
+ /** 是否家在完成 */
1850
1892
  loaded: boolean;
1893
+ /** 是否细化完成 */
1851
1894
  refined: boolean;
1852
- materialVersion: string;
1895
+ /** 细化成都 */
1896
+ refineProgress: [number, number];
1897
+ materialVersion: number;
1898
+ /** 缓存相机 */
1899
+ cacheCameras: (THREE_2.PerspectiveCamera | Camera)[];
1900
+ /** 是否自动更新模型 */
1901
+ autoUpdate: boolean;
1902
+ /**
1903
+ * 计算模型射线碰撞检测
1904
+ * @param raycaster - THREE 射线对象
1905
+ * @param floors - 和某一楼层做碰撞检测, 不传为和所有楼层做碰撞检测
1906
+ * @returns 返回碰撞
1907
+ */
1853
1908
  intersectRaycaster(raycaster: THREE_2.Raycaster): Intersection[];
1909
+ /** 设置材质参数 */
1854
1910
  setMaterial(values: Partial<ModelMaterialValues>): void;
1911
+ /** 获取材质参数 */
1855
1912
  getMaterial(): ModelMaterialValues;
1856
1913
  update(renderer: THREE_2.WebGLRenderer, camera: Camera, mode: Mode): void;
1857
1914
  };
@@ -1908,6 +1965,18 @@ export declare interface MovePanoOptions extends Partial<Omit<State, "offset" |
1908
1965
  moveCancelCallback?: () => void;
1909
1966
  }
1910
1967
 
1968
+ export declare class NetworkAbortError extends Error {
1969
+ constructor(source: string, type: NetworkType);
1970
+ }
1971
+
1972
+ export declare type NetworkError = NetworkResponseError | NetworkAbortError | NetworkTimeoutError | NetworkFirbiddenError;
1973
+
1974
+ export declare type NetworkErrorCallback = (error: NetworkError) => void;
1975
+
1976
+ export declare class NetworkFirbiddenError extends Error {
1977
+ constructor(source: string, type: NetworkType, reason: string);
1978
+ }
1979
+
1911
1980
  export declare type NetWorkMeta = {
1912
1981
  origin: string;
1913
1982
  source: string;
@@ -1931,6 +2000,8 @@ export declare interface NetworkOptions {
1931
2000
  allowHosts?: string[];
1932
2001
  }
1933
2002
 
2003
+ export declare type NetworkProgressCallback = (percent: number) => void;
2004
+
1934
2005
  export declare interface NetworkResourceEvent extends BaseEvent {
1935
2006
  source: string;
1936
2007
  requestType: NetworkType;
@@ -1943,6 +2014,11 @@ export declare type NetworkResponse<T = any, E extends NetWorkMeta | NetWorkMeta
1943
2014
  meta: E;
1944
2015
  };
1945
2016
 
2017
+ export declare class NetworkResponseError extends Error {
2018
+ httpStatus: number;
2019
+ constructor(source: string, type: NetworkType, status: number);
2020
+ }
2021
+
1946
2022
  export declare type NetworkState = "ok" | "preload" | "error" | "proxy-error" | "timeout" | "forbidden";
1947
2023
 
1948
2024
  export declare class NetworkSubscribe extends Subscribe<{
@@ -1950,6 +2026,12 @@ export declare class NetworkSubscribe extends Subscribe<{
1950
2026
  }> {
1951
2027
  }
1952
2028
 
2029
+ export declare type NetworkSuccessCallback<T = any> = (response: NetworkResponse<T>) => void;
2030
+
2031
+ export declare class NetworkTimeoutError extends Error {
2032
+ constructor(source: string, type: NetworkType, timeout: number);
2033
+ }
2034
+
1953
2035
  export declare type NetworkType = "XMLHttpRequest" | "Script" | "Image" | "Link";
1954
2036
 
1955
2037
  export declare interface ObjectEvent extends BaseEvent {
@@ -2165,6 +2247,14 @@ export declare interface PanoTextureEvent extends BaseEvent {
2165
2247
  error: Error | null;
2166
2248
  }
2167
2249
 
2250
+ export declare type ParsedResultType = {
2251
+ type: 'b3dm' | 'pnts' | 'at3d' | 'pbm' | 'dome' | 'domez' | 'glb';
2252
+ byteLength: number;
2253
+ uri: string;
2254
+ object: THREE_2.Object3D;
2255
+ dispose: () => void;
2256
+ };
2257
+
2168
2258
  /**
2169
2259
  * 解析 Work 数据
2170
2260
  * @param obj - work 数据,从如数开发者平台获取
@@ -2189,6 +2279,8 @@ export declare type ParseWorkOptions = {
2189
2279
  /** 可视区域 */
2190
2280
  viewerRequestVolume?: BoundingVolume | BoundingVolumeJson;
2191
2281
  /** 模型显示最大细化层级 */
2282
+ modelMinLevelOfDetail?: number;
2283
+ /** 模型显示最大细化层级 */
2192
2284
  modelMaxLevelOfDetail?: number;
2193
2285
  /** 模型最大内存缓存 */
2194
2286
  modelMaxMemoryUsage?: number;
@@ -2205,87 +2297,73 @@ export declare class PBMContainer extends THREE_2.Group {
2205
2297
  needsRender: boolean;
2206
2298
  /** 当前样式参数 */
2207
2299
  materialParameters: PBMParameters;
2208
- cache: PBMMaterialReferenceCache;
2209
2300
  constructor();
2210
2301
  /** 获取材质参数 */
2211
2302
  getMaterial(): PBMParameters;
2212
2303
  /** 设置材质参数 */
2213
2304
  setMaterial(parameters: Partial<PBMParameters>): void;
2214
- update(renderer: THREE_2.WebGLRenderer, camera: Camera): void;
2215
- /** 析构材质 */
2216
- dispose(): void;
2217
2305
  }
2218
2306
 
2219
2307
  /** PBM 模型组 */
2220
2308
  export declare class PBMGroup extends THREE_2.Group {
2221
- needsRender: boolean;
2222
- }
2223
-
2224
- export declare class PBMMaterialReferenceCache {
2225
- cache: Record<string, {
2226
- count: number;
2227
- value: any;
2228
- dispose: () => void;
2229
- }>;
2230
- clear(): void;
2231
- get<T>(key: string, create: () => {
2232
- value: T;
2233
- dispose: () => void;
2234
- }): T;
2235
2309
  }
2236
2310
 
2237
2311
  /** PBM 对象 */
2238
2312
  export declare class PBMMesh extends THREE_2.Mesh<THREE_2.BufferGeometry, PBMMeshMaterial[]> {
2239
- /** 是否需要更新按需渲染 */
2240
- needsRender: boolean;
2313
+ model?: Model;
2314
+ constructor(geometry: THREE_2.BufferGeometry, materials: PBMMeshMaterial[]);
2241
2315
  }
2242
2316
 
2243
2317
  /** PBM 材质 */
2244
2318
  export declare class PBMMeshMaterial extends THREE_2.ShaderMaterial implements PBMParameters {
2245
2319
  /** 更新版本 */
2246
- pbmMaterialParametersVersion: number;
2320
+ syncModelVersion?: string;
2247
2321
  /** 起始点 */
2248
- pano0: PBMPanoPicture | null;
2322
+ pano0: PBMParameters['pano0'];
2249
2323
  /** 结束点 */
2250
- pano1: PBMPanoPicture | null;
2324
+ pano1: PBMParameters['pano1'];
2251
2325
  /** 模型贴图和全景图的混合程度 [0-1] */
2252
- modelAlpha: number;
2326
+ modelAlpha: PBMParameters['modelAlpha'];
2253
2327
  /** 全景图混合程度 [0-1] */
2254
- progress: number;
2328
+ progress: PBMParameters['progress'];
2255
2329
  /** 全景图通过过度黑色混合 */
2256
- useBlackTransition: boolean;
2330
+ useBlackTransition: PBMParameters['useBlackTransition'];
2257
2331
  /** 模型透明度 */
2258
- opacity: number;
2332
+ opacity: PBMParameters['opacity'];
2259
2333
  /** 模型颜色*/
2260
- constantColor: THREE_2.Vector3 | null;
2334
+ constantColor: PBMParameters['constantColor'];
2261
2335
  /** 楼层参数*/
2262
- floorIndex: number;
2336
+ shownFloorIndex: PBMParameters['shownFloorIndex'];
2263
2337
  /** 对外模型裁切参数*/
2264
- clippers: ClipperParameter[] | null;
2338
+ clippers: PBMParameters['clippers'];
2265
2339
  /** edl*/
2266
- useEDL: boolean;
2340
+ useEDL: PBMParameters['useEDL'];
2267
2341
  /** hq*/
2268
- useHQWeight: boolean;
2342
+ useHQWeight: PBMParameters['useHQWeight'];
2269
2343
  /** HQDepthMask*/
2270
- useHQDepth: boolean;
2344
+ useHQDepth: PBMParameters['useHQDepth'];
2271
2345
  /** 点云着色方式*/
2272
- pointColorType: PBMPointColorType;
2346
+ pointColor: PBMParameters['pointColor'];
2273
2347
  /** 点云大小绘制方式*/
2274
- pointSizeType: PBMPointSizeType;
2348
+ pointSize: PBMParameters['pointSize'];
2275
2349
  /** 点云形状*/
2276
- pointShape: PBMPointShapeType;
2350
+ pointShape: PBMParameters['pointShape'];
2277
2351
  /** 点云基础大小*/
2278
- pointSize: number;
2279
- /** 自适应点云大小因子*/
2280
- pointSizeAdaptiveScale: number;
2281
- /** 点云最大尺寸*/
2282
- pointMinSize: number;
2283
- /** 点云最小尺寸*/
2284
- pointMaxSize: number;
2352
+ pointScale: PBMParameters['pointScale'];
2353
+ /** 点云背面绘制方式*/
2354
+ pointBack: PBMParameters['pointBack'];
2355
+ /** 点云像素最小值*/
2356
+ pointMinPixel: PBMParameters['pointMinPixel'];
2357
+ /** 点云像素最大值*/
2358
+ pointMaxPixel: PBMParameters['pointMaxPixel'];
2285
2359
  /** 高程彩色图*/
2286
- gradientTexture: THREE_2.Texture | null;
2360
+ gradientTexture: PBMParameters['gradientTexture'];
2361
+ /** 所属楼层*/
2362
+ floor: number;
2287
2363
  constructor(parameters?: Partial<PBMParameters>);
2288
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, cache: PBMMaterialReferenceCache): void;
2364
+ onBeforeCompile(shader: THREE_2.Shader, renderer: THREE_2.WebGLRenderer): void;
2365
+ update(renderer: THREE_2.WebGLRenderer, camera: THREE_2.Camera): void;
2366
+ syncModel(model: Model): void;
2289
2367
  }
2290
2368
 
2291
2369
  export declare interface PBMPanoPicture {
@@ -2312,7 +2390,7 @@ export declare interface PBMParameters {
2312
2390
  /** 模型透明度 */
2313
2391
  opacity: number;
2314
2392
  /** 楼层参数*/
2315
- floorIndex: number;
2393
+ shownFloorIndex: number;
2316
2394
  /** 模型裁切参数(工程侧调用)*/
2317
2395
  clippers: ClipperParameter[] | null;
2318
2396
  /** 模型颜色*/
@@ -2324,38 +2402,23 @@ export declare interface PBMParameters {
2324
2402
  /** 是否使用HQ_DEPTH_MASK*/
2325
2403
  useHQDepth: boolean;
2326
2404
  /** 点云形状*/
2327
- pointShape: PBMPointShapeType;
2405
+ pointShape: 'SQUARE' | 'CIRCLE';
2328
2406
  /** 点云着色方式*/
2329
- pointColorType: PBMPointColorType;
2407
+ pointColor: 'RGB' | 'ALTITUDE';
2330
2408
  /** 点云大小绘制方式*/
2331
- pointSizeType: PBMPointSizeType;
2409
+ pointSize: 'FIXED' | 'ATTENUATION' | 'GEOMETRIC';
2410
+ /** 点云背面绘制方式*/
2411
+ pointBack: 'VISIBLE' | 'HIDDEN' | 'DARK';
2332
2412
  /** 点云基础大小*/
2333
- pointSize: number;
2413
+ pointScale: number;
2334
2414
  /** 点云最大尺寸*/
2335
- pointMinSize: number;
2415
+ pointMinPixel: number;
2336
2416
  /** 点云最小尺寸*/
2337
- pointMaxSize: number;
2338
- /** 自适应点云尺寸因子*/
2339
- pointSizeAdaptiveScale: number;
2417
+ pointMaxPixel: number;
2340
2418
  /** 高程彩色图*/
2341
2419
  gradientTexture: THREE_2.Texture | null;
2342
2420
  }
2343
2421
 
2344
- export declare enum PBMPointColorType {
2345
- RGB = "rgb",
2346
- ALTITUDE = "altitude"
2347
- }
2348
-
2349
- export declare enum PBMPointShapeType {
2350
- SQUARE = "square",
2351
- CIRCLE = "circle"
2352
- }
2353
-
2354
- export declare enum PBMPointSizeType {
2355
- FIXED = "fixed",
2356
- ADAPTIVE = "adaptive"
2357
- }
2358
-
2359
2422
  /**
2360
2423
  * 相机位姿
2361
2424
  * [[include: coordinate.md]]
@@ -2375,7 +2438,7 @@ export declare interface Pose {
2375
2438
 
2376
2439
  export declare type PostProcessingType = 'edl' | 'hq' | 'luminance' | null;
2377
2440
 
2378
- export declare const PROXY_CONTROLLER_EVENT_NAMES: readonly ["gesture.pan", "gesture.tap", "gesture.press", "gesture.pinch", "gesture.mousewheel", "gesture.mousemove", "gesture.momentum", "initAnimation.start", "initAnimation.end", "camera.update", "intersect.update", "pano.select", "pano.moveTo", "pano.moving", "pano.arrived", "pano.cancel", "pano.error", "pano.texture.load", "pano.texture.progress", "pano.texture.success", "pano.texture.error", "pano.texture.abort", "xr.session.start", "xr.session.end", "xr.gesture.tap"];
2441
+ export declare const PROXY_CONTROLLER_EVENT_NAMES: readonly ["gesture.pan", "gesture.tap", "gesture.press", "gesture.pinch", "gesture.mousewheel", "gesture.mousemove", "gesture.momentum", "initAnimation.start", "initAnimation.end", "camera.update", "intersect.update", "pano.select", "pano.moveTo", "pano.moving", "pano.arrived", "pano.cancel", "pano.error", "pano.texture.load", "pano.texture.progress", "pano.texture.success", "pano.texture.error", "pano.texture.abort", "xr.session.start", "xr.session.end", "xr.gesture.tap", "xr.gesture.press", "xr.gesture.buttonUp", "xr.gesture.buttonDown", "xr.controller.update"];
2379
2442
 
2380
2443
  export declare class RegionBoundingVolume implements BoundingVolume {
2381
2444
  type: "regin";
@@ -2502,7 +2565,7 @@ export declare class SphereBoundingVolume implements BoundingVolume {
2502
2565
  distanceSquaredTo(point: THREE_2.Vector3): number;
2503
2566
  distanceTo(point: THREE_2.Vector3): number;
2504
2567
  intersectPlane(plane: THREE_2.Plane): VolumePlaneIntersect;
2505
- intersectRay(ray: THREE_2.Ray): boolean;
2568
+ intersectRay(ray: THREE_2.Ray, far?: number): boolean;
2506
2569
  }
2507
2570
 
2508
2571
  export declare type SphereBoundingVolumeJson = {
@@ -2621,7 +2684,7 @@ export declare namespace SubscribeMixinType {
2621
2684
  }
2622
2685
 
2623
2686
  export declare class TextureLoader {
2624
- loadTexture(source: string, options?: {
2687
+ loadTexture(source: string, options: {
2625
2688
  imageURL?: {
2626
2689
  transform?: (source: string, options: ImageURLOptions) => string;
2627
2690
  options?: ImageURLOptions;
@@ -2634,7 +2697,9 @@ export declare class TextureLoader {
2634
2697
  wrapT?: THREE_2.Wrapping;
2635
2698
  maxSize?: THREE_2.Vector2;
2636
2699
  viaAjax?: boolean;
2637
- } & NetworkOptions, onLoad?: (response: NetworkResponse<THREE_2.Texture>) => void, onError?: (error: Error) => void, onProgress?: (percent: number) => void, renderer?: THREE_2.WebGLRenderer): Promise<NetworkResponse<THREE_2.Texture>>;
2700
+ timeout?: number;
2701
+ fetcher: Fetcher;
2702
+ }, onLoad?: (response: NetworkResponse<THREE_2.Texture>) => void, onError?: (error: Error) => void, onProgress?: (percent: number) => void, renderer?: THREE_2.WebGLRenderer): Promise<NetworkResponse<THREE_2.Texture>>;
2638
2703
  loadCubeTexture(sources: WorkCubeImage, options: {
2639
2704
  imageURL?: {
2640
2705
  transform?: (source: string, options: ImageURLOptions) => string;
@@ -2646,7 +2711,9 @@ export declare class TextureLoader {
2646
2711
  wrapS?: THREE_2.Wrapping;
2647
2712
  wrapT?: THREE_2.Wrapping;
2648
2713
  viaAjax?: boolean;
2649
- } & NetworkOptions, 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[]>>;
2714
+ timeout?: number;
2715
+ fetcher: Fetcher;
2716
+ }, 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[]>>;
2650
2717
  loadTiledCubeTexture(sources: WorkCubeImage, tileSources: WorkTile[], options: {
2651
2718
  tileImageSize?: number;
2652
2719
  tileMaxLevel?: number;
@@ -2660,7 +2727,9 @@ export declare class TextureLoader {
2660
2727
  wrapS?: THREE_2.Wrapping;
2661
2728
  wrapT?: THREE_2.Wrapping;
2662
2729
  viaAjax?: boolean;
2663
- } & NetworkOptions, onLoad: (response: NetworkResponse<TileCubeTextureTarget, NetWorkMeta[]>) => void, onError: (error: Error) => void, onProgress: (percent: number) => void, renderer: THREE_2.WebGLRenderer): Promise<NetworkResponse<TileCubeTextureTarget, NetWorkMeta[]>>;
2730
+ timeout?: number;
2731
+ fetcher: Fetcher;
2732
+ }, onLoad: (response: NetworkResponse<TileCubeTextureTarget, NetWorkMeta[]>) => void, onError: (error: Error) => void, onProgress: (percent: number) => void, renderer: THREE_2.WebGLRenderer): Promise<NetworkResponse<TileCubeTextureTarget, NetWorkMeta[]>>;
2664
2733
  }
2665
2734
 
2666
2735
  /**
@@ -2714,7 +2783,6 @@ export declare class Tile {
2714
2783
  requestedFrameNumber: number;
2715
2784
  touchedFrameNumber: number;
2716
2785
  selectionDepth: number;
2717
- centerZDepth: number;
2718
2786
  shouldRefine: boolean;
2719
2787
  distanceToCamera: number;
2720
2788
  screenSpaceError: number;
@@ -2740,57 +2808,58 @@ export declare class Tile {
2740
2808
  }
2741
2809
 
2742
2810
  export declare class Tile3DModel extends THREE_2.Object3D {
2811
+ static DEFAULT_MIN_LEVEL_OF_DETAIL: number;
2743
2812
  static DEFAULT_MAX_LEVEL_OF_DETAIL: number;
2744
2813
  static DEFAULT_MAX_MEMORY_USAGE: number;
2745
2814
  static DEFAULT_MAX_SCREEN_SPACE_ERROR: number;
2746
2815
  static DEFAULT_MAX_REQUESTS: number;
2747
- workCode: string;
2816
+ objType: 'mesh' | 'point_cloud';
2817
+ model: Model;
2818
+ search: string;
2748
2819
  tileset: Tileset;
2820
+ minLevelOfDetail: number;
2749
2821
  maxLevelOfDetail: number;
2750
2822
  boundingBox: THREE_2.Box3;
2751
2823
  needsRefined: boolean;
2752
2824
  refined: boolean;
2825
+ refineProgress: [number, number];
2753
2826
  loaded: boolean;
2754
- disposed: boolean;
2755
2827
  needsRender: boolean;
2756
- lastRefineTime: number;
2828
+ cacheCameras: (THREE_2.PerspectiveCamera | Camera)[];
2829
+ private lastRefineTime;
2830
+ private disposed;
2757
2831
  private nodeGroup;
2758
2832
  private debugBoundingGroup;
2759
2833
  private nodes;
2760
2834
  private debugBoundings;
2761
2835
  private unloadTileQueue;
2762
- constructor(workCode: string, tilesetHeader: TilesetHeader, options: Partial<Tile3DModelLoaderOptions>);
2836
+ constructor(model: Model, objType: 'mesh' | 'point_cloud', tilesetHeader: TilesetHeader, options: Tile3DModelLoaderOptions);
2763
2837
  get debug(): boolean;
2764
2838
  set debug(value: boolean);
2765
2839
  get maxMemoryUsage(): number;
2766
2840
  set maxMemoryUsage(value: number);
2767
- get viewDistanceScale(): number;
2768
- set viewDistanceScale(value: number);
2769
2841
  get maxRequests(): number;
2770
2842
  set maxRequests(value: number);
2771
2843
  get maxScreenSpaceError(): number;
2772
2844
  set maxScreenSpaceError(value: number);
2773
2845
  loadContent(tile: Tile, options: {
2774
- allowHosts?: string[];
2775
- requestProxy?: (url: string) => string | Promise<string>;
2776
- networkSubscribe?: NetworkSubscribe;
2846
+ fetcher: Fetcher;
2777
2847
  }): Promise<boolean>;
2778
- intersectRaycaster(raycaster: THREE_2.Raycaster): Intersection[];
2848
+ intersectRaycaster(raycaster: THREE_2.Raycaster, sortByDistance?: boolean, target?: Intersection[]): Intersection[];
2779
2849
  update(renderer: THREE_2.WebGLRenderer, camera: Camera): void;
2780
2850
  dispose(): void;
2781
2851
  }
2782
2852
 
2783
2853
  /** Advanced loader options */
2784
2854
  export declare interface Tile3DModelLoaderOptions {
2855
+ fetcher: Fetcher;
2785
2856
  resourcePath: string;
2786
- allowHosts?: string[];
2787
- requestProxy?: (url: string) => string | Promise<string>;
2788
- networkSubscribe?: NetworkSubscribe;
2857
+ search?: string;
2789
2858
  onError?: (error: Error) => void;
2790
2859
  }
2791
2860
 
2792
2861
  export declare type TileContentData = {
2793
- type: 'b3dm' | 'pnts' | 'at3d' | 'pbm';
2862
+ type: 'b3dm' | 'pnts' | 'at3d' | 'pbm' | 'dome' | 'domez' | 'glb';
2794
2863
  byteLength: number;
2795
2864
  uri: string;
2796
2865
  object: TileNode;
@@ -2831,7 +2900,9 @@ export declare class TileCubeTextureTarget {
2831
2900
  magFilter?: THREE_2.TextureFilter;
2832
2901
  wrapS?: THREE_2.Wrapping;
2833
2902
  wrapT?: THREE_2.Wrapping;
2834
- } & NetworkOptions, renderer: THREE_2.WebGLRenderer);
2903
+ timeout?: number;
2904
+ fetcher: Fetcher;
2905
+ }, renderer: THREE_2.WebGLRenderer);
2835
2906
  get cubeRenderTarget(): THREE_2.WebGLCubeRenderTarget | null;
2836
2907
  set cubeRenderTarget(cubeRenderTarget: THREE_2.WebGLCubeRenderTarget | null);
2837
2908
  private requestTile;
@@ -2861,11 +2932,9 @@ export declare interface TileHeader {
2861
2932
  }
2862
2933
 
2863
2934
  export declare class TileNode extends THREE_2.Group {
2864
- bvhTree: BVH | undefined;
2865
- objType: 'mesh' | 'points';
2866
- constructor(obj: THREE_2.Object3D, objType: 'mesh' | 'points');
2867
- buildBvhTree(): void;
2868
- intersectRaycaster(raycaster: THREE_2.Raycaster): Intersection[];
2935
+ private disposers;
2936
+ constructor(obj: THREE_2.Object3D, objDisposer: () => void);
2937
+ intersectRaycaster(raycaster: THREE_2.Raycaster, sortByDistance?: boolean, target?: Intersection[]): Intersection[];
2869
2938
  dispose(): void;
2870
2939
  }
2871
2940
 
@@ -2877,26 +2946,28 @@ export declare class Tileset {
2877
2946
  asset: {
2878
2947
  version: string;
2879
2948
  tilesetVersion: string;
2880
- gltfUpAxis: "X" | "Y" | "Z";
2949
+ gltfUpAxis: "Y" | "Z";
2881
2950
  };
2882
2951
  id: string;
2883
2952
  frameNumber: number;
2884
2953
  properties: Record<string, any>;
2885
2954
  options: TilesetOptions;
2886
2955
  root: Tile;
2887
- transfrom: THREE_2.Matrix4;
2956
+ transform: THREE_2.Matrix4;
2957
+ transformIsIdentity: boolean;
2888
2958
  geometricError: number;
2889
- traverser: TilesetTraverser;
2959
+ private traverser;
2890
2960
  cache: TilesetCache;
2891
2961
  requestScheduler: RequestScheduler<string>;
2892
2962
  private memoryUsageInBytes;
2893
2963
  maxMemoryUsage: number;
2894
- viewDistanceScale: number;
2895
2964
  tiles: Map<string, Tile>;
2896
2965
  private pendingCount;
2897
2966
  constructor(id: string, header: TilesetHeader, options: TilesetOptions);
2898
2967
  get maxRequests(): number;
2899
2968
  set maxRequests(value: number);
2969
+ get skipLevelOfDetail(): boolean;
2970
+ set skipLevelOfDetail(value: boolean);
2900
2971
  get maxScreenSpaceError(): number;
2901
2972
  set maxScreenSpaceError(value: number);
2902
2973
  get selectedTiles(): Map<string, Tile>;
@@ -2905,11 +2976,7 @@ export declare class Tileset {
2905
2976
  reset(): void;
2906
2977
  /** Is the tileset loaded (update needs to have been called at least once) */
2907
2978
  isLoaded(): boolean;
2908
- /**
2909
- * The callback to post-process tiles after traversal procedure
2910
- * @param frameState - frame state for tile culling
2911
- */
2912
- private onTraversalEnd;
2979
+ traverse(frameState: TilesetFrameState, cacheFrameStates?: TilesetFrameState[]): void;
2913
2980
  loadTile(tile: Tile): void;
2914
2981
  unloadTile(tile: Tile): void;
2915
2982
  }
@@ -2932,11 +2999,14 @@ export declare type TilesetFrameState = {
2932
2999
  position: THREE.Vector3;
2933
3000
  direction: THREE.Vector3;
2934
3001
  up: THREE.Vector3;
3002
+ visible: boolean;
2935
3003
  };
2936
3004
  height: number;
3005
+ pixelRatio: number;
2937
3006
  cullingVolume: CullingVolume;
2938
3007
  frameNumber: number;
2939
3008
  sseDenominator: number;
3009
+ minLevelOfDetail: number;
2940
3010
  maxLevelOfDetail: number;
2941
3011
  };
2942
3012
 
@@ -2944,7 +3014,7 @@ export declare interface TilesetHeader {
2944
3014
  asset: {
2945
3015
  version: string;
2946
3016
  tilesetVersion?: string;
2947
- gltfUpAxis?: "X" | "Y" | "Z";
3017
+ gltfUpAxis?: "Y" | "Z";
2948
3018
  };
2949
3019
  properties?: Record<string, any>;
2950
3020
  geometricError: number;
@@ -2952,13 +3022,10 @@ export declare interface TilesetHeader {
2952
3022
  }
2953
3023
 
2954
3024
  export declare interface TilesetOptions {
3025
+ contentLoader: (tile: Tile) => Promise<boolean>;
2955
3026
  onTileLoad: (tile: Tile) => any;
2956
3027
  onTileUnload: (tile: Tile) => any;
2957
3028
  onTileError: (tile: Tile, error: Error) => any;
2958
- contentLoader: (tile: Tile) => Promise<boolean>;
2959
- allowHosts?: string[];
2960
- requestProxy?: (url: string) => string | Promise<string>;
2961
- networkSubscribe?: NetworkSubscribe;
2962
3029
  }
2963
3030
 
2964
3031
  export declare class TilesetTraverser {
@@ -2969,15 +3036,15 @@ export declare class TilesetTraverser {
2969
3036
  loadSiblings: boolean;
2970
3037
  skipLevelOfDetail: boolean;
2971
3038
  maxScreenSpaceError: number;
2972
- onTraversalEnd: (frameState: TilesetFrameState) => any;
2973
3039
  requestedTiles: Map<string, Tile>;
2974
3040
  selectedTiles: Map<string, Tile>;
2975
3041
  needsRefinedTiles: Map<string, Tile>;
2976
3042
  emptyTiles: Map<string, Tile>;
3043
+ private _canSelectTile;
2977
3044
  private _traversalStack;
2978
3045
  private _emptyTraversalStack;
2979
- constructor(onTraversalEnd: (frameState: TilesetFrameState) => any);
2980
- traverse(root: Tile, frameState: TilesetFrameState): void;
3046
+ constructor();
3047
+ traverse(root: Tile, frameState: TilesetFrameState, cacheFrameStates?: TilesetFrameState[]): void;
2981
3048
  reset(): void;
2982
3049
  private executeTraversal;
2983
3050
  private updateChildTiles;
@@ -3008,13 +3075,30 @@ export declare enum VolumePlaneIntersect {
3008
3075
  export declare interface VRPanoramaControllerCustomInitArgs extends Omit<PanoramaControllerCustomInitArgs, "maxLatitude" | "minLatitude"> {
3009
3076
  }
3010
3077
 
3078
+ export declare interface WebXRAxesParams {
3079
+ raycaster: {
3080
+ leftRay?: THREE_2.Raycaster;
3081
+ rightRay?: THREE_2.Raycaster;
3082
+ };
3083
+ axesState: {
3084
+ up: number;
3085
+ down: number;
3086
+ left: number;
3087
+ right: number;
3088
+ };
3089
+ deltaTime: number;
3090
+ }
3091
+
3011
3092
  export declare type WebXRControllerKey = XRGestureEvent['buttons'];
3012
3093
 
3013
3094
  export declare interface WebXRControllerParams {
3014
- raycaster: THREE_2.Raycaster[];
3095
+ raycaster: {
3096
+ leftRay: THREE_2.Raycaster;
3097
+ rightRay: THREE_2.Raycaster;
3098
+ };
3015
3099
  }
3016
3100
 
3017
- export declare type WebXRControllerType = 'tap' | 'press' | 'axes';
3101
+ export declare type WebXRControllerType = 'tap' | 'press' | 'axes' | 'buttonUp' | 'buttonDown';
3018
3102
 
3019
3103
  export declare class Work {
3020
3104
  /** 名称 */
@@ -3130,6 +3214,8 @@ export declare interface WorkObserver {
3130
3214
  floorIndex: number;
3131
3215
  /** 点位 derived_id */
3132
3216
  derivedId?: number;
3217
+ /** 点位 derived_id_str */
3218
+ derivedIdStr?: string;
3133
3219
  /** 点位是否激活可用 */
3134
3220
  active: boolean;
3135
3221
  /** 点位是否可加载 */
@@ -3161,6 +3247,8 @@ export declare interface WorkOptions {
3161
3247
  transform: THREE_2.Matrix4;
3162
3248
  /** 可观测区域 */
3163
3249
  viewerRequestVolume?: BoundingVolume;
3250
+ /** 模型显示最小细化层级 */
3251
+ modelMinLevelOfDetail?: number;
3164
3252
  /** 模型显示最大细化层级 */
3165
3253
  modelMaxLevelOfDetail?: number;
3166
3254
  /** 模型最大内存缓存 */
@@ -3215,18 +3303,55 @@ export declare class XRButton {
3215
3303
  static createButton(onClickHook: () => void): HTMLAnchorElement | HTMLButtonElement;
3216
3304
  }
3217
3305
 
3306
+ export declare interface XRControllerEvent extends BaseEvent {
3307
+ left: {
3308
+ axes: {
3309
+ up: number;
3310
+ down: number;
3311
+ left: number;
3312
+ right: number;
3313
+ };
3314
+ raycaster: THREE_2.Raycaster;
3315
+ deltaTime: number;
3316
+ };
3317
+ right: {
3318
+ axes: {
3319
+ up: number;
3320
+ down: number;
3321
+ left: number;
3322
+ right: number;
3323
+ };
3324
+ raycaster: THREE_2.Raycaster;
3325
+ deltaTime: number;
3326
+ };
3327
+ buttons: {
3328
+ X: boolean;
3329
+ Y: boolean;
3330
+ LeftTrigger: boolean;
3331
+ LeftPinch: boolean;
3332
+ A: boolean;
3333
+ B: boolean;
3334
+ RightTrigger: boolean;
3335
+ RightPinch: boolean;
3336
+ };
3337
+ }
3338
+
3218
3339
  export declare interface XRGestureEvent extends BaseEvent {
3219
3340
  session: XRSession | null;
3220
- buttons: null | 'A' | 'B' | 'X' | 'Y' | 'RightTrigger' | 'RightPinch' | 'LeftTrigger' | 'LeftPinch' | 'LeftAxesLeft' | 'LeftAxesRight' | 'LeftAxesUp' | 'LeftAxesDown' | 'RightAxesLeft' | 'RightAxesRight' | 'RightAxesUp' | 'RightAxesDown';
3341
+ buttons: 'A' | 'B' | 'X' | 'Y' | 'RightTrigger' | 'RightPinch' | 'LeftTrigger' | 'LeftPinch' | 'LeftAxesLeft' | 'LeftAxesRight' | 'LeftAxesUp' | 'LeftAxesDown' | 'RightAxesLeft' | 'RightAxesRight' | 'RightAxesUp' | 'RightAxesDown';
3221
3342
  machineType: 'Pico' | 'Oculus';
3222
3343
  isFirst: boolean;
3223
3344
  isFinal: boolean;
3224
3345
  controllers: {
3225
- raycaster: THREE_2.Raycaster;
3226
- }[];
3346
+ raycaster: {
3347
+ leftRay: THREE_2.Raycaster;
3348
+ rightRay: THREE_2.Raycaster;
3349
+ };
3350
+ };
3227
3351
  }
3228
3352
 
3229
3353
  export declare interface XRPanoramaControllerCustomInitArgs extends Omit<PanoramaControllerCustomInitArgs, "maxLatitude" | "minLatitude"> {
3354
+ onlyUseRightController?: boolean;
3230
3355
  }
3231
3356
 
3232
3357
  declare interface XRSessionEvent_2 extends BaseEvent {