vis-core 0.33.16 → 0.33.18

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.
package/dist/index.d.ts CHANGED
@@ -22,22 +22,18 @@ import { GeoProjection } from 'd3-geo';
22
22
  import { Group } from 'three';
23
23
  import { HemisphereLight as HemisphereLight_2 } from 'three';
24
24
  import { Intersection } from 'three';
25
- import { IUniform } from 'three';
26
25
  import { Layers } from 'three/webgpu';
27
- import { Listener } from 'events';
28
26
  import { LoadingManager } from 'three';
29
27
  import { Material } from 'three';
30
28
  import { MaterialEventMap } from 'three';
31
29
  import { MaterialParameters } from 'three';
32
30
  import { Matrix4 } from 'three';
33
31
  import { Mesh } from 'three';
34
- import { Mesh as Mesh_2 } from 'three/webgpu';
35
32
  import { MultiPolygon } from 'geojson';
36
- import { Node as Node_2 } from 'three/webgpu';
37
33
  import { NodeMaterial } from 'three/webgpu';
38
34
  import { NormalBufferAttributes } from 'three';
39
- import { Object3D } from 'three';
40
- import { Object3D as Object3D_2 } from 'three/webgpu';
35
+ import { Object3D } from 'three/webgpu';
36
+ import { Object3D as Object3D_2 } from 'three';
41
37
  import { Object3DEventMap } from 'three';
42
38
  import { Object3DJSON } from 'three';
43
39
  import { OrthographicCamera } from 'three';
@@ -246,7 +242,7 @@ declare class Area extends GroupObject {
246
242
  }
247
243
 
248
244
  /** Validation is read-only and does not materialize or allocate runtime resources. */
249
- export declare function assertProjectMaterials(document: Pick<VisSceneDocument, 'schemaVersion' | 'scenes' | 'materialLibrary' | 'prefabLibrary' | '_resourcePool'>): void;
245
+ export declare function assertProjectMaterials(document: Pick<VisSceneDocument, 'schemaVersion' | 'scenes' | 'materialLibrary' | 'prefabLibrary'>): void;
250
246
 
251
247
  /** vis-core 的运行时入口只接受编辑平台导出的完整场景文档。 */
252
248
  export declare function assertRuntimeSceneDocument(value: unknown): asserts value is VisSceneDocument & Record<string, any>;
@@ -350,6 +346,7 @@ declare class Base_3 extends Camera {
350
346
  applyDisabledMouseButtons: boolean;
351
347
  cacheCityGeometry: boolean;
352
348
  includePrefabPreviews: boolean;
349
+ strictBundleAssets: boolean;
353
350
  };
354
351
  leftTruck: boolean;
355
352
  options: BaseOptions;
