1 #ifndef __CPPLUGINS__INTERFACE__BASEMPRWINDOW__H__
2 #define __CPPLUGINS__INTERFACE__BASEMPRWINDOW__H__
4 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
5 #include <cpPlugins/Interface/Config.h>
7 #ifdef cpPlugins_Interface_QT4
13 #include <QApplication>
15 #include <QVTKWidget.h>
17 #include <vtkSmartPointer.h>
19 #include <cpExtensions/QT/QuadSplitter.h>
20 #include <cpExtensions/Visualization/MPRObjects.h>
21 #include <cpPlugins/Interface/Interface.h>
22 #include <cpPlugins/Interface/ProcessObject.h>
23 #include <cpPlugins/Interface/Image.h>
24 #include <cpPlugins/Interface/Mesh.h>
32 class cpPlugins_Interface_EXPORT BaseMPRWindow
33 : public cpExtensions::QT::QuadSplitter
38 typedef cpPlugins::Interface::Interface TInterface;
39 typedef cpPlugins::Interface::ProcessObject TProcessObject;
40 typedef cpPlugins::Interface::DataObject TDataObject;
41 typedef cpPlugins::Interface::Image TImage;
42 typedef cpPlugins::Interface::Mesh TMesh;
44 typedef cpExtensions::Visualization::MPRObjects TMPRObjects;
45 typedef TMPRObjects::TCursorCommand TCursorCommand;
46 typedef TMPRObjects::TMouseCommand TMouseCommand;
47 typedef TMPRObjects::TMouseWheelCommand TMouseWheelCommand;
48 typedef TMPRObjects::TKeyCommand TKeyCommand;
50 typedef std::map< std::string, TImage::Pointer > TImages;
51 typedef std::map< std::string, TMesh::Pointer > TMeshes;
52 typedef std::set< std::string > TOrderedStringContainer;
53 typedef std::map< std::string, std::set< std::string > > TFilters;
56 explicit BaseMPRWindow( QWidget* parent = 0 );
57 virtual ~BaseMPRWindow( );
59 void AddCursorCommand( TCursorCommand command, void* data )
61 this->m_MPRObjects->AddCursorCommand( command, data );
64 void DialogLoadPlugins( );
65 void AssociatePluginsToMenu(
66 QMenu* menu, QObject* obj, const char* slot
71 QApplication::setOverrideCursor( Qt::WaitCursor );
72 this->setEnabled( false );
74 inline void Unblock( )
76 QApplication::restoreOverrideCursor( );
77 this->setEnabled( true );
80 bool LoadPlugins( const std::string& fname );
82 std::string LoadImage( );
83 std::string LoadMesh( );
86 const std::string& name,
87 const std::string& input_id,
88 const std::string& output_id
91 TProcessObject::Pointer CreateFilter( const std::string& name )
93 return( this->m_Interface.CreateProcessObject( name ) );
96 void AddImage( const std::string& name, TImage* image );
97 TImage* GetImage( std::string& name ) const
99 TImages::const_iterator i = this->m_Images.find( name );
100 if( i != this->m_Images.end( ) )
106 double GetWindow( ) const
108 return( this->m_MPRObjects->GetWindow( ) );
110 double GetLevel( ) const
112 return( this->m_MPRObjects->GetLevel( ) );
118 void _UpdatePlugins( );
121 vtkSmartPointer< TMPRObjects > m_MPRObjects;
128 TInterface m_Interface;
129 TOrderedStringContainer m_LoadedPlugins;
130 std::string m_LastLoadedPlugin;
132 TProcessObject::Pointer m_ImageReader;
133 TProcessObject::Pointer m_ImageWriter;
134 TProcessObject::Pointer m_MeshReader;
135 TProcessObject::Pointer m_MeshWriter;
146 #endif // cpPlugins_Interface_QT4
148 #endif // __CPPLUGINS__INTERFACE__BASEMPRWINDOW__H__