void AngleVectors (const QAngle &angles, Vector *forward, Vector *right, Vector *up) { Assert( s_bMathlibInitialized ); float sr, sp, sy, cr, cp, cy; SinCos( DEG2RAD( angles[YAW] ), &sy, &cy ); SinCos( DEG2RAD( angles[PITCH] ), &sp, &cp ); SinCos( DEG2RAD( angles[ROLL] ), &sr, &cr ); if (forward) { forward->x = cp*cy; forward->y = cp*sy; forward->z = -sp; } if (right) { right->x = (-1*sr*sp*cy+-1*cr*-sy); right->y = (-1*sr*sp*sy+-1*cr*cy); right->z = -1*sr*cp; } if (up) { up->x = (cr*sp*cy+-sr*-sy); up->y = (cr*sp*sy+-sr*cy); up->z = cr*cp; } }