X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FInteractiveDeformableMeshSegmentation%2FMainWnd.h;fp=appli%2FInteractiveDeformableMeshSegmentation%2FMainWnd.h;h=d3bef88941c9b95640823a073623f54a67eddc1d;hb=de28025e5f1835fba69cb0a6666d02f0b7daec0d;hp=c1fe98f558dbee968460091d7ea4ac46f21e444d;hpb=03299aa011d1f8bfb47a5fcfcff2920e10820811;p=cpMesh.git diff --git a/appli/InteractiveDeformableMeshSegmentation/MainWnd.h b/appli/InteractiveDeformableMeshSegmentation/MainWnd.h index c1fe98f..d3bef88 100644 --- a/appli/InteractiveDeformableMeshSegmentation/MainWnd.h +++ b/appli/InteractiveDeformableMeshSegmentation/MainWnd.h @@ -1,24 +1,34 @@ #ifndef __MAINWND__H__ #define __MAINWND__H__ -#include +// Standard stuff +#include +#include -#include -#include +// Qt stuff +#include +// vtk stuff #include #include #include -#include - -#include -#include +// Plugins interface +#include +#include +#include +// Local stuff #include "InteractorStyleImage.h" #include "VolumeActors.h" + /* + #include + #include + + #include + #include #include */ @@ -39,39 +49,26 @@ class MainWnd public: // Plugins types - typedef cpmPluginsInterface::FilterProvider TFilterProvider; - typedef cpmPluginsInterface::Filter TFilterObject; - typedef TFilterObject::TParameters TParameters; - typedef - cpmPluginsInterface::Interface< TFilterProvider, TFilterObject > - TFilterPlugins; - - // Data types - static const unsigned int Dimension = 3; - typedef short TPixel; - typedef double TScalar; - typedef itk::Image< TPixel, Dimension > TImage; - typedef itk::ImageToVTKImageFilter< TImage > TVTKImage; - - typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh; - - /* - typedef cpm::VTK::MeshMapper< TTriangulation > TTriangulationMapper; - typedef - cpm::Algorithms::QuadEdge::MeshPlaneCutterFilter< TTriangulation > - TCutter; - */ + typedef cpPlugins::Interface::Interface TPluginsInterface; + typedef cpPlugins::Interface::DataObject TPluginData; + typedef cpPlugins::Interface::ProcessObject TPlugin; + typedef TPlugin::TParameters TParameters; public: explicit MainWnd( QWidget* parent = 0 ); virtual ~MainWnd( ); protected: + void _LoadApplicationPreferences( ); + TPluginData* _LoadImage( + const std::string& image_type, const std::string& image_dim + ); void _UpdateEnabledFlags( ); - bool _ParametersDialog( TParameters& parameters ); - template< class I > - bool _LoadImage( typename I::Pointer& image ); + /* TODO + bool _ParametersDialog( TParameters& parameters ); + template< class I > + */ /* void _SliceMesh( int axis ); @@ -83,33 +80,52 @@ protected: */ private slots: - void triggered_aSwitchMode( ); - void triggered_aReloadPlugins( ); - void triggered_aOpenInputImage( ); - void triggered_aOpenSegmentedImage( ); - void triggered_aFilterSegmentedImage( ); - void triggered_aSegmentedImageToMesh( ); - /* - void triggered_aLoadInputImage( ); - void triggered_aLoadSegmentedImage( ); + 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; + std::map< std::string, std::string > m_ApplicationPreferences; + // Plugins objects - std::string m_PluginsConfigurationFile; - TFilterPlugins m_FilterPlugins; - - // Inputs - std::string m_LastOpenedFile; - TImage::Pointer m_Image; - TImage::Pointer m_Segmentation; - TMesh::Pointer m_Mesh; - TVTKImage::Pointer m_VTKImage; - TVTKImage::Pointer m_VTKSegmentation; - - // Renderers + std::string m_PluginsConfigurationFile; + TPluginsInterface m_Plugins; + + // Needed object from plugins + std::string m_ImageReaderClassName; + std::string m_ImageSeriesReaderClassName; + std::string m_ImageWriterClassName; + + // 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; @@ -119,8 +135,8 @@ private: 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;