CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Attributes
TkRotation< T > Class Template Reference

#include <newTkRotation.h>

Public Types

typedef Vector3DBase< T,
GlobalTag
GlobalVector
 

Public Member Functions

Basic3DVector< T > multiplyInverse (const Basic3DVector< T > &v) const
 
template<class Scalar >
Basic3DVector< Scalar > multiplyInverse (const Basic3DVector< Scalar > &v) const
 
Basic3DVector< T > multiplyInverse (const Basic3DVector< T > &v) const
 
template<class Scalar >
Basic3DVector< Scalar > multiplyInverse (const Basic3DVector< Scalar > &v) const
 
Basic3DVector< T > multiplyInverse (const Basic2DVector< T > &v) const
 
Basic3DVector< T > multiplyInverse (const Basic2DVector< T > &v) const
 
TkRotation multiplyInverse (const TkRotation &b) const
 
TkRotation multiplyInverse (const TkRotation &b) const
 
Basic3DVector< T > operator* (const Basic3DVector< T > &v) const
 
Basic3DVector< T > operator* (const Basic3DVector< T > &v) const
 
Basic3DVector< T > operator* (const Basic2DVector< T > &v) const
 
Basic3DVector< T > operator* (const Basic2DVector< T > &v) const
 
TkRotation operator* (const TkRotation &b) const
 
TkRotation operator* (const TkRotation &b) const
 
TkRotationoperator*= (const TkRotation &b)
 
TkRotationoperator*= (const TkRotation &b)
 
TkRotationrotateAxes (const Basic3DVector< T > &newX, const Basic3DVector< T > &newY, const Basic3DVector< T > &newZ)
 
TkRotationrotateAxes (const Basic3DVector< T > &newX, const Basic3DVector< T > &newY, const Basic3DVector< T > &newZ)
 
 TkRotation ()
 
 TkRotation ()
 
 TkRotation (mathSSE::Rot3< T > const &irot)
 
 TkRotation (T xx, T xy, T xz, T yx, T yy, T yz, T zx, T zy, T zz)
 
 TkRotation (T xx, T xy, T xz, T yx, T yy, T yz, T zx, T zy, T zz)
 
 TkRotation (const T *p)
 
 TkRotation (const T *p)
 
 TkRotation (const GlobalVector &aX, const GlobalVector &aY)
 
 TkRotation (const GlobalVector &aX, const GlobalVector &aY)
 
 TkRotation (const GlobalVector &uX, const GlobalVector &uY, const GlobalVector &uZ)
 
 TkRotation (const GlobalVector &aX, const GlobalVector &aY, const GlobalVector &aZ)
 
 TkRotation (const Basic3DVector< T > &axis, T phi)
 
 TkRotation (const Basic3DVector< T > &axis, T phi)
 
template<typename U >
 TkRotation (const TkRotation< U > &a)
 
template<typename U >
 TkRotation (const TkRotation< U > &a)
 
TkRotationtransform (const TkRotation &b)
 
TkRotationtransform (const TkRotation &b)
 
TkRotation transposed () const
 
TkRotation transposed () const
 
Basic3DVector< T > x () const
 
Basic3DVector< T > x () const
 
xx () const
 
T const & xx () const
 
xy () const
 
T const & xy () const
 
xz () const
 
T const & xz () const
 
Basic3DVector< T > y () const
 
Basic3DVector< T > y () const
 
yx () const
 
T const & yx () const
 
yy () const
 
T const & yy () const
 
yz () const
 
T const & yz () const
 
Basic3DVector< T > z () const
 
Basic3DVector< T > z () const
 
zx () const
 
T const & zx () const
 
zy () const
 
T const & zy () const
 
zz () const
 
T const & zz () const
 

Private Attributes

R11
 
R12
 
R13
 
R21
 
R22
 
R23
 
R31
 
R32
 
R33
 
mathSSE::Rot3< T > rot
 

Detailed Description

template<class T>
class TkRotation< T >

Rotaion matrix used by Surface.

Definition at line 13 of file newTkRotation.h.

Member Typedef Documentation

template<class T>
typedef Vector3DBase< T, GlobalTag> TkRotation< T >::GlobalVector

Definition at line 32 of file newTkRotation.h.

