Lines Matching refs:Scalar
42 typedef typename internal::traits<Derived>::Scalar Scalar; typedef
43 typedef typename NumTraits<Scalar>::Real RealScalar;
51 typedef Matrix<Scalar,3,1> Vector3;
53 typedef Matrix<Scalar,3,3> Matrix3;
55 typedef AngleAxis<Scalar> AngleAxisType;
60 inline Scalar x() const { return this->derived().coeffs().coeff(0); } in x()
62 inline Scalar y() const { return this->derived().coeffs().coeff(1); } in y()
64 inline Scalar z() const { return this->derived().coeffs().coeff(2); } in z()
66 inline Scalar w() const { return this->derived().coeffs().coeff(3); } in w()
69 inline Scalar& x() { return this->derived().coeffs().coeffRef(0); } in x()
71 inline Scalar& y() { return this->derived().coeffs().coeffRef(1); } in y()
73 inline Scalar& z() { return this->derived().coeffs().coeffRef(2); } in z()
75 inline Scalar& w() { return this->derived().coeffs().coeffRef(3); } in w()
105 static inline Quaternion<Scalar> Identity() { return Quaternion<Scalar>(1, 0, 0, 0); } in Identity()
114 inline Scalar squaredNorm() const { return coeffs().squaredNorm(); } in squaredNorm()
119 inline Scalar norm() const { return coeffs().norm(); } in norm()
126 inline Quaternion<Scalar> normalized() const { return Quaternion<Scalar>(coeffs().normalized()); } in normalized()
133 …template<class OtherDerived> inline Scalar dot(const QuaternionBase<OtherDerived>& other) const { … in dot()
135 …template<class OtherDerived> Scalar angularDistance(const QuaternionBase<OtherDerived>& other) con…
144 …template<class OtherDerived> EIGEN_STRONG_INLINE Quaternion<Scalar> operator* (const QuaternionBas…
148 Quaternion<Scalar> inverse() const;
151 Quaternion<Scalar> conjugate() const;
153 …template<class OtherDerived> Quaternion<Scalar> slerp(const Scalar& t, const QuaternionBase<OtherD…
160 … QuaternionBase<OtherDerived>& other, const RealScalar& prec = NumTraits<Scalar>::dummy_precision(…
216 typedef _Scalar Scalar;
232 typedef _Scalar Scalar;
250 …inline Quaternion(const Scalar& w, const Scalar& x, const Scalar& y, const Scalar& z) : m_coeffs(x…
253 inline Quaternion(const Scalar* data) : m_coeffs(data) {}
271 { m_coeffs = other.coeffs().template cast<Scalar>(); }
342 typedef _Scalar Scalar;
353 EIGEN_STRONG_INLINE Map(const Scalar* coeffs) : m_coeffs(coeffs) {}
379 typedef _Scalar Scalar;
390 EIGEN_STRONG_INLINE Map(Scalar* coeffs) : m_coeffs(coeffs) {}
419 template<int Arch, class Derived1, class Derived2, typename Scalar, int _Options> struct quat_produ…
421 …static EIGEN_STRONG_INLINE Quaternion<Scalar> run(const QuaternionBase<Derived1>& a, const Quatern…
422 return Quaternion<Scalar>
436 EIGEN_STRONG_INLINE Quaternion<typename internal::traits<Derived>::Scalar>
439 …EIGEN_STATIC_ASSERT((internal::is_same<typename Derived::Scalar, typename OtherDerived::Scalar>::v…
442 typename internal::traits<Derived>::Scalar,
498 Scalar ha = Scalar(0.5)*aa.angle(); // Scalar(0.5) to suppress precision loss warnings
514 …EIGEN_STATIC_ASSERT((internal::is_same<typename Derived::Scalar, typename MatrixDerived::Scalar>::…
533 const Scalar tx = Scalar(2)*this->x();
534 const Scalar ty = Scalar(2)*this->y();
535 const Scalar tz = Scalar(2)*this->z();
536 const Scalar twx = tx*this->w();
537 const Scalar twy = ty*this->w();
538 const Scalar twz = tz*this->w();
539 const Scalar txx = tx*this->x();
540 const Scalar txy = ty*this->x();
541 const Scalar txz = tz*this->x();
542 const Scalar tyy = ty*this->y();
543 const Scalar tyz = tz*this->y();
544 const Scalar tzz = tz*this->z();
546 res.coeffRef(0,0) = Scalar(1)-(tyy+tzz);
550 res.coeffRef(1,1) = Scalar(1)-(txx+tzz);
554 res.coeffRef(2,2) = Scalar(1)-(txx+tyy);
577 Scalar c = v1.dot(v0);
587 if (c < Scalar(-1)+NumTraits<Scalar>::dummy_precision())
589 c = (max)(c,Scalar(-1));
590 Matrix<Scalar,2,3> m; m << v0.transpose(), v1.transpose();
591 JacobiSVD<Matrix<Scalar,2,3> > svd(m, ComputeFullV);
594 Scalar w2 = (Scalar(1)+c)*Scalar(0.5);
596 this->vec() = axis * sqrt(Scalar(1) - w2);
600 Scalar s = sqrt((Scalar(1)+c)*Scalar(2));
601 Scalar invs = Scalar(1)/s;
603 this->w() = s * Scalar(0.5);
619 template<typename Scalar, int Options>
621 Quaternion<Scalar,Options> Quaternion<Scalar,Options>::FromTwoVectors(const MatrixBase<Derived1>& a…
636 inline Quaternion<typename internal::traits<Derived>::Scalar> QuaternionBase<Derived>::inverse() co…
639 Scalar n2 = this->squaredNorm();
640 if (n2 > Scalar(0))
641 return Quaternion<Scalar>(conjugate().coeffs() / n2);
645 return Quaternion<Scalar>(Coefficients::Zero());
656 inline Quaternion<typename internal::traits<Derived>::Scalar>
659 return Quaternion<Scalar>(this->w(),-this->x(),-this->y(),-this->z());
667 inline typename internal::traits<Derived>::Scalar
672 Quaternion<Scalar> d = (*this) * other.conjugate();
673 return Scalar(2) * atan2( d.vec().norm(), abs(d.w()) );
686 Quaternion<typename internal::traits<Derived>::Scalar>
687 QuaternionBase<Derived>::slerp(const Scalar& t, const QuaternionBase<OtherDerived>& other) const
692 static const Scalar one = Scalar(1) - NumTraits<Scalar>::epsilon();
693 Scalar d = this->dot(other);
694 Scalar absD = abs(d);
696 Scalar scale0;
697 Scalar scale1;
701 scale0 = Scalar(1) - t;
707 Scalar theta = acos(absD);
708 Scalar sinTheta = sin(theta);
710 scale0 = sin( ( Scalar(1) - t ) * theta) / sinTheta;
713 if(d<Scalar(0)) scale1 = -scale1;
715 return Quaternion<Scalar>(scale0 * coeffs() + scale1 * other.coeffs());
724 typedef typename Other::Scalar Scalar;
731 Scalar t = mat.trace();
732 if (t > Scalar(0))
734 t = sqrt(t + Scalar(1.0));
735 q.w() = Scalar(0.5)*t;
736 t = Scalar(0.5)/t;
751 t = sqrt(mat.coeff(i,i)-mat.coeff(j,j)-mat.coeff(k,k) + Scalar(1.0));
752 q.coeffs().coeffRef(i) = Scalar(0.5) * t;
753 t = Scalar(0.5)/t;
765 typedef typename Other::Scalar Scalar;