15 #ifndef niftkGeneralSegmentorController_h
16 #define niftkGeneralSegmentorController_h
18 #include <niftkMIDASGuiExports.h>
20 #include <mitkOperationActor.h>
36 class GeneralSegmentorControllerPrivate;
37 class GeneralSegmentorGUI;
132 public mitk::OperationActor,
144 virtual void SetupGUI(QWidget* parent)
override;
146 virtual bool SelectSeedTool()
override;
148 virtual bool SelectDrawTool()
override;
150 virtual bool UnselectTools()
override;
152 virtual bool SelectPolyTool()
override;
154 virtual bool SelectViewMode()
override;
156 virtual bool CleanSlice()
override;
159 virtual void ExecuteOperation(mitk::Operation* operation)
override;
165 virtual bool IsASegmentationImage(
const mitk::DataNode::Pointer node)
override;
169 virtual std::vector<mitk::DataNode*> GetWorkingDataFromSegmentationNode(
const mitk::DataNode::Pointer node)
override;
174 virtual bool CanStartSegmentationForBinaryNode(
const mitk::DataNode::Pointer node)
override;
177 virtual BaseGUI* CreateGUI(QWidget* parent)
override;
179 virtual void OnNodeVisibilityChanged(
const mitk::DataNode* node,
const mitk::BaseRenderer* renderer)
override;
194 virtual void OnSelectedSliceChanged(
ImageOrientation orientation,
int sliceIndex)
override;
201 virtual void OnNewSegmentationButtonClicked()
override;
204 void OnSeePriorCheckBoxToggled(
bool checked);
207 void OnSeeNextCheckBoxToggled(
bool checked);
212 void OnCleanButtonClicked();
216 void OnWipeButtonClicked();
220 void OnWipePlusButtonClicked();
224 void OnWipeMinusButtonClicked();
228 void OnPropagateUpButtonClicked();
232 void OnPropagateDownButtonClicked();
236 void OnPropagate3DButtonClicked();
241 void OnThresholdApplyButtonClicked();
245 void OnThresholdingCheckBoxToggled(
bool checked);
249 void OnThresholdValueChanged();
254 void OnAnyButtonClicked();
259 void OnOKButtonClicked();
264 void OnResetButtonClicked();
269 void OnCancelButtonClicked();
273 void OnRestartButtonClicked();
277 virtual void OnViewGetsVisible()
override;
279 virtual void OnViewGetsHidden()
override;
283 void OnViewGetsClosed();
289 virtual void OnNodeChanged(
const mitk::DataNode* node)
override;
294 virtual void OnNodeRemoved(
const mitk::DataNode* node)
override;
297 virtual void OnContoursChanged();
300 mitk::DataNode::Pointer CreateHelperImage(
const mitk::Image* referenceImage,
const mitk::Color& colour,
const std::string&
name,
bool visible,
int layer);
303 mitk::DataNode::Pointer CreateContourSet(
const mitk::Color& colour,
const std::string& name,
bool visible,
int layer);
306 void StoreInitialSegmentation();
309 mitk::PointSet* GetSeeds();
314 void InitialiseSeedsForSlice(
int sliceAxis,
int sliceIndex);
318 void RecalculateMinAndMaxOfImage();
323 void RecalculateMinAndMaxOfSeedValues();
326 bool DoesSliceHaveUnenclosedSeeds(
bool thresholdOn,
int sliceAxis,
int sliceIndex);
329 bool DoesSliceHaveUnenclosedSeeds(
bool thresholdOn,
int sliceAxis,
int sliceIndex,
const mitk::PointSet* seeds);
332 void FilterSeedsToCurrentSlice(
333 const mitk::PointSet* inputPoints,
336 mitk::PointSet* outputPoints
340 void FilterSeedsToEnclosedSeedsOnSlice(
341 const mitk::PointSet* inputPoints,
345 mitk::PointSet* outputPoints
349 void UpdateRegionGrowing(
bool updateRendering =
true);
353 void UpdateRegionGrowing(
bool isVisible,
int sliceAxis,
int sliceIndex,
double lowerThreshold,
double upperThreshold,
bool skipUpdate);
356 void UpdateCurrentSliceContours(
bool updateRendering =
true);
359 void UpdatePriorAndNext(
bool updateRendering =
true);
362 void DoPropagate(
bool isUp,
bool is3D);
366 bool DoWipe(
int direction);
371 bool DoThresholdApply(
bool optimiseSeeds,
bool newSliceEmpty,
bool newCheckboxStatus);
374 void ToggleTool(
int toolId);
377 void DestroyPipeline();
380 void RemoveWorkingData();
383 void RestoreInitialSegmentation();
388 void DiscardSegmentation();
391 void ClearWorkingData();
393 QScopedPointer<GeneralSegmentorControllerPrivate> d_ptr;
GLenum GLenum GLuint GLint GLint layer
Definition: glew.h:3758
Provides the MIDAS general purpose, Irregular Volume Editor functionality originally developed at the...
Definition: niftkGeneralSegmentorController.h:130
ImageOrientation
Describes the different types of orientation, axial, sagittal, coronal, that can be achieved in the D...
Definition: niftkImageOrientation.h:26
Definition: ReceptorMemberCommandTest.cxx:25
Public interface to QmitkBaseView.
Definition: niftkIBaseView.h:39
Base class for GUI controls on BlueBerry views.
Definition: niftkBaseGUI.h:29
Definition: niftkBaseSegmentorController.h:39
GLuint const GLchar * name
Definition: glew.h:1798
Definition: niftkExceptionObject.h:21
GLsizei const GLcharARB ** string
Definition: glew.h:5194