ice3 0.0.0-stage → 0.1.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 (73) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +57 -2
  3. package/dist/_types/assets/ICEGLBReader.d.ts +4 -0
  4. package/dist/_types/assets/ICEPreparedGLB.d.ts +87 -0
  5. package/dist/_types/assets/ICEProfileValidator.d.ts +11 -0
  6. package/dist/_types/assets/ICETileset.d.ts +17 -0
  7. package/dist/_types/assets/ICETilesetReader.d.ts +3 -0
  8. package/dist/_types/assets/index.d.ts +5 -0
  9. package/dist/_types/core/camera/ICEPerspectiveCamera.d.ts +25 -0
  10. package/dist/_types/core/culling/ICEFrustum.d.ts +9 -0
  11. package/dist/_types/core/diagnostics/ICEDiagnostic.d.ts +9 -0
  12. package/dist/_types/core/diagnostics/ICEEngineError.d.ts +8 -0
  13. package/dist/_types/core/event/ICEEvent.d.ts +7 -0
  14. package/dist/_types/core/event/ICEEventDispatcher.d.ts +11 -0
  15. package/dist/_types/core/geometry/ICEBoxGeometry.d.ts +19 -0
  16. package/dist/_types/core/geometry/ICEGeometry.d.ts +15 -0
  17. package/dist/_types/core/geometry/ICEIndexedGeometry.d.ts +22 -0
  18. package/dist/_types/core/index.d.ts +27 -0
  19. package/dist/_types/core/material/ICEBasicMaterial.d.ts +12 -0
  20. package/dist/_types/core/math/ICEMatrix4.d.ts +11 -0
  21. package/dist/_types/core/math/ICEVector3.d.ts +10 -0
  22. package/dist/_types/core/scene/ICEMesh.d.ts +18 -0
  23. package/dist/_types/core/scene/ICENode.d.ts +77 -0
  24. package/dist/_types/core/scene/ICEScene.d.ts +6 -0
  25. package/dist/_types/core/serialization/serializeScene.d.ts +18 -0
  26. package/dist/_types/core/types/ICETypeRegistry.d.ts +12 -0
  27. package/dist/_types/renderer/FakeRendererBackend.d.ts +27 -0
  28. package/dist/_types/renderer/ICEWebGL2BatchGenerationUploader.d.ts +31 -0
  29. package/dist/_types/renderer/WebGL2GeometryBatch.d.ts +10 -0
  30. package/dist/_types/renderer/WebGL2GeometryCache.d.ts +42 -0
  31. package/dist/_types/renderer/WebGL2InstanceBatch.d.ts +41 -0
  32. package/dist/_types/renderer/WebGL2PickCodec.d.ts +3 -0
  33. package/dist/_types/renderer/WebGL2Picker.d.ts +24 -0
  34. package/dist/_types/renderer/WebGL2Program.d.ts +25 -0
  35. package/dist/_types/renderer/WebGL2RenderBatch.d.ts +17 -0
  36. package/dist/_types/renderer/WebGL2RendererBackend.d.ts +44 -0
  37. package/dist/_types/renderer/WebGL2SemanticProgram.d.ts +21 -0
  38. package/dist/_types/renderer/index.d.ts +12 -0
  39. package/dist/_types/renderer/types.d.ts +51 -0
  40. package/dist/_types/runtime/ICE3.d.ts +121 -0
  41. package/dist/_types/runtime/ICEInteractionState.d.ts +7 -0
  42. package/dist/_types/runtime/ICEProjection.d.ts +10 -0
  43. package/dist/_types/runtime/ICERenderScheduler.d.ts +14 -0
  44. package/dist/_types/runtime/asset/ICEAssetLoader.d.ts +30 -0
  45. package/dist/_types/runtime/asset/ICEAssetSceneBuilder.d.ts +9 -0
  46. package/dist/_types/runtime/asset/ICELodSelector.d.ts +21 -0
  47. package/dist/_types/runtime/asset/ICERenderBatch.d.ts +21 -0
  48. package/dist/_types/runtime/asset/ICETilesetLoader.d.ts +173 -0
  49. package/dist/_types/runtime/asset/ICETilesetScheduler.d.ts +34 -0
  50. package/dist/_types/runtime/batching/ICEAdaptiveRenderBatchController.d.ts +59 -0
  51. package/dist/_types/runtime/batching/ICEBatchWorkerPool.d.ts +27 -0
  52. package/dist/_types/runtime/batching/ICEBatchWorkerProtocol.d.ts +40 -0
  53. package/dist/_types/runtime/batching/ICERenderBatchPlan.d.ts +24 -0
  54. package/dist/_types/runtime/batching/ICERenderBatchPlanner.d.ts +5 -0
  55. package/dist/_types/runtime/batching/createBatchWorker.d.ts +3 -0
  56. package/dist/_types/runtime/batching/mergeBatchBuffers.d.ts +20 -0
  57. package/dist/_types/runtime/index.d.ts +36 -0
  58. package/dist/_types/runtime/input/ICEInputRouter.d.ts +62 -0
  59. package/dist/_types/runtime/input/ICEOrbitController.d.ts +51 -0
  60. package/dist/_types/runtime/input/ICEScenePicker.d.ts +7 -0
  61. package/dist/_types/runtime/input/ICESelectionGesture.d.ts +18 -0
  62. package/dist/_types/runtime/layer/ICE2DCanvasPainter.d.ts +6 -0
  63. package/dist/_types/runtime/layer/ICE2DLayer.d.ts +29 -0
  64. package/dist/_types/runtime/layer/ICE2DLayerRouter.d.ts +20 -0
  65. package/dist/_types/runtime/layer/ICELabel.d.ts +42 -0
  66. package/dist/_types/runtime/layer/ICEScreenLayer.d.ts +5 -0
  67. package/dist/_types/runtime/layer/ICEWorldLayer.d.ts +9 -0
  68. package/dist/_types/runtime/query/ICESceneQuery.d.ts +24 -0
  69. package/dist/_types/runtime/workers/renderBatchWorker.d.ts +2 -0
  70. package/dist/index.d.ts +3 -0
  71. package/dist/index.js +6729 -0
  72. package/dist/index.js.map +7 -0
  73. package/package.json +38 -4
