47 setValue(xx, xy, xz, yx, yy, yz, zx, zy, zz);
84 setValue(1 - (yy + zz), xy - wz, xz + wy,
85 xy + wz , 1 - (xx + zz), yz - wx,
86 xz - wy , yz + wx , 1 - (xx + yy));
140 return triple((*
this)[
X], (*
this)[
Y], (*
this)[
Z]);
195 m1[
X][
X] * m2[
X][
X] + m1[
X][
Y] * m2[
Y][
X] + m1[
X][
Z] * m2[
Z][
X],
196 m1[
X][
X] * m2[
X][
Y] + m1[
X][
Y] * m2[
Y][
Y] + m1[
X][
Z] * m2[
Z][
Y],
197 m1[
X][
X] * m2[
X][
Z] + m1[
X][
Y] * m2[
Y][
Z] + m1[
X][
Z] * m2[
Z][
Z],
198 m1[
Y][
X] * m2[
X][
X] + m1[
Y][
Y] * m2[
Y][
X] + m1[
Y][
Z] * m2[
Z][
X],
199 m1[
Y][
X] * m2[
X][
Y] + m1[
Y][
Y] * m2[
Y][
Y] + m1[
Y][
Z] * m2[
Z][
Y],
200 m1[
Y][
X] * m2[
X][
Z] + m1[
Y][
Y] * m2[
Y][
Z] + m1[
Y][
Z] * m2[
Z][
Z],
201 m1[
Z][
X] * m2[
X][
X] + m1[
Z][
Y] * m2[
Y][
X] + m1[
Z][
Z] * m2[
Z][
X],
202 m1[
Z][
X] * m2[
X][
Y] + m1[
Z][
Y] * m2[
Y][
Y] + m1[
Z][
Z] * m2[
Z][
Y],
203 m1[
Z][
X] * m2[
X][
Z] + m1[
Z][
Y] * m2[
Y][
Z] + m1[
Z][
Z] * m2[
Z][
Z]);
208 m1[
X][
X] * m2[
X][
X] + m1[
Y][
X] * m2[
Y][
X] + m1[
Z][
X] * m2[
Z][
X],
209 m1[
X][
X] * m2[
X][
Y] + m1[
Y][
X] * m2[
Y][
Y] + m1[
Z][
X] * m2[
Z][
Y],
210 m1[
X][
X] * m2[
X][
Z] + m1[
Y][
X] * m2[
Y][
Z] + m1[
Z][
X] * m2[
Z][
Z],
211 m1[
X][
Y] * m2[
X][
X] + m1[
Y][
Y] * m2[
Y][
X] + m1[
Z][
Y] * m2[
Z][
X],
212 m1[
X][
Y] * m2[
X][
Y] + m1[
Y][
Y] * m2[
Y][
Y] + m1[
Z][
Y] * m2[
Z][
Y],
213 m1[
X][
Y] * m2[
X][
Z] + m1[
Y][
Y] * m2[
Y][
Z] + m1[
Z][
Y] * m2[
Z][
Z],
214 m1[
X][
Z] * m2[
X][
X] + m1[
Y][
Z] * m2[
Y][
X] + m1[
Z][
Z] * m2[
Z][
X],
215 m1[
X][
Z] * m2[
X][
Y] + m1[
Y][
Z] * m2[
Y][
Y] + m1[
Z][
Z] * m2[
Z][
Y],
216 m1[
X][
Z] * m2[
X][
Z] + m1[
Y][
Z] * m2[
Y][
Z] + m1[
Z][
Z] * m2[
Z][
Z]);
226 return os << m[
X] << endl << m[
Y] << endl << m[
Z] << endl;
Matrix adjoint(const Matrix &m)
void setValue(const double *m)
Matrix(const Quaternion &q)
Scalar determinant(const Matrix &m)
Scalar triple(const Vector &v1, const Vector &v2, const Vector &v3)
Matrix transpose(const Matrix &m)
Matrix inverse(const Matrix &m)
Matrix absolute(const Matrix &m)
Scalar dot(const Quaternion &q1, const Quaternion &q2)
Scalar determinant() const
const Vector & operator[](int i) const
void setValue(Scalar xx, Scalar xy, Scalar xz, Scalar yx, Scalar yy, Scalar yz, Scalar zx, Scalar zy, Scalar zz)
void setScaling(Scalar x, Scalar y, Scalar z)
Matrix & operator*=(const Matrix &m)
const Mat3 & getValue() const
Matrix(Scalar x, Scalar y, Scalar z)
ostream & operator<<(ostream &os, const Matrix &m)
Scalar tdot(int i, const Vector &v) const
Matrix multTransposeLeft(const Matrix &m1, const Matrix &m2)
Vector operator*(const Matrix &m, const Vector &v)
void setValue(const float *m)
Matrix(Scalar xx, Scalar xy, Scalar xz, Scalar yx, Scalar yy, Scalar yz, Scalar zx, Scalar zy, Scalar zz)
void setRotation(const Quaternion &q)
Vector & operator[](int i)