@realsee/five 5.0.0-alpha.18 → 5.0.0-alpha.181

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 +21 -11
  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/{images/icons.png → icons.png} +0 -0
  6. package/docs/assets/{images/icons@2x.png → icons@2x.png} +0 -0
  7. package/docs/assets/main.js +52 -0
  8. package/docs/assets/search.js +1 -0
  9. package/docs/assets/style.css +1414 -0
  10. package/docs/assets/{images/widgets.png → widgets.png} +0 -0
  11. package/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
  12. package/docs/classes/five.AnimationFrameLoop.html +15 -0
  13. package/docs/classes/five.BVH.html +10 -0
  14. package/docs/classes/five.BVHIntersect.html +1 -0
  15. package/docs/classes/five.BVHNode.html +7 -0
  16. package/docs/classes/five.BVHVector3.html +1 -0
  17. package/docs/classes/five.Camera.html +11 -0
  18. package/docs/classes/five.Clipper.html +1 -0
  19. package/docs/classes/five.Five.html +328 -0
  20. package/docs/classes/five.InternalWebGLRenderer.html +1 -0
  21. package/docs/classes/five.IntersectMesh.html +1 -0
  22. package/docs/classes/five.Model.html +89 -0
  23. package/docs/classes/five.NetworkSubscribe.html +50 -0
  24. package/docs/classes/five.PBMContainer.html +17 -0
  25. package/docs/classes/five.PBMGroup.html +19 -0
  26. package/docs/classes/five.PBMMaterial.html +27 -0
  27. package/docs/classes/five.PBMMesh.html +7 -0
  28. package/docs/classes/five.PanoCircleMesh.html +7 -0
  29. package/docs/classes/five.PanoCircleMeshCustom.html +7 -0
  30. package/docs/classes/five.PanoCircleMeshSolid.html +7 -0
  31. package/docs/classes/five.Scene.html +3 -0
  32. package/docs/classes/five.Subscribe.html +56 -0
  33. package/docs/classes/five.TextureLoader.html +1 -0
  34. package/docs/classes/five.Tile3D.html +34 -0
  35. package/docs/classes/five.Tile3DModel.html +15 -0
  36. package/docs/classes/five.TileBoundingSphere.html +1 -0
  37. package/docs/classes/five.TileCacheNode.html +1 -0
  38. package/docs/classes/five.TileCubeTextureTarget.html +1 -0
  39. package/docs/classes/five.TileCullingVolume.html +1 -0
  40. package/docs/classes/five.TileOrientedBoundingBox.html +1 -0
  41. package/docs/classes/five.TileRequestScheduler.html +16 -0
  42. package/docs/classes/five.Tileset3D.html +11 -0
  43. package/docs/classes/five.Tileset3DTraverser.html +1 -0
  44. package/docs/classes/five.TilesetCache.html +1 -0
  45. package/docs/classes/five.Work.html +32 -0
  46. package/docs/classes/five.XRButton.html +1 -0
  47. package/docs/classes/gltf_loader.DDSLoader.html +1 -0
  48. package/docs/classes/gltf_loader.DRACOLoader.html +1 -0
  49. package/docs/classes/gltf_loader.GLTFLoader.html +17 -0
  50. package/docs/classes/gltf_loader.GLTFObject.html +7 -0
  51. package/docs/classes/gltf_loader.GLTFParser.html +1 -0
  52. package/docs/classes/gltf_loader.THREEGLTFLoader.html +1 -0
  53. package/docs/classes/line.Line.html +1 -0
  54. package/docs/classes/line.LineGeometry.html +1 -0
  55. package/docs/classes/line.LineMaterial.html +1 -0
  56. package/docs/classes/line.LineSegmentsGeometry.html +1 -0
  57. package/docs/classes/line.THREE_Line2.html +1 -0
  58. package/docs/classes/line.THREE_LineSegments2.html +1 -0
  59. package/docs/classes/react.Store.html +29 -0
  60. package/docs/classes/server.BVH.html +10 -0
  61. package/docs/classes/server.BVHIntersect.html +1 -0
  62. package/docs/classes/server.BVHNode.html +7 -0
  63. package/docs/classes/server.BVHVector3.html +1 -0
  64. package/docs/classes/server.Model.html +70 -0
  65. package/docs/classes/server.PBMContainer.html +7 -0
  66. package/docs/classes/server.PBMGroup.html +9 -0
  67. package/docs/classes/server.PBMMesh.html +7 -0
  68. package/docs/classes/sticker.Sticker.html +32 -0
  69. package/docs/classes/vfx.Airflow.html +1 -0
  70. package/docs/classes/vfx.Flame.html +1 -0
  71. package/docs/classes/vfx.Particle.html +89 -0
  72. package/docs/classes/vfx.SpotLight.html +1 -0
  73. package/docs/index.html +166 -434
  74. package/docs/interfaces/five.AddableObject.html +9 -0
  75. package/docs/interfaces/five.AnimationFrame.html +1 -0
  76. package/docs/interfaces/five.CameraPose.html +1 -0
  77. package/docs/interfaces/five.ClipperParameter.html +1 -0
  78. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +28 -0
  79. package/docs/interfaces/five.EventCallback.html +400 -0
  80. package/docs/interfaces/five.FiveInitArgs.html +109 -0
  81. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +17 -0
  82. package/docs/interfaces/five.ImageOptions.html +18 -0
  83. package/docs/interfaces/five.ImageURLMappings.html +1 -0
  84. package/docs/interfaces/five.ImageURLOptions.html +15 -0
  85. package/docs/interfaces/five.IntersectMeshInterface.html +3 -0
  86. package/docs/interfaces/five.Intersection.html +7 -0
  87. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +15 -0
  88. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +20 -0
  89. package/docs/interfaces/five.ModelEventCallback.html +22 -0
  90. package/docs/interfaces/five.MotionKeyframe.html +1 -0
  91. package/docs/interfaces/five.MovePanoOptions.html +42 -0
  92. package/docs/interfaces/five.NetworkOptions.html +9 -0
  93. package/docs/interfaces/five.PBMPanoPicture.html +7 -0
  94. package/docs/interfaces/five.PBMParameters.html +27 -0
  95. package/docs/interfaces/five.PanoCircleMeshCustomOptions.html +1 -0
  96. package/docs/interfaces/five.PanoCircleMeshInterface.html +19 -0
  97. package/docs/interfaces/five.PanoCircleMeshOptions.html +1 -0
  98. package/docs/interfaces/five.PanoCircleMeshSolidOptions.html +1 -0
  99. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +35 -0
  100. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +20 -0
  101. package/docs/interfaces/five.Pose.html +37 -0
  102. package/docs/interfaces/five.Scissor.html +14 -0
  103. package/docs/interfaces/five.State.html +21 -0
  104. package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -0
  105. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -0
  106. package/docs/interfaces/five.SubscribeMixinType.off.html +1 -0
  107. package/docs/interfaces/five.SubscribeMixinType.on.html +1 -0
  108. package/docs/interfaces/five.SubscribeMixinType.once.html +1 -0
  109. package/docs/interfaces/five.TextureOptions.html +20 -0
  110. package/docs/interfaces/five.Tile3DModelLoaderOptions.html +3 -0
  111. package/docs/interfaces/five.TileBoundingVolume.html +19 -0
  112. package/docs/interfaces/five.TileContent.html +1 -0
  113. package/docs/interfaces/five.TileCubeNode.html +1 -0
  114. package/docs/interfaces/five.TileCubeTree.html +1 -0
  115. package/docs/interfaces/five.Tileset3dOptions.html +1 -0
  116. package/docs/interfaces/five.TilesetJSON.html +1 -0
  117. package/docs/interfaces/five.TilesetJSONNode.html +1 -0
  118. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +9 -0
  119. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +31 -0
  120. package/docs/interfaces/five.WebXRSelectParams.html +1 -0
  121. package/docs/interfaces/five.WorkCubeImage.html +13 -0
  122. package/docs/interfaces/five.WorkImage.html +21 -0
  123. package/docs/interfaces/five.WorkInitial.html +13 -0
  124. package/docs/interfaces/five.WorkModel.html +11 -0
  125. package/docs/interfaces/five.WorkModelTiles.html +3 -0
  126. package/docs/interfaces/five.WorkObserver.html +25 -0
  127. package/docs/interfaces/five.WorkTile.html +1 -0
  128. package/docs/interfaces/five.WorkVideo.html +9 -0
  129. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +31 -0
  130. package/docs/interfaces/gltf_loader.DDS.html +1 -0
  131. package/docs/interfaces/gltf_loader.GLTF.html +7 -0
  132. package/docs/interfaces/gltf_loader.GLTFReference.html +1 -0
  133. package/docs/interfaces/gltf_loader.THREEGLTF.html +1 -0
  134. package/docs/interfaces/react.FiveActionReactCallbacks.html +52 -0
  135. package/docs/interfaces/react.FiveInjectionTypes.html +181 -0
  136. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +1 -0
  137. package/docs/interfaces/server.Intersection.html +7 -0
  138. package/docs/interfaces/server.ModelEventCallback.html +18 -0
  139. package/docs/interfaces/sticker.IntersectionLike.html +8 -0
  140. package/docs/interfaces/vfx.ParticleArgs.html +75 -0
  141. package/docs/interfaces/vfx.ParticleTweenKeyframe.html +1 -0
  142. package/docs/interfaces/vue.FiveActionVueCallbacks.html +60 -0
  143. package/docs/modules/five.SubscribeMixinType.html +1 -0
  144. package/docs/modules/five.html +479 -3002
  145. package/docs/modules/gltf_loader.html +1 -155
  146. package/docs/modules/line.html +1 -202
  147. package/docs/modules/react.html +130 -1507
  148. package/docs/modules/server.html +18 -526
  149. package/docs/modules/sticker.html +1 -151
  150. package/docs/modules/vfx.html +1 -0
  151. package/docs/modules/vue.html +115 -0
  152. package/docs/modules.html +1 -136
  153. package/exporters/staticify.js +210 -0
  154. package/five/index.d.ts +1416 -285
  155. package/five/index.js +362 -1
  156. package/gltf-loader/index.d.ts +90 -5
  157. package/gltf-loader/index.js +260 -1
  158. package/line/index.d.ts +15 -2
  159. package/line/index.js +260 -1
  160. package/package.json +12 -15
  161. package/react/index.d.ts +73 -72
  162. package/react/index.js +260 -1
  163. package/resource/{basis_transcoder.js → basis/basis_transcoder.js} +0 -0
  164. package/resource/{basis_transcoder.wasm → basis/basis_transcoder.wasm} +0 -0
  165. package/resource/{draco_decoder.js → gltf/draco_decoder.js} +0 -0
  166. package/resource/{draco_decoder.wasm → gltf/draco_decoder.wasm} +0 -0
  167. package/resource/{draco_wasm_wrapper.js → gltf/draco_wasm_wrapper.js} +0 -0
  168. package/scripts/five-staticify.js +26 -0
  169. package/server/index.d.ts +219 -27
  170. package/server/index.js +357 -1
  171. package/sticker/index.d.ts +2 -1
  172. package/sticker/index.js +260 -1
  173. package/templates/quick-start/README.md +1 -1
  174. package/templates/quick-start/package.json +1 -1
  175. package/umd/five-gltf-loader.js +1 -2
  176. package/umd/five-line.js +1 -2
  177. package/umd/five-react.js +1 -2
  178. package/umd/five-sticker.js +1 -2
  179. package/umd/five-vfx.js +1 -0
  180. package/umd/five-vue.js +1 -0
  181. package/umd/five.js +1 -1
  182. package/umd/five.js.LICENSE.txt +58 -118
  183. package/vfx/index.d.ts +264 -0
  184. package/vfx/index.js +260 -0
  185. package/vue/index.d.ts +441 -0
  186. package/vue/index.js +260 -0
  187. package/docs/assets/css/main.css +0 -2660
  188. package/docs/assets/js/main.js +0 -248
  189. package/docs/assets/js/search.js +0 -1
  190. package/docs/classes/five.camera.html +0 -323
  191. package/docs/classes/five.five-1.html +0 -2670
  192. package/docs/classes/five.hashcubetexture.html +0 -252
  193. package/docs/classes/five.internalwebglrenderer.html +0 -212
  194. package/docs/classes/five.model.html +0 -982
  195. package/docs/classes/five.pbmgroup.html +0 -427
  196. package/docs/classes/five.pbmmaterial.html +0 -533
  197. package/docs/classes/five.pbmmesh.html +0 -254
  198. package/docs/classes/five.scene.html +0 -263
  199. package/docs/classes/five.subscribe.html +0 -569
  200. package/docs/classes/gltf_loader.gltfloader.html +0 -412
  201. package/docs/classes/gltf_loader.gltfobject.html +0 -287
  202. package/docs/classes/line.line-1.html +0 -381
  203. package/docs/classes/line.linegeometry.html +0 -524
  204. package/docs/classes/line.linematerial.html +0 -300
  205. package/docs/classes/line.linesegmentsgeometry.html +0 -471
  206. package/docs/classes/react.store.html +0 -605
  207. package/docs/classes/server.model.html +0 -823
  208. package/docs/classes/server.pbmgroup.html +0 -366
  209. package/docs/classes/server.pbmmesh.html +0 -335
  210. package/docs/classes/sticker.sticker-1.html +0 -465
  211. package/docs/interfaces/five.addableobject.html +0 -234
  212. package/docs/interfaces/five.depthpanoramacontrollercustominitargs.html +0 -420
  213. package/docs/interfaces/five.eventcallback.html +0 -2548
  214. package/docs/interfaces/five.fiveinitargs.html +0 -707
  215. package/docs/interfaces/five.floorplancontrollercustominitargs.html +0 -295
  216. package/docs/interfaces/five.imageoptions.html +0 -332
  217. package/docs/interfaces/five.intersection.html +0 -227
  218. package/docs/interfaces/five.intersectmeshinterface.html +0 -188
  219. package/docs/interfaces/five.modelcontrollercustominitargs.html +0 -366
  220. package/docs/interfaces/five.modeleventcallback.html +0 -367
  221. package/docs/interfaces/five.movepanooptions.html +0 -469
  222. package/docs/interfaces/five.panocirclemeshinterface.html +0 -361
  223. package/docs/interfaces/five.panoramacontrollercustominitargs.html +0 -464
  224. package/docs/interfaces/five.panoramalikecontrollercustominitargs.html +0 -364
  225. package/docs/interfaces/five.pbmparameters.html +0 -474
  226. package/docs/interfaces/five.pose.html +0 -270
  227. package/docs/interfaces/five.scissor.html +0 -252
  228. package/docs/interfaces/five.state.html +0 -300
  229. package/docs/interfaces/five.subscribemixintype.emit.html +0 -180
  230. package/docs/interfaces/five.subscribemixintype.haslistener.html +0 -171
  231. package/docs/interfaces/five.subscribemixintype.off.html +0 -198
  232. package/docs/interfaces/five.subscribemixintype.on.html +0 -213
  233. package/docs/interfaces/five.subscribemixintype.once.html +0 -210
  234. package/docs/interfaces/five.topviewcontrollercustominitargs.html +0 -226
  235. package/docs/interfaces/five.vrpanoramacontrollercustominitargs.html +0 -452
  236. package/docs/interfaces/gltf_loader.gltf.html +0 -304
  237. package/docs/interfaces/react.fiveactionreactcallbacks.html +0 -580
  238. package/docs/interfaces/react.fiveinjectiontypes.html +0 -1625
  239. package/docs/interfaces/react.injectfivetoprops.html +0 -280
  240. package/docs/interfaces/server.intersection.html +0 -308
  241. package/docs/interfaces/server.modeleventcallback.html +0 -409
  242. package/docs/interfaces/sticker.intersectionlike.html +0 -223
  243. package/docs/modules/five.subscribemixintype.html +0 -143
  244. package/scripts/export-five-resource/chfs.exe +0 -0
  245. package/scripts/export-five-resource/fileify.js +0 -192
  246. package/scripts/export-five-resource/format-work.js +0 -71
  247. package/scripts/export-five-resource/staticify.js +0 -327
  248. package/scripts/transcode-model/BufferGeometryUtils.js +0 -832
  249. package/scripts/transcode-model/LoaderSupport.js +0 -1545
  250. package/scripts/transcode-model/MTLLoader.js +0 -602
  251. package/scripts/transcode-model/OBJLoader2.js +0 -1470
  252. package/scripts/transcode-model/obj2pbm.js +0 -65
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,137 @@ 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
+ }
549
+
550
+ /** 模型瓦片 */
551
+ export declare interface WorkModelTiles {
552
+ tileset_url: string;
553
+ tileset_url_md5: string;
554
+ b3md_mappings_url: string;
555
+ b3md_mappings_url_md5: string;
556
+ }
390
557
 
