func (lhs *Mat4) Identity() *Mat4 {
	lhs[0], lhs[1], lhs[2], lhs[3] = 1, 0, 0, 0
	lhs[4], lhs[5], lhs[6], lhs[7] = 0, 1, 0, 0
	lhs[8], lhs[9], lhs[10], lhs[11] = 0, 0, 1, 0
	lhs[12], lhs[13], lhs[14], lhs[15] = 0, 0, 0, 1
	return lhs
}
Identity resets itself to the identity matrix. Returns itself for
function chaining.
package mat4
import (
	"bytes"
	"fmt"
	"text/tabwriter"
	"github.com/rkusa/gm/math32"
	"github.com/rkusa/gm/vec3"
)
type Mat4 [16]float32
func New(a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23, a30, a31, a32, a33 float32) *Mat4 {
	return &Mat4{
		a00, a01, a02, a03,
		a10, a11, a12, a13,
		a20, a21, a22, a23,
		a30, a31, a32, a33,
	}
}
func (lhs *Mat4) Clone() *Mat4 {
	return &Mat4{
		lhs[0], lhs[1], lhs[2], lhs[3],
		lhs[4], lhs[5], lhs[6], lhs[7],
		lhs[8], lhs[9], lhs[10], lhs[11],
		lhs[12], lhs[13], lhs[14], lhs[15],
	}
}
func (lhs *Mat4) Copy(rhs *Mat4) *Mat4 {
	lhs[0], lhs[1], lhs[2], lhs[3] = rhs[0], rhs[1], rhs[2], rhs[3]
	lhs[4], lhs[5], lhs[6], lhs[7] = rhs[4], rhs[5], rhs[6], rhs[7]
	lhs[8], lhs[9], lhs[10], lhs[11] = rhs[8], rhs[9], rhs[10], rhs[11]
	lhs[12], lhs[13], lhs[14], lhs[15] = rhs[12], rhs[13], rhs[14], rhs[15]
	return lhs
}
func Identity() *Mat4 {
	return &Mat4{
		1, 0, 0, 0,
		0, 1, 0, 0,
		0, 0, 1, 0,
		0, 0, 0, 1,
	}
}