setFov(fov) {
        fov = isNaN(fov) ? this.fov : parseFloat(fov);

        // clamp between 1 and 179
        fov = Math.max(1, Math.min(fov, 179));

        if(fov !== this.fov) {
            this.fov = fov;
            this.setPosition();

            this._shouldUpdate = true;
        }

        this.setCSSPerspective();
    }
Sets the camera field of view
     Update the camera projection matrix only if the fov actually changed

     params:
     @fov (float, optional): field of view to use
*