]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/BaseMPRWindow.cxx
MPR objects and interactors updated.
[cpPlugins.git] / lib / cpPlugins / Interface / BaseMPRWindow.cxx
1 #include <cpPlugins/Interface/BaseMPRWindow.h>
2
3 #ifdef cpPlugins_Interface_QT4
4
5 #include <vtkRendererCollection.h>
6
7 // -------------------------------------------------------------------------
8 cpPlugins::Interface::BaseMPRWindow::
9 BaseMPRWindow( QWidget* parent )
10   : cpExtensions::QT::QuadSplitter( parent )
11 {
12   // Configure splitter
13   this->m_XVTK = new QVTKWidget( this );
14   this->m_YVTK = new QVTKWidget( this );
15   this->m_ZVTK = new QVTKWidget( this );
16   this->m_WVTK = new QVTKWidget( this );
17   this->addWidgets( this->m_YVTK, this->m_XVTK, this->m_ZVTK, this->m_WVTK );
18
19   // Create and associate vtk renderers
20   this->m_MPRObjects = vtkSmartPointer< TMPRObjects >::New( );
21   this->m_MPRObjects->SetRenderWindows(
22     this->m_XVTK->GetRenderWindow( ),
23     this->m_YVTK->GetRenderWindow( ),
24     this->m_ZVTK->GetRenderWindow( ),
25     this->m_WVTK->GetRenderWindow( )
26     );
27 }
28
29 // -------------------------------------------------------------------------
30 cpPlugins::Interface::BaseMPRWindow::
31 ~BaseMPRWindow( )
32 {
33   if( this->m_WVTK != NULL ) delete this->m_WVTK;
34   if( this->m_ZVTK != NULL ) delete this->m_ZVTK;
35   if( this->m_YVTK != NULL ) delete this->m_YVTK;
36   if( this->m_XVTK != NULL ) delete this->m_XVTK;
37 }
38
39 // -------------------------------------------------------------------------
40 bool cpPlugins::Interface::BaseMPRWindow::
41 ShowImage( vtkImageData* image )
42 {
43   bool r = ( image != NULL );
44   if( r )
45     this->m_MPRObjects->AddImage( image );
46   return( r );
47 }
48
49 // -------------------------------------------------------------------------
50 bool cpPlugins::Interface::BaseMPRWindow::
51 ShowImage( vtkImageData* image, double r, double g, double b )
52 {
53   return( false );
54 }
55
56 // -------------------------------------------------------------------------
57 bool cpPlugins::Interface::BaseMPRWindow::
58 ShowMesh( vtkPolyData* mesh )
59 {
60   return( false );
61 }
62
63 // -------------------------------------------------------------------------
64 /*
65   void cpPlugins::Interface::BaseMPRWindow::
66   AddImage( const std::string& name, TImage* image )
67   {
68   this->m_Images[ name ] = image;
69   vtkImageData* vtk_id =
70   this->m_Images[ name ]->GetVTK< vtkImageData >( );
71   if( vtk_id != NULL )
72   this->m_MPRObjects->AddImage( vtk_id );
73   }
74 */
75
76 // -------------------------------------------------------------------------
77 double cpPlugins::Interface::BaseMPRWindow::
78 GetWindow( ) const
79 {
80   return( this->m_MPRObjects->GetWindow( ) );
81 }
82
83 // -------------------------------------------------------------------------
84 double cpPlugins::Interface::BaseMPRWindow::
85 GetLevel( ) const
86 {
87   return( this->m_MPRObjects->GetLevel( ) );
88 }
89
90 // -------------------------------------------------------------------------
91 void cpPlugins::Interface::BaseMPRWindow::
92 ClearAll( )
93 {
94   /*
95     this->m_MPRObjects->ClearAll( );
96     this->m_Images.clear( );
97     this->m_Meshes.clear( );
98   */
99 }
100
101 // -------------------------------------------------------------------------
102 void cpPlugins::Interface::BaseMPRWindow::
103 Add3DActor( vtkProp3D* prop )
104 {
105   vtkRenderer* ren =
106     this->m_WVTK->GetRenderWindow( )->GetRenderers( )->GetFirstRenderer( );
107   if( ren == NULL )
108     return;
109   ren->AddActor( prop );
110   this->m_WVTK->GetRenderWindow( )->Render( );
111 }
112
113 #endif // cpPlugins_Interface_QT4
114
115 // eof - $RCSfile$