Blender V5.0
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 ()
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.

◆ 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

Definition at line 305 of file BLI_math_euler_types.hh.

◆ 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.

Referenced by blender::math::Euler3Base< float >::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::detail::from_rotation(), and blender::math::to_quaternion().

◆ ijk() [2/2]

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

Definition at line 284 of file BLI_math_euler_types.hh.

◆ j() [1/2]

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

Definition at line 309 of file BLI_math_euler_types.hh.

◆ j() [2/2]

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

◆ j_index()

◆ k() [1/2]

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

Definition at line 313 of file BLI_math_euler_types.hh.

◆ k() [2/2]

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

◆ k_index()

◆ order()

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

◆ 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.

Referenced by blender::math::detail::from_rotation(), 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.

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

◆ 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: