UNPKG

@polygonjs/polygonjs

Version:

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

37 lines (36 loc) 1.13 kB
"use strict"; import { OrthographicCamera } from "three"; import { ParamConfig } from "../../engine/nodes/utils/params/ParamsConfig"; import { CameraNodeType } from "../../engine/poly/NodeContext"; import { ThreejsViewer } from "../../engine/viewers/Threejs"; import { CoreCameraOrthographicFrameMode } from "./frameMode/CoreCameraOrthographicFrameMode"; export const ORTHOGRAPHIC_CAMERA_DEFAULT = { left: -0.5, right: 0.5, top: 0.5, bottom: -0.5 }; export function OrthographicCameraParamConfigMixin(Base) { return class Mixin extends Base { constructor() { super(...arguments); /** @param size */ this.size = ParamConfig.FLOAT(1); } }; } export const registerOrthographicCamera = (poly) => { poly.registerCameraNodeType(CameraNodeType.ORTHOGRAPHIC); poly.registerCamera( OrthographicCamera, (options) => { const viewer = new ThreejsViewer({ ...options, updateCameraAspect: (aspect, resolution) => { CoreCameraOrthographicFrameMode.updateCameraAspect(options.camera, aspect, { resolution }); } }); return viewer; } ); };