NorMIT-nav  2023.01.05-dev+develop.0da12
An IGT application
cxDummyFilter.cpp
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 #include "cxDummyFilter.h"
13 #include "cxTypeConversions.h"
15 #include "cxData.h"
16 #include "cxDoubleProperty.h"
17 #include "cxStringProperty.h"
18 #include "cxBoolProperty.h"
19 #include "cxVisServices.h"
20 
21 namespace cx
22 {
23 
24 QString DummyFilter::getName() const
25 {
26  return "Dummy Filter";
27 }
28 
29 QString DummyFilter::getType() const
30 {
31  return "DummyFilter";
32 }
33 
34 QString DummyFilter::getHelp() const
35 {
36  return "A dummy implementation of the cx::Filter class,\n"
37  "intended for concept testing.\n"
38  "Can also be used as a template for new filters.";
39 }
40 
41 StringPropertyBasePtr DummyFilter::getStringOption(QDomElement root)
42 {
43  QStringList list;
44  list << "String0" << "String1";
45  return StringProperty::initialize("String", "", "dummy string option",
46  list[0], list, root);
47 }
48 
49 DoublePropertyBasePtr DummyFilter::getDoubleOption(QDomElement root)
50 {
51  return DoubleProperty::initialize("Value", "",
52  "dummy double value.", 1, DoubleRange(0.1, 10, 0.01), 2,
53  root);
54 }
55 
56 BoolPropertyBasePtr DummyFilter::getBoolOption(QDomElement root)
57 {
58  return BoolProperty::initialize("Bool0", "",
59  "Dummy bool value.", false, root);
60 }
61 
63 {
64  mOptionsAdapters.push_back(this->getStringOption(mOptions));
65  mOptionsAdapters.push_back(this->getDoubleOption(mOptions));
66  mOptionsAdapters.push_back(this->getBoolOption(mOptions));
67 }
68 
70 {
72 
73  temp = StringPropertySelectData::New(mServices->patient());
74  temp->setValueName("Input");
75  temp->setHelp("Dummy data input for a dummy algorithm");
76  mInputTypes.push_back(temp);
77 
78  temp = StringPropertySelectImage::New(mServices->patient());
79  temp->setValueName("Image");
80  temp->setHelp("Dummy image input for a dummy algorithm");
81  mInputTypes.push_back(temp);
82 
83  temp = StringPropertySelectMesh::New(mServices->patient());
84  temp->setValueName("Mesh");
85  temp->setHelp("Dummy mesh input for a dummy algorithm");
86  mInputTypes.push_back(temp);
87 }
88 
90 {
92 
93  temp = StringPropertySelectData::New(mServices->patient());
94  temp->setValueName("Output");
95  temp->setHelp("Dummy output from the dummy algorithm");
96  mOutputTypes.push_back(temp);
97 }
98 
100 {
101  StringPropertyBasePtr stringOption = this->getStringOption(mCopiedOptions);
102  DoublePropertyBasePtr doubleOption = this->getDoubleOption(mCopiedOptions);
103  BoolPropertyBasePtr boolOption = this->getBoolOption(mCopiedOptions);
104 
105  std::cout << "Running dummy algorithm..." << std::endl;
106  std::cout << QString(" String option [%1]: %2").arg(stringOption->getDisplayName()).arg(stringOption->getValue()) << std::endl;
107  std::cout << QString(" Double option [%1]: %2").arg(doubleOption->getDisplayName()).arg(doubleOption->getValue()) << std::endl;
108  std::cout << QString(" Bool option [%1]: %2").arg(boolOption->getDisplayName()).arg(boolOption->getValue()) << std::endl;
109 
110  for (unsigned i=0; i< mCopiedInput.size(); ++i)
111  std::cout << QString(" Input %1: %2").arg(mCopiedInput[i] ? mCopiedInput[i]->getName() : "NULL") << std::endl;
112 
113  std::cout << "Returning input as output." << std::endl;
114 
115  return true;
116 }
117 
119 {
120  //TODO: add stuff such as saving to dataManager here.
121  std::cout << "DummyFilter::postProcess " << mCopiedInput.size() << std::endl;
122 
123  if (mInputTypes.front()->getData())
124  mOutputTypes.front()->setValue(mInputTypes.front()->getData()->getUid());
125 
126  // return mInput;
127  return true;
128 }
129 
130 
131 
132 } // namespace cx
cx::DummyFilter::getName
virtual QString getName() const
Definition: cxDummyFilter.cpp:24
cx::BoolProperty::initialize
static BoolPropertyPtr initialize(const QString &uid, QString name, QString help, bool value, QDomNode root=QDomNode())
Definition: cxBoolProperty.cpp:30
cx::StringPropertySelectData::New
static StringPropertySelectDataPtr New(PatientModelServicePtr patientModelService, QString typeRegexp=".*")
Definition: cxSelectDataStringProperty.h:101
cx::StringPropertySelectMesh::New
static StringPropertySelectMeshPtr New(PatientModelServicePtr patientModelService)
Definition: cxSelectDataStringProperty.h:131
cx
Namespace for all CustusX production code.
Definition: cx_dev_group_definitions.h:13
cx::DummyFilter::createOutputTypes
virtual void createOutputTypes()
Definition: cxDummyFilter.cpp:89
cx::FilterImpl::mCopiedInput
std::vector< DataPtr > mCopiedInput
Definition: cxFilterImpl.h:79
cx::DummyFilter::getType
virtual QString getType() const
Definition: cxDummyFilter.cpp:29
cxDoubleProperty.h
cx::FilterImpl::mOutputTypes
std::vector< SelectDataStringPropertyBasePtr > mOutputTypes
Definition: cxFilterImpl.h:74
cx::DummyFilter::createOptions
virtual void createOptions()
Definition: cxDummyFilter.cpp:62
cx::DummyFilter::getHelp
virtual QString getHelp() const
Definition: cxDummyFilter.cpp:34
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
cxData.h
cx::DoubleProperty::initialize
static DoublePropertyPtr initialize(const QString &uid, QString name, QString help, double value, DoubleRange range, int decimals, QDomNode root=QDomNode())
Definition: cxDoubleProperty.cpp:30
cxDummyFilter.h
cx::StringPropertySelectImage::New
static StringPropertySelectImagePtr New(PatientModelServicePtr patientModelService)
Definition: cxSelectDataStringProperty.h:76
cxTypeConversions.h
cx::BoolPropertyBasePtr
boost::shared_ptr< class BoolPropertyBase > BoolPropertyBasePtr
Definition: cxImageFileStreamerService.h:22
cx::DummyFilter::execute
virtual bool execute()
Definition: cxDummyFilter.cpp:99
cx::StringProperty::initialize
static StringPropertyPtr initialize(const QString &uid, QString name, QString help, QString value, QStringList range, QDomNode root=QDomNode())
Definition: cxStringProperty.cpp:29
cx::DummyFilter::createInputTypes
virtual void createInputTypes()
Definition: cxDummyFilter.cpp:69
cx::DoublePropertyBasePtr
boost::shared_ptr< class DoublePropertyBase > DoublePropertyBasePtr
Definition: cxIGTLinkStreamerService.h:21
cx::StringPropertyBasePtr
boost::shared_ptr< class StringPropertyBase > StringPropertyBasePtr
Definition: cxIGTLinkStreamerService.h:20
cxStringProperty.h
cxSelectDataStringProperty.h
cxBoolProperty.h
cx::DummyFilter::postProcess
virtual bool postProcess()
Definition: cxDummyFilter.cpp:118
cx::FilterImpl::mOptionsAdapters
std::vector< PropertyPtr > mOptionsAdapters
Definition: cxFilterImpl.h:75
cx::SelectDataStringPropertyBasePtr
boost::shared_ptr< class SelectDataStringPropertyBase > SelectDataStringPropertyBasePtr
Definition: cxMeshGlyphsWidget.h:26
cx::FilterImpl::mServices
VisServicesPtr mServices
Definition: cxFilterImpl.h:82
cxVisServices.h