Home | History | Annotate | Download | only in test

Lines Matching refs:q1

24 template<typename QuatType> void check_slerp(const QuatType& q0, const QuatType& q1)
32 Scalar theta_tot = AA(q1*q0.inverse()).angle();
37 QuatType q = q0.slerp(t,q1);
72 Quaternionx q1, q2;
75 q1.coeffs().setRandom();
76 VERIFY_IS_APPROX(q1.coeffs(), (q1*q2).coeffs());
79 q1 *= q2;
81 q1 = AngleAxisx(a, v0.normalized());
85 Scalar refangle = internal::abs(AngleAxisx(q1.inverse()*q2).angle());
89 if((q1.coeffs()-q2.coeffs()).norm() > 10*largeEps)
91 VERIFY_IS_MUCH_SMALLER_THAN(internal::abs(q1.angularDistance(q2) - refangle), Scalar(1));
95 VERIFY_IS_APPROX(q1 * v2, q1.toRotationMatrix() * v2);
96 VERIFY_IS_APPROX(q1 * q2 * v2,
97 q1.toRotationMatrix() * q2.toRotationMatrix() * v2);
99 VERIFY( (q2*q1).isApprox(q1*q2, largeEps)
100 || !(q2 * q1 * v2).isApprox(q1.toRotationMatrix() * q2.toRotationMatrix() * v2));
102 q2 = q1.toRotationMatrix();
103 VERIFY_IS_APPROX(q1*v1,q2*v1);
107 AngleAxisx aa = AngleAxisx(q1);
108 VERIFY_IS_APPROX(q1 * v1, Quaternionx(aa) * v1);
116 VERIFY_IS_NOT_APPROX(q1 * v1, Quaternionx(AngleAxisx(aa.angle()*2,aa.axis())) * v1);
142 VERIFY_IS_APPROX(q1 * (q1.inverse() * v1), v1);
143 VERIFY_IS_APPROX(q1 * (q1.conjugate() * v1), v1);
146 Quaternion<float> q1f = q1.template cast<float>();
147 VERIFY_IS_APPROX(q1f.template cast<Scalar>(),q1);
148 Quaternion<double> q1d = q1.template cast<double>();
149 VERIFY_IS_APPROX(q1d.template cast<Scalar>(),q1);
155 q1 = AngleAxisx(a, v0.normalized());
157 check_slerp(q1,q2);
159 q1 = AngleAxisx(b, v1.normalized());
161 check_slerp(q1,q2);
163 q1 = AngleAxisx(b, v1.normalized());
165 check_slerp(q1,q2);
167 q1.coeffs() = Vector4::Random().normalized();
168 q2.coeffs() = -q1.coeffs();
169 check_slerp(q1,q2);
188 Quaternionx q1 = MQuaternionA(array1);
193 VERIFY_IS_APPROX(q1.coeffs(), q2.coeffs());
194 VERIFY_IS_APPROX(q1.coeffs(), q3.coeffs());
211 QuaternionA *q1 = ::new(reinterpret_cast<void*>(array1)) QuaternionA;
215 q1->coeffs().setRandom();
216 *q2 = *q1;
217 *q3 = *q1;
219 VERIFY_IS_APPROX(q1->coeffs(), q2->coeffs());
220 VERIFY_IS_APPROX(q1->coeffs(), q3->coeffs());