Accelstepper zero position

At what point in the execution of a program running accelstepper does it zero the present coordinate? Is there a call to zero the present position? Or does it just assume its at zero when the program starts up?

I'm trying to figure out how after I drive the motors to the home position, trigger a switch and the motors stop, that I then somehow zero the current position for the purposes of accelstepper's position based control.

I currently have a function with a for loop that moves all the steppers to home and then stops them when it trigger it. Is there a better way to move them to home using accelstepper and reset the axis to zero?

In the AccelStepper class reference you will find the setCurrentPosition function.

When AccelStepper starts it has no idea where the motors are, hence the need to home the motors and set the homed position to 0 (or some reference position).