UNPKG

@polygonjs/polygonjs

Version:

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

67 lines (66 loc) 2.62 kB
"use strict"; import { TypedThreejsCameraObjNode, ThreejsCameraTransformParamConfig, CameraMainCameraParamConfig } from "./_BaseCamera"; import { NodeParamsConfig } from "../utils/params/ParamsConfig"; import { CameraRenderParamConfig } from "./utils/cameras/RenderController"; import { LayerParamConfig } from "./utils/LayersController"; import { TransformedParamConfig } from "./utils/TransformController"; import { CameraNodeType } from "../../poly/NodeContext"; import { CameraPostProcessParamConfig } from "./utils/cameras/PostProcessParamOptions"; import { OrthographicCameraParamConfigMixin, ORTHOGRAPHIC_CAMERA_DEFAULT, registerOrthographicCamera } from "../../../core/camera/CoreOrthographicCamera"; import { CORE_CAMERA_DEFAULT } from "../../../core/camera/CoreCamera"; import { CoreCameraFrameParamConfig } from "../../../core/camera/CoreCameraFrameMode"; import { OrthographicCameraSopOperation } from "../../operations/sop/OrthographicCamera"; class OrthographicCameraObjParamConfig extends CameraPostProcessParamConfig( CameraRenderParamConfig( LayerParamConfig( CameraMainCameraParamConfig( CoreCameraFrameParamConfig( OrthographicCameraParamConfigMixin( ThreejsCameraTransformParamConfig( TransformedParamConfig(NodeParamsConfig, { matrixAutoUpdate: true }) ) ) ) ) ) ) ) { } const ParamsConfig = new OrthographicCameraObjParamConfig(); export class OrthographicCameraObjNode extends TypedThreejsCameraObjNode { constructor() { super(...arguments); this.paramsConfig = ParamsConfig; } static type() { return CameraNodeType.ORTHOGRAPHIC; } createObject() { const camera = OrthographicCameraSopOperation.createCamera( { size: this.pv.size, ...CORE_CAMERA_DEFAULT }, this ); OrthographicCameraSopOperation.setCameraAttributes(camera, { size: this.pv.size }); return camera; } updateCamera() { const { size } = this.pv; this._object.left = ORTHOGRAPHIC_CAMERA_DEFAULT.left * size; this._object.right = ORTHOGRAPHIC_CAMERA_DEFAULT.right * size; this._object.top = ORTHOGRAPHIC_CAMERA_DEFAULT.top * size; this._object.bottom = ORTHOGRAPHIC_CAMERA_DEFAULT.bottom * size; OrthographicCameraSopOperation.setCameraAttributes(this._object, this.pv); this._object.updateProjectionMatrix(); } // protected override _updateForAspectRatio() { // CoreCameraOrthographicFrameMode.updateCameraAspect(this._object, this._aspect); // } } OrthographicCameraObjNode.onRegister = registerOrthographicCamera;