@@ -387,6 +384,13 @@ declare class Base_3 extends Camera {
387
384
  private resolveRendererDepthBufferOptions;
388
385
  private showDetectRes;
389
386
  setOptions(options: Record<string, any>): void;
387
+ private assetResolver?;
388
+ /** Internal: Keep authoring transactions and their rollback on the same resource catalog. */
389
+ setRuntimeAssets(catalog?: RuntimeAssetCatalog): void;
390
+ /** Resolve static dependencies within the currently loaded project. */
391
+ resolveAssetUrl: (url: string) => string;
392
+ /** Internal: Map overrides this before any authored geometry is hydrated. */
393
+ protected authorizeSceneOptions(_options: Record<string, any>): Promise<void>;
390
394
  /** Internal: Scene documents are loaded through SceneManager. */
391
395
  fromJSON(jsonOrUrl: Record<string, any> | string, hooksE?: Record<string, any>, restoreOptions?: RestoreBaseObjectOptions): Promise<void>;
392
396
  private runtimeInitialization?;
@@ -475,7 +479,7 @@ declare class Base_3 extends Camera {
475
479
  dispose(): void;
476
480
  }
477
481
 
478
- declare class BaseObject<T extends Object3D = Object3D> extends UseMaterial {
482
+ declare class BaseObject<T extends Object3D_2 = Object3D_2> extends UseMaterial {
479
483
  /** One persisted identity, owned by the underlying Three.js object. */
480
484
  get key(): string;
481
485
  set key(value: string);
@@ -502,15 +506,15 @@ declare class BaseObject<T extends Object3D = Object3D> extends UseMaterial {
502
506
  ownership?: ResourceOwnership;
503
507
  });
504
508
  get parent(): BaseObject | null;
505
- get children(): BaseObject<Object3D< Object3DEventMap>>[];
509
+ get children(): BaseObject<Object3D_2< Object3DEventMap>>[];
506
510
  get position(): Vector3;
507
511
  get rotation(): Euler;
508
512
  get scale(): Vector3;
509
513
  lookAt(vector: Vector3): void;
510
514
  lookAt(x: number, y: number, z: number): void;
511
515
  draw<C extends new (...args: any[]) => BaseObject>(ClassRef: C, ...args: ConstructorParameters<C>): Promise<InstanceType<C>>;
512
- add(...objects: (Object3D | BaseObject)[]): void;
513
- remove(...object: Object3D[]): void;
516
+ add(...objects: (Object3D_2 | BaseObject)[]): void;
517
+ remove(...object: Object3D_2[]): void;
514
518
  get visible(): boolean;
515
519
  /**
516
520
  * 检查是否实际可见(自己和所有祖先都 visible)
@@ -660,10 +664,6 @@ declare class Building extends GroupObject {
660
664
  constructor(options: Options_19);
661
665
  create(): Promise<void>;
662
666
  rebuildFromScene(): void;
663
- private gradientMaterials;
664
- worldPositionZ: THREE.UniformNode<"float", number>;
665
- sideGradient(color?: string, maxGradientHeight?: number): void;
666
- update(): void;
667
667
  }
668
668
 
669
669
  declare class CacheManager {
@@ -1811,7 +1811,6 @@ declare class City {
1811
1811
  jsonUrl?: string;
1812
1812
  meters?: number;
1813
1813
  grey?: boolean;
1814
- sideGradient?: boolean;
1815
1814
  hasSide?: boolean;
1816
1815
  }): Promise<Building | undefined>;
1817
1816
  drawArea(options?: {
@@ -1838,12 +1837,10 @@ declare interface CityOptions {
1838
1837
  plane?: boolean;
1839
1838
  grey?: boolean;
1840
1839
  showBuilding?: boolean;
1841
- buildingSideGradient?: boolean;
1842
1840
  buildingHasSide?: boolean;
1843
1841
  showRoad?: boolean;
1844
1842
  showGrassland?: boolean;
1845
1843
  showRiver?: boolean;
1846
- setWaterMaterial?: boolean;
1847
1844
  dataSources?: {
1848
1845
  building?: string;
1849
1846
  road?: string;
@@ -1857,13 +1854,12 @@ declare class CityPlane extends MeshObject {
1857
1854
  options: Options_23;
1858
1855
  constructor(options: Options_23);
1859
1856
  plane: _THREE.BufferGeometry;
1860
- water?: Water;
1861
1857
  create(): Promise<void>;
1862
1858
  rebuildFromScene(): void;
1863
- addWater(normalMaps: [_THREE.Texture, _THREE.Texture]): void;
1864
- dispose(): void;
1865
1859
  }
1866
1860
 
1861
+ export declare function cloneSceneDocument<T extends VisSceneDocument>(document: T): T;
1862
+
1867
1863
  /** Duplicate scene-owned definitions, while retaining references to project assets. */
1868
1864
  export declare function cloneSceneMaterials(document: VisSceneDocument, sourceId: string, newSceneId: string): {
1869
1865
  scene: SceneViewportDocument;
@@ -2027,7 +2023,7 @@ declare class Composer {
2027
2023
  };
2028
2024
  };
2029
2025
  };
2030
- bloomSelection: Set<BaseObject< Object3D<Object3DEventMap>>>;
2026
+ bloomSelection: Set<BaseObject< Object3D_2<Object3DEventMap>>>;
2031
2027
  bloomLayer: Layers;
2032
2028
  active: boolean;
2033
2029
  options: Options_3;
@@ -2178,6 +2174,7 @@ export declare interface CreateMaterialAssetOptions {
2178
2174
  material: Record<string, any>;
2179
2175
  scope?: MaterialScope;
2180
2176
  locked?: boolean;
2177
+ alwaysExport?: boolean;
2181
2178
  }
2182
2179
 
2183
2180
  /**
@@ -2465,8 +2462,8 @@ export declare type EmptySceneDefinition = Omit<SceneViewportDocument, 'scene'>;
2465
2462
  declare class Event_2 {
2466
2463
  event: EventEmitter;
2467
2464
  private eventHandlers;
2468
- on: (type: string | number, listener: Listener) => EventEmitter;
2469
- emit: (type: string | number, ...args: any[]) => boolean;
2465
+ on: EventEmitter['on'];
2466
+ emit: EventEmitter['emit'];
2470
2467
  addListener(node: HTMLElement, event: string, handler: (e: MouseEvent) => void, capture?: boolean): void;
2471
2468
  removeListener(targetNode: HTMLElement | '', event: string): void;
2472
2469
  removeAllListeners(): void;
@@ -2481,21 +2478,21 @@ declare class EventDispatcher {
2481
2478
  * @param listener handler function
2482
2479
  * @category Methods
2483
2480
  */
2484
- addEventListener(type: string, listener: Listener_2): void;
2481
+ addEventListener(type: string, listener: Listener): void;
2485
2482
  /**
2486
2483
  * Presence of the specified event listener.
2487
2484
  * @param type event name
2488
2485
  * @param listener handler function
2489
2486
  * @category Methods
2490
2487
  */
2491
- hasEventListener(type: string, listener: Listener_2): boolean;
2488
+ hasEventListener(type: string, listener: Listener): boolean;
2492
2489
  /**
2493
2490
  * Removes the specified event listener
2494
2491
  * @param type event name
2495
2492
  * @param listener handler function
2496
2493
  * @category Methods
2497
2494
  */
2498
- removeEventListener(type: string, listener: Listener_2): void;
2495
+ removeEventListener(type: string, listener: Listener): void;
2499
2496
  /**
2500
2497
  * Removes all event listeners
2501
2498
  * @param type event name
@@ -2510,12 +2507,6 @@ declare class EventDispatcher {
2510
2507
  dispatchEvent(event: DispatcherEvent): void;
2511
2508
  }
2512
2509
 
2513
- /** Internal: Consume an exclusively owned import copy; pooled slots still get independent payloads. */
2514
- export declare function expandOwnedSceneDocumentResources<T extends VisSceneDocument>(expanded: T): T;
2515
-
2516
- /** Expand at the editor import boundary so independently edited scenes own their data. */
2517
- export declare function expandSceneDocumentResources<T extends VisSceneDocument>(document: T): T;
2518
-
2519
2510
  /** Expand renderer pools, including snapshots retained as prefab baselines. */
2520
2511
  export declare function expandStructureSnapshot<T extends Record<string, any>>(input: T): T;
2521
2512
 
@@ -2738,13 +2729,13 @@ declare const KNOWN_ASSET_TYPES: {
2738
2729
  declare type Lead = Lead_2;
2739
2730
 
2740
2731
  declare class Lead_2 extends Pick_2 {
2741
- objMap: Map<Object3D< Object3DEventMap>, BaseObject<Object3D< Object3DEventMap>>>;
2742
- objects: Map<string, BaseObject<Object3D< Object3DEventMap>>>;
2732
+ objMap: Map<Object3D_2< Object3DEventMap>, BaseObject<Object3D_2< Object3DEventMap>>>;
2733
+ objects: Map<string, BaseObject<Object3D_2< Object3DEventMap>>>;
2743
2734
  /** Compatibility name for the same UUID index, never a second identity map. */
2744
- get objectsByUuid(): Map<string, BaseObject<Object3D< Object3DEventMap>>>;
2735
+ get objectsByUuid(): Map<string, BaseObject<Object3D_2< Object3DEventMap>>>;
2745
2736
  private registeredUuids;
2746
2737
  private disposing;
2747
- objectsPm: Map<BaseObject<Object3D< Object3DEventMap>>, Promise<void>>;
2738
+ objectsPm: Map<BaseObject<Object3D_2< Object3DEventMap>>, Promise<void>>;
2748
2739
  scene: BaseObject;
2749
2740
  sceneResources: SceneResources_2;
2750
2741
  get objectsPromise(): MapIterator<Promise<void>>;
@@ -2757,7 +2748,7 @@ declare class Lead_2 extends Pick_2 {
2757
2748
  * 包含:依赖注入、Key 生成、Map 存储。
2758
2749
  * 已注册对象可再次调用,以刷新替换骨骼后的资源引用。
2759
2750
  */
2760
- register(baseObject: BaseObject): BaseObject<Object3D< Object3DEventMap>>;
2751
+ register(baseObject: BaseObject): BaseObject<Object3D_2< Object3DEventMap>>;
2761
2752
  /** Update identity and its only index atomically; never rename children. */
2762
2753
  setObjectUuid(baseObject: BaseObject, uuid: string): void;
2763
2754
  /**
@@ -2780,7 +2771,7 @@ declare class Lead_2 extends Pick_2 {
2780
2771
  * 将原生 Object3D 包装为 BaseObject (Wrapper Pattern)
2781
2772
  * 如果已存在包装器,则返回现有实例
2782
2773
  */
2783
- wrap(object3d: Object3D): BaseObject;
2774
+ wrap(object3d: Object3D_2): BaseObject;
2784
2775
  private wrapObject;
2785
2776
  /**
2786
2777
  * 统一的添加入口
@@ -2804,7 +2795,7 @@ declare class Lead_2 extends Pick_2 {
2804
2795
  eraseAll(): void;
2805
2796
  private _serializer;
2806
2797
  exportBaseObject(...args: Parameters<SceneSerializer['exportBaseObject']>): SceneSnapshot;
2807
- restoreBaseObject(...args: Parameters<SceneSerializer['restoreBaseObject']>): Promise<BaseObject<Object3D< Object3DEventMap>>>;
2798
+ restoreBaseObject(...args: Parameters<SceneSerializer['restoreBaseObject']>): Promise<BaseObject<Object3D_2< Object3DEventMap>>>;
2808
2799
  dispose(): void;
2809
2800
  }
2810
2801
 
@@ -2886,7 +2877,7 @@ declare interface LineObjectOptions {
2886
2877
  onCacheMiss?: (options: Partial<LineObjectOptions>) => Partial<LineObjectOptions> | Promise<Partial<LineObjectOptions>>;
2887
2878
  }
2888
2879
 
2889
- declare type Listener_2 = (event?: DispatcherEvent) => void;
2880
+ declare type Listener = (event?: DispatcherEvent) => void;
2890
2881
 
2891
2882
  declare class Loader {
2892
2883
  loadingManager: LoadingManager;
@@ -2894,7 +2885,7 @@ declare class Loader {
2894
2885
  loaderConfigs: Map<string, LoaderConfig>;
2895
2886
  loadObj: Asset[];
2896
2887
  delLoadArr: string[];
2897
- assets: Map<string, Texture | Object3D | any>;
2888
+ assets: Map<string, Texture | Object3D_2 | any>;
2898
2889
  event: EventEmitter;
2899
2890
  options: Options_9;
2900
2891
  scene: Scene_2;
@@ -2910,7 +2901,7 @@ declare class Loader {
2910
2901
  getAsset(src: `${string}.${TypeImage}`): Texture;
2911
2902
  getAsset(src: `${string}.${TypeMedia}`): VideoTexture;
2912
2903
  getAsset(src: `${string}.${TypeGLTF}`): {
2913
- scene: Object3D;
2904
+ scene: Object3D_2;
2914
2905
  };
2915
2906
  getAsset(src: `${string}.${TypeLottie}`): Texture;
2916
2907
  getAsset(src: `${string}.${TypeJSON}`): any;
@@ -2921,13 +2912,13 @@ declare class Loader {
2921
2912
  private loaderKey;
2922
2913
  getLoader(type: string, options?: AssetOptions): any;
2923
2914
  add(src: string | string[], options?: AssetOptions): void;
2924
- getSrcByAsset(asset: Texture | Object3D | any, assets?: Map<string, any>): string | undefined;
2915
+ getSrcByAsset(asset: Texture | Object3D_2 | any, assets?: Map<string, any>): string | undefined;
2925
2916
  get textureAssets(): Map<string, Texture<unknown, TextureEventMap>>;
2926
2917
  loadAll(): Promise<Texture<unknown, TextureEventMap>[]>;
2927
2918
  load(src: `${string}.${TypeImage}`, options?: AssetOptions): Promise<Texture>;
2928
2919
  load(src: `${string}.${TypeMedia}`, options?: AssetOptions): Promise<VideoTexture>;
2929
2920
  load(src: `${string}.${TypeGLTF}`, options?: AssetOptions): Promise<{
2930
- scene: Object3D;
2921
+ scene: Object3D_2;
2931
2922
  }>;
2932
2923
  load(src: `${string}.${TypeLottie}`, options?: AssetOptions): Promise<Texture>;
2933
2924
  load(src: `${string}.${TypeJSON}`, options?: AssetOptions): Promise<any>;
@@ -3009,6 +3000,11 @@ declare class Map_4 extends Base_3 {
3009
3000
  private regionCameraFitReference?;
3010
3001
  private authoredCameraPose?;
3011
3002
  private cameraAngleOverrides?;
3003
+ private bundledMapSwitchKey?;
3004
+ private navigationAssets?;
3005
+ setRuntimeAssets(catalog?: RuntimeAssetCatalog): void;
3006
+ private requireMapAuthorization;
3007
+ protected authorizeSceneOptions(options: Record<string, any>): Promise<void>;
3012
3008
  setOptions(options: MapOptions): void;
3013
3009
  private _getProjectionCenter;
3014
3010
  private _getProjectionRotate;
@@ -3171,7 +3167,7 @@ declare class Map_4 extends Base_3 {
3171
3167
  */
3172
3168
  private applyRegionObjectState;
3173
3169
  /** Internal: 仅由 SceneManager 在隔离页面调用,成功后才对外提交。 */
3174
- rebuildRegion(targetAdcode: number, switchKey?: string, force?: boolean): Promise<void>;
3170
+ rebuildRegion(targetAdcode: number, force?: boolean): Promise<void>;
3175
3171
  private rebuildRegionGeometry;
3176
3172
  /** 候选区域提交后的相机过渡,不参与场景序列化。 */
3177
3173
  playRegionEnterTransition({ duration, sourceCamera, preparedCamera, onPrepared, }: MapRegionEnterTransitionOptions): Promise<void>;
@@ -3244,16 +3240,19 @@ declare interface MapCityOptions extends MapOptions {
3244
3240
  cacheCity?: boolean;
3245
3241
  nearbyCities?: boolean | 'full';
3246
3242
  showBuilding?: boolean;
3247
- buildingSideGradient?: boolean;
3248
3243
  showRoad?: boolean;
3249
3244
  showGrassland?: boolean;
3250
3245
  showRiver?: boolean;
3251
- setWaterMaterial?: boolean;
3252
3246
  showCityOnMapInnerLine?: boolean;
3253
3247
  bloom?: boolean;
3254
3248
  citySSAO?: boolean;
3255
3249
  }
3256
3250
 
3251
+ export declare interface MapExportScope {
3252
+ rootAdcode: number;
3253
+ maxLevel: 'province' | 'city' | 'district';
3254
+ }
3255
+
3257
3256
  declare interface MapLabelStyle {
3258
3257
  color?: string;
3259
3258
  fontSize?: number;
@@ -3261,6 +3260,14 @@ declare interface MapLabelStyle {
3261
3260
  fontWeight?: string;
3262
3261
  }
3263
3262
 
3263
+ export declare type MapNavigation = {
3264
+ mode: 'static';
3265
+ } | {
3266
+ mode: 'dynamic';
3267
+ scope: MapExportScope;
3268
+ templates: Partial<Record<MapExportScope['maxLevel'], string>>;
3269
+ };
3270
+
3264
3271
  declare interface MapOptions extends BaseOptions {
3265
3272
  adcode: number;
3266
3273
  mapData?: MapBoundaryData;
@@ -3309,7 +3316,7 @@ declare interface MapOptions extends BaseOptions {
3309
3316
  export declare interface MapPlacementOptions {
3310
3317
  mapCRS: string;
3311
3318
  /** Explicit ground meshes only. Exclude the model, roofs, helpers and hidden surfaces. */
3312
- surfaces: Object3D[];
3319
+ surfaces: Object3D_2[];
3313
3320
  /** Model's physical height; optional if already in map units. Z is model/map up. */
3314
3321
  heightMeters?: number;
3315
3322
  /** Clearance in map units along map Z. */
@@ -3404,6 +3411,8 @@ export declare interface MaterialAsset {
3404
3411
  /** Complete Material.toJSON(); schema 6 exports may pool image/texture payloads. */
3405
3412
  material: Record<string, any>;
3406
3413
  locked?: boolean;
3414
+ /** Keep this definition and its dependencies in exports for later business use. Does not prevent editing or deletion. */
3415
+ alwaysExport?: boolean;
3407
3416
  }
3408
3417
 
3409
3418
  declare type MaterialBindings = Record<string, Record<string, string>>;
@@ -3490,6 +3499,22 @@ declare type MatrixState = {
3490
3499
  matrixAutoUpdate?: boolean;
3491
3500
  };
3492
3501
 
3502
+ /** File metadata belongs to the manifest, never to a Three image URL. */
3503
+ declare interface MediaAssetInfo {
3504
+ sha256: string;
3505
+ bytes: number;
3506
+ mimeType: string;
3507
+ kind: 'image' | 'hdr' | 'tga' | 'video' | 'pixels';
3508
+ pixels?: {
3509
+ type: string;
3510
+ width: number;
3511
+ height: number;
3512
+ depth?: number;
3513
+ };
3514
+ }
3515
+
3516
+ declare type MediaAssetManifest = Record<string, MediaAssetInfo>;
3517
+
3493
3518
  /** Save author edits without promoting page-local region textures into a shared definition. */
3494
3519
  export declare function mergeAuthoredMaterialDefinition(savedDefinition: Record<string, any>, runtimeDefinition: Record<string, any>, options?: {
3495
3520
  editedProperties?: string[];
@@ -3969,7 +3994,6 @@ declare interface Options_19 {
3969
3994
  material?: THREE.Material | THREE.Material[];
3970
3995
  meters?: number;
3971
3996
  hasSide?: boolean;
3972
- sideGradient?: boolean;
3973
3997
  grey?: boolean;
3974
3998
  materialOptions?: Record<string, THREE.Material>;
3975
3999
  }
@@ -4088,11 +4112,6 @@ declare class OrigonPages<T = any> {
4088
4112
  dispose(): void;
4089
4113
  }
4090
4114
 
4091
- /** Pack an export copy only; preserve the editor's independent scene snapshots. */
4092
- export declare function packSceneDocumentResources<T extends VisSceneDocument>(document: T, options?: {
4093
- encodePixels?: boolean;
4094
- }): T;
4095
-
4096
4115
  /** Page identities are independent of Three's 32 rendering layers. */
4097
4116
  declare class Pages {
4098
4117
  private readonly indices;
@@ -4326,14 +4345,14 @@ declare class Pencil {
4326
4345
  } | undefined;
4327
4346
  setViewPadding(top?: number, right?: number, bottom?: number, left?: number): void;
4328
4347
  /** Optional host filters; these are never serialized into a scene. */
4329
- renderObjectFilter?: (object: Object3D_2) => boolean;
4330
- pickObjectFilter?: (object: Object3D_2) => boolean;
4348
+ renderObjectFilter?: (object: Object3D) => boolean;
4349
+ pickObjectFilter?: (object: Object3D) => boolean;
4331
4350
  /** Certify host raycasts that only hit this object and never stop child traversal. */
4332
- pickRaycastCanBeSkipped?: (object: Object3D_2) => boolean;
4333
- pick(event: MouseEvent, objects?: Object3D_2[], recursive?: boolean): {
4334
- object: Object3D_2< Object3DEventMap>;
4351
+ pickRaycastCanBeSkipped?: (object: Object3D) => boolean;
4352
+ pick(event: MouseEvent, objects?: Object3D[], recursive?: boolean): {
4353
+ object: Object3D< Object3DEventMap>;
4335
4354
  index: number | undefined;
4336
- intersects: Intersection<Object3D_2< Object3DEventMap>>[];
4355
+ intersects: Intersection<Object3D< Object3DEventMap>>[];
4337
4356
  } | undefined;
4338
4357
  render(): void;
4339
4358
  /** Capture only authored content without advancing animation or touching editor tools. */
@@ -4438,7 +4457,7 @@ declare type PickFunctionsItem = {
4438
4457
  };
4439
4458
 
4440
4459
  export declare interface PlanarMap {
4441
- object3d: Object3D;
4460
+ object3d: Object3D_2;
4442
4461
  options: {
4443
4462
  projection?: ProjectionOptions;
4444
4463
  conic?: boolean;
@@ -4524,7 +4543,7 @@ declare class PlaneShadow extends MeshObject {
4524
4543
  /** Read-only plan. Aligns the model bounds center in XY and lowest vertex to actual ground.
4525
4544
  * Apply the returned local matrix to a detached candidate, serialize, then import/replace once.
4526
4545
  */
4527
- export declare function planPlacement(model: Object3D, map: PlanarMap, anchor: MapAnchor, options: MapPlacementOptions): {
4546
+ export declare function planPlacement(model: Object3D_2, map: PlanarMap, anchor: MapAnchor, options: MapPlacementOptions): {
4528
4547
  localMatrix: Matrix4;
4529
4548
  worldMatrix: Matrix4;
4530
4549
  groundPoint: Vector3Tuple;
@@ -4673,6 +4692,7 @@ export declare function remapImportedMaterials(before: VisSceneDocument, incomin
4673
4692
  export declare function remapOwnedSnapshotIdentity(snapshot: any, rootUuid?: string, sharedResourceIds?: ReadonlyMap<string, string>): any;
4674
4693
 
4675
4694
  export declare interface RemappedSceneDocument {
4695
+ runtimeAssets?: RuntimeAssetCatalog;
4676
4696
  entrySceneId: string;
4677
4697
  scenes: SceneViewportDocument[];
4678
4698
  idMap: Map<string, string>;
@@ -4724,6 +4744,7 @@ declare class RendererController {
4724
4744
  private disposed;
4725
4745
  private hasRenderableSize;
4726
4746
  private readonly pointSprites;
4747
+ readonly surfaceEffects: SurfaceEffects;
4727
4748
  options: Options_2;
4728
4749
  private displayScaleObserver?;
4729
4750
  private releaseRenderPipelines?;
@@ -4917,6 +4938,8 @@ declare interface RestoreBaseObjectOptions {
4917
4938
  strictResourceReuse?: boolean;
4918
4939
  }
4919
4940
 
4941
+ export declare function restoreRuntimeImageFiles(value: any, sources: MediaAssetManifest | undefined, files: Record<string, RuntimeImageAsset>): void;
4942
+
4920
4943
  /**
4921
4944
  * Live resources whose serialized definitions the caller has already verified.
4922
4945
  * Reuse is explicit: equal UUIDs alone do not establish equal definitions.
@@ -4943,23 +4966,50 @@ declare class Road extends GroupObject {
4943
4966
  dispose(): void;
4944
4967
  }
4945
4968
 
4946
- /** Only ordinary encoded images are externalized. Typed pixel data, videos and
4947
- * custom payloads keep their original serialization contract. */
4948
- declare interface RuntimeImageAsset {
4969
+ /** Static dependencies owned by a project. Source URLs are lookup keys, never fallbacks. */
4970
+ export declare interface RuntimeAsset {
4971
+ id: string;
4972
+ path: string;
4973
+ sources: string[];
4974
+ mimeType: string;
4975
+ encoding: 'identity' | 'gzip';
4976
+ bytes: number;
4977
+ sha256: string;
4978
+ /** Owned file bytes; legacy encoded catalogs must be imported by the platform. */
4979
+ data?: ArrayBuffer;
4980
+ }
4981
+
4982
+ export declare interface RuntimeAssetCatalog {
4983
+ version: 1;
4984
+ entries: RuntimeAsset[];
4985
+ scope?: MapExportScope;
4986
+ /** Explicit delivery contract; omitted only in older packages. */
4987
+ mapNavigation?: MapNavigation;
4988
+ /** Enumerated interaction targets, including regions never opened in the editor. */
4989
+ regions?: Record<string, number[]>;
4990
+ declaredSources?: string[];
4991
+ /** Explicitly deployed shared files; these sources are not stored inside the ZIP. */
4992
+ externalSources?: string[];
4993
+ mapDataMode?: 'bundled' | 'external';
4994
+ /** Signed authorization restricted to the exported map interaction targets. */
4995
+ mapSwitchKey?: string;
4996
+ projectId?: string;
4997
+ /** Runtime-only base for an unpacked deployment. ZIP imports contain data instead. */
4998
+ baseUrl?: string;
4999
+ }
5000
+
5001
+ export declare interface RuntimeImageAsset {
4949
5002
  data: Uint8Array;
4950
5003
  mimeType: string;
4951
5004
  }
4952
5005
 
4953
5006
  export declare const SCENE_DOCUMENT_FORMAT: "vis-scene";
4954
5007
 
4955
- /** Schema 6 extends the document pool to authored material dependencies. */
4956
- export declare const SCENE_DOCUMENT_RESOURCE_POOL_SCHEMA_VERSION: 6;
4957
-
4958
5008
  export declare const SCENE_DOCUMENT_SCHEMA_VERSION: 6;
4959
5009
 
4960
5010
  export declare const SCENE_MANIFEST_FORMAT: "vis-scene-manifest";
4961
5011
 
4962
- export declare const SCENE_MANIFEST_SCHEMA_VERSION: 3;
5012
+ export declare const SCENE_MANIFEST_SCHEMA_VERSION: 5;
4963
5013
 
4964
5014
  export declare interface SceneBackInteraction {
4965
5015
  trigger: 'click' | 'clickOutside';
@@ -4970,6 +5020,8 @@ export declare interface SceneBackInteraction {
4970
5020
  };
4971
5021
  }
4972
5022
 
5023
+ export declare type SceneBundleBinary = Blob | ArrayBuffer | Uint8Array;
5024
+
4973
5025
  declare interface SceneCaptureOptions {
4974
5026
  /** Physical output pixels. Defaults to the active content viewport. */
4975
5027
  width?: number;
@@ -4982,6 +5034,7 @@ declare interface SceneCaptureOptions {
4982
5034
 
4983
5035
  /** Scene membership/options delta. Existing authored graphs must use structure patches. */
4984
5036
  export declare interface SceneCollectionTransaction {
5037
+ runtimeAssets?: VisSceneDocument['runtimeAssets'];
4985
5038
  scenes: readonly SceneViewportDocument[];
4986
5039
  entrySceneId: string;
4987
5040
  materialLibrary?: readonly MaterialAsset[];
@@ -5060,7 +5113,6 @@ export declare class SceneManager extends Event_2 {
5060
5113
  private identityTrackedScenes;
5061
5114
  private prefabOperations;
5062
5115
  private transactionCacheDepth;
5063
- private materialLibraryResources?;
5064
5116
  private invalidatePendingOperations;
5065
5117
  private assertGeneration;
5066
5118
  private debugInteraction;
@@ -5087,6 +5139,8 @@ export declare class SceneManager extends Event_2 {
5087
5139
  */
5088
5140
  prewarmRuntime(): Promise<void>;
5089
5141
  private prepareScene;
5142
+ private resolveMapSwitchKey;
5143
+ private authorizeMapDefinition;
5090
5144
  /** Publish one identity remap without exporting runtimes or copying other pages/resources. */
5091
5145
  remapCommittedIdentity(sceneId: string, previous: string, next: string, objectIdentity: boolean): boolean;
5092
5146
  /**
@@ -5100,7 +5154,7 @@ export declare class SceneManager extends Event_2 {
5100
5154
  private playTransition;
5101
5155
  /** 更新可编辑文档,并释放已经不属于文档的非活动场景实例。 */
5102
5156
  setDocument(document: VisSceneDocument): void;
5103
- /** Standalone material consumers cannot retain document-level pool references. */
5157
+ /** Standalone material consumers own independent definitions. */
5104
5158
  private resolvedMaterialLibrary;
5105
5159
  /** Keep scene payloads lazy, while independent material APIs own a resolved catalog. */
5106
5160
  private ownDocument;
@@ -5144,12 +5198,12 @@ export declare class SceneManager extends Event_2 {
5144
5198
  * Check the saved sections affected by topology history without handing out
5145
5199
  * the private candidate. Editor config/dev metadata is outside this delta.
5146
5200
  */
5147
- preparedSceneStructureMatches(prepared: PreparedSceneStructure, target: Pick<VisSceneDocument, 'scenes' | 'materialLibrary' | 'prefabLibrary'>): boolean;
5201
+ preparedSceneStructureMatches(prepared: PreparedSceneStructure, target: Pick<VisSceneDocument, 'scenes' | 'materialLibrary' | 'prefabLibrary' | 'runtimeAssets'>): boolean;
5148
5202
  /** Commit the already validated candidate once, provided its source is still current. */
5149
5203
  commitSceneStructure(prepared: PreparedSceneStructure): void;
5150
5204
  /** Commit scalar material history without accepting or copying caller object graphs. */
5151
5205
  patchMaterialDefinitions(assets: MaterialAsset[], scenes: Pick<SceneViewportDocument, 'id'>[], scope?: MaterialDefinitionScope): void;
5152
- load(documentOrUrl: VisSceneDocument | VisSceneManifest | string, hooks?: Record<string, any>, options?: {
5206
+ load(documentOrUrl: SceneSource, hooks?: Record<string, any>, options?: {
5153
5207
  /** Transfer a detached document to the manager; the caller must not mutate it afterwards. */
5154
5208
  consumeInput?: boolean;
5155
5209
  /** Restore a saved active scene without changing the project's entry scene. */
@@ -5164,14 +5218,14 @@ export declare class SceneManager extends Event_2 {
5164
5218
  * 以指定地图模板和行政区直接启动,不先加载文档配置的入口场景。
5165
5219
  * 适用于宿主按路由或业务参数决定初始省、市、区的场景。
5166
5220
  */
5167
- loadMapRegion(documentOrUrl: VisSceneDocument | VisSceneManifest | string, sceneId: string, adcode: number, hooks?: Record<string, any>): Promise<Map_4>;
5168
- loadMapRegion(documentOrUrl: VisSceneDocument | VisSceneManifest | string, adcode: number, resolveScene: MapRegionSceneResolver, hooks?: Record<string, any>): Promise<Map_4>;
5221
+ loadMapRegion(documentOrUrl: SceneSource, sceneId: string, adcode: number, hooks?: Record<string, any>): Promise<Map_4>;
5222
+ loadMapRegion(documentOrUrl: SceneSource, adcode: number, resolveScene: MapRegionSceneResolver, hooks?: Record<string, any>): Promise<Map_4>;
5169
5223
  /**
5170
5224
  * Follow a host's latest region request, loading a new source only when needed.
5171
5225
  * Superseded requests reject with AbortError; only the latest candidate commits.
5172
5226
  * Existing click/back navigation finishes before the requested region starts.
5173
5227
  */
5174
- requestMapRegion(source: VisSceneDocument | VisSceneManifest | string, adcode: number, resolveScene: MapRegionSceneResolver, options?: MapRegionOptions): Promise<Map_4>;
5228
+ requestMapRegion(source: SceneSource, adcode: number, resolveScene: MapRegionSceneResolver, options?: MapRegionOptions): Promise<Map_4>;
5175
5229
  private loadMapRegionRequest;
5176
5230
  private loadDocument;
5177
5231
  private getSceneMetadata;
@@ -5251,8 +5305,8 @@ export declare interface SceneManagerBehaviorOptions {
5251
5305
  export declare type SceneManagerInitOptions = SceneManagerOptions & SceneManagerBehaviorOptions;
5252
5306
 
5253
5307
  export declare interface SceneManagerOptions extends Pick<BaseOptions, 'container' | 'controlsContainer' | 'css2DContainer' | 'assetsPrefix' | 'pencilConfig' | 'logarithmicDepthBuffer' | 'tier' | 'observeParentScale'> {
5254
- /** 动态行政区数据访问使用的授权 key。 */
5255
- mapSwitchKey?: string;
5308
+ /** Editor authoring may add dependencies after opening a bundle. Runtime defaults to strict. */
5309
+ strictBundleAssets?: boolean;
5256
5310
  /** 宿主大屏图表等覆盖区域形成的运行时地图安全区。 */
5257
5311
  safeAreaInsets?: Partial<MapSafeAreaInsets>;
5258
5312
  }
@@ -5321,7 +5375,7 @@ declare class SceneResources_2 {
5321
5375
  private objectLeases;
5322
5376
  private sceneLeases;
5323
5377
  private geometryLeases;
5324
- readonly emptyGeometryObjects: Set<Object3D< Object3DEventMap>>;
5378
+ readonly emptyGeometryObjects: Set<Object3D_2< Object3DEventMap>>;
5325
5379
  private emptyGeometryOwners;
5326
5380
  private nativeObjectLeases;
5327
5381
  private proxiedObjects;
@@ -5372,7 +5426,7 @@ declare class SceneResources_2 {
5372
5426
  private updateBaseObjectMap;
5373
5427
  rmBaseObjectMap(object: BaseObject, targetMaterial?: Material | Material[]): void;
5374
5428
  private releaseBaseObjectMap;
5375
- getBaseObjectMap(material: Material): Set<BaseObject<Object3D< Object3DEventMap>>>;
5429
+ getBaseObjectMap(material: Material): Set<BaseObject<Object3D_2< Object3DEventMap>>>;
5376
5430
  setLocked(key: string, locked?: boolean): boolean;
5377
5431
  lock(key: string): boolean;
5378
5432
  unlock(key: string): boolean;
@@ -5397,7 +5451,7 @@ declare class SceneSerializer {
5397
5451
  constructor(lead: Lead_2);
5398
5452
  exportCompressBaseObject(root: BaseObject, options?: ExportBaseObjectOptions): Promise<ArrayBuffer>;
5399
5453
  exportBaseObject(root: BaseObject, options?: ExportBaseObjectOptions): SceneSnapshot;
5400
- restoreBaseObject(target: BaseObject, data: string | ArrayBuffer | Object3DJSON, registry?: Record<string, new (...args: any[]) => any>, roomEnvMap?: any, createIfNeeded?: boolean, signal?: AbortSignal, options?: RestoreBaseObjectOptions): Promise<BaseObject<Object3D< Object3DEventMap>>>;
5454
+ restoreBaseObject(target: BaseObject, data: string | ArrayBuffer | Object3DJSON, registry?: Record<string, new (...args: any[]) => any>, roomEnvMap?: any, createIfNeeded?: boolean, signal?: AbortSignal, options?: RestoreBaseObjectOptions): Promise<BaseObject<Object3D_2< Object3DEventMap>>>;
5401
5455
  private _graftObject3d;
5402
5456
  }
5403
5457
 
@@ -5405,7 +5459,10 @@ declare type SceneSnapshot = Object3DJSON & {
5405
5459
  materialAliases?: Record<string, SerializedMaterialAlias>;
5406
5460
  };
5407
5461
 
5408
- export declare type SceneStructureGraphKey = 'materialAliases' | 'shapes' | '_sharedOptionsPool' | '_texDataPool';
5462
+ /** File transport accepts ZIP bundles; in-memory documents remain available for editor integration. */
5463
+ export declare type SceneSource = VisSceneDocument | VisSceneManifest | string | SceneBundleBinary;
5464
+
5465
+ export declare type SceneStructureGraphKey = 'materialAliases' | 'shapes' | '_sharedOptionsPool';
5409
5466
 
5410
5467
  /** Metadata is part of an owned structure transaction, never a scalar runtime patch. */
5411
5468
  export declare interface SceneStructureObjectPatch {
@@ -5597,14 +5654,11 @@ declare class SphereShadow extends MeshObject {
5597
5654
  rebuildFromScene(): void;
5598
5655
  }
5599
5656
 
5600
- /**
5601
- * Creates independently fetchable scene JSON values. Manifest 3 owns shared
5602
- * payloads so scene and catalog copies do not multiply the deployed bytes.
5603
- */
5657
+ /** Create independently fetchable scenes; manifest 5 owns file metadata while
5658
+ * each native Three image URL points to one deduplicated media file. */
5604
5659
  export declare function splitSceneDocument(document: VisSceneDocument, options?: {
5605
5660
  sceneDirectory?: string;
5606
5661
  extension?: '.json' | '.json.gz';
5607
- externalizeImages?: boolean;
5608
5662
  omitEditorAssets?: boolean;
5609
5663
  }): SplitSceneDocumentBundle;
5610
5664
 
@@ -5760,6 +5814,38 @@ declare type StructureResourceKind = typeof resourceKinds[number];
5760
5814
 
5761
5815
  export declare type StructureResources = Record<ResourceKind, Record<string, any>[]>;
5762
5816
 
5817
+ /** One compositor for surface effects. The authored scene keeps native materials
5818
+ * and JSON parameters; only GPU draws receive gradient → scan → reflection views. */
5819
+ declare class SurfaceEffects {
5820
+ private readonly index;
5821
+ private readonly time;
5822
+ private readonly materials;
5823
+ private readonly reflections;
5824
+ private frame;
5825
+ private rendering;
5826
+ private disposed;
5827
+ private readonly clocks;
5828
+ readonly stats: {
5829
+ activePlanes: number;
5830
+ candidates: number;
5831
+ resolution: number;
5832
+ animations: number;
5833
+ gradients: number;
5834
+ waters: number;
5835
+ animationTime: number;
5836
+ surfaces: string[];
5837
+ };
5838
+ getTime(scene: Scene): number;
5839
+ /** Invalidate after changing metadata or material bindings; native graph edits
5840
+ * are observed automatically. No scene traversal is needed on ordinary frames. */
5841
+ invalidate(scene?: Object3D): void;
5842
+ private bypass;
5843
+ private material;
5844
+ render<T>(renderer: WebGPURenderer, scene: Scene, camera: Camera_2, draw: () => T): T;
5845
+ private clear;
5846
+ dispose(): void;
5847
+ }
5848
+
5763
5849
  export declare interface SwitchSceneOptions {
5764
5850
  /** 返回历史时不再记录当前场景。 */
5765
5851
  recordHistory?: boolean;
@@ -5797,7 +5883,7 @@ declare class TransformControlsController {
5797
5883
  private viewScene?;
5798
5884
  private viewport?;
5799
5885
  get detach(): () => TransformControls;
5800
- get attach(): (object: Object3D_2) => TransformControls;
5886
+ get attach(): (object: Object3D) => TransformControls;
5801
5887
  event: EventEmitter;
5802
5888
  constructor(options: Options_7);
5803
5889
  setViewport(viewport: Viewport): void;
@@ -5857,7 +5943,7 @@ declare class UseMaterial extends PointerEvent_2 {
5857
5943
  lead: Lead_2;
5858
5944
  sceneResources: SceneResources_2;
5859
5945
  userData: Record<string, any>;
5860
- object3d: Object3D;
5946
+ object3d: Object3D_2;
5861
5947
  cloneMaterial(): Material< MaterialEventMap> | Material< MaterialEventMap>[] | undefined;
5862
5948
  useSceneMaterialById(id: string, slot?: number): void;
5863
5949
  useSceneMaterialByName(name: string, slot?: number): void;
@@ -5866,7 +5952,7 @@ declare class UseMaterial extends PointerEvent_2 {
5866
5952
 
5867
5953
  declare type ValuesOf<T extends readonly any[]> = T[number];
5868
5954
 
5869
- export declare const VERSION = "0.33.16";
5955
+ export declare const VERSION = "0.33.18";
5870
5956
 
5871
5957
  declare interface Viewport {
5872
5958
  left: number;
@@ -5881,10 +5967,9 @@ declare interface Viewport {
5881
5967
  export declare function visitSceneIdentityReferences(scene: any, objectIdentity: boolean, visit: (path: IdentityPath, value: any, track?: boolean, key?: boolean) => void): void;
5882
5968
 
5883
5969
  export declare interface VisSceneDocument extends SceneDocumentMarker {
5970
+ runtimeAssets?: RuntimeAssetCatalog;
5884
5971
  entrySceneId: string;
5885
5972
  scenes: SceneViewportDocument[];
5886
- /** Schema 3: scene payloads; schema 6 also shares material-library payloads. */
5887
- _resourcePool?: any[];
5888
5973
  /** Schema 4: serializable definitions shared by explicit asset identity. */
5889
5974
  materialLibrary?: MaterialAsset[];
5890
5975
  /** Reusable definitions. SDK-enabled assets are retained in deployment exports. */
@@ -5897,14 +5982,14 @@ export declare interface VisSceneDocument extends SceneDocumentMarker {
5897
5982
 
5898
5983
  export declare interface VisSceneManifest {
5899
5984
  format: typeof SCENE_MANIFEST_FORMAT;
5900
- schemaVersion: 1 | 2 | typeof SCENE_MANIFEST_SCHEMA_VERSION;
5985
+ schemaVersion: typeof SCENE_MANIFEST_SCHEMA_VERSION;
5986
+ /** Manifest 4: complete static dependencies, shared by every scene. */
5987
+ runtimeAssets?: RuntimeAssetCatalog;
5901
5988
  entrySceneId: string;
5902
5989
  scenes: SceneManifestEntry[];
5903
5990
  materialLibrary?: MaterialAsset[];
5904
- /** Manifest 3: payloads referenced by the material catalog and scene files. */
5905
- _resourcePool?: any[];
5906
- /** Externalized image files, relative to the manifest URL. */
5907
- imageAssets?: string[];
5991
+ /** Manifest 5: media metadata keyed by native image URL. */
5992
+ assets?: MediaAssetManifest;
5908
5993
  /** Reusable definitions. Only assets with sdkKey are available for SDK instantiation. */
5909
5994
  prefabLibrary?: PrefabAsset[];
5910
5995
  c?: Record<string, any>;
@@ -5913,35 +5998,6 @@ export declare interface VisSceneManifest {
5913
5998
  s?: string;
5914
5999
  }
5915
6000
 
5916
- declare class Water extends Mesh_2<BufferGeometry, NodeMaterial & { uniforms: Record<string, IUniform> }> {
5917
- static WaterShader: WaterShader;
5918
- isWater: true;
5919
- constructor(geometry: BufferGeometry, options: WaterOptions);
5920
- dispose(): void;
5921
- }
5922
-
5923
- declare interface WaterOptions {
5924
- resources?: ResourceRegistry;
5925
- color?: ColorRepresentation;
5926
- textureWidth?: number;
5927
- textureHeight?: number;
5928
- clipBias?: number;
5929
- flowDirection?: Vector2_2;
5930
- flowSpeed?: number;
5931
- reflectivity?: number;
5932
- scale?: number;
5933
- shader?: WaterShader;
5934
- flowMap?: Texture;
5935
- normalMap0: Texture;
5936
- normalMap1: Texture;
5937
- }
5938
-
5939
- declare interface WaterShader {
5940
- name: string;
5941
- uniforms: Record<string, IUniform>;
5942
- colorNode?: Node_2 | ((uniforms: Record<string, IUniform>, defaultColor: Node_2) => Node_2);
5943
- }
5944
-
5945
6001
  declare type WidthCallback = (p: number) => number;
5946
6002
 
5947
6003
  export { }