#ifndef __IMAGEMPR__H__
#define __IMAGEMPR__H__
-// Standard stuff
-#include <map>
-#include <set>
+#include <vector>
// Qt stuff
#include <QMainWindow>
// vtk stuff
-#include <vtkRenderer.h>
#include <vtkSmartPointer.h>
-#include <cpExtensions/Visualization/MPRActors.h>
+#include <cpExtensions/Visualization/MPRObjects.h>
// Plugins interface
#include <cpPlugins/Interface/Interface.h>
#include <cpPlugins/Interface/ProcessObject.h>
#include <cpPlugins/Interface/Image.h>
+#include <cpPlugins/Interface/ImplicitFunction.h>
#include <cpPlugins/Interface/Mesh.h>
// -------------------------------------------------------------------------
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::Mesh TPluginMesh;
- typedef cpPlugins::Interface::ProcessObject TPluginFilter;
- typedef cpPlugins::Interface::Parameters TParameters;
+ typedef cpPlugins::Interface::Interface TPluginsInterface;
+ typedef cpPlugins::Interface::Object TPluginObject;
+ typedef cpPlugins::Interface::DataObject TPluginData;
+ typedef cpPlugins::Interface::Image TPluginImage;
+ typedef cpPlugins::Interface::ImplicitFunction TPluginImplicitFunction;
+ typedef cpPlugins::Interface::Mesh TPluginMesh;
+ typedef cpPlugins::Interface::ProcessObject TPluginFilter;
+ typedef cpPlugins::Interface::Parameters TParameters;
- typedef std::set< std::string > TStringContainer;
- typedef cpExtensions::Visualization::MPRActors TMPRActors;
+ typedef cpExtensions::Visualization::MPRObjects TMPRObjects;
public:
explicit ImageMPR( QWidget* parent = 0 );
protected:
bool _LoadPlugins( const std::string& filename );
+ std::string _LoadImage( TPluginImage::Pointer& image );
+ std::string _ConfigureMeshActors( );
private slots:
void _triggered_actionOpenPlugins( );
void _triggered_actionOpenInputImage( );
+ void _triggered_actionOpenSegmentation( );
void _triggered_actionOpenInputPolyData( );
void _triggered_actionImageToImage( );
void _triggered_actionImageToMesh( );
std::string m_ImageWriterClass;
std::string m_MeshReaderClass;
std::string m_MeshWriterClass;
- TStringContainer m_ImageToImageFilters;
- TStringContainer m_ImageToMeshFilters;
+ std::string m_MeshCutterClass;
// Real data
- TPluginImage::Pointer m_InputImage;
- TPluginMesh::Pointer m_InputMesh;
+ TPluginImage::Pointer m_Image;
+ TPluginImage::Pointer m_Segmentation;
+ TPluginMesh::Pointer m_Mesh;
+
+ // Cutters
+ TPluginFilter::Pointer m_Cutters[ 3 ];
+ TPluginImplicitFunction::Pointer m_Planes[ 3 ];
// Visualization stuff
- vtkSmartPointer< TMPRActors > m_MPRActors;
- vtkSmartPointer< vtkRenderer > m_Renderers[ 4 ];
- vtkSmartPointer< vtkPolyDataMapper > m_InputMeshMapper;
- vtkSmartPointer< vtkActor > m_InputMeshActor;
+ vtkSmartPointer< TMPRObjects > m_MPRObjects;
/* TODO
vtkSmartPointer< vtkOrientationMarkerWidget > m_3DOrientationWidget;