OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
Euclid3D Class Reference

Displacement and rotation in space. More...

#include <Euclid3D.h>

Collaboration diagram for Euclid3D:
Collaboration graph
[legend]

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 Vector3DgetVector () const
 Get displacement. More...
 
const Rotation3DgetRotation () 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 Euclid3DdotBy (const Euclid3D &rhs)
 Dot product with assign. More...
 
Euclid3D operator* (const Euclid3D &rhs) const
 Dot product. More...
 
const Euclid3Doperator*= (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
 

Detailed Description

Displacement and rotation in space.

Definition at line 68 of file Euclid3D.h.

Constructor & Destructor Documentation

◆ Euclid3D() [1/3]

Euclid3D::Euclid3D ( )
inline

Default constructor.

Definition at line 212 of file Euclid3D.h.

Referenced by identity(), inverse(), translation(), XRotation(), YRotation(), and ZRotation().

◆ Euclid3D() [2/3]

Euclid3D::Euclid3D ( const Vector3D V,
const Rotation3D R 
)

Constructor/.

Definition at line 37 of file Euclid3D.cpp.

◆ Euclid3D() [3/3]

Euclid3D::Euclid3D ( double  x,
double  y,
double  z,
double  vx,
double  vy,
double  vz 
)

Constructor.

Definition at line 31 of file Euclid3D.cpp.

Member Function Documentation

◆ dot()

Euclid3D Euclid3D::dot ( const Euclid3D rhs) const

Dot product.

Definition at line 96 of file Euclid3D.cpp.

References dotBy().

Here is the call graph for this function:

◆ dotBy()

const Euclid3D & Euclid3D::dotBy ( const Euclid3D rhs)

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*=().

◆ getAll()

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.

Here is the call graph for this function:

◆ getRotation()

const Rotation3D & Euclid3D::getRotation ( ) const

◆ getVector()

const Vector3D & Euclid3D::getVector ( ) const

◆ getX()

double Euclid3D::getX ( ) const
inline

Get displacement.

Definition at line 216 of file Euclid3D.h.

References Vector3D::getX(), and V.

Referenced by Tracker::applyTransform().

Here is the call graph for this function:

◆ getY()

double Euclid3D::getY ( ) const
inline

Get displacement.

Definition at line 220 of file Euclid3D.h.

References Vector3D::getY(), and V.

Referenced by Tracker::applyTransform().

Here is the call graph for this function:

◆ getZ()

double Euclid3D::getZ ( ) const
inline

Get displacement.

Definition at line 224 of file Euclid3D.h.

References Vector3D::getZ(), and V.

Referenced by Tracker::applyTransform().

Here is the call graph for this function:

◆ identity()

Euclid3D Euclid3D::identity ( )
static

Make identity.

Definition at line 147 of file Euclid3D.cpp.

References Euclid3D().

Referenced by BGeometryBase::getEntrancePatch(), BGeometryBase::getExitPatch(), and NullGeometry::getTransform().

Here is the call graph for this function:

◆ inverse()

Euclid3D Euclid3D::inverse ( ) const

Inverse.

Definition at line 121 of file Euclid3D.cpp.

References Euclid3D(), Rotation3D::inverse(), R, and V.

Referenced by Inverse().

Here is the call graph for this function:

◆ isIdentity()

bool Euclid3D::isIdentity ( ) const
inline

Test for identity.

Definition at line 233 of file Euclid3D.h.

References is_identity.

Referenced by Tracker::applyTransform().

◆ isPureTranslation()

bool Euclid3D::isPureTranslation ( ) const

Test for translation.

Definition at line 127 of file Euclid3D.cpp.

References Rotation3D::isIdentity(), and R.

Here is the call graph for this function:

◆ isPureXRotation()

bool Euclid3D::isPureXRotation ( ) const

Test for rotation.

Definition at line 132 of file Euclid3D.cpp.

References Rotation3D::isPureXRotation(), Vector3D::isZero(), R, and V.

Here is the call graph for this function:

◆ isPureYRotation()

bool Euclid3D::isPureYRotation ( ) const

Test for rotation.

Definition at line 137 of file Euclid3D.cpp.

References Rotation3D::isPureYRotation(), Vector3D::isZero(), R, and V.

Here is the call graph for this function:

◆ isPureZRotation()

bool Euclid3D::isPureZRotation ( ) const

Test for rotation.

Definition at line 142 of file Euclid3D.cpp.

References Rotation3D::isPureZRotation(), Vector3D::isZero(), R, and V.

Here is the call graph for this function:

◆ M()

double Euclid3D::M ( int  row,
int  col 
) const
inline

Get component.

Definition at line 228 of file Euclid3D.h.

References R.

Referenced by Tracker::applyTransform().

◆ operator!=()

bool Euclid3D::operator!= ( const Euclid3D rhs) const

Definition at line 47 of file Euclid3D.cpp.

References R, and V.

◆ operator*()

Euclid3D Euclid3D::operator* ( const Euclid3D rhs) const

Dot product.

Definition at line 110 of file Euclid3D.cpp.

References dotBy().

Here is the call graph for this function:

◆ operator*=()

const Euclid3D & Euclid3D::operator*= ( const Euclid3D rhs)

Dot product with assign.

Definition at line 116 of file Euclid3D.cpp.

References dotBy().

Here is the call graph for this function:

◆ operator==()

bool Euclid3D::operator== ( const Euclid3D rhs) const

Definition at line 42 of file Euclid3D.cpp.

References R, and V.

◆ setDisplacement()

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().

Here is the call graph for this function:

◆ setRotation()

void Euclid3D::setRotation ( const Rotation3D R)

Set rotation.

Definition at line 90 of file Euclid3D.cpp.

References is_identity, Rotation3D::isIdentity(), and R.

Here is the call graph for this function:

◆ setX()

void Euclid3D::setX ( double  x)

Set displacement.

Definition at line 69 of file Euclid3D.cpp.

References Vector3D::setX(), and V.

Referenced by VarRadiusGeometry::getTransform().

Here is the call graph for this function:

◆ setY()

void Euclid3D::setY ( double  y)

Set displacement.

Definition at line 74 of file Euclid3D.cpp.

References Vector3D::setY(), and V.

Here is the call graph for this function:

◆ setZ()

void Euclid3D::setZ ( double  z)

Set displacement.

Definition at line 79 of file Euclid3D.cpp.

References Vector3D::setZ(), and V.

Referenced by VarRadiusGeometry::getTransform().

Here is the call graph for this function:

◆ translation()

Euclid3D Euclid3D::translation ( double  x,
double  y,
double  z 
)
static

◆ XRotation()

Euclid3D Euclid3D::XRotation ( double  angle)
static

Make rotation.

Definition at line 157 of file Euclid3D.cpp.

References Euclid3D(), is_identity, and Rotation3D::XRotation().

Here is the call graph for this function:

◆ YRotation()

Euclid3D Euclid3D::YRotation ( double  angle)
static

◆ ZRotation()

Euclid3D Euclid3D::ZRotation ( double  angle)
static

Make rotation.

Definition at line 171 of file Euclid3D.cpp.

References Euclid3D(), is_identity, and Rotation3D::ZRotation().

Here is the call graph for this function:

Member Data Documentation

◆ is_identity

bool Euclid3D::is_identity
mutableprivate

◆ R

Rotation3D Euclid3D::R
private

◆ V

Vector3D Euclid3D::V
private

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