Helios++
Helios software for LiDAR simulations
RotationOrder Class Reference

#include <RotationOrder.h>

Collaboration diagram for RotationOrder:

Public Member Functions

const std::string toString ()
 
const glm::dvec3 getA1 ()
 
const glm::dvec3 getA2 ()
 
const glm::dvec3 getA3 ()
 

Static Public Attributes

static const glm::dvec3 ZERO = glm::dvec3(0, 0, 0)
 
static const glm::dvec3 PLUS_I = glm::dvec3(1, 0, 0)
 
static const glm::dvec3 MINUS_I = glm::dvec3(-1, 0, 0)
 
static const glm::dvec3 PLUS_J = glm::dvec3(0, 1, 0)
 
static const glm::dvec3 MINUS_J = glm::dvec3(0, -1, 0)
 
static const glm::dvec3 PLUS_K = glm::dvec3(0, 0, 1)
 
static const glm::dvec3 MINUS_K = glm::dvec3(0, 0, -1)
 
static const RotationOrder XYZ = RotationOrder("XYZ", PLUS_I, PLUS_J, PLUS_K)
 
static const RotationOrder XZY = RotationOrder("XZY", PLUS_I, PLUS_K, PLUS_J)
 
static const RotationOrder YXZ = RotationOrder("YXZ", PLUS_J, PLUS_I, PLUS_K)
 
static const RotationOrder YZX = RotationOrder("YZX", PLUS_J, PLUS_K, PLUS_I)
 
static const RotationOrder ZXY = RotationOrder("ZXY", PLUS_K, PLUS_I, PLUS_J)
 
static const RotationOrder ZYX = RotationOrder("ZYX", PLUS_K, PLUS_J, PLUS_I)
 
static const RotationOrder XYX = RotationOrder("XYX", PLUS_I, PLUS_J, PLUS_I)
 
static const RotationOrder XZX = RotationOrder("XZX", PLUS_I, PLUS_K, PLUS_I)
 
static const RotationOrder YXY = RotationOrder("YXY", PLUS_J, PLUS_I, PLUS_J)
 
static const RotationOrder YZY = RotationOrder("YZY", PLUS_J, PLUS_K, PLUS_J)
 
static const RotationOrder ZXZ = RotationOrder("ZXZ", PLUS_K, PLUS_I, PLUS_K)
 
static const RotationOrder ZYZ = RotationOrder("ZYZ", PLUS_K, PLUS_J, PLUS_K)
 

Private Member Functions

 RotationOrder (const std::string _name, const glm::dvec3 a1, const glm::dvec3 a2, const glm::dvec3 a3)
 

Private Attributes

std::string name
 
glm::dvec3 a1
 
glm::dvec3 a2
 
glm::dvec3 a3
 

Detailed Description

This class is a utility representing a rotation order specification for Cardan or Euler angles specification.

This class cannot be instanciated by the user. He can only use one of the twelve predefined supported orders as an argument to either the Rotation#Rotation(RotationOrder,double,double,double) constructor or the Rotation#getAngles method.

Since
1.2

Constructor & Destructor Documentation

◆ RotationOrder()

RotationOrder::RotationOrder ( const std::string  _name,
const glm::dvec3  a1,
const glm::dvec3  a2,
const glm::dvec3  a3 
)
inlineprivate

Private constructor. This is a utility class that cannot be instantiated by the user, so its only constructor is private.

Parameters
namename of the rotation order
a1axis of the first rotation
a2axis of the second rotation
a3axis of the third rotation

Member Function Documentation

◆ getA1()

const glm::dvec3 RotationOrder::getA1 ( )
inline

Get the axis of the first rotation.

Returns
axis of the first rotation

◆ getA2()

const glm::dvec3 RotationOrder::getA2 ( )
inline

Get the axis of the second rotation.

Returns
axis of the second rotation

◆ getA3()

const glm::dvec3 RotationOrder::getA3 ( )
inline

Get the axis of the second rotation.

Returns
axis of the second rotation

◆ toString()

const std::string RotationOrder::toString ( )
inline

Get a string representation of the instance.

Returns
a string representation of the instance (in fact, its name)

Member Data Documentation

◆ a1

glm::dvec3 RotationOrder::a1
private

Axis of the first rotation.

◆ a2

glm::dvec3 RotationOrder::a2
private

Axis of the second rotation.

◆ a3

