|
OPAL (Object Oriented Parallel Accelerator Library) 2022.1
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.
References getAxis().
Referenced by Ring::appendElement(), Offset::bends(), Ring::checkMidplane(), Euclid3D::getAll(), getAxis(), 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().