@realsee/five 5.0.0-alpha.131 → 5.0.0-alpha.135

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 (124) hide show
  1. package/docs/assets/search.js +1 -1
  2. package/docs/classes/five.AnimationFrameLoop.html +1 -1
  3. package/docs/classes/five.BVH.html +1 -1
  4. package/docs/classes/five.BVHIntersect.html +1 -1
  5. package/docs/classes/five.BVHNode.html +1 -1
  6. package/docs/classes/five.BVHVector3.html +1 -1
  7. package/docs/classes/five.Camera.html +1 -1
  8. package/docs/classes/five.Five.html +10 -4
  9. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  10. package/docs/classes/five.IntersectMesh.html +1 -1
  11. package/docs/classes/five.LegacyPanoCircleMesh.html +1 -1
  12. package/docs/classes/five.Model.html +1 -1
  13. package/docs/classes/five.NetworkSubscribe.html +1 -1
  14. package/docs/classes/five.PBMContainer.html +1 -1
  15. package/docs/classes/five.PBMGroup.html +1 -1
  16. package/docs/classes/five.PBMMaterial.html +1 -1
  17. package/docs/classes/five.PBMMesh.html +1 -1
  18. package/docs/classes/five.PanoCircleMesh.html +1 -1
  19. package/docs/classes/five.Scene.html +1 -1
  20. package/docs/classes/five.Subscribe.html +1 -1
  21. package/docs/classes/five.Tile3D.html +34 -0
  22. package/docs/classes/five.Tile3DModel.html +4 -4
  23. package/docs/classes/five.TileBoundingSphere.html +1 -0
  24. package/docs/classes/five.TileCacheNode.html +1 -0
  25. package/docs/classes/five.TileCullingVolume.html +1 -0
  26. package/docs/classes/five.TileOrientedBoundingBox.html +1 -0
  27. package/docs/classes/five.TilePlane.html +1 -0
  28. package/docs/classes/five.TileRequestScheduler.html +16 -0
  29. package/docs/classes/five.Tileset3D.html +11 -0
  30. package/docs/classes/five.Tileset3DTraverser.html +1 -0
  31. package/docs/classes/five.TilesetCache.html +1 -0
  32. package/docs/classes/five.Work.html +1 -1
  33. package/docs/classes/gltf_loader.GLTFLoader.html +1 -1
  34. package/docs/classes/gltf_loader.GLTFObject.html +1 -1
  35. package/docs/classes/line.Line.html +1 -1
  36. package/docs/classes/line.LineGeometry.html +1 -1
  37. package/docs/classes/line.LineMaterial.html +1 -1
  38. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  39. package/docs/classes/line.THREE_Line2.html +1 -1
  40. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  41. package/docs/classes/react.Store.html +1 -1
  42. package/docs/classes/server.BVH.html +1 -1
  43. package/docs/classes/server.BVHIntersect.html +1 -1
  44. package/docs/classes/server.BVHNode.html +1 -1
  45. package/docs/classes/server.BVHVector3.html +1 -1
  46. package/docs/classes/server.Model.html +1 -1
  47. package/docs/classes/server.PBMGroup.html +1 -1
  48. package/docs/classes/server.PBMMesh.html +1 -1
  49. package/docs/classes/sticker.Sticker.html +1 -1
  50. package/docs/index.html +1 -1
  51. package/docs/interfaces/five.AddableObject.html +1 -1
  52. package/docs/interfaces/five.AnimationFrame.html +1 -1
  53. package/docs/interfaces/five.CameraPose.html +1 -1
  54. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +1 -1
  55. package/docs/interfaces/five.EventCallback.html +7 -5
  56. package/docs/interfaces/five.FiveInitArgs.html +1 -1
  57. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +1 -1
  58. package/docs/interfaces/five.ImageOptions.html +1 -1
  59. package/docs/interfaces/five.ImageURLMappings.html +1 -1
  60. package/docs/interfaces/five.ImageURLOptions.html +1 -1
  61. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  62. package/docs/interfaces/five.Intersection.html +1 -1
  63. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +1 -1
  64. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
  65. package/docs/interfaces/five.ModelEventCallback.html +1 -1
  66. package/docs/interfaces/five.MovePanoOptions.html +1 -1
  67. package/docs/interfaces/five.PBMPanoPicture.html +1 -1
  68. package/docs/interfaces/five.PBMParameters.html +1 -1
  69. package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
  70. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
  71. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
  72. package/docs/interfaces/five.Pose.html +1 -1
  73. package/docs/interfaces/five.Scissor.html +1 -1
  74. package/docs/interfaces/five.State.html +1 -1
  75. package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -1
  76. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -1
  77. package/docs/interfaces/five.SubscribeMixinType.off.html +1 -1
  78. package/docs/interfaces/five.SubscribeMixinType.on.html +1 -1
  79. package/docs/interfaces/five.SubscribeMixinType.once.html +1 -1
  80. package/docs/interfaces/five.TextureOptions.html +1 -1
  81. package/docs/interfaces/five.Tile3DModelLoaderOptions.html +3 -0
  82. package/docs/interfaces/five.TileBoundingVolume.html +19 -0
  83. package/docs/interfaces/five.TileContent.html +1 -0
  84. package/docs/interfaces/five.Tileset3dOptions.html +1 -0
  85. package/docs/interfaces/five.TilesetJSON.html +1 -0
  86. package/docs/interfaces/five.TilesetJSONNode.html +1 -0
  87. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
  88. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
  89. package/docs/interfaces/five.WorkCubeImage.html +1 -1
  90. package/docs/interfaces/five.WorkImage.html +1 -1
  91. package/docs/interfaces/five.WorkInitial.html +1 -1
  92. package/docs/interfaces/five.WorkModel.html +1 -1
  93. package/docs/interfaces/five.WorkModelTiles.html +1 -1
  94. package/docs/interfaces/five.WorkObserver.html +1 -1
  95. package/docs/interfaces/five.WorkTile.html +1 -1
  96. package/docs/interfaces/five.WorkVideo.html +1 -1
  97. package/docs/interfaces/gltf_loader.GLTF.html +1 -1
  98. package/docs/interfaces/react.FiveActionReactCallbacks.html +1 -1
  99. package/docs/interfaces/react.FiveInjectionTypes.html +1 -1
  100. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +1 -1
  101. package/docs/interfaces/server.Intersection.html +1 -1
  102. package/docs/interfaces/server.ModelEventCallback.html +1 -1
  103. package/docs/interfaces/sticker.IntersectionLike.html +1 -1
  104. package/docs/interfaces/vue.FiveActionVueCallbacks.html +1 -1
  105. package/docs/modules/five.SubscribeMixinType.html +1 -1
  106. package/docs/modules/five.html +7 -3
  107. package/docs/modules/gltf_loader.html +1 -1
  108. package/docs/modules/line.html +1 -1
  109. package/docs/modules/react.html +1 -1
  110. package/docs/modules/server.html +2 -2
  111. package/docs/modules/sticker.html +1 -1
  112. package/docs/modules/vue.html +1 -1
  113. package/docs/modules.html +1 -1
  114. package/five/index.d.ts +243 -284
  115. package/five/index.js +4 -4
  116. package/gltf-loader/index.js +2 -2
  117. package/line/index.js +2 -2
  118. package/package.json +1 -1
  119. package/react/index.js +2 -2
  120. package/server/index.d.ts +1 -1
  121. package/server/index.js +2 -2
  122. package/sticker/index.js +2 -2
  123. package/umd/five.js +1 -1
  124. package/vue/index.js +2 -2
