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::Object TPluginObject;
54 typedef cpPlugins::Interface::DataObject TPluginData;
55 typedef cpPlugins::Interface::ProcessObject TPlugin;
56 typedef TPlugin::TParameters TParameters;
58 typedef std::map< std::string, std::string > TStringMap;
61 explicit MainWnd( QWidget* parent = 0 );
65 void _LoadApplicationPreferences( );
67 bool _CheckClassesInPlugins( const TStringMap& classes );
68 TPluginData* _LoadImage(
69 const std::string& image_type, const std::string& image_dim
71 void _UpdateEnabledFlags( );
74 bool _ParametersDialog( TParameters& parameters );
79 void _SliceMesh( int axis );
80 static void _SliceEventCallback(
82 long unsigned int eventId,
83 void* clientData, void* callData
88 void _triggered_actionReloadPlugins( );
89 void _triggered_actionOpenInputImage( );
90 void _triggered_actionOpenSegmentedImage( );
91 void _triggered_actionSwitchMode( );
94 void triggered_aOpenSegmentedImage( );
95 void triggered_aFilterSegmentedImage( );
96 void triggered_aSegmentedImageToMesh( );
97 void triggered_aLoadInputImage( );
98 void triggered_aLoadSegmentedImage( );
104 // Application preferences
105 std::string m_ApplicationPreferencesFile;
106 TStringMap m_ApplicationPreferences;
109 std::string m_PluginsConfigurationFile;
110 TPluginsInterface m_Plugins;
112 // Needed object from plugins
113 TStringMap m_BaseClasses;
114 TStringMap m_SegmentationClasses;
115 TStringMap m_SegmentationFilterClasses;
116 TStringMap m_MeshFilterClasses;
119 std::string m_LastOpenedFile;
122 TPluginData* m_InputImage;
123 TPluginData* m_SegmentedImage;
127 TImage::Pointer m_Image;
128 TImage::Pointer m_Segmentation;
129 TMesh::Pointer m_Mesh;
130 TVTKImage::Pointer m_VTKImage;
131 TVTKImage::Pointer m_VTKSegmentation;
134 // Visualization stuff
135 vtkSmartPointer< vtkRenderer > m_3DRenderer;
136 vtkSmartPointer< vtkRenderer > m_XPlaneRenderer;
137 vtkSmartPointer< vtkRenderer > m_YPlaneRenderer;
138 vtkSmartPointer< vtkRenderer > m_ZPlaneRenderer;
139 vtkSmartPointer< vtkRenderer > m_AuxRenderer;
140 vtkSmartPointer< idms::VolumeActors > m_ImageActors;
141 vtkSmartPointer< idms::InteractorStyleImage > m_XStyle;
142 vtkSmartPointer< idms::InteractorStyleImage > m_YStyle;
143 vtkSmartPointer< idms::InteractorStyleImage > m_ZStyle;
144 vtkSmartPointer< vtkOrientationMarkerWidget > m_3DOrientationWidget;
147 TTriangulation::Pointer m_Mesh;
148 vtkSmartPointer< TTriangulationMapper > m_MeshMapper;
149 vtkSmartPointer< vtkActor > m_MeshActor;
150 TCutter::Pointer m_ZCutter;
154 #endif // __MAINWND__H__