rem: up.setValues( upx, upy, upz );
context: OSG_BASE_DLLMAPPING bool MatrixLookAt(Matrix & result,                                      Real32 fromx,                                      Real32 fromy,                                      Real32 fromz,                                      Real32 atx,                                      Real32 aty,                                      Real32 atz,                                      Real32 upx,                                      Real32 upy,                                      Real32 upz){    Vec3f view, right, newup,up;    view.setValues( fromx - atx , fromy - aty, fromz - atz );    view.normalize();    up.setValues( upx, upy, upz );    right = up.cross( view );    if ( right.dot(right) < Eps )    {        return true;    }    right.normalize();    newup = view.cross( right );    result.setIdentity();    result.setTranslate( fromx, fromy, fromz );    Matrix tmpm;    tmpm.setValue( right, newup, view );    result.mult( tmpm );    return false;}