@realsee/five 5.0.0-alpha.20 → 5.0.0-alpha.200

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 (252) hide show
  1. package/README.md +18 -8
  2. package/docs/.nojekyll +1 -0
  3. package/docs/assets/highlight.css +134 -0
  4. package/docs/assets/icons.css +1043 -0
  5. package/docs/assets/main.js +52 -0
  6. package/docs/assets/search.js +1 -0
  7. package/docs/assets/style.css +1414 -0
  8. package/docs/classes/five.AnimationFrameLoop.html +15 -0
  9. package/docs/classes/five.BVH.html +10 -0
  10. package/docs/classes/five.BVHIntersect.html +1 -0
  11. package/docs/classes/five.BVHNode.html +7 -0
  12. package/docs/classes/five.BVHVector3.html +1 -0
  13. package/docs/classes/five.Camera.html +11 -0
  14. package/docs/classes/five.Clipper.html +1 -0
  15. package/docs/classes/five.Five.html +331 -0
  16. package/docs/classes/five.InternalWebGLRenderer.html +1 -0
  17. package/docs/classes/five.IntersectMesh.html +1 -0
  18. package/docs/classes/five.Model.html +91 -0
  19. package/docs/classes/five.NetworkSubscribe.html +50 -0
  20. package/docs/classes/five.PBMContainer.html +17 -0
  21. package/docs/classes/five.PBMGroup.html +19 -0
  22. package/docs/classes/five.PBMMaterial.html +29 -0
  23. package/docs/classes/five.PBMMesh.html +7 -0
  24. package/docs/classes/five.PanoCircleMesh.html +7 -0
  25. package/docs/classes/five.PanoCircleMeshCustom.html +7 -0
  26. package/docs/classes/five.PanoCircleMeshSolid.html +7 -0
  27. package/docs/classes/five.Scene.html +3 -0
  28. package/docs/classes/five.Subscribe.html +56 -0
  29. package/docs/classes/five.TextureLoader.html +1 -0
  30. package/docs/classes/five.Tile3D.html +34 -0
  31. package/docs/classes/five.Tile3DModel.html +15 -0
  32. package/docs/classes/five.TileBoundingSphere.html +1 -0
  33. package/docs/classes/five.TileCacheNode.html +1 -0
  34. package/docs/classes/five.TileCubeTextureTarget.html +1 -0
  35. package/docs/classes/five.TileCullingVolume.html +1 -0
  36. package/docs/classes/five.TileOrientedBoundingBox.html +1 -0
  37. package/docs/classes/five.TileRequestScheduler.html +16 -0
  38. package/docs/classes/five.Tileset3D.html +11 -0
  39. package/docs/classes/five.Tileset3DTraverser.html +1 -0
  40. package/docs/classes/five.TilesetCache.html +1 -0
  41. package/docs/classes/five.Work.html +32 -0
  42. package/docs/classes/five.XRButton.html +1 -0
  43. package/docs/classes/gltf_loader.DDSLoader.html +1 -0
  44. package/docs/classes/gltf_loader.DRACOLoader.html +1 -0
  45. package/docs/classes/gltf_loader.GLTFLoader.html +17 -0
  46. package/docs/classes/gltf_loader.GLTFObject.html +7 -0
  47. package/docs/classes/gltf_loader.GLTFParser.html +1 -0
  48. package/docs/classes/gltf_loader.THREEGLTFLoader.html +1 -0
  49. package/docs/classes/line.Line.html +1 -0
  50. package/docs/classes/line.LineGeometry.html +1 -0
  51. package/docs/classes/line.LineMaterial.html +1 -0
  52. package/docs/classes/line.LineSegmentsGeometry.html +1 -0
  53. package/docs/classes/line.THREE_Line2.html +1 -0
  54. package/docs/classes/line.THREE_LineSegments2.html +1 -0
  55. package/docs/classes/react.Store.html +29 -0
  56. package/docs/classes/server.BVH.html +10 -0
  57. package/docs/classes/server.BVHIntersect.html +1 -0
  58. package/docs/classes/server.BVHNode.html +7 -0
  59. package/docs/classes/server.BVHVector3.html +1 -0
  60. package/docs/classes/server.Model.html +70 -0
  61. package/docs/classes/server.PBMContainer.html +7 -0
  62. package/docs/classes/server.PBMGroup.html +9 -0
  63. package/docs/classes/server.PBMMesh.html +7 -0
  64. package/docs/classes/sticker.Sticker.html +32 -0
  65. package/docs/classes/vfx.Airflow.html +1 -0
  66. package/docs/classes/vfx.Flame.html +1 -0
  67. package/docs/classes/vfx.Particle.html +89 -0
  68. package/docs/classes/vfx.SpotLight.html +1 -0
  69. package/docs/index.html +166 -434
  70. package/docs/interfaces/five.AddableObject.html +9 -0
  71. package/docs/interfaces/five.AnimationFrame.html +1 -0
  72. package/docs/interfaces/five.CameraPose.html +1 -0
  73. package/docs/interfaces/five.ClipperParameter.html +1 -0
  74. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +28 -0
  75. package/docs/interfaces/five.EventCallback.html +399 -0
  76. package/docs/interfaces/five.FiveInitArgs.html +111 -0
  77. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +17 -0
  78. package/docs/interfaces/five.ImageOptions.html +18 -0
  79. package/docs/interfaces/five.ImageURLMappings.html +1 -0
  80. package/docs/interfaces/five.ImageURLOptions.html +15 -0
  81. package/docs/interfaces/five.IntersectMeshInterface.html +3 -0
  82. package/docs/interfaces/five.Intersection.html +7 -0
  83. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +15 -0
  84. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +20 -0
  85. package/docs/interfaces/five.ModelEventCallback.html +26 -0
  86. package/docs/interfaces/five.ModelLodOptions.html +1 -0
  87. package/docs/interfaces/five.MotionKeyframe.html +1 -0
  88. package/docs/interfaces/five.MovePanoOptions.html +42 -0
  89. package/docs/interfaces/five.NetworkOptions.html +9 -0
  90. package/docs/interfaces/five.PBMPanoPicture.html +7 -0
  91. package/docs/interfaces/five.PBMParameters.html +29 -0
  92. package/docs/interfaces/five.PanoCircleMeshCustomOptions.html +1 -0
  93. package/docs/interfaces/five.PanoCircleMeshInterface.html +19 -0
  94. package/docs/interfaces/five.PanoCircleMeshOptions.html +1 -0
  95. package/docs/interfaces/five.PanoCircleMeshSolidOptions.html +1 -0
  96. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +35 -0
  97. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +20 -0
  98. package/docs/interfaces/five.Pose.html +37 -0
  99. package/docs/interfaces/five.Scissor.html +14 -0
  100. package/docs/interfaces/five.State.html +21 -0
  101. package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -0
  102. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -0
  103. package/docs/interfaces/five.SubscribeMixinType.off.html +1 -0
  104. package/docs/interfaces/five.SubscribeMixinType.on.html +1 -0
  105. package/docs/interfaces/five.SubscribeMixinType.once.html +1 -0
  106. package/docs/interfaces/five.TextureOptions.html +20 -0
  107. package/docs/interfaces/five.Tile3DModelLoaderOptions.html +3 -0
  108. package/docs/interfaces/five.TileBoundingVolume.html +19 -0
  109. package/docs/interfaces/five.TileContent.html +1 -0
  110. package/docs/interfaces/five.TileCubeNode.html +1 -0
  111. package/docs/interfaces/five.TileCubeTree.html +1 -0
  112. package/docs/interfaces/five.Tileset3dOptions.html +1 -0
  113. package/docs/interfaces/five.TilesetJSON.html +1 -0
  114. package/docs/interfaces/five.TilesetJSONNode.html +1 -0
  115. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +9 -0
  116. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +31 -0
  117. package/docs/interfaces/five.WebXRControllerParams.html +1 -0
  118. package/docs/interfaces/five.WorkCubeImage.html +13 -0
  119. package/docs/interfaces/five.WorkImage.html +21 -0
  120. package/docs/interfaces/five.WorkInitial.html +13 -0
  121. package/docs/interfaces/five.WorkModel.html +11 -0
  122. package/docs/interfaces/five.WorkModelTiles.html +3 -0
  123. package/docs/interfaces/five.WorkObserver.html +27 -0
  124. package/docs/interfaces/five.WorkTile.html +1 -0
  125. package/docs/interfaces/five.WorkVideo.html +9 -0
  126. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +31 -0
  127. package/docs/interfaces/gltf_loader.DDS.html +1 -0
  128. package/docs/interfaces/gltf_loader.GLTF.html +7 -0
  129. package/docs/interfaces/gltf_loader.GLTFReference.html +1 -0
  130. package/docs/interfaces/gltf_loader.THREEGLTF.html +1 -0
  131. package/docs/interfaces/react.FiveActionReactCallbacks.html +52 -0
  132. package/docs/interfaces/react.FiveInjectionTypes.html +181 -0
  133. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +1 -0
  134. package/docs/interfaces/server.Intersection.html +7 -0
  135. package/docs/interfaces/server.ModelEventCallback.html +18 -0
  136. package/docs/interfaces/sticker.IntersectionLike.html +8 -0
  137. package/docs/interfaces/vfx.ParticleArgs.html +75 -0
  138. package/docs/interfaces/vfx.ParticleTweenKeyframe.html +1 -0
  139. package/docs/interfaces/vue.FiveActionVueCallbacks.html +60 -0
  140. package/docs/modules/five.SubscribeMixinType.html +1 -0
  141. package/docs/modules/five.html +464 -3002
  142. package/docs/modules/gltf_loader.html +1 -155
  143. package/docs/modules/line.html +1 -202
  144. package/docs/modules/react.html +130 -1507
  145. package/docs/modules/server.html +18 -526
  146. package/docs/modules/sticker.html +1 -151
  147. package/docs/modules/vfx.html +1 -0
  148. package/docs/modules/vue.html +115 -0
  149. package/docs/modules.html +1 -136
  150. package/exporters/staticify.js +210 -0
  151. package/five/index.d.ts +1463 -286
  152. package/five/index.js +362 -1
  153. package/gltf-loader/index.d.ts +90 -5
  154. package/gltf-loader/index.js +260 -1
  155. package/line/index.d.ts +15 -2
  156. package/line/index.js +260 -1
  157. package/package.json +12 -11
  158. package/react/index.d.ts +73 -72
  159. package/react/index.js +260 -1
  160. package/scripts/five-staticify.js +26 -0
  161. package/server/index.d.ts +222 -27
  162. package/server/index.js +357 -1
  163. package/sticker/index.d.ts +2 -1
  164. package/sticker/index.js +260 -1
  165. package/templates/quick-start/package.json +1 -1
  166. package/umd/five-gltf-loader.js +1 -2
  167. package/umd/five-line.js +1 -2
  168. package/umd/five-react.js +1 -2
  169. package/umd/five-sticker.js +1 -2
  170. package/umd/five-vfx.js +1 -0
  171. package/umd/five-vue.js +1 -0
  172. package/umd/five.js +1 -1
  173. package/umd/five.js.LICENSE.txt +58 -118
  174. package/vfx/index.d.ts +264 -0
  175. package/vfx/index.js +260 -0
  176. package/vue/index.d.ts +441 -0
  177. package/vue/index.js +260 -0
  178. package/docs/assets/css/main.css +0 -2660
  179. package/docs/assets/js/main.js +0 -248
  180. package/docs/assets/js/search.js +0 -1
  181. package/docs/classes/five.camera.html +0 -323
  182. package/docs/classes/five.five-1.html +0 -2670
  183. package/docs/classes/five.hashcubetexture.html +0 -252
  184. package/docs/classes/five.internalwebglrenderer.html +0 -212
  185. package/docs/classes/five.model.html +0 -982
  186. package/docs/classes/five.pbmgroup.html +0 -427
  187. package/docs/classes/five.pbmmaterial.html +0 -533
  188. package/docs/classes/five.pbmmesh.html +0 -254
  189. package/docs/classes/five.scene.html +0 -263
  190. package/docs/classes/five.subscribe.html +0 -569
  191. package/docs/classes/gltf_loader.gltfloader.html +0 -412
  192. package/docs/classes/gltf_loader.gltfobject.html +0 -287
  193. package/docs/classes/line.line-1.html +0 -381
  194. package/docs/classes/line.linegeometry.html +0 -524
  195. package/docs/classes/line.linematerial.html +0 -300
  196. package/docs/classes/line.linesegmentsgeometry.html +0 -471
  197. package/docs/classes/react.store.html +0 -605
  198. package/docs/classes/server.model.html +0 -823
  199. package/docs/classes/server.pbmgroup.html +0 -366
  200. package/docs/classes/server.pbmmesh.html +0 -335
  201. package/docs/classes/sticker.sticker-1.html +0 -465
  202. package/docs/interfaces/five.addableobject.html +0 -234
  203. package/docs/interfaces/five.depthpanoramacontrollercustominitargs.html +0 -420
  204. package/docs/interfaces/five.eventcallback.html +0 -2548
  205. package/docs/interfaces/five.fiveinitargs.html +0 -707
  206. package/docs/interfaces/five.floorplancontrollercustominitargs.html +0 -295
  207. package/docs/interfaces/five.imageoptions.html +0 -332
  208. package/docs/interfaces/five.intersection.html +0 -227
  209. package/docs/interfaces/five.intersectmeshinterface.html +0 -188
  210. package/docs/interfaces/five.modelcontrollercustominitargs.html +0 -366
  211. package/docs/interfaces/five.modeleventcallback.html +0 -367
  212. package/docs/interfaces/five.movepanooptions.html +0 -469
  213. package/docs/interfaces/five.panocirclemeshinterface.html +0 -361
  214. package/docs/interfaces/five.panoramacontrollercustominitargs.html +0 -464
  215. package/docs/interfaces/five.panoramalikecontrollercustominitargs.html +0 -364
  216. package/docs/interfaces/five.pbmparameters.html +0 -474
  217. package/docs/interfaces/five.pose.html +0 -270
  218. package/docs/interfaces/five.scissor.html +0 -252
  219. package/docs/interfaces/five.state.html +0 -300
  220. package/docs/interfaces/five.subscribemixintype.emit.html +0 -180
  221. package/docs/interfaces/five.subscribemixintype.haslistener.html +0 -171
  222. package/docs/interfaces/five.subscribemixintype.off.html +0 -198
  223. package/docs/interfaces/five.subscribemixintype.on.html +0 -213
  224. package/docs/interfaces/five.subscribemixintype.once.html +0 -210
  225. package/docs/interfaces/five.topviewcontrollercustominitargs.html +0 -226
  226. package/docs/interfaces/five.vrpanoramacontrollercustominitargs.html +0 -452
  227. package/docs/interfaces/gltf_loader.gltf.html +0 -304
  228. package/docs/interfaces/react.fiveactionreactcallbacks.html +0 -580
  229. package/docs/interfaces/react.fiveinjectiontypes.html +0 -1625
  230. package/docs/interfaces/react.injectfivetoprops.html +0 -280
  231. package/docs/interfaces/server.intersection.html +0 -308
  232. package/docs/interfaces/server.modeleventcallback.html +0 -409
  233. package/docs/interfaces/sticker.intersectionlike.html +0 -223
  234. package/docs/modules/five.subscribemixintype.html +0 -143
  235. package/scripts/export-five-resource/chfs.exe +0 -0
  236. package/scripts/export-five-resource/fileify.js +0 -192
  237. package/scripts/export-five-resource/format-work.js +0 -71
  238. package/scripts/export-five-resource/staticify.js +0 -327
  239. package/scripts/transcode-model/BufferGeometryUtils.js +0 -832
  240. package/scripts/transcode-model/LoaderSupport.js +0 -1545
  241. package/scripts/transcode-model/MTLLoader.js +0 -602
  242. package/scripts/transcode-model/OBJLoader2.js +0 -1470
  243. package/scripts/transcode-model/obj2pbm.js +0 -65
  244. /package/docs/assets/{images/icons.png → icons.png} +0 -0
  245. /package/docs/assets/{images/icons@2x.png → icons@2x.png} +0 -0
  246. /package/docs/assets/{images/widgets.png → widgets.png} +0 -0
  247. /package/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
  248. /package/resource/{basis_transcoder.js → basis/basis_transcoder.js} +0 -0
  249. /package/resource/{basis_transcoder.wasm → basis/basis_transcoder.wasm} +0 -0
  250. /package/resource/{draco_decoder.js → gltf/draco_decoder.js} +0 -0
  251. /package/resource/{draco_decoder.wasm → gltf/draco_decoder.wasm} +0 -0
  252. /package/resource/{draco_wasm_wrapper.js → gltf/draco_wasm_wrapper.js} +0 -0
