UNPKG

polygonjs-engine

Version:

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

167 lines (166 loc) 10.7 kB
import { Constructor, valueof } from '../../../types/GlobalTypes'; import { Camera } from 'three/src/cameras/Camera'; import { ThreejsCameraControlsController } from './utils/cameras/ControlsController'; import { LayersController } from './utils/LayersController'; import { PostProcessController } from './utils/cameras/PostProcessController'; import { RenderController } from './utils/cameras/RenderController'; import { TransformController } from './utils/TransformController'; import { ChildrenDisplayController } from './utils/ChildrenDisplayController'; import { DisplayNodeController } from '../utils/DisplayNodeController'; import { NodeContext } from '../../poly/NodeContext'; import { ThreejsViewer, ThreejsViewerProperties } from '../../viewers/Threejs'; import { FlagsControllerD } from '../utils/FlagsController'; import { BaseParamType } from '../../params/_Base'; import { BaseNodeType } from '../_Base'; import { BaseSopNodeType } from '../sop/_Base'; import { TypedObjNode } from './_Base'; import { BaseViewerType } from '../../viewers/_Base'; import { HierarchyController } from './utils/HierarchyController'; import { GeoNodeChildrenMap } from '../../poly/registers/nodes/Sop'; import { ParamsInitData } from '../utils/io/IOController'; import { Raycaster } from 'three/src/core/Raycaster'; import { Vector2 } from 'three/src/math/Vector2'; export interface OrthoOrPerspCamera extends Camera { near: number; far: number; updateProjectionMatrix: () => void; getFocalLength?: () => void; } export declare const BASE_CAMERA_DEFAULT: { near: number; far: number; }; export declare enum UpdateFromControlsMode { ON_END = "on move end", ALWAYS = "always", NEVER = "never" } export declare const UPDATE_FROM_CONTROLS_MODES: UpdateFromControlsMode[]; import { NodeParamsConfig } from '../utils/params/ParamsConfig'; export declare function CameraMasterCameraParamConfig<TBase extends Constructor>(Base: TBase): { new (...args: any[]): { setMasterCamera: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BUTTON>; }; } & TBase; export declare function ThreejsCameraTransformParamConfig<TBase extends Constructor>(Base: TBase): { new (...args: any[]): { camera: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FOLDER>; controls: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.NODE_PATH>; updateFromControlsMode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.INTEGER>; near: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>; far: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>; display: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>; }; } & TBase; declare const BaseCameraObjParamsConfig_base: { new (...args: any[]): { setMasterCamera: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BUTTON>; }; } & typeof NodeParamsConfig; export declare class BaseCameraObjParamsConfig extends BaseCameraObjParamsConfig_base { } declare const BaseThreejsCameraObjParamsConfig_base: { new (...args: any[]): { doPostProcess: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>; postProcessNode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.NODE_PATH>; }; } & { new (...args: any[]): { render: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FOLDER>; setScene: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>; scene: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.OPERATOR_PATH>; setRenderer: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>; renderer: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.OPERATOR_PATH>; setCssRenderer: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>; cssRenderer: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.OPERATOR_PATH>; }; } & { new (...args: any[]): { transform: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FOLDER>; keepPosWhenParenting: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>; rotationOrder: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.INTEGER>; t: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.VECTOR3>; r: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.VECTOR3>; s: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.VECTOR3>; scale: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>; matrixAutoUpdate: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>; updateTransformFromObject: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BUTTON>; tlookAt: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>; lookAtPos: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.VECTOR3>; up: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.VECTOR3>; }; } & { new (...args: any[]): { layer: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.INTEGER>; }; } & { new (...args: any[]): { camera: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FOLDER>; controls: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.NODE_PATH>; updateFromControlsMode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.INTEGER>; near: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>; far: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.FLOAT>; display: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BOOLEAN>; }; } & { new (...args: any[]): { setMasterCamera: import("../utils/params/ParamsConfig").ParamTemplate<import("../../poly/ParamType").ParamType.BUTTON>; }; } & typeof NodeParamsConfig; export declare class BaseThreejsCameraObjParamsConfig extends BaseThreejsCameraObjParamsConfig_base { } export declare abstract class TypedCameraObjNode<O extends OrthoOrPerspCamera, K extends BaseCameraObjParamsConfig> extends TypedObjNode<O, K> { readonly render_order: number; protected _object: O; protected _aspect: number; get object(): O; cook(): Promise<void>; on_create(): void; on_delete(): void; prepare_raycaster(mouse: Vector2, raycaster: Raycaster): void; camera(): O; update_camera(): void; static PARAM_CALLBACK_setMasterCamera(node: BaseCameraObjNodeType): void; set_as_master_camera(): void; setup_for_aspect_ratio(aspect: number): void; protected _update_for_aspect_ratio(): void; update_transform_params_from_object(): void; abstract createViewer(element: HTMLElement): BaseViewerType; static PARAM_CALLBACK_update_from_param(node: BaseCameraObjNodeType, param: BaseParamType): void; } export declare class TypedThreejsCameraObjNode<O extends OrthoOrPerspCamera, K extends BaseThreejsCameraObjParamsConfig> extends TypedCameraObjNode<O, K> { readonly flags: FlagsControllerD; readonly hierarchy_controller: HierarchyController; readonly transform_controller: TransformController; protected _controls_controller: ThreejsCameraControlsController | undefined; get controls_controller(): ThreejsCameraControlsController; protected _layers_controller: LayersController | undefined; get layers_controller(): LayersController; protected _render_controller: RenderController | undefined; get renderController(): RenderController; protected _post_process_controller: PostProcessController | undefined; get post_process_controller(): PostProcessController; readonly children_display_controller: ChildrenDisplayController; readonly display_node_controller: DisplayNodeController; protected _children_controller_context: NodeContext; initializeBaseNode(): void; createNode<S extends keyof GeoNodeChildrenMap>(node_class: S, params_init_value_overrides?: ParamsInitData): GeoNodeChildrenMap[S]; createNode<K extends valueof<GeoNodeChildrenMap>>(node_class: Constructor<K>, params_init_value_overrides?: ParamsInitData): K; children(): BaseSopNodeType[]; nodesByType<K extends keyof GeoNodeChildrenMap>(type: K): GeoNodeChildrenMap[K][]; prepare_raycaster(mouse: Vector2, raycaster: Raycaster): void; cook(): Promise<void>; static PARAM_CALLBACK_update_near_far_from_param(node: BaseThreejsCameraObjNodeType, param: BaseParamType): void; update_near_far(): void; setup_for_aspect_ratio(aspect: number): void; createViewer(element: HTMLElement, viewer_properties?: ThreejsViewerProperties): ThreejsViewer; static PARAM_CALLBACK_reset_effects_composer(node: BaseThreejsCameraObjNodeType): void; } export declare type BaseCameraObjNodeType = TypedCameraObjNode<OrthoOrPerspCamera, BaseCameraObjParamsConfig>; export declare abstract class BaseCameraObjNodeClass extends TypedCameraObjNode<OrthoOrPerspCamera, BaseCameraObjParamsConfig> { } export declare type BaseThreejsCameraObjNodeType = TypedThreejsCameraObjNode<OrthoOrPerspCamera, BaseThreejsCameraObjParamsConfig>; export declare class BaseThreejsCameraObjNodeClass extends TypedThreejsCameraObjNode<OrthoOrPerspCamera, BaseThreejsCameraObjParamsConfig> { PARAM_CALLBACK_update_effects_composer(node: BaseNodeType): void; } export {};