13 #ifndef QmitkSlicesInterpolator_h_Included 14 #define QmitkSlicesInterpolator_h_Included 34 #include <QRadioButton> 37 #include "vtkProperty.h" 41 #include <QFutureWatcher> 43 #include <QtConcurrentRun> 48 class SliceNavigationController;
82 void Initialize(
mitk::ToolManager *toolManager,
const QList<mitk::SliceNavigationController *> &controllers);
94 void OnToolManagerWorkingDataModified();
99 void OnToolManagerReferenceDataModified();
101 void OnTimeChanged(itk::Object *sender,
const itk::EventObject &);
103 void OnSliceChanged(itk::Object *sender,
const itk::EventObject &);
105 void OnSliceNavigationControllerDeleted(
const itk::Object *sender,
const itk::EventObject &);
110 void OnInterpolationInfoChanged(
const itk::EventObject &);
115 void OnInterpolationAborted(
const itk::EventObject &);
120 void OnSurfaceInterpolationInfoChanged(
const itk::EventObject &);
125 void Show3DInterpolationResult(
bool);
129 void SignalRememberContourPositions(
bool);
130 void SignalShowMarkerNodes(
bool);
134 virtual void setEnabled(
bool);
138 void EnableInterpolation(
bool);
140 void Enable3DInterpolation(
bool);
152 void OnAcceptInterpolationClicked();
157 void OnAcceptAllInterpolationsClicked();
162 void OnAccept3DInterpolationClicked();
164 void OnReinit3DInterpolation();
166 void OnSuggestPlaneClicked();
172 void OnAcceptAllPopupActivated(QAction *action);
177 void OnInterpolationActivated(
bool);
179 void On3DInterpolationActivated(
bool);
181 void OnInterpolationMethodChanged(
int index);
184 void On2DInterpolationEnabled(
bool);
185 void On3DInterpolationEnabled(
bool);
186 void OnInterpolationDisabled(
bool);
187 void OnShowMarkers(
bool);
189 void Run3DInterpolation();
191 void RunPlaneSuggestion();
193 void OnSurfaceInterpolationFinished();
195 void StartUpdateInterpolationTimer();
197 void StopUpdateInterpolationTimer();
199 void ChangeSurfaceColor();
202 const std::map<QAction *, mitk::SliceNavigationController *> createActionToSliceDimension();
230 void UpdateVisibleSuggestion();
232 void SetCurrentContourListID();
235 void HideAllInterpolationControls();
236 void Show2DInterpolationControls(
bool show);
237 void Show3DInterpolationControls(
bool show);
238 void CheckSupportedImageDimension();
239 void WaitForFutures();
242 mitk::SegmentationInterpolationController::Pointer m_Interpolator;
243 mitk::SurfaceInterpolationController::Pointer m_SurfaceInterpolator;
248 mitk::ToolManager::Pointer m_ToolManager;
251 QHash<mitk::SliceNavigationController *, int> m_ControllerToTimeObserverTag;
252 QHash<mitk::SliceNavigationController *, int> m_ControllerToSliceObserverTag;
253 QHash<mitk::SliceNavigationController *, int> m_ControllerToDeleteObserverTag;
255 unsigned int InterpolationInfoChangedObserverTag;
256 unsigned int SurfaceInterpolationInfoChangedObserverTag;
257 unsigned int InterpolationAbortedObserverTag;
259 QGroupBox *m_GroupBoxEnableExclusiveInterpolationMode;
260 QComboBox *m_CmbInterpolation;
261 QPushButton *m_BtnApply2D;
262 QPushButton *m_BtnApplyForAllSlices2D;
263 QPushButton *m_BtnApply3D;
268 QCheckBox *m_ChkShowPositionNodes;
269 QPushButton *m_BtnReinit3DInterpolation;
278 unsigned int m_LastSliceIndex;
280 QHash<mitk::SliceNavigationController *, mitk::TimePointType> m_TimePoints;
282 bool m_2DInterpolationEnabled;
283 bool m_3DInterpolationEnabled;
288 QFuture<void> m_Future;
289 QFutureWatcher<void> m_Watcher;
292 QFuture<void> m_PlaneFuture;
293 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.
Controls the selection of the slice the associated BaseRenderer will display.
Image class for storing images.
std::map< QAction *, mitk::SliceNavigationController * > ACTION_TO_SLICEDIMENSION
mitk::ScalarType TimePointType
Describes a two-dimensional, rectangular plane.
Class for nodes of the DataTree.
#define MITKSEGMENTATIONUI_EXPORT