Vector3OrthoNormalize function

(Vector3, Vector3) Vector3OrthoNormalize(
  1. Vector3 v1,
  2. Vector3 v2
)

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);
}