40 static const int DIMS = 2;
45 constexpr const T&
tran()
const {
return c0; }
48 constexpr const T&
vert()
const {
return c1; }
52 constexpr const T&
rad_r()
const {
return c0; }
54 constexpr const T&
rad_z()
const {
return c1; }
58 constexpr const T&
se_y()
const {
return c0; }
60 constexpr const T&
se_z()
const {
return c1; }
64 constexpr const T&
z_up_y()
const {
return c0; }
66 constexpr const T&
z_up_z()
const {
return c1; }
70 constexpr const T&
ee_x()
const {
return c0; }
72 constexpr const T&
ee_y()
const {
return c1; }
76 constexpr const T&
y_up_x()
const {
return c0; }
78 constexpr const T&
y_up_y()
const {
return c1; }
98 template <
typename OtherT>
111 template <
typename T0,
typename T1>
112 constexpr Vec(
const std::pair<T0,T1>& comp): c0(comp.first), c1(comp.second) {}
119 template <
typename InputIteratorType>
156 template <
typename OtherT>
165 template <
typename OtherT,
typename SuprType>
174 template <
typename OtherT>
183 template <
typename OtherT>
213 template <
typename OtherT>
215 return Vec<2,
decltype(this->c0 + other.c0)>(c0 + other.c0, c1 + other.c1);
234 template <
typename OtherT>
236 return Vec<2,
decltype(this->c0 - other.c0)>(c0 - other.c0, c1 - other.c1);
255 template <
typename OtherT>
337 template <
typename OtherT>
349 operator[](i) = -operator[](i);
381 template<
class OT>
inline