vtkCamera ShallowCopy and DeepCopy may need a call to Modified
There is a subtle issue with vtkCamera::ShallowCopy and vtkCamera::DeepCopy, I think it is caused by this merge request.
When these copy methods are called various matrices are shallow or deep copied, but the camera's modified flag is not set. However vtkRenderer compares the vtkCamera MTime to cached MTime values so a change in camera matrices due to its ShallowCopy or DeepCopy may go unnoticed. In our case this led to vtkLabeledDataMapper's vtkTextMapper instances rendering labels using the first shallow-copied viewpoint when subsequent camera positions were shallow copied but did not cause an update in the matrices cached in the vtkRenderer.
Attached script shows a cube with elevation and two accompanying labels, first with view-up in Z direction and then with view-up in X direction. The following images are displayed on screen, as expected:
and the following images off-screen:
I can make the change but I'm not sure whether adding a call to Modified at the end of ShallowCopy and DeepCopy is the preferred solution.