UNPKG

@polygonjs/polygonjs

Version:

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

55 lines (54 loc) 2.21 kB
import { Material, Scene, Camera, Object3D, BufferGeometry, WebGLRenderer, Mesh, WebGLRenderTarget, RenderTargetOptions, Vector3, Matrix4 } from 'three'; import { CoreRenderBlur } from '../../../core/render/Blur'; import { AbstractRenderer } from '../../../engine/viewers/Common'; export interface BaseReflectorOptions { renderer?: AbstractRenderer; pixelRatio: number; multisamples: number; clipBias: number; active: boolean; tblur: boolean; blur: number; verticalBlurMult: number; tblur2: boolean; blur2: number; verticalBlur2Mult: number; scene: Scene; } export declare const renderTargetParams: RenderTargetOptions; export declare abstract class BaseReflector<TGeometry extends BufferGeometry, TMaterial extends Material> extends Mesh<TGeometry, TMaterial> { geometry: TGeometry; protected _options: BaseReflectorOptions; static REFLECTOR_DEFAULT_UP: Vector3; type: string; private reflectorPlane; private normal; private reflectorWorldPosition; private cameraWorldPosition; private rotationMatrix; private lookAtPosition; private clipPlane; private view; private target; private q; protected textureMatrix: Matrix4; private virtualCamera; protected renderTarget: WebGLRenderTarget | undefined; material: TMaterial; protected _coreRenderBlur: CoreRenderBlur | undefined; onBeforeRender: (renderer: WebGLRenderer, scene: Scene, anyCamera: Camera) => void; protected _mirrorCameraMultipliedByMatrixWorld: boolean; constructor(geometry: TGeometry, _options: BaseReflectorOptions); private _createRenderTarget; protected abstract _createMaterial(): TMaterial; protected abstract _assignMaterialRenderTarget(): void; dispose(): void; private _onWindowResizeBound; private _addWindowResizeEvent; private _removeWindowResizeEvent; private _onWindowResize; private _getRendererSize; static rotateGeometry(geometry: BufferGeometry, direction: Vector3): void; static compensateGeometryRotation(object: Object3D, direction: Vector3): void; protected _onBeforeRender(renderer: WebGLRenderer, scene: Scene, anyCamera: Camera): void; }