Vector3OrthoNormalize function
Gram-Schmidt orthonormalization. Returns the normalized pair (v1, v2). In C this modified v1/v2 in-place via pointers.
Implementation
(Vector3, Vector3) Vector3OrthoNormalize(Vector3 v1, Vector3 v2) {
final n1 = v1.normalized();
final n2 = (v2 - n1.scaled(n1.dot(v2))).normalized();
return (n1, n2);
}