12 #include <vtkOrientationMarkerWidget.h>
13 #include <vtkRenderer.h>
14 #include <vtkSmartPointer.h>
17 #include <cpPlugins/Interface/Interface.h>
18 #include <cpPlugins/Interface/ProcessObject.h>
19 #include <cpPlugins/Interface/DataObject.h>
22 #include "InteractorStyleImage.h"
23 #include "VolumeActors.h"
28 #include <itkImageToVTKImageFilter.h>
30 #include <cpm/DataStructures/QuadEdgeMesh.h>
32 #include <cpm/VTK/MeshMapper.h>
33 #include <cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.h>
36 // -------------------------------------------------------------------------
42 // -------------------------------------------------------------------------
52 typedef cpPlugins::Interface::Interface TPluginsInterface;
53 typedef cpPlugins::Interface::DataObject TPluginData;
54 typedef cpPlugins::Interface::ProcessObject TPlugin;
55 typedef TPlugin::TParameters TParameters;
58 explicit MainWnd( QWidget* parent = 0 );
62 void _LoadApplicationPreferences( );
63 TPluginData* _LoadImage(
64 const std::string& image_type, const std::string& image_dim
66 void _UpdateEnabledFlags( );
69 bool _ParametersDialog( TParameters& parameters );
74 void _SliceMesh( int axis );
75 static void _SliceEventCallback(
77 long unsigned int eventId,
78 void* clientData, void* callData
83 void _triggered_actionReloadPlugins( );
84 void _triggered_actionOpenInputImage( );
85 void _triggered_actionOpenSegmentedImage( );
86 void _triggered_actionSwitchMode( );
89 void triggered_aOpenSegmentedImage( );
90 void triggered_aFilterSegmentedImage( );
91 void triggered_aSegmentedImageToMesh( );
92 void triggered_aLoadInputImage( );
93 void triggered_aLoadSegmentedImage( );
99 // Application preferences
100 std::string m_ApplicationPreferencesFile;
101 std::map< std::string, std::string > m_ApplicationPreferences;
104 std::string m_PluginsConfigurationFile;
105 TPluginsInterface m_Plugins;
107 // Needed object from plugins
108 std::string m_ImageReaderClassName;
109 std::string m_ImageSeriesReaderClassName;
110 std::string m_ImageWriterClassName;
113 std::string m_LastOpenedFile;
116 TPluginData* m_InputImage;
117 TPluginData* m_SegmentedImage;
121 TImage::Pointer m_Image;
122 TImage::Pointer m_Segmentation;
123 TMesh::Pointer m_Mesh;
124 TVTKImage::Pointer m_VTKImage;
125 TVTKImage::Pointer m_VTKSegmentation;
128 // Visualization stuff
129 vtkSmartPointer< vtkRenderer > m_3DRenderer;
130 vtkSmartPointer< vtkRenderer > m_XPlaneRenderer;
131 vtkSmartPointer< vtkRenderer > m_YPlaneRenderer;
132 vtkSmartPointer< vtkRenderer > m_ZPlaneRenderer;
133 vtkSmartPointer< vtkRenderer > m_AuxRenderer;
134 vtkSmartPointer< idms::VolumeActors > m_ImageActors;
135 vtkSmartPointer< idms::InteractorStyleImage > m_XStyle;
136 vtkSmartPointer< idms::InteractorStyleImage > m_YStyle;
137 vtkSmartPointer< idms::InteractorStyleImage > m_ZStyle;
138 vtkSmartPointer< vtkOrientationMarkerWidget > m_3DOrientationWidget;
141 TTriangulation::Pointer m_Mesh;
142 vtkSmartPointer< TTriangulationMapper > m_MeshMapper;
143 vtkSmartPointer< vtkActor > m_MeshActor;
144 TCutter::Pointer m_ZCutter;
148 #endif // __MAINWND__H__