diff --git a/gglm/mat2.go b/gglm/mat2.go index 99a6f06..c451403 100755 --- a/gglm/mat2.go +++ b/gglm/mat2.go @@ -28,8 +28,8 @@ func (m *Mat2) String() string { return fmt.Sprintf("\n| %+-9.3f %+-9.3f |\n| %+-9.3f %+-9.3f |\n", m.Data[0][0], m.Data[0][1], m.Data[1][0], m.Data[1][1]) } -func (m *Mat2) Col(c int) *Vec2 { - return &Vec2{Data: m.Data[c]} +func (m *Mat2) Col(c int) Vec2 { + return Vec2{Data: m.Data[c]} } // Add m += m2 diff --git a/gglm/mat3.go b/gglm/mat3.go index 8077b28..97d25d7 100755 --- a/gglm/mat3.go +++ b/gglm/mat3.go @@ -31,8 +31,8 @@ func (m *Mat3) String() string { ) } -func (m *Mat3) Col(c int) *Vec3 { - return &Vec3{Data: m.Data[c]} +func (m *Mat3) Col(c int) Vec3 { + return Vec3{Data: m.Data[c]} } // Add m += m2 diff --git a/gglm/mat4.go b/gglm/mat4.go index b9f1977..c8a907c 100755 --- a/gglm/mat4.go +++ b/gglm/mat4.go @@ -32,8 +32,8 @@ func (m *Mat4) String() string { ) } -func (m *Mat4) Col(c int) *Vec4 { - return &Vec4{Data: m.Data[c]} +func (m *Mat4) Col(c int) Vec4 { + return Vec4{Data: m.Data[c]} } // Add m += m2 diff --git a/gglm/transform.go b/gglm/transform.go index 0d55ff6..5a1a342 100755 --- a/gglm/transform.go +++ b/gglm/transform.go @@ -51,20 +51,30 @@ func (t *TrMat) Rotate(rads float32, axis *Vec3) *TrMat { rotate.Data[2][1] = temp.Data[2]*axis.Data[1] - s*axis.Data[0] rotate.Data[2][2] = c + temp.Data[2]*axis.Data[2] - result := &Mat4{} - result.Data[0] = t.Col(0).Scale(rotate.Data[0][0]). - Add(t.Col(1).Scale(rotate.Data[0][1])). - Add(t.Col(2).Scale(rotate.Data[0][2])). + result := Mat4{} + + col0 := t.Col(0) + col1 := t.Col(1) + col2 := t.Col(2) + result.Data[0] = col0.Scale(rotate.Data[0][0]). + Add(col1.Scale(rotate.Data[0][1])). + Add(col2.Scale(rotate.Data[0][2])). Data - result.Data[1] = t.Col(0).Scale(rotate.Data[1][0]). - Add(t.Col(1).Scale(rotate.Data[1][1])). - Add(t.Col(2).Scale(rotate.Data[1][2])). + col0 = t.Col(0) + col1 = t.Col(1) + col2 = t.Col(2) + result.Data[1] = col0.Scale(rotate.Data[1][0]). + Add(col1.Scale(rotate.Data[1][1])). + Add(col2.Scale(rotate.Data[1][2])). Data - result.Data[2] = t.Col(0).Scale(rotate.Data[2][0]). - Add(t.Col(1).Scale(rotate.Data[2][1])). - Add(t.Col(2).Scale(rotate.Data[2][2])). + col0 = t.Col(0) + col1 = t.Col(1) + col2 = t.Col(2) + result.Data[2] = col0.Scale(rotate.Data[2][0]). + Add(col1.Scale(rotate.Data[2][1])). + Add(col2.Scale(rotate.Data[2][2])). Data t.Data[0] = result.Data[0]