zoom de la cámara en threeJS sin controles de trackball u otra biblioteca de control de cámara

Estoy tratando de usar threeJS para controlar una cámara en mi escena. Actualmente tengo la cámara configurada para orbitar en un círculo alrededor de mi objeto con las teclas izquierda y derecha de mi teclado. Pero, ¿alguien sabe cómo hacer zoom? Aquí está mi código actual:

<code>camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.set(0,20,35);
var rotSpeed = .02;

function checkRotation(){

    var x = camera.position.x,
        y = camera.position.y,
        z = camera.position.z;

    if (keyboard.pressed("left")){ //MH - find a way to do this in a switch statement 
        camera.position.x = x * Math.cos(rotSpeed) + z * Math.sin(rotSpeed);
        camera.position.z = z * Math.cos(rotSpeed) - x * Math.sin(rotSpeed);
    } else if (keyboard.pressed("right")){
        camera.position.x = x * Math.cos(rotSpeed) - z * Math.sin(rotSpeed);
        camera.position.z = z * Math.cos(rotSpeed) + x * Math.sin(rotSpeed);
    } else if(keyboard.pressed("up")){
        //zoom in
    } else if (keyboard.pressed("down")){
        //zoom out
    }

    camera.lookAt(scene.position);

}
</code>

Respuestas a la pregunta(2)

Su respuesta a la pregunta