/* =============== idPlayer::DemoLookAtView =============== */ bool idPlayer::DemoLookAtView( idPlayer* other, renderView_t& rView ) { idVec3 lookAtPoint = other->GetPhysics()->GetBounds().GetCenter(); lookAtPoint += other->GetLastPredictionErrorDecayOrigin(); idVec3 diff = lookAtPoint - gameLocal.ultraviolet.demoCamPos; float dist = diff.Normalize(); rView.vieworg = gameLocal.ultraviolet.demoCamPos; rView.viewaxis[ 0 ] = diff; rView.viewaxis[ 2 ] = idVec3( 0.f, 0.f, 1.f ); rView.viewaxis[ 2 ] -= diff[ 2 ] * diff; rView.viewaxis[ 2 ].Normalize(); rView.viewaxis[ 1 ] = rView.viewaxis[ 2 ].Cross( rView.viewaxis[ 0 ] ); return true; }