#ifndef __CPPLUGINS__INTERFACE__BASEMPRWINDOW__H__ #define __CPPLUGINS__INTERFACE__BASEMPRWINDOW__H__ #include #include #ifdef cpPlugins_Interface_QT4 #include #include #include #include #include #include #include #include #include #include #include #include #include namespace cpPlugins { namespace Interface { /** */ class cpPlugins_Interface_EXPORT BaseMPRWindow : public cpExtensions::QT::QuadSplitter { Q_OBJECT; public: typedef cpPlugins::Interface::Interface TInterface; typedef cpPlugins::Interface::ProcessObject TProcessObject; typedef cpPlugins::Interface::DataObject TDataObject; typedef cpPlugins::Interface::Image TImage; typedef cpPlugins::Interface::Mesh TMesh; typedef cpExtensions::Visualization::MPRObjects TMPRObjects; typedef TMPRObjects::TBaseStyle TBaseStyle; typedef TMPRObjects::TStyle TStyle; typedef TMPRObjects::TSlicesCommand TSlicesCommand; typedef TMPRObjects::TWindowLevelCommand TWindowLevelCommand; typedef TMPRObjects::TMouseCommand TMouseCommand; typedef TMPRObjects::TMouseWheelCommand TMouseWheelCommand; typedef TMPRObjects::TKeyCommand TKeyCommand; typedef TMPRObjects::TVoidCommand TVoidCommand; typedef std::map< std::string, TImage::Pointer > TImages; typedef std::map< std::string, TMesh::Pointer > TMeshes; typedef std::set< std::string > TOrderedStringContainer; typedef std::map< std::string, std::set< std::string > > TFilters; public: explicit BaseMPRWindow( QWidget* parent = 0 ); virtual ~BaseMPRWindow( ); void DialogLoadPlugins( ); void AssociatePluginsToMenu( QMenu* menu, QObject* obj, const char* slot ); inline void Block( ) { QApplication::setOverrideCursor( Qt::WaitCursor ); this->setEnabled( false ); } inline void Unblock( ) { QApplication::restoreOverrideCursor( ); this->setEnabled( true ); } bool LoadPlugins( const std::string& fname ); void LoadPlugins( ); std::string LoadImage( ); std::string LoadMesh( ); void ExecuteFilter( const std::string& name, const std::string& input_id, const std::string& output_id ); TProcessObject::Pointer CreateFilter( const std::string& name ) { return( this->m_Interface.CreateProcessObject( name ) ); } void AddImage( const std::string& name, TImage* image ); TImage* GetImage( std::string& name ) const { TImages::const_iterator i = this->m_Images.find( name ); if( i != this->m_Images.end( ) ) return( i->second ); else return( NULL ); } double GetWindow( ) const { return( this->m_MPRObjects->GetWindow( ) ); } double GetLevel( ) const { return( this->m_MPRObjects->GetLevel( ) ); } void ClearAll( ); protected: void _UpdatePlugins( ); protected: vtkSmartPointer< TMPRObjects > m_MPRObjects; QVTKWidget* m_XVTK; QVTKWidget* m_YVTK; QVTKWidget* m_ZVTK; QVTKWidget* m_WVTK; TInterface m_Interface; TOrderedStringContainer m_LoadedPlugins; std::string m_LastLoadedPlugin; TProcessObject::Pointer m_ImageReader; TProcessObject::Pointer m_ImageWriter; TProcessObject::Pointer m_MeshReader; TProcessObject::Pointer m_MeshWriter; TFilters m_Filters; TImages m_Images; TMeshes m_Meshes; }; } // ecapseman } // ecapseman #endif // cpPlugins_Interface_QT4 #endif // __CPPLUGINS__INTERFACE__BASEMPRWINDOW__H__ // eof - $RCSfile$