37 #include "vtkCommand.h"
38 #include "vtkCallbackCommand.h"
39 #include "vtkCamera.h"
40 #include "vtkRenderer.h"
41 #include "vtkSmartPointer.h"
45 std::vector< QGoSynchronizedView2D * > iOpenSynchronizedViews,
48 Initialize( iOpenSynchronizedViews.begin(), iOpenSynchronizedViews.end() );
84 long unsigned int eventId,
94 std::vector< QGoSynchronizedView2D * > p_m_QGoSynchronizedViews =
95 *
static_cast< std::vector< QGoSynchronizedView2D * > *
>
99 vtkCamera *movedCamera =
100 static_cast< vtkCamera *
>( caller );
103 std::vector< QGoSynchronizedView2D * >::iterator SynchronizedViewIt =
104 p_m_QGoSynchronizedViews.begin();
105 while ( SynchronizedViewIt != p_m_QGoSynchronizedViews.end() )
109 if ( ( ( *SynchronizedViewIt )->GetCamera() != NULL )
110 && ( ( *SynchronizedViewIt )->GetCamera() != movedCamera ) )
112 ( *SynchronizedViewIt )->GetCamera()->DeepCopy(movedCamera);
114 ( *SynchronizedViewIt )->Render();
116 ++SynchronizedViewIt;
135 if ( ioSynchronizedView )
139 std::vector< QGoSynchronizedView2D * >::iterator
153 ( *SynchronizedViewIt ) = NULL;
164 if ( ioSynchronizedView )
171 ioSynchronizedView->
GetCamera()->AddObserver(
172 vtkCommand::ModifiedEvent,
177 std::cerr <<
"trying to synchronize a visualization object missing a QGoImageView"
vtkCallbackCommand * m_vtkCallBackCamSync
callback object to link callback function to SynchronizedView's event
class used to display a QWidget containing a two dimensional a vtkimagedata* or an itkimage*...
This object takes a list of QGoSynchronizedView and synchronize their cameras by setting up callbacks...
void removeSynchronizedView(QGoSynchronizedView2D *ioSynchronizedView)
remove a SynchronizedView from the vector of synchronized SynchronizedViews (this method takes care o...
static void synchronizeCameras(vtkObject *caller, long unsigned int eventId, void *clientData, void *callData)
callback function to synchornize cameras (has to be public)
void SetupCallBack()
setup the callback command object (client data, called function...etc)
QGoSynchronizedView2DCallbacks(std::vector< QGoSynchronizedView2D * > iOpenSynchronizedViews, QObject *iParent=0)
the constructor do most of the work : add observers & callbacks to QGoSynchronizedViews of the vector...
~QGoSynchronizedView2DCallbacks()
bool HasViewer(void)
true if the widget has a viewer
void Initialize(TIterator iBegin, TIterator iEnd)
vtkCamera * GetCamera(void)
get the camera of the current viewer
void addSynchronizedView(QGoSynchronizedView2D *ioSynchronizedView)
add a SynchronizedView to the vector of synchronized SynchronizedViews (this method takes care of add...
std::vector< QGoSynchronizedView2D * > m_openSynchronizedView
all open SynchronizedViews are stored in this array, to transmit it to the callback function ...