update PPolar impl for Vec3, make theta always positive (0…2π)