@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
40 lines (39 loc) • 1.42 kB
JavaScript
;
import { ParamConfig } from "../../engine/nodes/utils/params/ParamsConfig";
export var CameraFrameMode = /* @__PURE__ */ ((CameraFrameMode2) => {
CameraFrameMode2["DEFAULT"] = "default";
CameraFrameMode2["COVER"] = "cover";
CameraFrameMode2["CONTAIN"] = "contain";
return CameraFrameMode2;
})(CameraFrameMode || {});
export const CAMERA_FRAME_MODES = [
"default" /* DEFAULT */,
"cover" /* COVER */,
"contain" /* CONTAIN */
];
export function CoreCameraFrameParamConfig(Base) {
return class Mixin extends Base {
constructor() {
super(...arguments);
/** @param fov adjust mode */
this.frameMode = ParamConfig.INTEGER(CAMERA_FRAME_MODES.indexOf("default" /* DEFAULT */), {
menu: {
entries: CAMERA_FRAME_MODES.map((name, value) => {
return { name, value };
})
}
});
/** @param expected aspect ratio */
this.expectedAspectRatio = ParamConfig.FLOAT("16/9", {
visibleIf: [
{ frameMode: CAMERA_FRAME_MODES.indexOf("cover" /* COVER */) },
{ frameMode: CAMERA_FRAME_MODES.indexOf("contain" /* CONTAIN */) }
],
range: [0, 2],
rangeLocked: [true, false]
});
}
// vertical_fov_range = ParamConfig.VECTOR2([0, 100], {visibleIf: {lock_width: 1}});
// horizontal_fov_range = ParamConfig.VECTOR2([0, 100], {visibleIf: {lock_width: 0}});
};
}