package/server/index.d.ts CHANGED
@@ -1,5 +1,67 @@
1
1
  import * as THREE_2 from 'three';
2
2
 
3
+ export declare class BVH {
4
+ private trianglesArray;
5
+ private offsetArray;
6
+ private maxTrianglesPerNode;
7
+ private bboxArray;
8
+ private rootNode;
9
+ private nodesToSplit;
10
+ constructor(trianglesArray: Float32Array, maxTrianglesPerNode: number);
11
+ private splitNode;
12
+ /**
13
+ * 计算射线与三角形的碰撞
14
+ * @param rayOrigin - 射线的原点坐标
15
+ * @param rayDirection - 设想的方向向量
16
+ * @param backfaceCulling - 是否背面剔除
17
+ * @return 碰撞焦点数组
18
+ */
19
+ intersectRay(rayOrigin: BVHVector3, rayDirection: BVHVector3, backfaceCulling: boolean): BVHIntersect[];
20
+ dispose(): void;
21
+ }
22
+
23
+ export declare class BVHIntersect {
24
+ triangle: [BVHVector3, BVHVector3, BVHVector3];
25
+ triangleIndex: number;
26
+ intersectionPoint: BVHVector3;
27
+ constructor(triangle: [BVHVector3, BVHVector3, BVHVector3], triangleIndex: number, intersectionPoint: BVHVector3);
28
+ }
29
+
30
+ /**
31
+ * A node in the BVH structure
32
+ * @param extents - the min coords of this node's bounding box
33
+ * @param startIndex - an index in the bbox array, where the first element of this node is located
34
+ * @param endIndex - an index in the bbox array, where the last of this node is located, plus 1 (meaning that its non-inclusive).
35
+ * @param level - distance of this node from the root for the bvh tree. root node has level=0, its children have level=1 etc.
36
+ */
37
+ export declare class BVHNode {
38
+ extents: ArrayLike<number>;
39
+ startIndex: number;
40
+ endIndex: number;
41
+ level: number;
42
+ node0: BVHNode | null;
43
+ node1: BVHNode | null;
44
+ constructor(extents: ArrayLike<number>, startIndex: number, endIndex: number, level: number);
45
+ clearShapes(): void;
46
+ }
47
+
48
+ export declare class BVHVector3 {
49
+ x: number;
50
+ y: number;
51
+ z: number;
52
+ constructor(x: number, y: number, z: number);
53
+ copy(v: BVHVector3): this;
54
+ set(x: number, y: number, z: number): this;
55
+ fromArray(array: number[], firstElementPos?: number): this;
56
+ add(v: BVHVector3): this;
57
+ multiplyScalar(scalar: number): this;
58
+ subVectors(a: BVHVector3, b: BVHVector3): this;
59
+ dot(v: BVHVector3): number;
60
+ cross(v: BVHVector3): this;
61
+ crossVectors(a: BVHVector3, b: BVHVector3): this;
62
+ clone(): BVHVector3;
63
+ }
64
+
3
65
  /**
4
66
  * Five 模型事件列表
5
67
  * @description
@@ -106,7 +168,15 @@ export declare type LooseWorkPanorama = {
106
168
  front: string;
107
169
  back: string;
108
170
  video?: LooseWorkVideo;
109
- tiles?: string;
171
+ luminance?: {
172
+ up: string;
173
+ down: string;
174
+ right: string;
175
+ left: string;
176
+ front: string;
177
+ back: string;
178
+ };
179
+ tiles?: number[];
110
180
  };
111
181
 
112
182
  export declare type LooseWorkVideo = {
@@ -121,6 +191,7 @@ export declare type LooseWorkVideo = {
121
191
  * - **Model**: 模型游走模式
122
192
  * - **Floorplan**: 模型查看模式
123
193
  * - **Topview**: 户型图模式
194
+ * - **Mapview**: 地图模式
124
195
  * - **DepthPanorama**: 深度图游走模式
125
196
  * - **VRPanorama**: VR眼镜模式
126
197
  */
