added Vec3.orientedAngle()