public static Quaternion FromAxes( Vector3 xAxis, Vector3 yAxis, Vector3 zAxis )
{
Matrix3 rotation = new Matrix3();
rotation.m00 = xAxis.x;
rotation.m10 = xAxis.y;
rotation.m20 = xAxis.z;
rotation.m01 = yAxis.x;
rotation.m11 = yAxis.y;
rotation.m21 = yAxis.z;
rotation.m02 = zAxis.x;
rotation.m12 = zAxis.y;
rotation.m22 = zAxis.z;
// set this quaternions values from the rotation matrix built
return FromRotationMatrix( rotation );
}