template<class T>
Magnum::SceneGraph::AbstractBasicTranslationRotation3D class

Base transformation for three-dimensional scenes supporting translation and rotation.

See Polymorphic access to object transformation for more information.

Base classes

template<UnsignedInt dimensions, class T, class TranslationType = T>
class AbstractTranslation<T>
Base transformation for two-dimensional scenes supporting translation.

Derived classes

template<class T>
class AbstractBasicTranslationRotationScaling3D
Base transformation for three-dimensional scenes supporting translation, rotation and scaling.
template<class T>
class BasicDualQuaternionTransformation
Three-dimensional transformation implemented using dual quaternions.
template<class T>
class BasicRigidMatrixTransformation3D
Three-dimensional rigid transformation implemented using matrices.

Public functions

auto rotate(const Math::Quaternion<T>& quaternion) -> AbstractBasicTranslationRotation3D<T>& new in 2020.06
Rotate the object using a quaternion.
auto rotateLocal(const Math::Quaternion<T>& quaternion) -> AbstractBasicTranslationRotation3D<T>& new in 2020.06
Rotate the object using a quaternion as a local transformation.
auto rotate(Math::Rad<T> angle, const Math::Vector3<T>& normalizedAxis) -> AbstractBasicTranslationRotation3D<T>&
Rotate the object.
auto rotateLocal(Math::Rad<T> angle, const Math::Vector3<T>& normalizedAxis) -> AbstractBasicTranslationRotation3D<T>&
Rotate the object as a local transformation.
auto rotateX(Math::Rad<T> angle) -> AbstractBasicTranslationRotation3D<T>&
Rotate the object around X axis.
auto rotateXLocal(Math::Rad<T> angle) -> AbstractBasicTranslationRotation3D<T>&
Rotate the object around X axis as a local transformation.
auto rotateY(Math::Rad<T> angle) -> AbstractBasicTranslationRotation3D<T>&
Rotate the object around Y axis.
auto rotateYLocal(Math::Rad<T> angle) -> AbstractBasicTranslationRotation3D<T>&
Rotate the object around Y axis as a local transformation.
auto rotateZ(Math::Rad<T> angle) -> AbstractBasicTranslationRotation3D<T>&
Rotate the object around Z axis.
auto rotateZLocal(Math::Rad<T> angle) -> AbstractBasicTranslationRotation3D<T>&
Rotate the object around Z axis as a local transformation.

Private functions

void doRotate(const Math::Quaternion<T>&) pure virtual new in 2020.06
Polymorphic implementation for rotate(const Math::Quaternion<T>&)
void doRotateLocal(const Math::Quaternion<T>&) pure virtual new in 2020.06
Polymorphic implementation for rotateLocal(const Math::Quaternion<T>&)
void doRotate(Math::Rad<T> angle, const Math::Vector3<T>& normalizedAxis) pure virtual
Polymorphic implementation for rotate(Math::Rad<T>, const Math::Vector3<T>&)
void doRotateLocal(Math::Rad<T> angle, const Math::Vector3<T>& normalizedAxis) pure virtual
Polymorphic implementation for rotateLocal(Math::Rad<T>, const Math::Vector3<T>&)
void doRotateX(Math::Rad<T> angle) virtual
Polymorphic implementation for rotateX()
void doRotateXLocal(Math::Rad<T> angle) virtual
Polymorphic implementation for rotateXLocal()
void doRotateY(Math::Rad<T> angle) virtual
Polymorphic implementation for rotateY()
void doRotateYLocal(Math::Rad<T> angle) virtual
Polymorphic implementation for rotateYLocal()
void doRotateZ(Math::Rad<T> angle) virtual
Polymorphic implementation for rotateZ()
void doRotateZLocal(Math::Rad<T> angle) virtual
Polymorphic implementation for rotateZLocal()

Function documentation

template<class T>
AbstractBasicTranslationRotation3D<T>& Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::rotate(const Math::Quaternion<T>& quaternion) new in 2020.06

Rotate the object using a quaternion.

Parameters
quaternion Normalized quaternion
Returns Reference to self (for method chaining)