Constructor & Destructor Documentation

template<class T>
TkRotation< T >::TkRotation ( )
inline
template<class T>
TkRotation< T >::TkRotation ( mathSSE::Rot3< T > const &  irot)
inline

Definition at line 35 of file newTkRotation.h.

35 : rot(irot){}
mathSSE::Rot3< T > rot
template<class T>
TkRotation< T >::TkRotation ( xx,
xy,
xz,
yx,
yy,
yz,
zx,
zy,
zz 
)
inline

Definition at line 37 of file newTkRotation.h.

37  :
38  rot(xx,xy,xz, yx,yy,yz, zx, zy,zz){}
T xx() const
T yx() const
mathSSE::Rot3< T > rot
T zx() const
T xy() const
T zz() const
T zy() const
T yy() const
T xz() const
T yz() const
template<class T>
TkRotation< T >::TkRotation ( const T *  p)
inline

Definition at line 40 of file newTkRotation.h.

40  :
41  rot(p[0],p[1],p[2],
42  p[3],p[4],p[5],
43  p[6],p[7],p[8]) {}
mathSSE::Rot3< T > rot
template<class T>
TkRotation< T >::TkRotation ( const GlobalVector aX,
const GlobalVector aY 
)
inline

Definition at line 45 of file newTkRotation.h.

45  {
46 
47  GlobalVector uX = aX.unit();
48  GlobalVector uY = aY.unit();
49  GlobalVector uZ(uX.cross(uY));
50 
51  rot.axis[0]= uX.basicVector().v;
52  rot.axis[1]= uY.basicVector().v;
53  rot.axis[2]= uZ.basicVector().v;
54 
55  }
mathSSE::Rot3< T > rot
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
Definition: Vector3DBase.h:119
mathSSE::Vec4< T > v
Vector3DBase unit() const
Definition: Vector3DBase.h:57
const BasicVectorType & basicVector() const
Definition: PV3DBase.h:54
template<class T>
TkRotation< T >::TkRotation ( const GlobalVector uX,
const GlobalVector uY,
const GlobalVector uZ 
)
inline

Construct from global vectors of the x, y and z axes. The axes are assumed to be unit vectors forming a right-handed orthonormal basis. No checks are performed!

Definition at line 61 of file newTkRotation.h.

62  {
63  rot.axis[0]= uX.basicVector().v;
64  rot.axis[1]= uY.basicVector().v;
65  rot.axis[2]= uZ.basicVector().v;
66  }
mathSSE::Rot3< T > rot
mathSSE::Vec4< T > v
const BasicVectorType & basicVector() const
Definition: PV3DBase.h:54
template<class T>
TkRotation< T >::TkRotation ( const Basic3DVector< T > &  axis,
phi 
)
inline

rotation around abritrary axis by the amount of phi: its constructed by O^-1(z<->axis) rot_z(phi) O(z<->axis) the frame is rotated such that the z-asis corresponds to the rotation axis desired. THen it's rotated round the "new" z-axis, and then the initial transformation is "taken back" again. unfortuately I'm too stupid to describe such thing directly by 3 Euler angles.. hence I have to construckt it this way...by brute force

Definition at line 77 of file newTkRotation.h.

77  :
78  rot( cos(phi), sin(phi), 0,
79  -sin(phi), cos(phi), 0,
80  0, 0, 1) {
81 
82  //rotation around the z-axis by phi
83  TkRotation tmpRotz ( cos(axis.phi()), sin(axis.phi()), 0.,
84  -sin(axis.phi()), cos(axis.phi()), 0.,
85  0., 0., 1. );
86  //rotation around y-axis by theta
87  TkRotation tmpRoty ( cos(axis.theta()), 0.,-sin(axis.theta()),
88  0., 1., 0.,
89  sin(axis.theta()), 0., cos(axis.theta()) );
90  (*this)*=tmpRoty;
91  (*this)*=tmpRotz; // = this * tmpRoty * tmpRotz
92 
93  // (tmpRoty * tmpRotz)^-1 * this * tmpRoty * tmpRotz
94 
95  *this = (tmpRoty*tmpRotz).multiplyInverse(*this);
96 
97  }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Theta< T > theta() const
Geom::Phi< T > phi() const
mathSSE::Rot3< T > rot
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Basic3DVector< T > multiplyInverse(const Basic3DVector< T > &v) const
Definition: DDAxes.h:10
template<class T>
template<typename U >
TkRotation< T >::TkRotation ( const TkRotation< U > &  a)
inline

