soonspacejs 3.0.0-alpha.0 → 3.0.0-alpha.10
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/README.md +60 -0
- package/dist/index.esm.js +5684 -4669
- package/package.json +1 -1
- package/types/Cache/ModelBufferCache.d.ts +15 -0
- package/types/Constants/headers.d.ts +4 -1
- package/types/Entity/EntityCollection.d.ts +17 -4
- package/types/Entity/EntityRenderer.d.ts +21 -4
- package/types/Entity/ModelResources.d.ts +6 -1
- package/types/Entity/StaticModelPool.d.ts +28 -0
- package/types/Entity/TransparentSideVariants.d.ts +27 -0
- package/types/Entity/index.d.ts +2 -0
- package/types/Loader/TexturePreloader.d.ts +44 -0
- package/types/Loader/request-loaders.d.ts +24 -0
- package/types/Loader/scoped-gltf.d.ts +3 -0
- package/types/Manager/ModelManage.d.ts +3 -0
- package/types/Shared/network.d.ts +4 -3
- package/types/Shared/request.d.ts +4 -0
- package/types/Viewport/EventHandler.d.ts +5 -1
- package/types/Viewport/Info.d.ts +1 -0
- package/types/Viewport/index.d.ts +2 -1
- package/types/Viewport/render-info-change.d.ts +5 -0
- package/types/index.d.ts +141 -7
package/package.json
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Raw HTTP model bytes only. Runtime leases / GPU graphs are never persisted. */
|
|
2
|
+
export declare class ModelBufferCache {
|
|
3
|
+
private readonly store;
|
|
4
|
+
private readonly enabled;
|
|
5
|
+
constructor(store?: LocalForage, enabled?: () => boolean);
|
|
6
|
+
load(url: string, init: {
|
|
7
|
+
headers: Headers;
|
|
8
|
+
credentials: RequestCredentials;
|
|
9
|
+
signal?: AbortSignal;
|
|
10
|
+
redirect?: RequestRedirect;
|
|
11
|
+
}): Promise<ArrayBuffer>;
|
|
12
|
+
private key;
|
|
13
|
+
private mutate;
|
|
14
|
+
clear(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/** Default headers for SDK-owned HTTP(S) resource requests. */
|
|
2
|
+
export declare const RequestHeaders: Record<string, string>;
|
|
3
|
+
/** Backwards-compatible alias. Both names refer to the same mutable object. */
|
|
4
|
+
export declare const FileRequestHeaders: Record<string, string>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Box3, Matrix4, Object3D, Raycaster, Scene } from 'three';
|
|
1
|
+
import { Box3, Matrix4, Object3D, Raycaster, Scene, BufferGeometry } from 'three';
|
|
2
2
|
import { Entity, EntityChange, EntityOptions } from './Entity';
|
|
3
3
|
import { EntityHit } from './EntityRenderer';
|
|
4
4
|
import { ModelResources, ModelLease, ModelLoadOptions } from './ModelResources';
|
|
5
|
+
import { TransparentSideVariants } from './TransparentSideVariants';
|
|
5
6
|
export declare class EntityCollection {
|
|
6
7
|
private scene;
|
|
7
8
|
private requestRender;
|
|
@@ -18,7 +19,8 @@ export declare class EntityCollection {
|
|
|
18
19
|
private pendingModels;
|
|
19
20
|
private selected;
|
|
20
21
|
private selectionDirty;
|
|
21
|
-
|
|
22
|
+
private selectionHighlight;
|
|
23
|
+
constructor(scene: Scene, requestRender: () => void, models: ModelResources, sideVariants?: Pick<TransparentSideVariants, 'register' | 'unregister'>);
|
|
22
24
|
get roots(): readonly Entity[];
|
|
23
25
|
getById(id: string): Entity | undefined;
|
|
24
26
|
parentOf(entity: Entity): Entity | null;
|
|
@@ -41,6 +43,11 @@ export declare class EntityCollection {
|
|
|
41
43
|
attach(entity: Entity, object: Object3D): void;
|
|
42
44
|
detach(entity: Entity, object: Object3D): void;
|
|
43
45
|
pick(raycaster: Raycaster): EntityHit[];
|
|
46
|
+
private pickAttachments;
|
|
47
|
+
/** On-demand source surfaces for drawing/projection. These meshes never enter the scene. */
|
|
48
|
+
pickSurfaces(raycaster: Raycaster): EntityHit[];
|
|
49
|
+
/** Explicit BVH preparation snapshots current parts; later loads need another preparation. */
|
|
50
|
+
getSourceGeometries(): ReadonlySet<BufferGeometry>;
|
|
44
51
|
/** Fresh world bounds from committed transforms, including hidden content. */
|
|
45
52
|
getBounds(entity: Entity, options?: {
|
|
46
53
|
includeDescendants?: boolean;
|
|
@@ -48,12 +55,18 @@ export declare class EntityCollection {
|
|
|
48
55
|
getStats(): {
|
|
49
56
|
updatedEntities: number;
|
|
50
57
|
entities: number;
|
|
58
|
+
sourceParts: number;
|
|
59
|
+
renderObjects: number;
|
|
60
|
+
rebuilds: number;
|
|
51
61
|
instancedBatches: number;
|
|
52
62
|
batchedBatches: number;
|
|
53
63
|
independentObjects: number;
|
|
54
|
-
|
|
64
|
+
lineBatches: number;
|
|
55
65
|
};
|
|
56
|
-
|
|
66
|
+
/** Selection identity is retained even when the optional visual overlay is disabled. */
|
|
67
|
+
setSelection(entities: readonly Entity[], options?: {
|
|
68
|
+
highlight?: boolean;
|
|
69
|
+
}): void;
|
|
57
70
|
getSelection(): readonly Entity[];
|
|
58
71
|
setInstancingEnabled(enabled: boolean): void;
|
|
59
72
|
setBatchedEnabled(enabled: boolean): void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Box3, Group, Matrix4, Raycaster, Intersection } from 'three';
|
|
1
|
+
import { Box3, BufferGeometry, Group, Matrix4, Raycaster, Intersection } from 'three';
|
|
2
2
|
import { Entity } from './Entity';
|
|
3
3
|
import { RegisteredPart } from './ModelResources';
|
|
4
|
+
import { TransparentSideVariants } from './TransparentSideVariants';
|
|
4
5
|
export interface EntityRenderInput {
|
|
5
6
|
entity: Entity;
|
|
6
7
|
parts: readonly RegisteredPart[];
|
|
@@ -14,6 +15,7 @@ export interface EntityHit extends Intersection {
|
|
|
14
15
|
attachment?: boolean;
|
|
15
16
|
}
|
|
16
17
|
export declare class EntityRenderer {
|
|
18
|
+
private readonly sideVariants?;
|
|
17
19
|
readonly root: Group<import('three').Object3DEventMap>;
|
|
18
20
|
private entries;
|
|
19
21
|
private batches;
|
|
@@ -23,14 +25,20 @@ export declare class EntityRenderer {
|
|
|
23
25
|
private dirtyGroups;
|
|
24
26
|
private policyDirty;
|
|
25
27
|
private bounds;
|
|
28
|
+
private sourceGeometries;
|
|
29
|
+
private geometryRefs;
|
|
26
30
|
private enabled;
|
|
27
31
|
private batchedEnabled;
|
|
28
32
|
private rebuilds;
|
|
33
|
+
private sourceParts;
|
|
34
|
+
private sourceMeshes;
|
|
35
|
+
private batchCounts;
|
|
29
36
|
private selection;
|
|
30
37
|
private selectionDirty;
|
|
31
38
|
private highlights;
|
|
32
39
|
private highlightMaterial;
|
|
33
|
-
|
|
40
|
+
private highlightLineMaterial;
|
|
41
|
+
constructor(sideVariants?: Pick<TransparentSideVariants, "register" | "unregister"> | undefined);
|
|
34
42
|
add(input: EntityRenderInput): void;
|
|
35
43
|
remove(entity: Entity): void;
|
|
36
44
|
setEnabled(enabled: boolean): void;
|
|
@@ -42,15 +50,24 @@ export declare class EntityRenderer {
|
|
|
42
50
|
private assignGroup;
|
|
43
51
|
private rebuildGroup;
|
|
44
52
|
private createBatch;
|
|
53
|
+
private createLineBatch;
|
|
54
|
+
private updateLineBatch;
|
|
55
|
+
private sortLineBatch;
|
|
45
56
|
private updateBatch;
|
|
46
|
-
|
|
57
|
+
/** Live geometry membership is updated only when model parts are added/removed. */
|
|
58
|
+
getSourceGeometries(): ReadonlySet<BufferGeometry>;
|
|
59
|
+
pick(raycaster: Raycaster, surfaces?: boolean): EntityHit[];
|
|
47
60
|
getBounds(entity: Entity): Box3;
|
|
48
61
|
getStats(): {
|
|
62
|
+
sourceParts: number;
|
|
63
|
+
renderObjects: number;
|
|
64
|
+
rebuilds: number;
|
|
49
65
|
instancedBatches: number;
|
|
50
66
|
batchedBatches: number;
|
|
51
67
|
independentObjects: number;
|
|
52
|
-
|
|
68
|
+
lineBatches: number;
|
|
53
69
|
};
|
|
70
|
+
private countBatch;
|
|
54
71
|
private clearBatches;
|
|
55
72
|
dispose(): void;
|
|
56
73
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { BufferGeometry, Material, Matrix4, Texture } from 'three';
|
|
2
2
|
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
3
|
+
import { ModelBufferCache } from '../Cache/ModelBufferCache';
|
|
3
4
|
export interface ModelPart {
|
|
5
|
+
/** Omitted for triangle meshes. Basic line segments share the Entity lifecycle. */
|
|
6
|
+
kind?: 'mesh' | 'line-segments';
|
|
7
|
+
pickable?: boolean;
|
|
4
8
|
geometry: BufferGeometry;
|
|
5
9
|
material: Material | MaterialLease;
|
|
6
10
|
matrix: Matrix4;
|
|
@@ -60,8 +64,9 @@ export declare class ModelResources {
|
|
|
60
64
|
private pending;
|
|
61
65
|
private urls;
|
|
62
66
|
private gltfLoader;
|
|
67
|
+
private bufferCache;
|
|
63
68
|
/** Borrow a host-configured loader; its decoder workers remain host-owned. */
|
|
64
|
-
setGLTFLoader(loader: GLTFLoader): void;
|
|
69
|
+
setGLTFLoader(loader: GLTFLoader, bufferCache?: ModelBufferCache): void;
|
|
65
70
|
readonly materials: {
|
|
66
71
|
register: (material: Material, options: {
|
|
67
72
|
ownership: "transfer";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Object3D } from 'three';
|
|
2
|
+
import { ModelLease, ModelResources } from './ModelResources';
|
|
3
|
+
export interface StaticModelSnapshot {
|
|
4
|
+
object: Object3D;
|
|
5
|
+
model?: ModelLease;
|
|
6
|
+
empty?: boolean;
|
|
7
|
+
release: () => void;
|
|
8
|
+
}
|
|
9
|
+
export interface StaticModelExtraction extends StaticModelSnapshot {
|
|
10
|
+
restore: () => void;
|
|
11
|
+
}
|
|
12
|
+
/** Load-session cache. It owns snapshots, never resources borrowed from procedural factories. */
|
|
13
|
+
export declare class StaticModelPool {
|
|
14
|
+
private resources;
|
|
15
|
+
private options;
|
|
16
|
+
private materials;
|
|
17
|
+
private models;
|
|
18
|
+
private disposed;
|
|
19
|
+
constructor(resources: ModelResources, options?: {
|
|
20
|
+
pickableLines?: boolean;
|
|
21
|
+
ignoreRootVisibility?: boolean;
|
|
22
|
+
});
|
|
23
|
+
extract(root: Object3D): StaticModelExtraction;
|
|
24
|
+
/** Copy an immutable render snapshot without retaining/moving the source tree.
|
|
25
|
+
* The returned native remainder is owned by the snapshot, never the factory. */
|
|
26
|
+
snapshot(root: Object3D): StaticModelSnapshot;
|
|
27
|
+
dispose(): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Mesh, WebGLRenderer } from 'three';
|
|
2
|
+
/** Reuse immutable side-specific programs for Entity-owned Standard materials.
|
|
3
|
+
* Only reuse materials with at least two registered supported users. Registration
|
|
4
|
+
* count is not visible draw count: a hidden/culled second user still enables reuse.
|
|
5
|
+
* Three still chooses each object's two passes and the complete render-list order.
|
|
6
|
+
*/
|
|
7
|
+
export declare class TransparentSideVariants {
|
|
8
|
+
private readonly renderer;
|
|
9
|
+
private readonly objects;
|
|
10
|
+
private readonly records;
|
|
11
|
+
private sequence;
|
|
12
|
+
private epoch;
|
|
13
|
+
private enabled;
|
|
14
|
+
private disposed;
|
|
15
|
+
private readonly render;
|
|
16
|
+
private readonly direct;
|
|
17
|
+
private readonly wrappedRender;
|
|
18
|
+
private readonly wrappedDirect;
|
|
19
|
+
constructor(renderer: WebGLRenderer);
|
|
20
|
+
private supported;
|
|
21
|
+
register(mesh: Mesh): void;
|
|
22
|
+
unregister(mesh: Mesh): void;
|
|
23
|
+
private sync;
|
|
24
|
+
setEnabled(enabled: boolean): void;
|
|
25
|
+
private release;
|
|
26
|
+
dispose(): void;
|
|
27
|
+
}
|
package/types/Entity/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { Entity, } from './Entity';
|
|
2
|
+
export { StaticModelPool, } from './StaticModelPool';
|
|
3
|
+
export type { StaticModelSnapshot, StaticModelExtraction, } from './StaticModelPool';
|
|
2
4
|
export type { EntityOptions, EntityChange, } from './Entity';
|
|
3
5
|
export { EntityCollection, } from './EntityCollection';
|
|
4
6
|
export { ModelResources, ResourceLease, ModelResourceUnsupportedError, } from './ModelResources';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Object3D, Texture } from 'three';
|
|
2
|
+
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
3
|
+
interface TextureRenderer {
|
|
4
|
+
initTexture(texture: Texture): void;
|
|
5
|
+
domElement?: EventTarget;
|
|
6
|
+
getContext?: () => {
|
|
7
|
+
isContextLost(): boolean;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export declare const texturePreloaderFor: (loader: GLTFLoader) => TexturePreloader | undefined;
|
|
11
|
+
export declare const bindTexturePreloader: (loader: GLTFLoader, queue: TexturePreloader) => void;
|
|
12
|
+
/** Renderer-owned, frame-budgeted preparation for newly decoded GLTF roots. */
|
|
13
|
+
export declare class TexturePreloader {
|
|
14
|
+
private readonly renderer;
|
|
15
|
+
private readonly budgetMs;
|
|
16
|
+
private entries;
|
|
17
|
+
private jobs;
|
|
18
|
+
private owners;
|
|
19
|
+
private frame;
|
|
20
|
+
private fallback;
|
|
21
|
+
private frameGeneration;
|
|
22
|
+
private contextLost;
|
|
23
|
+
private disposed;
|
|
24
|
+
readonly stats: {
|
|
25
|
+
uploads: number;
|
|
26
|
+
reused: number;
|
|
27
|
+
cancelled: number;
|
|
28
|
+
failed: number;
|
|
29
|
+
frames: number;
|
|
30
|
+
totalMs: number;
|
|
31
|
+
maxUploadMs: number;
|
|
32
|
+
maxFrameMs: number;
|
|
33
|
+
};
|
|
34
|
+
constructor(renderer: TextureRenderer, budgetMs?: number);
|
|
35
|
+
private onContextLost;
|
|
36
|
+
private onContextRestored;
|
|
37
|
+
private cancelFrame;
|
|
38
|
+
prepare(root: Object3D, signal?: AbortSignal, managerSignal?: AbortSignal): Promise<void>;
|
|
39
|
+
private schedule;
|
|
40
|
+
private pump;
|
|
41
|
+
private cancel;
|
|
42
|
+
dispose(): void;
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CubeTextureLoader, FileLoader, ImageLoader, LoadingManager, TextureLoader } from 'three';
|
|
2
|
+
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
3
|
+
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
|
|
4
|
+
import { KTX2Loader } from 'three/examples/jsm/loaders/KTX2Loader.js';
|
|
5
|
+
/** Only SDK-owned instances are adapted; resolve before snapshotting the actual request. */
|
|
6
|
+
export declare function configureRequestLoader<T extends {
|
|
7
|
+
load: any;
|
|
8
|
+
path: string;
|
|
9
|
+
requestHeader: any;
|
|
10
|
+
manager: LoadingManager;
|
|
11
|
+
}>(loader: T): T;
|
|
12
|
+
/** @internal Add parent-local headers only to copies of SDK-adapted handlers. */
|
|
13
|
+
export declare function withRequestHeaders<T extends {
|
|
14
|
+
requestHeader: any;
|
|
15
|
+
}>(loader: T, parentHeaders?: HeadersInit): T;
|
|
16
|
+
export declare function createFileLoader(manager?: LoadingManager): FileLoader;
|
|
17
|
+
export declare function createImageLoader(manager?: LoadingManager): ImageLoader;
|
|
18
|
+
/** @internal Preserve the historical shared imageLoader FileLoader/Blob transport. */
|
|
19
|
+
export declare function createFileImageLoader(manager?: LoadingManager): ImageLoader;
|
|
20
|
+
export declare function createTextureLoader(manager?: LoadingManager): TextureLoader;
|
|
21
|
+
export declare function createCubeTextureLoader(manager?: LoadingManager): CubeTextureLoader;
|
|
22
|
+
export declare function configureGLTFLoader(loader: GLTFLoader): GLTFLoader;
|
|
23
|
+
export declare function configureDRACOLoader(loader: DRACOLoader): DRACOLoader;
|
|
24
|
+
export declare function configureKTX2Loader(loader: KTX2Loader): KTX2Loader;
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { GLTF, GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
2
|
+
import { ModelBufferCache } from '../Cache/ModelBufferCache';
|
|
2
3
|
interface RequestScope {
|
|
3
4
|
rootURL: string;
|
|
4
5
|
headers: HeadersInit;
|
|
5
6
|
signal?: AbortSignal;
|
|
7
|
+
bufferCache?: ModelBufferCache;
|
|
6
8
|
}
|
|
7
9
|
/** Each standard GLTFLoader parse constructs its parser synchronously, before any await. */
|
|
8
10
|
export declare function parseScopedGLTF(loader: GLTFLoader, data: ArrayBuffer, path: string, scope: RequestScope): Promise<{
|
|
9
11
|
gltf: GLTF;
|
|
10
12
|
dependencyError?: unknown;
|
|
13
|
+
prepareTextures: () => Promise<void>;
|
|
11
14
|
}>;
|
|
12
15
|
export {};
|
|
@@ -9,6 +9,7 @@ import { Group, GroupInfo, Model, ModelInfo } from '../Library';
|
|
|
9
9
|
import { CloneModelInfo } from '../Interface';
|
|
10
10
|
import { ObjectsCache } from '../Cache';
|
|
11
11
|
import { default as DefaultManage } from './DefaultManage';
|
|
12
|
+
import { ModelBufferCache } from '../Cache/ModelBufferCache';
|
|
12
13
|
declare class ModelManage extends DefaultManage {
|
|
13
14
|
readonly viewport: Viewport;
|
|
14
15
|
readonly cache: ObjectsCache;
|
|
@@ -24,6 +25,8 @@ declare class ModelManage extends DefaultManage {
|
|
|
24
25
|
*/
|
|
25
26
|
store: typeof localforage;
|
|
26
27
|
cacheStore: typeof localforage;
|
|
28
|
+
readonly bufferCache: ModelBufferCache;
|
|
29
|
+
private texturePreloader?;
|
|
27
30
|
loadingManager: LoadingManager;
|
|
28
31
|
gltfLoader: GLTFLoader;
|
|
29
32
|
fbxLoader: FBXLoader;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ImageLoader, TextureLoader } from 'three';
|
|
2
1
|
import { HDRLoader } from 'three/examples/jsm/loaders/HDRLoader.js';
|
|
2
|
+
export * from './request';
|
|
3
|
+
export { configureRequestLoader, createFileLoader, createImageLoader, createTextureLoader, createCubeTextureLoader, configureGLTFLoader, } from '../Loader/request-loaders';
|
|
3
4
|
export type FileResponseType = 'json' | 'arraybuffer' | 'blob' | 'document' | 'text';
|
|
4
5
|
export declare const fetchFile: <T = any>(url: string, responseType: FileResponseType) => Promise<T>;
|
|
5
|
-
export declare const imageLoader: ImageLoader;
|
|
6
|
-
export declare const textureLoader: TextureLoader;
|
|
6
|
+
export declare const imageLoader: import('three').ImageLoader;
|
|
7
|
+
export declare const textureLoader: import('three').TextureLoader;
|
|
7
8
|
export declare const rgbeLoader: HDRLoader;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Snapshot defaults and explicit headers. Explicit names win case-insensitively. */
|
|
2
|
+
export declare function getRequestHeaders(input: string | URL | Request, headers?: HeadersInit): Record<string, string>;
|
|
3
|
+
/** Keep the caller's Request/RequestInit semantics and snapshot at dispatch time. */
|
|
4
|
+
export declare function fetchResource(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
@@ -7,7 +7,10 @@ declare class EventHandler {
|
|
|
7
7
|
/**
|
|
8
8
|
* PC
|
|
9
9
|
*/
|
|
10
|
-
private
|
|
10
|
+
private mouseClickGroup;
|
|
11
|
+
private mouseDownGroup;
|
|
12
|
+
private pendingMouseClicks;
|
|
13
|
+
private disposed;
|
|
11
14
|
private mouseDownEvent;
|
|
12
15
|
private container;
|
|
13
16
|
private options;
|
|
@@ -30,6 +33,7 @@ declare class EventHandler {
|
|
|
30
33
|
private handleMouseDown;
|
|
31
34
|
private handleMouseMove;
|
|
32
35
|
private handleMouseUp;
|
|
36
|
+
private cancelPendingMouseClicks;
|
|
33
37
|
private handleDblClick;
|
|
34
38
|
private handleMouseWheel;
|
|
35
39
|
private handleTouchStart;
|
package/types/Viewport/Info.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ declare class Viewport {
|
|
|
38
38
|
rendererCSS3D: CSS3DRenderer;
|
|
39
39
|
readonly models: ModelResources;
|
|
40
40
|
readonly entities: EntityCollection;
|
|
41
|
+
private readonly transparentSideVariants;
|
|
41
42
|
pmremGenerator: PMREMGenerator;
|
|
42
43
|
info: Info;
|
|
43
44
|
stats: Stats;
|
|
@@ -126,7 +127,7 @@ declare class Viewport {
|
|
|
126
127
|
top: number;
|
|
127
128
|
};
|
|
128
129
|
getPositionByOffset(offset: OffsetPoint, z?: number, scalar?: number): Vector3;
|
|
129
|
-
getIntersects(event: MouseEvent | TouchEvent | OffsetPoint, objects?: Object3D
|
|
130
|
+
getIntersects(event: MouseEvent | TouchEvent | OffsetPoint, objects?: Object3D | Object3D[], options?: IntersectsOptions): Intersection<Object3D<import('three').Object3DEventMap>>[];
|
|
130
131
|
rayClash(startPoint?: Vector3, dir?: Vector3, objects?: Mesh<import('three').BufferGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap>, Material<import('three').MaterialEventMap> | Material<import('three').MaterialEventMap>[], import('three').Object3DEventMap>[]): Intersection<Object3D<import('three').Object3DEventMap>>[];
|
|
131
132
|
clearSignals(): void;
|
|
132
133
|
/**
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Object3D } from 'three';
|
|
2
|
+
export declare function getRenderInfoSourceMeshes(object: Object3D): number | undefined;
|
|
3
|
+
export declare function setRenderInfoSourceMeshes(object: Object3D, count: number): void;
|
|
4
|
+
export declare function observeRenderInfoChange(object: Object3D, listener: () => void): () => void;
|
|
5
|
+
export declare function notifyRenderInfoChange(object: Object3D): void;
|