glm::dvec3 RotationOrder::a3
private

Axis of the third rotation.

◆ MINUS_I

const glm::dvec3 RotationOrder::MINUS_I = glm::dvec3(-1, 0, 0)
static

Opposite of the first canonical vector (coordinates: -1, 0, 0).

◆ MINUS_J

const glm::dvec3 RotationOrder::MINUS_J = glm::dvec3(0, -1, 0)
static

Opposite of the second canonical vector (coordinates: 0, -1, 0).

◆ MINUS_K

const glm::dvec3 RotationOrder::MINUS_K = glm::dvec3(0, 0, -1)
static

Opposite of the third canonical vector (coordinates: 0, 0, -1).

◆ name

std::string RotationOrder::name
private

Name of the rotations order.

◆ PLUS_I

const glm::dvec3 RotationOrder::PLUS_I = glm::dvec3(1, 0, 0)
static

First canonical vector (coordinates: 1, 0, 0).

◆ PLUS_J

const glm::dvec3 RotationOrder::PLUS_J = glm::dvec3(0, 1, 0)
static

Second canonical vector (coordinates: 0, 1, 0).

◆ PLUS_K

const glm::dvec3 RotationOrder::PLUS_K = glm::dvec3(0, 0, 1)
static

Third canonical vector (coordinates: 0, 0, 1).

◆ XYX

const RotationOrder RotationOrder::XYX = RotationOrder("XYX", PLUS_I, PLUS_J, PLUS_I)
static

Set of Euler angles. this ordered set of rotations is around X, then around Y, then around X

◆ XYZ

const RotationOrder RotationOrder::XYZ = RotationOrder("XYZ", PLUS_I, PLUS_J, PLUS_K)
static

Set of Cardan angles. this ordered set of rotations is around X, then around Y, then around Z

◆ XZX

const RotationOrder RotationOrder::XZX = RotationOrder("XZX", PLUS_I, PLUS_K, PLUS_I)
static

Set of Euler angles. this ordered set of rotations is around X, then around Z, then around X

◆ XZY

const RotationOrder RotationOrder::XZY = RotationOrder("XZY", PLUS_I, PLUS_K, PLUS_J)
static

Set of Cardan angles. this ordered set of rotations is around X, then around Z, then around Y

◆ YXY

const RotationOrder RotationOrder::YXY = RotationOrder("YXY", PLUS_J, PLUS_I, PLUS_J)
static

Set of Euler angles. this ordered set of rotations is around Y, then around X, then around Y

◆ YXZ

const RotationOrder RotationOrder::YXZ = RotationOrder("YXZ", PLUS_J, PLUS_I, PLUS_K)
static

Set of Cardan angles. this ordered set of rotations is around Y, then around X, then around Z

◆ YZX

const RotationOrder RotationOrder::YZX = RotationOrder("YZX", PLUS_J, PLUS_K, PLUS_I)
static

Set of Cardan angles. this ordered set of rotations is around Y, then around Z, then around X

◆ YZY

const RotationOrder RotationOrder::YZY = RotationOrder("YZY", PLUS_J, PLUS_K, PLUS_J)
static

Set of Euler angles. this ordered set of rotations is around Y, then around Z, then around Y

◆ ZERO

const glm::dvec3 RotationOrder::ZERO = glm::dvec3(0, 0, 0)
static

Null vector (coordinates: 0, 0, 0).

◆ ZXY

const RotationOrder RotationOrder::ZXY = RotationOrder("ZXY", PLUS_K, PLUS_I, PLUS_J)
static

Set of Cardan angles. this ordered set of rotations is around Z, then around X, then around Y

◆ ZXZ

const RotationOrder RotationOrder::ZXZ = RotationOrder("ZXZ", PLUS_K, PLUS_I, PLUS_K)
static

Set of Euler angles. this ordered set of rotations is around Z, then around X, then around Z

◆ ZYX

const RotationOrder RotationOrder::ZYX = RotationOrder("ZYX", PLUS_K, PLUS_J, PLUS_I)
static

Set of Cardan angles. this ordered set of rotations is around Z, then around Y, then around X

◆ ZYZ

const RotationOrder RotationOrder::ZYZ = RotationOrder("ZYZ", PLUS_K, PLUS_J, PLUS_K)
static

Set of Euler angles. this ordered set of rotations is around Z, then around Y, then around Z


The documentation for this class was generated from the following files: