NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
SurfaceExtractorView.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef SurfaceExtractorView_h
16 #define SurfaceExtractorView_h
17 
18 #include "ui_SurfaceExtractorViewControls.h"
19 
20 #include <berryQtViewPart.h>
21 #include <berryIBerryPreferences.h>
22 #include <mitkDataNode.h>
23 #include <mitkDataStorage.h>
24 #include <mitkImageToSurfaceFilter.h>
25 
26 #include <niftkBaseView.h>
27 
28 class QWidget;
29 class QEvent;
31 
38 {
39 
40  // this is needed for all Qt objects that should have a MOC object (everything that derives from QObject)
41  Q_OBJECT
42 
43 public:
44 
45  explicit SurfaceExtractorView();
46  virtual ~SurfaceExtractorView();
47 
49  static const std::string VIEW_ID;
50 
51 protected:
52 
56  virtual void Activated() override;
57 
59  virtual void CreateQtPartControl(QWidget *parent) override;
60 
61  virtual bool eventFilter(QObject *obj, QEvent *event) override;
62 
64  virtual void SetFocus() override;
65 
66  virtual void OnSelectionChanged(berry::IWorkbenchPart::Pointer part, const QList<mitk::DataNode::Pointer> &nodes) override;
67 
68 protected slots:
69 
70 private slots:
71 
72  void OnApplyClicked();
73  void OnAdvancedFeaturesToggled(int state);
74  void OnExtractionMethodChanged(int which);
75 
76 private:
77 
79  void RetrievePreferenceValues();
80 
82  virtual void OnPreferencesChanged(const berry::IBerryPreferences*) override;
83 
84  void SelectReferenceNode(mitk::DataNode::Pointer node);
85  void SelectSurfaceNode(mitk::DataNode::Pointer node);
86  void DeselectNode();
87 
88  void LoadParameters();
89  void SaveParameters();
90  void UpdateFields();
91 
93  void EnableControls(bool b);
94 
96  mitk::DataStorage::SetOfObjects::ConstPointer findSurfaceNodesOf(mitk::DataNode::Pointer referenceNode);
97 
99  mitk::DataNode::Pointer findReferenceNodeOf(mitk::DataNode::Pointer surfaceNode);
100 
101  void CreateSurfaceNode();
102  void UpdateSurfaceNode();
103 
104 private:
106  Ui::SurfaceExtractorViewControls* m_Controls;
107 
108  // Store a reference to the parent widget of this view.
109  QWidget *m_Parent;
110 
111  QScopedPointer<SurfaceExtractorViewPrivate> d_ptr;
112 
113  Q_DECLARE_PRIVATE(SurfaceExtractorView);
114  Q_DISABLE_COPY(SurfaceExtractorView);
115 };
116 #endif // _SurfaceExtractorView_h
virtual void OnSelectionChanged(berry::IWorkbenchPart::Pointer part, const QList< mitk::DataNode::Pointer > &nodes) override
Definition: SurfaceExtractorView.cxx:358
virtual bool eventFilter(QObject *obj, QEvent *event) override
Definition: SurfaceExtractorView.cxx:296
GLdouble GLdouble GLdouble b
Definition: glew.h:7885
virtual void CreateQtPartControl(QWidget *parent) override
Called by framework, this method creates all the controls for this view.
Definition: SurfaceExtractorView.cxx:267
static const std::string VIEW_ID
Each view for a plugin has its own globally unique ID.
Definition: SurfaceExtractorView.h:49
GLhandleARB obj
Definition: glew.h:5177
virtual ~SurfaceExtractorView()
Definition: SurfaceExtractorView.cxx:234
Base view component for plugins listening to visibility change events, focus changed events and so on...
Definition: niftkBaseView.h:47
Definition: SurfaceExtractorView.cxx:95
virtual void Activated() override
Definition: SurfaceExtractorView.cxx:290
cl_event event
Definition: glew.h:3231
virtual void SetFocus() override
Called by framework, sets the focus on a specific widget.
Definition: SurfaceExtractorView.cxx:324
Provides a simple GUI to extract the surface of 3D volumes.
Definition: SurfaceExtractorView.h:37
SurfaceExtractorView()
Definition: SurfaceExtractorView.cxx:203
GLsizei const GLcharARB ** string
Definition: glew.h:5194