Example #1
0
func RotateAngle(angleX, angleY, angleZ float64) *Matrix4 {
	m1 := Rotate(angleZ, 0, 0, 1).Matrix
	m2 := Rotate(angleY, 0, 1, 0).Matrix
	m3 := Rotate(angleX, 1, 0, 0).Matrix

	return &Matrix4{matrix.MultiMM(m1, m2, m3)}
}
Example #2
0
// Row vector multiply by matrix, result is a new row vector
func (v *Vector4) MultiM(m *Matrix4) *Vector4 {
	m2 := matrix.NewMatrix(1, 4)
	m2.InitRow(1, v.Vector)
	return &Vector4{matrix.MultiMM(m2, m.Matrix).Row(1)}
}
Example #3
0
func (m *Matrix4) MultiM(m2 *Matrix4) *Matrix4 {
	return &Matrix4{matrix.MultiMM(m.Matrix, m2.Matrix)}
}
Example #4
0
// Matrix multiply by column vector, result is a new column vector
func (m *Matrix4) MultiV(v *Vector4) *Vector4 {
	m2 := matrix.NewMatrix(4, 1) // column vector
	m2.Init(v.Vector)

	return &Vector4{matrix.MultiMM(m.Matrix, m2).Column(1)}
}