func (m *Matrix3) Transpose() Matrix3 {
	return Matrix3{
		m[0], m[3], m[6],
		m[1], m[4], m[7],
		m[2], m[5], m[8],
	}
}
Transpose produces the transpose of this matrix.
package math
func (m *Matrix3) SetIdentity() {
	m[0], m[3], m[6] = 1.0, 0.0, 0.0
	m[1], m[4], m[7] = 0.0, 1.0, 0.0
	m[2], m[5], m[8] = 0.0, 0.0, 1.0
}
func (m *Matrix3x4) SetIdentity() {
	m[0], m[3], m[6], m[9] = 1.0, 0.0, 0.0, 0.0
	m[1], m[4], m[7], m[10] = 0.0, 1.0, 0.0, 0.0
	m[2], m[5], m[8], m[11] = 0.0, 0.0, 1.0, 0.0
}
func (m *Matrix4) SetIdentity() {
	m[0], m[4], m[8], m[12] = 1.0, 0.0, 0.0, 0.0
	m[1], m[5], m[9], m[13] = 0.0, 1.0, 0.0, 0.0
	m[2], m[6], m[10], m[14] = 0.0, 0.0, 1.0, 0.0
	m[3], m[7], m[11], m[15] = 0.0, 0.0, 0.0, 1.0
}
func (m *Matrix3) Add(m2 *Matrix3) {
	m[0] += m2[0]
	m[1] += m2[1]
	m[2] += m2[2]
	m[3] += m2[3]
	m[4] += m2[4]
	m[5] += m2[5]
	m[6] += m2[6]
	m[7] += m2[7]
	m[8] += m2[8]
}
func (m *Matrix3) SetComponents(v1 *Vector3, v2 *Vector3, v3 *Vector3) {
	m[0], m[3], m[6] = v1[0], v2[0], v3[0]
	m[1], m[4], m[7] = v1[1], v2[1], v3[1]
	m[2], m[5], m[8] = v1[2], v2[2], v3[2]
}
func (m *Matrix3) SetInertiaTensorCoeffs(ix, iy, iz, ixy, ixz, iyz Real) {
	m[0], m[3], m[6] = ix, -ixy, -ixz
	m[1], m[4], m[7] = -ixy, iy, -iyz
	m[2], m[5], m[8] = -ixz, -iyz, iz
}
func (m *Matrix3) SetBlockInertiaTensor(halfSize *Vector3, mass Real) {
	squares := *halfSize
	squares.ComponentProduct(halfSize)
	m.SetInertiaTensorCoeffs(
		0.3*mass*(squares[1]+squares[2]),
		0.3*mass*(squares[0]+squares[2]),
		0.3*mass*(squares[0]+squares[1]),
		0.0, 0.0, 0.0,
	)
}
func (m *Matrix3) MulVector3(v *Vector3) Vector3 {
	return Vector3{
		m[0]*v[0] + m[3]*v[1] + m[6]*v[2],
		m[1]*v[0] + m[4]*v[1] + m[7]*v[2],
		m[2]*v[0] + m[5]*v[1] + m[8]*v[2],
	}
}
func (m1 *Matrix3) MulMatrix3(m2 *Matrix3) Matrix3 {
	return Matrix3{
		m1[0]*m2[0] + m1[3]*m2[1] + m1[6]*m2[2],
		m1[1]*m2[0] + m1[4]*m2[1] + m1[7]*m2[2],
		m1[2]*m2[0] + m1[5]*m2[1] + m1[8]*m2[2],
		m1[0]*m2[3] + m1[3]*m2[4] + m1[6]*m2[5],
		m1[1]*m2[3] + m1[4]*m2[4] + m1[7]*m2[5],
		m1[2]*m2[3] + m1[5]*m2[4] + m1[8]*m2[5],
		m1[0]*m2[6] + m1[3]*m2[7] + m1[6]*m2[8],
		m1[1]*m2[6] + m1[4]*m2[7] + m1[7]*m2[8],
		m1[2]*m2[6] + m1[5]*m2[7] + m1[8]*m2[8],
	}
}
func (m *Matrix3) MulWith(s Real) {
	m[0] *= s
	m[1] *= s
	m[2] *= s
	m[3] *= s
	m[4] *= s
	m[5] *= s
	m[6] *= s
	m[7] *= s
	m[8] *= s
}