Some thoughts regarding the same camera on different viewpoints issue:<br><br>You may consider using vtkObservers in a custom interactor<br><br>assume a vtkCollection RendererCollection with renderers as items in your custom interactor vtkMyInteractor class
<br>the CurrentRenderer is the renderer to follow.<br><br>In the constructor of the vtkMyInteractor we add:<br><br>this-&gt;MoveCallback= vtkCallbackCommand::New();<br>
this-&gt;MoveCallback-&gt;SetClientData(this); <br>
this-&gt;MoveCallback-&gt;SetCallback(vtkMyInteractor::UpdateCamera);<br><br><br>we must add the callback in the section where the interactor becomes enabled.<br>this-&gt;AddObserver(vtkCommand::AnyEvent, this-&gt;MoveCallback, 
0.0);<br><br>We also must have a static function to call:<br><br><span style="font-weight: bold;">static </span>void vtkMyInteractor::UpdateCamera(vtkObject* vtkNotUsed(object), <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned long event,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void* clientdata, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void* vtkNotUsed(calldata))<br>{<br>&nbsp;&nbsp;&nbsp; vtkMyInteractor* self = reinterpret_cast&lt;vtkMyInteractor*&gt;( clientdata );<br>&nbsp;&nbsp;&nbsp; self-&gt;AdjustCameras();
<br>}<br><br>Finally the real code goes here:<br><br><span style="font-weight: bold;"></span>void vtkMyInteractor::AdjustCameras()<br>{<br>&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; RendererCollection-&gt;GetNumberOfItems(); i++)<br>&nbsp;&nbsp; {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkRenderer *rn = (vtkRenderer *) RendererCollection-&gt;GetItemAsObject(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rn-&gt;GetActiveCamera()-&gt;SetPosition(this-&gt;CurrentRenderer-&gt;GetPosition());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... SetFocalPoint...etc<br>
&nbsp;&nbsp; }<br>}<br><br>The above will tell the interactor to adjust the other cameras according to its main renderer camera.<br>You may also set some cameras to act without zoom or rotation in the AdjustCameras function<br><br>
You must remove the observer when the interactor is disabled and/or in the destructor and have in mind that <br>the renderers in the RendererCollection must be destroyed AFTER this interactor is destroyed/disabled otherwise
<br>crashes will occur.<br><br>I hope this will help<br><br>