85 return {
T(
x()),
T(
y()),
T(
z())};
187 return {-a.
xyz_.x, -a.xyz_.y, -a.xyz_.z};
219 explicit Swizzle(
Euler3Base &eul) : eul_(eul){};
231 return {eul_.
i(), eul_.
j(), eul_.
k()};
236 return {
T(eul_.
i()),
T(eul_.
j()),
T(eul_.
k())};
248 template<
typename AngleU>
250 :
EulerBase<T>(angles_xyz), order_(order){};
282 return Swizzle{*
this};
286 return {
i(),
j(),
k()};
334 return {-a.
xyz_, a.order_};
339 friend std::ostream &operator<<(std::ostream &stream, const
Euler3Base &
rot)
341 return stream <<
"Euler3_" <<
rot.order_ <<
rot.xyz_;
#define BLI_assert_unreachable()
#define BLI_STRUCT_EQUALITY_OPERATORS_1(Type, m)
#define BLI_STRUCT_EQUALITY_OPERATORS_2(Type, m1, m2)
static double angle(const Eigen::Vector3d &v1, const Eigen::Vector3d &v2)
std::ostream & operator<<(std::ostream &stream, EulerOrder order)
static AngleRadianBase identity()
Euler3Base(const AngleT &x, const AngleT &y, const AngleT &z, EulerOrder order)
Euler3Base(EulerOrder order)
Euler3Base wrapped_around(const Euler3Base &reference) const
Euler3Base(const Axis axis, AngleT angle, EulerOrder order)
const EulerOrder & order() const
const VecBase< AngleT, 3 > ijk() const
friend Euler3Base operator-(const Euler3Base &a)
Euler3Base(const VecBase< AngleU, 3 > &angles_xyz, EulerOrder order)
VecBase< AngleT, 3 > & xyz()
const VecBase< AngleT, 3 > & xyz() const
EulerBase(const VecBase< T, 3 > &vec)
VecBase< AngleT, 3 > xyz_
EulerBase(const VecBase< AngleT, 3 > &vec)
EulerBase(const AngleT &x, const AngleT &y, const AngleT &z)
EulerXYZBase wrapped() const
EulerXYZBase(const AngleT &x, const AngleT &y, const AngleT &z)
EulerXYZBase wrapped_around(const EulerXYZBase &reference) const
EulerXYZBase(const Axis axis, const AngleT &angle)
friend EulerXYZBase operator-(const EulerXYZBase &a)
static EulerXYZBase identity()
EulerXYZBase(const VecBase< AngleU, 3 > &vec)