391
558
  /** 每个点位的数据 */
392
- export declare type WorkObserver = {
559
+ export declare interface WorkObserver {
560
+ /** 点位序号 */
393
561
  panoIndex: number;
562
+ /** 点位是否激活可用 */
394
563
  active: boolean;
564
+ /** 点位是否可加载 */
395
565
  loadable: boolean;
396
- images: WorkImages;
566
+ /** 点位全景图 */
567
+ images: WorkImage;
568
+ /** 点位视频 */
397
569
  video?: WorkVideo;
570
+ /** 可以看到的相关点位序号 */
398
571
  visibleNodes: number[];
572
+ /** 可以连通的相关点位序号 */
399
573
  accessibleNodes: number[];
574
+ /** 点位和模型的旋转对齐关系四元数 */
400
575
  quaternion: THREE_2.Quaternion;
576
+ /** 点位和模型的地面位置坐标关系 */
401
577
  standingPosition: THREE_2.Vector3;
578
+ /** 点位和模型的观察点坐标关系 */
402
579
  position: THREE_2.Vector3;
580
+ /** 点位所在楼层 */
403
581
  floorIndex: number;
404
- };
582
+ }
583
+
584
+ export declare interface WorkTile {
585
+ level: number;
586
+ size: number;
587
+ up: string;
588
+ down: string;
589
+ right: string;
590
+ left: string;
591
+ front: string;
592
+ back: string;
593
+ }
405
594
 
406
595
  /** 全景视频贴片 */
407
- export declare type WorkVideo = {
596
+ export declare interface WorkVideo {
597
+ /** 视频源 url */
408
598
  source: string;
599
+ /** 视频源变化矩阵 */
409
600
  matrix: THREE_2.Matrix4;
601
+ /** 视频源长宽尺寸 */
410
602
  size: THREE_2.Vector2;
411
- };
603
+ }
412
604
 
413
605
  export { }