getNormalAndDepth static method
Implementation
static ({Vector2 normal, double depth}) getNormalAndDepth(
List<Vector2> verticesA,
List<Vector2> verticesB, {
bool insverted = false,
}) {
var normal = Vector2.zero();
var depth = double.maxFinite;
for (var i = 0; i < verticesA.length; i++) {
final va = verticesA[i];
final vb = verticesA[(i + 1) % verticesA.length];
final edge = vb - va;
var axis = Vector2(-edge.y, edge.x);
axis = axis.normalized();
final pA = projectVertices(insverted ? verticesB : verticesA, axis);
final pB = projectVertices(insverted ? verticesA : verticesB, axis);
final double axisDepth = min(pB.max - pA.min, pA.max - pB.min);
if (axisDepth < depth) {
depth = axisDepth;
normal = axis;
}
}
return (normal: normal, depth: depth);
}