update viewpoint