1 #ifndef DataFormats_GeometrySurface_SOARotation_h 2 #define DataFormats_GeometrySurface_SOARotation_h 54 T & ux,
T & uy,
T & uz)
const {
63 T & ux,
T & uy,
T & uz)
const {
73 T & ux,
T & uy,
T & uz)
const {
116 px(ix), py(iy), pz(iz),
rot(irot){}
123 T & ux,
T & uy,
T & uz)
const {
124 rot.multiply(vx-px, vy-py, vz-pz, ux, uy, uz);
130 T & ux,
T & uy,
T & uz)
const {
131 rot.multiplyInverse(vx, vy, vz, ux, uy, uz);
132 ux+=px; uy+=py; uz+=pz;
137 T & ux,
T & uy,
T & uz)
const {
138 rot.multiplyInverse(vx, vy, ux, uy, uz);
139 ux+=px; uy+=py; uz+=pz;
144 T x()
const {
return px; }
146 T y()
const {
return py; }
148 T z()
const {
return pz; }
157 #endif // DataFormats_GeometrySurface_SOARotation_h
constexpr SOARotation(const T *p)
constexpr T const & yy() const
constexpr SOARotation(const TkRotation< U > &a)
constexpr void toGlobal(T const vx, T const vy, T &ux, T &uy, T &uz) const
constexpr void toLocal(T const vx, T const vy, T const vz, T &ux, T &uy, T &uz) const
constexpr SOARotation(T xx, T xy, T xz, T yx, T yy, T yz, T zx, T zy, T zz)
constexpr T const & yz() const
constexpr void multiplyInverse(T const vx, T const vy, T &ux, T &uy, T &uz) const
constexpr T const & xz() const
constexpr SOARotation transposed() const
constexpr T const & zz() const
constexpr T const & zy() const
constexpr T const & yx() const
constexpr void toGlobal(T const vx, T const vy, T const vz, T &ux, T &uy, T &uz) const
constexpr T const & zx() const
constexpr T const & xx() const
constexpr T const & xy() const
constexpr SOAFrame(T ix, T iy, T iz, SOARotation< T > const &irot)
constexpr SOARotation< T > const & rotation() const
constexpr void multiplyInverse(T const vx, T const vy, T const vz, T &ux, T &uy, T &uz) const
constexpr void multiply(T const vx, T const vy, T const vz, T &ux, T &uy, T &uz) const