Expects that the quaternion is normalized.

template<class T>
AbstractBasicTranslationRotation3D<T>& Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::rotateLocal(const Math::Quaternion<T>& quaternion) new in 2020.06

Rotate the object using a quaternion as a local transformation.

Similar to the above, except that the transformation is applied before all others.

template<class T>
AbstractBasicTranslationRotation3D<T>& Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::rotate(Math::Rad<T> angle, const Math::Vector3<T>& normalizedAxis)

Rotate the object.

Parameters
angle Angle (counterclockwise)
normalizedAxis Normalized rotation axis
Returns Reference to self (for method chaining)

template<class T>
AbstractBasicTranslationRotation3D<T>& Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::rotateLocal(Math::Rad<T> angle, const Math::Vector3<T>& normalizedAxis)

Rotate the object as a local transformation.

Similar to the above, except that the transformation is applied before all others.

template<class T>
AbstractBasicTranslationRotation3D<T>& Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::rotateX(Math::Rad<T> angle)

Rotate the object around X axis.

Parameters
angle Angle (counterclockwise)
Returns Reference to self (for method chaining)

In some implementations faster than calling rotate(angle, Vector3::xAxis()), see subclasses for more information.

template<class T>
AbstractBasicTranslationRotation3D<T>& Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::rotateXLocal(Math::Rad<T> angle)

Rotate the object around X axis as a local transformation.

Similar to the above, except that the transformation is applied before all others. In some implementations faster than calling rotateLocal(angle, Vector3::xAxis()), see subclasses for more information.

template<class T>
AbstractBasicTranslationRotation3D<T>& Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::rotateY(Math::Rad<T> angle)

Rotate the object around Y axis.

Parameters
angle Angle (counterclockwise)
Returns Reference to self (for method chaining)

In some implementations faster than calling rotate(angle, Vector3::yAxis()), see subclasses for more information.

template<class T>
AbstractBasicTranslationRotation3D<T>& Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::rotateYLocal(Math::Rad<T> angle)

Rotate the object around Y axis as a local transformation.

Similar to the above, except that the transformation is applied before all others. In some implementations faster than calling rotateLocal(angle, Vector3::yAxis()), see subclasses for more information.

template<class T>
AbstractBasicTranslationRotation3D<T>& Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::rotateZ(Math::Rad<T> angle)

Rotate the object around Z axis.

Parameters
angle Angle (counterclockwise)
Returns Reference to self (for method chaining)

In some implementations faster than calling rotate(angle, Vector3::zAxis()), see subclasses for more information.

template<class T>
AbstractBasicTranslationRotation3D<T>& Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::rotateZLocal(Math::Rad<T> angle)

Rotate the object around Z axis as a local transformation.

Similar to the above, except that the transformation is applied before all others. In some implementations faster than calling rotateLocal(angle, Vector3::zAxis()), see subclasses for more information.

template<class T>
void Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::doRotateX(Math::Rad<T> angle) virtual private

Polymorphic implementation for rotateX()

Default implementation calls rotate() with Math::Vector3::xAxis().

template<class T>
void Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::doRotateXLocal(Math::Rad<T> angle) virtual private

Polymorphic implementation for rotateXLocal()

Default implementation calls rotateLocal() with Math::Vector3::xAxis().

template<class T>
void Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::doRotateY(Math::Rad<T> angle) virtual private

Polymorphic implementation for rotateY()

Default implementation calls rotate() with Math::Vector3::yAxis().

template<class T>
void Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::doRotateYLocal(Math::Rad<T> angle) virtual private

Polymorphic implementation for rotateYLocal()

Default implementation calls rotateLocal() with Math::Vector3::yAxis().

template<class T>
void Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::doRotateZ(Math::Rad<T> angle) virtual private

Polymorphic implementation for rotateZ()

Default implementation calls rotate() with Math::Vector3::zAxis().

template<class T>
void Magnum::SceneGraph::AbstractBasicTranslationRotation3D<T>::doRotateZLocal(Math::Rad<T> angle) virtual private

Polymorphic implementation for rotateZLocal()

Default implementation calls rotateLocal() with Math::Vector3::zAxis().