setFromUnitVectors method

Quaternion setFromUnitVectors(
  1. Vector3 v1,
  2. Vector3 v2
)

Set Quant from v1 and v2

Implementation

Quaternion setFromUnitVectors(Vector3 v1, Vector3 v2 ) {
  final vx = Vector3.zero();
  double r = v1.dot( v2 ) + 1;

  if ( r < Math.eps2 ) {
    r = 0;
    if (v1.x.abs() >v1.z.abs() ){ vx.setValues( - v1.y, v1.x, 0 );}
    else{ vx.setValues( 0, - v1.z, v1.y );}
  }
  else {
    vx.cross2( v1, v2 );
  }

  x = vx.x;
  y = vx.y;
  z = vx.z;
  w = r;
  normalize();
  return this;
}