GetOrthogonalVector3 function

Vector3 GetOrthogonalVector3(
  1. Vector3 dir
)

Implementation

VM.Vector3 GetOrthogonalVector3(VM.Vector3 dir) {
  if (dir.x != 0.0) {
    if (dir.y != 0.0) return VM.Vector3(-dir.y, dir.x, 0.0);
    if (dir.z != 0.0) return VM.Vector3(-dir.z, 0.0, dir.x);
    return VM.Vector3(0.0, 1.0, 1.0);
  } else {
    if (dir.y == 0.0) return VM.Vector3(1.0, 1.0, 0.0);
    if (dir.z == 0.0) return VM.Vector3(1.0, 0.0, 1.0);
    return VM.Vector3(0.0, -dir.z, dir.y);
  }
}