Definition at line 132 of file newTkRotation.h.

132  :
133  rot (a.xx(), a.xy(), a.xz(),
134  a.yx(), a.yy(), a.yz(),
135  a.zx(), a.zy(), a.zz()) {}
T xx() const
T yx() const
mathSSE::Rot3< T > rot
T zx() const
T xy() const
T zz() const
T zy() const
T yy() const
T xz() const
T yz() const
template<class T>
TkRotation< T >::TkRotation ( )
inline

Definition at line 32 of file oldTkRotation.h.

32  :
33  R11( 1), R12( 0), R13( 0),
34  R21( 0), R22( 1), R23( 0),
35  R31( 0), R32( 0), R33( 1) {}
template<class T>
TkRotation< T >::TkRotation ( xx,
xy,
xz,
yx,
yy,
yz,
zx,
zy,
zz 
)
inline

Definition at line 37 of file oldTkRotation.h.

37  :
38  R11(xx), R12(xy), R13(xz),
39  R21(yx), R22(yy), R23(yz),
40  R31(zx), R32(zy), R33(zz) {}
T xx() const
T yx() const
T zx() const
T xy() const
T zz() const
T zy() const
T yy() const
T xz() const
T yz() const
template<class T>
TkRotation< T >::TkRotation ( const T *  p)
inline

Definition at line 42 of file oldTkRotation.h.

42  :
43  R11(p[0]), R12(p[1]), R13(p[2]),
44  R21(p[3]), R22(p[4]), R23(p[5]),
45  R31(p[6]), R32(p[7]), R33(p[8]) {}
template<class T>
TkRotation< T >::TkRotation ( const GlobalVector aX,
const GlobalVector aY 
)
inline

Definition at line 47 of file oldTkRotation.h.

47  {
48 
49  GlobalVector uX = aX.unit();
50  GlobalVector uY = aY.unit();
51  GlobalVector uZ(uX.cross(uY));
52 
53  R11 = uX.x(); R12 = uX.y(); R13 = uX.z();
54  R21 = uY.x(); R22 = uY.y(); R23 = uY.z();
55  R31 = uZ.x(); R32 = uZ.y(); R33 = uZ.z();
56 
57  }
T y() const
Definition: PV3DBase.h:57
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
Definition: Vector3DBase.h:119
T z() const
Definition: PV3DBase.h:58
Vector3DBase unit() const
Definition: Vector3DBase.h:57
T x() const
Definition: PV3DBase.h:56
template<class T>
TkRotation< T >::TkRotation ( const GlobalVector aX,
const GlobalVector aY,
const GlobalVector aZ 
)
inline

Construct from global vectors of the x, y and z axes. The axes are assumed to be unit vectors forming a right-handed orthonormal basis. No checks are performed!

Definition at line 63 of file oldTkRotation.h.

64  :
65  R11( aX.x()), R12( aX.y()), R13( aX.z()),
66  R21( aY.x()), R22( aY.y()), R23( aY.z()),
67  R31( aZ.x()), R32( aZ.y()), R33( aZ.z()) {}
T y() const
Definition: PV3DBase.h:57
T z() const
Definition: PV3DBase.h:58
T x() const
Definition: PV3DBase.h:56
template<class T>
TkRotation< T >::TkRotation ( const Basic3DVector< T > &  axis,
phi 
)
inline

rotation around abritrary axis by the amount of phi: its constructed by O^-1(z<->axis) rot_z(phi) O(z<->axis) the frame is rotated such that the z-asis corresponds to the rotation axis desired. THen it's rotated round the "new" z-axis, and then the initial transformation is "taken back" again. unfortuately I'm too stupid to describe such thing directly by 3 Euler angles.. hence I have to construckt it this way...by brute force

Definition at line 78 of file oldTkRotation.h.

78  :
79  R11( cos(phi) ), R12( sin(phi)), R13( 0),
80  R21( -sin(phi)), R22( cos(phi)), R23( 0),
81  R31( 0), R32( 0), R33( 1) {
82 
83  //rotation around the z-axis by phi
84  TkRotation tmpRotz ( cos(axis.phi()), sin(axis.phi()), 0.,
85  -sin(axis.phi()), cos(axis.phi()), 0.,
86  0., 0., 1. );
87  //rotation around y-axis by theta
88  TkRotation tmpRoty ( cos(axis.theta()), 0.,-sin(axis.theta()),
89  0., 1., 0.,
90  sin(axis.theta()), 0., cos(axis.theta()) );
91  (*this)*=tmpRoty;
92  (*this)*=tmpRotz; // = this * tmpRoty * tmpRotz
93 
94  // (tmpRoty * tmpRotz)^-1 * this * tmpRoty * tmpRotz
95 
96  *this = (tmpRoty*tmpRotz).multiplyInverse(*this);
97 
98  }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Theta< T > theta() const
Geom::Phi< T > phi() const
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Basic3DVector< T > multiplyInverse(const Basic3DVector< T > &v) const
Definition: DDAxes.h:10
template<class T>
template<typename U >
TkRotation< T >::TkRotation ( const TkRotation< U > &  a)
inline

Definition at line 133 of file oldTkRotation.h.

133  :
134  R11(a.xx()), R12(a.xy()), R13(a.xz()),
135  R21(a.yx()), R22(a.yy()), R23(a.yz()),
136  R31(a.zx()), R32(a.zy()), R33(a.zz()) {}
T xx() const
T yx() const
T zx() const
T xy() const
T zz() const
T zy() const
T yy() const
T xz() const
T yz() const

Member Function Documentation

template<class T>
Basic3DVector<T> TkRotation< T >::multiplyInverse ( const Basic3DVector< T > &  v) const
inline
template<class T>
template<class Scalar >
Basic3DVector<Scalar> TkRotation< T >::multiplyInverse ( const Basic3DVector< Scalar > &  v) const
inline

Definition at line 149 of file newTkRotation.h.

149  {
150  return Basic3DVector<Scalar>( xx()*v.x() + yx()*v.y() + zx()*v.z(),
151  xy()*v.x() + yy()*v.y() + zy()*v.z(),
152  xz()*v.x() + yz()*v.y() + zz()*v.z());
153  }
T xx() const
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
T yx() const
T zx() const
T xy() const
T zz() const
T z() const
Cartesian z coordinate.
T zy() const
T yy() const
T xz() const
T yz() const
template<class T>
Basic3DVector<T> TkRotation< T >::multiplyInverse ( const Basic3DVector< T > &  v) const
inline

Definition at line 150 of file oldTkRotation.h.

150  {
151  return Basic3DVector<T>( R11*v.x() + R21*v.y() + R31*v.z(),
152  R12*v.x() + R22*v.y() + R32*v.z(),
153  R13*v.x() + R23*v.y() + R33*v.z());
154  }
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
T z() const
Cartesian z coordinate.
template<class T>
template<class Scalar >
Basic3DVector<Scalar> TkRotation< T >::multiplyInverse ( const Basic3DVector< Scalar > &  v) const
inline

Definition at line 158 of file oldTkRotation.h.

158  {
159  return Basic3DVector<Scalar>( R11*v.x() + R21*v.y() + R31*v.z(),
160  R12*v.x() + R22*v.y() + R32*v.z(),
161  R13*v.x() + R23*v.y() + R33*v.z());
162  }
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
T z() const
Cartesian z coordinate.
template<class T>
Basic3DVector<T> TkRotation< T >::multiplyInverse ( const Basic2DVector< T > &  v) const
inline

Definition at line 160 of file newTkRotation.h.

160  {
161  return Basic3DVector<T>( xx()*v.x() + yx()*v.y(),
162  xy()*v.x() + yy()*v.y(),
163  xz()*v.x() + yz()*v.y());
164  }
T xx() const
T yx() const
T xy() const
T yy() const
T y() const
Cartesian y coordinate.
Definition: Basic2DVector.h:65
T xz() const
T yz() const
T x() const
Cartesian x coordinate.
Definition: Basic2DVector.h:62
template<class T>
Basic3DVector<T> TkRotation< T >::multiplyInverse ( const Basic2DVector< T > &  v) const
inline

Definition at line 170 of file oldTkRotation.h.

170  {
171  return Basic3DVector<T>( R11*v.x() + R21*v.y(),
172  R12*v.x() + R22*v.y(),
173  R13*v.x() + R23*v.y());
174  }
T y() const
Cartesian y coordinate.
Definition: Basic2DVector.h:65
T x() const
Cartesian x coordinate.
Definition: Basic2DVector.h:62
template<class T>
TkRotation TkRotation< T >::multiplyInverse ( const TkRotation< T > &  b) const
inline

Definition at line 171 of file newTkRotation.h.

171  {
172  return rot.transpose()*b.rot;
173  }
mathSSE::Rot3< T > rot
template<class T>
TkRotation TkRotation< T >::multiplyInverse ( const TkRotation< T > &  b) const
inline

Definition at line 190 of file oldTkRotation.h.

190  {
191  return TkRotation(R11*b.R11 + R21*b.R21 + R31*b.R31,
192  R11*b.R12 + R21*b.R22 + R31*b.R32,
193  R11*b.R13 + R21*b.R23 + R31*b.R33,
194  R12*b.R11 + R22*b.R21 + R32*b.R31,
195  R12*b.R12 + R22*b.R22 + R32*b.R32,
196  R12*b.R13 + R22*b.R23 + R32*b.R33,
197  R13*b.R11 + R23*b.R21 + R33*b.R31,
198  R13*b.R12 + R23*b.R22 + R33*b.R32,
199  R13*b.R13 + R23*b.R23 + R33*b.R33);
200  }
template<class T>
Basic3DVector<T> TkRotation< T >::operator* ( const Basic3DVector< T > &  v) const
inline

Definition at line 141 of file newTkRotation.h.

Referenced by TkRotation< align::Scalar >::operator*=().

141  {
142  return rot.rotate(v.v);
143  }
mathSSE::Rot3< T > rot
mathSSE::Vec4< T > v
template<class T>
Basic3DVector<T> TkRotation< T >::operator* ( const Basic3DVector< T > &  v) const
inline

Definition at line 144 of file oldTkRotation.h.

144  {
145  return Basic3DVector<T>( R11*v.x() + R12*v.y() + R13*v.z(),
146  R21*v.x() + R22*v.y() + R23*v.z(),
147  R31*v.x() + R32*v.y() + R33*v.z());
148  }
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
T z() const
Cartesian z coordinate.
template<class T>
Basic3DVector<T> TkRotation< T >::operator* ( const Basic2DVector< T > &  v) const
inline

Definition at line 155 of file newTkRotation.h.

155  {
156  return Basic3DVector<T>( xx()*v.x() + xy()*v.y(),
157  yx()*v.x() + yy()*v.y(),
158  zx()*v.x() + zy()*v.y());
159  }
T xx() const
T yx() const
T zx() const
T xy() const
T zy() const
T yy() const
T y() const
Cartesian y coordinate.
Definition: Basic2DVector.h:65
T x() const
Cartesian x coordinate.
Definition: Basic2DVector.h:62
template<class T>
Basic3DVector<T> TkRotation< T >::operator* ( const Basic2DVector< T > &  v) const
inline

Definition at line 165 of file oldTkRotation.h.

165  {
166  return Basic3DVector<T>( R11*v.x() + R12*v.y(),
167  R21*v.x() + R22*v.y(),
168  R31*v.x() + R32*v.y());
169  }
T y() const
Cartesian y coordinate.
Definition: Basic2DVector.h:65
T x() const
Cartesian x coordinate.
Definition: Basic2DVector.h:62
template<class T>
TkRotation TkRotation< T >::operator* ( const TkRotation< T > &  b) const
inline

Definition at line 168 of file newTkRotation.h.

168  {
169  return rot*b.rot;
170  }
mathSSE::Rot3< T > rot
template<class T>
TkRotation TkRotation< T >::operator* ( const TkRotation< T > &  b) const
inline

Definition at line 178 of file oldTkRotation.h.

178  {
179  return TkRotation(R11*b.R11 + R12*b.R21 + R13*b.R31,
180  R11*b.R12 + R12*b.R22 + R13*b.R32,
181  R11*b.R13 + R12*b.R23 + R13*b.R33,
182  R21*b.R11 + R22*b.R21 + R23*b.R31,
183  R21*b.R12 + R22*b.R22 + R23*b.R32,
184  R21*b.R13 + R22*b.R23 + R23*b.R33,
185  R31*b.R11 + R32*b.R21 + R33*b.R31,
186  R31*b.R12 + R32*b.R22 + R33*b.R32,
187  R31*b.R13 + R32*b.R23 + R33*b.R33);
188  }
template<class T>
TkRotation& TkRotation< T >::operator*= ( const TkRotation< T > &  b)
inline

Definition at line 175 of file newTkRotation.h.

175  {
176  return *this = operator * (b);
177  }
Basic3DVector< T > operator*(const Basic3DVector< T > &v) const
template<class T>
TkRotation& TkRotation< T >::operator*= ( const TkRotation< T > &  b)
inline

Definition at line 202 of file oldTkRotation.h.

202  {
203  return *this = operator * (b);
204  }
Basic3DVector< T > operator*(const Basic3DVector< T > &v) const
template<class T>
TkRotation& TkRotation< T >::rotateAxes ( const Basic3DVector< T > &  newX,
const Basic3DVector< T > &  newY,
const Basic3DVector< T > &  newZ 
)
inline

Definition at line 184 of file newTkRotation.h.

Referenced by RPCGeometryBuilderFromCondDB::build(), CSCGeometryBuilder::buildChamber(), and RPCGeometryBuilderFromDDD::buildGeometry().

186  {
187  T del = 0.001;
188 
189  if (
190 
191  // the check for right-handedness is not needed since
192  // we want to change the handedness when it's left in cmsim
193  //
194  // fabs(newZ.x()-w.x()) > del ||
195  // fabs(newZ.y()-w.y()) > del ||
196  // fabs(newZ.z()-w.z()) > del ||
197  fabs(newX.mag2()-1.) > del ||
198  fabs(newY.mag2()-1.) > del ||
199  fabs(newZ.mag2()-1.) > del ||
200  fabs(newX.dot(newY)) > del ||
201  fabs(newY.dot(newZ)) > del ||
202  fabs(newZ.dot(newX)) > del) {
204  return *this;
205  } else {
206  return transform(TkRotation(newX.x(), newY.x(), newZ.x(),
207  newX.y(), newY.y(), newZ.y(),
208  newX.z(), newY.z(), newZ.z()));
209  }
210  }
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
TkRotation & transform(const TkRotation &b)
T z() const
Cartesian z coordinate.
void TkRotationErr2()
Definition: TkRotation.cc:23
T dot(const Basic3DVector &v) const
Scalar product, or &quot;dot&quot; product, with a vector of same type.
T mag2() const
The vector magnitude squared. Equivalent to vec.dot(vec)
template<class T>
TkRotation& TkRotation< T >::rotateAxes ( const Basic3DVector< T > &  newX,
const Basic3DVector< T > &  newY,
const Basic3DVector< T > &  newZ 
)
inline

Definition at line 211 of file oldTkRotation.h.

213  {
214  T del = 0.001;
215 
216  if (
217 
218  // the check for right-handedness is not needed since
219  // we want to change the handedness when it's left in cmsim
220  //
221  // fabs(newZ.x()-w.x()) > del ||
222  // fabs(newZ.y()-w.y()) > del ||
223  // fabs(newZ.z()-w.z()) > del ||
224  fabs(newX.mag2()-1.) > del ||
225  fabs(newY.mag2()-1.) > del ||
226  fabs(newZ.mag2()-1.) > del ||
227  fabs(newX.dot(newY)) > del ||
228  fabs(newY.dot(newZ)) > del ||
229  fabs(newZ.dot(newX)) > del) {
231  return *this;
232  } else {
233  return transform(TkRotation(newX.x(), newY.x(), newZ.x(),
234  newX.y(), newY.y(), newZ.y(),
235  newX.z(), newY.z(), newZ.z()));
236  }
237  }
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
TkRotation & transform(const TkRotation &b)
T z() const
Cartesian z coordinate.
void TkRotationErr2()
Definition: TkRotation.cc:23
T dot(const Basic3DVector &v) const
Scalar product, or &quot;dot&quot; product, with a vector of same type.
T mag2() const
The vector magnitude squared. Equivalent to vec.dot(vec)
template<class T>
TkRotation& TkRotation< T >::transform ( const TkRotation< T > &  b)
inline
template<class T>
TkRotation& TkRotation< T >::transform ( const TkRotation< T > &  b)
inline
template<class T>
TkRotation TkRotation< T >::transposed ( ) const
inline
template<class T>
TkRotation TkRotation< T >::transposed ( ) const
inline

