public void Write(M44f x) { Write(x.M00); Write(x.M01); Write(x.M02); Write(x.M03); Write(x.M10); Write(x.M11); Write(x.M12); Write(x.M13); Write(x.M20); Write(x.M21); Write(x.M22); Write(x.M23); Write(x.M30); Write(x.M31); Write(x.M32); Write(x.M33); }
public AngleBetweenFloat() { var rnd = new RandomSystem(1); A.SetByIndex(i => rnd.UniformV3fDirection()); angles.SetByIndex(i => rnd.UniformFloat() * (float)Constant.Pi); B.SetByIndex(i => { V3f v; do { v = rnd.UniformV3fDirection(); }while (v.Dot(A[i]).IsTiny()); V3f axis = v.Cross(A[i]).Normalized; return(M44f.Rotation(axis, angles[i]).TransformDir(A[i])); }); }