func NearZero(v glm.Vec3d) bool { return v.ApproxEqual(glm.Vec3d{}) }
func Cross3D(a, b glm.Vec4d) glm.Vec3d { a3 := glm.Vec3d{a[0], a[1], a[2]} b3 := glm.Vec3d{b[0], b[1], b[2]} return a3.Cross(b3) }