Blender V4.3
blender::math::Euler3Base< T > Struct Template Reference

#include <BLI_math_euler_types.hh>

Inherits blender::math::EulerBase< T >.

Public Types

using AngleT = AngleRadianBase<T>
 
- Public Types inherited from blender::math::EulerBase< T >
using AngleT = AngleRadianBase<T>
 

Public Member Functions

 Euler3Base ()=delete
 
template<typename AngleU >
 Euler3Base (const VecBase< AngleU, 3 > &angles_xyz, EulerOrder order)
 
 Euler3Base (const AngleT &x, const AngleT &y, const AngleT &z, EulerOrder order)
 
 Euler3Base (const Axis axis, AngleT angle, EulerOrder order)
 
 Euler3Base (EulerOrder order)
 
const EulerOrderorder () const
 
Swizzle ijk ()
 
const VecBase< AngleT, 3 > ijk () const
 
const AngleTi () const
 
const AngleTj () const
 
const AngleTk () const
 
AngleTi ()
 
AngleTj ()
 
AngleTk ()
 
Euler3Base wrapped_around (const Euler3Base &reference) const
 
bool parity () const
 
int i_index () const
 
int j_index () const
 
int k_index () const
 
- Public Member Functions inherited from blender::math::EulerBase< T >
 operator VecBase< AngleT, 3 > () const
 
 operator VecBase< T, 3 > () const
 
VecBase< AngleT, 3 > & xyz ()
 
const VecBase< AngleT, 3 > & xyz () const
 
const AngleTx () const
 
const AngleTy () const
 
const AngleTz () const
 
AngleTx ()
 
AngleTy ()
 
AngleTz ()
 

Friends

Euler3Base operator- (const Euler3Base &a)
 
std::ostream & operator<< (std::ostream &stream, const Euler3Base &rot)
 

Additional Inherited Members

- Protected Member Functions inherited from blender::math::EulerBase< T >
 EulerBase ()=default
 
 EulerBase (const AngleT &x, const AngleT &y, const AngleT &z)
 
 EulerBase (const VecBase< AngleT, 3 > &vec)
 
 EulerBase (const VecBase< T, 3 > &vec)
 
- Protected Attributes inherited from blender::math::EulerBase< T >
VecBase< AngleT, 3 > xyz_
 

Detailed Description

template<typename T>
struct blender::math::Euler3Base< T >

Definition at line 204 of file BLI_math_euler_types.hh.

Member Typedef Documentation

◆ AngleT

template<typename T >
using blender::math::Euler3Base< T >::AngleT = AngleRadianBase<T>

Definition at line 205 of file BLI_math_euler_types.hh.

Constructor & Destructor Documentation

◆ Euler3Base() [1/5]

template<typename T >
blender::math::Euler3Base< T >::Euler3Base ( )
delete

◆ Euler3Base() [2/5]

template<typename T >
template<typename AngleU >
blender::math::Euler3Base< T >::Euler3Base ( const VecBase< AngleU, 3 > & angles_xyz,
EulerOrder order )
inline

Create an euler rotation with order rotation ordering from a triple of radian angles in XYZ order. eg: If order is EulerOrder::ZXY then angles.z will be the angle of the first rotation.

Definition at line 249 of file BLI_math_euler_types.hh.

◆ Euler3Base() [3/5]

template<typename T >
blender::math::Euler3Base< T >::Euler3Base ( const AngleT & x,
const AngleT & y,
const AngleT & z,
EulerOrder order )
inline

Definition at line 252 of file BLI_math_euler_types.hh.

◆ Euler3Base() [4/5]

template<typename T >
blender::math::Euler3Base< T >::Euler3Base ( const Axis axis,
AngleT angle,
EulerOrder order )
inline

Create a rotation around a single euler axis and an angle.

Definition at line 258 of file BLI_math_euler_types.hh.

References angle(), and blender::math::EulerBase< T >::xyz_.

◆ Euler3Base() [5/5]

template<typename T >
blender::math::Euler3Base< T >::Euler3Base ( EulerOrder order)
inline

Defines rotation order but not the rotation values. Used for conversion from other rotation types.

Definition at line 267 of file BLI_math_euler_types.hh.

Member Function Documentation

◆ i() [1/2]

template<typename T >
AngleT & blender::math::Euler3Base< T >::i ( )
inline

◆ i() [2/2]

template<typename T >
const AngleT & blender::math::Euler3Base< T >::i ( ) const
inline

Returns the rotations angle in rotation order. eg: if rotation order is YZX then i is the Y rotation.

Definition at line 293 of file BLI_math_euler_types.hh.

References blender::math::Euler3Base< T >::i_index(), and blender::math::EulerBase< T >::xyz_.

Referenced by blender::math::Euler3Base< T >::ijk(), blender::math::detail::normalized_to_eul2(), and blender::math::to_gimbal_axis().

◆ i_index()

◆ ijk() [1/2]

template<typename T >
Swizzle blender::math::Euler3Base< T >::ijk ( )
inline

Returns the rotations angle in rotation order. eg: if rotation order is YZX then i is the Y rotation.

Definition at line 280 of file BLI_math_euler_types.hh.

Referenced by blender::math::to_quaternion().

◆ ijk() [2/2]

template<typename T >
const VecBase< AngleT, 3 > blender::math::Euler3Base< T >::ijk ( ) const
inline

◆ j() [1/2]

template<typename T >
AngleT & blender::math::Euler3Base< T >::j ( )
inline

◆ j() [2/2]

◆ j_index()

◆ k() [1/2]

template<typename T >
AngleT & blender::math::Euler3Base< T >::k ( )
inline

◆ k() [2/2]

◆ k_index()

◆ order()

template<typename T >
const EulerOrder & blender::math::Euler3Base< T >::order ( ) const
inline

Methods.

Definition at line 271 of file BLI_math_euler_types.hh.

Referenced by blender::math::detail::to_rotation().

◆ parity()

template<typename T >
bool blender::math::Euler3Base< T >::parity ( ) const
inline

Parity of axis permutation. It is considered even if axes are not shuffled (X followed by Y which in turn followed by Z). Return true if odd (shuffled) and false if even (non-shuffled).

Definition at line 352 of file BLI_math_euler_types.hh.

References BLI_assert_unreachable, blender::math::XYZ, blender::math::XZY, blender::math::YXZ, blender::math::YZX, blender::math::ZXY, and blender::math::ZYX.

Referenced by blender::math::detail::normalized_to_eul2(), and blender::math::to_quaternion().

◆ wrapped_around()

template<typename T >
Euler3Base blender::math::Euler3Base< T >::wrapped_around ( const Euler3Base< T > & reference) const
inline

Return this euler orientation but wrapped around reference.

This means the interpolation between the returned value and reference will always take the shortest path. The angle between them will not be more than pi.

Definition at line 324 of file BLI_math_euler_types.hh.

References blender::math::Euler3Base< T >::wrapped_around(), and blender::math::EulerBase< T >::xyz_.

Referenced by blender::math::to_nearest_euler(), and blender::math::Euler3Base< T >::wrapped_around().

Friends And Related Symbol Documentation

◆ operator-

template<typename T >
Euler3Base operator- ( const Euler3Base< T > & a)
friend

Operators.

Definition at line 332 of file BLI_math_euler_types.hh.

◆ operator<<

template<typename T >
std::ostream & operator<< ( std::ostream & stream,
const Euler3Base< T > & rot )
friend

Definition at line 339 of file BLI_math_euler_types.hh.


The documentation for this struct was generated from the following file: