UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

57 lines (56 loc) 2.2 kB
import { ColorRepresentation, PerspectiveCamera, RectAreaLight, SpotLight } from 'three'; export interface PerspectiveCameraOptions { fov: number; aspect: number; near: number; far: number; } type PerspectiveCameraConstructor = (options: PerspectiveCameraOptions) => PerspectiveCamera; export interface PerspectiveCameraUpdateOptions<C extends PerspectiveCamera> { camera: C; params: { apertureBlades: number; fStop: number; focusDistance: number; apertureRotation: number; anamorphicRatio: number; }; } export type PerspectiveCameraUpdate<C extends PerspectiveCamera> = (options: PerspectiveCameraUpdateOptions<C>) => void; export interface AreaLightOptions { color: ColorRepresentation; intensity: number; width: number; height: number; } type AreaLightConstructor = (options: AreaLightOptions) => RectAreaLight; type SpotLightConstructor = () => SpotLight; export interface SpotLightUpdateOptions<L extends SpotLight> { spotLight: L; textureName: string; } export type SpotLightUpdate<L extends SpotLight> = (options: SpotLightUpdateOptions<L>) => void; export declare enum GeneratorName { PERSPECTIVE_CAMERA = "perspectiveCamera", PERSPECTIVE_CAMERA_UPDATE = "perspectiveCameraUpdate", AREA_LIGHT = "areaLight", SPOT_LIGHT = "spotLight", SPOT_LIGHT_UPDATE = "spotLightUpdate" } type GeneratorMap = { [GeneratorName.PERSPECTIVE_CAMERA]: PerspectiveCameraConstructor; [GeneratorName.PERSPECTIVE_CAMERA_UPDATE]: PerspectiveCameraUpdate<PerspectiveCamera>; [GeneratorName.AREA_LIGHT]: AreaLightConstructor; [GeneratorName.SPOT_LIGHT]: SpotLightConstructor; [GeneratorName.SPOT_LIGHT_UPDATE]: SpotLightUpdate<SpotLight>; }; declare class CoreSceneObjectsFactoryClass { private constructor(); private static _instance; static instance(): CoreSceneObjectsFactoryClass; private _generators; generator<G extends GeneratorName>(generatorName: G): GeneratorMap[G]; registerGenerator<G extends GeneratorName>(generatorName: G, generator: GeneratorMap[G]): void; } export declare const CoreSceneObjectsFactory: CoreSceneObjectsFactoryClass; export {};