Give more options for multiplication including the instance

This commit is contained in:
Michael Kirsch 2019-02-27 19:08:22 +01:00 committed by Joseph Lenox
parent a023cff882
commit 143270b0fc
2 changed files with 20 additions and 4 deletions

View File

@ -187,16 +187,26 @@ void TransformationMatrix::rotate(double q1, double q2, double q3, double q4)
this->multiplyLeft(mat);
}
void TransformationMatrix::multiplyLeft(const TransformationMatrix &left)
void TransformationMatrix::applyLeft(const TransformationMatrix &left)
{
*this = multiply(left, *this);
}
void TransformationMatrix::multiplyRight(const TransformationMatrix &right)
TransformationMatrix TransformationMatrix::multiplyLeft(const TransformationMatrix &left)
{
return multiply(left, *this);
}
void TransformationMatrix::applyRight(const TransformationMatrix &right)
{
*this = multiply(*this, right);
}
TransformationMatrix TransformationMatrix::multiplyRight(const TransformationMatrix &right)
{
return multiply(*this, right);
}
TransformationMatrix TransformationMatrix::multiply(const TransformationMatrix &left, const TransformationMatrix &right)
{
TransformationMatrix trafo;

View File

@ -71,10 +71,16 @@ public:
void rotate(double q1, double q2, double q3, double q4);
/// Multiplies the Parameter-Matrix from the left (this=left*this)
void multiplyLeft(const TransformationMatrix &left);
void applyLeft(const TransformationMatrix &left);
/// Multiplies the Parameter-Matrix from the left (out=left*this)
TransformationMatrix multiplyLeft(const TransformationMatrix &left);
/// Multiplies the Parameter-Matrix from the right (this=this*right)
void multiplyRight(const TransformationMatrix &right);
void applyRight(const TransformationMatrix &right);
/// Multiplies the Parameter-Matrix from the right (out=this*right)
TransformationMatrix multiplyRight(const TransformationMatrix &right);
/// Generate an eye matrix.
static TransformationMatrix mat_eye();