33 #ifndef CXTUBESEGMENTATIONFILTERSERVICE_H_
34 #define CXTUBESEGMENTATIONFILTERSERVICE_H_
36 #include "org_custusx_filter_tubesegmentation_Export.h"
43 #include <boost/unordered_map.hpp>
44 #include <boost/shared_ptr.hpp>
46 #include "parameters.hpp"
53 class ctkPluginContext;
82 virtual QString getType()
const;
83 virtual QString getName()
const;
84 virtual QString getHelp()
const;
86 virtual bool hasPresets();
88 virtual QDomElement generatePresetFromCurrentlySetOptions(QString name);
89 virtual void requestSetPresetSlot(QString name);
91 virtual bool execute();
92 virtual bool postProcess();
95 virtual void createOptions();
96 virtual void createInputTypes();
97 virtual void createOutputTypes();
100 void patientChangedSlot();
101 void inputChangedSlot();
102 void loadNewParametersSlot();
103 void resetOptionsAdvancedSlot();
104 void resetOptionsSlot();
105 void setOptionsSlot(paramList& list);
111 MeshPtr loadVtkFile(QString pathToFile, QString newDatasUid);
113 void createDefaultOptions(QDomElement root);
114 paramList getParametersFromOptions();
115 void setParamtersToOptions(paramList& parameters);
121 void setOptionAdvanced(QString valueName,
bool advanced);
122 void setOptionValue(QString valueName, QString value);
124 std::vector<std::string> getNotDefault(paramList list);
125 std::vector<std::string> getDifference(paramList list1, paramList list2);
126 std::vector<PropertyPtr> getNotDefaultOptions();
127 paramList getDefaultParameters();
128 void printParameters(paramList params);
130 StringPropertyPtr makeStringOption(QDomElement root, std::string name, StringParameter parameter);
131 BoolPropertyPtr makeBoolOption(QDomElement root, std::string name, BoolParameter parameter);
132 DoublePropertyPtr makeDoubleOption(QDomElement root, std::string name, NumericParameter parameter);
136 QString mParameterFile;
138 std::vector<StringPropertyPtr> mStringOptions;
139 std::vector<BoolPropertyPtr> mBoolOptions;
140 std::vector<DoublePropertyPtr> mDoubleOptions;
143 paramList mParameters;
vtkSmartPointer< class vtkImageImport > vtkImageImportPtr
boost::shared_ptr< class Image > ImagePtr
boost::shared_ptr< class StringProperty > StringPropertyPtr
boost::shared_ptr< class TSFPresets > TSFPresetsPtr
boost::shared_ptr< class Property > PropertyPtr
boost::shared_ptr< class Presets > PresetsPtr
boost::shared_ptr< class DoubleProperty > DoublePropertyPtr
boost::shared_ptr< class BoolProperty > BoolPropertyPtr
boost::shared_ptr< class Mesh > MeshPtr
vtkSmartPointer< class vtkImageData > vtkImageDataPtr
boost::shared_ptr< class TubeSegmentationFilter > TubeSegmentationFilterPtr