26#ifndef OD_GEQUATERNION_H
27#define OD_GEQUATERNION_H
80 :
w(1.),
x(0.),
y(0.),
z(0.)
95 :
w(ww),
x(xx),
y(yy),
z(zz)
139 matrix(0, 0) =
w *
w +
x *
x -
y *
y -
z *
z;
140 matrix(0, 1) = 2. * (
x *
y -
w *
z);
141 matrix(0, 2) = 2. * (
w *
y +
x *
z);
143 matrix(1, 0) = 2. * (
w *
z +
x *
y);
144 matrix(1, 1) =
w *
w -
x *
x +
y *
y -
z *
z;
145 matrix(1, 2) = 2. * (
y *
z -
w *
x);
147 matrix(2, 0) = 2. * (
x *
z -
w *
y);
148 matrix(2, 1) = 2. * (
w *
x +
y *
z);
149 matrix(2, 2) =
w *
w -
x *
x -
y *
y +
z *
z;
227 return fabs(
x - quat.
x) <=
tol.equalVector() &&
228 fabs(
y - quat.
y) <=
tol.equalVector() &&
229 fabs(
z - quat.
z) <=
tol.equalVector() &&
230 fabs(
w - quat.
w) <=
tol.equalVector();
240 return isEqualTo(quat);
250 return !isEqualTo(quat);
420 return w * quat.
w +
x * quat.
x +
y * quat.
y +
z * quat.
z;
AECBASE_API OdGePoint3d operator*(const AECECS &matrix, const OdGePoint3d &point)
#define GE_TOOLKIT_EXPORT
bool operator!=(T left, const OdGiVariant::EnumType right)
bool operator==(T left, const OdGiVariant::EnumType right)
OdGeMatrix3d transpose() const
OdGePoint3d & transformBy(const OdGeMatrix3d &xfm)
OdGeQuaternion slerp(OdGeQuaternion &q, double t, bool bUseShortestPath)
OdGeMatrix3d getMatrix() const
OdGePoint3d rotateOpposite(OdGePoint3d &sourcePoint) const
double dotProduct(const OdGeQuaternion &quat) const
OdGeVector3d rotateOpposite(OdGeVector3d &vector) const
OdGeQuaternion & set(const OdGeMatrix3d &matrix)
OdGeQuaternion(double ww, double xx, double yy, double zz)
OdGePoint3d rotate(OdGePoint3d &sourcePoint) const
bool isEqualTo(const OdGeQuaternion &quat, const OdGeTol &tol=OdGeContext::gTol) const
OdGeQuaternion & normalize(const OdGeTol &tol=OdGeContext::gTol)
OdGeVector3d rotate(OdGeVector3d &vector) const
OdGeQuaternion & set(double ww, double xx, double yy, double zz)
static GE_STATIC_EXPORT const OdGeQuaternion kIdentity
OdGeVector3d & transformBy(const OdGeMatrix3d &xfm)
GLfloat GLfloat GLfloat z
GLfloat GLfloat GLfloat GLfloat w
static GE_STATIC_EXPORT OdGeTol gTol