Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JGEOMETRY3D::JEulerAngle3D Class Reference

Data structure for Euler angles in three dimensions. More...

#include <JEulerAngle3D.hh>

Inheritance diagram for JGEOMETRY3D::JEulerAngle3D:
JMATH::JMath< JFirst_t, JSecond_t > JDETECTOR::JModuleGeometry

Public Member Functions

 JEulerAngle3D ()
 Default constructor.
 
 JEulerAngle3D (const double alpha, const double beta, const double gamma)
 Constructor.
 
 JEulerAngle3D (const JAngle3D &angle)
 Constructor.
 
 JEulerAngle3D (const JVersor3D &versor)
 Constructor.
 
const JEulerAngle3DgetEulerAngle () const
 Get Euler angle.
 
void setEulerAngle (const JEulerAngle3D &angle)
 Set Euler angle.
 
JEulerAngle3Dnegate ()
 Negate angle.
 
JEulerAngle3Dadd (const JEulerAngle3D &angle)
 Add angle.
 
JEulerAngle3Dsub (const JEulerAngle3D &angle)
 Subtract angle.
 
JEulerAngle3Dmul (const double factor)
 Scale angle.
 
JEulerAngle3Ddiv (const double factor)
 Scale angle.
 
double getAlpha () const
 Get alpha angle.
 
double getBeta () const
 Get beta angle.
 
double getGamma () const
 Get gamma angle.
 
JFirst_t & mul (const JSecond_t &object)
 Multiply with object.
 

Protected Attributes

double __alpha
 
double __beta
 
double __gamma
 

Friends

std::istream & operator>> (std::istream &in, JEulerAngle3D &angle)
 Read Euler angles from input.
 
std::ostream & operator<< (std::ostream &out, const JEulerAngle3D &angle)
 Write Euler angles to output.
 
JReaderoperator>> (JReader &in, JEulerAngle3D &angle)
 Read Euler angles from input.
 
JWriteroperator<< (JWriter &out, const JEulerAngle3D &angle)
 Write Euler angles to output.
 

Detailed Description

Data structure for Euler angles in three dimensions.

This class implements the JMATH::JMath interface.

Definition at line 36 of file JEulerAngle3D.hh.

Constructor & Destructor Documentation

◆ JEulerAngle3D() [1/4]

JGEOMETRY3D::JEulerAngle3D::JEulerAngle3D ( )
inline

Default constructor.

Definition at line 43 of file JEulerAngle3D.hh.

◆ JEulerAngle3D() [2/4]

JGEOMETRY3D::JEulerAngle3D::JEulerAngle3D ( const double alpha,
const double beta,
const double gamma )
inline

Constructor.

Parameters
alphaalpha angle [rad]
betabeta angle [rad]
gammagamma angle [rad]

Definition at line 57 of file JEulerAngle3D.hh.

59 :
60 __alpha(alpha),
61 __beta (beta),
62 __gamma(gamma)
63 {}

◆ JEulerAngle3D() [3/4]

JGEOMETRY3D::JEulerAngle3D::JEulerAngle3D ( const JAngle3D & angle)
inline

Constructor.

Parameters
angleangle

Definition at line 71 of file JEulerAngle3D.hh.

71 :
72 __alpha(PI/2),
73 __beta (angle.getTheta()),
74 __gamma(angle.getPhi() + PI/2)
75 {}

◆ JEulerAngle3D() [4/4]

JGEOMETRY3D::JEulerAngle3D::JEulerAngle3D ( const JVersor3D & versor)
inline

Constructor.

Parameters
versorversor

Definition at line 83 of file JEulerAngle3D.hh.

83 :
84 __alpha(PI/2),
85 __beta (versor.getTheta()),
86 __gamma(versor.getPhi() + PI/2)
87 {}

Member Function Documentation

◆ getEulerAngle()

const JEulerAngle3D & JGEOMETRY3D::JEulerAngle3D::getEulerAngle ( ) const
inline

Get Euler angle.

Returns
this angle

Definition at line 95 of file JEulerAngle3D.hh.

96 {
97 return static_cast<const JEulerAngle3D&>(*this);
98 }
JEulerAngle3D()
Default constructor.

◆ setEulerAngle()

void JGEOMETRY3D::JEulerAngle3D::setEulerAngle ( const JEulerAngle3D & angle)
inline

Set Euler angle.

Parameters
angleEuler angle

Definition at line 106 of file JEulerAngle3D.hh.

107 {
108 static_cast<JEulerAngle3D&>(*this) = angle;
109 }

◆ negate()

JEulerAngle3D & JGEOMETRY3D::JEulerAngle3D::negate ( )
inline

Negate angle.

Returns
this angle

Definition at line 117 of file JEulerAngle3D.hh.

118 {
119 __alpha = -__alpha;
120 __beta = -__beta;
121 __gamma = -__gamma;
122
123 return *this;
124 }

◆ add()

JEulerAngle3D & JGEOMETRY3D::JEulerAngle3D::add ( const JEulerAngle3D & angle)
inline

Add angle.

Parameters
angleangle
Returns
this angle

Definition at line 133 of file JEulerAngle3D.hh.

