OpenWalnut  1.5.0dev
WMMergeComponentsToVector.h
1 //---------------------------------------------------------------------------
2 //
3 // Project: OpenWalnut ( http://www.openwalnut.org )
4 //
5 // Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
6 // For more information see http://www.openwalnut.org/copying
7 //
8 // This file is part of OpenWalnut.
9 //
10 // OpenWalnut is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU Lesser General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // OpenWalnut is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public License
21 // along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
22 //
23 //---------------------------------------------------------------------------
24 
25 #ifndef WMMERGECOMPONENTSTOVECTOR_H
26 #define WMMERGECOMPONENTSTOVECTOR_H
27 
28 #include <memory>
29 #include <string>
30 
31 #include "core/dataHandler/WDataSetScalar.h"
32 #include "core/dataHandler/WDataSetVector.h"
33 #include "core/kernel/WModule.h"
34 #include "core/kernel/WModuleInputData.h"
35 #include "core/kernel/WModuleOutputData.h"
36 
37 /**
38  * This modules takes several scalar inputs and merges them to a vector dataset
39  *
40  * \ingroup modules
41  */
43 {
44 public:
45  /**
46  * Default constructor.
47  */
49 
50  /**
51  * Destructor.
52  */
54 
55  /**
56  * Gives back the name of this module.
57  * \return the module's name.
58  */
59  virtual const std::string getName() const;
60 
61  /**
62  * Provide description.
63  *
64  * \return the description
65  */
66  virtual const std::string getDescription() const;
67 
68  /**
69  * Due to the prototype design pattern used to build modules, this method returns a new instance of this method. NOTE: it
70  * should never be initialized or modified in some other way. A simple new instance is required.
71  *
72  * \return the prototype used to create every module in OpenWalnut.
73  */
74  virtual std::shared_ptr< WModule > factory() const;
75 
76 protected:
77  /**
78  * Entry point after loading the module. Runs in separate thread.
79  */
80  virtual void moduleMain();
81 
82  /**
83  * Initialize the connectors this module is using.
84  */
85  virtual void connectors();
86 
87  /**
88  * Initialize the properties for this module.
89  */
90  virtual void properties();
91 
92 private:
93  /**
94  * An input connector used to get datasets from other modules. The connection management between connectors must not be handled by the module.
95  */
96  std::shared_ptr< WModuleInputData< WDataSetScalar > > m_scalarInX;
97 
98  /**
99  * An input connector used to get datasets from other modules. The connection management between connectors must not be handled by the module.
100  */
101  std::shared_ptr< WModuleInputData< WDataSetScalar > > m_scalarInY;
102 
103  /**
104  * An input connector used to get datasets from other modules. The connection management between connectors must not be handled by the module.
105  */
106  std::shared_ptr< WModuleInputData< WDataSetScalar > > m_scalarInZ;
107 
108  /**
109  * The output connector used to provide the calculated data to other modules.
110  */
111  std::shared_ptr< WModuleOutputData< WDataSetVector > > m_vectorOut;
112 
113  /**
114  * A condition used to notify about changes in several properties.
115  */
116  std::shared_ptr< WCondition > m_propCondition;
117 };
118 
119 #endif // WMMERGECOMPONENTSTOVECTOR_H
120 
This modules takes several scalar inputs and merges them to a vector dataset.
virtual std::shared_ptr< WModule > factory() const
Due to the prototype design pattern used to build modules, this method returns a new instance of this...
virtual const std::string getName() const
Gives back the name of this module.
WMMergeComponentsToVector()
Default constructor.
virtual void properties()
Initialize the properties for this module.
virtual void connectors()
Initialize the connectors this module is using.
std::shared_ptr< WModuleInputData< WDataSetScalar > > m_scalarInY
An input connector used to get datasets from other modules.
std::shared_ptr< WModuleInputData< WDataSetScalar > > m_scalarInX
An input connector used to get datasets from other modules.
std::shared_ptr< WModuleOutputData< WDataSetVector > > m_vectorOut
The output connector used to provide the calculated data to other modules.
std::shared_ptr< WCondition > m_propCondition
A condition used to notify about changes in several properties.
virtual ~WMMergeComponentsToVector()
Destructor.
virtual const std::string getDescription() const
Provide description.
virtual void moduleMain()
Entry point after loading the module.
std::shared_ptr< WModuleInputData< WDataSetScalar > > m_scalarInZ
An input connector used to get datasets from other modules.
Class representing a single module of OpenWalnut.
Definition: WModule.h:72