@realsee/five 6.2.1 → 6.3.0-alpha.1

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 (64) hide show
  1. package/docs/assets/navigation.js +1 -1
  2. package/docs/assets/search.js +1 -1
  3. package/docs/classes/five.Camera.html +6 -5
  4. package/docs/classes/five.Five.html +12 -12
  5. package/docs/classes/five.Model.html +7 -4
  6. package/docs/classes/five.PBMMesh.html +3 -3
  7. package/docs/classes/five.PBMMeshMaterial.html +27 -22
  8. package/docs/classes/five.PBMPointCloud.html +4 -0
  9. package/docs/classes/five.PBMPointCloudMaterial.html +60 -0
  10. package/docs/classes/five.Tile.html +1 -3
  11. package/docs/classes/five.Tile3DModel.html +13 -4
  12. package/docs/classes/five.TileCache.html +4 -4
  13. package/docs/classes/five.TileNode.html +5 -2
  14. package/docs/classes/five.TileRequestScheduler.html +3 -12
  15. package/docs/classes/five.Tileset.html +16 -9
  16. package/docs/classes/five.Trajectory.html +8 -0
  17. package/docs/classes/five.TrajectoryNode.html +5 -0
  18. package/docs/functions/five.loadPly.html +1 -0
  19. package/docs/hierarchy.html +1 -1
  20. package/docs/interfaces/five.FiveLoadOptions.html +5 -2
  21. package/docs/interfaces/five.PBMParameters.html +23 -17
  22. package/docs/interfaces/five.Tile3DModelLoaderOptions.html +2 -2
  23. package/docs/interfaces/five.TilesetHeader.html +2 -2
  24. package/docs/interfaces/five.TilesetOptions.html +9 -3
  25. package/docs/interfaces/five.TrajectoryHeader.html +5 -0
  26. package/docs/modules/five.html +10 -2
  27. package/docs/types/five.ModelMaterialValues.html +1 -1
  28. package/docs/types/five.Models.html +5 -5
  29. package/docs/types/five.ParsedResultType.html +1 -1
  30. package/docs/types/five.TileCacheOptions.html +1 -0
  31. package/docs/types/five.TileContentData.html +1 -1
  32. package/docs/types/five.TileRequestOrder.html +1 -0
  33. package/docs/types/five.TileRequestSchedulerOptions.html +1 -0
  34. package/docs/types/five.TilesetFrameState.html +1 -1
  35. package/docs/types/five.TrajectoryContentData.html +1 -0
  36. package/docs/variables/five.defaultPbmParameters.html +1 -1
  37. package/five/index.d.ts +234 -86
  38. package/five/index.js +191 -92
  39. package/five/index.mjs +7327 -6534
  40. package/gltf-loader/index.js +3 -3
  41. package/gltf-loader/index.mjs +3 -3
  42. package/line/index.js +3 -3
  43. package/line/index.mjs +10 -10
  44. package/package.json +1 -1
  45. package/plugins/index.js +2 -2
  46. package/plugins/index.mjs +2 -2
  47. package/react/index.js +2 -2
  48. package/react/index.mjs +2 -2
  49. package/sticker/index.js +3 -3
  50. package/sticker/index.mjs +7 -7
  51. package/umd/five-gltf-loader.js +3 -3
  52. package/umd/five-line.js +3 -3
  53. package/umd/five-plugins.js +2 -2
  54. package/umd/five-react.js +2 -2
  55. package/umd/five-sticker.js +3 -3
  56. package/umd/five-vfx.js +2 -2
  57. package/umd/five-vue.js +2 -2
  58. package/umd/five.js +144 -45
  59. package/vfx/index.js +2 -2
  60. package/vfx/index.mjs +2 -2
  61. package/vue/index.js +2 -2
  62. package/vue/index.mjs +2 -2
  63. package/docs/types/five.TileRequest.html +0 -2
  64. package/docs/types/five.TileRequestResult.html +0 -1