@@ -129,6 +200,8 @@ export declare type Mode =
129
200
  "Floorplan" |
130
201
  /** 户型图模式 */
131
202
  "Topview" |
203
+ /** 地图模式 */
204
+ "Mapview" |
132
205
  /** 全景图游走模式 */
133
206
  "Panorama" |
134
207
  /** VR眼镜模式 */
@@ -136,7 +209,9 @@ export declare type Mode =
136
209
  /** 模型游走模式 */
137
210
  "Model" |
138
211
  /** 深度图游走模式 */
139
- "DepthPanorama";
212
+ "DepthPanorama" |
213
+ /** XR眼镜模式*/
214
+ "XRPanorama";
140
215
 
141
216
  /**
142
217
  * Five 模型
@@ -155,6 +230,12 @@ export declare class Model extends PBMGroup implements Subscribe<EventType> {
155
230
  bounding: THREE_2.Box3;
156
231
  /** 当前显示的楼层 */
157
232
  shownfloor: number | null;
233
+ /** 楼层的数量 */
234
+ floorLength: number;
235
+ /** 模型瓦片 */
236
+ originModel?: PBMContainer;
237
+ /** 模型瓦片 */
238
+ tiledModel: undefined;
158
239
  /**
159
240
  * 判断是否注册了事件
160
241
  * 具体可查看 {@link Subscribe.hasListener}
@@ -181,7 +262,7 @@ export declare class Model extends PBMGroup implements Subscribe<EventType> {
181
262
  */
