threepipe
Version:
A modern 3D viewer framework built on top of three.js, written in TypeScript, designed to make creating high-quality, modular, and extensible 3D experiences on the web simple and enjoyable.
114 lines • 4.48 kB
TypeScript
import { IGeometry, ILight, IMaterial, IMaterialEventMap, IObject3D, IObject3DEventMap, ITexture } from '../core';
import { IObjectExtension } from '../core/IObject';
import { EventDispatcher, VideoTexture } from 'three';
/**
* Event map for Object3DManager events.
*/
export interface Object3DManagerEventMap {
'videoAdd': {
video: VideoTexture & ITexture;
};
'videoRemove': {
video: VideoTexture & ITexture;
};
'objectAdd': {
object: IObject3D;
};
'objectRemove': {
object: IObject3D;
};
'materialAdd': {
material: IMaterial;
};
'materialRemove': {
material: IMaterial;
};
'geometryAdd': {
geometry: IGeometry;
};
'geometryRemove': {
geometry: IGeometry;
};
'textureAdd': {
texture: ITexture;
};
'textureRemove': {
texture: ITexture;
};
'lightAdd': {
light: ILight;
};
'lightRemove': {
light: ILight;
};
'dispose': object;
}
/**
* Manages 3D objects, materials, geometries, textures, and videos in a scene.
*/
export declare class Object3DManager extends EventDispatcher<Object3DManagerEventMap> {
private _root;
private _objects;
private _objectExtensions;
private _materials;
private _geometries;
private _textures;
private _videos;
private _lights;
autoDisposeTextures: boolean;
autoDisposeMaterials: boolean;
autoDisposeGeometries: boolean;
autoDisposeObjects: boolean;
constructor();
onPostFrame(timeline: {
time: number;
running: boolean;
}): void;
setRoot(root: IObject3D): void;
registerObject(obj: IObject3D): void;
unregisterObject(obj: IObject3D): boolean;
registerObjectExtension(ext: IObjectExtension): void;
unregisterObjectExtension(ext: IObjectExtension): void;
private _rootChanged;
private _materialChanged;
private _geometryChanged;
private _registerMaterials;
private _unregisterMaterials;
private _registerMaterial;
private _unregisterMaterial;
private _texturesChanged;
private _textureChanged;
private _registerGeometry;
private _unregisterGeometry;
private _registerTexture;
private _unregisterTexture;
private _registerVideo;
findObject(nameOrUuid: string): IObject3D | undefined;
findObjectsByName(name: string): IObject3D[];
findMaterial(nameOrUuid: string): IMaterial | undefined;
findMaterialsByName(name: string): IMaterial[];
dispose(): void;
static readonly MaterialTextureProperties: Set<string>;
static readonly MaterialTexturePropertiesUserData: Set<string>;
static readonly SceneTextureProperties: Set<string>;
static readonly Object3DTextureProperties: Set<string>;
getObjects(): IObject3D<IObject3DEventMap, IGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap> | undefined, IMaterial<IMaterialEventMap> | IMaterial<IMaterialEventMap>[] | undefined>[];
getObject(uuid: string): IObject3D<IObject3DEventMap, IGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap> | undefined, IMaterial<IMaterialEventMap> | IMaterial<IMaterialEventMap>[] | undefined> | undefined;
getObjectExtensions(): IObjectExtension[];
getMaterials(): IMaterial<IMaterialEventMap>[];
getMaterial(uuid: string): IMaterial<IMaterialEventMap> | undefined;
getGeometries(): IGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap>[];
getGeometry(uuid: string): IGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap> | undefined;
getTextures(): ITexture<import('three').TextureEventMap>[];
getTexture(uuid: string): ITexture<import('three').TextureEventMap> | undefined;
getVideos(): (VideoTexture & ITexture<import('three').TextureEventMap>)[];
getVideo(uuid: string): (VideoTexture & ITexture<import('three').TextureEventMap>) | undefined;
getLights(): ILight<import('three').LightShadow<import('three').Camera<import('three').Object3DEventMap>> | undefined, IObject3DEventMap>[];
getLight(uuid: string): ILight<import('three').LightShadow<import('three').Camera<import('three').Object3DEventMap>> | undefined, IObject3DEventMap> | undefined;
}
declare module 'three' {
interface VideoTexture {
_playid?: number;
}
}
//# sourceMappingURL=../src/assetmanager/Object3DManager.d.ts.map