mirror of
https://github.com/bloeys/gglm.git
synced 2025-12-29 13:38:20 +00:00
Mat equality+small optimization
This commit is contained in:
@ -63,6 +63,10 @@ func (m *Mat2) Scale(x float32) {
|
|||||||
m.Data[3] *= x
|
m.Data[3] *= x
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Mat2) Eq(m2 *Mat2) bool {
|
||||||
|
return m.Data == m2.Data
|
||||||
|
}
|
||||||
|
|
||||||
//AddMat2 m3 = m1 + m2
|
//AddMat2 m3 = m1 + m2
|
||||||
func AddMat2(m1, m2 *Mat2) *Mat2 {
|
func AddMat2(m1, m2 *Mat2) *Mat2 {
|
||||||
return &Mat2{
|
return &Mat2{
|
||||||
|
|||||||
@ -102,6 +102,10 @@ func (m *Mat3) Scale(x float32) {
|
|||||||
m.Data[8] *= x
|
m.Data[8] *= x
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Mat3) Eq(m2 *Mat3) bool {
|
||||||
|
return m.Data == m2.Data
|
||||||
|
}
|
||||||
|
|
||||||
//AddMat3 m3 = m1 + m2
|
//AddMat3 m3 = m1 + m2
|
||||||
func AddMat3(m1, m2 *Mat3) *Mat3 {
|
func AddMat3(m1, m2 *Mat3) *Mat3 {
|
||||||
return &Mat3{
|
return &Mat3{
|
||||||
|
|||||||
18
gglm/mat4.go
18
gglm/mat4.go
@ -143,6 +143,10 @@ func (m *Mat4) Scale(x float32) {
|
|||||||
m.Data[15] *= x
|
m.Data[15] *= x
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Mat4) Eq(m2 *Mat4) bool {
|
||||||
|
return m.Data == m2.Data
|
||||||
|
}
|
||||||
|
|
||||||
//AddMat4 m3 = m1 + m2
|
//AddMat4 m3 = m1 + m2
|
||||||
func AddMat4(m1, m2 *Mat4) *Mat4 {
|
func AddMat4(m1, m2 *Mat4) *Mat4 {
|
||||||
return &Mat4{
|
return &Mat4{
|
||||||
@ -199,24 +203,30 @@ func SubMat4(m1, m2 *Mat4) *Mat4 {
|
|||||||
|
|
||||||
//MulMat4 m3 = m1 * m2
|
//MulMat4 m3 = m1 * m2
|
||||||
func MulMat4(m1, m2 *Mat4) *Mat4 {
|
func MulMat4(m1, m2 *Mat4) *Mat4 {
|
||||||
|
|
||||||
|
a := m2.Data[0]
|
||||||
|
b := m2.Data[4]
|
||||||
|
c := m2.Data[8]
|
||||||
|
d := m2.Data[12]
|
||||||
|
|
||||||
return &Mat4{
|
return &Mat4{
|
||||||
Data: [16]float32{
|
Data: [16]float32{
|
||||||
m1.Data[0]*m2.Data[0] + m1.Data[1]*m2.Data[4] + m1.Data[2]*m2.Data[8] + m1.Data[3]*m2.Data[12],
|
m1.Data[0]*a + m1.Data[1]*b + m1.Data[2]*c + m1.Data[3]*d,
|
||||||
m1.Data[0]*m2.Data[1] + m1.Data[1]*m2.Data[5] + m1.Data[2]*m2.Data[9] + m1.Data[3]*m2.Data[13],
|
m1.Data[0]*m2.Data[1] + m1.Data[1]*m2.Data[5] + m1.Data[2]*m2.Data[9] + m1.Data[3]*m2.Data[13],
|
||||||
m1.Data[0]*m2.Data[2] + m1.Data[1]*m2.Data[6] + m1.Data[2]*m2.Data[10] + m1.Data[3]*m2.Data[14],
|
m1.Data[0]*m2.Data[2] + m1.Data[1]*m2.Data[6] + m1.Data[2]*m2.Data[10] + m1.Data[3]*m2.Data[14],
|
||||||
m1.Data[0]*m2.Data[3] + m1.Data[1]*m2.Data[7] + m1.Data[2]*m2.Data[11] + m1.Data[3]*m2.Data[15],
|
m1.Data[0]*m2.Data[3] + m1.Data[1]*m2.Data[7] + m1.Data[2]*m2.Data[11] + m1.Data[3]*m2.Data[15],
|
||||||
|
|
||||||
m1.Data[4]*m2.Data[0] + m1.Data[5]*m2.Data[4] + m1.Data[6]*m2.Data[8] + m1.Data[7]*m2.Data[12],
|
m1.Data[4]*a + m1.Data[5]*b + m1.Data[6]*c + m1.Data[7]*d,
|
||||||
m1.Data[4]*m2.Data[1] + m1.Data[5]*m2.Data[5] + m1.Data[6]*m2.Data[9] + m1.Data[7]*m2.Data[13],
|
m1.Data[4]*m2.Data[1] + m1.Data[5]*m2.Data[5] + m1.Data[6]*m2.Data[9] + m1.Data[7]*m2.Data[13],
|
||||||
m1.Data[4]*m2.Data[2] + m1.Data[5]*m2.Data[6] + m1.Data[6]*m2.Data[10] + m1.Data[7]*m2.Data[14],
|
m1.Data[4]*m2.Data[2] + m1.Data[5]*m2.Data[6] + m1.Data[6]*m2.Data[10] + m1.Data[7]*m2.Data[14],
|
||||||
m1.Data[4]*m2.Data[3] + m1.Data[5]*m2.Data[7] + m1.Data[6]*m2.Data[11] + m1.Data[7]*m2.Data[15],
|
m1.Data[4]*m2.Data[3] + m1.Data[5]*m2.Data[7] + m1.Data[6]*m2.Data[11] + m1.Data[7]*m2.Data[15],
|
||||||
|
|
||||||
m1.Data[8]*m2.Data[0] + m1.Data[9]*m2.Data[4] + m1.Data[10]*m2.Data[8] + m1.Data[11]*m2.Data[12],
|
m1.Data[8]*a + m1.Data[9]*b + m1.Data[10]*c + m1.Data[11]*d,
|
||||||
m1.Data[8]*m2.Data[1] + m1.Data[9]*m2.Data[5] + m1.Data[10]*m2.Data[9] + m1.Data[11]*m2.Data[13],
|
m1.Data[8]*m2.Data[1] + m1.Data[9]*m2.Data[5] + m1.Data[10]*m2.Data[9] + m1.Data[11]*m2.Data[13],
|
||||||
m1.Data[8]*m2.Data[2] + m1.Data[9]*m2.Data[6] + m1.Data[10]*m2.Data[10] + m1.Data[11]*m2.Data[14],
|
m1.Data[8]*m2.Data[2] + m1.Data[9]*m2.Data[6] + m1.Data[10]*m2.Data[10] + m1.Data[11]*m2.Data[14],
|
||||||
m1.Data[8]*m2.Data[3] + m1.Data[9]*m2.Data[7] + m1.Data[10]*m2.Data[11] + m1.Data[11]*m2.Data[15],
|
m1.Data[8]*m2.Data[3] + m1.Data[9]*m2.Data[7] + m1.Data[10]*m2.Data[11] + m1.Data[11]*m2.Data[15],
|
||||||
|
|
||||||
m1.Data[12]*m2.Data[0] + m1.Data[13]*m2.Data[4] + m1.Data[14]*m2.Data[8] + m1.Data[15]*m2.Data[12],
|
m1.Data[12]*a + m1.Data[13]*b + m1.Data[14]*c + m1.Data[15]*d,
|
||||||
m1.Data[12]*m2.Data[1] + m1.Data[13]*m2.Data[5] + m1.Data[14]*m2.Data[9] + m1.Data[15]*m2.Data[13],
|
m1.Data[12]*m2.Data[1] + m1.Data[13]*m2.Data[5] + m1.Data[14]*m2.Data[9] + m1.Data[15]*m2.Data[13],
|
||||||
m1.Data[12]*m2.Data[2] + m1.Data[13]*m2.Data[6] + m1.Data[14]*m2.Data[10] + m1.Data[15]*m2.Data[14],
|
m1.Data[12]*m2.Data[2] + m1.Data[13]*m2.Data[6] + m1.Data[14]*m2.Data[10] + m1.Data[15]*m2.Data[14],
|
||||||
m1.Data[12]*m2.Data[3] + m1.Data[13]*m2.Data[7] + m1.Data[14]*m2.Data[11] + m1.Data[15]*m2.Data[15],
|
m1.Data[12]*m2.Data[3] + m1.Data[13]*m2.Data[7] + m1.Data[14]*m2.Data[11] + m1.Data[15]*m2.Data[15],
|
||||||
|
|||||||
Reference in New Issue
Block a user