• Home
  • Raw
  • Download

Lines Matching full:scalar

11 EIGEN_DONT_INLINE Q nlerp(const Q& a, const Q& b, typename Q::Scalar t)  in nlerp()
17 EIGEN_DONT_INLINE Q slerp_eigen(const Q& a, const Q& b, typename Q::Scalar t) in slerp_eigen()
23 EIGEN_DONT_INLINE Q slerp_legacy(const Q& a, const Q& b, typename Q::Scalar t) in slerp_legacy()
25 typedef typename Q::Scalar Scalar; in slerp_legacy() typedef
26 static const Scalar one = Scalar(1) - dummy_precision<Scalar>(); in slerp_legacy()
27 Scalar d = a.dot(b); in slerp_legacy()
28 Scalar absD = internal::abs(d); in slerp_legacy()
33 Scalar theta = std::acos(absD); in slerp_legacy()
34 Scalar sinTheta = internal::sin(theta); in slerp_legacy()
36 Scalar scale0 = internal::sin( ( Scalar(1) - t ) * theta) / sinTheta; in slerp_legacy()
37 Scalar scale1 = internal::sin( ( t * theta) ) / sinTheta; in slerp_legacy()
45 EIGEN_DONT_INLINE Q slerp_legacy_nlerp(const Q& a, const Q& b, typename Q::Scalar t) in slerp_legacy_nlerp()
47 typedef typename Q::Scalar Scalar; in slerp_legacy_nlerp() typedef
48 static const Scalar one = Scalar(1) - epsilon<Scalar>(); in slerp_legacy_nlerp()
49 Scalar d = a.dot(b); in slerp_legacy_nlerp()
50 Scalar absD = internal::abs(d); in slerp_legacy_nlerp()
52 Scalar scale0; in slerp_legacy_nlerp()
53 Scalar scale1; in slerp_legacy_nlerp()
57 scale0 = Scalar(1) - t; in slerp_legacy_nlerp()
63 Scalar theta = std::acos(absD); in slerp_legacy_nlerp()
64 Scalar sinTheta = internal::sin(theta); in slerp_legacy_nlerp()
66 scale0 = internal::sin( ( Scalar(1) - t ) * theta) / sinTheta; in slerp_legacy_nlerp()
85 EIGEN_DONT_INLINE Q slerp_rw(const Q& a, const Q& b, typename Q::Scalar t) in slerp_rw()
87 typedef typename Q::Scalar Scalar; in slerp_rw() typedef
89 Scalar d = a.dot(b); in slerp_rw()
90 Scalar theta; in slerp_rw()
92 theta = /*M_PI -*/ Scalar(2)*std::asin( (a.coeffs()+b.coeffs()).norm()/2 ); in slerp_rw()
94 theta = Scalar(2)*std::asin( (a.coeffs()-b.coeffs()).norm()/2 ); in slerp_rw()
97 // Scalar theta = std::acos(absD); in slerp_rw()
98 Scalar sinOverTheta = sin_over_x(theta); in slerp_rw()
100 Scalar scale0 = (Scalar(1)-t)*sin_over_x( ( Scalar(1) - t ) * theta) / sinOverTheta; in slerp_rw()
101 Scalar scale1 = t * sin_over_x( ( t * theta) ) / sinOverTheta; in slerp_rw()
105 return Quaternion<Scalar>(scale0 * a.coeffs() + scale1 * b.coeffs()); in slerp_rw()
109 EIGEN_DONT_INLINE Q slerp_gael(const Q& a, const Q& b, typename Q::Scalar t) in slerp_gael()
111 typedef typename Q::Scalar Scalar; in slerp_gael() typedef
113 Scalar d = a.dot(b); in slerp_gael()
114 Scalar theta; in slerp_gael()
115 // theta = Scalar(2) * atan2((a.coeffs()-b.coeffs()).norm(),(a.coeffs()+b.coeffs()).norm()); in slerp_gael()
120 theta = /*M_PI -*/ Scalar(2)*std::asin( (-a.coeffs()-b.coeffs()).norm()/2 ); in slerp_gael()
122 theta = Scalar(2)*std::asin( (a.coeffs()-b.coeffs()).norm()/2 ); in slerp_gael()
125 Scalar scale0; in slerp_gael()
126 Scalar scale1; in slerp_gael()
127 if(theta*theta-Scalar(6)==-Scalar(6)) in slerp_gael()
129 scale0 = Scalar(1) - t; in slerp_gael()
134 Scalar sinTheta = std::sin(theta); in slerp_gael()
135 scale0 = internal::sin( ( Scalar(1) - t ) * theta) / sinTheta; in slerp_gael()
141 return Quaternion<Scalar>(scale0 * a.coeffs() + scale1 * b.coeffs()); in slerp_gael()