package/five/index.d.ts CHANGED
@@ -39,51 +39,6 @@ export declare class AnimationFrameLoop {
39
39
  disponse(): void;
40
40
  }
41
41
 
42
- declare interface B3DMMapping {
43
- b3dm_base_url: string;
44
- b3dm_url: Record<string, string>;
45
- }
46
-
47
- declare class BoundingSphere {
48
- center: Vector3;
49
- radius: number;
50
- constructor(center?: number[], radius?: number);
51
- fromCenterRadius(center: number[], radius: number): this;
52
- fromCornerPoints(corner: number[], oppositeCorner: number[]): this;
53
- equals(right: BoundingSphere): boolean;
54
- clone(): BoundingSphere;
55
- union(boundingSphere: BoundingSphere): BoundingSphere;
56
- expand(point: number[]): this;
57
- transform(transform: Matrix4): this;
58
- distanceSquaredTo(point: number[]): number;
59
- distanceTo(point: number[]): number;
60
- intersectPlane(plane: Plane): number;
61
- }
62
-
63
- declare interface BoundingVolume {
64
- /**
65
- * Applies a 4x4 affine transformation matrix to a bounding sphere.
66
- * @param sphere The bounding sphere to apply the transformation to.
67
- * @param transform The transformation matrix to apply to the bounding sphere.
68
- * @returns itself, i.e. the modified BoundingVolume.
69
- */
70
- transform(transform: readonly number[]): this;
71
- /** Computes the estimated distance squared from the closest point on a bounding sphere to a point. */
72
- distanceSquaredTo(point: readonly number[]): number;
73
- /** Computes the estimated distance from the closest point on a bounding sphere to a point. */
74
- distanceTo(point: readonly number[]): number;
75
- /**
76
- * Determines which side of a plane the oriented bounding box is located.
77
- *
78
- * @param plane The plane to test against.
79
- * @returns
80
- * - `INTERSECTION.INSIDE` if the entire box is on the side of the plane the normal is pointing.
81
- * - `INTERSECTION.OUTSIDE` if the entire box is on the opposite side.
82
- * - `INTERSECTION.INTERSECTING` if the box intersects the plane.
83
- */
84
- intersectPlane(plane: Plane): number;
85
- }
86
-
87
42
  export declare class BVH {
88
43
  trianglesArray?: Float32Array;
89
44
  offsetArray?: Uint32Array;
@@ -140,13 +95,6 @@ export declare class BVHVector3 {
140
95
  clone(): BVHVector3;
141
96
  }
142
97
 
143
- declare class CacheNode<T> {
144
- item: T;
145
- previous: CacheNode<T> | null;
146
- next: CacheNode<T> | null;
147
- constructor(item: T, previous: CacheNode<T> | null, next: CacheNode<T> | null);
148
- }
149
-
150
98
  /** Five 相机 */
151
99
  export declare class Camera extends THREE_2.PerspectiveCamera {
152
100
  /** 相机姿态 */
@@ -465,20 +413,6 @@ export declare type ControllerEventTypes = {
465
413
  error(error: Error): void;
466
414
  };
467
415
 
468
- declare class CullingVolume {
469
- static get MASK_OUTSIDE(): number;
470
- static get MASK_INSIDE(): number;
471
- static get MASK_INDETERMINATE(): number;
472
- planes: Plane[];
473
- constructor(planes?: Plane[]);
474
- fromBoundingSphere(boundingSphere: {
475
- center: Vector3;
476
- radius: number;
477
- }): this;
478
- computeVisibility(boundingVolume: BoundingVolume): number;
479
- computeVisibilityWithPlaneMask(boundingVolume: BoundingVolume, parentPlaneMask: number): number;
480
- }
481
-
482
416
  /**
483
417
  * URL 地址的转换
484
418
  * @param source - url 原地址
@@ -641,8 +575,9 @@ export declare type EventTypes = Pick<ControllerEventTypes, typeof PROXY_CONTROL
641
575
  * @param prevMode - 上本质是一个模态
642
576
  * @param panoIndex - 初始化动画结束后的点位下标
643
577
  * @param toPose - 初始化动画结束后的状态
578
+ * @param userAction - 是否用户触发
644
579
  */
645
- modeChange(mode: Mode, prevMode: Mode, panoIndex: number, toPose: Pose): void;
580
+ modeChange(mode: Mode, prevMode: Mode, panoIndex: number, toPose: Pose, userAction: boolean): void;
646
581
  /**
647
582
  * 帮助元素显应的变换
648
583
  * @param visible - 帮助元素的是否开启
@@ -1037,8 +972,17 @@ export declare class Five extends Subscribe<EventTypes> {
1037
972
  setState(state: Partial<State>, immediately?: boolean, userAction?: boolean): void;
1038
973
  aroundScissor(callback: () => void): void;
1039
974
  private syncState;
975
+ /**
976
+ * 当前页面静态
977
+ */
1040
978
  ready(): Promise<void>;
979
+ /**
980
+ * 请求全屏
981
+ */
1041
982
  requestFullscreen(): void;
983
+ /**
984
+ * 退出全屏
985
+ */
1042
986
  exitFullscreen(): void;
1043
987
  private throwError;
1044
988
  private loadModel;
@@ -1211,7 +1155,7 @@ export declare interface FiveInitArgs {
1211
1155
  webgl2?: boolean;
1212
1156
  /**
1213
1157
  * 请求代理
1214
- * @param url 发起的请求
1158
+ * @param url - 发起的请求
1215
1159
  * @returns 返回的请求
1216
1160
  */
1217
1161
  requestProxy?(url: string): string;
@@ -1244,11 +1188,6 @@ parameters: Parameters<T>[1]
1244
1188
  */
1245
1189
  export declare type FivePluginInstance<T extends FivePlugin<any, any>> = ReturnType<T>;
1246
1190
 
1247
- declare interface FloorInfo {
1248
- ground: number;
1249
- height: number;
1250
- }
1251
-
1252
1191
  export declare interface FloorplanControllerCustomInitArgs {
1253
1192
  /** 默认偏航角 */
1254
1193
  defaultLongitude?: number;
@@ -1266,18 +1205,6 @@ export declare interface FloorplanControllerCustomInitArgs {
1266
1205
  minFov?: number;
1267
1206
  }
1268
1207
 
1269
- declare type FrameState = {
1270
- camera: {
1271
- position: number[];
1272
- direction: number[];
1273
- up: number[];
1274
- };
1275
- height: number;
1276
- cullingVolume: CullingVolume;
1277
- frameNumber: number;
1278
- sseDenominator: number;
1279
- };
1280
-
1281
1208
  export declare type GestureTypes = "pan" | "tap" | "pinch" | "press" | "mouseWheel";
1282
1209
 
1283
1210
  export declare function getViewportScale(): number;
@@ -1395,21 +1322,6 @@ export declare class LegacyPanoCircleMesh extends THREE_2.Object3D implements Pa
1395
1322
  dispose(): void;
1396
1323
  }
1397
1324
 
1398
- /** Advanced loader options */
1399
- declare interface LoaderOptions {
1400
- updateInterval: number;
1401
- maxMemoryUsage: number;
1402
- maxScreenSpaceError: number;
1403
- viewDistanceScale: number;
1404
- throttleRequests: boolean;
1405
- maxRequests: number;
1406
- onNodeCreated: (node: PBMGroup) => void;
1407
- allowHosts?: string[];
1408
- requestProxy?: (url: string) => string;
1409
- networkSubscribe?: NetworkSubscribe;
1410
- maxDepth?: number;
1411
- }
1412
-
1413
1325
  export declare type LooseWork = {
1414
1326
  bvh?: boolean;
1415
1327
  modelAsync?: boolean;
@@ -1484,48 +1396,6 @@ export declare type LooseWorkVideo = {
1484
1396
  size: number[];
1485
1397
  };
1486
1398
 
1487
- declare class ManagedArray<T> {
1488
- private map;
1489
- private array;
1490
- private _length;
1491
- constructor();
1492
- /**
1493
- * Gets or sets the length of the array.
1494
- * If the set length is greater than the length of the internal array, the internal array is resized.
1495
- *
1496
- * @memberof ManagedArray.prototype
1497
- * @type Number
1498
- */
1499
- get length(): number;
1500
- /**
1501
- * Gets the element at an index.
1502
- * @param { Number } index The index to get.
1503
- */
1504
- get(index: number): T;
1505
- /**
1506
- * Sets the element at an index. Resizes the array if index is greater than the length of the array.
1507
- *
1508
- * @param {Number} index The index to set.
1509
- * @param {*} element The element to set at index.
1510
- */
1511
- set(index: number, element: T): void;
1512
- delete(element: T): void;
1513
- /**
1514
- * Push an element into the array.
1515
- *
1516
- * @param {*} element The element to push.
1517
- */
1518
- push(element: T): void;
1519
- /**
1520
- * Pop an element from the array.
1521
- *
1522
- * @returns {*} The last element in the array.
1523
- */
1524
- pop(): T;
1525
- reset(): void;
1526
- find(target: T): boolean;
1527
- }
1528
-
1529
1399
  export declare interface MapviewControllerCustomInitArgs {
1530
1400
  /** 默认偏航角 */
1531
1401
  defaultLongitude?: number;
@@ -1800,23 +1670,6 @@ export declare class NetworkSubscribe extends Subscribe<{
1800
1670
 
1801
1671
  export declare type NetworkType = "XMLHttpRequest" | "Script" | "Image" | "Link";
1802
1672
 
1803
- declare class OrientedBoundingBox {
1804
- center: Vector3;
1805
- halfAxes: Matrix3;
1806
- constructor(center?: number[], halfAxes?: number[]);
1807
- get halfSize(): number[];
1808
- get quaternion(): Quaternion;
1809
- fromCenterHalfSizeQuaternion(center: number[], halfSize: number[], quaternion: number[]): this;
1810
- clone(): OrientedBoundingBox;
1811
- equals(right: OrientedBoundingBox): boolean;
1812
- getBoundingSphere(result?: BoundingSphere): BoundingSphere;
1813
- intersectPlane(plane: Plane): number;
1814
- distanceTo(point: number[]): number;
1815
- distanceSquaredTo(point: number[]): number;
1816
- computePlaneDistances(position: Vector3, direction: Vector3, result?: number[]): number[];
1817
- transform(transformation: number[]): this;
1818
- }
1819
-
1820
1673
  export declare class PanoCircleMesh extends THREE_2.Object3D implements PanoCircleMeshInterface {
1821
1674
  needsRender: boolean;
1822
1675
  private loadingMesh;
@@ -1892,8 +1745,8 @@ export declare interface PanoramaControllerCustomInitArgs extends PanoramaLikeCo
1892
1745
  panoCircleMeshCreator?: () => PanoCircleMeshInterface;
1893
1746
  /**
1894
1747
  * 全景瓦片登记
1895
- * @param fov 当前 fov
1896
- * @param viewSize 当前绘制区域大小
1748
+ * @param fov - 当前 fov
1749
+ * @param viewSize - 当前绘制区域大小
1897
1750
  * @returns 返回瓦片等级
1898
1751
  */
1899
1752
  tileLevelForFov?: false | ((fov: number, viewSize: THREE_2.Vector2) => number);
@@ -2026,20 +1879,6 @@ export declare interface PBMParameters {
2026
1879
  floorInfo?: THREE_2.Vector3 | null;
2027
1880
  }
2028
1881
 
2029
- declare class Plane {
2030
- normal: Vector3;
2031
- distance: number;
2032
- constructor(normal?: number[], distance?: number);
2033
- fromNormalDistance(normal: number[], distance: number): this;
2034
- fromPointNormal(point: number[], normal: number[]): this;
2035
- fromCoefficients(a: number, b: number, c: number, d: number): this;
2036
- clone(): Plane;
2037
- equals(right: Plane): boolean;
2038
- getPointDistance(point: number[]): number;
2039
- transform(matrix4: Matrix4): this;
2040
- projectPointOntoPlane(point: number[], result?: number[]): Vector3;
2041
- }
2042
-
2043
1882
  /**
2044
1883
  * 相机位姿
2045
1884
  * [[include: coordinate.md]]
@@ -2059,56 +1898,6 @@ export declare interface Pose {
2059
1898
 
2060
1899
  export declare const PROXY_CONTROLLER_EVENT_NAMES: readonly ["cameraDirectionUpdate", "cameraUpdate", "cameraPositionUpdate", "panoSelected", "moveToPano", "moveToPanoCanceled", "panoWillArrive", "movingToPano", "panoArrived", "panoWillLoad", "panoLoaded", "panoLoadError", "initAnimationEnded", "initAnimationWillStart", "wantsGesture", "gesture", "wantsTapGesture", "tapGesture", "wantsPressGesture", "pressGesture", "wantsPanGesture", "wantsInteriaPan", "panGesture", "interiaPan", "wantsPinchGesture", "pinchGesture", "wantsMouseWheel", "mouseWheel", "wantsShowIntersectionOnModel", "intersectionOnModelUpdate", "intersectionHidden", "textureStartLoad", "textureLoading", "textureAbort", "textureLoaded", "textureError"];
2061
1900
 
2062
- declare type RequestResult = null | {
2063
- done: () => void;
2064
- };
2065
-
2066
- /**
2067
- * Used to issue a request, without having them "deeply queued" by the browser.
2068
- * @todo - Track requests globally, across multiple servers
2069
- */
2070
- declare class RequestScheduler<Identiy> {
2071
- private props;
2072
- private activeRequestCount;
2073
- /** Tracks the number of active requests and prioritizes/cancels queued requests. */
2074
- private requestQueue;
2075
- private requestMap;
2076
- private deferred;
2077
- constructor(props?: RequestSchedulerOptions);
2078
- /**
2079
- * Called by an application that wants to issue a request, without having it deeply queued by the browser
2080
- *
2081
- * When the returned promise resolved, it is OK for the application to issue a request.
2082
- * The promise resolves to an object that contains a `done` method.
2083
- * When the application's request has completed (or failed), the application must call the `done` function
2084
- *
2085
- * @param identiy
2086
- * @param getPriority will be called when request "slots" open up,
2087
- * allowing the caller to update priority or cancel the request
2088
- * Highest priority executes first, priority < 0 cancels the request
2089
- * @returns a promise
2090
- * - resolves to a object (with a `done` field) when the request can be issued without queueing,
2091
- * - resolves to `null` if the request has been cancelled (by the callback return < 0).
2092
- * In this case the application should not issue the request
2093
- */
2094
- scheduleRequest(identiy: Identiy, getPriority?: (identiy: Identiy) => number): Promise<RequestResult>;
2095
- private issueRequest;
2096
- /** We check requests asynchronously, to prevent multiple updates */
2097
- private issueNewRequests;
2098
- /** Refresh all requests */
2099
- private issueNewRequestsAsync;
2100
- /** Ensure all requests have updated priorities, and that no longer valid requests are cancelled */
2101
- private updateAllRequests;
2102
- /** Update a single request by calling the callback */
2103
- private updateRequest;
2104
- }
2105
-
2106
- /** RequestScheduler Options */
2107
- declare type RequestSchedulerOptions = {
2108
- throttleRequests?: boolean;
2109
- maxRequests?: number;
2110
- };
2111
-
2112
1901
  /** Five 场景*/
2113
1902
  export declare class Scene extends THREE_2.Scene {
2114
1903
  add(...objects: AddableObject[]): this;
@@ -2256,13 +2045,13 @@ export declare interface TextureOptions {
2256
2045
  * the content is loaded on-demand when needed based on the view.
2257
2046
  * Do not construct this directly, instead access tiles through {@link Tileset3D#tileVisible}.
2258
2047
  */
2259
- declare class Tile3D {
2260
- cacheNode?: CacheNode<Tile3D>;
2048
+ export declare class Tile3D {
2049
+ cacheNode?: TileCacheNode<Tile3D>;
2261
2050
  tileset: Tileset3D;
2262
2051
  header: TilesetJSONNode;
2263
2052
  content?: TileContent;
2264
2053
  parent?: Tile3D;
2265
- boundingVolume: OrientedBoundingBox;
2054
+ boundingVolume: TileOrientedBoundingBox;
2266
2055
  contentState: "UNLOADED" | "LOADING" | "PROCESSING" | "READY" | "FAILED";
2267
2056
  children: Tile3D[];
2268
2057
  depth: number;
@@ -2318,8 +2107,8 @@ declare class Tile3D {
2318
2107
  get contentUnloaded(): boolean;
2319
2108
  get contentFailed(): boolean;
2320
2109
  /** Get the tile's screen space error. */
2321
- getScreenSpaceError(frameState: FrameState, useParentLodMetric: boolean): number;
2322
- getPriority(): number;
2110
+ getScreenSpaceError(frameState: TileFrameState, useParentLodMetric: boolean): number;
2111
+ private getPriority;
2323
2112
  /**
2324
2113
  * Requests the tile's content.
2325
2114
  * The request may not be made if the Request Scheduler can't prioritize it.
@@ -2329,15 +2118,15 @@ declare class Tile3D {
2329
2118
  /**
2330
2119
  * Update the tile's visibility
2331
2120
  */
2332
- updateVisibility(frameState: FrameState): void;
2333
- visibility(frameState: FrameState, parentVisibilityPlaneMask: number): number;
2121
+ updateVisibility(frameState: TileFrameState): void;
2122
+ private visibility;
2334
2123
  /**
2335
2124
  * Computes the (potentially approximate) distance from the closest point of the tile's bounding volume to the camera.
2336
- * @param frameState The frame state.
2337
- * @returns {Number} The distance, in meters, or zero if the camera is inside the bounding volume.
2125
+ * @param frameState - The frame state.
2126
+ * @returns The distance, in meters, or zero if the camera is inside the bounding volume.
2338
2127
  */
2339
- distanceToTile(frameState: FrameState): number;
2340
- updateTransform(parentTransform?: Matrix4): void;
2128
+ private distanceToTile;
2129
+ private updateTransform;
2341
2130
  }
2342
2131
 
2343
2132
  export declare class Tile3DModel extends PBMContainer {
@@ -2357,16 +2146,78 @@ export declare class Tile3DModel extends PBMContainer {
2357
2146
  private lastCamera;
2358
2147
  private lastRenderer;
2359
2148
  private enabled;
2360
- constructor(loaderOptions?: Partial<LoaderOptions>);
2149
+ constructor(loaderOptions?: Partial<Tile3DModelLoaderOptions>);
2361
2150
  get enable(): boolean;
2362
2151
  set enable(value: boolean);
2363
- load(url: WorkModelTiles_2): void;
2152
+ load(url: WorkModelTiles): void;
2364
2153
  update(renderer: THREE_2.WebGLRenderer, camera: THREE_2.PerspectiveCamera): void;
2365
2154
  private tilesetUpdate;
2366
2155
  reset(): void;
2367
2156
  }
2368
2157
 
2369
- declare interface TileContent {
2158
+ /** Advanced loader options */
2159
+ export declare interface Tile3DModelLoaderOptions {
2160
+ updateInterval: number;
2161
+ maxMemoryUsage: number;
2162
+ maxScreenSpaceError: number;
2163
+ viewDistanceScale: number;
2164
+ throttleRequests: boolean;
2165
+ maxRequests: number;
2166
+ onNodeCreated: (node: PBMGroup) => void;
2167
+ allowHosts?: string[];
2168
+ requestProxy?: (url: string) => string;
2169
+ networkSubscribe?: NetworkSubscribe;
2170
+ maxDepth?: number;
2171
+ }
2172
+
2173
+ export declare class TileBoundingSphere {
2174
+ center: Vector3;
2175
+ radius: number;
2176
+ constructor(center?: number[], radius?: number);
2177
+ fromCenterRadius(center: number[], radius: number): this;
2178
+ fromCornerPoints(corner: number[], oppositeCorner: number[]): this;
2179
+ equals(right: TileBoundingSphere): boolean;
2180
+ clone(): TileBoundingSphere;
2181
+ union(boundingSphere: TileBoundingSphere): TileBoundingSphere;
2182
+ expand(point: number[]): this;
2183
+ transform(transform: Matrix4): this;
2184
+ distanceSquaredTo(point: number[]): number;
2185
+ distanceTo(point: number[]): number;
2186
+ intersectPlane(plane: TilePlane): number;
2187
+ }
2188
+
2189
+ export declare interface TileBoundingVolume {
2190
+ /**
2191
+ * Applies a 4x4 affine transformation matrix to a bounding sphere.
2192
+ * @param sphere - The bounding sphere to apply the transformation to.
2193
+ * @param transform - The transformation matrix to apply to the bounding sphere.
2194
+ * @returns itself, i.e. the modified BoundingVolume.
2195
+ */
2196
+ transform(transform: readonly number[]): this;
2197
+ /** Computes the estimated distance squared from the closest point on a bounding sphere to a point. */
2198
+ distanceSquaredTo(point: readonly number[]): number;
2199
+ /** Computes the estimated distance from the closest point on a bounding sphere to a point. */
2200
+ distanceTo(point: readonly number[]): number;
2201
+ /**
2202
+ * Determines which side of a plane the oriented bounding box is located.
2203
+ *
2204
+ * @param plane - The plane to test against.
2205
+ * @returns
2206
+ * - `INTERSECTION.INSIDE` if the entire box is on the side of the plane the normal is pointing.
2207
+ * - `INTERSECTION.OUTSIDE` if the entire box is on the opposite side.
2208
+ * - `INTERSECTION.INTERSECTING` if the box intersects the plane.
2209
+ */
2210
+ intersectPlane(plane: TilePlane): number;
2211
+ }
2212
+
2213
+ export declare class TileCacheNode<T> {
2214
+ item: T;
2215
+ previous: TileCacheNode<T> | null;
2216
+ next: TileCacheNode<T> | null;
2217
+ constructor(item: T, previous: TileCacheNode<T> | null, next: TileCacheNode<T> | null);
2218
+ }
2219
+
2220
+ export declare interface TileContent {
2370
2221
  version: 1;
2371
2222
  magic: number;
2372
2223
  byteLength: number;
@@ -2389,24 +2240,133 @@ declare interface TileContent {
2389
2240
  rtcCenter?: Float32Array;
2390
2241
  }
2391
2242
 
2392
- declare class Tileset3D {
2243
+ export declare class TileCullingVolume {
2244
+ static get MASK_OUTSIDE(): number;
2245
+ static get MASK_INSIDE(): number;
2246
+ static get MASK_INDETERMINATE(): number;
2247
+ planes: TilePlane[];
2248
+ constructor(planes?: TilePlane[]);
2249
+ fromBoundingSphere(boundingSphere: {
2250
+ center: Vector3;
2251
+ radius: number;
2252
+ }): this;
2253
+ computeVisibilityWithPlaneMask(boundingVolume: TileBoundingVolume, parentPlaneMask: number): number;
2254
+ }
2255
+
2256
+ export declare type TileFrameState = {
2257
+ camera: {
2258
+ position: number[];
2259
+ direction: number[];
2260
+ up: number[];
2261
+ };
2262
+ height: number;
2263
+ cullingVolume: TileCullingVolume;
2264
+ frameNumber: number;
2265
+ sseDenominator: number;
2266
+ };
2267
+
2268
+ export declare class TileOrientedBoundingBox {
2269
+ center: Vector3;
2270
+ halfAxes: Matrix3;
2271
+ constructor(center?: number[], halfAxes?: number[]);
2272
+ get halfSize(): number[];
2273
+ get quaternion(): Quaternion;
2274
+ fromCenterHalfSizeQuaternion(center: number[], halfSize: number[], quaternion: number[]): this;
2275
+ clone(): TileOrientedBoundingBox;
2276
+ equals(right: TileOrientedBoundingBox): boolean;
2277
+ getBoundingSphere(result?: TileBoundingSphere): TileBoundingSphere;
2278
+ intersectPlane(plane: TilePlane): number;
2279
+ distanceTo(point: number[]): number;
2280
+ distanceSquaredTo(point: number[]): number;
2281
+ computePlaneDistances(position: Vector3, direction: Vector3, result?: number[]): number[];
2282
+ transform(transformation: number[]): this;
2283
+ }
2284
+
2285
+ export declare class TilePlane {
2286
+ normal: Vector3;
2287
+ distance: number;
2288
+ constructor(normal?: number[], distance?: number);
2289
+ fromNormalDistance(normal: number[], distance: number): this;
2290
+ fromPointNormal(point: number[], normal: number[]): this;
2291
+ fromCoefficients(a: number, b: number, c: number, d: number): this;
2292
+ clone(): TilePlane;
2293
+ equals(right: TilePlane): boolean;
2294
+ getPointDistance(point: number[]): number;
2295
+ transform(matrix4: Matrix4): this;
2296
+ projectPointOntoPlane(point: number[], result?: number[]): Vector3;
2297
+ }
2298
+
2299
+ /** Tracks one request */
2300
+ export declare type TileRequest<Identiy> = {
2301
+ identiy: Identiy;
2302
+ priority: number;
2303
+ getPriority: (identiy: Identiy) => number;
2304
+ resolve: (requestResult: TileRequestResult) => void;
2305
+ };
2306
+
2307
+ export declare type TileRequestResult = null | {
2308
+ done: () => void;
2309
+ };
2310
+
2311
+ /**
2312
+ * Used to issue a request, without having them "deeply queued" by the browser.
2313
+ * @todo - Track requests globally, across multiple servers
2314
+ */
2315
+ export declare class TileRequestScheduler<Identiy> {
2316
+ private props;
2317
+ private activeRequestCount;
2318
+ /** Tracks the number of active requests and prioritizes/cancels queued requests. */
2319
+ private requestQueue;
2320
+ private requestMap;
2321
+ private deferred;
2322
+ constructor(props?: TileRequestSchedulerOptions);
2323
+ /**
2324
+ * Called by an application that wants to issue a request, without having it deeply queued by the browser
2325
+ *
2326
+ * When the returned promise resolved, it is OK for the application to issue a request.
2327
+ * The promise resolves to an object that contains a `done` method.
2328
+ * When the application's request has completed (or failed), the application must call the `done` function
2329
+ *
2330
+ * @param identiy - Identiy
2331
+ * @param getPriority - will be called when request "slots" open up, allowing the caller to update priority or cancel the request Highest priority executes first, priority less than 0 cancels the request
2332
+ * @returns a promise resolves to a object (with a `done` field) when the request can be issued without queueing, resolves to `null` if the request has been cancelled (by the callback return less than 0). In this case the application should not issue the request
2333
+ */
2334
+ scheduleRequest(identiy: Identiy, getPriority?: (identiy: Identiy) => number): Promise<TileRequestResult>;
2335
+ private issueRequest;
2336
+ /** We check requests asynchronously, to prevent multiple updates */
2337
+ private issueNewRequests;
2338
+ /** Refresh all requests */
2339
+ private issueNewRequestsAsync;
2340
+ /** Ensure all requests have updated priorities, and that no longer valid requests are cancelled */
2341
+ private updateAllRequests;
2342
+ /** Update a single request by calling the callback */
2343
+ private updateRequest;
2344
+ }
2345
+
2346
+ /** RequestScheduler Options */
2347
+ export declare type TileRequestSchedulerOptions = {
2348
+ throttleRequests?: boolean;
2349
+ maxRequests?: number;
2350
+ };
2351
+
2352
+ export declare class Tileset3D {
2393
2353
  rawJson: any;
2394
2354
  options: Tileset3dOptions;
2395
2355
  root: Tile3D;
2396
2356
  traverser: Tileset3DTraverser;
2397
2357
  cache: TilesetCache;
2398
- requestScheduler: RequestScheduler<string>;
2358
+ requestScheduler: TileRequestScheduler<string>;
2399
2359
  selectedTiles: Tile3D[];
2400
2360
  requestedTiles: Tile3D[];
2401
2361
  memoryUsageInBytes: number;
2402
2362
  frameNumber: number;
2403
2363
  private _tiles;
2404
2364
  private pendingCount;
2405
- b3dmMapping: B3DMMapping;
2365
+ b3dmMapping: TilesetJSON['b3dmMapping'];
2406
2366
  /**
2407
2367
  * Create a new Tileset3D
2408
- * @param json
2409
- * @param options
2368
+ * @param json - TilesetJSON
2369
+ * @param options - Tileset3dOptions
2410
2370
  */
2411
2371
  constructor(json: TilesetJSON, options: Tileset3dOptions);
2412
2372
  get maxMemoryUsage(): number;
@@ -2419,7 +2379,7 @@ declare class Tileset3D {
2419
2379
  get lodMetricValue(): number;
2420
2380
  get refine(): 'ADD' | "REPLACE";
2421
2381
  get tiles(): Tile3D[];
2422
- get floorInfo(): FloorInfo[];
2382
+ get floorInfo(): TilesetJSON['floorInfo'];
2423
2383
  /** Release resources */
2424
2384
  reset(): void;
2425
2385
  /** Is the tileset loaded (update needs to have been called at least once) */
@@ -2433,7 +2393,7 @@ declare class Tileset3D {
2433
2393
  unloadTile(tile: Tile3D): void;
2434
2394
  }
2435
2395
 
2436
- declare interface Tileset3dOptions {
2396
+ export declare interface Tileset3dOptions {
2437
2397
  throttleRequests: boolean;
2438
2398
  maxRequests: number;
2439
2399
  maxMemoryUsage: number;
@@ -2451,38 +2411,38 @@ declare interface Tileset3dOptions {
2451
2411
  maxDepth?: number;
2452
2412
  }
2453
2413
 
2454
- declare class Tileset3DTraverser {
2414
+ export declare class Tileset3DTraverser {
2455
2415
  root: Tile3D | null;
2456
2416
  options: TilesetTraverserProps;
2457
2417
  requestedTiles: Record<string, Tile3D>;
2458
2418
  selectedTiles: Record<string, Tile3D>;
2459
2419
  emptyTiles: Record<string, Tile3D>;
2460
- protected _traversalStack: ManagedArray<Tile3D>;
2461
- protected _emptyTraversalStack: ManagedArray<Tile3D>;
2462
- protected _frameNumber: number | null;
2420
+ private _traversalStack;
2421
+ private _emptyTraversalStack;
2422
+ private _frameNumber;
2463
2423
  constructor(options: TilesetTraverserProps);
2464
- traverse(root: Tile3D, frameState: FrameState): void;
2424
+ traverse(root: Tile3D, frameState: TileFrameState): void;
2465
2425
  reset(): void;
2466
- executeTraversal(root: Tile3D, frameState: FrameState): void;
2467
- updateChildTiles(tile: Tile3D, frameState: FrameState): boolean;
2468
- updateAndPushChildren(tile: Tile3D, frameState: FrameState, stack: ManagedArray<Tile3D>, depth: number): boolean;
2469
- updateTile(tile: Tile3D, frameState: FrameState): void;
2470
- selectTile(tile: Tile3D, frameState: FrameState): void;
2471
- loadTile(tile: Tile3D, frameState: FrameState): void;
2472
- touchTile(tile: Tile3D, frameState: FrameState): void;
2473
- canTraverse(tile: Tile3D, frameState: FrameState, useParentMetric?: boolean, ignoreVisibility?: boolean): boolean;
2474
- shouldLoadTile(tile: Tile3D): boolean;
2475
- shouldSelectTile(tile: Tile3D): boolean;
2476
- shouldRefine(tile: Tile3D, frameState: FrameState, useParentMetric: boolean): boolean;
2477
- updateTileVisibility(tile: Tile3D, frameState: FrameState): void;
2478
- meetsScreenSpaceErrorEarly(tile: Tile3D, frameState: FrameState): boolean;
2479
- compareDistanceToCamera(a: Tile3D, b: Tile3D): number;
2480
- anyChildrenVisible(tile: Tile3D, frameState: FrameState): boolean;
2481
- everyChildrenVisibleIsLoaded(tile: Tile3D): boolean;
2482
- executeEmptyTraversal(root: Tile3D, frameState: FrameState): boolean;
2483
- }
2484
-
2485
- declare class TilesetCache {
2426
+ private executeTraversal;
2427
+ private updateChildTiles;
2428
+ private updateAndPushChildren;
2429
+ updateTile(tile: Tile3D, frameState: TileFrameState): void;
2430
+ selectTile(tile: Tile3D, frameState: TileFrameState): void;
2431
+ loadTile(tile: Tile3D, frameState: TileFrameState): void;
2432
+ touchTile(tile: Tile3D, frameState: TileFrameState): void;
2433
+ private canTraverse;
2434
+ private shouldLoadTile;
2435
+ private shouldSelectTile;
2436
+ private shouldRefine;
2437
+ private updateTileVisibility;
2438
+ private meetsScreenSpaceErrorEarly;
2439
+ private compareDistanceToCamera;
2440
+ private anyChildrenVisible;
2441
+ private everyChildrenVisibleIsLoaded;
2442
+ private executeEmptyTraversal;
2443
+ }
2444
+
2445
+ export declare class TilesetCache {
2486
2446
  private list;
2487
2447
  private sentinel;
2488
2448
  constructor();
@@ -2493,7 +2453,7 @@ declare class TilesetCache {
2493
2453
  unloadTiles(isOverMemory: () => boolean, unloadCallback?: (tile: Tile3D) => void): void;
2494
2454
  }
2495
2455
 
2496
- declare interface TilesetJSON {
2456
+ export declare interface TilesetJSON {
2497
2457
  asset: {
2498
2458
  gltfUpAxis: "X" | "Y" | "Z";
2499
2459
  version: "1.0";
@@ -2504,11 +2464,17 @@ declare interface TilesetJSON {
2504
2464
  lodMetricValue: number;
2505
2465
  root: TilesetJSONNode;
2506
2466
  type: "TILES3D";
2507
- floorInfo: FloorInfo[] | [];
2508
- b3dmMapping: B3DMMapping;
2467
+ floorInfo: {
2468
+ ground: number;
2469
+ height: number;
2470
+ }[];
2471
+ b3dmMapping: {
2472
+ b3dm_base_url: string;
2473
+ b3dm_url: Record<string, string>;
2474
+ };
2509
2475
  }
2510
2476
 
2511
- declare interface TilesetJSONNode {
2477
+ export declare interface TilesetJSONNode {
2512
2478
  boundingVolume: {
2513
2479
  box: number[];
2514
2480
  };
@@ -2526,12 +2492,12 @@ declare interface TilesetJSONNode {
2526
2492
  type: "EMPTY" | "SCENEGRAPH" | "MESH";
2527
2493
  }
2528
2494
 
2529
- declare type TilesetTraverserProps = {
2495
+ export declare type TilesetTraverserProps = {
2530
2496
  loadSiblings: boolean;
2531
2497
  skipLevelOfDetail: boolean;
2532
2498
  maxScreenSpaceError: number;
2533
2499
  maxDepth?: number;
2534
- onTraversalEnd: (frameState: FrameState) => any;
2500
+ onTraversalEnd: (frameState: TileFrameState) => any;
2535
2501
  };
2536
2502
 
2537
2503
  export declare interface TopviewControllerCustomInitArgs extends Omit<FloorplanControllerCustomInitArgs, "defaultLongitude" | "defaultLatitude" | "maxLatitude" | "minLatitude"> {
@@ -2624,13 +2590,6 @@ export declare interface WorkModelTiles {
2624
2590
  b3md_mappings_url_md5: string;
2625
2591
  }
2626
2592
 
2627
- declare interface WorkModelTiles_2 {
2628
- tileset_url: string;
2629
- tileset_url_md5: string;
2630
- b3md_mappings_url: string;
2631
- b3md_mappings_url_md5: string;
2632
- }
2633
-
2634
2593
  /** 每个点位的数据 */
2635
2594
  export declare interface WorkObserver {
2636
2595
  /** 点位序号 */