package/five/index.d.ts CHANGED
@@ -119,6 +119,7 @@ export declare class Camera extends THREE_2.Camera {
119
119
  pose: CameraPose;
120
120
  private perspectiveCamera;
121
121
  private orthographicCamera;
122
+ time: number;
122
123
  needsRender: boolean;
123
124
  refineModel: boolean;
124
125
  private lastValues;
@@ -144,7 +145,7 @@ export declare class Camera extends THREE_2.Camera {
144
145
  get perspectiveProjectionMatrixInverse(): THREE_2.Matrix4;
145
146
  get orthographicProjectionMatrix(): THREE_2.Matrix4;
146
147
  get orthographicProjectionMatrixInverse(): THREE_2.Matrix4;
147
- updateTime(_time: number, _deltaTime: number): void;
148
+ updateTime(time: number, _deltaTime: number): void;
148
149
  get isPerspectiveCamera(): boolean;
149
150
  get isOrthographicCamera(): boolean;
150
151
  copy(source: this, recursive?: boolean): this;
@@ -1025,12 +1026,18 @@ export declare interface FiveLoadOptions {
1025
1026
  maxLevelOfDetail?: number;
1026
1027
  /** 模型跳过层级加载 */
1027
1028
  skipLevelOfDetail?: boolean;
1029
+ /** 模型最精细 */
1030
+ mostDetail?: boolean;
1028
1031
  /** 模型加载不在视野中的兄弟节点 */
1029
1032
  loadSiblings?: boolean;
1033
+ /** 模型加载不在视野中的所有节点 */
1034
+ loadAll?: boolean;
1030
1035
  /** 模型最大内存缓存 */
1031
1036
  maxMemoryUsage?: number;
1032
1037
  /** 模型网络最大请求并发数 */
1033
1038
  maxRequests?: number;
1039
+ /** 模型网络请求顺序 */
1040
+ requestOrder?: 'SCREEN_SPACE_ERROR' | 'SCREEN_LEVEL_VERTICAL' | 'SCREEN_VERTICAL';
1034
1041
  /** 模型屏幕空间误差计算最大值 */
1035
1042
  maxScreenSpaceError?: number;
1036
1043
  };
@@ -1676,6 +1683,19 @@ export declare function loadPbm(url: string, options: {
1676
1683
  fetcher: Fetcher;
1677
1684
  }): Promise<ParsedResultType>;
1678
1685
 
1686
+ export declare function loadPly<Type extends 'geometry' | 'mesh' | 'points' | 'line' | 'pbmPointCloud', ResultType = {
1687
+ 'geometry': THREE_2.BufferGeometry;
1688
+ 'mesh': THREE_2.Mesh<THREE_2.BufferGeometry, THREE_2.MeshBasicMaterial>;
1689
+ 'points': THREE_2.Points<THREE_2.BufferGeometry, THREE_2.PointsMaterial>;
1690
+ 'line': THREE_2.Line<THREE_2.BufferGeometry, THREE_2.LineBasicMaterial>;
1691
+ 'pbmPointCloud': PBMPointCloud;
1692
+ }[Type]>(url: string, options: {
1693
+ propertyNameMapping?: Record<string, string>;
1694
+ customPropertyMapping?: Record<string, string[]>;
1695
+ type?: Type;
1696
+ fetcher: Fetcher;
1697
+ }): Promise<ParsedResultType<ResultType>>;
1698
+
1679
1699
  export declare function loadPnts(url: string, options: {
1680
1700
  fetcher: Fetcher;
1681
1701
  computeBoundingBox?: boolean;
@@ -1944,12 +1964,18 @@ export declare class Model extends THREE_2.Object3D {
1944
1964
  maxLevelOfDetail?: number;
1945
1965
  /** 模型越层级加载 */
1946
1966
  skipLevelOfDetail?: boolean;
1967
+ /** 模型是否最密 */
1968
+ mostDetail?: boolean;
1947
1969
  /** 模型加载不在视野中的兄弟节点 */
1948
1970
  loadSiblings?: boolean;
1971
+ /** 模型加载不在视野中的所有节点 */
1972
+ loadAll?: boolean;
1949
1973
  /** 模型最大内存缓存 */
1950
1974
  maxMemoryUsage?: number;
1951
1975
  /** 模型网络最大请求并发数 */
1952
1976
  maxRequests?: number;
1977
+ /** 模型网络请求顺序 */
1978
+ requestOrder?: 'SCREEN_SPACE_ERROR' | 'SCREEN_LEVEL_VERTICAL' | 'SCREEN_VERTICAL';
1953
1979
  /** 模型屏幕空间误差计算最大值 */
1954
1980
  maxScreenSpaceError?: number;
1955
1981
  };
@@ -2386,11 +2412,11 @@ export declare interface PanoTextureEvent extends BaseEvent {
2386
2412
  error: Error | null;
2387
2413
  }
2388
2414
 
2389
- export declare type ParsedResultType = {
2390
- type: 'b3dm' | 'pnts' | 'at3d' | 'pbm' | 'dome' | 'domez' | 'glb';
2415
+ export declare type ParsedResultType<Scene = THREE_2.Object3D> = {
2416
+ type: 'none' | 'b3dm' | 'pnts' | 'at3d' | 'pbm' | 'dome' | 'domez' | 'glb' | 'ply';
2391
2417
  byteLength: number;
2392
2418
  uri: string;
2393
- scene: THREE_2.Object3D;
2419
+ scene: Scene;
2394
2420
  textures: THREE_2.Texture[];
2395
2421
  dispose: () => void;
2396
2422
  };
@@ -2445,8 +2471,8 @@ export declare class PBMGroup extends THREE_2.Group {
2445
2471
 
2446
2472
  /** PBM 对象 */
2447
2473
  export declare class PBMMesh extends THREE_2.Mesh<THREE_2.BufferGeometry, PBMMeshMaterial[]> {
2448
- model?: Model;
2449
2474
  constructor(geometry: THREE_2.BufferGeometry, materials: PBMMeshMaterial[]);
2475
+ update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model): void;
2450
2476
  }
2451
2477
 
2452
2478
  /** PBM 材质 */
@@ -2493,6 +2519,8 @@ export declare class PBMMeshMaterial extends THREE_2.ShaderMaterial implements P
2493
2519
  opacity: PBMParameters['opacity'];
2494
2520
  /** 模型颜色*/
2495
2521
  constantColor: PBMParameters['constantColor'];
2522
+ /** 楼层样式*/
2523
+ floorStyle: PBMParameters['floorStyle'];
2496
2524
  /** 楼层参数*/
2497
2525
  shownFloorIndex: PBMParameters['shownFloorIndex'];
2498
2526
  /** 亮度 */
@@ -2515,6 +2543,8 @@ export declare class PBMMeshMaterial extends THREE_2.ShaderMaterial implements P
2515
2543
  pointScale: PBMParameters['pointScale'];
2516
2544
  /** 点云背面绘制方式*/
2517
2545
  pointBack: PBMParameters['pointBack'];
2546
+ /** 点云出现动画时间 */
2547
+ pointAppearAnimationDuration: PBMParameters['pointAppearAnimationDuration'];
2518
2548
  /** 点云像素最小值*/
2519
2549
  pointMinPixel: PBMParameters['pointMinPixel'];
2520
2550
  /** 点云像素最大值*/
@@ -2523,11 +2553,12 @@ export declare class PBMMeshMaterial extends THREE_2.ShaderMaterial implements P
2523
2553
  gradientTexture: PBMParameters['gradientTexture'];
2524
2554
  /** 所属楼层*/
2525
2555
  floor: number;
2556
+ /** 点云平整度*/
2557
+ evennessPlane: PBMParameters['evennessPlane'];
2526
2558
  constructor(shaderType?: 'none' | 'basic' | 'phong', parameters?: Partial<PBMParameters>);
2527
2559
  onBeforeCompile(shader: THREE_2.Shader, renderer: THREE_2.WebGLRenderer): void;
2528
2560
  refreshUniforms(renderer: THREE_2.WebGLRenderer): void;
2529
- update(renderer: THREE_2.WebGLRenderer, camera: THREE_2.Camera): void;
2530
- syncModel(model: Model): void;
2561
+ update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model): void;
2531
2562
  copy(source: PBMMeshMaterial): this;
2532
2563
  }
2533
2564
 
@@ -2556,6 +2587,8 @@ export declare interface PBMParameters {
2556
2587
  transition: 'BLACK' | 'SPREAD' | 'FADE';
2557
2588
  /** 模型透明度 */
2558
2589
  opacity: number;
2590
+ /** 楼层样式 */
2591
+ floorStyle: 'VISIBILITY' | 'OPACITY';
2559
2592
  /** 楼层参数*/
2560
2593
  shownFloorIndex: number;
2561
2594
  /** 模型裁切参数(工程侧调用)*/
@@ -2580,12 +2613,87 @@ export declare interface PBMParameters {
2580
2613
  pointBack: 'VISIBLE' | 'HIDDEN' | 'DARK';
2581
2614
  /** 点云基础大小*/
2582
2615
  pointScale: number;
2616
+ /** 点云出现动画时间 */
2617
+ pointAppearAnimationDuration: number;
2583
2618
  /** 点云最小尺寸*/
2584
2619
  pointMinPixel: number;
2585
2620
  /** 点云最大尺寸*/
2586
2621
  pointMaxPixel: number;
2587
2622
  /** 高程彩色图*/
2588
2623
  gradientTexture: THREE_2.Texture | null;
2624
+ /** 点云平整度*/
2625
+ evennessPlane: {
2626
+ depth: number;
2627
+ points: THREE_2.Vector3[];
2628
+ };
2629
+ }
2630
+
2631
+ /** PBM 对象 */
2632
+ export declare class PBMPointCloud extends THREE_2.Points<THREE_2.BufferGeometry, PBMPointCloudMaterial> {
2633
+ private pointRange;
2634
+ private motion;
2635
+ constructor(geometry: THREE_2.BufferGeometry, materials: PBMPointCloudMaterial);
2636
+ update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model): void;
2637
+ }
2638
+
2639
+ export declare class PBMPointCloudMaterial extends THREE_2.ShaderMaterial implements PBMParameters {
2640
+ /** 更新版本 */
2641
+ syncModelVersion?: string;
2642
+ /** 起始点 */
2643
+ pano0: PBMParameters['pano0'];
2644
+ /** 结束点 */
2645
+ pano1: PBMParameters['pano1'];
2646
+ /** 全景图混合程度 [0-1] */
2647
+ progress: PBMParameters['progress'];
2648
+ /** 全景图过度混合 */
2649
+ transition: PBMParameters['transition'];
2650
+ /** 楼层样式 */
2651
+ floorStyle: PBMParameters['floorStyle'];
2652
+ /** 楼层参数*/
2653
+ shownFloorIndex: PBMParameters['shownFloorIndex'];
2654
+ /** 亮度 */
2655
+ brightness: PBMParameters['brightness'];
2656
+ /** 对外模型裁切参数*/
2657
+ clippers: PBMParameters['clippers'];
2658
+ /** 模型颜色*/
2659
+ constantColor: PBMParameters['constantColor'];
2660
+ /** 全景和点云/模型的混合程度*/
2661
+ modelAlpha: PBMParameters['modelAlpha'];
2662
+ /** 是否使用EDL*/
2663
+ useEDL: PBMParameters['useEDL'];
2664
+ /** 是否使用HQ*/
2665
+ useHQWeight: PBMParameters['useHQWeight'];
2666
+ /** 是否使用HQ_DEPTH_MASK*/
2667
+ useHQDepth: PBMParameters['useHQDepth'];
2668
+ /** 点云着色方式*/
2669
+ pointColor: PBMParameters['pointColor'];
2670
+ /** 点云大小绘制方式*/
2671
+ pointSize: PBMParameters['pointSize'];
2672
+ /** 点云形状*/
2673
+ pointShape: PBMParameters['pointShape'];
2674
+ /** 点云基础缩放*/
2675
+ pointScale: PBMParameters['pointScale'];
2676
+ /** 点云背面绘制方式*/
2677
+ pointBack: PBMParameters['pointBack'];
2678
+ /** 点云出现动画时间 */
2679
+ pointAppearAnimationDuration: PBMParameters['pointAppearAnimationDuration'];
2680
+ /** 点云像素最小值*/
2681
+ pointMinPixel: PBMParameters['pointMinPixel'];
2682
+ /** 点云像素最大值*/
2683
+ pointMaxPixel: PBMParameters['pointMaxPixel'];
2684
+ /** 高程彩色图*/
2685
+ gradientTexture: PBMParameters['gradientTexture'];
2686
+ /** 所属楼层*/
2687
+ floor: number;
2688
+ /** 点云平整度*/
2689
+ evennessPlane: {
2690
+ depth: number;
2691
+ points: THREE_2.Vector3[];
2692
+ };
2693
+ constructor(parameters?: Partial<PBMParameters>);
2694
+ onBeforeCompile(shader: THREE_2.Shader, renderer: THREE_2.WebGLRenderer): void;
2695
+ update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model): void;
2696
+ copy(source: PBMPointCloudMaterial): this;
2589
2697
  }
2590
2698
 
2591
2699
  /**
@@ -2921,6 +3029,7 @@ export declare class Tile {
2921
3029
  touchedFrameNumber: number;
2922
3030
  distanceToCamera: number;
2923
3031
  centerZDepth: number;
3032
+ centerScreenY: number;
2924
3033
  screenSpaceError: number;
2925
3034
  inRequestVolume: boolean;
2926
3035
  visibilityPlaneMask: number;
@@ -2946,8 +3055,6 @@ export declare class Tile {
2946
3055
  get hasEmptyContent(): boolean;
2947
3056
  get contentReady(): boolean;
2948
3057
  get contentByteLength(): number;
2949
- loadContent(): Promise<boolean>;
2950
- unloadContent(): boolean;
2951
3058
  getScreenSpaceError(frameState: TilesetFrameState, distanceToCamera: number, useParentGeometricError: boolean): number;
2952
3059
  getPriority(): number;
2953
3060
  }
@@ -2958,8 +3065,11 @@ export declare class Tile3DModel extends THREE_2.Object3D {
2958
3065
  static DEFAULT_MAX_MEMORY_USAGE: number;
2959
3066
  static DEFAULT_MAX_SCREEN_SPACE_ERROR: number;
2960
3067
  static DEFAULT_SKIP_LEVEL_OF_DETAIL: boolean;
3068
+ static DEFAULT_MOST_DETAIL: boolean;
2961
3069
  static DEFAULT_LOAD_SIBLINGS: boolean;
3070
+ static DEFAULT_LOAD_ALL: boolean;
2962
3071
  static DEFAULT_MAX_REQUESTS: number;
3072
+ static DEFAULT_REQUEST_ORDER: TileRequestOrder;
2963
3073
  modelIndex: number;
2964
3074
  debug: boolean;
2965
3075
  type: 'point_cloud' | 'mesh';
@@ -2992,20 +3102,30 @@ export declare class Tile3DModel extends THREE_2.Object3D {
2992
3102
  cacheCameras: (THREE_2.PerspectiveCamera | Camera)[];
2993
3103
  private clearStencilObject;
2994
3104
  private disposed;
2995
- private unloadTileQueue;
2996
3105
  private renderer?;
3106
+ private renderObjects;
3107
+ private backfaceObjects;
3108
+ private debugObjects;
3109
+ private tileObjects;
2997
3110
  constructor(model: Model, tilesetHeader: TilesetHeader, options: Tile3DModelLoaderOptions);
2998
3111
  getRenderHash(): string;
2999
3112
  get maxMemoryUsage(): number;
3000
3113
  set maxMemoryUsage(value: number);
3001
3114
  get maxRequests(): number;
3002
3115
  set maxRequests(value: number);
3116
+ get requestOrder(): TileRequestOrder;
3117
+ set requestOrder(value: TileRequestOrder);
3003
3118
  get skipLevelOfDetail(): boolean;
3004
3119
  set skipLevelOfDetail(value: boolean);
3120
+ get mostDetail(): boolean;
3121
+ set mostDetail(value: boolean);
3005
3122
  get loadSiblings(): boolean;
3006
3123
  set loadSiblings(value: boolean);
3124
+ get loadAll(): boolean;
3125
+ set loadAll(value: boolean);
3007
3126
  get maxScreenSpaceError(): number;
3008
3127
  set maxScreenSpaceError(value: number);
3128
+ get trajectories(): Trajectory[];
3009
3129
  localToEnu(vector: THREE_2.Vector3): THREE_2.Vector3;
3010
3130
  enuToLocal(vector: THREE_2.Vector3): THREE_2.Vector3;
3011
3131
  localToEcef(vector: THREE_2.Vector3): THREE_2.Vector3;
@@ -3018,9 +3138,11 @@ export declare class Tile3DModel extends THREE_2.Object3D {
3018
3138
  ecefToWorld(vector: THREE_2.Vector3): THREE_2.Vector3;
3019
3139
  worldToLla(vector: THREE_2.Vector3): THREE_2.Vector3;
3020
3140
  llaToWorld(vector: THREE_2.Vector3): THREE_2.Vector3;
3021
- loadContent(tile: Tile): Promise<boolean>;
3022
- unloadContent(tile: Tile): void;
3141
+ loadContent(tile: Tile): Promise<void>;
3142
+ unloadContent(tile: Tile): Promise<void>;
3023
3143
  loadAllTilesets(): Promise<void>;
3144
+ loadTrajectory(trajectory: Trajectory): Promise<void>;
3145
+ unloadTrajectory(trajectory: Trajectory): Promise<void>;
3024
3146
  intersectRaycaster(raycaster: THREE_2.Raycaster, sortByDistance?: boolean, target?: Intersection[]): Intersection[];
3025
3147
  private cloneSkipBackfaceObject;
3026
3148
  update(renderer: THREE_2.WebGLRenderer, camera: Camera): void;
@@ -3049,20 +3171,26 @@ export declare interface Tile3DModelLoaderOptions {
3049
3171
  }
3050
3172
 
3051
3173
  export declare class TileCache {
3174
+ private options;
3052
3175
  private cacheNodeMap;
3053
3176
  private list;
3054
3177
  private sentinel;
3055
- constructor();
3178
+ constructor(options?: TileCacheOptions);
3056
3179
  reset(): void;
3057
- touch(tile: Tile): void;
3058
- add(tile: Tile, addCallback?: (tile: Tile) => void): void;
3059
- unloadTile(tile: Tile, unloadCallback?: (tile: Tile) => void): void;
3060
- unloadTiles(isOverMemory: () => boolean, unloadCallback?: (tile: Tile) => void): void;
3180
+ touchTile(tile: Tile): void;
3181
+ loadTile(tile: Tile): void;
3182
+ unloadTile(tile: Tile): void;
3183
+ unloadTiles(isOverMemory: () => boolean): void;
3061
3184
  toArray(): Tile[];
3062
3185
  }
3063
3186
 
3187
+ export declare type TileCacheOptions = {
3188
+ onTileLoad?: (tile: Tile) => void;
3189
+ onTileUnload?: (tile: Tile) => void;
3190
+ };
3191
+
3064
3192
  export declare type TileContentData = {
3065
- type: 'b3dm' | 'pnts' | 'at3d' | 'pbm' | 'dome' | 'domez' | 'glb';
3193
+ type: 'none' | 'b3dm' | 'pnts' | 'at3d' | 'pbm' | 'dome' | 'domez' | 'glb' | 'ply';
3066
3194
  byteLength: number;
3067
3195
  uri: string;
3068
3196
  object: TileNode;
@@ -3138,70 +3266,47 @@ export declare interface TileHeader {
3138
3266
  extras?: Record<string, any>;
3139
3267
  }
3140
3268
 
3141
- export declare class TileNode extends THREE_2.Group {
3269
+ export declare class TileNode extends THREE_2.Object3D {
3142
3270
  private contentObject;
3143
3271
  private disposer;
3144
3272
  private disposers;
3145
- constructor(contentObject: THREE_2.Object3D, disposer?: () => void);
3273
+ materials: THREE_2.Material[];
3274
+ pbmObjects: (PBMMesh | PBMPointCloud)[];
3275
+ constructor(name: string, contentObject: THREE_2.Object3D, disposer?: () => void);
3146
3276
  generateBvhTree(): Promise<this>;
3147
3277
  intersectRaycaster(raycaster: THREE_2.Raycaster, sortByDistance?: boolean, target?: Intersection[]): Intersection[];
3278
+ update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model): void;
3148
3279
  dispose(): void;
3149
3280
  clone(): this;
3150
3281
  }
3151
3282
 
3152
- /** Tracks one request */
3153
- export declare type TileRequest<Identiy> = {
3154
- identiy: Identiy;
3155
- priority: number;
3156
- getPriority: (identiy: Identiy) => number;
3157
- resolve: (requestResult: TileRequestResult) => void;
3158
- };
3159
-
3160
- export declare type TileRequestResult = null | {
3161
- done: () => void;
3162
- };
3283
+ export declare type TileRequestOrder = 'SCREEN_SPACE_ERROR' | 'SCREEN_LEVEL_VERTICAL' | 'SCREEN_VERTICAL';
3163
3284
 
3164
- /**
3165
- * Used to issue a request, without having them "deeply queued" by the browser.
3166
- */
3167
- export declare class TileRequestScheduler<Identiy> {
3168
- tileset: Tileset;
3285
+ export declare class TileRequestScheduler {
3286
+ private tileset;
3287
+ private options;
3169
3288
  private activeRequests;
3170
- /** Tracks the number of active requests and prioritizes/cancels queued requests. */
3171
3289
  private requestQueue;
3172
- private requestMap;
3173
- private deferred;
3174
- constructor(tileset: Tileset);
3175
- /**
3176
- * Called by an application that wants to issue a request, without having it deeply queued by the browser
3177
- *
3178
- * When the returned promise resolved, it is OK for the application to issue a request.
3179
- * The promise resolves to an object that contains a `done` method.
3180
- * When the application's request has completed (or failed), the application must call the `done` function
3181
- *
3182
- * @param identiy - Identiy
3183
- * @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
3184
- * @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
3185
- */
3186
- scheduleRequest(identiy: Identiy, getPriority: (identiy: Identiy) => number): Promise<TileRequestResult>;
3290
+ constructor(tileset: Tileset, options: TileRequestSchedulerOptions);
3187
3291
  reset(): void;
3188
- private issueRequest;
3189
- /** We check requests asynchronously, to prevent multiple updates */
3190
- private issueNewRequests;
3191
- /** Refresh all requests */
3192
- private issueNewRequestsAsync;
3193
- /** Ensure all requests have updated priorities, and that no longer valid requests are cancelled */
3194
- private updateAllRequests;
3195
- /** Update a single request by calling the callback */
3196
- private updateRequest;
3292
+ update(requestTiles: Tile[], order: TileRequestOrder, frameState: TilesetFrameState): void;
3197
3293
  }
3198
3294
 
3295
+ export declare type TileRequestSchedulerOptions = {
3296
+ onTileSkip?: (tile: Tile) => void;
3297
+ onTileLoad?: (tile: Tile) => void;
3298
+ onTileError?: (tile: Tile, error: Error) => void;
3299
+ };
3300
+
3199
3301
  export declare class Tileset {
3200
3302
  static DEFAULT_MAX_MEMORY_USAGE: number;
3201
3303
  static DEFAULT_MAX_SCREEN_SPACE_ERROR: number;
3202
3304
  static DEFAULT_SKIP_LEVEL_OF_DETAIL: boolean;
3305
+ static DEFAULT_MOST_DETAIL: boolean;
3203
3306
  static DEFAULT_LOAD_SIBLINGS: boolean;
3307
+ static DEFAULT_LOAD_ALL: boolean;
3204
3308
  static DEFAULT_MAX_REQUESTS: number;
3309
+ static DEFAULT_REQUEST_ORDER: TileRequestOrder;
3205
3310
  asset: {
3206
3311
  version: string;
3207
3312
  tilesetVersion: string;
@@ -3212,6 +3317,7 @@ export declare class Tileset {
3212
3317
  imageWidth: number;
3213
3318
  imageHeight: number;
3214
3319
  };
3320
+ trajectories?: TrajectoryHeader[];
3215
3321
  [key: string]: any;
3216
3322
  };
3217
3323
  id: string;
@@ -3222,50 +3328,43 @@ export declare class Tileset {
3222
3328
  properties: Record<string, any>;
3223
3329
  options: TilesetOptions;
3224
3330
  root: Tile;
3225
- rootMeta: {
3226
- creationTime?: string;
3227
- upAxis?: string;
3228
- coordinate?: {
3229
- base_keyframe: number;
3230
- base_trajectory: number;
3231
- coordinate_system: string;
3232
- ground_height: number;
3233
- lon_lat_alt: [number, number, number];
3234
- pose_ecef_to_enu: number[];
3235
- pose_enu_to_ecef: number[];
3236
- version: number;
3237
- };
3238
- };
3331
+ rootMeta: NonNullable<TilesetHeader['rootMeta']>;
3239
3332
  transform: THREE_2.Matrix4;
3240
3333
  transformIsIdentity: boolean;
3241
3334
  geometricError: number;
3242
3335
  cache: TileCache;
3243
- requestScheduler: TileRequestScheduler<string>;
3336
+ requestScheduler: TileRequestScheduler;
3244
3337
  private normalTraverser;
3245
3338
  private skipTraverser;
3339
+ private mostDetailTraverser;
3246
3340
  private memoryUsageInBytes;
3247
3341
  maxMemoryUsage: number;
3248
3342
  maxScreenSpaceError: number;
3249
3343
  skipLevelOfDetail: boolean;
3344
+ mostDetail: boolean;
3250
3345
  loadSiblings: boolean;
3346
+ loadAll: boolean;
3251
3347
  maxRequests: number;
3348
+ tileRequestOrder: TileRequestOrder;
3252
3349
  loadedTiles: Set<Tile>;
3253
3350
  needsRefinedTiles: Set<Tile>;
3254
3351
  requestedTiles: Tile[];
3255
3352
  selectedTiles: Tile[];
3256
- private pendingCount;
3353
+ unloadTiles: Tile[];
3354
+ trajectories: Trajectory[];
3355
+ selectedTrajectories: Trajectory[];
3356
+ pointLength: number;
3357
+ floorLength: number;
3257
3358
  constructor(id: string, header: TilesetHeader, options: TilesetOptions);
3258
3359
  private get traverser();
3259
3360
  /** Release resources */
3260
3361
  reset(): void;
3261
- /** Is the tileset loaded (update needs to have been called at least once) */
3262
- isLoaded(): boolean;
3263
- traverse(frameState: TilesetFrameState, cacheFrameStates?: TilesetFrameState[]): void;
3264
- loadTile(tile: Tile): void;
3265
- unloadTile(tile: Tile): void;
3362
+ update(frameState: TilesetFrameState, cacheFrameStates?: TilesetFrameState[]): void;
3266
3363
  }
3267
3364
 
3268
3365
  export declare type TilesetFrameState = {
3366
+ frameNumber: number;
3367
+ time: number;
3269
3368
  camera: {
3270
3369
  type: "PerspectiveCamera" | "OrthographicCamera";
3271
3370
  near: number;
@@ -3279,11 +3378,9 @@ export declare type TilesetFrameState = {
3279
3378
  height: number;
3280
3379
  pixelRatio: number;
3281
3380
  cullingVolume: CullingVolume;
3282
- frameNumber: number;
3283
3381
  sseDenominator: number;
3284
3382
  minLevelOfDetail: number;
3285
3383
  maxLevelOfDetail: number;
3286
- maxScreenSpaceError: number;
3287
3384
  };
3288
3385
 
3289
3386
  export declare interface TilesetHeader {
@@ -3297,6 +3394,10 @@ export declare interface TilesetHeader {
3297
3394
  imageWidth: number;
3298
3395
  imageHeight: number;
3299
3396
  };
3397
+ trajectories?: {
3398
+ version: string;
3399
+ list: TrajectoryHeader[];
3400
+ };
3300
3401
  [key: string]: any;
3301
3402
  };
3302
3403
  properties?: Record<string, any>;
@@ -3305,7 +3406,11 @@ export declare interface TilesetHeader {
3305
3406
  rootMeta?: {
3306
3407
  creationTime?: string;
3307
3408
  upAxis?: string;
3409
+ numFloors?: number;
3410
+ numTotalPoints?: number;
3411
+ numTrajectories?: number;
3308
3412
  coordinate?: {
3413
+ version: number;
3309
3414
  base_keyframe: number;
3310
3415
  base_trajectory: number;
3311
3416
  coordinate_system: string;
@@ -3313,7 +3418,6 @@ export declare interface TilesetHeader {
3313
3418
  lon_lat_alt: [number, number, number];
3314
3419
  pose_ecef_to_enu: number[];
3315
3420
  pose_enu_to_ecef: number[];
3316
- version: number;
3317
3421
  };
3318
3422
  };
3319
3423
  }
@@ -3321,15 +3425,59 @@ export declare interface TilesetHeader {
3321
3425
  export declare interface TilesetOptions {
3322
3426
  url?: string;
3323
3427
  referer?: string;
3324
- contentLoader: (tile: Tile) => Promise<boolean>;
3428
+ tileLoader: (tile: Tile) => Promise<void>;
3429
+ tileUnloader: (tile: Tile) => Promise<void>;
3325
3430
  onTileLoad: (tile: Tile) => any;
3326
3431
  onTileUnload: (tile: Tile) => any;
3327
3432
  onTileError: (tile: Tile, error: Error) => any;
3433
+ trajectoryLoader: (trajectory: Trajectory) => Promise<void>;
3434
+ trajectoryUnloader: (trajectory: Trajectory) => Promise<void>;
3435
+ onTrajectoryLoad: (trajectory: Trajectory) => any;
3436
+ onTrajectoryUnload: (trajectory: Trajectory) => any;
3437
+ onTrajectoryError: (trajectory: Trajectory, error: Error) => any;
3328
3438
  }
3329
3439
 
3330
3440
  export declare interface TopviewControllerCustomInitArgs extends Omit<FloorplanControllerCustomInitArgs, "defaultLongitude" | "defaultLatitude" | "maxLatitude" | "minLatitude"> {
3331
3441
  }
3332
3442
 
3443
+ export declare class Trajectory {
3444
+ index: number;
3445
+ name: string;
3446
+ tileset: Tileset;
3447
+ transform: THREE_2.Matrix4;
3448
+ visible: boolean;
3449
+ content: {
3450
+ uri: string;
3451
+ color: THREE_2.Color;
3452
+ data?: TrajectoryContentData;
3453
+ loadState: 'LOADING' | 'UNLOADED' | 'READY' | 'FAILED';
3454
+ byteLength: number;
3455
+ };
3456
+ constructor(index: number, header: TrajectoryHeader, tileset: Tileset);
3457
+ }
3458
+
3459
+ export declare type TrajectoryContentData = {
3460
+ byteLength: number;
3461
+ uri: string;
3462
+ object: TrajectoryNode;
3463
+ };
3464
+
3465
+ export declare interface TrajectoryHeader {
3466
+ file: string;
3467
+ name: string;
3468
+ color?: number | string;
3469
+ transform?: number[];
3470
+ }
3471
+
3472
+ export declare class TrajectoryNode extends THREE_2.Object3D {
3473
+ name: string;
3474
+ private line;
3475
+ private edge;
3476
+ constructor(name: string, line: THREE_2.Line<THREE_2.BufferGeometry, THREE_2.ShaderMaterial>, edge: THREE_2.Points<THREE_2.BufferGeometry, THREE_2.ShaderMaterial>);
3477
+ update(renderer: THREE_2.WebGLRenderer, camera: Camera, model: Model): void;
3478
+ dispose(): void;
3479
+ }
3480
+
3333
3481
  export declare enum VolumePlaneIntersect {
3334
3482
  Outside = -1,
3335
3483
  Intersecting = 0,