core/cameras/pathTracer/PathTracerCamera.js

import {BasicCamera} from "../basic/BasicCamera.js";

import struct from "./shaders/struct.glsl";
import mapping from "./shaders/mapping.glsl";

export class PathTracerCamera extends BasicCamera {

    /**
     *
     * @param parameters
     */
    constructor(parameters) {
        super(parameters);
        /**
         * Focal length
         * @type {number}
         */
        this.focalLength = parameters.focalLength !== undefined ? parameters.focalLength : 1;
        /**
         * Aperture
         * @type {number}
         */
        this.aperture = parameters.aperture !== undefined ? parameters.aperture : 0;
    }

    /**
     * build the GLSL code needed to declare the camera
     * @param {ShaderBuilder} shaderBuilder - the shader builder
     */
    shader(shaderBuilder) {
        shaderBuilder.addClass('Camera', struct);
        shaderBuilder.addUniform('camera', 'PathTracerCamera', this);
        shaderBuilder.addChunk(mapping);
    }
}