35 #ifdef OSG_USE_FLOAT_QUAT
85 makeRotate(angle1,axis1,angle2,axis2,angle3,axis3);
92 makeRotate(angle1,axis1,angle2,axis2,angle3,axis3);
99 inline bool operator == (
const Quat& v)
const {
return _v[0]==v.
_v[0] &&
_v[1]==v.
_v[1] &&
_v[2]==v.
_v[2] &&
_v[3]==v.
_v[3]; }
101 inline bool operator != (
const Quat& v)
const {
return _v[0]!=v.
_v[0] ||
_v[1]!=v.
_v[1] ||
_v[2]!=v.
_v[2] ||
_v[3]!=v.
_v[3]; }
103 inline bool operator < (
const Quat& v)
const
105 if (
_v[0]<v.
_v[0])
return true;
106 else if (
_v[0]>v.
_v[0])
return false;
107 else if (
_v[1]<v.
_v[1])
return true;
108 else if (
_v[1]>v.
_v[1])
return false;
109 else if (
_v[2]<v.
_v[2])
return true;
110 else if (
_v[2]>v.
_v[2])
return false;
111 else return (
_v[3]<v.
_v[3]);
188 return Quat(
_v[0]*rhs,
_v[1]*rhs,
_v[2]*rhs,
_v[3]*rhs);
229 return Quat(
_v[0]*div,
_v[1]*div,
_v[2]*div,
_v[3]*div);
246 return ( (*
this) * denom.
inverse() );
252 (*this) = (*this) * denom.
inverse();
257 inline const Quat operator + (
const Quat& rhs)
const
274 inline const Quat operator - (
const Quat& rhs)
const
292 inline const Quat operator - ()
const
379 uv *= ( 2.0f *
_v[3] );
392 uv *= ( 2.0f *
_v[3] );
value_type x() const
Definition Quat:169
void set(const Matrixf &matrix)
Quat(value_type angle, const Vec3d &axis)
Definition Quat:76
void getRotate(value_type &angle, Vec3d &vec) const
value_type & w()
Definition Quat:167
@ num_components
Definition Quat:42
bool zeroRotation() const
Definition Quat:175
Vec4d asVec4() const
Definition Quat:118
value_type y() const
Definition Quat:170
const Quat operator*(const Quat &rhs) const
Binary multiply.
Definition Quat:202
const Quat operator/(const Quat &denom) const
Binary divide.
Definition Quat:244
const Quat inverse() const
Multiplicative inverse method: q^(-1) = q^*/(q.q^*).
Definition Quat:316
Quat(value_type angle, const Vec3f &axis)
Definition Quat:72
void makeRotate(value_type angle, const Vec3d &vec)
Quat(value_type x, value_type y, value_type z, value_type w)
Definition Quat:48
void set(const osg::Vec4d &v)
Definition Quat:144
void getRotate(value_type &angle, Vec3f &vec) const
value_type & y()
Definition Quat:165
value_type length() const
Length of the quaternion = sqrt( vec . vec ).
Definition Quat:298
void makeRotate(value_type angle1, const Vec3f &axis1, value_type angle2, const Vec3f &axis2, value_type angle3, const Vec3f &axis3)
void makeRotate(value_type angle, value_type x, value_type y, value_type z)
Quat(const Quat &q)
Definition Quat:95
void makeRotate(const Vec3f &vec1, const Vec3f &vec2)
void getRotate(value_type &angle, value_type &x, value_type &y, value_type &z) const
void makeRotate_original(const Vec3d &vec1, const Vec3d &vec2)
Vec3d asVec3() const
Definition Quat:123
value_type & x()
Definition Quat:164
Quat conj() const
Conjugate.
Definition Quat:310
Quat(const Vec4f &v)
Definition Quat:56
void get(Matrixf &matrix) const
value_type & z()
Definition Quat:166
value_type _v[4]
Definition Quat:44
void makeRotate(value_type angle, const Vec3f &vec)
Quat & operator/=(const Quat &denom)
Unary divide.
Definition Quat:250
Quat & operator*=(const Quat &rhs)
Unary multiply.
Definition Quat:211
Quat(value_type angle1, const Vec3f &axis1, value_type angle2, const Vec3f &axis2, value_type angle3, const Vec3f &axis3)
Definition Quat:81
void set(value_type x, value_type y, value_type z, value_type w)
Definition Quat:128
void makeRotate(const Vec3d &vec1, const Vec3d &vec2)
double value_type
Definition Quat:38
value_type z() const
Definition Quat:171
void set(const Matrixd &matrix)
Quat(value_type angle1, const Vec3d &axis1, value_type angle2, const Vec3d &axis2, value_type angle3, const Vec3d &axis3)
Definition Quat:88
value_type w() const
Definition Quat:172
Quat(const Vec4d &v)
Definition Quat:64
void get(Matrixd &matrix) const
void makeRotate(value_type angle1, const Vec3d &axis1, value_type angle2, const Vec3d &axis2, value_type angle3, const Vec3d &axis3)
value_type length2() const
Length of the quaternion = vec . vec.
Definition Quat:304
void slerp(value_type t, const Quat &from, const Quat &to)
void set(const osg::Vec4f &v)
Definition Quat:136
value_type & x()
Definition Vec4d:90
value_type & y()
Definition Vec4d:91
value_type & z()
Definition Vec4d:92
value_type & w()
Definition Vec4d:93
value_type & y()
Definition Vec4f:88
value_type & x()
Definition Vec4f:87
value_type & z()
Definition Vec4f:89
value_type & w()
Definition Vec4f:90
#define OSG_EXPORT
Definition osg/Export:39