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

Rotation in 3-dimensional space. More...

#include <Rotation3D.h>

Collaboration diagram for Rotation3D:
Collaboration graph
[legend]

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
 
Rotation3Doperator*= (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
 

Detailed Description

Rotation in 3-dimensional space.

Definition at line 46 of file Rotation3D.h.

Constructor & Destructor Documentation

◆ Rotation3D() [1/2]

Rotation3D::Rotation3D ( )
inline

Default constructor.

Definition at line 126 of file Rotation3D.h.

Referenced by Identity().

◆ Rotation3D() [2/2]

Rotation3D::Rotation3D ( double  vx,
double  vy,
double  vz 
)

Constructor.

Definition at line 42 of file Rotation3D.cpp.

References cos(), R, sin(), and sqrt().

Here is the call graph for this function:

Member Function Documentation

◆ getAxis() [1/2]

Vector3D Rotation3D::getAxis ( ) const

◆ getAxis() [2/2]

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

Here is the call graph for this function:

◆ Identity()

Rotation3D Rotation3D::Identity ( )
static

Make identity.

Definition at line 126 of file Rotation3D.cpp.

References Rotation3D().

Referenced by Euclid3D::translation().

Here is the call graph for this function:

◆ inverse()

Rotation3D Rotation3D::inverse ( ) const

Inversion.

Definition at line 98 of file Rotation3D.cpp.

References R.

Referenced by Euclid3D::inverse().

◆ isIdentity()

bool Rotation3D::isIdentity ( ) const
inline

Test for identity.

Definition at line 160 of file Rotation3D.h.

References Matrix3D::isIdentity(), and R.

Referenced by Euclid3D::isPureTranslation(), and Euclid3D::setRotation().

Here is the call graph for this function:

◆ isPureXRotation()

bool Rotation3D::isPureXRotation ( ) const

Test for rotation.

Definition at line 111 of file Rotation3D.cpp.

References R.

Referenced by Euclid3D::isPureXRotation().

◆ isPureYRotation()

bool Rotation3D::isPureYRotation ( ) const

Test for rotation.

Definition at line 116 of file Rotation3D.cpp.

References R.

Referenced by Euclid3D::isPureYRotation().

◆ isPureZRotation()

bool Rotation3D::isPureZRotation ( ) const

Test for rotation.

Definition at line 121 of file Rotation3D.cpp.

References R.

Referenced by Euclid3D::isPureZRotation().

◆ operator!=()

bool Rotation3D::operator!= ( const Rotation3D rhs) const
inline

Definition at line 135 of file Rotation3D.h.

References R.

◆ operator()()

double Rotation3D::operator() ( int  i,
int  k 
) const
inline

Get component.

Definition at line 139 of file Rotation3D.h.

References R.

◆ operator*() [1/2]

Rotation3D Rotation3D::operator* ( const Rotation3D rhs) const
inline

Multiply.

Definition at line 149 of file Rotation3D.h.

◆ operator*() [2/2]

Vector3D Rotation3D::operator* ( const Vector3D rhs) const
inline

Rotate.

Definition at line 155 of file Rotation3D.h.

References R.

◆ operator*=()

Rotation3D & Rotation3D::operator*= ( const Rotation3D rhs)
inline

Multiply and assign.

Definition at line 143 of file Rotation3D.h.

References R.

◆ operator==()

bool Rotation3D::operator== ( const Rotation3D rhs) const
inline

Definition at line 131 of file Rotation3D.h.

References R.

◆ XRotation()

Rotation3D Rotation3D::XRotation ( double  angle)
static

Make rotation.

Definition at line 131 of file Rotation3D.cpp.

References cos(), R, and sin().

Referenced by Euclid3D::XRotation().

Here is the call graph for this function:

◆ YRotation()

Rotation3D Rotation3D::YRotation ( double  angle)
static

Make rotation.

Definition at line 139 of file Rotation3D.cpp.

References cos(), R, and sin().

Referenced by Euclid3D::YRotation().

Here is the call graph for this function:

◆ ZRotation()

Rotation3D Rotation3D::ZRotation ( double  angle)
static

Make rotation.

Definition at line 147 of file Rotation3D.cpp.

References cos(), R, and sin().

Referenced by Ring::getRotationStartToEnd(), and Euclid3D::ZRotation().

Here is the call graph for this function:

Member Data Documentation

◆ R

Matrix3D Rotation3D::R
private

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