17 #ifndef QmitkSlicesInterpolator_h_Included
18 #define QmitkSlicesInterpolator_h_Included
39 #include <QRadioButton>
42 #include "vtkProperty.h"
46 #include <QFutureWatcher>
48 #include <QtConcurrentRun>
53 class SliceNavigationController;
90 void Initialize(
mitk::ToolManager *toolManager,
const QList<mitk::SliceNavigationController *> &controllers);
102 void OnToolManagerWorkingDataModified();
107 void OnToolManagerReferenceDataModified();
109 void OnTimeChanged(itk::Object *sender,
const itk::EventObject &);
111 void OnSliceChanged(itk::Object *sender,
const itk::EventObject &);
113 void OnSliceNavigationControllerDeleted(
const itk::Object *sender,
const itk::EventObject &);
118 void OnInterpolationInfoChanged(
const itk::EventObject &);
123 void OnSurfaceInterpolationInfoChanged(
const itk::EventObject &);
128 void Show3DInterpolationResult(
bool);
132 void SignalRememberContourPositions(
bool);
133 void SignalShowMarkerNodes(
bool);
137 virtual void setEnabled(
bool);
141 void EnableInterpolation(
bool);
143 void Enable3DInterpolation(
bool);
155 void OnAcceptInterpolationClicked();
160 void OnAcceptAllInterpolationsClicked();
165 void OnAccept3DInterpolationClicked();
167 void OnReinit3DInterpolation();
169 void OnSuggestPlaneClicked();
175 void OnAcceptAllPopupActivated(QAction *action);
180 void OnInterpolationActivated(
bool);
182 void On3DInterpolationActivated(
bool);
184 void OnInterpolationMethodChanged(
int index);
187 void On2DInterpolationEnabled(
bool);
188 void On3DInterpolationEnabled(
bool);
189 void OnInterpolationDisabled(
bool);
190 void OnShowMarkers(
bool);
192 void Run3DInterpolation();
194 void RunPlaneSuggestion();
196 void OnSurfaceInterpolationFinished();
198 void StartUpdateInterpolationTimer();
200 void StopUpdateInterpolationTimer();
202 void ChangeSurfaceColor();
205 const std::map<QAction *, mitk::SliceNavigationController *> createActionToSliceDimension();
233 void UpdateVisibleSuggestion();
235 void SetCurrentContourListID();
238 void HideAllInterpolationControls();
239 void Show2DInterpolationControls(
bool show);
240 void Show3DInterpolationControls(
bool show);
241 void CheckSupportedImageDimension();
242 void WaitForFutures();
254 QHash<mitk::SliceNavigationController *, int> m_ControllerToTimeObserverTag;
255 QHash<mitk::SliceNavigationController *, int> m_ControllerToSliceObserverTag;
256 QHash<mitk::SliceNavigationController *, int> m_ControllerToDeleteObserverTag;
258 unsigned int InterpolationInfoChangedObserverTag;
259 unsigned int SurfaceInterpolationInfoChangedObserverTag;
261 QGroupBox *m_GroupBoxEnableExclusiveInterpolationMode;
262 QComboBox *m_CmbInterpolation;
263 QPushButton *m_BtnApply2D;
264 QPushButton *m_BtnApplyForAllSlices2D;
265 QPushButton *m_BtnApply3D;
267 QPushButton *m_BtnSuggestPlane;
269 QCheckBox *m_ChkShowPositionNodes;
270 QPushButton *m_BtnReinit3DInterpolation;
279 unsigned int m_LastSliceIndex;
281 QHash<mitk::SliceNavigationController *, unsigned int> m_TimeStep;
283 bool m_2DInterpolationEnabled;
284 bool m_3DInterpolationEnabled;
289 QFuture<void> m_Future;
290 QFutureWatcher<void> m_Watcher;
293 QFuture<void> m_PlaneFuture;
294 QFutureWatcher<void> m_PlaneWatcher;
GUI for slices interpolation.
Data management class that handles 'was created by' relations.
itk::SmartPointer< Self > Pointer
DataCollection - Class to facilitate loading/accessing structured data.
static mitk::DataStorage::Pointer GetDataStorage()
Controls the selection of the slice the associated BaseRenderer will display.
mitk::DataStorage::Pointer m_DataStorage
Image class for storing images.
std::map< QAction *, mitk::SliceNavigationController * > ACTION_TO_SLICEDIMENSION
Describes a two-dimensional, rectangular plane.
Class for nodes of the DataTree.
#define MITKSEGMENTATIONUI_EXPORT