@realsee/five 5.0.0-alpha.130 → 5.0.0-alpha.134

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 +53 -47
  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 +25 -25
  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 +8 -3
  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 +3 -3
  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 +7 -7
  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 +7 -2
  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 +7 -2
  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 +15 -11
  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 +257 -280
  115. package/five/index.js +6 -6
  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 - 帮助元素的是否开启
@@ -801,6 +736,7 @@ export declare class Five extends Subscribe<EventTypes> {
801
736
  */
802
737
  private _enableIOSEDR;
803
738
  private lastLoadWorkTask;
739
+ private requestProxy;
804
740
  private networkSubscribe;
805
741
  private screenBuffer?;
806
742
  private analysis?;
@@ -1036,8 +972,17 @@ export declare class Five extends Subscribe<EventTypes> {
1036
972
  setState(state: Partial<State>, immediately?: boolean, userAction?: boolean): void;
1037
973
  aroundScissor(callback: () => void): void;
1038
974
  private syncState;
975
+ /**
976
+ * 当前页面静态
977
+ */
1039
978
  ready(): Promise<void>;
979
+ /**
980
+ * 请求全屏
981
+ */
1040
982
  requestFullscreen(): void;
983
+ /**
984
+ * 退出全屏
985
+ */
1041
986
  exitFullscreen(): void;
1042
987
  private throwError;
1043
988
  private loadModel;
@@ -1208,6 +1153,12 @@ export declare interface FiveInitArgs {
1208
1153
  * 是否使用webgl2渲染执行环境, 默认值 false
1209
1154
  */
1210
1155
  webgl2?: boolean;
1156
+ /**
1157
+ * 请求代理
1158
+ * @param url - 发起的请求
1159
+ * @returns 返回的请求
1160
+ */
1161
+ requestProxy?(url: string): string;
1211
1162
  }
1212
1163
 
1213
1164
  /**
@@ -1237,11 +1188,6 @@ parameters: Parameters<T>[1]
1237
1188
  */
1238
1189
  export declare type FivePluginInstance<T extends FivePlugin<any, any>> = ReturnType<T>;
1239
1190
 
1240
- declare interface FloorInfo {
1241
- ground: number;
1242
- height: number;
1243
- }
1244
-
1245
1191
  export declare interface FloorplanControllerCustomInitArgs {
1246
1192
  /** 默认偏航角 */
1247
1193
  defaultLongitude?: number;
@@ -1259,18 +1205,6 @@ export declare interface FloorplanControllerCustomInitArgs {
1259
1205
  minFov?: number;
1260
1206
  }
1261
1207
 
1262
- declare type FrameState = {
1263
- camera: {
1264
- position: number[];
1265
- direction: number[];
1266
- up: number[];
1267
- };
1268
- height: number;
1269
- cullingVolume: CullingVolume;
1270
- frameNumber: number;
1271
- sseDenominator: number;
1272
- };
1273
-
1274
1208
  export declare type GestureTypes = "pan" | "tap" | "pinch" | "press" | "mouseWheel";
1275
1209
 
1276
1210
  export declare function getViewportScale(): number;
@@ -1388,20 +1322,6 @@ export declare class LegacyPanoCircleMesh extends THREE_2.Object3D implements Pa
1388
1322
  dispose(): void;
1389
1323
  }
1390
1324
 
1391
- /** Advanced loader options */
1392
- declare interface LoaderOptions {
1393
- updateInterval: number;
1394
- maxMemoryUsage: number;
1395
- maxScreenSpaceError: number;
1396
- viewDistanceScale: number;
1397
- throttleRequests: boolean;
1398
- maxRequests: number;
1399
- onNodeCreated: (node: PBMGroup) => void;
1400
- allowHosts?: string[];
1401
- networkSubscribe?: NetworkSubscribe;
1402
- maxDepth?: number;
1403
- }
1404
-
1405
1325
  export declare type LooseWork = {
1406
1326
  bvh?: boolean;
1407
1327
  modelAsync?: boolean;
@@ -1476,48 +1396,6 @@ export declare type LooseWorkVideo = {
1476
1396
  size: number[];
1477
1397
  };
1478
1398
 
1479
- declare class ManagedArray<T> {
1480
- private map;
1481
- private array;
1482
- private _length;
1483
- constructor();
1484
- /**
1485
- * Gets or sets the length of the array.
1486
- * If the set length is greater than the length of the internal array, the internal array is resized.
1487
- *
1488
- * @memberof ManagedArray.prototype
1489
- * @type Number
1490
- */
1491
- get length(): number;
1492
- /**
1493
- * Gets the element at an index.
1494
- * @param { Number } index The index to get.
1495
- */
1496
- get(index: number): T;
1497
- /**
1498
- * Sets the element at an index. Resizes the array if index is greater than the length of the array.
1499
- *
1500
- * @param {Number} index The index to set.
1501
- * @param {*} element The element to set at index.
1502
- */
1503
- set(index: number, element: T): void;
1504
- delete(element: T): void;
1505
- /**
1506
- * Push an element into the array.
1507
- *
1508
- * @param {*} element The element to push.
1509
- */
1510
- push(element: T): void;
1511
- /**
1512
- * Pop an element from the array.
1513
- *
1514
- * @returns {*} The last element in the array.
1515
- */
1516
- pop(): T;
1517
- reset(): void;
1518
- find(target: T): boolean;
1519
- }
1520
-
1521
1399
  export declare interface MapviewControllerCustomInitArgs {
1522
1400
  /** 默认偏航角 */
1523
1401
  defaultLongitude?: number;
@@ -1615,12 +1493,15 @@ export declare class Model extends PBMContainer implements Subscribe<ModelEventT
1615
1493
  bvhs: BVH[] & {
1616
1494
  loaded: boolean;
1617
1495
  };
1496
+ /** 网络代理 */
1497
+ private requestProxy?;
1618
1498
  /** 网络跟踪 */
1619
1499
  private networkSubscribe?;
1620
1500
  /** 安全域名 */
1621
1501
  private allowHosts?;
1622
1502
  constructor(options?: {
1623
1503
  networkSubscribe?: NetworkSubscribe;
1504
+ requestProxy?: (url: string) => string;
1624
1505
  allowHosts?: string[];
1625
1506
  });
1626
1507
  /**
@@ -1789,23 +1670,6 @@ export declare class NetworkSubscribe extends Subscribe<{
1789
1670
 
1790
1671
  export declare type NetworkType = "XMLHttpRequest" | "Script" | "Image" | "Link";
1791
1672
 
1792
- declare class OrientedBoundingBox {
1793
- center: Vector3;
1794
- halfAxes: Matrix3;
1795
- constructor(center?: number[], halfAxes?: number[]);
1796
- get halfSize(): number[];
1797
- get quaternion(): Quaternion;
1798
- fromCenterHalfSizeQuaternion(center: number[], halfSize: number[], quaternion: number[]): this;
1799
- clone(): OrientedBoundingBox;
1800
- equals(right: OrientedBoundingBox): boolean;
1801
- getBoundingSphere(result?: BoundingSphere): BoundingSphere;
1802
- intersectPlane(plane: Plane): number;
1803
- distanceTo(point: number[]): number;
1804
- distanceSquaredTo(point: number[]): number;
1805
- computePlaneDistances(position: Vector3, direction: Vector3, result?: number[]): number[];
1806
- transform(transformation: number[]): this;
1807
- }
1808
-
1809
1673
  export declare class PanoCircleMesh extends THREE_2.Object3D implements PanoCircleMeshInterface {
1810
1674
  needsRender: boolean;
1811
1675
  private loadingMesh;
@@ -1879,6 +1743,12 @@ export declare interface PanoramaControllerCustomInitArgs extends PanoramaLikeCo
1879
1743
  panoTapTriggerRadius?: number;
1880
1744
  /** 地面观察点标识自定义创建器 */
1881
1745
  panoCircleMeshCreator?: () => PanoCircleMeshInterface;
1746
+ /**
1747
+ * 全景瓦片登记
1748
+ * @param fov - 当前 fov
1749
+ * @param viewSize - 当前绘制区域大小
1750
+ * @returns 返回瓦片等级
1751
+ */
1882
1752
  tileLevelForFov?: false | ((fov: number, viewSize: THREE_2.Vector2) => number);
1883
1753
  }
1884
1754
 
@@ -2009,20 +1879,6 @@ export declare interface PBMParameters {
2009
1879
  floorInfo?: THREE_2.Vector3 | null;
2010
1880
  }
2011
1881
 
2012
- declare class Plane {
2013
- normal: Vector3;
2014
- distance: number;
2015
- constructor(normal?: number[], distance?: number);
2016
- fromNormalDistance(normal: number[], distance: number): this;
2017
- fromPointNormal(point: number[], normal: number[]): this;
2018
- fromCoefficients(a: number, b: number, c: number, d: number): this;
2019
- clone(): Plane;
2020
- equals(right: Plane): boolean;
2021
- getPointDistance(point: number[]): number;
2022
- transform(matrix4: Matrix4): this;
2023
- projectPointOntoPlane(point: number[], result?: number[]): Vector3;
2024
- }
2025
-
2026
1882
  /**
2027
1883
  * 相机位姿
2028
1884
  * [[include: coordinate.md]]
@@ -2042,56 +1898,6 @@ export declare interface Pose {
2042
1898
 
2043
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"];
2044
1900
 
2045
- declare type RequestResult = null | {
2046
- done: () => void;
2047
- };
2048
-
2049
- /**
2050
- * Used to issue a request, without having them "deeply queued" by the browser.
2051
- * @todo - Track requests globally, across multiple servers
2052
- */
2053
- declare class RequestScheduler<Identiy> {
2054
- private props;
2055
- private activeRequestCount;
2056
- /** Tracks the number of active requests and prioritizes/cancels queued requests. */
2057
- private requestQueue;
2058
- private requestMap;
2059
- private deferred;
2060
- constructor(props?: RequestSchedulerOptions);
2061
- /**
2062
- * Called by an application that wants to issue a request, without having it deeply queued by the browser
2063
- *
2064
- * When the returned promise resolved, it is OK for the application to issue a request.
2065
- * The promise resolves to an object that contains a `done` method.
2066
- * When the application's request has completed (or failed), the application must call the `done` function
2067
- *
2068
- * @param identiy
2069
- * @param getPriority will be called when request "slots" open up,
2070
- * allowing the caller to update priority or cancel the request
2071
- * Highest priority executes first, priority < 0 cancels the request
2072
- * @returns a promise
2073
- * - resolves to a object (with a `done` field) when the request can be issued without queueing,
2074
- * - resolves to `null` if the request has been cancelled (by the callback return < 0).
2075
- * In this case the application should not issue the request
2076
- */
2077
- scheduleRequest(identiy: Identiy, getPriority?: (identiy: Identiy) => number): Promise<RequestResult>;
2078
- private issueRequest;
2079
- /** We check requests asynchronously, to prevent multiple updates */
2080
- private issueNewRequests;
2081
- /** Refresh all requests */
2082
- private issueNewRequestsAsync;
2083
- /** Ensure all requests have updated priorities, and that no longer valid requests are cancelled */
2084
- private updateAllRequests;
2085
- /** Update a single request by calling the callback */
2086
- private updateRequest;
2087
- }
2088
-
2089
- /** RequestScheduler Options */
2090
- declare type RequestSchedulerOptions = {
2091
- throttleRequests?: boolean;
2092
- maxRequests?: number;
2093
- };
2094
-
2095
1901
  /** Five 场景*/
2096
1902
  export declare class Scene extends THREE_2.Scene {
2097
1903
  add(...objects: AddableObject[]): this;
@@ -2239,13 +2045,13 @@ export declare interface TextureOptions {
2239
2045
  * the content is loaded on-demand when needed based on the view.
2240
2046
  * Do not construct this directly, instead access tiles through {@link Tileset3D#tileVisible}.
2241
2047
  */
2242
- declare class Tile3D {
2243
- cacheNode?: CacheNode<Tile3D>;
2048
+ export declare class Tile3D {
2049
+ cacheNode?: TileCacheNode<Tile3D>;
2244
2050
  tileset: Tileset3D;
2245
2051
  header: TilesetJSONNode;
2246
2052
  content?: TileContent;
2247
2053
  parent?: Tile3D;
2248
- boundingVolume: OrientedBoundingBox;
2054
+ boundingVolume: TileOrientedBoundingBox;
2249
2055
  contentState: "UNLOADED" | "LOADING" | "PROCESSING" | "READY" | "FAILED";
2250
2056
  children: Tile3D[];
2251
2057
  depth: number;
@@ -2301,8 +2107,8 @@ declare class Tile3D {
2301
2107
  get contentUnloaded(): boolean;
2302
2108
  get contentFailed(): boolean;
2303
2109
  /** Get the tile's screen space error. */
2304
- getScreenSpaceError(frameState: FrameState, useParentLodMetric: boolean): number;
2305
- getPriority(): number;
2110
+ getScreenSpaceError(frameState: TileFrameState, useParentLodMetric: boolean): number;
2111
+ private getPriority;
2306
2112
  /**
2307
2113
  * Requests the tile's content.
2308
2114
  * The request may not be made if the Request Scheduler can't prioritize it.
@@ -2312,15 +2118,15 @@ declare class Tile3D {
2312
2118
  /**
2313
2119
  * Update the tile's visibility
2314
2120
  */
2315
- updateVisibility(frameState: FrameState): void;
2316
- visibility(frameState: FrameState, parentVisibilityPlaneMask: number): number;
2121
+ updateVisibility(frameState: TileFrameState): void;
2122
+ private visibility;
2317
2123
  /**
2318
2124
  * Computes the (potentially approximate) distance from the closest point of the tile's bounding volume to the camera.
2319
- * @param frameState The frame state.
2320
- * @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.
2321
2127
  */
2322
- distanceToTile(frameState: FrameState): number;
2323
- updateTransform(parentTransform?: Matrix4): void;
2128
+ private distanceToTile;
2129
+ private updateTransform;
2324
2130
  }
2325
2131
 
2326
2132
  export declare class Tile3DModel extends PBMContainer {
@@ -2340,16 +2146,78 @@ export declare class Tile3DModel extends PBMContainer {
2340
2146
  private lastCamera;
2341
2147
  private lastRenderer;
2342
2148
  private enabled;
2343
- constructor(loaderOptions?: Partial<LoaderOptions>);
2149
+ constructor(loaderOptions?: Partial<Tile3DModelLoaderOptions>);
2344
2150
  get enable(): boolean;
2345
2151
  set enable(value: boolean);
2346
- load(url: WorkModelTiles_2): void;
2152
+ load(url: WorkModelTiles): void;
2347
2153
  update(renderer: THREE_2.WebGLRenderer, camera: THREE_2.PerspectiveCamera): void;
2348
2154
  private tilesetUpdate;
2349
2155
  reset(): void;
2350
2156
  }
2351
2157
 
2352
- 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 {
2353
2221
  version: 1;
2354
2222
  magic: number;
2355
2223
  byteLength: number;
@@ -2372,24 +2240,133 @@ declare interface TileContent {
2372
2240
  rtcCenter?: Float32Array;
2373
2241
  }
2374
2242
 
2375
- 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 {
2376
2353
  rawJson: any;
2377
2354
  options: Tileset3dOptions;
2378
2355
  root: Tile3D;
2379
2356
  traverser: Tileset3DTraverser;
2380
2357
  cache: TilesetCache;
2381
- requestScheduler: RequestScheduler<string>;
2358
+ requestScheduler: TileRequestScheduler<string>;
2382
2359
  selectedTiles: Tile3D[];
2383
2360
  requestedTiles: Tile3D[];
2384
2361
  memoryUsageInBytes: number;
2385
2362
  frameNumber: number;
2386
2363
  private _tiles;
2387
2364
  private pendingCount;
2388
- b3dmMapping: B3DMMapping;
2365
+ b3dmMapping: TilesetJSON['b3dmMapping'];
2389
2366
  /**
2390
2367
  * Create a new Tileset3D
2391
- * @param json
2392
- * @param options
2368
+ * @param json - TilesetJSON
2369
+ * @param options - Tileset3dOptions
2393
2370
  */
2394
2371
  constructor(json: TilesetJSON, options: Tileset3dOptions);
2395
2372
  get maxMemoryUsage(): number;
@@ -2402,7 +2379,7 @@ declare class Tileset3D {
2402
2379
  get lodMetricValue(): number;
2403
2380
  get refine(): 'ADD' | "REPLACE";
2404
2381
  get tiles(): Tile3D[];
2405
- get floorInfo(): FloorInfo[];
2382
+ get floorInfo(): TilesetJSON['floorInfo'];
2406
2383
  /** Release resources */
2407
2384
  reset(): void;
2408
2385
  /** Is the tileset loaded (update needs to have been called at least once) */
@@ -2416,7 +2393,7 @@ declare class Tileset3D {
2416
2393
  unloadTile(tile: Tile3D): void;
2417
2394
  }
2418
2395
 
2419
- declare interface Tileset3dOptions {
2396
+ export declare interface Tileset3dOptions {
2420
2397
  throttleRequests: boolean;
2421
2398
  maxRequests: number;
2422
2399
  maxMemoryUsage: number;
@@ -2429,42 +2406,43 @@ declare interface Tileset3dOptions {
2429
2406
  contentLoader: (tile: Tile3D) => Promise<void>;
2430
2407
  onTraversalComplete: (selectedTiles: Tile3D[]) => Tile3D[];
2431
2408
  allowHosts?: string[];
2409
+ requestProxy?: (url: string) => string;
2432
2410
  networkSubscribe?: NetworkSubscribe;
2433
2411
  maxDepth?: number;
2434
2412
  }
2435
2413
 
2436
- declare class Tileset3DTraverser {
2414
+ export declare class Tileset3DTraverser {
2437
2415
  root: Tile3D | null;
2438
2416
  options: TilesetTraverserProps;
2439
2417
  requestedTiles: Record<string, Tile3D>;
2440
2418
  selectedTiles: Record<string, Tile3D>;
2441
2419
  emptyTiles: Record<string, Tile3D>;
2442
- protected _traversalStack: ManagedArray<Tile3D>;
2443
- protected _emptyTraversalStack: ManagedArray<Tile3D>;
2444
- protected _frameNumber: number | null;
2420
+ private _traversalStack;
2421
+ private _emptyTraversalStack;
2422
+ private _frameNumber;
2445
2423
  constructor(options: TilesetTraverserProps);
2446
- traverse(root: Tile3D, frameState: FrameState): void;
2424
+ traverse(root: Tile3D, frameState: TileFrameState): void;
2447
2425
  reset(): void;
2448
- executeTraversal(root: Tile3D, frameState: FrameState): void;
2449
- updateChildTiles(tile: Tile3D, frameState: FrameState): boolean;
2450
- updateAndPushChildren(tile: Tile3D, frameState: FrameState, stack: ManagedArray<Tile3D>, depth: number): boolean;
2451
- updateTile(tile: Tile3D, frameState: FrameState): void;
2452
- selectTile(tile: Tile3D, frameState: FrameState): void;
2453
- loadTile(tile: Tile3D, frameState: FrameState): void;
2454
- touchTile(tile: Tile3D, frameState: FrameState): void;
2455
- canTraverse(tile: Tile3D, frameState: FrameState, useParentMetric?: boolean, ignoreVisibility?: boolean): boolean;
2456
- shouldLoadTile(tile: Tile3D): boolean;
2457
- shouldSelectTile(tile: Tile3D): boolean;
2458
- shouldRefine(tile: Tile3D, frameState: FrameState, useParentMetric: boolean): boolean;
2459
- updateTileVisibility(tile: Tile3D, frameState: FrameState): void;
2460
- meetsScreenSpaceErrorEarly(tile: Tile3D, frameState: FrameState): boolean;
2461
- compareDistanceToCamera(a: Tile3D, b: Tile3D): number;
2462
- anyChildrenVisible(tile: Tile3D, frameState: FrameState): boolean;
2463
- everyChildrenVisibleIsLoaded(tile: Tile3D): boolean;
2464
- executeEmptyTraversal(root: Tile3D, frameState: FrameState): boolean;
2465
- }
2466
-
2467
- 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 {
2468
2446
  private list;
2469
2447
  private sentinel;
2470
2448
  constructor();
@@ -2475,7 +2453,7 @@ declare class TilesetCache {
2475
2453
  unloadTiles(isOverMemory: () => boolean, unloadCallback?: (tile: Tile3D) => void): void;
2476
2454
  }
2477
2455
 
2478
- declare interface TilesetJSON {
2456
+ export declare interface TilesetJSON {
2479
2457
  asset: {
2480
2458
  gltfUpAxis: "X" | "Y" | "Z";
2481
2459
  version: "1.0";
@@ -2486,11 +2464,17 @@ declare interface TilesetJSON {
2486
2464
  lodMetricValue: number;
2487
2465
  root: TilesetJSONNode;
2488
2466
  type: "TILES3D";
2489
- floorInfo: FloorInfo[] | [];
2490
- 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
+ };
2491
2475
  }
2492
2476
 
2493
- declare interface TilesetJSONNode {
2477
+ export declare interface TilesetJSONNode {
2494
2478
  boundingVolume: {
2495
2479
  box: number[];
2496
2480
  };
@@ -2508,12 +2492,12 @@ declare interface TilesetJSONNode {
2508
2492
  type: "EMPTY" | "SCENEGRAPH" | "MESH";
2509
2493
  }
2510
2494
 
2511
- declare type TilesetTraverserProps = {
2495
+ export declare type TilesetTraverserProps = {
2512
2496
  loadSiblings: boolean;
2513
2497
  skipLevelOfDetail: boolean;
2514
2498
  maxScreenSpaceError: number;
2515
2499
  maxDepth?: number;
2516
- onTraversalEnd: (frameState: FrameState) => any;
2500
+ onTraversalEnd: (frameState: TileFrameState) => any;
2517
2501
  };
2518
2502
 
2519
2503
  export declare interface TopviewControllerCustomInitArgs extends Omit<FloorplanControllerCustomInitArgs, "defaultLongitude" | "defaultLatitude" | "maxLatitude" | "minLatitude"> {
@@ -2606,13 +2590,6 @@ export declare interface WorkModelTiles {
2606
2590
  b3md_mappings_url_md5: string;
2607
2591
  }
2608
2592
 
2609
- declare interface WorkModelTiles_2 {
2610
- tileset_url: string;
2611
- tileset_url_md5: string;
2612
- b3md_mappings_url: string;
2613
- b3md_mappings_url_md5: string;
2614
- }
2615
-
2616
2593
  /** 每个点位的数据 */
2617
2594
  export declare interface WorkObserver {
2618
2595
  /** 点位序号 */