BOOL are_parallel(const LLVector4 &a, const LLVector4 &b, F32 epsilon) { LLVector4 an = a; LLVector4 bn = b; an.normalize(); bn.normalize(); F32 dot = an * bn; if ( (1.0f - fabs(dot)) < epsilon) return TRUE; return FALSE; }
F32 angle_between( const LLVector4& a, const LLVector4& b ) { LLVector4 an = a; LLVector4 bn = b; an.normalize(); bn.normalize(); F32 cosine = an * bn; F32 angle = (cosine >= 1.0f) ? 0.0f : (cosine <= -1.0f) ? F_PI : acos(cosine); return angle; }