134 {
135 __alpha += angle.getAlpha();
136 __beta += angle.getBeta();
137 __gamma += angle.getGamma();
138
139 return *this;
140 }

◆ sub()

JEulerAngle3D & JGEOMETRY3D::JEulerAngle3D::sub ( const JEulerAngle3D & angle)
inline

Subtract angle.

Parameters
angleangle
Returns
this angle

Definition at line 149 of file JEulerAngle3D.hh.

150 {
151 __alpha -= angle.getAlpha();
152 __beta -= angle.getBeta();
153 __gamma -= angle.getGamma();
154
155 return *this;
156 }

◆ mul() [1/2]

JEulerAngle3D & JGEOMETRY3D::JEulerAngle3D::mul ( const double factor)
inline

Scale angle.

Parameters
factormultiplication factor
Returns
this angle

Definition at line 165 of file JEulerAngle3D.hh.

166 {
167 __alpha *= factor;
168 __beta *= factor;
169 __gamma *= factor;
170
171 return *this;
172 }

◆ div()

JEulerAngle3D & JGEOMETRY3D::JEulerAngle3D::div ( const double factor)
inline

Scale angle.

Parameters
factordivision factor
Returns
this angle

Definition at line 181 of file JEulerAngle3D.hh.

182 {
183 __alpha /= factor;
184 __beta /= factor;
185 __gamma /= factor;
186
187 return *this;
188 }

◆ getAlpha()

double JGEOMETRY3D::JEulerAngle3D::getAlpha ( ) const
inline

Get alpha angle.

Returns
alpha angle

Definition at line 196 of file JEulerAngle3D.hh.

197 {
198 return __alpha;
199 }

◆ getBeta()

double JGEOMETRY3D::JEulerAngle3D::getBeta ( ) const
inline

Get beta angle.

Returns
beta angle

Definition at line 207 of file JEulerAngle3D.hh.

208 {
209 return __beta;
210 }

◆ getGamma()

double JGEOMETRY3D::JEulerAngle3D::getGamma ( ) const
inline

Get gamma angle.

Returns
gamma angle

Definition at line 218 of file JEulerAngle3D.hh.

219 {
220 return __gamma;
221 }

◆ mul() [2/2]

template<class JFirst_t , class JSecond_t >
JFirst_t & JMATH::JMath< JFirst_t, JSecond_t >::mul ( const JSecond_t & object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 354 of file JMath.hh.

355 {
356 return static_cast<JFirst_t&>(*this) = JFirst_t().mul(static_cast<const JFirst_t&>(*this), object);
357 }

Friends And Related Symbol Documentation

◆ operator>> [1/2]

std::istream & operator>> ( std::istream & in,
JEulerAngle3D & angle )
friend

Read Euler angles from input.

Parameters
ininput stream
angleEuler angles
Returns
input stream

Definition at line 231 of file JEulerAngle3D.hh.

232 {
233 in >> angle.__alpha >> angle.__beta >> angle.__gamma;
234
235 return in;
236 }

◆ operator<< [1/2]

std::ostream & operator<< ( std::ostream & out,
const JEulerAngle3D & angle )
friend

Write Euler angles to output.

Parameters
outoutput stream
angleEuler angle
Returns
output stream

Definition at line 246 of file JEulerAngle3D.hh.

247 {
248 const JFormat format(out, getFormat<JAngle3D>(JFormat_t(9, 5, std::ios::fixed | std::ios::showpos)));
249
250 out << format << angle.getAlpha() << ' '
251 << format << angle.getBeta() << ' '
252 << format << angle.getGamma();
253
254 return out;
255 }
JFormat_t & getFormat()
Get format for given type.
Definition JManip.hh:682
Data structure for format specifications.
Definition JManip.hh:524
Auxiliary class to temporarily define format specifications.
Definition JManip.hh:636

◆ operator>> [2/2]

JReader & operator>> ( JReader & in,
JEulerAngle3D & angle )
friend

Read Euler angles from input.

Parameters
inreader
angleEuler angles
Returns
reader

Definition at line 265 of file JEulerAngle3D.hh.

266 {
267 in >> angle.__alpha;
268 in >> angle.__beta;
269 in >> angle.__gamma;
270
271 return in;
272 }

◆ operator<< [2/2]

JWriter & operator<< ( JWriter & out,
const JEulerAngle3D & angle )
friend

Write Euler angles to output.

Parameters
outwriter
angleEuler angles
Returns
writer

Definition at line 282 of file JEulerAngle3D.hh.

283 {
284 out << angle.__alpha;
285 out << angle.__beta;
286 out << angle.__gamma;
287
288 return out;
289 }

Member Data Documentation

◆ __alpha

double JGEOMETRY3D::JEulerAngle3D::__alpha
protected

Definition at line 293 of file JEulerAngle3D.hh.

◆ __beta

double JGEOMETRY3D::JEulerAngle3D::__beta
protected

Definition at line 294 of file JEulerAngle3D.hh.

◆ __gamma

double JGEOMETRY3D::JEulerAngle3D::__gamma
protected

Definition at line 295 of file JEulerAngle3D.hh.


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