Definition at line 138 of file oldTkRotation.h.

template<class T>
Basic3DVector<T> TkRotation< T >::x ( ) const
inline
template<class T>
Basic3DVector<T> TkRotation< T >::x ( ) const
inline
template<class T>
T TkRotation< T >::xx ( ) const
inline
template<class T>
T const& TkRotation< T >::xx ( ) const
inline

Definition at line 244 of file oldTkRotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

244 { return R11;}
template<class T>
T TkRotation< T >::xy ( ) const
inline
template<class T>
T const& TkRotation< T >::xy ( ) const
inline

Definition at line 245 of file oldTkRotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

245 { return R12;}
template<class T>
T TkRotation< T >::xz ( ) const
inline
template<class T>
T const& TkRotation< T >::xz ( ) const
inline

Definition at line 246 of file oldTkRotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

246 { return R13;}
template<class T>
Basic3DVector<T> TkRotation< T >::y ( ) const
inline
template<class T>
Basic3DVector<T> TkRotation< T >::y ( ) const
inline
template<class T>
T TkRotation< T >::yx ( ) const
inline
template<class T>
T const& TkRotation< T >::yx ( ) const
inline

Definition at line 247 of file oldTkRotation.h.

247 { return R21;}
template<class T>
T TkRotation< T >::yy ( ) const
inline
template<class T>
T const& TkRotation< T >::yy ( ) const
inline

Definition at line 248 of file oldTkRotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

248 { return R22;}
template<class T>
T TkRotation< T >::yz ( ) const
inline
template<class T>
T const& TkRotation< T >::yz ( ) const
inline

Definition at line 249 of file oldTkRotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

249 { return R23;}
template<class T>
Basic3DVector<T> TkRotation< T >::z ( ) const
inline

Definition at line 215 of file newTkRotation.h.

Referenced by JacobianCurvilinearToLocal::JacobianCurvilinearToLocal(), and geometryXMLparser.Alignable::pos().

215 { return rot.axis[2];}
mathSSE::Rot3< T > rot
template<class T>
Basic3DVector<T> TkRotation< T >::z ( ) const
inline

Definition at line 241 of file oldTkRotation.h.

Referenced by geometryXMLparser.Alignable::pos().

241 { return Basic3DVector<T>(zx(),zy(),zz());}
T zx() const
T zz() const
T zy() const
template<class T>
T TkRotation< T >::zx ( ) const
inline
template<class T>
T const& TkRotation< T >::zx ( ) const
inline

Definition at line 250 of file oldTkRotation.h.

250 { return R31;}
template<class T>
T TkRotation< T >::zy ( ) const
inline
template<class T>
T const& TkRotation< T >::zy ( ) const
inline

Definition at line 251 of file oldTkRotation.h.

251 { return R32;}
template<class T>
T TkRotation< T >::zz ( ) const
inline
template<class T>
T const& TkRotation< T >::zz ( ) const
inline

Definition at line 252 of file oldTkRotation.h.

Referenced by geometryXMLparser.Alignable::covariance().

252 { return R33;}

Member Data Documentation

template<class T>
T TkRotation< T >::R11
private
template<class T>
T TkRotation< T >::R12
private
template<class T>
T TkRotation< T >::R13
private
template<class T>
T TkRotation< T >::R21
private
template<class T>
T TkRotation< T >::R22
private
template<class T>
T TkRotation< T >::R23
private
template<class T>
T TkRotation< T >::R31
private
template<class T>
T TkRotation< T >::R32
private
template<class T>
T TkRotation< T >::R33
private
template<class T>
mathSSE::Rot3<T> TkRotation< T >::rot
private