@@ -0,0 +1,42 @@
1
+ import type { ICEGeometry } from '../core/index.js';
2
+ export interface GeometryEntry {
3
+ readonly vertexArray: WebGLVertexArrayObject;
4
+ readonly positionBuffer: WebGLBuffer;
5
+ readonly triangleIndexBuffer: WebGLBuffer;
6
+ readonly edgeIndexBuffer: WebGLBuffer | null;
7
+ readonly colorBuffer: WebGLBuffer | null;
8
+ readonly semanticBuffer: WebGLBuffer | null;
9
+ readonly triangleCount: number;
10
+ readonly edgeCount: number;
11
+ readonly bytes: number;
12
+ lastUsedFrame: number;
13
+ }
14
+ export interface WebGL2GeometryCacheOptions {
15
+ readonly inactiveGraceFrames?: number;
16
+ readonly maxBytes?: number;
17
+ }
18
+ export declare class WebGL2GeometryCache {
19
+ private readonly entries;
20
+ private active;
21
+ private readonly pinned;
22
+ private gl;
23
+ private uploads;
24
+ private evictions;
25
+ private frameId;
26
+ private readonly inactiveGraceFrames;
27
+ private readonly maxBytes;
28
+ constructor(options?: WebGL2GeometryCacheOptions);
29
+ retain(gl: WebGL2RenderingContext, geometry: ICEGeometry): Readonly<GeometryEntry>;
30
+ beginFrame(): void;
31
+ pin(gl: WebGL2RenderingContext, geometry: ICEGeometry): Readonly<GeometryEntry>;
32
+ unpin(geometry: ICEGeometry): void;
33
+ endFrame(): void;
34
+ clear(): void;
35
+ dispose(): void;
36
+ get totalBytes(): number;
37
+ get uploadCount(): number;
38
+ get evictionCount(): number;
39
+ private deleteEntry;
40
+ private enforceBudget;
41
+ }
42
+ //# sourceMappingURL=WebGL2GeometryCache.d.ts.map
@@ -0,0 +1,41 @@
1
+ import type { ICEBasicMaterial, ICEGeometry } from '../core/index.js';
2
+ import { WebGL2GeometryCache } from './WebGL2GeometryCache.js';
3
+ import type { ICEGeometryRenderable } from './WebGL2GeometryBatch.js';
4
+ export type { ICEGeometryRenderable } from './WebGL2GeometryBatch.js';
5
+ export interface ICEInstanceBatch {
6
+ readonly id: string;
7
+ readonly geometry: ICEGeometry;
8
+ readonly material: ICEBasicMaterial;
9
+ readonly instanceMatrices: Float32Array;
10
+ readonly semanticIds: readonly string[];
11
+ readonly semanticIndices: Uint32Array;
12
+ readonly meshIds: readonly string[];
13
+ readonly materialKey: string;
14
+ }
15
+ export interface WebGL2InstanceEntry {
16
+ readonly vertexArray: WebGLVertexArrayObject;
17
+ readonly matrixBuffer: WebGLBuffer;
18
+ readonly semanticBuffer: WebGLBuffer;
19
+ readonly triangleIndexBuffer: WebGLBuffer;
20
+ readonly edgeIndexBuffer: WebGLBuffer | null;
21
+ readonly triangleCount: number;
22
+ readonly edgeCount: number;
23
+ instanceCount: number;
24
+ readonly bytes: number;
25
+ }
26
+ export declare class WebGL2InstanceCache {
27
+ private readonly entries;
28
+ private active;
29
+ private gl;
30
+ private fallbacks;
31
+ retain(gl: WebGL2RenderingContext, geometryCache: WebGL2GeometryCache, batch: ICEInstanceBatch): Readonly<WebGL2InstanceEntry> | undefined;
32
+ beginFrame(): void;
33
+ endFrame(): void;
34
+ clear(): void;
35
+ dispose(): void;
36
+ get fallbackCount(): number;
37
+ get totalBytes(): number;
38
+ private deleteEntry;
39
+ }
40
+ export declare function collectInstanceBatches(renderables: readonly ICEGeometryRenderable[], output?: ICEInstanceBatch[]): readonly ICEInstanceBatch[];
41
+ //# sourceMappingURL=WebGL2InstanceBatch.d.ts.map
@@ -0,0 +1,3 @@
1
+ export declare function encodeSelectionIndex(index: number): readonly [number, number, number, 255];
2
+ export declare function decodeSelectionIndex(pixel: ArrayLike<number>): number | undefined;
3
+ //# sourceMappingURL=WebGL2PickCodec.d.ts.map
@@ -0,0 +1,24 @@
1
+ import type { ICEGeometryRenderable } from './WebGL2GeometryBatch.js';
2
+ import type { WebGL2GeometryCache } from './WebGL2GeometryCache.js';
3
+ import type { ICEInstanceBatch, WebGL2InstanceCache } from './WebGL2InstanceBatch.js';
4
+ import type { ICERenderBatchDraw } from './WebGL2RenderBatch.js';
5
+ import type { ICEFrame, ICEScreenPoint } from './types.js';
6
+ export type ICEPickFrame = ICEFrame & {
7
+ readonly point: ICEScreenPoint;
8
+ };
9
+ export declare class WebGL2Picker {
10
+ private readonly gl;
11
+ private readonly program;
12
+ private readonly semanticProgram;
13
+ private framebuffer;
14
+ private colorTexture;
15
+ private depthBuffer;
16
+ private width;
17
+ private height;
18
+ constructor(gl: WebGL2RenderingContext);
19
+ pick(frame: ICEPickFrame, cache: WebGL2GeometryCache, renderables: readonly ICEGeometryRenderable[], batches?: readonly ICERenderBatchDraw[], instances?: readonly ICEInstanceBatch[], instanceCache?: WebGL2InstanceCache | null): string | undefined;
20
+ dispose(): void;
21
+ private ensureTarget;
22
+ private releaseTarget;
23
+ }
24
+ //# sourceMappingURL=WebGL2Picker.d.ts.map
@@ -0,0 +1,25 @@
1
+ import type { ICEMatrix4 } from '../core/index.js';
2
+ export declare class WebGL2Program {
3
+ private readonly gl;
4
+ static readonly POSITION_ATTRIBUTE = 0;
5
+ static readonly COLOR_ATTRIBUTE = 1;
6
+ static readonly INSTANCE_MATRIX_ATTRIBUTE = 3;
7
+ static readonly INSTANCE_SEMANTIC_ATTRIBUTE = 7;
8
+ readonly program: WebGLProgram;
9
+ private readonly matrixLocation;
10
+ private readonly colorLocation;
11
+ private readonly clipOffsetLocation;
12
+ private readonly vertexColorLocation;
13
+ private readonly instancingLocation;
14
+ constructor(gl: WebGL2RenderingContext);
15
+ use(): void;
16
+ setMatrix(matrix: ICEMatrix4): void;
17
+ setColor(color: readonly [number, number, number, number]): void;
18
+ setClipOffset(x: number, y: number): void;
19
+ setVertexColors(enabled: boolean): void;
20
+ setInstancing(enabled: boolean): void;
21
+ dispose(): void;
22
+ private createProgram;
23
+ private compile;
24
+ }
25
+ //# sourceMappingURL=WebGL2Program.d.ts.map
@@ -0,0 +1,17 @@
1
+ import type { ICEBasicMaterial, ICEGeometry, ICENode, ICEScene } from '../core/index.js';
2
+ export interface ICERenderBatchNode extends ICENode {
3
+ readonly geometry: ICEGeometry;
4
+ readonly material: ICEBasicMaterial;
5
+ readonly semanticIds: readonly string[];
6
+ readonly semanticNodeIds: readonly string[];
7
+ readonly semanticSelectionIds: readonly string[];
8
+ readonly materialKey: string;
9
+ }
10
+ export interface ICERenderBatchDraw {
11
+ readonly id: string;
12
+ readonly batch: ICERenderBatchNode;
13
+ readonly worldMatrix: Float32Array;
14
+ }
15
+ export declare function collectRenderBatches(scene: ICEScene, output?: ICERenderBatchDraw[]): readonly ICERenderBatchDraw[];
16
+ export declare function semanticSelectionId(batch: Pick<ICERenderBatchNode, 'semanticSelectionIds'>, semanticIndex: number): string | undefined;
17
+ //# sourceMappingURL=WebGL2RenderBatch.d.ts.map
@@ -0,0 +1,44 @@
1
+ import { type ICEGeometry } from '../core/index.js';
2
+ import type { ICERendererBackend, ICERendererCapabilities, ICEFrame, ICEScreenPoint, ICEViewport } from './types.js';
3
+ export declare function colorToRgba(color: string): readonly [number, number, number, number];
4
+ export declare class WebGL2RendererBackend implements ICERendererBackend {
5
+ capabilities: Readonly<ICERendererCapabilities>;
6
+ private canvas;
7
+ private gl;
8
+ private viewport;
9
+ private dpr;
10
+ private onContextLost;
11
+ private onContextRestored;
12
+ private program;
13
+ private semanticProgram;
14
+ private geometryCache;
15
+ private instanceCache;
16
+ private picker;
17
+ private readonly mvpScratch;
18
+ private readonly worldScratch;
19
+ private readonly renderablesScratch;
20
+ private readonly batchesScratch;
21
+ private readonly instancesScratch;
22
+ private readonly instancedMeshIds;
23
+ private backgroundRgba;
24
+ private frameStats;
25
+ private readonly handleContextLost;
26
+ private readonly handleContextRestored;
27
+ initialize(options: {
28
+ readonly canvas: HTMLCanvasElement;
29
+ readonly onContextLost?: () => void;
30
+ readonly onContextRestored?: () => void;
31
+ }): void;
32
+ resize(viewport: ICEViewport, dpr: number): void;
33
+ setBackgroundColor(color: string): void;
34
+ prepareBatchGeometry(geometry: ICEGeometry): void;
35
+ releaseBatchGeometry(geometry: ICEGeometry): void;
36
+ render(frame: ICEFrame): void;
37
+ pick(frame: ICEFrame, point: ICEScreenPoint): string | undefined;
38
+ dispose(): void;
39
+ getViewport(): ICEViewport;
40
+ getDevicePixelRatio(): number;
41
+ get stats(): Readonly<typeof this.frameStats>;
42
+ private createProgram;
43
+ }
44
+ //# sourceMappingURL=WebGL2RendererBackend.d.ts.map
@@ -0,0 +1,21 @@
1
+ import type { ICEMatrix4 } from '../core/index.js';
2
+ export declare class WebGL2SemanticProgram {
3
+ private readonly gl;
4
+ private readonly program;
5
+ private readonly matrixLocation;
6
+ private readonly pickModeLocation;
7
+ private readonly pickBaseLocation;
8
+ private readonly highlightLocation;
9
+ private readonly colorLocation;
10
+ private readonly instancingLocation;
11
+ constructor(gl: WebGL2RenderingContext);
12
+ use(): void;
13
+ setMatrix(matrix: ICEMatrix4): void;
14
+ setPick(base: number): void;
15
+ setHighlight(semanticIndex: number): void;
16
+ setInstancing(enabled: boolean): void;
17
+ dispose(): void;
18
+ private createProgram;
19
+ private compile;
20
+ }
21
+ //# sourceMappingURL=WebGL2SemanticProgram.d.ts.map
@@ -0,0 +1,12 @@
1
+ export { FakeRendererBackend } from './FakeRendererBackend.js';
2
+ export { WebGL2RendererBackend, colorToRgba, } from './WebGL2RendererBackend.js';
3
+ export { collectRenderables } from './WebGL2GeometryBatch.js';
4
+ export type { ICEGeometryRenderable } from './WebGL2GeometryBatch.js';
5
+ export { collectInstanceBatches } from './WebGL2InstanceBatch.js';
6
+ export type { ICEInstanceBatch } from './WebGL2InstanceBatch.js';
7
+ export { queueBatchGeneration } from './ICEWebGL2BatchGenerationUploader.js';
8
+ export type { ICEBatchGenerationHandle, ICEBatchUploadBuffer, ICEBatchUploadOptions, } from './ICEWebGL2BatchGenerationUploader.js';
9
+ export { collectRenderBatches } from './WebGL2RenderBatch.js';
10
+ export type { ICERenderBatchDraw, ICERenderBatchNode, } from './WebGL2RenderBatch.js';
11
+ export type { ICERendererBackend, ICERendererCapabilities, ICERendererStats, ICEFrame, ICEScreenPoint, ICEViewport, } from './types.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,51 @@
1
+ import type { ICEGeometry, ICEPerspectiveCamera, ICEScene } from '../core/index.js';
2
+ export type ICEViewport = {
3
+ readonly x: number;
4
+ readonly y: number;
5
+ readonly width: number;
6
+ readonly height: number;
7
+ };
8
+ export type ICEScreenPoint = Readonly<{
9
+ x: number;
10
+ y: number;
11
+ }>;
12
+ export type ICEFrame = {
13
+ readonly frameId: number;
14
+ readonly scene: ICEScene;
15
+ readonly camera: ICEPerspectiveCamera;
16
+ readonly viewport: ICEViewport;
17
+ readonly dpr: number;
18
+ readonly selection: readonly string[];
19
+ };
20
+ export interface ICERendererCapabilities {
21
+ readonly backend: 'webgl2' | 'fake';
22
+ readonly maxTextureSize: number;
23
+ readonly picking: boolean;
24
+ }
25
+ export interface ICERendererStats {
26
+ readonly drawCalls: number;
27
+ readonly renderedMeshes: number;
28
+ readonly renderedBatches: number;
29
+ readonly instancingFallbacks: number;
30
+ readonly gpuUploads: number;
31
+ readonly gpuEvictions: number;
32
+ readonly gpuBytes: number;
33
+ }
34
+ export interface ICERendererBackend {
35
+ readonly capabilities: Readonly<ICERendererCapabilities>;
36
+ readonly stats?: Readonly<ICERendererStats>;
37
+ initialize(options: {
38
+ readonly canvas: HTMLCanvasElement;
39
+ readonly onContextLost?: () => void;
40
+ readonly onContextRestored?: () => void;
41
+ }): void;
42
+ resize(viewport: ICEViewport, dpr: number): void;
43
+ setBackgroundColor?(color: string): void;
44
+ prepareBatchGeometry?(geometry: ICEGeometry): void;
45
+ releaseBatchGeometry?(geometry: ICEGeometry): void;
46
+ pick?(frame: ICEFrame, point: ICEScreenPoint): string | undefined;
47
+ render(frame: ICEFrame): void;
48
+ capture?(): Promise<Blob>;
49
+ dispose(): void;
50
+ }
51
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,121 @@
1
+ import { ICEEventDispatcher, ICEPerspectiveCamera, ICEScene, type ICEDiagnostic, type ICEGeometry, type ICENode } from '../core/index.js';
2
+ import { type ICERendererBackend, type ICEScreenPoint, type ICEViewport } from '../renderer/index.js';
3
+ import { ICE2DLayer } from './layer/ICE2DLayer.js';
4
+ import { type ICEProjectedPoint } from './ICEProjection.js';
5
+ import { type ICERenderScheduler } from './ICERenderScheduler.js';
6
+ import type { ICEVector3Tuple } from '../core/index.js';
7
+ import { type ICERay, type ICESceneItem, type ICESceneQuery } from './query/ICESceneQuery.js';
8
+ export type ICE3Options = {
9
+ readonly backend?: ICERendererBackend;
10
+ readonly scheduler?: ICERenderScheduler;
11
+ };
12
+ export type ICEEngineDiagnostics = {
13
+ readonly frameId: number;
14
+ readonly fps: number;
15
+ readonly cpuFrameTimeMs: number;
16
+ readonly backend: Readonly<{
17
+ backend: 'webgl2' | 'fake';
18
+ maxTextureSize: number;
19
+ picking: boolean;
20
+ }>;
21
+ readonly nodeCount: number;
22
+ readonly layerCount: number;
23
+ readonly labelCount: number;
24
+ readonly dpr: number;
25
+ readonly canvas: Readonly<{
26
+ width: number;
27
+ height: number;
28
+ }>;
29
+ readonly viewport: Readonly<ICEViewport>;
30
+ readonly contextLossCount: number;
31
+ readonly renderer: Readonly<{
32
+ drawCalls: number;
33
+ renderedMeshes: number;
34
+ renderedBatches: number;
35
+ instancingFallbacks: number;
36
+ gpuUploads: number;
37
+ gpuEvictions: number;
38
+ gpuBytes: number;
39
+ }>;
40
+ readonly selectionCount: number;
41
+ readonly lastPickTimeMs: number;
42
+ readonly lastPickId?: string;
43
+ readonly labels: readonly Readonly<{
44
+ id: string;
45
+ layerId: string;
46
+ rect: Readonly<{
47
+ x: number;
48
+ y: number;
49
+ width: number;
50
+ height: number;
51
+ }>;
52
+ }>[];
53
+ readonly lastDiagnostic?: Readonly<ICEDiagnostic>;
54
+ };
55
+ export declare class ICE3 extends ICEEventDispatcher {
56
+ private readonly backend;
57
+ private readonly scheduler;
58
+ private readonly interaction;
59
+ private readonly layers;
60
+ private readonly layerRouter;
61
+ private readonly layerPainter;
62
+ private readonly inputRouter;
63
+ private state;
64
+ private host;
65
+ private baseCanvas;
66
+ private overlayCanvas;
67
+ private generatedBaseCanvas;
68
+ private generatedOverlayCanvas;
69
+ private scene;
70
+ private camera;
71
+ private viewport;
72
+ private dpr;
73
+ private frameId;
74
+ private renderPending;
75
+ private lastFrameAt;
76
+ private fps;
77
+ private cpuFrameTimeMs;
78
+ private contextLost;
79
+ private contextLossCount;
80
+ private lastPickTimeMs;
81
+ private lastPickId;
82
+ private readonly pointerGestures;
83
+ private lastDiagnostic;
84
+ private instancingFallbackReported;
85
+ private readonly removeInputListeners;
86
+ private readonly handleWindowResize;
87
+ constructor(options?: ICE3Options);
88
+ init(target: string | HTMLElement): this;
89
+ setScene(scene: ICEScene): this;
90
+ setCamera(camera: ICEPerspectiveCamera): this;
91
+ setBackgroundColor(color: string): this;
92
+ prepareRenderBatchGeometry(geometry: ICEGeometry): this;
93
+ releaseRenderBatchGeometry(geometry: ICEGeometry): this;
94
+ addLayer(layer: ICE2DLayer): this;
95
+ removeLayer(layer: ICE2DLayer): this;
96
+ start(): this;
97
+ stop(): this;
98
+ requestRender(_reason?: string): this;
99
+ project(position: ICEVector3Tuple): ICEProjectedPoint;
100
+ getSelection(): readonly string[];
101
+ queryScene(query?: ICESceneQuery): readonly ICESceneItem[];
102
+ findBySelectionId(selectionId: string): ICENode | undefined;
103
+ raycast(ray: ICERay): ICESceneItem | undefined;
104
+ setSelection(ids: readonly string[]): this;
105
+ pick(point: ICEScreenPoint): ICENode | undefined;
106
+ pickItem(point: ICEScreenPoint): {
107
+ readonly item?: ICESceneItem;
108
+ };
109
+ getDiagnostics(): Readonly<ICEEngineDiagnostics>;
110
+ destroy(): void;
111
+ resize(): this;
112
+ private configureTarget;
113
+ private renderFrame;
114
+ private installInputEvents;
115
+ private dispatchInput;
116
+ private samplePick;
117
+ private assertActive;
118
+ reportDiagnostic(code: string, message: string, severity?: ICEDiagnostic['severity']): this;
119
+ private recordDiagnostic;
120
+ }
121
+ //# sourceMappingURL=ICE3.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { ICEEventDispatcher } from '../core/index.js';
2
+ export declare class ICEInteractionState extends ICEEventDispatcher {
3
+ private selection;
4
+ getSelection(): readonly string[];
5
+ setSelection(ids: readonly string[]): this;
6
+ }
7
+ //# sourceMappingURL=ICEInteractionState.d.ts.map
@@ -0,0 +1,10 @@
1
+ import { ICEPerspectiveCamera, type ICEVector3Tuple } from '../core/index.js';
2
+ import type { ICEViewport } from '../renderer/index.js';
3
+ export interface ICEProjectedPoint {
4
+ readonly x: number;
5
+ readonly y: number;
6
+ readonly visible: boolean;
7
+ readonly depth: number;
8
+ }
9
+ export declare function projectWorldPoint(camera: ICEPerspectiveCamera, position: ICEVector3Tuple, viewport: ICEViewport): ICEProjectedPoint;
10
+ //# sourceMappingURL=ICEProjection.d.ts.map
@@ -0,0 +1,14 @@
1
+ export interface ICERenderScheduler {
2
+ request(callback: FrameRequestCallback): number;
3
+ cancelAll(): void;
4
+ flushForTest(): boolean;
5
+ pendingCount(): number;
6
+ }
7
+ export declare class BrowserRenderScheduler implements ICERenderScheduler {
8
+ private readonly pending;
9
+ request(callback: FrameRequestCallback): number;
10
+ cancelAll(): void;
11
+ flushForTest(): boolean;
12
+ pendingCount(): number;
13
+ }
14
+ //# sourceMappingURL=ICERenderScheduler.d.ts.map
@@ -0,0 +1,30 @@
1
+ import type { ICEPreparedContract, ICEPreparedStats } from '../../assets/index.js';
2
+ import type { ICEGeometryBounds, ICEScene } from '../../core/index.js';
3
+ import type { ICE3 } from '../ICE3.js';
4
+ export interface ICEAssetLoaderOptions {
5
+ readonly fetch?: typeof globalThis.fetch;
6
+ readonly verifyIntegrity?: boolean;
7
+ }
8
+ export interface ICEAssetLoadOptions {
9
+ readonly signal?: AbortSignal;
10
+ }
11
+ export interface ICEAssetHandle {
12
+ readonly id: string;
13
+ readonly scene: ICEScene;
14
+ readonly bounds: ICEGeometryBounds;
15
+ readonly stats: ICEPreparedStats;
16
+ readonly contract: ICEPreparedContract;
17
+ dispose(): void;
18
+ }
19
+ export declare class ICEAssetLoader {
20
+ private readonly engine;
21
+ private readonly fetcher;
22
+ private readonly verifyIntegrity;
23
+ private readonly legacyWarnings;
24
+ private readonly cache;
25
+ constructor(engine: ICE3, options?: ICEAssetLoaderOptions);
26
+ load(url: string, options?: ICEAssetLoadOptions): Promise<ICEAssetHandle>;
27
+ clear(url?: string): void;
28
+ private fetchSnapshot;
29
+ }
30
+ //# sourceMappingURL=ICEAssetLoader.d.ts.map
@@ -0,0 +1,9 @@
1
+ import type { ICEPreparedAssetSnapshot, ICEPreparedStats } from '../../assets/index.js';
2
+ import { ICEScene, type ICEGeometryBounds } from '../../core/index.js';
3
+ export interface ICEBuiltAsset {
4
+ readonly scene: ICEScene;
5
+ readonly bounds: ICEGeometryBounds;
6
+ readonly stats: ICEPreparedStats;
7
+ }
8
+ export declare function buildAssetScene(snapshot: ICEPreparedAssetSnapshot): ICEBuiltAsset;
9
+ //# sourceMappingURL=ICEAssetSceneBuilder.d.ts.map
@@ -0,0 +1,21 @@
1
+ import type { ICETilesetTile } from '../../assets/index.js';
2
+ import { type ICEPerspectiveCamera } from '../../core/index.js';
3
+ import type { ICEViewport } from '../../renderer/index.js';
4
+ export interface ICELodSelectionInput {
5
+ readonly root: ICETilesetTile;
6
+ readonly camera: ICEPerspectiveCamera;
7
+ readonly viewport: ICEViewport;
8
+ readonly residentIds: ReadonlySet<string>;
9
+ readonly failedIds: ReadonlySet<string>;
10
+ readonly previousTargetIds?: ReadonlySet<string>;
11
+ readonly maxScreenSpaceErrorPixels: number;
12
+ }
13
+ export interface ICELodSelection {
14
+ readonly target: readonly ICETilesetTile[];
15
+ readonly prefetch: readonly ICETilesetTile[];
16
+ readonly fallbackByTargetId: ReadonlyMap<string, string>;
17
+ }
18
+ export declare class ICELodSelector {
19
+ select(input: ICELodSelectionInput): ICELodSelection;
20
+ }
21
+ //# sourceMappingURL=ICELodSelector.d.ts.map
@@ -0,0 +1,21 @@
1
+ import { ICENode, type ICEBasicMaterial, type ICEIndexedGeometry, type ICENodeOptions } from '../../core/index.js';
2
+ export interface ICERenderBatchOptions extends ICENodeOptions {
3
+ readonly geometry: ICEIndexedGeometry;
4
+ readonly material: ICEBasicMaterial;
5
+ readonly semanticIds: readonly string[];
6
+ readonly semanticNodeIds: readonly string[];
7
+ readonly semanticSelectionIds: readonly string[];
8
+ readonly materialKey: string;
9
+ }
10
+ export declare class ICERenderBatch extends ICENode {
11
+ static readonly typeId = "ice3:RenderBatch";
12
+ readonly geometry: ICEIndexedGeometry;
13
+ readonly material: ICEBasicMaterial;
14
+ readonly semanticIds: readonly string[];
15
+ readonly semanticNodeIds: readonly string[];
16
+ readonly semanticSelectionIds: readonly string[];
17
+ readonly materialKey: string;
18
+ constructor(options: ICERenderBatchOptions);
19
+ get typeId(): string;
20
+ }
21
+ //# sourceMappingURL=ICERenderBatch.d.ts.map