| 787 | template <typename T, size_t N> |
| 788 | template <size_t P> |
| 789 | auto Vector<T, N>::fromAngles(T psi, T theta) -> Enable3D<P, Vector<T, N>> { |
| 790 | Vec3F nv; |
| 791 | T cosTheta = T(cos(theta)); |
| 792 | |
| 793 | nv.x() = T(cos(psi)); |
| 794 | nv.y() = T(sin(psi)); |
| 795 | nv.x() *= cosTheta; |
| 796 | nv.y() *= cosTheta; |
| 797 | nv.z() = T(-sin(theta)); |
| 798 | return nv; |
| 799 | } |
| 800 | |
| 801 | template <typename T, size_t N> |
| 802 | template <size_t P> |