ProtoTracer  1.0
Real-time 3D rendering and animation engine
Loading...
Searching...
No Matches
EulerConstants.h
Go to the documentation of this file.
1/**
2 * @file EulerConstants.h
3 * @brief Provides predefined constants for common Euler rotation orders.
4 *
5 * The `EulerConstants` namespace defines a collection of commonly used Euler rotation orders,
6 * split into static (inertial) and rotating (non-inertial) reference frames.
7 *
8 * @date 22/12/2024
9 * @version 1.0
10 * @author Coela Can't
11 */
12
13#pragma once
14
15#include "EulerOrder.h"
16#include "Vector3D.h"
17
18/**
19 * @namespace EulerConstants
20 * @brief A collection of predefined constants for Euler rotation orders.
21 *
22 * The `EulerConstants` namespace contains a variety of `EulerOrder` configurations
23 * commonly used in 3D rotations. These orders are grouped into two categories:
24 * - Static frame of reference (inertial).
25 * - Rotating frame of reference (non-inertial).
26 */
27namespace EulerConstants {
28
29// Static frame of reference, inertial reference frame
30extern const EulerOrder EulerOrderXYZS; ///< Order: X → Y → Z, static frame.
31extern const EulerOrder EulerOrderXZYS; ///< Order: X → Z → Y, static frame.
32extern const EulerOrder EulerOrderYZXS; ///< Order: Y → Z → X, static frame.
33extern const EulerOrder EulerOrderYXZS; ///< Order: Y → X → Z, static frame.
34extern const EulerOrder EulerOrderZXYS; ///< Order: Z → X → Y, static frame.
35extern const EulerOrder EulerOrderZYXS; ///< Order: Z → Y → X, static frame.
36
37// Rotating frame of reference, non-inertial reference frame
38extern const EulerOrder EulerOrderZYXR; ///< Order: Z → Y → X, rotating frame.
39extern const EulerOrder EulerOrderYZXR; ///< Order: Y → Z → X, rotating frame.
40extern const EulerOrder EulerOrderXZYR; ///< Order: X → Z → Y, rotating frame.
41extern const EulerOrder EulerOrderZXYR; ///< Order: Z → X → Y, rotating frame.
42extern const EulerOrder EulerOrderYXZR; ///< Order: Y → X → Z, rotating frame.
43extern const EulerOrder EulerOrderXYZR; ///< Order: X → Y → Z, rotating frame.
44
45} // namespace EulerConstants
Defines the EulerOrder class for specifying rotation orders in 3D space.
Defines a 3D vector and various related operations.
Specifies the order and frame of reference for Euler rotations.
Definition EulerOrder.h:25
A collection of predefined constants for Euler rotation orders.
const EulerOrder EulerOrderXYZR
Order: X → Y → Z, rotating frame.
const EulerOrder EulerOrderYXZS
Order: Y → X → Z, static frame.
const EulerOrder EulerOrderZXYS
Order: Z → X → Y, static frame.
const EulerOrder EulerOrderYZXS
Order: Y → Z → X, static frame.
const EulerOrder EulerOrderXYZS
Order: X → Y → Z, static frame.
const EulerOrder EulerOrderZXYR
Order: Z → X → Y, rotating frame.
const EulerOrder EulerOrderXZYS
Order: X → Z → Y, static frame.
const EulerOrder EulerOrderYXZR
Order: Y → X → Z, rotating frame.
const EulerOrder EulerOrderZYXS
Order: Z → Y → X, static frame.
const EulerOrder EulerOrderXZYR
Order: X → Z → Y, rotating frame.
const EulerOrder EulerOrderYZXR
Order: Y → Z → X, rotating frame.
const EulerOrder EulerOrderZYXR
Order: Z → Y → X, rotating frame.