added operator*=() to util/Matrix

git-svn-id: svn://anubis/fart/trunk@27 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
Josh Holtrop 2009-01-22 20:31:13 +00:00
parent 1454fe8c2e
commit 13d7d90b87
4 changed files with 19 additions and 1 deletions

View File

@ -20,5 +20,11 @@ int main()
Matrix mult = m * i;
cout << "mult:" << endl << mult;
m *= m;
cout << "m^2:" << endl << m;
m *= m;
cout << "m^4:" << endl << m;
return 0;
}

View File

@ -191,6 +191,13 @@ Matrix Matrix::getInverse()
return m;
}
Matrix & Matrix::operator*=(const Matrix & other)
{
Matrix temp = (*this) * other;
(*this) = temp;
return (*this);
}
Matrix operator*(const Matrix & m1, const Matrix & m2)
{
Matrix res;

View File

@ -15,6 +15,7 @@ class Matrix
static Matrix identity();
double determinant();
Matrix getInverse();
Matrix & operator*=(const Matrix & other);
protected:
double m_matrix[4][4];

View File

@ -8,7 +8,11 @@ Transform::Transform()
void Transform::translate(double x, double y, double z)
{
/* TODO: fill in */
Matrix t = Matrix::identity();
t[0][3] = x;
t[1][3] = y;
t[2][3] = z;
m_matrix *= t;
}
void Transform::rotate(double amt, double xv, double yv, double zv)