Game Development Reference
In-Depth Information
e32 *= s;
e33 *= s;
return *this;
}
The following relation applies for scalar multiplication (and division):
s( M N ) = (s M ) N = M (s N )
Scalar Division: The /= Operator
This operator simply divides each element by the scalar s :
inline Matrix3x3& Matrix3x3::operator/=(float s)
{
e11 /= s;
e12 /= s;
e13 /= s;
e21 /= s;
e22 /= s;
e23 /= s;
e31 /= s;
e32 /= s;
e33 /= s;
return *this;
}
Matrix Functions and Operators
The functions and overloaded operators that follow are useful when you are performing
operations with two matrices, or with a matrix and a scalar, or a matrix and a vector.
Here, the matrices are assumed to be of the type Matrix3x3 , and vectors of the type
Vector , as discussed in Appendix A .
This operator adds the two matrices together on an element-by-element basis:
inline Matrix3x3 operator+(Matrix3x3 m1, Matrix3x3 m2)
{
return Matrix3x3( m1.e11+m2.e11,
m1.e12+m2.e12,
m1.e13+m2.e13,
m1.e21+m2.e21,
m1.e22+m2.e22,
m1.e23+m2.e23,
m1.e31+m2.e31,
m1.e32+m2.e32,
m1.e33+m2.e33);
}