MCPcopy Create free account
hub / github.com/PX4/eigen / eulerangles

Function eulerangles

unsupported/test/EulerAngles.cpp:155–200  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

153}
154
155template<typename Scalar> void eulerangles()
156{
157 typedef Matrix<Scalar,3,3> Matrix3;
158 typedef Matrix<Scalar,3,1> Vector3;
159 typedef Array<Scalar,3,1> Array3;
160 typedef Quaternion<Scalar> Quaternionx;
161 typedef AngleAxis<Scalar> AngleAxisType;
162
163 Scalar a = internal::random<Scalar>(-Scalar(EIGEN_PI), Scalar(EIGEN_PI));
164 Quaternionx q1;
165 q1 = AngleAxisType(a, Vector3::Random().normalized());
166 Matrix3 m;
167 m = q1;
168
169 Vector3 ea = m.eulerAngles(0,1,2);
170 check_all_var(ea);
171 ea = m.eulerAngles(0,1,0);
172 check_all_var(ea);
173
174 // Check with purely random Quaternion:
175 q1.coeffs() = Quaternionx::Coefficients::Random().normalized();
176 m = q1;
177 ea = m.eulerAngles(0,1,2);
178 check_all_var(ea);
179 ea = m.eulerAngles(0,1,0);
180 check_all_var(ea);
181
182 // Check with random angles in range [0:pi]x[-pi:pi]x[-pi:pi].
183 ea = (Array3::Random() + Array3(1,0,0))*Scalar(EIGEN_PI)*Array3(0.5,1,1);
184 check_all_var(ea);
185
186 ea[2] = ea[0] = internal::random<Scalar>(0,Scalar(EIGEN_PI));
187 check_all_var(ea);
188
189 ea[0] = ea[1] = internal::random<Scalar>(0,Scalar(EIGEN_PI));
190 check_all_var(ea);
191
192 ea[1] = 0;
193 check_all_var(ea);
194
195 ea.head(2).setZero();
196 check_all_var(ea);
197
198 ea.setZero();
199 check_all_var(ea);
200}
201
202void test_EulerAngles()
203{

Callers

nothing calls this directly

Calls 5

eulerAnglesMethod · 0.80
coeffsMethod · 0.80
check_all_varFunction · 0.70
normalizedMethod · 0.45
setZeroMethod · 0.45

Tested by

no test coverage detected