added preserveFocalLength property to PerspectiveProjection and updated focusLength properties