OPAL (Object Oriented Parallel Accelerator Library)
2021.1.99
OPAL
|
Rotation in 3-dimensional space. More...
#include <Rotation3D.h>
Public Member Functions | |
Rotation3D () | |
Default constructor. More... | |
Rotation3D (double vx, double vy, double vz) | |
Constructor. More... | |
bool | operator== (const Rotation3D &) const |
bool | operator!= (const Rotation3D &) const |
Rotation3D & | operator*= (const Rotation3D &rhs) |
Multiply and assign. More... | |
Rotation3D | operator* (const Rotation3D &rhs) const |
Multiply. More... | |
Vector3D | operator* (const Vector3D &rhs) const |
Rotate. More... | |
double | operator() (int i, int k) const |
Get component. More... | |
Vector3D | getAxis () const |
Get axis vector. More... | |
void | getAxis (double &vx, double &vy, double &vz) const |
Get axis vector. More... | |
Rotation3D | inverse () const |
Inversion. More... | |
bool | isIdentity () const |
Test for identity. More... | |
bool | isPureXRotation () const |
Test for rotation. More... | |
bool | isPureYRotation () const |
Test for rotation. More... | |
bool | isPureZRotation () const |
Test for rotation. More... | |
Static Public Member Functions | |
static Rotation3D | Identity () |
Make identity. More... | |
static Rotation3D | XRotation (double angle) |
Make rotation. More... | |
static Rotation3D | YRotation (double angle) |
Make rotation. More... | |
static Rotation3D | ZRotation (double angle) |
Make rotation. More... | |
Private Attributes | |
Matrix3D | R |
Rotation in 3-dimensional space.
Definition at line 46 of file Rotation3D.h.
|
inline |
Rotation3D::Rotation3D | ( | double | vx, |
double | vy, | ||
double | vz | ||
) |
Vector3D Rotation3D::getAxis | ( | ) | const |
Get axis vector.
Definition at line 91 of file Rotation3D.cpp.
Referenced by Ring::appendElement(), Offset::bends(), Ring::checkMidplane(), Euclid3D::getAll(), operator==(), and Ring::rotateToCyclCoordinates().
void Rotation3D::getAxis | ( | double & | vx, |
double & | vy, | ||
double & | vz | ||
) | const |
Get axis vector.
Definition at line 68 of file Rotation3D.cpp.
References abs(), atan2(), Physics::c, max(), R, and sqrt().
|
static |
Make identity.
Definition at line 126 of file Rotation3D.cpp.
References Rotation3D().
Referenced by Euclid3D::translation().
Rotation3D Rotation3D::inverse | ( | ) | const |
Inversion.
Definition at line 98 of file Rotation3D.cpp.
References R.
Referenced by Euclid3D::inverse().
|
inline |
Test for identity.
Definition at line 160 of file Rotation3D.h.
References Matrix3D::isIdentity(), and R.
Referenced by Euclid3D::isPureTranslation(), and Euclid3D::setRotation().
bool Rotation3D::isPureXRotation | ( | ) | const |
Test for rotation.
Definition at line 111 of file Rotation3D.cpp.
References R.
Referenced by Euclid3D::isPureXRotation().
bool Rotation3D::isPureYRotation | ( | ) | const |
Test for rotation.
Definition at line 116 of file Rotation3D.cpp.
References R.
Referenced by Euclid3D::isPureYRotation().
bool Rotation3D::isPureZRotation | ( | ) | const |
Test for rotation.
Definition at line 121 of file Rotation3D.cpp.
References R.
Referenced by Euclid3D::isPureZRotation().
|
inline |
Definition at line 135 of file Rotation3D.h.
References R.
|
inline |
|
inline |
Multiply.
Definition at line 149 of file Rotation3D.h.
|
inline |
|
inline |
Definition at line 131 of file Rotation3D.h.
References R.
|
static |
Make rotation.
Definition at line 131 of file Rotation3D.cpp.
References cos(), R, and sin().
Referenced by Euclid3D::XRotation().
|
static |
Make rotation.
Definition at line 139 of file Rotation3D.cpp.
References cos(), R, and sin().
Referenced by Euclid3D::YRotation().
|
static |
Make rotation.
Definition at line 147 of file Rotation3D.cpp.
References cos(), R, and sin().
Referenced by Ring::getRotationStartToEnd(), and Euclid3D::ZRotation().
|
private |
Definition at line 119 of file Rotation3D.h.
Referenced by getAxis(), inverse(), isIdentity(), isPureXRotation(), isPureYRotation(), isPureZRotation(), operator!=(), operator()(), operator*(), operator*=(), operator==(), Rotation3D(), XRotation(), YRotation(), and ZRotation().