func tryAxis(one *CollisionCube, two *CollisionCube, axis m.Vector3, toCenter *m.Vector3, index int, smallestPenetration m.Real, smallestCase int) (bool, m.Real, int) { // make sure we have a normalized axis, and don't check almost parallel axes if axis.SquareMagnitude() < m.Epsilon { return true, smallestPenetration, smallestCase } axis.Normalize() penetration := penetrationOnAxis(one, two, &axis, toCenter) if penetration < 0 { return false, smallestPenetration, smallestCase } if penetration < smallestPenetration { return true, penetration, index } return true, smallestPenetration, smallestCase }