@realsee/five 6.0.0-alpha.7 → 6.0.0-alpha.70

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 (324) hide show
  1. package/TERMS.txt +0 -2
  2. package/docs/assets/highlight.css +20 -20
  3. package/docs/assets/main.js +59 -52
  4. package/docs/assets/navigation.js +1 -0
  5. package/docs/assets/search.js +1 -1
  6. package/docs/assets/style.css +805 -825
  7. package/docs/classes/five.AnimationFrameLoop.html +16 -15
  8. package/docs/classes/five.BoxBoundingVolume.html +18 -1
  9. package/docs/classes/five.Camera.html +37 -11
  10. package/docs/classes/five.CullingVolume.html +10 -1
  11. package/docs/classes/five.Fetcher.html +5 -0
  12. package/docs/classes/five.Five.html +237 -287
  13. package/docs/classes/five.InternalWebGLRenderer.html +2 -1
  14. package/docs/classes/five.IntersectMesh.html +4 -1
  15. package/docs/classes/five.Model.html +62 -55
  16. package/docs/classes/five.NetworkAbortError.html +2 -0
  17. package/docs/classes/five.NetworkFirbiddenError.html +2 -0
  18. package/docs/classes/five.NetworkResponseError.html +3 -0
  19. package/docs/classes/five.NetworkSubscribe.html +42 -56
  20. package/docs/classes/five.NetworkTimeoutError.html +2 -0
  21. package/docs/classes/five.PBMContainer.html +12 -13
  22. package/docs/classes/five.PBMGroup.html +3 -3
  23. package/docs/classes/five.PBMMesh.html +4 -5
  24. package/docs/classes/five.PBMMeshMaterial.html +50 -45
  25. package/docs/classes/five.PanoCircleMesh.html +30 -7
  26. package/docs/classes/five.PanoCircleMeshCustom.html +30 -7
  27. package/docs/classes/five.PanoCircleMeshSolid.html +30 -7
  28. package/docs/classes/five.RegionBoundingVolume.html +21 -1
  29. package/docs/classes/five.RequestScheduler.html +13 -12
  30. package/docs/classes/five.Scene.html +5 -3
  31. package/docs/classes/five.SphereBoundingVolume.html +17 -1
  32. package/docs/classes/five.Subscribe.html +43 -62
  33. package/docs/classes/five.TextureLoader.html +5 -1
  34. package/docs/classes/five.Tile.html +30 -1
  35. package/docs/classes/five.Tile3DModel.html +28 -1
  36. package/docs/classes/five.TileCubeTextureTarget.html +9 -1
  37. package/docs/classes/five.TileNode.html +4 -1
  38. package/docs/classes/five.Tileset.html +31 -5
  39. package/docs/classes/five.TilesetCache.html +8 -1
  40. package/docs/classes/five.TilesetTraverser.html +19 -1
  41. package/docs/classes/five.Work.html +28 -28
  42. package/docs/classes/five.XRButton.html +3 -1
  43. package/docs/classes/gltf_loader.DDSLoader.html +3 -1
  44. package/docs/classes/gltf_loader.DRACOLoader.html +8 -1
  45. package/docs/classes/gltf_loader.GLTFLoader.html +18 -17
  46. package/docs/classes/gltf_loader.GLTFObject.html +8 -6
  47. package/docs/classes/gltf_loader.GLTFParser.html +6 -1
  48. package/docs/classes/gltf_loader.THREEGLTFLoader.html +8 -1
  49. package/docs/classes/line.Line.html +10 -1
  50. package/docs/classes/line.LineGeometry.html +14 -1
  51. package/docs/classes/line.LineMaterial.html +8 -1
  52. package/docs/classes/line.LineSegmentsGeometry.html +12 -1
  53. package/docs/classes/line.THREE_Line2.html +4 -1
  54. package/docs/classes/line.THREE_LineSegments2.html +4 -1
  55. package/docs/classes/react.Store.html +23 -29
  56. package/docs/classes/sticker.Sticker.html +25 -32
  57. package/docs/classes/vfx.Airflow.html +8 -1
  58. package/docs/classes/vfx.Flame.html +10 -1
  59. package/docs/classes/vfx.Particle.html +79 -82
  60. package/docs/classes/vfx.SpotLight.html +7 -1
  61. package/docs/enums/five.VolumePlaneIntersect.html +4 -1
  62. package/docs/functions/five.defaultImageURLTransform.html +5 -0
  63. package/docs/functions/five.getViewportScale.html +1 -0
  64. package/docs/functions/five.imageSupport.html +1 -0
  65. package/docs/functions/five.isPanoId.html +1 -0
  66. package/docs/functions/five.loadAt3d.html +1 -0
  67. package/docs/functions/five.loadB3dm.html +1 -0
  68. package/docs/functions/five.loadDome.html +1 -0
  69. package/docs/functions/five.loadDomez.html +1 -0
  70. package/docs/functions/five.loadPbm.html +1 -0
  71. package/docs/functions/five.loadPnts.html +1 -0
  72. package/docs/functions/five.panoEqual.html +1 -0
  73. package/docs/functions/five.panoParse.html +1 -0
  74. package/docs/functions/five.panoStringify.html +1 -0
  75. package/docs/functions/five.parseWork.html +7 -0
  76. package/docs/functions/react.FiveCanvas-1.html +6 -0
  77. package/docs/functions/react.createFiveFeature.html +1 -0
  78. package/docs/functions/react.createFiveProvider.html +9 -0
  79. package/docs/functions/react.createStore.html +15 -0
  80. package/docs/functions/react.unsafe__useFiveInstance.html +5 -0
  81. package/docs/functions/react.useFiveAction.html +19 -0
  82. package/docs/functions/react.useFiveCameraDirection.html +3 -0
  83. package/docs/functions/react.useFiveCameraRaycaster.html +3 -0
  84. package/docs/functions/react.useFiveCurrentObserver.html +5 -0
  85. package/docs/functions/react.useFiveCurrentState.html +5 -0
  86. package/docs/functions/react.useFiveEventCallback.html +5 -0
  87. package/docs/functions/react.useFiveFloor.html +5 -0
  88. package/docs/functions/react.useFiveHelper.html +5 -0
  89. package/docs/functions/react.useFiveModelIntersectRaycaster.html +7 -0
  90. package/docs/functions/react.useFiveModelReadyState.html +4 -0
  91. package/docs/functions/react.useFiveProject2d.html +7 -0
  92. package/docs/functions/react.useFiveScene.html +2 -0
  93. package/docs/functions/react.useFiveSceneEffect.html +5 -0
  94. package/docs/functions/react.useFiveState.html +1 -0
  95. package/docs/functions/react.useFiveWork.html +8 -0
  96. package/docs/functions/react.withFive.html +1 -0
  97. package/docs/functions/vue.unsafe__useFiveInject.html +5 -0
  98. package/docs/functions/vue.useFiveAction.html +25 -0
  99. package/docs/functions/vue.useFiveCameraDirection.html +3 -0
  100. package/docs/functions/vue.useFiveCameraRaycaster.html +3 -0
  101. package/docs/functions/vue.useFiveCurrentObserver.html +5 -0
  102. package/docs/functions/vue.useFiveCurrentState.html +5 -0
  103. package/docs/functions/vue.useFiveEventCallback.html +5 -0
  104. package/docs/functions/vue.useFiveFloor.html +5 -0
  105. package/docs/functions/vue.useFiveHelper.html +5 -0
  106. package/docs/functions/vue.useFiveModel.html +2 -0
  107. package/docs/functions/vue.useFiveModelBounding.html +2 -0
  108. package/docs/functions/vue.useFiveModelIntersectRaycaster.html +7 -0
  109. package/docs/functions/vue.useFiveModelReadyState.html +4 -0
  110. package/docs/functions/vue.useFiveProject2d.html +7 -0
  111. package/docs/functions/vue.useFiveScene.html +2 -0
  112. package/docs/functions/vue.useFiveState.html +5 -0
  113. package/docs/functions/vue.useFiveWorks.html +8 -0
  114. package/docs/index.html +35 -79
  115. package/docs/interfaces/five.AddableObject.html +9 -9
  116. package/docs/interfaces/five.AjaxOptions.html +11 -0
  117. package/docs/interfaces/five.AnimationFrame.html +5 -1
  118. package/docs/interfaces/five.BaseEvent.html +5 -1
  119. package/docs/interfaces/five.BoundingVolume.html +14 -1
  120. package/docs/interfaces/five.CameraPose.html +6 -1
  121. package/docs/interfaces/five.ClipperParameter.html +3 -1
  122. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +25 -25
  123. package/docs/interfaces/five.EventCallback.html +355 -452
  124. package/docs/interfaces/five.FiveInitArgs.html +84 -86
  125. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +17 -15
  126. package/docs/interfaces/five.GestureEvent.html +19 -1
  127. package/docs/interfaces/five.ImageOptions.html +16 -18
  128. package/docs/interfaces/five.ImageURLMappings.html +1 -1
  129. package/docs/interfaces/five.ImageURLOptions.html +15 -15
  130. package/docs/interfaces/five.IntersectEvent.html +8 -1
  131. package/docs/interfaces/five.IntersectMeshInterface.html +3 -3
  132. package/docs/interfaces/five.Intersection.html +3 -7
  133. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +13 -11
  134. package/docs/interfaces/five.ModeChangeEvent.html +9 -1
  135. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +18 -18
  136. package/docs/interfaces/five.ModelEvent.html +8 -1
  137. package/docs/interfaces/five.ModelLodOptions.html +2 -1
  138. package/docs/interfaces/five.ModelsEvent.html +6 -1
  139. package/docs/interfaces/five.MotionKeyframe.html +4 -1
  140. package/docs/interfaces/five.MovePanoOptions.html +29 -30
  141. package/docs/interfaces/five.NetworkOptions.html +9 -9
  142. package/docs/interfaces/five.NetworkResourceEvent.html +9 -1
  143. package/docs/interfaces/five.ObjectEvent.html +6 -1
  144. package/docs/interfaces/five.PBMPanoPicture.html +7 -7
  145. package/docs/interfaces/five.PBMParameters.html +42 -43
  146. package/docs/interfaces/five.PanoCircleMeshCustomOptions.html +9 -1
  147. package/docs/interfaces/five.PanoCircleMeshInterface.html +21 -10
  148. package/docs/interfaces/five.PanoCircleMeshOptions.html +3 -1
  149. package/docs/interfaces/five.PanoCircleMeshSolidOptions.html +3 -1
  150. package/docs/interfaces/five.PanoEvent.html +11 -1
  151. package/docs/interfaces/five.PanoTextureEvent.html +9 -1
  152. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +32 -32
  153. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +18 -18
  154. package/docs/interfaces/five.Pose.html +15 -32
  155. package/docs/interfaces/five.RenderEvent.html +7 -1
  156. package/docs/interfaces/five.Scissor.html +11 -12
  157. package/docs/interfaces/five.State.html +20 -21
  158. package/docs/interfaces/five.StateEvent.html +7 -1
  159. package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -1
  160. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -1
  161. package/docs/interfaces/five.SubscribeMixinType.off.html +1 -1
  162. package/docs/interfaces/five.SubscribeMixinType.on.html +1 -1
  163. package/docs/interfaces/five.SubscribeMixinType.once.html +1 -1
  164. package/docs/interfaces/five.SubscribeMixinType.waitUnitl.html +1 -1
  165. package/docs/interfaces/five.TextureOptions.html +18 -20
  166. package/docs/interfaces/five.Tile3DModelLoaderOptions.html +6 -3
  167. package/docs/interfaces/five.TileCubeNode.html +7 -1
  168. package/docs/interfaces/five.TileCubeTree.html +2 -1
  169. package/docs/interfaces/five.TileHeader.html +9 -1
  170. package/docs/interfaces/five.TilesetHeader.html +5 -1
  171. package/docs/interfaces/five.TilesetOptions.html +5 -1
  172. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +9 -9
  173. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +28 -28
  174. package/docs/interfaces/five.WebXRAxesParams.html +4 -0
  175. package/docs/interfaces/five.WebXRControllerParams.html +2 -1
  176. package/docs/interfaces/five.WorkCubeImage.html +13 -13
  177. package/docs/interfaces/five.WorkImage.html +20 -21
  178. package/docs/interfaces/five.WorkInitial.html +17 -17
  179. package/docs/interfaces/five.WorkModel.html +12 -13
  180. package/docs/interfaces/five.WorkObserver.html +40 -39
  181. package/docs/interfaces/five.WorkOptions.html +17 -15
  182. package/docs/interfaces/five.WorkResolvedObserver.html +41 -37
  183. package/docs/interfaces/five.WorkTile.html +9 -1
  184. package/docs/interfaces/five.WorkVideo.html +8 -9
  185. package/docs/interfaces/five.WorksEvent.html +9 -1
  186. package/docs/interfaces/five.XRControllerEvent.html +8 -0
  187. package/docs/interfaces/five.XRGestureEvent.html +11 -1
  188. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +29 -28
  189. package/docs/interfaces/five.XRSessionEvent.html +7 -1
  190. package/docs/interfaces/gltf_loader.DDS.html +7 -1
  191. package/docs/interfaces/gltf_loader.GLTF.html +10 -4
  192. package/docs/interfaces/gltf_loader.GLTFReference.html +3 -1
  193. package/docs/interfaces/gltf_loader.THREEGLTF.html +8 -1
  194. package/docs/interfaces/react.FiveActionReactCallbacks.html +27 -37
  195. package/docs/interfaces/react.FiveInjectionTypes.html +113 -138
  196. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +2 -1
  197. package/docs/interfaces/sticker.IntersectionLike.html +7 -8
  198. package/docs/interfaces/vfx.ParticleArgs.html +67 -68
  199. package/docs/interfaces/vfx.ParticleTweenKeyframe.html +3 -1
  200. package/docs/interfaces/vue.FiveActionVueCallbacks.html +31 -42
  201. package/docs/modules/five.SubscribeMixinType.html +7 -1
  202. package/docs/modules/five.html +171 -631
  203. package/docs/modules/gltf_loader.html +11 -1
  204. package/docs/modules/line.html +8 -1
  205. package/docs/modules/react.FiveCanvas.html +8 -0
  206. package/docs/modules/react.html +37 -130
  207. package/docs/modules/sticker.html +3 -1
  208. package/docs/modules/vfx.html +8 -1
  209. package/docs/modules/vue.html +24 -115
  210. package/docs/types/five.AjaxResponseType.html +1 -0
  211. package/docs/types/five.AjaxResponseTypeMapping.html +1 -0
  212. package/docs/types/five.BoundingVolumeJson.html +1 -0
  213. package/docs/types/five.BoxBoundingVolumeJson.html +1 -0
  214. package/docs/types/five.ControllerCustomInitTypes.html +1 -0
  215. package/docs/types/five.ControllerEventTypes.html +32 -0
  216. package/docs/types/five.CoordinatesSystemTransformer.html +1 -0
  217. package/docs/types/five.EventTypes.html +26 -0
  218. package/docs/types/five.FivePlugin.html +71 -0
  219. package/docs/types/five.FivePluginInit.html +3 -0
  220. package/docs/types/five.FivePluginInstance.html +3 -0
  221. package/docs/types/five.GestureTypes.html +1 -0
  222. package/docs/types/five.LegacyEventType.html +203 -0
  223. package/docs/types/five.LooseWork.html +1 -0
  224. package/docs/types/five.LooseWorkInitial.html +1 -0
  225. package/docs/types/five.LooseWorkModel.html +1 -0
  226. package/docs/types/five.LooseWorkObserver.html +1 -0
  227. package/docs/types/five.LooseWorkPanorama.html +1 -0
  228. package/docs/types/five.LooseWorkVideo.html +1 -0
  229. package/docs/types/five.LooseWorkWithExtrinsics.html +8 -0
  230. package/docs/types/five.Mirror.html +1 -0
  231. package/docs/types/five.Mode.html +11 -0
  232. package/docs/types/five.ModelMaterialValues.html +1 -0
  233. package/docs/types/five.Models.html +12 -0
  234. package/docs/types/five.MotionValue.html +1 -0
  235. package/docs/types/five.NetWorkMeta.html +1 -0
  236. package/docs/types/five.NetworkError.html +1 -0
  237. package/docs/types/five.NetworkErrorCallback.html +1 -0
  238. package/docs/types/five.NetworkProgressCallback.html +1 -0
  239. package/docs/types/five.NetworkResponse.html +1 -0
  240. package/docs/types/five.NetworkState.html +1 -0
  241. package/docs/types/five.NetworkSuccessCallback.html +1 -0
  242. package/docs/types/five.NetworkType.html +1 -0
  243. package/docs/types/five.Pano.html +1 -0
  244. package/docs/types/five.PanoId.html +1 -0
  245. package/docs/types/five.ParseWorkOptions.html +13 -0
  246. package/docs/types/five.ParsedResultType.html +1 -0
  247. package/docs/types/five.PostProcessingType.html +1 -0
  248. package/docs/types/five.RegionBoundingVolumeJson.html +1 -0
  249. package/docs/types/five.RequestResult.html +1 -0
  250. package/docs/types/five.SphereBoundingVolumeJson.html +1 -0
  251. package/docs/types/five.SubscribeEventMap.html +1 -0
  252. package/docs/types/five.TileContentData.html +1 -0
  253. package/docs/types/five.TilesetFrameState.html +1 -0
  254. package/docs/types/five.WebXRControllerKey.html +1 -0
  255. package/docs/types/five.WebXRControllerType.html +1 -0
  256. package/docs/types/five.Works.html +1 -0
  257. package/docs/types/line.LineMaterialParameters.html +1 -0
  258. package/docs/types/react.FiveInjectionActionFeature.html +1 -0
  259. package/docs/types/react.FiveInjectionDataFeature.html +1 -0
  260. package/docs/types/react.FiveInjectionFeature.html +1 -0
  261. package/docs/types/react.FiveProviderPropTypes.html +1 -0
  262. package/docs/types/react.FiveProviderType.html +1 -0
  263. package/docs/types/react.StoreActionMapHanlder.html +1 -0
  264. package/docs/types/react.StoreActionMapType.html +1 -0
  265. package/docs/types/react.StoreProviderType.html +1 -0
  266. package/docs/types/react.StoreValueMapType.html +1 -0
  267. package/docs/types/vfx.ParticleType.html +1 -0
  268. package/docs/types/vue.FiveModelIntersectRaycaster.html +1 -0
  269. package/docs/types/vue.FiveProviderComponent.html +1 -0
  270. package/docs/types/vue.Project2d.html +1 -0
  271. package/docs/variables/five.PROXY_CONTROLLER_EVENT_NAMES.html +1 -0
  272. package/docs/variables/five.defaultPbmParameters.html +1 -0
  273. package/docs/variables/react.INJECTION_PROPNAME.html +1 -0
  274. package/docs/variables/vue.FiveCanvas.html +8 -0
  275. package/docs/variables/vue.FiveProvider.html +8 -0
  276. package/five/index.d.ts +381 -240
  277. package/five/index.js +1904 -218
  278. package/five/index.mjs +23432 -0
  279. package/gltf-loader/index.js +204 -203
  280. package/gltf-loader/index.mjs +1708 -0
  281. package/line/index.js +396 -202
  282. package/line/index.mjs +776 -0
  283. package/package.json +43 -7
  284. package/react/index.js +198 -203
  285. package/react/index.mjs +1044 -0
  286. package/scripts/five-plugin-init.js +1 -1
  287. package/scripts/five-quick-start-init.js +1 -1
  288. package/scripts/five-react-component-init.js +1 -1
  289. package/sticker/index.js +198 -203
  290. package/sticker/index.mjs +399 -0
  291. package/templates/plugin/devtools/webpack.example.js +1 -1
  292. package/templates/react-component/devtools/webpack.example.js +1 -1
  293. package/umd/five-gltf-loader.js +261 -1
  294. package/umd/five-line.js +454 -1
  295. package/umd/five-react.js +255 -1
  296. package/umd/five-sticker.js +255 -1
  297. package/umd/five-vfx.js +539 -1
  298. package/umd/five-vue.js +255 -1
  299. package/umd/five.js +2048 -2
  300. package/vfx/index.js +481 -202
  301. package/vfx/index.mjs +1032 -0
  302. package/vue/index.d.ts +1 -1
  303. package/vue/index.js +198 -203
  304. package/vue/index.mjs +574 -0
  305. package/docs/assets/icons.css +0 -1043
  306. package/docs/assets/icons.png +0 -0
  307. package/docs/assets/icons@2x.png +0 -0
  308. package/docs/assets/widgets.png +0 -0
  309. package/docs/assets/widgets@2x.png +0 -0
  310. package/docs/classes/five.BVH.html +0 -10
  311. package/docs/classes/five.BVHIntersect.html +0 -1
  312. package/docs/classes/five.BVHNode.html +0 -7
  313. package/docs/classes/five.BVHVector3.html +0 -1
  314. package/docs/classes/five.Clipper.html +0 -1
  315. package/docs/classes/five.PBMMaterialReferenceCache.html +0 -1
  316. package/docs/enums/five.PBMPointColorType.html +0 -1
  317. package/docs/enums/five.PBMPointShapeType.html +0 -1
  318. package/docs/enums/five.PBMPointSizeType.html +0 -1
  319. package/docs/modules.html +0 -1
  320. package/umd/five-gltf-loader.js.LICENSE.txt +0 -14
  321. package/umd/five-line.js.LICENSE.txt +0 -14
  322. package/umd/five-react.js.LICENSE.txt +0 -14
  323. package/umd/five-sticker.js.LICENSE.txt +0 -14
  324. package/umd/five.js.LICENSE.txt +0 -100
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
+ transformToEarthCentered: (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 {
@@ -1131,8 +1111,10 @@ export declare interface ImageURLOptions {
1131
1111
  }
1132
1112
 
1133
1113
  export declare class InternalWebGLRenderer extends THREE_2.WebGLRenderer {
1134
- constructor({ preserveDrawingBuffer, backgroundColor, backgroundAlpha, pixelRatio, antialias, webgl2, }: {
1114
+ constructor({ preserveDrawingBuffer, premultipliedAlpha, stencil, backgroundColor, backgroundAlpha, pixelRatio, antialias, webgl2, }: {
1135
1115
  preserveDrawingBuffer?: boolean;
1116
+ premultipliedAlpha?: boolean;
1117
+ stencil?: boolean;
1136
1118
  backgroundColor?: number | THREE_2.Color;
1137
1119
  backgroundAlpha?: number;
1138
1120
  pixelRatio?: number;
@@ -1147,15 +1129,9 @@ export declare interface IntersectEvent extends BaseEvent {
1147
1129
  intersection: Intersection | null;
1148
1130
  }
1149
1131
 
1150
- export declare interface Intersection {
1151
- /** 焦点坐标 */
1152
- point: THREE.Vector3;
1153
- /** 焦点面片 */
1154
- face?: {
1155
- normal: THREE.Vector3;
1156
- } | null;
1157
- /** 焦点距离 */
1158
- distance: number;
1132
+ export declare interface Intersection extends THREE_2.Intersection {
1133
+ /** 楼层 */
1134
+ floor: number;
1159
1135
  }
1160
1136
 
1161
1137
  export declare class IntersectMesh extends THREE_2.Object3D implements IntersectMeshInterface {
@@ -1470,6 +1446,17 @@ export declare type LegacyEventType = {
1470
1446
  * axes代表控制杆,axes数组的0-1元素分别代表左控制器的左(-1)右(1),左控制器的上(-1)下(1),axes数组的2-3元素同理
1471
1447
  */
1472
1448
  webXRControllerEvent(type: WebXRControllerType, key: WebXRControllerKey, params: WebXRControllerParams): void;
1449
+ /**
1450
+ * xr控制器的Axes原始实时数据状态
1451
+ */
1452
+ webXRAxesUpdate(type: 'left' | 'right', param: WebXRAxesParams): void;
1453
+ /**
1454
+ * xr控制器的控制器射线更新
1455
+ */
1456
+ webXRControllerRayUpdate(raycaster: {
1457
+ leftRay?: THREE_2.Raycaster;
1458
+ rightRay?: THREE_2.Raycaster;
1459
+ }): void;
1473
1460
  /**
1474
1461
  * 准备加载 Work 数据
1475
1462
  * @param input - 输入的 work
@@ -1568,6 +1555,42 @@ export declare type LegacyEventType = {
1568
1555
  network(source: string, type: NetworkType, state: NetworkState, detail: string): void;
1569
1556
  };
1570
1557
 
1558
+ export declare function loadAt3d(url: string, options: {
1559
+ textureOptions?: TextureOptions;
1560
+ textureBaseUri?: string;
1561
+ textureArray?: string[];
1562
+ fetcher: Fetcher;
1563
+ }): Promise<ParsedResultType>;
1564
+
1565
+ export declare function loadB3dm(url: string, options: {
1566
+ upAxis: 'X' | 'Y' | 'Z';
1567
+ fetcher: Fetcher;
1568
+ }): Promise<ParsedResultType>;
1569
+
1570
+ export declare function loadDome(url: string, options: {
1571
+ textureOptions: TextureOptions;
1572
+ textureBaseUri?: string;
1573
+ fetcher: Fetcher;
1574
+ }): Promise<ParsedResultType>;
1575
+
1576
+ export declare function loadDomez(url: string, options: {
1577
+ textureOptions: TextureOptions;
1578
+ textureBaseUri?: string;
1579
+ fetcher: Fetcher;
1580
+ }): Promise<ParsedResultType>;
1581
+
1582
+ export declare function loadPbm(url: string, options: {
1583
+ textureOptions?: TextureOptions;
1584
+ textureBaseUri?: string;
1585
+ textureArray?: string[];
1586
+ fetcher: Fetcher;
1587
+ }): Promise<ParsedResultType>;
1588
+
1589
+ export declare function loadPnts(url: string, options: {
1590
+ fetcher: Fetcher;
1591
+ computeBoundingBox?: boolean;
1592
+ }): Promise<ParsedResultType>;
1593
+
1571
1594
  export declare type LooseWork = {
1572
1595
  work_code?: string;
1573
1596
  code?: string;
@@ -1665,6 +1688,8 @@ export declare type LooseWorkWithExtrinsics = {
1665
1688
  transform?: number[];
1666
1689
  /** 可视区域 */
1667
1690
  viewerRequestVolume?: BoundingVolumeJson;
1691
+ /** 模型显示最小细化层级 */
1692
+ modelMinLevelOfDetail?: number;
1668
1693
  /** 模型显示最大细化层级 */
1669
1694
  modelMaxLevelOfDetail?: number;
1670
1695
  /** 模型最大内存缓存 */
@@ -1676,6 +1701,8 @@ export declare type LooseWorkWithExtrinsics = {
1676
1701
  };
1677
1702
 
1678
1703
  export declare interface MapviewControllerCustomInitArgs {
1704
+ /** 默认水平角 */
1705
+ defaultLongitude?: number;
1679
1706
  /** 默认俯仰角 */
1680
1707
  defaultLatitude?: number;
1681
1708
  /** 默认相机距离 */
@@ -1740,7 +1767,18 @@ export declare class Model extends THREE_2.Object3D {
1740
1767
  type: string;
1741
1768
  upAxis: string;
1742
1769
  coordinates: string;
1743
- scene: Tile3DModel;
1770
+ scene: Tile3DModel | null;
1771
+ error: Error | null;
1772
+ coordinatesToWorldPoint: (coordinates: {
1773
+ longitude: number;
1774
+ latitude: number;
1775
+ altitude: number;
1776
+ }) => THREE_2.Vector3;
1777
+ worldPointToCoordinates: (point: THREE_2.Vector3) => {
1778
+ longitude: number;
1779
+ latitude: number;
1780
+ altitude: number;
1781
+ };
1744
1782
  }[];
1745
1783
  onError: (error: Error) => void;
1746
1784
  onShownFloorChange: (floorIndex: number | null) => void;
@@ -1751,37 +1789,43 @@ export declare class Model extends THREE_2.Object3D {
1751
1789
  floorLength: number;
1752
1790
  /** 材质贴图参数 */
1753
1791
  textureOptions: TextureOptions;
1792
+ autoRefine: boolean;
1754
1793
  /** 模型是否已经细化 */
1755
1794
  refined: boolean;
1795
+ /** 模型细化进度 */
1796
+ refineProgress: [number, number];
1756
1797
  /** 模型已经加载 */
1757
1798
  loaded: boolean;
1758
- /** 当前样式参数 */
1759
- materialVersion: string;
1760
- private _materialValues;
1761
- private _materialVersionMap;
1762
- private _floorIndex;
1763
- private _clippers;
1764
- /** 样式缓存 */
1765
- private cache;
1799
+ /** 是否更新 */
1766
1800
  needsRender: boolean;
1801
+ coordinatesSystemTransformers: CoordinatesSystemTransformer[];
1802
+ /** 缓存相机 */
1803
+ cacheCameras: (THREE_2.PerspectiveCamera | Camera)[];
1804
+ /** 当前样式参数 */
1805
+ materialVersion: number;
1806
+ private materialParameters;
1767
1807
  private disposed;
1768
1808
  constructor(options?: {
1809
+ coordinatesSystemTransformers?: CoordinatesSystemTransformer[];
1769
1810
  onError?: (error: Error) => void;
1770
1811
  onShownFloorChange?: (floorIndex: number | null) => void;
1771
1812
  onLoad?: () => void;
1772
1813
  });
1773
1814
  get empty(): boolean;
1774
1815
  /** 获取材质参数 */
1775
- getMaterial(): ModelMaterialValues;
1816
+ getMaterial(): PBMParameters;
1776
1817
  /** 设置材质参数 */
1777
- setMaterial(values: Partial<ModelMaterialValues>): void;
1818
+ setMaterial(values: Partial<PBMParameters>): void;
1778
1819
  /**
1779
1820
  * 当前显示的楼层
1780
1821
  */
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);
1822
+ get shownFloorIndex(): PBMParameters['shownFloorIndex'];
1823
+ set shownFloorIndex(floorIndex: PBMParameters['shownFloorIndex']);
1824
+ /**
1825
+ * 当前显示的楼层
1826
+ */
1827
+ get shownFloor(): number | null;
1828
+ set shownFloor(floor: number | null);
1785
1829
  /**
1786
1830
  * 显示某楼层
1787
1831
  * @example
@@ -1790,7 +1834,7 @@ export declare class Model extends THREE_2.Object3D {
1790
1834
  * model.show(1) //显示第一楼层
1791
1835
  * ```
1792
1836
  */
1793
- show(floorIndex?: PBMParameters['floorIndex'] | null): void;
1837
+ show(floor?: number | null): void;
1794
1838
  /**
1795
1839
  * 裁切
1796
1840
  */
@@ -1809,15 +1853,13 @@ export declare class Model extends THREE_2.Object3D {
1809
1853
  * @param floors - 和某一楼层做碰撞检测, 不传为和所有楼层做碰撞检测
1810
1854
  * @returns 返回碰撞
1811
1855
  */
1812
- intersectRaycaster(raycaster: THREE_2.Raycaster): Intersection[];
1856
+ intersectRaycaster(raycaster: THREE_2.Raycaster, floor?: undefined | null | number, sortByDistance?: boolean): Intersection[];
1813
1857
  /**
1814
1858
  * 加载模型
1815
1859
  * @param work - work 的
1816
1860
  * @param imageOptions - 图片参数
1817
1861
  */
1818
1862
  load(work: Work, options?: {
1819
- networkSubscribe?: NetworkSubscribe;
1820
- requestProxy?: (url: string) => string | Promise<string>;
1821
1863
  textureOptions?: TextureOptions;
1822
1864
  }): Promise<void>;
1823
1865
  update(renderer: THREE_2.WebGLRenderer, camera: Camera, mode: Mode): void;
@@ -1842,16 +1884,33 @@ export declare interface ModelLodOptions {
1842
1884
  maxDepth?: number;
1843
1885
  }
1844
1886
 
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'>;
1887
+ export declare type ModelMaterialValues = Omit<PBMParameters, 'clippers' | 'shownFloorIndex'>;
1846
1888
 
1847
1889
  export declare type Models = Model[] & {
1848
1890
  needsRender: boolean;
1891
+ /** 包围盒 */
1849
1892
  bounding: THREE_2.Box3;
1893
+ /** 是否家在完成 */
1850
1894
  loaded: boolean;
1895
+ /** 是否细化完成 */
1851
1896
  refined: boolean;
1852
- materialVersion: string;
1897
+ /** 细化成都 */
1898
+ refineProgress: [number, number];
1899
+ materialVersion: number;
1900
+ /** 缓存相机 */
1901
+ cacheCameras: (THREE_2.PerspectiveCamera | Camera)[];
1902
+ /** 是否自动更新模型 */
1903
+ autoUpdate: boolean;
1904
+ /**
1905
+ * 计算模型射线碰撞检测
1906
+ * @param raycaster - THREE 射线对象
1907
+ * @param floors - 和某一楼层做碰撞检测, 不传为和所有楼层做碰撞检测
1908
+ * @returns 返回碰撞
1909
+ */
1853
1910
  intersectRaycaster(raycaster: THREE_2.Raycaster): Intersection[];
1911
+ /** 设置材质参数 */
1854
1912
  setMaterial(values: Partial<ModelMaterialValues>): void;
1913
+ /** 获取材质参数 */
1855
1914
  getMaterial(): ModelMaterialValues;
1856
1915
  update(renderer: THREE_2.WebGLRenderer, camera: Camera, mode: Mode): void;
1857
1916
  };
@@ -1908,6 +1967,18 @@ export declare interface MovePanoOptions extends Partial<Omit<State, "offset" |
1908
1967
  moveCancelCallback?: () => void;
1909
1968
  }
1910
1969
 
1970
+ export declare class NetworkAbortError extends Error {
1971
+ constructor(source: string, type: NetworkType);
1972
+ }
1973
+
1974
+ export declare type NetworkError = NetworkResponseError | NetworkAbortError | NetworkTimeoutError | NetworkFirbiddenError;
1975
+
1976
+ export declare type NetworkErrorCallback = (error: NetworkError) => void;
1977
+
1978
+ export declare class NetworkFirbiddenError extends Error {
1979
+ constructor(source: string, type: NetworkType, reason: string);
1980
+ }
1981
+
1911
1982
  export declare type NetWorkMeta = {
1912
1983
  origin: string;
1913
1984
  source: string;
@@ -1931,6 +2002,8 @@ export declare interface NetworkOptions {
1931
2002
  allowHosts?: string[];
1932
2003
  }
1933
2004
 
2005
+ export declare type NetworkProgressCallback = (percent: number) => void;
2006
+
1934
2007
  export declare interface NetworkResourceEvent extends BaseEvent {
1935
2008
  source: string;
1936
2009
  requestType: NetworkType;
@@ -1943,6 +2016,11 @@ export declare type NetworkResponse<T = any, E extends NetWorkMeta | NetWorkMeta
1943
2016
  meta: E;
1944
2017
  };
1945
2018
 
2019
+ export declare class NetworkResponseError extends Error {
2020
+ httpStatus: number;
2021
+ constructor(source: string, type: NetworkType, status: number);
2022
+ }
2023
+
1946
2024
  export declare type NetworkState = "ok" | "preload" | "error" | "proxy-error" | "timeout" | "forbidden";
1947
2025
 
1948
2026
  export declare class NetworkSubscribe extends Subscribe<{
@@ -1950,6 +2028,12 @@ export declare class NetworkSubscribe extends Subscribe<{
1950
2028
  }> {
1951
2029
  }
1952
2030
 
2031
+ export declare type NetworkSuccessCallback<T = any> = (response: NetworkResponse<T>) => void;
2032
+
2033
+ export declare class NetworkTimeoutError extends Error {
2034
+ constructor(source: string, type: NetworkType, timeout: number);
2035
+ }
2036
+
1953
2037
  export declare type NetworkType = "XMLHttpRequest" | "Script" | "Image" | "Link";
1954
2038
 
1955
2039
  export declare interface ObjectEvent extends BaseEvent {
@@ -2165,6 +2249,14 @@ export declare interface PanoTextureEvent extends BaseEvent {
2165
2249
  error: Error | null;
2166
2250
  }
2167
2251
 
2252
+ export declare type ParsedResultType = {
2253
+ type: 'b3dm' | 'pnts' | 'at3d' | 'pbm' | 'dome' | 'domez' | 'glb';
2254
+ byteLength: number;
2255
+ uri: string;
2256
+ object: THREE_2.Object3D;
2257
+ dispose: () => void;
2258
+ };
2259
+
2168
2260
  /**
2169
2261
  * 解析 Work 数据
2170
2262
  * @param obj - work 数据,从如数开发者平台获取
@@ -2189,6 +2281,8 @@ export declare type ParseWorkOptions = {
2189
2281
  /** 可视区域 */
2190
2282
  viewerRequestVolume?: BoundingVolume | BoundingVolumeJson;
2191
2283
  /** 模型显示最大细化层级 */
2284
+ modelMinLevelOfDetail?: number;
2285
+ /** 模型显示最大细化层级 */
2192
2286
  modelMaxLevelOfDetail?: number;
2193
2287
  /** 模型最大内存缓存 */
2194
2288
  modelMaxMemoryUsage?: number;
@@ -2205,87 +2299,73 @@ export declare class PBMContainer extends THREE_2.Group {
2205
2299
  needsRender: boolean;
2206
2300
  /** 当前样式参数 */
2207
2301
  materialParameters: PBMParameters;
2208
- cache: PBMMaterialReferenceCache;
2209
2302
  constructor();
2210
2303
  /** 获取材质参数 */
2211
2304
  getMaterial(): PBMParameters;
2212
2305
  /** 设置材质参数 */
2213
2306
  setMaterial(parameters: Partial<PBMParameters>): void;
2214
- update(renderer: THREE_2.WebGLRenderer, camera: Camera): void;
2215
- /** 析构材质 */
2216
- dispose(): void;
2217
2307
  }
2218
2308
 
2219
2309
  /** PBM 模型组 */
2220
2310
  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
2311
  }
2236
2312
 
2237
2313
  /** PBM 对象 */
2238
2314
  export declare class PBMMesh extends THREE_2.Mesh<THREE_2.BufferGeometry, PBMMeshMaterial[]> {
2239
- /** 是否需要更新按需渲染 */
2240
- needsRender: boolean;
2315
+ model?: Model;
2316
+ constructor(geometry: THREE_2.BufferGeometry, materials: PBMMeshMaterial[]);
2241
2317
  }
2242
2318
 
2243
2319
  /** PBM 材质 */
2244
2320
  export declare class PBMMeshMaterial extends THREE_2.ShaderMaterial implements PBMParameters {
2245
2321
  /** 更新版本 */
2246
- pbmMaterialParametersVersion: number;
2322
+ syncModelVersion?: string;
2247
2323
  /** 起始点 */
2248
- pano0: PBMPanoPicture | null;
2324
+ pano0: PBMParameters['pano0'];
2249
2325
  /** 结束点 */
2250
- pano1: PBMPanoPicture | null;
2326
+ pano1: PBMParameters['pano1'];
2251
2327
  /** 模型贴图和全景图的混合程度 [0-1] */
2252
- modelAlpha: number;
2328
+ modelAlpha: PBMParameters['modelAlpha'];
2253
2329
  /** 全景图混合程度 [0-1] */
2254
- progress: number;
2330
+ progress: PBMParameters['progress'];
2255
2331
  /** 全景图通过过度黑色混合 */
2256
- useBlackTransition: boolean;
2332
+ useBlackTransition: PBMParameters['useBlackTransition'];
2257
2333
  /** 模型透明度 */
2258
- opacity: number;
2334
+ opacity: PBMParameters['opacity'];
2259
2335
  /** 模型颜色*/
2260
- constantColor: THREE_2.Vector3 | null;
2336
+ constantColor: PBMParameters['constantColor'];
2261
2337
  /** 楼层参数*/
2262
- floorIndex: number;
2338
+ shownFloorIndex: PBMParameters['shownFloorIndex'];
2263
2339
  /** 对外模型裁切参数*/
2264
- clippers: ClipperParameter[] | null;
2340
+ clippers: PBMParameters['clippers'];
2265
2341
  /** edl*/
2266
- useEDL: boolean;
2342
+ useEDL: PBMParameters['useEDL'];
2267
2343
  /** hq*/
2268
- useHQWeight: boolean;
2344
+ useHQWeight: PBMParameters['useHQWeight'];
2269
2345
  /** HQDepthMask*/
2270
- useHQDepth: boolean;
2346
+ useHQDepth: PBMParameters['useHQDepth'];
2271
2347
  /** 点云着色方式*/
2272
- pointColorType: PBMPointColorType;
2348
+ pointColor: PBMParameters['pointColor'];
2273
2349
  /** 点云大小绘制方式*/
2274
- pointSizeType: PBMPointSizeType;
2350
+ pointSize: PBMParameters['pointSize'];
2275
2351
  /** 点云形状*/
2276
- pointShape: PBMPointShapeType;
2352
+ pointShape: PBMParameters['pointShape'];
2277
2353
  /** 点云基础大小*/
2278
- pointSize: number;
2279
- /** 自适应点云大小因子*/
2280
- pointSizeAdaptiveScale: number;
2281
- /** 点云最大尺寸*/
2282
- pointMinSize: number;
2283
- /** 点云最小尺寸*/
2284
- pointMaxSize: number;
2354
+ pointScale: PBMParameters['pointScale'];
2355
+ /** 点云背面绘制方式*/
2356
+ pointBack: PBMParameters['pointBack'];
2357
+ /** 点云像素最小值*/
2358
+ pointMinPixel: PBMParameters['pointMinPixel'];
2359
+ /** 点云像素最大值*/
2360
+ pointMaxPixel: PBMParameters['pointMaxPixel'];
2285
2361
  /** 高程彩色图*/
2286
- gradientTexture: THREE_2.Texture | null;
2362
+ gradientTexture: PBMParameters['gradientTexture'];
2363
+ /** 所属楼层*/
2364
+ floor: number;
2287
2365
  constructor(parameters?: Partial<PBMParameters>);
2288
- update(renderer: THREE_2.WebGLRenderer, camera: Camera, cache: PBMMaterialReferenceCache): void;
2366
+ onBeforeCompile(shader: THREE_2.Shader, renderer: THREE_2.WebGLRenderer): void;
2367
+ update(renderer: THREE_2.WebGLRenderer, camera: THREE_2.Camera): void;
2368
+ syncModel(model: Model): void;
2289
2369
  }
2290
2370
 
2291
2371
  export declare interface PBMPanoPicture {
@@ -2312,7 +2392,7 @@ export declare interface PBMParameters {
2312
2392
  /** 模型透明度 */
2313
2393
  opacity: number;
2314
2394
  /** 楼层参数*/
2315
- floorIndex: number;
2395
+ shownFloorIndex: number;
2316
2396
  /** 模型裁切参数(工程侧调用)*/
2317
2397
  clippers: ClipperParameter[] | null;
2318
2398
  /** 模型颜色*/
@@ -2324,38 +2404,23 @@ export declare interface PBMParameters {
2324
2404
  /** 是否使用HQ_DEPTH_MASK*/
2325
2405
  useHQDepth: boolean;
2326
2406
  /** 点云形状*/
2327
- pointShape: PBMPointShapeType;
2407
+ pointShape: 'SQUARE' | 'CIRCLE';
2328
2408
  /** 点云着色方式*/
2329
- pointColorType: PBMPointColorType;
2409
+ pointColor: 'RGB' | 'ALTITUDE';
2330
2410
  /** 点云大小绘制方式*/
2331
- pointSizeType: PBMPointSizeType;
2411
+ pointSize: 'FIXED' | 'ATTENUATION' | 'GEOMETRIC';
2412
+ /** 点云背面绘制方式*/
2413
+ pointBack: 'VISIBLE' | 'HIDDEN' | 'DARK';
2332
2414
  /** 点云基础大小*/
2333
- pointSize: number;
2415
+ pointScale: number;
2334
2416
  /** 点云最大尺寸*/
2335
- pointMinSize: number;
2417
+ pointMinPixel: number;
2336
2418
  /** 点云最小尺寸*/
2337
- pointMaxSize: number;
2338
- /** 自适应点云尺寸因子*/
2339
- pointSizeAdaptiveScale: number;
2419
+ pointMaxPixel: number;
2340
2420
  /** 高程彩色图*/
2341
2421
  gradientTexture: THREE_2.Texture | null;
2342
2422
  }
2343
2423
 
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
2424
  /**
2360
2425
  * 相机位姿
2361
2426
  * [[include: coordinate.md]]
@@ -2375,7 +2440,7 @@ export declare interface Pose {
2375
2440
 
2376
2441
  export declare type PostProcessingType = 'edl' | 'hq' | 'luminance' | null;
2377
2442
 
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"];
2443
+ 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
2444
 
2380
2445
  export declare class RegionBoundingVolume implements BoundingVolume {
2381
2446
  type: "regin";
@@ -2502,7 +2567,7 @@ export declare class SphereBoundingVolume implements BoundingVolume {
2502
2567
  distanceSquaredTo(point: THREE_2.Vector3): number;
2503
2568
  distanceTo(point: THREE_2.Vector3): number;
2504
2569
  intersectPlane(plane: THREE_2.Plane): VolumePlaneIntersect;
2505
- intersectRay(ray: THREE_2.Ray): boolean;
2570
+ intersectRay(ray: THREE_2.Ray, far?: number): boolean;
2506
2571
  }
2507
2572
 
2508
2573
  export declare type SphereBoundingVolumeJson = {
@@ -2621,7 +2686,7 @@ export declare namespace SubscribeMixinType {
2621
2686
  }
2622
2687
 
2623
2688
  export declare class TextureLoader {
2624
- loadTexture(source: string, options?: {
2689
+ loadTexture(source: string, options: {
2625
2690
  imageURL?: {
2626
2691
  transform?: (source: string, options: ImageURLOptions) => string;
2627
2692
  options?: ImageURLOptions;
@@ -2634,7 +2699,9 @@ export declare class TextureLoader {
2634
2699
  wrapT?: THREE_2.Wrapping;
2635
2700
  maxSize?: THREE_2.Vector2;
2636
2701
  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>>;
2702
+ timeout?: number;
2703
+ fetcher: Fetcher;
2704
+ }, 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
2705
  loadCubeTexture(sources: WorkCubeImage, options: {
2639
2706
  imageURL?: {
2640
2707
  transform?: (source: string, options: ImageURLOptions) => string;
@@ -2646,7 +2713,9 @@ export declare class TextureLoader {
2646
2713
  wrapS?: THREE_2.Wrapping;
2647
2714
  wrapT?: THREE_2.Wrapping;
2648
2715
  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[]>>;
2716
+ timeout?: number;
2717
+ fetcher: Fetcher;
2718
+ }, 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
2719
  loadTiledCubeTexture(sources: WorkCubeImage, tileSources: WorkTile[], options: {
2651
2720
  tileImageSize?: number;
2652
2721
  tileMaxLevel?: number;
@@ -2660,7 +2729,9 @@ export declare class TextureLoader {
2660
2729
  wrapS?: THREE_2.Wrapping;
2661
2730
  wrapT?: THREE_2.Wrapping;
2662
2731
  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[]>>;
2732
+ timeout?: number;
2733
+ fetcher: Fetcher;
2734
+ }, onLoad: (response: NetworkResponse<TileCubeTextureTarget, NetWorkMeta[]>) => void, onError: (error: Error) => void, onProgress: (percent: number) => void, renderer: THREE_2.WebGLRenderer): Promise<NetworkResponse<TileCubeTextureTarget, NetWorkMeta[]>>;
2664
2735
  }
2665
2736
 
2666
2737
  /**
@@ -2714,7 +2785,6 @@ export declare class Tile {
2714
2785
  requestedFrameNumber: number;
2715
2786
  touchedFrameNumber: number;
2716
2787
  selectionDepth: number;
2717
- centerZDepth: number;
2718
2788
  shouldRefine: boolean;
2719
2789
  distanceToCamera: number;
2720
2790
  screenSpaceError: number;
@@ -2740,57 +2810,58 @@ export declare class Tile {
2740
2810
  }
2741
2811
 
2742
2812
  export declare class Tile3DModel extends THREE_2.Object3D {
2813
+ static DEFAULT_MIN_LEVEL_OF_DETAIL: number;
2743
2814
  static DEFAULT_MAX_LEVEL_OF_DETAIL: number;
2744
2815
  static DEFAULT_MAX_MEMORY_USAGE: number;
2745
2816
  static DEFAULT_MAX_SCREEN_SPACE_ERROR: number;
2746
2817
  static DEFAULT_MAX_REQUESTS: number;
2747
- workCode: string;
2818
+ objType: 'mesh' | 'point_cloud';
2819
+ model: Model;
2820
+ search: string;
2748
2821
  tileset: Tileset;
2822
+ minLevelOfDetail: number;
2749
2823
  maxLevelOfDetail: number;
2750
2824
  boundingBox: THREE_2.Box3;
2751
2825
  needsRefined: boolean;
2752
2826
  refined: boolean;
2827
+ refineProgress: [number, number];
2753
2828
  loaded: boolean;
2754
- disposed: boolean;
2755
2829
  needsRender: boolean;
2756
- lastRefineTime: number;
2830
+ cacheCameras: (THREE_2.PerspectiveCamera | Camera)[];
2831
+ private lastRefineTime;
2832
+ private disposed;
2757
2833
  private nodeGroup;
2758
2834
  private debugBoundingGroup;
2759
2835
  private nodes;
2760
2836
  private debugBoundings;
2761
2837
  private unloadTileQueue;
2762
- constructor(workCode: string, tilesetHeader: TilesetHeader, options: Partial<Tile3DModelLoaderOptions>);
2838
+ constructor(model: Model, objType: 'mesh' | 'point_cloud', tilesetHeader: TilesetHeader, options: Tile3DModelLoaderOptions);
2763
2839
  get debug(): boolean;
2764
2840
  set debug(value: boolean);
2765
2841
  get maxMemoryUsage(): number;
2766
2842
  set maxMemoryUsage(value: number);
2767
- get viewDistanceScale(): number;
2768
- set viewDistanceScale(value: number);
2769
2843
  get maxRequests(): number;
2770
2844
  set maxRequests(value: number);
2771
2845
  get maxScreenSpaceError(): number;
2772
2846
  set maxScreenSpaceError(value: number);
2773
2847
  loadContent(tile: Tile, options: {
2774
- allowHosts?: string[];
2775
- requestProxy?: (url: string) => string | Promise<string>;
2776
- networkSubscribe?: NetworkSubscribe;
2848
+ fetcher: Fetcher;
2777
2849
  }): Promise<boolean>;
2778
- intersectRaycaster(raycaster: THREE_2.Raycaster): Intersection[];
2850
+ intersectRaycaster(raycaster: THREE_2.Raycaster, sortByDistance?: boolean, target?: Intersection[]): Intersection[];
2779
2851
  update(renderer: THREE_2.WebGLRenderer, camera: Camera): void;
2780
2852
  dispose(): void;
2781
2853
  }
2782
2854
 
2783
2855
  /** Advanced loader options */
2784
2856
  export declare interface Tile3DModelLoaderOptions {
2857
+ fetcher: Fetcher;
2785
2858
  resourcePath: string;
2786
- allowHosts?: string[];
2787
- requestProxy?: (url: string) => string | Promise<string>;
2788
- networkSubscribe?: NetworkSubscribe;
2859
+ search?: string;
2789
2860
  onError?: (error: Error) => void;
2790
2861
  }
2791
2862
 
2792
2863
  export declare type TileContentData = {
2793
- type: 'b3dm' | 'pnts' | 'at3d' | 'pbm';
2864
+ type: 'b3dm' | 'pnts' | 'at3d' | 'pbm' | 'dome' | 'domez' | 'glb';
2794
2865
  byteLength: number;
2795
2866
  uri: string;
2796
2867
  object: TileNode;
@@ -2831,7 +2902,9 @@ export declare class TileCubeTextureTarget {
2831
2902
  magFilter?: THREE_2.TextureFilter;
2832
2903
  wrapS?: THREE_2.Wrapping;
2833
2904
  wrapT?: THREE_2.Wrapping;
2834
- } & NetworkOptions, renderer: THREE_2.WebGLRenderer);
2905
+ timeout?: number;
2906
+ fetcher: Fetcher;
2907
+ }, renderer: THREE_2.WebGLRenderer);
2835
2908
  get cubeRenderTarget(): THREE_2.WebGLCubeRenderTarget | null;
2836
2909
  set cubeRenderTarget(cubeRenderTarget: THREE_2.WebGLCubeRenderTarget | null);
2837
2910
  private requestTile;
@@ -2861,11 +2934,9 @@ export declare interface TileHeader {
2861
2934
  }
2862
2935
 
2863
2936
  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[];
2937
+ private disposers;
2938
+ constructor(obj: THREE_2.Object3D, objDisposer: () => void);
2939
+ intersectRaycaster(raycaster: THREE_2.Raycaster, sortByDistance?: boolean, target?: Intersection[]): Intersection[];
2869
2940
  dispose(): void;
2870
2941
  }
2871
2942
 
@@ -2877,26 +2948,35 @@ export declare class Tileset {
2877
2948
  asset: {
2878
2949
  version: string;
2879
2950
  tilesetVersion: string;
2880
- gltfUpAxis: "X" | "Y" | "Z";
2951
+ gltfUpAxis: "Y" | "Z";
2952
+ overview?: {
2953
+ imageFile: string;
2954
+ worldFile: string;
2955
+ imageWidth: number;
2956
+ imageHeight: number;
2957
+ };
2958
+ [key: string]: any;
2881
2959
  };
2882
2960
  id: string;
2883
2961
  frameNumber: number;
2884
2962
  properties: Record<string, any>;
2885
2963
  options: TilesetOptions;
2886
2964
  root: Tile;
2887
- transfrom: THREE_2.Matrix4;
2965
+ transform: THREE_2.Matrix4;
2966
+ transformIsIdentity: boolean;
2888
2967
  geometricError: number;
2889
- traverser: TilesetTraverser;
2968
+ private traverser;
2890
2969
  cache: TilesetCache;
2891
2970
  requestScheduler: RequestScheduler<string>;
2892
2971
  private memoryUsageInBytes;
2893
2972
  maxMemoryUsage: number;
2894
- viewDistanceScale: number;
2895
2973
  tiles: Map<string, Tile>;
2896
2974
  private pendingCount;
2897
2975
  constructor(id: string, header: TilesetHeader, options: TilesetOptions);
2898
2976
  get maxRequests(): number;
2899
2977
  set maxRequests(value: number);
2978
+ get skipLevelOfDetail(): boolean;
2979
+ set skipLevelOfDetail(value: boolean);
2900
2980
  get maxScreenSpaceError(): number;
2901
2981
  set maxScreenSpaceError(value: number);
2902
2982
  get selectedTiles(): Map<string, Tile>;
@@ -2905,11 +2985,7 @@ export declare class Tileset {
2905
2985
  reset(): void;
2906
2986
  /** Is the tileset loaded (update needs to have been called at least once) */
2907
2987
  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;
2988
+ traverse(frameState: TilesetFrameState, cacheFrameStates?: TilesetFrameState[]): void;
2913
2989
  loadTile(tile: Tile): void;
2914
2990
  unloadTile(tile: Tile): void;
2915
2991
  }
@@ -2932,11 +3008,14 @@ export declare type TilesetFrameState = {
2932
3008
  position: THREE.Vector3;
2933
3009
  direction: THREE.Vector3;
2934
3010
  up: THREE.Vector3;
3011
+ visible: boolean;
2935
3012
  };
2936
3013
  height: number;
3014
+ pixelRatio: number;
2937
3015
  cullingVolume: CullingVolume;
2938
3016
  frameNumber: number;
2939
3017
  sseDenominator: number;
3018
+ minLevelOfDetail: number;
2940
3019
  maxLevelOfDetail: number;
2941
3020
  };
2942
3021
 
@@ -2944,7 +3023,14 @@ export declare interface TilesetHeader {
2944
3023
  asset: {
2945
3024
  version: string;
2946
3025
  tilesetVersion?: string;
2947
- gltfUpAxis?: "X" | "Y" | "Z";
3026
+ gltfUpAxis?: "Y" | "Z";
3027
+ overview?: {
3028
+ imageFile: string;
3029
+ worldFile: string;
3030
+ imageWidth: number;
3031
+ imageHeight: number;
3032
+ };
3033
+ [key: string]: any;
2948
3034
  };
2949
3035
  properties?: Record<string, any>;
2950
3036
  geometricError: number;
@@ -2952,13 +3038,10 @@ export declare interface TilesetHeader {
2952
3038
  }
2953
3039
 
2954
3040
  export declare interface TilesetOptions {
3041
+ contentLoader: (tile: Tile) => Promise<boolean>;
2955
3042
  onTileLoad: (tile: Tile) => any;
2956
3043
  onTileUnload: (tile: Tile) => any;
2957
3044
  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
3045
  }
2963
3046
 
2964
3047
  export declare class TilesetTraverser {
@@ -2969,15 +3052,15 @@ export declare class TilesetTraverser {
2969
3052
  loadSiblings: boolean;
2970
3053
  skipLevelOfDetail: boolean;
2971
3054
  maxScreenSpaceError: number;
2972
- onTraversalEnd: (frameState: TilesetFrameState) => any;
2973
3055
  requestedTiles: Map<string, Tile>;
2974
3056
  selectedTiles: Map<string, Tile>;
2975
3057
  needsRefinedTiles: Map<string, Tile>;
2976
3058
  emptyTiles: Map<string, Tile>;
3059
+ private _canSelectTile;
2977
3060
  private _traversalStack;
2978
3061
  private _emptyTraversalStack;
2979
- constructor(onTraversalEnd: (frameState: TilesetFrameState) => any);
2980
- traverse(root: Tile, frameState: TilesetFrameState): void;
3062
+ constructor();
3063
+ traverse(root: Tile, frameState: TilesetFrameState, cacheFrameStates?: TilesetFrameState[]): void;
2981
3064
  reset(): void;
2982
3065
  private executeTraversal;
2983
3066
  private updateChildTiles;
@@ -3008,13 +3091,30 @@ export declare enum VolumePlaneIntersect {
3008
3091
  export declare interface VRPanoramaControllerCustomInitArgs extends Omit<PanoramaControllerCustomInitArgs, "maxLatitude" | "minLatitude"> {
3009
3092
  }
3010
3093
 
3094
+ export declare interface WebXRAxesParams {
3095
+ raycaster: {
3096
+ leftRay?: THREE_2.Raycaster;
3097
+ rightRay?: THREE_2.Raycaster;
3098
+ };
3099
+ axesState: {
3100
+ up: number;
3101
+ down: number;
3102
+ left: number;
3103
+ right: number;
3104
+ };
3105
+ deltaTime: number;
3106
+ }
3107
+
3011
3108
  export declare type WebXRControllerKey = XRGestureEvent['buttons'];
3012
3109
 
3013
3110
  export declare interface WebXRControllerParams {
3014
- raycaster: THREE_2.Raycaster[];
3111
+ raycaster: {
3112
+ leftRay: THREE_2.Raycaster;
3113
+ rightRay: THREE_2.Raycaster;
3114
+ };
3015
3115
  }
3016
3116
 
3017
- export declare type WebXRControllerType = 'tap' | 'press' | 'axes';
3117
+ export declare type WebXRControllerType = 'tap' | 'press' | 'axes' | 'buttonUp' | 'buttonDown';
3018
3118
 
3019
3119
  export declare class Work {
3020
3120
  /** 名称 */
@@ -3130,6 +3230,8 @@ export declare interface WorkObserver {
3130
3230
  floorIndex: number;
3131
3231
  /** 点位 derived_id */
3132
3232
  derivedId?: number;
3233
+ /** 点位 derived_id_str */
3234
+ derivedIdStr?: string;
3133
3235
  /** 点位是否激活可用 */
3134
3236
  active: boolean;
3135
3237
  /** 点位是否可加载 */
@@ -3161,6 +3263,8 @@ export declare interface WorkOptions {
3161
3263
  transform: THREE_2.Matrix4;
3162
3264
  /** 可观测区域 */
3163
3265
  viewerRequestVolume?: BoundingVolume;
3266
+ /** 模型显示最小细化层级 */
3267
+ modelMinLevelOfDetail?: number;
3164
3268
  /** 模型显示最大细化层级 */
3165
3269
  modelMaxLevelOfDetail?: number;
3166
3270
  /** 模型最大内存缓存 */
@@ -3215,18 +3319,55 @@ export declare class XRButton {
3215
3319
  static createButton(onClickHook: () => void): HTMLAnchorElement | HTMLButtonElement;
3216
3320
  }
3217
3321
 
3322
+ export declare interface XRControllerEvent extends BaseEvent {
3323
+ left: {
3324
+ axes: {
3325
+ up: number;
3326
+ down: number;
3327
+ left: number;
3328
+ right: number;
3329
+ };
3330
+ raycaster: THREE_2.Raycaster;
3331
+ deltaTime: number;
3332
+ };
3333
+ right: {
3334
+ axes: {
3335
+ up: number;
3336
+ down: number;
3337
+ left: number;
3338
+ right: number;
3339
+ };
3340
+ raycaster: THREE_2.Raycaster;
3341
+ deltaTime: number;
3342
+ };
3343
+ buttons: {
3344
+ X: boolean;
3345
+ Y: boolean;
3346
+ LeftTrigger: boolean;
3347
+ LeftPinch: boolean;
3348
+ A: boolean;
3349
+ B: boolean;
3350
+ RightTrigger: boolean;
3351
+ RightPinch: boolean;
3352
+ };
3353
+ }
3354
+
3218
3355
  export declare interface XRGestureEvent extends BaseEvent {
3219
3356
  session: XRSession | null;
3220
- buttons: null | 'A' | 'B' | 'X' | 'Y' | 'RightTrigger' | 'RightPinch' | 'LeftTrigger' | 'LeftPinch' | 'LeftAxesLeft' | 'LeftAxesRight' | 'LeftAxesUp' | 'LeftAxesDown' | 'RightAxesLeft' | 'RightAxesRight' | 'RightAxesUp' | 'RightAxesDown';
3357
+ buttons: 'A' | 'B' | 'X' | 'Y' | 'RightTrigger' | 'RightPinch' | 'LeftTrigger' | 'LeftPinch' | 'LeftAxesLeft' | 'LeftAxesRight' | 'LeftAxesUp' | 'LeftAxesDown' | 'RightAxesLeft' | 'RightAxesRight' | 'RightAxesUp' | 'RightAxesDown';
3221
3358
  machineType: 'Pico' | 'Oculus';
3222
3359
  isFirst: boolean;
3223
3360
  isFinal: boolean;
3224
3361
  controllers: {
3225
- raycaster: THREE_2.Raycaster;
3226
- }[];
3362
+ raycaster: {
3363
+ leftRay: THREE_2.Raycaster;
3364
+ rightRay: THREE_2.Raycaster;
3365
+ };
3366
+ };
3227
3367
  }
3228
3368
 
3229
3369
  export declare interface XRPanoramaControllerCustomInitArgs extends Omit<PanoramaControllerCustomInitArgs, "maxLatitude" | "minLatitude"> {
3370
+ onlyUseRightController?: boolean;
3230
3371
  }
3231
3372
 
3232
3373
  declare interface XRSessionEvent_2 extends BaseEvent {