NorMIT-nav  2023.01.05-dev+develop.0da12
An IGT application
cxFilterImpl.h
Go to the documentation of this file.
1 /*=========================================================================
2 This file is part of CustusX, an Image Guided Therapy Application.
3 
4 Copyright (c) SINTEF Department of Medical Technology.
5 All rights reserved.
6 
7 CustusX is released under a BSD 3-Clause license.
8 
9 See Lisence.txt (https://github.com/SINTEFMedtek/CustusX/blob/master/License.txt) for details.
10 =========================================================================*/
11 
12 #ifndef CXFILTERIMPL_H
13 #define CXFILTERIMPL_H
14 
15 #include "cxResourceFilterExport.h"
16 
17 #include <vector>
18 #include <QObject>
19 #include "cxFilter.h"
20 #include <QDomElement>
21 #include <boost/shared_ptr.hpp>
22 
23 namespace cx
24 {
25 typedef boost::shared_ptr<class VisServices> VisServicesPtr;
26 
36 class cxResourceFilter_EXPORT FilterImpl : public Filter
37 {
38  Q_OBJECT
39 
40 public:
41  virtual ~FilterImpl() {}
42 
43  virtual QString getUid() const;
44  virtual void initialize(QDomElement root, QString uid = "");
45  virtual std::vector<PropertyPtr> getOptions();
46  virtual std::vector<SelectDataStringPropertyBasePtr> getInputTypes();
47  virtual std::vector<SelectDataStringPropertyBasePtr> getOutputTypes();
48  virtual bool hasPresets() { return false; }
49  virtual PresetsPtr getPresets() { return PresetsPtr(); }
50  virtual QDomElement generatePresetFromCurrentlySetOptions(QString name) { return QDomElement(); }
51  virtual void setActive(bool on);
52  virtual bool preProcess();
53 
54 public slots:
55  virtual void requestSetPresetSlot(QString name) {}
56 
57 protected:
58  explicit FilterImpl(VisServicesPtr services);
59 
62  ImagePtr getCopiedInputImage(int index = 0);
66  void updateThresholdFromImageChange(QString uid, DoublePropertyPtr threshold);
67  void updateThresholdPairFromImageChange(QString uid, DoublePairPropertyPtr threshold);
68 
69  virtual void createOptions() = 0;
70  virtual void createInputTypes() = 0;
71  virtual void createOutputTypes() = 0;
72 
73  std::vector<SelectDataStringPropertyBasePtr> mInputTypes;
74  std::vector<SelectDataStringPropertyBasePtr> mOutputTypes;
75  std::vector<PropertyPtr> mOptionsAdapters;
76  QDomElement mOptions;
77 
78  // data used by execute - copied for thread safety purposes
79  std::vector<DataPtr> mCopiedInput;
80  QDomElement mCopiedOptions;
81  bool mActive;
83  PatientModelServicePtr patientService();
84 
85 private:
86  QString mUid;
87 
88 };
89 
90 } // namespace cx
91 
92 
93 #endif // CXFILTERIMPL_H
cx::FilterImpl
Definition: cxFilterImpl.h:36
cx
Namespace for all CustusX production code.
Definition: cx_dev_group_definitions.h:13
cx::Filter
Definition: cxFilter.h:50
cx::FilterImpl::mCopiedInput
std::vector< DataPtr > mCopiedInput
Definition: cxFilterImpl.h:79
cx::FilterImpl::getPresets
virtual PresetsPtr getPresets()
Definition: cxFilterImpl.h:49
cx::FilterImpl::generatePresetFromCurrentlySetOptions
virtual QDomElement generatePresetFromCurrentlySetOptions(QString name)
Definition: cxFilterImpl.h:50
cx::VisServicesPtr
boost::shared_ptr< class VisServices > VisServicesPtr
Definition: cxMainWindow.h:40
cx::FilterImpl::mOutputTypes
std::vector< SelectDataStringPropertyBasePtr > mOutputTypes
Definition: cxFilterImpl.h:74
cx::FilterImpl::mInputTypes
std::vector< SelectDataStringPropertyBasePtr > mInputTypes
Definition: cxFilterImpl.h:73
cx::FilterImpl::mOptions
QDomElement mOptions
Definition: cxFilterImpl.h:76
cx::FilterImpl::mCopiedOptions
QDomElement mCopiedOptions
Definition: cxFilterImpl.h:80
cxFilter.h
cx::DoublePropertyPtr
boost::shared_ptr< class DoubleProperty > DoublePropertyPtr
Definition: cxReconstructionMethodService.h:33
cx::PresetsPtr
boost::shared_ptr< class Presets > PresetsPtr
Definition: cxForwardDeclarations.h:161
cx::PatientModelServicePtr
boost::shared_ptr< class PatientModelService > PatientModelServicePtr
Definition: cxLogicManager.h:25
cx::DoublePairPropertyPtr
boost::shared_ptr< class DoublePairProperty > DoublePairPropertyPtr
Definition: cxForwardDeclarations.h:145
cx::ImagePtr
boost::shared_ptr< class Image > ImagePtr
Definition: cxDicomWidget.h:27
cx::FilterImpl::~FilterImpl
virtual ~FilterImpl()
Definition: cxFilterImpl.h:41
cx::FilterImpl::hasPresets
virtual bool hasPresets()
Definition: cxFilterImpl.h:48
cx::FilterImpl::requestSetPresetSlot
virtual void requestSetPresetSlot(QString name)
Definition: cxFilterImpl.h:55
cx::FilterImpl::mOptionsAdapters
std::vector< PropertyPtr > mOptionsAdapters
Definition: cxFilterImpl.h:75
cx::FilterImpl::mActive
bool mActive
Definition: cxFilterImpl.h:81
cx::FilterImpl::mServices
VisServicesPtr mServices
Definition: cxFilterImpl.h:82