#ifndef __MAINWND__H__ #define __MAINWND__H__ // Standard stuff #include #include // Qt stuff #include // vtk stuff #include #include #include // Plugins interface #include #include #include // Local stuff #include "InteractorStyleImage.h" #include "VolumeActors.h" /* #include #include #include #include #include */ // ------------------------------------------------------------------------- namespace Ui { class MainWnd; } // ------------------------------------------------------------------------- /** */ class MainWnd : public QMainWindow { Q_OBJECT; public: // Plugins types typedef cpPlugins::Interface::Interface TPluginsInterface; typedef cpPlugins::Interface::Object TPluginObject; typedef cpPlugins::Interface::DataObject TPluginData; typedef cpPlugins::Interface::ProcessObject TPlugin; typedef TPlugin::TParameters TParameters; typedef std::map< std::string, std::string > TStringMap; public: explicit MainWnd( QWidget* parent = 0 ); virtual ~MainWnd( ); protected: void _LoadApplicationPreferences( ); bool _LoadPlugins( ); bool _CheckClassesInPlugins( const TStringMap& classes ); TPluginData* _LoadImage( const std::string& image_type, const std::string& image_dim ); void _UpdateEnabledFlags( ); /* TODO bool _ParametersDialog( TParameters& parameters ); template< class I > */ /* void _SliceMesh( int axis ); static void _SliceEventCallback( vtkObject* caller, long unsigned int eventId, void* clientData, void* callData ); */ private slots: void _triggered_actionReloadPlugins( ); void _triggered_actionOpenInputImage( ); void _triggered_actionOpenSegmentedImage( ); void _triggered_actionSwitchMode( ); /* TODO void triggered_aOpenSegmentedImage( ); void triggered_aFilterSegmentedImage( ); void triggered_aSegmentedImageToMesh( ); void triggered_aLoadInputImage( ); void triggered_aLoadSegmentedImage( ); */ private: Ui::MainWnd* m_UI; // Application preferences std::string m_ApplicationPreferencesFile; TStringMap m_ApplicationPreferences; // Plugins objects std::string m_PluginsConfigurationFile; TPluginsInterface m_Plugins; // Needed object from plugins TStringMap m_BaseClasses; TStringMap m_SegmentationClasses; TStringMap m_SegmentationFilterClasses; TStringMap m_MeshFilterClasses; // Historic objects std::string m_LastOpenedFile; // Real data TPluginData* m_InputImage; TPluginData* m_SegmentedImage; /* TODO // Inputs TImage::Pointer m_Image; TImage::Pointer m_Segmentation; TMesh::Pointer m_Mesh; TVTKImage::Pointer m_VTKImage; TVTKImage::Pointer m_VTKSegmentation; */ // Visualization stuff vtkSmartPointer< vtkRenderer > m_3DRenderer; vtkSmartPointer< vtkRenderer > m_XPlaneRenderer; vtkSmartPointer< vtkRenderer > m_YPlaneRenderer; vtkSmartPointer< vtkRenderer > m_ZPlaneRenderer; vtkSmartPointer< vtkRenderer > m_AuxRenderer; vtkSmartPointer< idms::VolumeActors > m_ImageActors; vtkSmartPointer< idms::InteractorStyleImage > m_XStyle; vtkSmartPointer< idms::InteractorStyleImage > m_YStyle; vtkSmartPointer< idms::InteractorStyleImage > m_ZStyle; vtkSmartPointer< vtkOrientationMarkerWidget > m_3DOrientationWidget; /* TTriangulation::Pointer m_Mesh; vtkSmartPointer< TTriangulationMapper > m_MeshMapper; vtkSmartPointer< vtkActor > m_MeshActor; TCutter::Pointer m_ZCutter; */ }; #endif // __MAINWND__H__ // eof - $RCSfile$