182
263
  emit: SubscribeMixinType.emit<EventType>;
183
264
  /** bvh 树的计算结果 */
184
- bvhs: any[] & {
265
+ bvhs: BVH[] & {
185
266
  loaded?: boolean;
186
267
  };
187
268
  constructor();
@@ -191,8 +272,13 @@ export declare class Model extends PBMGroup implements Subscribe<EventType> {
191
272
  * @returns 所有模型边界线
192
273
  */
193
274
  getEdges(threshold?: number): THREE_2.Line3[];
194
- /** 获取当前楼层数 */
275
+ /**
276
+ * 获取当前楼层数
277
+ * @deprecated
278
+ * 请使用 floorLength 参数代替
279
+ */
195
280
  hasFloors(): number;
281
+ private hasFloors_;
196
282
  /**
197
283
  * 显示某楼层
198
284
  * @example
@@ -211,13 +297,13 @@ export declare class Model extends PBMGroup implements Subscribe<EventType> {
211
297
  * @returns 返回碰撞
212
298
  */
213
299
  intersectRaycaster(raycaster: THREE_2.Raycaster, floors?: number | number[]): Intersection[];
214
- buildBVH(): Promise<void>;
300
+ buildBVH(): void;
215
301
  /**
216
302
  * 加载模型
217
303
  * @param workModel - work 的 model 内容
218
304
  * @param imageOptions - 图片参数
219
305
  */
220
- load(workModel: WorkModel): void;
306
+ load(workModel: WorkModel): Promise<void>;
221
307
  /**
222
308
  * 析构函数
223
309
  * @description
@@ -226,7 +312,33 @@ export declare class Model extends PBMGroup implements Subscribe<EventType> {
226
312
  dispose(): void;
227
313
  }
228
314
 
229
- export declare function parseWork(obj: Work | LooseWork | any): Work;
315
+ /**
316
+ * 解析 Work 数据
317
+ * @param obj - work 数据,从如数开发者平台获取
318
+ * @param options - 配置参数, 可以在此二次设置 baseURL 等参数
319
+ * @param urlTransform - 配置参数, URL 解析规则
320
+ * @returns - 签署过的 Work 数据结构
321
+ */
322
+ export declare function parseWork(obj: Work | LooseWork | string | any, options?: ParseWorkOptions, urlTransform?: (origin: string, absolute: string, relative: string, type: "panorama" | "texture" | "model") => void): Work;
323
+
324
+ export declare type ParseWorkOptions = {
325
+ /** 重写 work 中的资源前缀 */
326
+ baseURL?: string;
327
+ /** work 中的资源地址使用短地址 */
328
+ shortPath?: boolean;
329
+ /** work 中的资源使用 jsonp 方式发布 */
330
+ jsonp?: boolean;
331
+ /** work 中模型是否计算bvh碰撞数,默认计算 true */
332
+ modelBvh?: boolean;
333
+ };
334
+
335
+ /** PBM 模型组 */
336
+ export declare class PBMContainer extends THREE_2.Group {
337
+ /** 是否需要更新按需渲染 */
338
+ needsRender: boolean;
339
+ /** 析构模型网格 */
340
+ disposeGeometry(): void;
341
+ }
230
342
 
231
343
  /** PBM 模型组 */
232
344
  export declare class PBMGroup extends THREE_2.Group {
@@ -251,14 +363,16 @@ export declare class PBMMesh extends THREE_2.Mesh<THREE_2.BufferGeometry> {
251
363
  * [[include: coordinate.md]]
252
364
  */
253
365
  export declare interface Pose {
254
- /** 相机俯仰角 */
255
- longitude: number;
256
366
  /** 相机偏航角 */
367
+ longitude: number;
368
+ /** 相机俯仰角 */
257
369
  latitude: number;
258
370
  /** 相机可视角度(垂直)*/
259
371
  fov: number;
260
372
  /** 相机位置*/
261
373
  offset: THREE_2.Vector3;
374
+ /** 相机距离 */
375
+ distance: number;
262
376
  }
263
377
 
264
378
  /**
@@ -277,8 +391,6 @@ export declare interface State extends Pose {
277
391
  panoIndex: number;
278
392
  }
279
393
 
280
- export declare function stringifyWork(work: Work): LooseWork;
281
-
282
394
  /**
283
395
  * 监听者模式
284
396
  * @template T - 预设的监听回调类型
@@ -357,57 +469,140 @@ export declare namespace SubscribeMixinType {
357
469
  }
358
470
  }
359
471
 
360
- export declare type Work = {
361
- uuid: string;
472
+ export declare class Work {
473
+ /** 名称 */
474
+ name: string;
475
+ /** 编号 */
476
+ workCode: string;
477
+ /** 允许访问的安全域名 */
478
+ allowHosts: string[];
479
+ /** 过期时间 */
480
+ expire: Date;
481
+ /** 初始化参数 */
362
482
  initial: WorkInitial;
483
+ /** 模型参数 */
363
484
  model?: WorkModel;
485
+ /** 全景点位信息 */
364
486
  observers: WorkObserver[];
365
- };
487
+ /** 包围盒子 */
488
+ boundingBox: THREE_2.Box3;
489
+ /** 数据签发人 */
490
+ issuer: string;
491
+ /** 原始数据 */
492
+ raw: {
493
+ works: string[];
494
+ options: string;
495
+ };
496
+ /**
497
+ * 解析 Work 数据
498
+ * @param obj - work 数据,从如数开发者平台获取
499
+ * @param options - 配置参数, 可以在此二次设置 baseURL 等参数
500
+ * @param urlTransform - 配置参数, URL 解析规则
501
+ * @returns - 签署过的 Work 数据结构
502
+ */
503
+ static parse: typeof parseWork;
504
+ constructor();
505
+ toJSON(): any;
506
+ }
366
507
 
367
- /** 全景图 */
368
- export declare type WorkImages = {
508
+ export declare interface WorkCubeImage {
509
+ /** 全景图 up */
369
510
  up: string;
511
+ /** 全景图 down */
370
512
  down: string;
513
+ /** 全景图 right */
371
514
  right: string;
515
+ /** 全景图 left */
372
516
  left: string;
517
+ /** 全景图 front */
373
518
  front: string;
519
+ /** 全景图 back */
374
520
  back: string;
521
+ }
522
+
523
+ /** 全景图 */
524
+ export declare interface WorkImage extends WorkCubeImage {
525
+ /** 深度图 */
375
526
  depth?: string;
376
- tiles?: string;
377
- };
527
+ /** 光照强度图 */
528
+ luminance?: WorkCubeImage;
529
+ /** 瓦片信息 */
530
+ tiles?: WorkTile[];
531
+ }
378
532
 
379
533
  /** 初始化位姿参数 */
380
- export declare type WorkInitial = Omit<State, "offset">;
534
+ export declare interface WorkInitial extends Omit<State, "offset" | "distance"> {
535
+ }
381
536
 
382
537
  /** 模型数据 */
383
- export declare type WorkModel = {
538
+ export declare interface WorkModel {
539
+ /** 模型文件地址 at3d / domez */
384
540
  file: string;
541
+ /** 模型贴图文件地址 */
385
542
  textures: string[];
543
+ /** 模型贴图文件地址的父目录 */
386
544
  textureBase: string;
545
+ /** 是否开启 bvh 碰撞树,开启会大大加快射线碰撞的执行效率 */
387
546
  bvh: boolean;
388
- async: boolean;
389
- };
547
+ tiles?: WorkModelTiles;
548
+ maxDepth?: number;
549
+ }
550
+
551
+ /** 模型瓦片 */
552
+ export declare interface WorkModelTiles {
553
+ tileset_url: string;
554
+ tileset_url_md5: string;
555
+ b3md_mappings_url: string;
556
+ b3md_mappings_url_md5: string;
557
+ }
390
558
 
391
559
  /** 每个点位的数据 */
392
- export declare type WorkObserver = {
560
+ export declare interface WorkObserver {
561
+ /** 点位序号 */
393
562
  panoIndex: number;
563
+ /** 点位是否激活可用 */
394
564
  active: boolean;
565
+ /** 点位是否可加载 */
395
566
  loadable: boolean;
396
- images: WorkImages;
567
+ /** 点位全景图 */
568
+ images: WorkImage;
569
+ /** 点位视频 */
397
570
  video?: WorkVideo;
571
+ /** 可以看到的相关点位序号 */
398
572
  visibleNodes: number[];
573
+ /** 可以连通的相关点位序号 */
399
574
  accessibleNodes: number[];
575
+ /** 点位和模型的旋转对齐关系四元数 */
400
576
  quaternion: THREE_2.Quaternion;
577
+ /** 点位和模型的地面位置坐标关系 */
401
578
  standingPosition: THREE_2.Vector3;
579
+ /** 点位和模型的观察点坐标关系 */
402
580
  position: THREE_2.Vector3;
581
+ /** 点位所在楼层 */
403
582
  floorIndex: number;
404
- };
583
+ /** 点位 derived_id */
584
+ derivedId?: number;
585
+ }
586
+
587
+ export declare interface WorkTile {
588
+ level: number;
589
+ size: number;
590
+ up: string;
591
+ down: string;
592
+ right: string;
593
+ left: string;
594
+ front: string;
595
+ back: string;
596
+ }
405
597
 
406
598
  /** 全景视频贴片 */
407
- export declare type WorkVideo = {
599
+ export declare interface WorkVideo {
600
+ /** 视频源 url */
408
601
  source: string;
602
+ /** 视频源变化矩阵 */
409
603
  matrix: THREE_2.Matrix4;
604
+ /** 视频源长宽尺寸 */
410
605
  size: THREE_2.Vector2;
411
- };
606
+ }
412
607
 
413
608
  export { }