Jpp master_rocky-44-g75b7c4f75
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 JEulerAngle3D & getEulerAngle () const
 Get Euler angle.
 
void setEulerAngle (const JEulerAngle3D &angle)
 Set Euler angle.
 
JEulerAngle3D & negate ()
 Negate angle.
 
JEulerAngle3D & add (const JEulerAngle3D &angle)
 Add angle.
 
JEulerAngle3D & sub (const JEulerAngle3D &angle)
 Subtract angle.
 
JEulerAngle3D & mul (const double factor)
 Scale angle.
 
JEulerAngle3D & div (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.
 
JReader & operator>> (JReader &in, JEulerAngle3D &angle)
 Read Euler angles from input.
 
JWriter & operator<< (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: