func Vec3DotAbs(a, b Vec3) float32 {
	return Abs(a[0]*b[0] + a[1]*b[1] + a[2]*b[2])
}
Vec3DotAbs returns the absolute value of the 3D dot product of a and b.
package math
type Vec3 [3]float32
func Vec3Mad(a, b Vec3, s float32) (v Vec3) {
	v[0] = a[0] + (b[0] * s)
	v[1] = a[1] + (b[1] * s)
	v[2] = a[2] + (b[2] * s)
	return
}
func Vec3Add(a, b Vec3) (v Vec3) {
	v[0] = a[0] + b[0]
	v[1] = a[1] + b[1]
	v[2] = a[2] + b[2]
	return
}
func Vec3Add3(a, b, c Vec3) (v Vec3) {
	v[0] = a[0] + b[0] + c[0]
	v[1] = a[1] + b[1] + c[1]
	v[2] = a[2] + b[2] + c[2]
	return
}
func Vec3Sub(a, b Vec3) (v Vec3) {
	v[0] = a[0] - b[0]
	v[1] = a[1] - b[1]
	v[2] = a[2] - b[2]
	return
}
func Vec3Lerp(a, b Vec3, t float32) (v Vec3) {
	v[0] = (1.0-t)*a[0] + t*b[0]
	v[1] = (1.0-t)*a[1] + t*b[1]
	v[2] = (1.0-t)*a[2] + t*b[2]
	return
}
func Vec3Scale(s float32, a Vec3) (v Vec3) {
	v[0] = a[0] * s
	v[1] = a[1] * s
	v[2] = a[2] * s
	return
}
func Vec3Cross(a, b Vec3) (v Vec3) {
	v[0] = a[1]*b[2] - a[2]*b[1]
	v[1] = a[2]*b[0] - a[0]*b[2]
	v[2] = a[0]*b[1] - a[1]*b[0]
	return
}
func Vec3Dot(a, b Vec3) float32 {
	return a[0]*b[0] + a[1]*b[1] + a[2]*b[2]
}
func Vec3DotClamp(a, b Vec3) float32 {
	return Max(0.0, a[0]*b[0]+a[1]*b[1]+a[2]*b[2])
}