Move camera's position in the direction of its viewport

How do I make the camera move to a position where it is looking. Currently I am able to achieve this with animation using camera’s zoom. How do I do the same with position of the camera instead of using zoom?

   class Playground
            static CreateScene(engine, canvas)
                // This creates a basic Babylon Scene object (non-mesh)
                var scene = new BABYLON.Scene(engine);
                // This creates and positions a free camera (non-mesh)
                camera = new BABYLON.ArcRotateCamera("Camera", Math.PI / 2, Math.PI / 2, 900, BABYLON.Vector3.Zero(), scene);
                // This targets the camera to scene origin
                // This attaches the camera to the canvas
                camera.attachControl(canvas, true);

BABYLON.ArcRotateCamera.prototype.moveRadiusTo = function (newVal, speed)
            var ease = new BABYLON.CubicEase();
            BABYLON.Animation.CreateAndStartAnimation('at5', this, 'radius', speed, 120, this.radius, newVal, 0, ease);

 function MoveCameraPosition()
           scene.registerBeforeRender(function ()
             camera.moveRadiusTo(5, 100); //Move camera position+5 metres here 


you can use the vector from camera.getFrontPosition(distance)

@Deltakosh thank you. Can I add it to the animation in the function above? Can you please explain how to achieve this?

Let’s do the opposite. What about you create a Playground with what we already have and try to make it work