OpenWalnut  1.5.0dev
WMSampleOnFibers.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 WMSAMPLEONFIBERS_H
26 #define WMSAMPLEONFIBERS_H
27 
28 #include <memory>
29 #include <string>
30 
31 #include "core/dataHandler/WDataSetFibers.h"
32 #include "core/dataHandler/WDataSetPoints.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 a fiber dataset and samples it at a given parameter value.
39  *
40  * \ingroup modules
41  */
43 {
44 public:
45  /**
46  * Default constructor.
47  */
49 
50  /**
51  * Destructor.
52  */
53  virtual ~WMSampleOnFibers();
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  * Gives back a description of this module.
63  * \return description to module.
64  */
65  virtual const std::string getDescription() const;
66 
67  /**
68  * Due to the prototype design pattern used to build modules, this method returns a new instance of this method. NOTE: it
69  * should never be initialized or modified in some other way. A simple new instance is required.
70  *
71  * \return the prototype used to create every module in OpenWalnut.
72  */
73  virtual std::shared_ptr< WModule > factory() const;
74 
75  /**
76  * Get the icon for this module in XPM format.
77  * \return The icon.
78  */
79  virtual const char** getXPMIcon() const;
80 
81 protected:
82  /**
83  * Entry point after loading the module. Runs in separate thread.
84  */
85  virtual void moduleMain();
86 
87  /**
88  * Initialize the connectors this module is using.
89  */
90  virtual void connectors();
91 
92  /**
93  * Initialize the properties for this module.
94  */
95  virtual void properties();
96 
97 private:
98  /**
99  * The fiber dataset which is going to be used.
100  */
101  std::shared_ptr< WModuleInputData< WDataSetFibers > > m_fiberInput;
102 
103  /**
104  * The output connector used to provide the calculated point data to other modules.
105  */
106  std::shared_ptr< WModuleOutputData< WDataSetPoints > > m_pointsOutput;
107 
108  /**
109  * A condition used to notify about changes in several properties.
110  */
111  std::shared_ptr< WCondition > m_propCondition;
112 
113  /**
114  * A string which informs the user whether filtering is possible.
115  */
116  WPropString m_paramHint;
117 
118  /**
119  * The color to use for the resulting points.
120  */
121  WPropColor m_color;
122 
123  /**
124  * Filter fib point according to its parameter value and this value.
125  */
126  WPropDouble m_parameter;
127 
128  /**
129  * fiber parameter max
130  */
132 
133  /**
134  * fiber parameter min
135  */
137 };
138 
139 #endif // WMSAMPLEONFIBERS_H
140 
This modules takes a fiber dataset and samples it at a given parameter value.
std::shared_ptr< WModuleInputData< WDataSetFibers > > m_fiberInput
The fiber dataset which is going to be used.
WPropDouble m_parameter
Filter fib point according to its parameter value and this value.
WPropString m_paramHint
A string which informs the user whether filtering is possible.
WMSampleOnFibers()
Default constructor.
virtual const std::string getName() const
Gives back the name of this module.
std::shared_ptr< WModuleOutputData< WDataSetPoints > > m_pointsOutput
The output connector used to provide the calculated point data to other modules.
WPropColor m_color
The color to use for the resulting points.
virtual void connectors()
Initialize the connectors this module is using.
virtual ~WMSampleOnFibers()
Destructor.
double m_parameterMax
fiber parameter max
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 char ** getXPMIcon() const
Get the icon for this module in XPM format.
virtual void properties()
Initialize the properties for this module.
virtual void moduleMain()
Entry point after loading the module.
virtual const std::string getDescription() const
Gives back a description of this module.
double m_parameterMin
fiber parameter min
std::shared_ptr< WCondition > m_propCondition
A condition used to notify about changes in several properties.
Class representing a single module of OpenWalnut.
Definition: WModule.h:72