FAST  3.2.0
Framework for Heterogeneous Medical Image Computing and Visualization
Pipeline.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <vector>
5 #include <QToolBox>
6 #include <unordered_map>
7 #include <unordered_set>
8 #include <FAST/ProcessObject.hpp>
9 
10 namespace fast {
11 
12 class Renderer;
13 class View;
14 
15 class FAST_EXPORT Pipeline : public Object {
16  public:
17  Pipeline(std::string filename, std::map<std::string, std::string> variables = {{}});
18  std::vector<View*> getViews();
19  std::vector<std::shared_ptr<Renderer>> getRenderers();
20  std::unordered_map<std::string, std::shared_ptr<ProcessObject>> getProcessObjects();
21  std::string getName() const;
22  std::string getDescription() const;
23  std::string getFilename() const;
27  void parse(std::unordered_map<std::string, std::shared_ptr<ProcessObject>> processObjects = {});
28 
29  private:
30  std::string mName;
31  std::string mDescription;
32  std::string mFilename;
33  std::unordered_map<std::string, std::shared_ptr<ProcessObject>> mProcessObjects;
34  std::unordered_map<std::string, View*> m_views;
35  std::vector<std::string> mRenderers;
36  std::vector<std::string> m_lines;
37 
38  void parseProcessObject(
39  std::string objectName,
40  std::string objectID,
41  int& lineNr,
42  bool isRenderer = false
43  );
44  void parseView(
45  std::string objectID,
46  int& lineNr
47  );
48 };
49 
54 FAST_EXPORT std::vector<Pipeline> getAvailablePipelines(std::string path = "");
55 
56 class FAST_EXPORT PipelineWidget : public QToolBox {
57  public:
58  PipelineWidget(Pipeline pipeline, QWidget* parent = nullptr);
59 
60 };
61 
62 class FAST_EXPORT ProcessObjectWidget : public QWidget {
63  public:
64  ProcessObjectWidget(std::shared_ptr<ProcessObject> po, QWidget* parent = nullptr);
65 };
66 
67 } // end namespace fast
68 
fast::ProcessObjectWidget
Definition: Pipeline.hpp:62
fast
Definition: AffineTransformation.hpp:7
fast::Object
Definition: Object.hpp:34
fast::Pipeline
Definition: Pipeline.hpp:15
ProcessObject.hpp
fast::PipelineWidget
Definition: Pipeline.hpp:56
fast::getAvailablePipelines
FAST_EXPORT std::vector< Pipeline > getAvailablePipelines(std::string path="")