vis-core 0.33.15 → 0.33.17

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';
@@ -50,8 +46,8 @@ import { Raycaster } from 'three/webgpu';
50
46
  import { RectAreaLight as RectAreaLight_2 } from 'three';
51
47
  import { RenderPipeline } from 'three/webgpu';
52
48
  import { RenderTarget } from 'three/webgpu';
53
- import { Scene } from 'three';
54
- import { Scene as Scene_2 } from 'three/webgpu';
49
+ import { Scene } from 'three/webgpu';
50
+ import { Scene as Scene_2 } from 'three';
55
51
  import { ShaderMaterial } from 'three';
56
52
  import { ShaderMaterialJSON } from 'three';
57
53
  import { SpotLight as SpotLight_2 } from 'three';
@@ -343,11 +339,14 @@ declare type Base_2 = Base_3;
343
339
 
344
340
  declare class Base_3 extends Camera {
345
341
  static VisName: string;
342
+ /** Internal: Share final renderer configuration with SceneManager prewarming. */
343
+ static prewarmRenderer(options: BaseOptions): ReturnType<typeof Pencil.prewarmRenderer>;
346
344
  runtimePolicy: {
347
345
  observeParentScale: boolean;
348
346
  applyDisabledMouseButtons: boolean;
349
347
  cacheCityGeometry: boolean;
350
348
  includePrefabPreviews: boolean;
349
+ strictBundleAssets: boolean;
351
350
  };
352
351
  leftTruck: boolean;
353
352
  options: BaseOptions;
@@ -358,8 +357,8 @@ declare class Base_3 extends Camera {
358
357
  roomEnvMap?: _THREE.Texture;
359
358
  private roomEnvLease?;
360
359
  visName: string;
361
- private detectRes?;
362
360
  private ownsPencil;
361
+ private rendererWarmup?;
363
362
  private renderingSuspensions;
364
363
  /** Internal: 在运行时创建前也可暂停,保证整个初始化过程不提交中间帧。 */
365
364
  suspendRendering(): () => void;
@@ -382,10 +381,16 @@ declare class Base_3 extends Camera {
382
381
  private getQueryOverrides;
383
382
  private getEffectiveLogarithmicDepthBuffer;
384
383
  private getEffectiveTier;
385
- private isExtClipControlAvailable;
386
384
  private resolveRendererDepthBufferOptions;
387
385
  private showDetectRes;
388
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>;
389
394
  /** Internal: Scene documents are loaded through SceneManager. */
390
395
  fromJSON(jsonOrUrl: Record<string, any> | string, hooksE?: Record<string, any>, restoreOptions?: RestoreBaseObjectOptions): Promise<void>;
391
396
  private runtimeInitialization?;
@@ -474,7 +479,7 @@ declare class Base_3 extends Camera {
474
479
  dispose(): void;
475
480
  }
476
481
 
477
- declare class BaseObject<T extends Object3D = Object3D> extends UseMaterial {
482
+ declare class BaseObject<T extends Object3D_2 = Object3D_2> extends UseMaterial {
478
483
  /** One persisted identity, owned by the underlying Three.js object. */
479
484
  get key(): string;
480
485
  set key(value: string);
@@ -501,15 +506,15 @@ declare class BaseObject<T extends Object3D = Object3D> extends UseMaterial {
501
506
  ownership?: ResourceOwnership;
502
507
  });
503
508
  get parent(): BaseObject | null;
504
- get children(): BaseObject<Object3D< Object3DEventMap>>[];
509
+ get children(): BaseObject<Object3D_2< Object3DEventMap>>[];
505
510
  get position(): Vector3;
506
511
  get rotation(): Euler;
507
512
  get scale(): Vector3;
508
513
  lookAt(vector: Vector3): void;
509
514
  lookAt(x: number, y: number, z: number): void;
510
515
  draw<C extends new (...args: any[]) => BaseObject>(ClassRef: C, ...args: ConstructorParameters<C>): Promise<InstanceType<C>>;
511
- add(...objects: (Object3D | BaseObject)[]): void;
512
- remove(...object: Object3D[]): void;
516
+ add(...objects: (Object3D_2 | BaseObject)[]): void;
517
+ remove(...object: Object3D_2[]): void;
513
518
  get visible(): boolean;
514
519
  /**
515
520
  * 检查是否实际可见(自己和所有祖先都 visible)
@@ -611,6 +616,8 @@ declare interface BaseOptions {
611
616
  css2DContainer?: HTMLElement;
612
617
  controlsContainer?: HTMLElement;
613
618
  pencil?: any;
619
+ /** Internal: Owned by SceneManager until the first Pencil adopts it. */
620
+ rendererWarmup?: ReturnType<typeof Pencil.prewarmRenderer>;
614
621
  pencilConfig?: Record<string, any>;
615
622
  disableInitShow?: boolean;
616
623
  logarithmicDepthBuffer?: boolean;
@@ -657,10 +664,6 @@ declare class Building extends GroupObject {
657
664
  constructor(options: Options_19);
658
665
  create(): Promise<void>;
659
666
  rebuildFromScene(): void;
660
- private gradientMaterials;
661
- worldPositionZ: THREE.UniformNode<"float", number>;
662
- sideGradient(color?: string, maxGradientHeight?: number): void;
663
- update(): void;
664
667
  }
665
668
 
666
669
  declare class CacheManager {
@@ -1741,7 +1744,7 @@ declare class CameraPages extends OrigonPages<PerspectiveCamera_2> {
1741
1744
  private _cachedMatrixWorldInverse;
1742
1745
  private externallySyncedCameras;
1743
1746
  private ownedCameras;
1744
- constructor(options: Options_3);
1747
+ constructor(options: Options_4);
1745
1748
  addPerspectiveCamera(cameraParams?: {
1746
1749
  fov: number;
1747
1750
  aspect?: number;
@@ -1808,7 +1811,6 @@ declare class City {
1808
1811
  jsonUrl?: string;
1809
1812
  meters?: number;
1810
1813
  grey?: boolean;
1811
- sideGradient?: boolean;
1812
1814
  hasSide?: boolean;
1813
1815
  }): Promise<Building | undefined>;
1814
1816
  drawArea(options?: {
@@ -1835,12 +1837,10 @@ declare interface CityOptions {
1835
1837
  plane?: boolean;
1836
1838
  grey?: boolean;
1837
1839
  showBuilding?: boolean;
1838
- buildingSideGradient?: boolean;
1839
1840
  buildingHasSide?: boolean;
1840
1841
  showRoad?: boolean;
1841
1842
  showGrassland?: boolean;
1842
1843
  showRiver?: boolean;
1843
- setWaterMaterial?: boolean;
1844
1844
  dataSources?: {
1845
1845
  building?: string;
1846
1846
  road?: string;
@@ -1854,11 +1854,8 @@ declare class CityPlane extends MeshObject {
1854
1854
  options: Options_23;
1855
1855
  constructor(options: Options_23);
1856
1856
  plane: _THREE.BufferGeometry;
1857
- water?: Water;
1858
1857
  create(): Promise<void>;
1859
1858
  rebuildFromScene(): void;
1860
- addWater(normalMaps: [_THREE.Texture, _THREE.Texture]): void;
1861
- dispose(): void;
1862
1859
  }
1863
1860
 
1864
1861
  /** Duplicate scene-owned definitions, while retaining references to project assets. */
@@ -1992,11 +1989,11 @@ declare const ColorSpace: {
1992
1989
  /** WebGPU render pipeline. Compatibility controls retain the saved scene schema. */
1993
1990
  declare class Composer {
1994
1991
  renderer: WebGPURenderer;
1995
- scene: Scene_2;
1992
+ scene: Scene;
1996
1993
  camera: Camera_2;
1997
1994
  finalComposer: RenderPipeline;
1998
1995
  renderPass: {
1999
- scene: Scene_2;
1996
+ scene: Scene;
2000
1997
  camera: Camera_2;
2001
1998
  };
2002
1999
  bloomComposer?: RenderTarget;
@@ -2024,10 +2021,10 @@ declare class Composer {
2024
2021
  };
2025
2022
  };
2026
2023
  };
2027
- bloomSelection: Set<BaseObject< Object3D<Object3DEventMap>>>;
2024
+ bloomSelection: Set<BaseObject< Object3D_2<Object3DEventMap>>>;
2028
2025
  bloomLayer: Layers;
2029
2026
  active: boolean;
2030
- options: Options_2;
2027
+ options: Options_3;
2031
2028
  private readonly target;
2032
2029
  private overlayTarget?;
2033
2030
  private outputPipeline?;
@@ -2049,13 +2046,15 @@ declare class Composer {
2049
2046
  private readonly gtaoViews;
2050
2047
  private readonly onCameraChange;
2051
2048
  private readonly onSceneChange;
2052
- constructor(options: Options_2);
2049
+ constructor(options: Options_3);
2053
2050
  private createDepthTexture;
2051
+ /** Reconcile async backend selection before the first draw; preserve target identities. */
2052
+ synchronizeRendererCapabilities(multisampling?: number): void;
2054
2053
  private resizeTargets;
2055
2054
  private rebuild;
2056
2055
  private activateView;
2057
2056
  changeCamera(camera: Camera_2): void;
2058
- changeScene(scene: Scene_2): void;
2057
+ changeScene(scene: Scene): void;
2059
2058
  addOutputPass(): void;
2060
2059
  setPremultiplieAlpha(value: boolean): void;
2061
2060
  addSSAOPass(params: SSAOParams): void;
@@ -2173,6 +2172,7 @@ export declare interface CreateMaterialAssetOptions {
2173
2172
  material: Record<string, any>;
2174
2173
  scope?: MaterialScope;
2175
2174
  locked?: boolean;
2175
+ alwaysExport?: boolean;
2176
2176
  }
2177
2177
 
2178
2178
  /**
@@ -2217,7 +2217,7 @@ declare class CSSRendererController {
2217
2217
  setSize(width: number, height: number): void;
2218
2218
  setViewport(viewport: CSSRendererViewport): void;
2219
2219
  private applyViewport;
2220
- render(scene: Scene, camera: PerspectiveCamera_2): void;
2220
+ render(scene: Scene_2, camera: PerspectiveCamera_2): void;
2221
2221
  dispose(): void;
2222
2222
  }
2223
2223
 
@@ -2460,8 +2460,8 @@ export declare type EmptySceneDefinition = Omit<SceneViewportDocument, 'scene'>;
2460
2460
  declare class Event_2 {
2461
2461
  event: EventEmitter;
2462
2462
  private eventHandlers;
2463
- on: (type: string | number, listener: Listener) => EventEmitter;
2464
- emit: (type: string | number, ...args: any[]) => boolean;
2463
+ on: EventEmitter['on'];
2464
+ emit: EventEmitter['emit'];
2465
2465
  addListener(node: HTMLElement, event: string, handler: (e: MouseEvent) => void, capture?: boolean): void;
2466
2466
  removeListener(targetNode: HTMLElement | '', event: string): void;
2467
2467
  removeAllListeners(): void;
@@ -2476,21 +2476,21 @@ declare class EventDispatcher {
2476
2476
  * @param listener handler function
2477
2477
  * @category Methods
2478
2478
  */
2479
- addEventListener(type: string, listener: Listener_2): void;
2479
+ addEventListener(type: string, listener: Listener): void;
2480
2480
  /**
2481
2481
  * Presence of the specified event listener.
2482
2482
  * @param type event name
2483
2483
  * @param listener handler function
2484
2484
  * @category Methods
2485
2485
  */
2486
- hasEventListener(type: string, listener: Listener_2): boolean;
2486
+ hasEventListener(type: string, listener: Listener): boolean;
2487
2487
  /**
2488
2488
  * Removes the specified event listener
2489
2489
  * @param type event name
2490
2490
  * @param listener handler function
2491
2491
  * @category Methods
2492
2492
  */
2493
- removeEventListener(type: string, listener: Listener_2): void;
2493
+ removeEventListener(type: string, listener: Listener): void;
2494
2494
  /**
2495
2495
  * Removes all event listeners
2496
2496
  * @param type event name
@@ -2733,18 +2733,18 @@ declare const KNOWN_ASSET_TYPES: {
2733
2733
  declare type Lead = Lead_2;
2734
2734
 
2735
2735
  declare class Lead_2 extends Pick_2 {
2736
- objMap: Map<Object3D< Object3DEventMap>, BaseObject<Object3D< Object3DEventMap>>>;
2737
- objects: Map<string, BaseObject<Object3D< Object3DEventMap>>>;
2736
+ objMap: Map<Object3D_2< Object3DEventMap>, BaseObject<Object3D_2< Object3DEventMap>>>;
2737
+ objects: Map<string, BaseObject<Object3D_2< Object3DEventMap>>>;
2738
2738
  /** Compatibility name for the same UUID index, never a second identity map. */
2739
- get objectsByUuid(): Map<string, BaseObject<Object3D< Object3DEventMap>>>;
2739
+ get objectsByUuid(): Map<string, BaseObject<Object3D_2< Object3DEventMap>>>;
2740
2740
  private registeredUuids;
2741
2741
  private disposing;
2742
- objectsPm: Map<BaseObject<Object3D< Object3DEventMap>>, Promise<void>>;
2742
+ objectsPm: Map<BaseObject<Object3D_2< Object3DEventMap>>, Promise<void>>;
2743
2743
  scene: BaseObject;
2744
2744
  sceneResources: SceneResources_2;
2745
2745
  get objectsPromise(): MapIterator<Promise<void>>;
2746
2746
  constructor(pencil: Pencil, ops: {
2747
- scene: Scene;
2747
+ scene: Scene_2;
2748
2748
  sceneResources: SceneResources_2;
2749
2749
  });
2750
2750
  /**
@@ -2752,7 +2752,7 @@ declare class Lead_2 extends Pick_2 {
2752
2752
  * 包含:依赖注入、Key 生成、Map 存储。
2753
2753
  * 已注册对象可再次调用,以刷新替换骨骼后的资源引用。
2754
2754
  */
2755
- register(baseObject: BaseObject): BaseObject<Object3D< Object3DEventMap>>;
2755
+ register(baseObject: BaseObject): BaseObject<Object3D_2< Object3DEventMap>>;
2756
2756
  /** Update identity and its only index atomically; never rename children. */
2757
2757
  setObjectUuid(baseObject: BaseObject, uuid: string): void;
2758
2758
  /**
@@ -2775,7 +2775,7 @@ declare class Lead_2 extends Pick_2 {
2775
2775
  * 将原生 Object3D 包装为 BaseObject (Wrapper Pattern)
2776
2776
  * 如果已存在包装器,则返回现有实例
2777
2777
  */
2778
- wrap(object3d: Object3D): BaseObject;
2778
+ wrap(object3d: Object3D_2): BaseObject;
2779
2779
  private wrapObject;
2780
2780
  /**
2781
2781
  * 统一的添加入口
@@ -2799,7 +2799,7 @@ declare class Lead_2 extends Pick_2 {
2799
2799
  eraseAll(): void;
2800
2800
  private _serializer;
2801
2801
  exportBaseObject(...args: Parameters<SceneSerializer['exportBaseObject']>): SceneSnapshot;
2802
- restoreBaseObject(...args: Parameters<SceneSerializer['restoreBaseObject']>): Promise<BaseObject<Object3D< Object3DEventMap>>>;
2802
+ restoreBaseObject(...args: Parameters<SceneSerializer['restoreBaseObject']>): Promise<BaseObject<Object3D_2< Object3DEventMap>>>;
2803
2803
  dispose(): void;
2804
2804
  }
2805
2805
 
@@ -2807,7 +2807,7 @@ declare class LeadPages extends OrigonPages<Lead_2> {
2807
2807
  options: Options_11;
2808
2808
  get lead(): Lead_2;
2809
2809
  constructor(options: Options_11);
2810
- addLead(scene: Scene, sceneResources: SceneResources_2, index?: number): Lead_2;
2810
+ addLead(scene: Scene_2, sceneResources: SceneResources_2, index?: number): Lead_2;
2811
2811
  removePage(index: number): void;
2812
2812
  setPageActive(index: number): void;
2813
2813
  setSize(width: number, height: number): void;
@@ -2881,7 +2881,7 @@ declare interface LineObjectOptions {
2881
2881
  onCacheMiss?: (options: Partial<LineObjectOptions>) => Partial<LineObjectOptions> | Promise<Partial<LineObjectOptions>>;
2882
2882
  }
2883
2883
 
2884
- declare type Listener_2 = (event?: DispatcherEvent) => void;
2884
+ declare type Listener = (event?: DispatcherEvent) => void;
2885
2885
 
2886
2886
  declare class Loader {
2887
2887
  loadingManager: LoadingManager;
@@ -2889,10 +2889,10 @@ declare class Loader {
2889
2889
  loaderConfigs: Map<string, LoaderConfig>;
2890
2890
  loadObj: Asset[];
2891
2891
  delLoadArr: string[];
2892
- assets: Map<string, Texture | Object3D | any>;
2892
+ assets: Map<string, Texture | Object3D_2 | any>;
2893
2893
  event: EventEmitter;
2894
2894
  options: Options_9;
2895
- scene: Scene;
2895
+ scene: Scene_2;
2896
2896
  private disposed;
2897
2897
  readonly resources: ResourceRegistry;
2898
2898
  private assetLeases;
@@ -2905,7 +2905,7 @@ declare class Loader {
2905
2905
  getAsset(src: `${string}.${TypeImage}`): Texture;
2906
2906
  getAsset(src: `${string}.${TypeMedia}`): VideoTexture;
2907
2907
  getAsset(src: `${string}.${TypeGLTF}`): {
2908
- scene: Object3D;
2908
+ scene: Object3D_2;
2909
2909
  };
2910
2910
  getAsset(src: `${string}.${TypeLottie}`): Texture;
2911
2911
  getAsset(src: `${string}.${TypeJSON}`): any;
@@ -2916,13 +2916,13 @@ declare class Loader {
2916
2916
  private loaderKey;
2917
2917
  getLoader(type: string, options?: AssetOptions): any;
2918
2918
  add(src: string | string[], options?: AssetOptions): void;
2919
- getSrcByAsset(asset: Texture | Object3D | any, assets?: Map<string, any>): string | undefined;
2919
+ getSrcByAsset(asset: Texture | Object3D_2 | any, assets?: Map<string, any>): string | undefined;
2920
2920
  get textureAssets(): Map<string, Texture<unknown, TextureEventMap>>;
2921
2921
  loadAll(): Promise<Texture<unknown, TextureEventMap>[]>;
2922
2922
  load(src: `${string}.${TypeImage}`, options?: AssetOptions): Promise<Texture>;
2923
2923
  load(src: `${string}.${TypeMedia}`, options?: AssetOptions): Promise<VideoTexture>;
2924
2924
  load(src: `${string}.${TypeGLTF}`, options?: AssetOptions): Promise<{
2925
- scene: Object3D;
2925
+ scene: Object3D_2;
2926
2926
  }>;
2927
2927
  load(src: `${string}.${TypeLottie}`, options?: AssetOptions): Promise<Texture>;
2928
2928
  load(src: `${string}.${TypeJSON}`, options?: AssetOptions): Promise<any>;
@@ -2948,7 +2948,7 @@ declare class LoaderPages extends OrigonPages<Loader> {
2948
2948
  options: Options_10;
2949
2949
  get loader(): Loader;
2950
2950
  constructor(options: Options_10);
2951
- addLoader(scene: Scene, index?: number): Loader;
2951
+ addLoader(scene: Scene_2, index?: number): Loader;
2952
2952
  removePage(index: number): void;
2953
2953
  }
2954
2954
 
@@ -3004,6 +3004,10 @@ declare class Map_4 extends Base_3 {
3004
3004
  private regionCameraFitReference?;
3005
3005
  private authoredCameraPose?;
3006
3006
  private cameraAngleOverrides?;
3007
+ private bundledMapSwitchKey?;
3008
+ setRuntimeAssets(catalog?: RuntimeAssetCatalog): void;
3009
+ private requireMapAuthorization;
3010
+ protected authorizeSceneOptions(options: Record<string, any>): Promise<void>;
3007
3011
  setOptions(options: MapOptions): void;
3008
3012
  private _getProjectionCenter;
3009
3013
  private _getProjectionRotate;
@@ -3166,7 +3170,7 @@ declare class Map_4 extends Base_3 {
3166
3170
  */
3167
3171
  private applyRegionObjectState;
3168
3172
  /** Internal: 仅由 SceneManager 在隔离页面调用,成功后才对外提交。 */
3169
- rebuildRegion(targetAdcode: number, switchKey?: string, force?: boolean): Promise<void>;
3173
+ rebuildRegion(targetAdcode: number, force?: boolean): Promise<void>;
3170
3174
  private rebuildRegionGeometry;
3171
3175
  /** 候选区域提交后的相机过渡,不参与场景序列化。 */
3172
3176
  playRegionEnterTransition({ duration, sourceCamera, preparedCamera, onPrepared, }: MapRegionEnterTransitionOptions): Promise<void>;
@@ -3239,16 +3243,19 @@ declare interface MapCityOptions extends MapOptions {
3239
3243
  cacheCity?: boolean;
3240
3244
  nearbyCities?: boolean | 'full';
3241
3245
  showBuilding?: boolean;
3242
- buildingSideGradient?: boolean;
3243
3246
  showRoad?: boolean;
3244
3247
  showGrassland?: boolean;
3245
3248
  showRiver?: boolean;
3246
- setWaterMaterial?: boolean;
3247
3249
  showCityOnMapInnerLine?: boolean;
3248
3250
  bloom?: boolean;
3249
3251
  citySSAO?: boolean;
3250
3252
  }
3251
3253
 
3254
+ export declare interface MapExportScope {
3255
+ rootAdcode: number;
3256
+ maxLevel: 'province' | 'city' | 'district';
3257
+ }
3258
+
3252
3259
  declare interface MapLabelStyle {
3253
3260
  color?: string;
3254
3261
  fontSize?: number;
@@ -3304,7 +3311,7 @@ declare interface MapOptions extends BaseOptions {
3304
3311
  export declare interface MapPlacementOptions {
3305
3312
  mapCRS: string;
3306
3313
  /** Explicit ground meshes only. Exclude the model, roofs, helpers and hidden surfaces. */
3307
- surfaces: Object3D[];
3314
+ surfaces: Object3D_2[];
3308
3315
  /** Model's physical height; optional if already in map units. Z is model/map up. */
3309
3316
  heightMeters?: number;
3310
3317
  /** Clearance in map units along map Z. */
@@ -3399,6 +3406,8 @@ export declare interface MaterialAsset {
3399
3406
  /** Complete Material.toJSON(); schema 6 exports may pool image/texture payloads. */
3400
3407
  material: Record<string, any>;
3401
3408
  locked?: boolean;
3409
+ /** Keep this definition and its dependencies in exports for later business use. Does not prevent editing or deletion. */
3410
+ alwaysExport?: boolean;
3402
3411
  }
3403
3412
 
3404
3413
  declare type MaterialBindings = Record<string, Record<string, string>>;
@@ -3841,6 +3850,8 @@ declare class OptionMaterialDependencies {
3841
3850
 
3842
3851
  declare interface Options {
3843
3852
  container: HTMLElement;
3853
+ /** Optional single-use renderer prepared by Pencil.prewarmRenderer(). */
3854
+ rendererWarmup?: RendererWarmup;
3844
3855
  helper?: boolean;
3845
3856
  controls?: Partial<ControlsParams>;
3846
3857
  renderer?: Partial<RendererParams>;
@@ -3962,17 +3973,14 @@ declare interface Options_19 {
3962
3973
  material?: THREE.Material | THREE.Material[];
3963
3974
  meters?: number;
3964
3975
  hasSide?: boolean;
3965
- sideGradient?: boolean;
3966
3976
  grey?: boolean;
3967
3977
  materialOptions?: Record<string, THREE.Material>;
3968
3978
  }
3969
3979
 
3970
3980
  declare interface Options_2 {
3971
- sceneController: ScenePages;
3972
- cameraController: CameraPages;
3973
- rendererController: RendererController;
3974
- composerParams: ComposerParams;
3975
- resources?: ResourceRegistry;
3981
+ width: number;
3982
+ height: number;
3983
+ rendererParams: RendererParams;
3976
3984
  }
3977
3985
 
3978
3986
  declare interface Options_20 {
@@ -4022,14 +4030,16 @@ declare interface Options_23 {
4022
4030
  }
4023
4031
 
4024
4032
  declare interface Options_3 {
4025
- width: number;
4026
- height: number;
4033
+ sceneController: ScenePages;
4034
+ cameraController: CameraPages;
4035
+ rendererController: RendererController;
4036
+ composerParams: ComposerParams;
4037
+ resources?: ResourceRegistry;
4027
4038
  }
4028
4039
 
4029
4040
  declare interface Options_4 {
4030
4041
  width: number;
4031
4042
  height: number;
4032
- rendererParams: RendererParams;
4033
4043
  }
4034
4044
 
4035
4045
  declare interface Options_5 {
@@ -4045,16 +4055,16 @@ declare interface Options_6 {
4045
4055
 
4046
4056
  declare interface Options_7 {
4047
4057
  renderer: WebGPURenderer;
4048
- scene: Scene_2;
4058
+ scene: Scene;
4049
4059
  /** Authored page identity when scene is a shared overlay. */
4050
- viewScene?: Scene_2;
4060
+ viewScene?: Scene;
4051
4061
  camera: Camera_2;
4052
4062
  }
4053
4063
 
4054
4064
  declare interface Options_8 {
4055
4065
  sceneController: ScenePages;
4056
4066
  /** Editor overlays live outside the authored scene and its render passes. */
4057
- helperScene?: Scene_2;
4067
+ helperScene?: Scene;
4058
4068
  cameraController: CameraPages;
4059
4069
  container: HTMLElement;
4060
4070
  resources?: ResourceRegistry;
@@ -4064,7 +4074,7 @@ declare interface Options_9 {
4064
4074
  prefix?: string;
4065
4075
  simpleTexture4deleted?: boolean;
4066
4076
  anisotropy: number;
4067
- scene: Scene | null;
4077
+ scene: Scene_2 | null;
4068
4078
  resources?: ResourceRegistry;
4069
4079
  }
4070
4080
 
@@ -4082,7 +4092,9 @@ declare class OrigonPages<T = any> {
4082
4092
  }
4083
4093
 
4084
4094
  /** Pack an export copy only; preserve the editor's independent scene snapshots. */
4085
- export declare function packSceneDocumentResources<T extends VisSceneDocument>(document: T): T;
4095
+ export declare function packSceneDocumentResources<T extends VisSceneDocument>(document: T, options?: {
4096
+ encodePixels?: boolean;
4097
+ }): T;
4086
4098
 
4087
4099
  /** Page identities are independent of Three's 32 rendering layers. */
4088
4100
  declare class Pages {
@@ -4147,7 +4159,7 @@ export declare function patchSceneViewportDocument(document: VisSceneDocument, s
4147
4159
  declare class Pencil {
4148
4160
  readonly resources: ResourceRegistry;
4149
4161
  readonly ready: Promise<void>;
4150
- options: Omit<DeepRequiredOptions, 'controls' | 'loader' | 'css2DRendererParams' | 'css3DRendererParams'> & Pick<Options, 'controls' | 'loader'> & {
4162
+ options: Omit<DeepRequiredOptions, 'controls' | 'loader' | 'css2DRendererParams' | 'css3DRendererParams' | 'rendererWarmup'> & Pick<Options, 'controls' | 'loader'> & {
4151
4163
  css2DRendererParams: CSSRendererParams;
4152
4164
  css3DRendererParams: CSSRendererParams;
4153
4165
  };
@@ -4161,7 +4173,7 @@ declare class Pencil {
4161
4173
  helperController?: HelperController;
4162
4174
  private _helperScene?;
4163
4175
  /** Drawn only in the editor, after the authored scene's postprocessing. */
4164
- get helperScene(): Scene_2< Object3DEventMap>;
4176
+ get helperScene(): Scene< Object3DEventMap>;
4165
4177
  private sceneCapture?;
4166
4178
  loaderController: LoaderPages;
4167
4179
  leadController: LeadPages;
@@ -4182,7 +4194,7 @@ declare class Pencil {
4182
4194
  get cameraPositon(): Vector3_2;
4183
4195
  get cameraTarget(): Vector3_2;
4184
4196
  get camera(): PerspectiveCamera;
4185
- get scene(): Scene_2< Object3DEventMap>;
4197
+ get scene(): Scene< Object3DEventMap>;
4186
4198
  get loader(): Loader;
4187
4199
  get lead(): Lead_2;
4188
4200
  get sceneResources(): SceneResources_2;
@@ -4195,6 +4207,7 @@ declare class Pencil {
4195
4207
  controls: boolean;
4196
4208
  renderer: {
4197
4209
  forceWebGL: boolean;
4210
+ autoDepthBuffer: boolean;
4198
4211
  antialias: boolean;
4199
4212
  devicePixelRatio: number;
4200
4213
  powerPreference: string;
@@ -4262,6 +4275,9 @@ declare class Pencil {
4262
4275
  attributesWorkerMaxWorkers: number;
4263
4276
  };
4264
4277
  private TweenRaf;
4278
+ private rendererWarmup?;
4279
+ /** Start only the GPU environment; the eventual Pencil takes ownership. */
4280
+ static prewarmRenderer(renderer?: Partial<RendererParams>): RendererWarmup;
4265
4281
  private tweenUpdateRaf;
4266
4282
  private cancelTweenRaf;
4267
4283
  constructor(options: Options);
@@ -4313,14 +4329,14 @@ declare class Pencil {
4313
4329
  } | undefined;
4314
4330
  setViewPadding(top?: number, right?: number, bottom?: number, left?: number): void;
4315
4331
  /** Optional host filters; these are never serialized into a scene. */
4316
- renderObjectFilter?: (object: Object3D_2) => boolean;
4317
- pickObjectFilter?: (object: Object3D_2) => boolean;
4332
+ renderObjectFilter?: (object: Object3D) => boolean;
4333
+ pickObjectFilter?: (object: Object3D) => boolean;
4318
4334
  /** Certify host raycasts that only hit this object and never stop child traversal. */
4319
- pickRaycastCanBeSkipped?: (object: Object3D_2) => boolean;
4320
- pick(event: MouseEvent, objects?: Object3D_2[], recursive?: boolean): {
4321
- object: Object3D_2< Object3DEventMap>;
4335
+ pickRaycastCanBeSkipped?: (object: Object3D) => boolean;
4336
+ pick(event: MouseEvent, objects?: Object3D[], recursive?: boolean): {
4337
+ object: Object3D< Object3DEventMap>;
4322
4338
  index: number | undefined;
4323
- intersects: Intersection<Object3D_2< Object3DEventMap>>[];
4339
+ intersects: Intersection<Object3D< Object3DEventMap>>[];
4324
4340
  } | undefined;
4325
4341
  render(): void;
4326
4342
  /** Capture only authored content without advancing animation or touching editor tools. */
@@ -4425,7 +4441,7 @@ declare type PickFunctionsItem = {
4425
4441
  };
4426
4442
 
4427
4443
  export declare interface PlanarMap {
4428
- object3d: Object3D;
4444
+ object3d: Object3D_2;
4429
4445
  options: {
4430
4446
  projection?: ProjectionOptions;
4431
4447
  conic?: boolean;
@@ -4511,7 +4527,7 @@ declare class PlaneShadow extends MeshObject {
4511
4527
  /** Read-only plan. Aligns the model bounds center in XY and lowest vertex to actual ground.
4512
4528
  * Apply the returned local matrix to a detached candidate, serialize, then import/replace once.
4513
4529
  */
4514
- export declare function planPlacement(model: Object3D, map: PlanarMap, anchor: MapAnchor, options: MapPlacementOptions): {
4530
+ export declare function planPlacement(model: Object3D_2, map: PlanarMap, anchor: MapAnchor, options: MapPlacementOptions): {
4515
4531
  localMatrix: Matrix4;
4516
4532
  worldMatrix: Matrix4;
4517
4533
  groundPoint: Vector3Tuple;
@@ -4660,6 +4676,7 @@ export declare function remapImportedMaterials(before: VisSceneDocument, incomin
4660
4676
  export declare function remapOwnedSnapshotIdentity(snapshot: any, rootUuid?: string, sharedResourceIds?: ReadonlyMap<string, string>): any;
4661
4677
 
4662
4678
  export declare interface RemappedSceneDocument {
4679
+ runtimeAssets?: RuntimeAssetCatalog;
4663
4680
  entrySceneId: string;
4664
4681
  scenes: SceneViewportDocument[];
4665
4682
  idMap: Map<string, string>;
@@ -4711,13 +4728,15 @@ declare class RendererController {
4711
4728
  private disposed;
4712
4729
  private hasRenderableSize;
4713
4730
  private readonly pointSprites;
4714
- options: Options_4;
4731
+ readonly surfaceEffects: SurfaceEffects;
4732
+ options: Options_2;
4715
4733
  private displayScaleObserver?;
4716
- constructor(options: Options_4);
4734
+ private releaseRenderPipelines?;
4735
+ constructor(options: Options_2);
4717
4736
  observeDisplayScale(container: HTMLElement): void;
4718
4737
  setSize(width: number, height: number): void;
4719
4738
  setPixelRatio(ratio: number): void;
4720
- render(scene: Scene_2, camera: Camera_2): void;
4739
+ render(scene: Scene, camera: Camera_2): void;
4721
4740
  setViewport(op: {
4722
4741
  x: number;
4723
4742
  y: number;
@@ -4741,10 +4760,26 @@ declare interface RendererParams {
4741
4760
  stencil: boolean;
4742
4761
  depth: boolean;
4743
4762
  reversedDepthBuffer: boolean;
4763
+ /** Prefer reversed depth on the selected backend; retain logarithmic depth on GL without EXT_clip_control. */
4764
+ autoDepthBuffer?: boolean;
4744
4765
  /** Use the WebGL 2 backend of WebGPURenderer, primarily for compatibility testing. */
4745
4766
  forceWebGL?: boolean;
4746
4767
  }
4747
4768
 
4769
+ /** A single-use, privately owned renderer. No scene, loader, DOM attachment or render loop. */
4770
+ declare class RendererWarmup {
4771
+ readonly ready: Promise<void>;
4772
+ private controller?;
4773
+ private readonly parameters;
4774
+ private cancelled;
4775
+ private detachDeviceListener?;
4776
+ get available(): boolean;
4777
+ constructor(parameters: RendererParams);
4778
+ /** Transfer ownership only when the final scene's renderer configuration matches. */
4779
+ take(parameters: RendererParams, width: number, height: number): RendererController | undefined;
4780
+ dispose(): void;
4781
+ }
4782
+
4748
4783
  export declare function replaceMaterialAssetDocument(document: VisSceneDocument, asset: MaterialAsset): VisSceneDocument;
4749
4784
 
4750
4785
  export declare const RESOURCE_SOURCE = "_resourceSource";
@@ -4913,6 +4948,36 @@ declare class Road extends GroupObject {
4913
4948
  dispose(): void;
4914
4949
  }
4915
4950
 
4951
+ /** Static dependencies owned by a project. Source URLs are lookup keys, never fallbacks. */
4952
+ export declare interface RuntimeAsset {
4953
+ id: string;
4954
+ path: string;
4955
+ sources: string[];
4956
+ mimeType: string;
4957
+ encoding: 'identity' | 'gzip';
4958
+ bytes: number;
4959
+ sha256: string;
4960
+ /** Compressed/original file bytes, base64 encoded for project persistence. */
4961
+ data?: string;
4962
+ }
4963
+
4964
+ export declare interface RuntimeAssetCatalog {
4965
+ version: 1;
4966
+ entries: RuntimeAsset[];
4967
+ scope?: MapExportScope;
4968
+ /** Enumerated interaction targets, including regions never opened in the editor. */
4969
+ regions?: Record<string, number[]>;
4970
+ declaredSources?: string[];
4971
+ /** Explicitly deployed shared files; these sources are not stored inside the ZIP. */
4972
+ externalSources?: string[];
4973
+ mapDataMode?: 'bundled' | 'external';
4974
+ /** Signed authorization restricted to the exported map interaction targets. */
4975
+ mapSwitchKey?: string;
4976
+ projectId?: string;
4977
+ /** Runtime-only base for an unpacked deployment. ZIP imports contain data instead. */
4978
+ baseUrl?: string;
4979
+ }
4980
+
4916
4981
  /** Only ordinary encoded images are externalized. Typed pixel data, videos and
4917
4982
  * custom payloads keep their original serialization contract. */
4918
4983
  declare interface RuntimeImageAsset {
@@ -4929,7 +4994,7 @@ export declare const SCENE_DOCUMENT_SCHEMA_VERSION: 6;
4929
4994
 
4930
4995
  export declare const SCENE_MANIFEST_FORMAT: "vis-scene-manifest";
4931
4996
 
4932
- export declare const SCENE_MANIFEST_SCHEMA_VERSION: 3;
4997
+ export declare const SCENE_MANIFEST_SCHEMA_VERSION: 4;
4933
4998
 
4934
4999
  export declare interface SceneBackInteraction {
4935
5000
  trigger: 'click' | 'clickOutside';
@@ -4940,6 +5005,8 @@ export declare interface SceneBackInteraction {
4940
5005
  };
4941
5006
  }
4942
5007
 
5008
+ export declare type SceneBundleBinary = Blob | ArrayBuffer | Uint8Array;
5009
+
4943
5010
  declare interface SceneCaptureOptions {
4944
5011
  /** Physical output pixels. Defaults to the active content viewport. */
4945
5012
  width?: number;
@@ -4952,6 +5019,7 @@ declare interface SceneCaptureOptions {
4952
5019
 
4953
5020
  /** Scene membership/options delta. Existing authored graphs must use structure patches. */
4954
5021
  export declare interface SceneCollectionTransaction {
5022
+ runtimeAssets?: VisSceneDocument['runtimeAssets'];
4955
5023
  scenes: readonly SceneViewportDocument[];
4956
5024
  entrySceneId: string;
4957
5025
  materialLibrary?: readonly MaterialAsset[];
@@ -5016,6 +5084,8 @@ export declare class SceneManager extends Event_2 {
5016
5084
  private isSwitching;
5017
5085
  private isRegionSwitching;
5018
5086
  private pencil?;
5087
+ private rendererWarmup?;
5088
+ private disposed;
5019
5089
  private safeAreaInsets?;
5020
5090
  private generation;
5021
5091
  private mapRequests;
@@ -5047,7 +5117,16 @@ export declare class SceneManager extends Event_2 {
5047
5117
  setSceneCachePolicy(cacheScenes: boolean, maxCachedScenes?: number | undefined): void;
5048
5118
  private reportSceneRetirementErrors;
5049
5119
  constructor(options: SceneManagerInitOptions);
5120
+ /**
5121
+ * Initialize the eventual renderer without downloading/expanding a scene or drawing.
5122
+ * Call after starting template I/O to overlap network work with GPU startup.
5123
+ * Repeated calls share one promise. A scene with different renderer options
5124
+ * uses its own compatible renderer; failed warmups may be retried.
5125
+ */
5126
+ prewarmRuntime(): Promise<void>;
5050
5127
  private prepareScene;
5128
+ private resolveMapSwitchKey;
5129
+ private authorizeMapDefinition;
5051
5130
  /** Publish one identity remap without exporting runtimes or copying other pages/resources. */
5052
5131
  remapCommittedIdentity(sceneId: string, previous: string, next: string, objectIdentity: boolean): boolean;
5053
5132
  /**
@@ -5105,12 +5184,12 @@ export declare class SceneManager extends Event_2 {
5105
5184
  * Check the saved sections affected by topology history without handing out
5106
5185
  * the private candidate. Editor config/dev metadata is outside this delta.
5107
5186
  */
5108
- preparedSceneStructureMatches(prepared: PreparedSceneStructure, target: Pick<VisSceneDocument, 'scenes' | 'materialLibrary' | 'prefabLibrary'>): boolean;
5187
+ preparedSceneStructureMatches(prepared: PreparedSceneStructure, target: Pick<VisSceneDocument, 'scenes' | 'materialLibrary' | 'prefabLibrary' | 'runtimeAssets'>): boolean;
5109
5188
  /** Commit the already validated candidate once, provided its source is still current. */
5110
5189
  commitSceneStructure(prepared: PreparedSceneStructure): void;
5111
5190
  /** Commit scalar material history without accepting or copying caller object graphs. */
5112
5191
  patchMaterialDefinitions(assets: MaterialAsset[], scenes: Pick<SceneViewportDocument, 'id'>[], scope?: MaterialDefinitionScope): void;
5113
- load(documentOrUrl: VisSceneDocument | VisSceneManifest | string, hooks?: Record<string, any>, options?: {
5192
+ load(documentOrUrl: SceneSource, hooks?: Record<string, any>, options?: {
5114
5193
  /** Transfer a detached document to the manager; the caller must not mutate it afterwards. */
5115
5194
  consumeInput?: boolean;
5116
5195
  /** Restore a saved active scene without changing the project's entry scene. */
@@ -5125,14 +5204,14 @@ export declare class SceneManager extends Event_2 {
5125
5204
  * 以指定地图模板和行政区直接启动,不先加载文档配置的入口场景。
5126
5205
  * 适用于宿主按路由或业务参数决定初始省、市、区的场景。
5127
5206
  */
5128
- loadMapRegion(documentOrUrl: VisSceneDocument | VisSceneManifest | string, sceneId: string, adcode: number, hooks?: Record<string, any>): Promise<Map_4>;
5129
- loadMapRegion(documentOrUrl: VisSceneDocument | VisSceneManifest | string, adcode: number, resolveScene: MapRegionSceneResolver, hooks?: Record<string, any>): Promise<Map_4>;
5207
+ loadMapRegion(documentOrUrl: SceneSource, sceneId: string, adcode: number, hooks?: Record<string, any>): Promise<Map_4>;
5208
+ loadMapRegion(documentOrUrl: SceneSource, adcode: number, resolveScene: MapRegionSceneResolver, hooks?: Record<string, any>): Promise<Map_4>;
5130
5209
  /**
5131
5210
  * Follow a host's latest region request, loading a new source only when needed.
5132
5211
  * Superseded requests reject with AbortError; only the latest candidate commits.
5133
5212
  * Existing click/back navigation finishes before the requested region starts.
5134
5213
  */
5135
- requestMapRegion(source: VisSceneDocument | VisSceneManifest | string, adcode: number, resolveScene: MapRegionSceneResolver, options?: MapRegionOptions): Promise<Map_4>;
5214
+ requestMapRegion(source: SceneSource, adcode: number, resolveScene: MapRegionSceneResolver, options?: MapRegionOptions): Promise<Map_4>;
5136
5215
  private loadMapRegionRequest;
5137
5216
  private loadDocument;
5138
5217
  private getSceneMetadata;
@@ -5212,8 +5291,8 @@ export declare interface SceneManagerBehaviorOptions {
5212
5291
  export declare type SceneManagerInitOptions = SceneManagerOptions & SceneManagerBehaviorOptions;
5213
5292
 
5214
5293
  export declare interface SceneManagerOptions extends Pick<BaseOptions, 'container' | 'controlsContainer' | 'css2DContainer' | 'assetsPrefix' | 'pencilConfig' | 'logarithmicDepthBuffer' | 'tier' | 'observeParentScale'> {
5215
- /** 动态行政区数据访问使用的授权 key。 */
5216
- mapSwitchKey?: string;
5294
+ /** Editor authoring may add dependencies after opening a bundle. Runtime defaults to strict. */
5295
+ strictBundleAssets?: boolean;
5217
5296
  /** 宿主大屏图表等覆盖区域形成的运行时地图安全区。 */
5218
5297
  safeAreaInsets?: Partial<MapSafeAreaInsets>;
5219
5298
  }
@@ -5251,14 +5330,14 @@ export declare interface SceneObjectPropertyPatch {
5251
5330
  unset?: readonly string[];
5252
5331
  }
5253
5332
 
5254
- declare class ScenePages extends OrigonPages<Scene> {
5255
- get scene(): Scene< Object3DEventMap>;
5256
- addScene(sceneParams?: SceneParams, index?: number): Scene< Object3DEventMap>;
5333
+ declare class ScenePages extends OrigonPages<Scene_2> {
5334
+ get scene(): Scene_2< Object3DEventMap>;
5335
+ addScene(sceneParams?: SceneParams, index?: number): Scene_2< Object3DEventMap>;
5257
5336
  setPageActive(index: number): void;
5258
5337
  }
5259
5338
 
5260
5339
  declare interface SceneParams {
5261
- background: Scene['background'];
5340
+ background: Scene_2['background'];
5262
5341
  }
5263
5342
 
5264
5343
  declare type ScenePropertyField = typeof scenePropertyFields[number];
@@ -5282,7 +5361,7 @@ declare class SceneResources_2 {
5282
5361
  private objectLeases;
5283
5362
  private sceneLeases;
5284
5363
  private geometryLeases;
5285
- readonly emptyGeometryObjects: Set<Object3D< Object3DEventMap>>;
5364
+ readonly emptyGeometryObjects: Set<Object3D_2< Object3DEventMap>>;
5286
5365
  private emptyGeometryOwners;
5287
5366
  private nativeObjectLeases;
5288
5367
  private proxiedObjects;
@@ -5333,7 +5412,7 @@ declare class SceneResources_2 {
5333
5412
  private updateBaseObjectMap;
5334
5413
  rmBaseObjectMap(object: BaseObject, targetMaterial?: Material | Material[]): void;
5335
5414
  private releaseBaseObjectMap;
5336
- getBaseObjectMap(material: Material): Set<BaseObject<Object3D< Object3DEventMap>>>;
5415
+ getBaseObjectMap(material: Material): Set<BaseObject<Object3D_2< Object3DEventMap>>>;
5337
5416
  setLocked(key: string, locked?: boolean): boolean;
5338
5417
  lock(key: string): boolean;
5339
5418
  unlock(key: string): boolean;
@@ -5358,7 +5437,7 @@ declare class SceneSerializer {
5358
5437
  constructor(lead: Lead_2);
5359
5438
  exportCompressBaseObject(root: BaseObject, options?: ExportBaseObjectOptions): Promise<ArrayBuffer>;
5360
5439
  exportBaseObject(root: BaseObject, options?: ExportBaseObjectOptions): SceneSnapshot;
5361
- 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>>>;
5440
+ 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>>>;
5362
5441
  private _graftObject3d;
5363
5442
  }
5364
5443
 
@@ -5366,6 +5445,9 @@ declare type SceneSnapshot = Object3DJSON & {
5366
5445
  materialAliases?: Record<string, SerializedMaterialAlias>;
5367
5446
  };
5368
5447
 
5448
+ /** File transport accepts ZIP bundles; in-memory documents remain available for editor integration. */
5449
+ export declare type SceneSource = VisSceneDocument | VisSceneManifest | string | SceneBundleBinary;
5450
+
5369
5451
  export declare type SceneStructureGraphKey = 'materialAliases' | 'shapes' | '_sharedOptionsPool' | '_texDataPool';
5370
5452
 
5371
5453
  /** Metadata is part of an owned structure transaction, never a scalar runtime patch. */
@@ -5721,6 +5803,38 @@ declare type StructureResourceKind = typeof resourceKinds[number];
5721
5803
 
5722
5804
  export declare type StructureResources = Record<ResourceKind, Record<string, any>[]>;
5723
5805
 
5806
+ /** One compositor for surface effects. The authored scene keeps native materials
5807
+ * and JSON parameters; only GPU draws receive gradient → scan → reflection views. */
5808
+ declare class SurfaceEffects {
5809
+ private readonly index;
5810
+ private readonly time;
5811
+ private readonly materials;
5812
+ private readonly reflections;
5813
+ private frame;
5814
+ private rendering;
5815
+ private disposed;
5816
+ private readonly clocks;
5817
+ readonly stats: {
5818
+ activePlanes: number;
5819
+ candidates: number;
5820
+ resolution: number;
5821
+ animations: number;
5822
+ gradients: number;
5823
+ waters: number;
5824
+ animationTime: number;
5825
+ surfaces: string[];
5826
+ };
5827
+ getTime(scene: Scene): number;
5828
+ /** Invalidate after changing metadata or material bindings; native graph edits
5829
+ * are observed automatically. No scene traversal is needed on ordinary frames. */
5830
+ invalidate(scene?: Object3D): void;
5831
+ private bypass;
5832
+ private material;
5833
+ render<T>(renderer: WebGPURenderer, scene: Scene, camera: Camera_2, draw: () => T): T;
5834
+ private clear;
5835
+ dispose(): void;
5836
+ }
5837
+
5724
5838
  export declare interface SwitchSceneOptions {
5725
5839
  /** 返回历史时不再记录当前场景。 */
5726
5840
  recordHistory?: boolean;
@@ -5758,11 +5872,11 @@ declare class TransformControlsController {
5758
5872
  private viewScene?;
5759
5873
  private viewport?;
5760
5874
  get detach(): () => TransformControls;
5761
- get attach(): (object: Object3D_2) => TransformControls;
5875
+ get attach(): (object: Object3D) => TransformControls;
5762
5876
  event: EventEmitter;
5763
5877
  constructor(options: Options_7);
5764
5878
  setViewport(viewport: Viewport): void;
5765
- bindActiveView(camera: Camera_2 | undefined, scene: Scene_2 | undefined, viewScene?: Scene_2< Object3DEventMap> | undefined): void;
5879
+ bindActiveView(camera: Camera_2 | undefined, scene: Scene | undefined, viewScene?: Scene< Object3DEventMap> | undefined): void;
5766
5880
  private releaseRaycastCamera;
5767
5881
  private getBoundingClientRect;
5768
5882
  addEvent(): void;
@@ -5818,7 +5932,7 @@ declare class UseMaterial extends PointerEvent_2 {
5818
5932
  lead: Lead_2;
5819
5933
  sceneResources: SceneResources_2;
5820
5934
  userData: Record<string, any>;
5821
- object3d: Object3D;
5935
+ object3d: Object3D_2;
5822
5936
  cloneMaterial(): Material< MaterialEventMap> | Material< MaterialEventMap>[] | undefined;
5823
5937
  useSceneMaterialById(id: string, slot?: number): void;
5824
5938
  useSceneMaterialByName(name: string, slot?: number): void;
@@ -5827,7 +5941,7 @@ declare class UseMaterial extends PointerEvent_2 {
5827
5941
 
5828
5942
  declare type ValuesOf<T extends readonly any[]> = T[number];
5829
5943
 
5830
- export declare const VERSION = "0.33.15";
5944
+ export declare const VERSION = "0.33.17";
5831
5945
 
5832
5946
  declare interface Viewport {
5833
5947
  left: number;
@@ -5842,6 +5956,7 @@ declare interface Viewport {
5842
5956
  export declare function visitSceneIdentityReferences(scene: any, objectIdentity: boolean, visit: (path: IdentityPath, value: any, track?: boolean, key?: boolean) => void): void;
5843
5957
 
5844
5958
  export declare interface VisSceneDocument extends SceneDocumentMarker {
5959
+ runtimeAssets?: RuntimeAssetCatalog;
5845
5960
  entrySceneId: string;
5846
5961
  scenes: SceneViewportDocument[];
5847
5962
  /** Schema 3: scene payloads; schema 6 also shares material-library payloads. */
@@ -5858,7 +5973,9 @@ export declare interface VisSceneDocument extends SceneDocumentMarker {
5858
5973
 
5859
5974
  export declare interface VisSceneManifest {
5860
5975
  format: typeof SCENE_MANIFEST_FORMAT;
5861
- schemaVersion: 1 | 2 | typeof SCENE_MANIFEST_SCHEMA_VERSION;
5976
+ schemaVersion: 1 | 2 | 3 | typeof SCENE_MANIFEST_SCHEMA_VERSION;
5977
+ /** Manifest 4: complete static dependencies, shared by every scene. */
5978
+ runtimeAssets?: RuntimeAssetCatalog;
5862
5979
  entrySceneId: string;
5863
5980
  scenes: SceneManifestEntry[];
5864
5981
  materialLibrary?: MaterialAsset[];
@@ -5874,35 +5991,6 @@ export declare interface VisSceneManifest {
5874
5991
  s?: string;
5875
5992
  }
5876
5993
 
5877
- declare class Water extends Mesh_2<BufferGeometry, NodeMaterial & { uniforms: Record<string, IUniform> }> {
5878
- static WaterShader: WaterShader;
5879
- isWater: true;
5880
- constructor(geometry: BufferGeometry, options: WaterOptions);
5881
- dispose(): void;
5882
- }
5883
-
5884
- declare interface WaterOptions {
5885
- resources?: ResourceRegistry;
5886
- color?: ColorRepresentation;
5887
- textureWidth?: number;
5888
- textureHeight?: number;
5889
- clipBias?: number;
5890
- flowDirection?: Vector2_2;
5891
- flowSpeed?: number;
5892
- reflectivity?: number;
5893
- scale?: number;
5894
- shader?: WaterShader;
5895
- flowMap?: Texture;
5896
- normalMap0: Texture;
5897
- normalMap1: Texture;
5898
- }
5899
-
5900
- declare interface WaterShader {
5901
- name: string;
5902
- uniforms: Record<string, IUniform>;
5903
- colorNode?: Node_2 | ((uniforms: Record<string, IUniform>, defaultColor: Node_2) => Node_2);
5904
- }
5905
-
5906
5994
  declare type WidthCallback = (p: number) => number;
5907
5995
 
5908
5996
  export { }