OPAL (Object Oriented Parallel Accelerator Library)
2021.1.99
OPAL
|
Displacement and rotation in space. More...
#include <Euclid3D.h>
Public Member Functions | |
Euclid3D () | |
Default constructor. More... | |
Euclid3D (const Vector3D &V, const Rotation3D &R) | |
Constructor/. More... | |
Euclid3D (double x, double y, double z, double vx, double vy, double vz) | |
Constructor. More... | |
bool | operator== (const Euclid3D &) const |
bool | operator!= (const Euclid3D &) const |
void | getAll (double &x, double &y, double &z, double &vx, double &vy, double &vz) const |
Unpack. More... | |
double | getX () const |
Get displacement. More... | |
double | getY () const |
Get displacement. More... | |
double | getZ () const |
Get displacement. More... | |
const Vector3D & | getVector () const |
Get displacement. More... | |
const Rotation3D & | getRotation () const |
Get rotation. More... | |
double | M (int row, int col) const |
Get component. More... | |
void | setX (double x) |
Set displacement. More... | |
void | setY (double y) |
Set displacement. More... | |
void | setZ (double z) |
Set displacement. More... | |
void | setDisplacement (const Vector3D &V) |
Set displacement. More... | |
void | setRotation (const Rotation3D &R) |
Set rotation. More... | |
Euclid3D | dot (const Euclid3D &rhs) const |
Dot product. More... | |
const Euclid3D & | dotBy (const Euclid3D &rhs) |
Dot product with assign. More... | |
Euclid3D | operator* (const Euclid3D &rhs) const |
Dot product. More... | |
const Euclid3D & | operator*= (const Euclid3D &rhs) |
Dot product with assign. More... | |
Euclid3D | inverse () const |
Inverse. More... | |
bool | isIdentity () const |
Test for identity. More... | |
bool | isPureTranslation () const |
Test for translation. 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 Euclid3D | identity () |
Make identity. More... | |
static Euclid3D | translation (double x, double y, double z) |
Make translation. More... | |
static Euclid3D | XRotation (double angle) |
Make rotation. More... | |
static Euclid3D | YRotation (double angle) |
Make rotation. More... | |
static Euclid3D | ZRotation (double angle) |
Make rotation. More... | |
Private Attributes | |
Vector3D | V |
Rotation3D | R |
bool | is_identity |
Displacement and rotation in space.
Definition at line 68 of file Euclid3D.h.
|
inline |
Default constructor.
Definition at line 212 of file Euclid3D.h.
Referenced by identity(), inverse(), translation(), XRotation(), YRotation(), and ZRotation().
Euclid3D::Euclid3D | ( | const Vector3D & | V, |
const Rotation3D & | R | ||
) |
Constructor/.
Definition at line 37 of file Euclid3D.cpp.
Euclid3D::Euclid3D | ( | double | x, |
double | y, | ||
double | z, | ||
double | vx, | ||
double | vy, | ||
double | vz | ||
) |
Constructor.
Definition at line 31 of file Euclid3D.cpp.
Dot product.
Definition at line 96 of file Euclid3D.cpp.
References dotBy().
Dot product with assign.
Definition at line 102 of file Euclid3D.cpp.
References is_identity, R, and V.
Referenced by dot(), TBeamline< T >::getTotalTransform(), operator*(), and operator*=().
void Euclid3D::getAll | ( | double & | x, |
double & | y, | ||
double & | z, | ||
double & | vx, | ||
double & | vy, | ||
double & | vz | ||
) | const |
Unpack.
Definition at line 52 of file Euclid3D.cpp.
References Rotation3D::getAxis(), Vector3D::getComponents(), R, and V.
const Rotation3D & Euclid3D::getRotation | ( | ) | const |
Get rotation.
Definition at line 64 of file Euclid3D.cpp.
References R.
Referenced by Ring::appendElement(), Offset::bends(), Ring::checkMidplane(), Ring::getRotationStartToEnd(), operator==(), and Ring::rotateToCyclCoordinates().
const Vector3D & Euclid3D::getVector | ( | ) | const |
Get displacement.
Definition at line 59 of file Euclid3D.cpp.
References V.
Referenced by Ring::appendElement(), Offset::bends(), Ring::checkMidplane(), Euclid3DGeometry::getArcLength(), operator==(), Ring::rotateToCyclCoordinates(), and Euclid3DGeometry::setElementLength().
|
inline |
Get displacement.
Definition at line 216 of file Euclid3D.h.
References Vector3D::getX(), and V.
Referenced by Tracker::applyTransform().
|
inline |
Get displacement.
Definition at line 220 of file Euclid3D.h.
References Vector3D::getY(), and V.
Referenced by Tracker::applyTransform().
|
inline |
Get displacement.
Definition at line 224 of file Euclid3D.h.
References Vector3D::getZ(), and V.
Referenced by Tracker::applyTransform().
|
static |
Make identity.
Definition at line 147 of file Euclid3D.cpp.
References Euclid3D().
Referenced by BGeometryBase::getEntrancePatch(), BGeometryBase::getExitPatch(), and NullGeometry::getTransform().
Euclid3D Euclid3D::inverse | ( | ) | const |
Inverse.
Definition at line 121 of file Euclid3D.cpp.
References Euclid3D(), Rotation3D::inverse(), R, and V.
Referenced by Inverse().
|
inline |
Test for identity.
Definition at line 233 of file Euclid3D.h.
References is_identity.
Referenced by Tracker::applyTransform().
bool Euclid3D::isPureTranslation | ( | ) | const |
Test for translation.
Definition at line 127 of file Euclid3D.cpp.
References Rotation3D::isIdentity(), and R.
bool Euclid3D::isPureXRotation | ( | ) | const |
Test for rotation.
Definition at line 132 of file Euclid3D.cpp.
References Rotation3D::isPureXRotation(), Vector3D::isZero(), R, and V.
bool Euclid3D::isPureYRotation | ( | ) | const |
Test for rotation.
Definition at line 137 of file Euclid3D.cpp.
References Rotation3D::isPureYRotation(), Vector3D::isZero(), R, and V.
bool Euclid3D::isPureZRotation | ( | ) | const |
Test for rotation.
Definition at line 142 of file Euclid3D.cpp.
References Rotation3D::isPureZRotation(), Vector3D::isZero(), R, and V.
|
inline |
Get component.
Definition at line 228 of file Euclid3D.h.
References R.
Referenced by Tracker::applyTransform().
bool Euclid3D::operator!= | ( | const Euclid3D & | rhs | ) | const |
Definition at line 47 of file Euclid3D.cpp.
Dot product.
Definition at line 110 of file Euclid3D.cpp.
References dotBy().
Dot product with assign.
Definition at line 116 of file Euclid3D.cpp.
References dotBy().
bool Euclid3D::operator== | ( | const Euclid3D & | rhs | ) | const |
Definition at line 42 of file Euclid3D.cpp.
void Euclid3D::setDisplacement | ( | const Vector3D & | V | ) |
Set displacement.
Definition at line 84 of file Euclid3D.cpp.
References is_identity, Vector3D::isZero(), and V.
Referenced by Euclid3DGeometry::setElementLength().
void Euclid3D::setRotation | ( | const Rotation3D & | R | ) |
Set rotation.
Definition at line 90 of file Euclid3D.cpp.
References is_identity, Rotation3D::isIdentity(), and R.
void Euclid3D::setX | ( | double | x | ) |
Set displacement.
Definition at line 69 of file Euclid3D.cpp.
References Vector3D::setX(), and V.
Referenced by VarRadiusGeometry::getTransform().
void Euclid3D::setY | ( | double | y | ) |
Set displacement.
Definition at line 74 of file Euclid3D.cpp.
References Vector3D::setY(), and V.
void Euclid3D::setZ | ( | double | z | ) |
Set displacement.
Definition at line 79 of file Euclid3D.cpp.
References Vector3D::setZ(), and V.
Referenced by VarRadiusGeometry::getTransform().
|
static |
Make translation.
Definition at line 152 of file Euclid3D.cpp.
References Euclid3D(), and Rotation3D::Identity().
Referenced by StraightGeometry::getEntranceFrame(), RBendGeometry::getEntrancePatch(), StraightGeometry::getExitFrame(), RBendGeometry::getExitPatch(), StraightGeometry::getTotalTransform(), and StraightGeometry::getTransform().
|
static |
Make rotation.
Definition at line 157 of file Euclid3D.cpp.
References Euclid3D(), is_identity, and Rotation3D::XRotation().
|
static |
Make rotation.
Definition at line 164 of file Euclid3D.cpp.
References Euclid3D(), is_identity, and Rotation3D::YRotation().
Referenced by RBendGeometry::getEntranceFrame(), RBendGeometry::getEntrancePatch(), RBendGeometry::getExitFrame(), RBendGeometry::getExitPatch(), RBendGeometry::getTotalTransform(), and VarRadiusGeometry::getTransform().
|
static |
Make rotation.
Definition at line 171 of file Euclid3D.cpp.
References Euclid3D(), is_identity, and Rotation3D::ZRotation().
|
mutableprivate |
Definition at line 196 of file Euclid3D.h.
Referenced by dotBy(), isIdentity(), setDisplacement(), setRotation(), XRotation(), YRotation(), and ZRotation().
|
private |
Definition at line 195 of file Euclid3D.h.
Referenced by dotBy(), getAll(), getRotation(), inverse(), isPureTranslation(), isPureXRotation(), isPureYRotation(), isPureZRotation(), M(), operator!=(), operator==(), and setRotation().
|
private |
Definition at line 194 of file Euclid3D.h.
Referenced by dotBy(), getAll(), getVector(), getX(), getY(), getZ(), inverse(), isPureXRotation(), isPureYRotation(), isPureZRotation(), operator!=(), operator==(), setDisplacement(), setX(), setY(), and setZ().