@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
37 lines (36 loc) • 1.13 kB
JavaScript
;
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;
}
);
};