#ifndef __IMAGEMPR__H__
#define __IMAGEMPR__H__
-// Standard stuff
#include <map>
-#include <string>
+#include <vector>
// Qt stuff
+#include <QApplication>
#include <QMainWindow>
// vtk stuff
-#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
+#include <cpExtensions/Visualization/MPRObjects.h>
// Plugins interface
-#include <cpPlugins/Interface/Interface.h>
-#include <cpPlugins/Interface/ProcessObject.h>
+#include <cpPlugins/Interface/BaseApplication.h>
+#include <cpPlugins/Interface/Plugins.h>
#include <cpPlugins/Interface/Image.h>
-#include <cpPlugins/Interface/DataObject.h>
-#include <cpPlugins/Extensions/Visualization/MPRActors.h>
-#include <cpPlugins/Extensions/Visualization/ImageInteractorStyle.h>
-
-
-/*
- #include <vtkOrientationMarkerWidget.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/Interface/Mesh.h>
// -------------------------------------------------------------------------
namespace Ui
class ImageMPR;
}
-// -------------------------------------------------------------------------
/**
*/
class ImageMPR
- : public QMainWindow
+ : public QMainWindow,
+ public cpPlugins::Interface::BaseApplication
{
Q_OBJECT;
public:
- // Plugins types
- 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 std::map< std::string, std::string > TStringMap;
- typedef cpPlugins::Extensions::Visualization::MPRActors TMPRActors;
- typedef cpPlugins::Extensions::Visualization::ImageInteractorStyle TStyle;
+ typedef ImageMPR Self;
+ typedef QMainWindow Superclass;
+ typedef cpExtensions::Visualization::MPRObjects TMPRObjects;
+ typedef cpPlugins::Interface::Plugins TPlugins;
+ typedef cpPlugins::Interface::DataObject TDataObject;
+ typedef cpPlugins::Interface::Image TImage;
+ typedef cpPlugins::Interface::Mesh TMesh;
public:
explicit ImageMPR( QWidget* parent = 0 );
virtual ~ImageMPR( );
+ virtual void UpdateActualFilter( );
+
+protected:
+ void _AssociatePluginsToMenu( );
+
private slots:
- void _triggered_actionOpenPlugins( );
- void _triggered_actionOpenInputImage( );
+ void _aOpenImage( );
+ void _aOpenDICOMSeries( );
+ void _aOpenSegmentation( );
+ void _aOpenPolyData( );
+ void _aSaveImage( );
+ void _aSavePolyData( );
+ void _aUndo( );
+ void _aRedo( );
+ void _aLoadPlugins( );
+ void _aShowPlugins( );
+
+ void _execPlugin( );
private:
Ui::ImageMPR* m_UI;
-
- // Plugins objects
- TPluginsInterface m_Plugins;
-
- // Needed object from plugins
- TStringMap m_BaseClasses;
-
- // Real data
- TPluginImage* m_InputImage;
-
- // Visualization stuff
- vtkSmartPointer< vtkRenderer > m_3DRenderer;
- vtkSmartPointer< vtkRenderer > m_XPlaneRenderer;
- vtkSmartPointer< vtkRenderer > m_YPlaneRenderer;
- vtkSmartPointer< vtkRenderer > m_ZPlaneRenderer;
- vtkSmartPointer< TMPRActors > m_MPRActors;
- vtkSmartPointer< TStyle > m_XStyle;
- vtkSmartPointer< TStyle > m_YStyle;
- vtkSmartPointer< TStyle > m_ZStyle;
+ TPlugins m_Plugins;
+ std::string m_ActiveFilterMainInput;
/* TODO
- vtkSmartPointer< idms::VolumeActors > m_ImageActors;
vtkSmartPointer< vtkOrientationMarkerWidget > m_3DOrientationWidget;
*/
-
- /*
- TTriangulation::Pointer m_Mesh;
- vtkSmartPointer< TTriangulationMapper > m_MeshMapper;
- vtkSmartPointer< vtkActor > m_MeshActor;
- TCutter::Pointer m_ZCutter;
- */
};
#endif // __IMAGEMPR__H__