13 #ifndef QmitkSlicesInterpolator_h
14 #define QmitkSlicesInterpolator_h
30 #include <QRadioButton>
33 #include "vtkProperty.h"
37 #include <QFutureWatcher>
39 #include <QtConcurrentRun>
44 class SliceNavigationController;
45 class TimeNavigationController;
149 void Show3DInterpolationResult(
bool);
275 void HideAllInterpolationControls();
276 void Show2DInterpolationControls(
bool show);
277 void Show3DInterpolationControls(
bool show);
278 void CheckSupportedImageDimension();
279 void WaitForFutures();
282 mitk::SegmentationInterpolationController::Pointer m_Interpolator;
283 mitk::SurfaceInterpolationController::Pointer m_SurfaceInterpolator;
285 mitk::ToolManager::Pointer m_ToolManager;
288 unsigned int m_ControllerToTimeObserverTag;
289 QHash<mitk::SliceNavigationController *, int> m_ControllerToSliceObserverTag;
290 QHash<mitk::SliceNavigationController *, int> m_ControllerToDeleteObserverTag;
292 unsigned int InterpolationInfoChangedObserverTag;
293 unsigned int SurfaceInterpolationInfoChangedObserverTag;
294 unsigned int InterpolationAbortedObserverTag;
296 QGroupBox *m_GroupBoxEnableExclusiveInterpolationMode;
297 QComboBox *m_CmbInterpolation;
298 QPushButton *m_BtnApply2D;
299 QPushButton *m_BtnApplyForAllSlices2D;
300 QPushButton *m_BtnApply3D;
302 QCheckBox *m_ChkShowPositionNodes;
303 QPushButton *m_BtnReinit3DInterpolation;
305 mitk::DataNode::Pointer m_FeedbackNode;
306 mitk::DataNode::Pointer m_InterpolatedSurfaceNode;
311 unsigned int m_LastSliceIndex;
315 bool m_2DInterpolationEnabled;
316 bool m_3DInterpolationEnabled;
318 unsigned int m_numTimesLabelSetConnectionAdded;
320 mitk::DataStorage::Pointer m_DataStorage;
322 QFuture<void> m_Future;
323 QFutureWatcher<void> m_Watcher;
325 QFuture<void> m_ModifyFuture;
326 QFutureWatcher<void> m_ModifyWatcher;
330 QFuture<void> m_PlaneFuture;
331 QFutureWatcher<void> m_PlaneWatcher;
#define MITKSEGMENTATIONUI_EXPORT
MITK implementation of the QVTKWidget.
GUI for slices interpolation.
void OnAccept3DInterpolationClicked()
ActionToSliceDimensionMapType m_ActionToSlicerMap
void SetCurrentContourListID()
void Interpolate(mitk::PlaneGeometry *plane)
void StopUpdateInterpolationTimer()
void SetDataStorage(mitk::DataStorage::Pointer storage)
Set the Data Storage object.
~QmitkSlicesInterpolator() override
void OnInterpolationMethodChanged(int index)
void OnReinit3DInterpolation()
Reaction to reinit 3D Interpolation. Re-reads the plane geometries of the image that should have gene...
void EnableInterpolation(bool)
void ChangeSurfaceColor()
void OnSliceChanged(itk::Object *sender, const itk::EventObject &)
Reacts to the slice changed event.
bool TranslateAndInterpolateChangedSlice(const mitk::TimeGeometry *timeGeometry)
const ActionToSliceDimensionMapType CreateActionToSlicer(const QList< QmitkRenderWindow * > &windows)
void OnAcceptAllInterpolationsClicked()
mitk::DataStorage * GetDataStorage()
Get the Data Storage object.
void Run3DInterpolation()
void FinishInterpolation(mitk::SliceNavigationController *slicer=nullptr)
void On3DInterpolationActivated(bool)
void UpdateVisibleSuggestion()
void On3DInterpolationEnabled(bool)
void OnInterpolationActivated(bool)
virtual void setEnabled(bool)
std::map< QAction *, mitk::SliceNavigationController * > ActionToSliceDimensionMapType
void OnSurfaceInterpolationFinished()
Function triggers when the surface interpolation thread completes running. It is responsible for retr...
void OnInterpolationAborted(const itk::EventObject &)
void OnAcceptAllPopupActivated(QAction *action)
void SetActiveLabelValue(mitk::MultiLabelSegmentation::LabelValueType labelValue)
void OnToolManagerWorkingDataModified()
void OnSurfaceInterpolationInfoChanged(const itk::EventObject &)
void OnAcceptInterpolationClicked()
QmitkSlicesInterpolator(QWidget *parent=nullptr, const char *name=nullptr)
void Initialize(mitk::ToolManager *toolManager, const QList< QmitkRenderWindow * > &windows)
void SignalShowMarkerNodes(bool)
void SignalRememberContourPositions(bool)
void OnInterpolationDisabled(bool)
void OnTimeChanged(itk::Object *sender, const itk::EventObject &)
Reacts to the time changed event.
void Enable3DInterpolation(bool)
void On2DInterpolationEnabled(bool)
void OnInterpolationInfoChanged(const itk::EventObject &)
void StartUpdateInterpolationTimer()
void OnToolManagerReferenceDataModified()
void OnSliceNavigationControllerDeleted(const itk::Object *sender, const itk::EventObject &)
bool TranslateAndInterpolateChangedSlice(const itk::EventObject &e, mitk::SliceNavigationController *sliceNavigationController)
void AcceptAllInterpolations(mitk::SliceNavigationController *slicer)
Class for nodes of the DataTree.
Data management class that handles 'was created by' relations.
MultiLabelSegmentation class for handling labels and layers in a segmentation session.
mitk::Label::PixelType LabelValueType
Describes a two-dimensional, rectangular plane.
Controls the selection of the slice the associated BaseRenderer will display.
Find image slices visible on a given plane.
mitk::ScalarType TimePointType