CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes
mathSSE::Rot3< T > Struct Template Reference

#include <SSERot.h>

Public Member Functions

 Rot3 ()
 
 Rot3 (T xx, T xy, T xz, T yx, T yy, T yz, T zx, T zy, T zz)
 
 Rot3 (Vec4< T > ix, Vec4< T > iy, Vec4< T > iz)
 
Rot3 rotate (Rot3 const &r) const
 
Vec4< Trotate (Vec4< T > v) const
 
Rot3 rotateBack (Rot3 const &r) const
 
Vec4< TrotateBack (Vec4< T > v) const
 
Rot3 transpose () const
 
Vec4< Tx ()
 
Vec4< Ty ()
 
Vec4< Tz ()
 

Public Attributes

Vec4< Taxis [3]
 

Detailed Description

template<typename T>
struct mathSSE::Rot3< T >

Definition at line 16 of file SSERot.h.

Constructor & Destructor Documentation

◆ Rot3() [1/3]

template<typename T>
mathSSE::Rot3< T >::Rot3 ( )
inline

Definition at line 19 of file SSERot.h.

19  {
20  axis[0].arr[0] = 1;
21  axis[1].arr[1] = 1;
22  axis[2].arr[2] = 1;
23  }

Referenced by mathSSE::Rot3< align::Scalar >::rotate(), mathSSE::Rot3< align::Scalar >::rotateBack(), and mathSSE::Rot3< align::Scalar >::transpose().

◆ Rot3() [2/3]

template<typename T>
mathSSE::Rot3< T >::Rot3 ( Vec4< T ix,
Vec4< T iy,
Vec4< T iz 
)
inline

Definition at line 25 of file SSERot.h.

25  {
26  axis[0] = ix;
27  axis[1] = iy;
28  axis[2] = iz;
29  }

◆ Rot3() [3/3]

template<typename T>
mathSSE::Rot3< T >::Rot3 ( T  xx,
T  xy,
T  xz,
T  yx,
T  yy,
T  yz,
T  zx,
T  zy,
T  zz 
)
inline

Definition at line 31 of file SSERot.h.

31  {
32  axis[0].set(xx, xy, xz);
33  axis[1].set(yx, yy, yz);
34  axis[2].set(zx, zy, zz);
35  }

Member Function Documentation

◆ rotate() [1/2]

template<typename T>
Rot3 mathSSE::Rot3< T >::rotate ( Rot3< T > const &  r) const
inline

Definition at line 61 of file SSERot.h.

61  {
62  Rot3 tr = transpose();
63  return Rot3(tr.rotateBack(r.axis[0]), tr.rotateBack(r.axis[1]), tr.rotateBack(r.axis[2]));
64  }

◆ rotate() [2/2]

template<typename T>
Vec4<T> mathSSE::Rot3< T >::rotate ( Vec4< T v) const
inline

Definition at line 54 of file SSERot.h.

54 { return transpose().rotateBack(v); }

◆ rotateBack() [1/2]

template<typename T>
Rot3 mathSSE::Rot3< T >::rotateBack ( Rot3< T > const &  r) const
inline

Definition at line 66 of file SSERot.h.

66  {
67  return Rot3(rotateBack(r.axis[0]), rotateBack(r.axis[1]), rotateBack(r.axis[2]));
68  }

◆ rotateBack() [2/2]

template<typename T>
Vec4<T> mathSSE::Rot3< T >::rotateBack ( Vec4< T v) const
inline

Definition at line 57 of file SSERot.h.

57  {
58  return v.template get1<0>() * axis[0] + v.template get1<1>() * axis[1] + v.template get1<2>() * axis[2];
59  }

Referenced by mathSSE::Rot3< align::Scalar >::rotate(), and mathSSE::Rot3< align::Scalar >::rotateBack().

◆ transpose()

template<typename T>
Rot3 mathSSE::Rot3< T >::transpose ( ) const
inline

Definition at line 37 of file SSERot.h.

37  {
38  return Rot3(axis[0].arr[0],
39  axis[1].arr[0],
40  axis[2].arr[0],
41  axis[0].arr[1],
42  axis[1].arr[1],
43  axis[2].arr[1],
44  axis[0].arr[2],
45  axis[1].arr[2],
46  axis[2].arr[2]);
47  }

Referenced by mathSSE::Rot3< align::Scalar >::rotate().

◆ x()

template<typename T>
Vec4<T> mathSSE::Rot3< T >::x ( )
inline

◆ y()

template<typename T>
Vec4<T> mathSSE::Rot3< T >::y ( )
inline

◆ z()

template<typename T>
Vec4<T> mathSSE::Rot3< T >::z ( )
inline

Definition at line 51 of file SSERot.h.

51 { return axis[2]; }

Referenced by geometryXMLparser.Alignable::pos(), and ntupleDataFormat._HitObject::r3D().

Member Data Documentation

◆ axis

template<typename T>
Vec4<T> mathSSE::Rot3< T >::axis[3]
mathSSE::Rot3::rotateBack
Vec4< T > rotateBack(Vec4< T > v) const
Definition: SSERot.h:57
geometryCSVtoXML.zz
zz
Definition: geometryCSVtoXML.py:19
geometryCSVtoXML.yz
yz
Definition: geometryCSVtoXML.py:19
mathSSE::Rot3::axis
Vec4< T > axis[3]
Definition: SSERot.h:17
mathSSE::Rot3::transpose
Rot3 transpose() const
Definition: SSERot.h:37
findQualityFiles.v
v
Definition: findQualityFiles.py:179
geometryCSVtoXML.xy
xy
Definition: geometryCSVtoXML.py:19
geometryCSVtoXML.yy
yy
Definition: geometryCSVtoXML.py:19
geometryCSVtoXML.xz
xz
Definition: geometryCSVtoXML.py:19
alignCSCRings.r
r
Definition: alignCSCRings.py:93
Rot3
Definition: ExtVec.h:181
Rot3::rotateBack
constexpr Vec4< T > rotateBack(Vec4< T > v) const
Definition: ExtVec.h:205
geometryCSVtoXML.xx
xx
Definition: geometryCSVtoXML.py:19
mathSSE::Rot3::Rot3
Rot3()
Definition: SSERot.h:19