storeState() and restoreState() helped reset camera back to original and
newMeshes[0].rotate(Axis.Y, -Math.PI/2, Space.WORLD); fixed the second issue. I had to use -Math.PI/2 as Math.PI/2 rotated the camera such that the back was facing towards the camera.
If I want to control the zoom in and zoom out levels on mouse wheel do I control camera.minZ and camera.maxZ or camera.lowerRadiusLimit and camera.upperRadiusLimit?
You want to limit how deep / far the user can zoom by mouse wheel? Then RadiusLimit is what you want.
While minZ / maxZ is used if let’s say you zoom very close to mesh. At a certain point your camera will clip/cut into mesh, so that you see through. To avoid this you set minZ to lower value, that you are able to view closer on surface of mesh. maxZ can for example be increased to view meshes very far away, which are out of default maxZ value.