]> Creatis software - cpMesh.git/blobdiff - appli/InteractiveDeformableMeshSegmentation/MainWnd.h
New plugin added
[cpMesh.git] / appli / InteractiveDeformableMeshSegmentation / MainWnd.h
index 1389cc8baa9be59733323c439e770ca22964d34b..3576ac576b44732f6ccdfc235f6d57e878379f82 100644 (file)
@@ -7,6 +7,7 @@
 
 // Qt stuff
 #include <QMainWindow>
+#include <QWidget>
 
 // vtk stuff
 #include <vtkOrientationMarkerWidget.h>
 // Plugins interface
 #include <cpPlugins/Interface/Interface.h>
 #include <cpPlugins/Interface/ProcessObject.h>
+#include <cpPlugins/Interface/Image.h>
 #include <cpPlugins/Interface/DataObject.h>
-
-// Local stuff
-#include "InteractorStyleImage.h"
-#include "VolumeActors.h"
-
-
-/*
-  #include <itkImage.h>
-  #include <itkImageToVTKImageFilter.h>
-
-  #include <cpm/DataStructures/QuadEdgeMesh.h>
-
-  #include <cpm/VTK/MeshMapper.h>
-  #include <cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.h>
-*/
+#include <cpPlugins/Extensions/Visualization/MPRWithDifferentWindows.h>
 
 // -------------------------------------------------------------------------
 namespace Ui
@@ -52,8 +40,10 @@ public:
   typedef cpPlugins::Interface::Interface     TPluginsInterface;
   typedef cpPlugins::Interface::Object        TPluginObject;
   typedef cpPlugins::Interface::DataObject    TPluginData;
+  typedef cpPlugins::Interface::Image         TPluginImage;
   typedef cpPlugins::Interface::ProcessObject TPlugin;
   typedef TPlugin::TParameters                TParameters;
+  typedef cpPlugins::Extensions::Visualization::MPRWithDifferentWindows TMPR;
 
   typedef std::map< std::string, std::string > TStringMap;
 
@@ -65,16 +55,19 @@ protected:
   void _LoadApplicationPreferences( );
   bool _LoadPlugins( );
   bool _CheckClassesInPlugins( const TStringMap& classes );
-  TPluginData* _LoadImage(
+  void _AddPluginActions(
+    const TStringMap& classes, QMenu* menu, const char* method
+    );
+  TPluginImage* _LoadImage(
     const std::string& image_type, const std::string& image_dim
     );
   void _UpdateEnabledFlags( );
 
+  bool _ParametersDialog( const TParameters& parameters );
+
   /* TODO
-     bool _ParametersDialog( TParameters& parameters );
      template< class I >
   */
-
   /*
     void _SliceMesh( int axis );
     static void _SliceEventCallback(
@@ -90,6 +83,10 @@ private slots:
   void _triggered_actionOpenSegmentedImage( );
   void _triggered_actionSwitchMode( );
   
+  void _triggered_actionSegmentImage( );
+  void _triggered_actionFilterSegmentation( );
+  void _triggered_actionProcessMesh( );
+
   /* TODO
      void triggered_aOpenSegmentedImage( );
      void triggered_aFilterSegmentedImage( );
@@ -119,36 +116,15 @@ private:
   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;
-  */
+  TPluginImage* m_InputImage;
+  TPluginImage* m_SegmentedImage;
 
   // 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;
+  TMPR* m_MPR;
 
-  /*
-    TTriangulation::Pointer                 m_Mesh;
-    vtkSmartPointer< TTriangulationMapper > m_MeshMapper;
-    vtkSmartPointer< vtkActor >             m_MeshActor;
-    TCutter::Pointer m_ZCutter;
-  */
+  // Active plugin
+  TPlugin* m_ActivePlugin;
+  QWidget* m_ActiveParameters;
 };
 
 #endif // __MAINWND__H__