20 m_matrix.setIdentity();
21 m_inverse_matrix.setIdentity();
26 m_inverse_matrix = m_matrix.inverse();
36 double cosine = std::cos(phi);
37 double sine = std::sin(phi);
38 Eigen::Matrix3d matrix;
40 matrix(1, 1) = cosine;
43 matrix(2, 2) = cosine;
49 double cosine = std::cos(phi);
50 double sine = std::sin(phi);
51 Eigen::Matrix3d matrix;
53 matrix(0, 0) = cosine;
56 matrix(2, 2) = cosine;
62 double cosine = std::cos(phi);
63 double sine = std::sin(phi);
64 Eigen::Matrix3d matrix;
66 matrix(0, 0) = cosine;
69 matrix(1, 1) = cosine;
78 return zrot * xrot * zrot2;
83 *p_beta = std::acos(m_matrix(2, 2));
85 if (std::abs(m_matrix(2, 2)) == 1.0) {
86 *p_alpha = std::atan2(m_matrix(1, 0), m_matrix(0, 0));
89 *p_alpha = std::atan2(m_matrix(0, 2), -m_matrix(1, 2));
90 *p_gamma = std::atan2(m_matrix(2, 0), m_matrix(2, 1));
96 return std::atan2(m_matrix(2, 1), m_matrix(1, 1));
101 return std::atan2(m_matrix(0, 2), m_matrix(2, 2));
106 return std::atan2(m_matrix(1, 0), m_matrix(0, 0));
117 auto x = m_matrix(0, 0) * v.
x() + m_matrix(0, 1) * v.
y() + m_matrix(0, 2) * v.
z();
118 auto y = m_matrix(1, 0) * v.
x() + m_matrix(1, 1) * v.
y() + m_matrix(1, 2) * v.
z();
119 auto z = m_matrix(2, 0) * v.
x() + m_matrix(2, 1) * v.
y() + m_matrix(2, 2) * v.
z();
128 auto x = m_inverse_matrix(0, 0) * v.
x() + m_inverse_matrix(0, 1) * v.
y()
129 + m_inverse_matrix(0, 2) * v.
z();
130 auto y = m_inverse_matrix(1, 0) * v.
x() + m_inverse_matrix(1, 1) * v.
y()
131 + m_inverse_matrix(1, 2) * v.
z();
132 auto z = m_inverse_matrix(2, 0) * v.
x() + m_inverse_matrix(2, 1) * v.
y()
133 + m_inverse_matrix(2, 2) * v.
z();
137 template kvector_t Transform3D::transformedInverse<kvector_t>(
const kvector_t& v)
const;
138 template cvector_t Transform3D::transformedInverse<cvector_t>(
const cvector_t& v)
const;
147 Eigen::Matrix3d product_matrix = this->m_matrix * other.m_matrix;
153 return this->m_matrix == other.m_matrix;
169 double alpha, beta, gamma;
171 return (alpha == 0.0 && beta == 0.0 && gamma == 0.0);
174 void Transform3D::print(std::ostream& ostr)
const
176 ostr <<
"Transform3D: " << m_matrix;
179 bool Transform3D::isXRotation()
const
181 if (m_matrix(0, 0) != 1.0)
183 if (m_matrix(0, 1) != 0.0)
185 if (m_matrix(0, 2) != 0.0)
187 if (m_matrix(1, 0) != 0.0)
189 if (m_matrix(2, 0) != 0.0)
194 bool Transform3D::isYRotation()
const
196 if (m_matrix(1, 1) != 1.0)
198 if (m_matrix(0, 1) != 0.0)
200 if (m_matrix(1, 0) != 0.0)
202 if (m_matrix(1, 2) != 0.0)
204 if (m_matrix(2, 1) != 0.0)
209 bool Transform3D::isZRotation()
const
211 if (m_matrix(2, 2) != 1.0)
213 if (m_matrix(0, 2) != 0.0)
215 if (m_matrix(1, 2) != 0.0)
217 if (m_matrix(2, 0) != 0.0)
219 if (m_matrix(2, 1) != 0.0)
Forked from CLHEP/Geometry by E.
T z() const
Returns z-component in cartesian coordinate system.
T y() const
Returns y-component in cartesian coordinate system.
T x() const
Returns x-component in cartesian coordinate system.