OPAL (Object Oriented Parallel Accelerator Library)
2024.1
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 32 of file Euclid3D.cpp.
Dot product.
Definition at line 96 of file Euclid3D.cpp.
References dotBy(), and test::result.
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(), and test::result.
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.
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, test::result, and Rotation3D::XRotation().
|
static |
Make rotation.
Definition at line 164 of file Euclid3D.cpp.
References Euclid3D(), is_identity, test::result, 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, test::result, 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().