MNE-CPP  0.1.9
A Framework for Electrophysiology
hpidataupdater.h
Go to the documentation of this file.
1 //=============================================================================================================
35 #ifndef HPIDATAUPDATER_H
36 #define HPIDATAUPDATER_H
37 
38 //=============================================================================================================
39 // INCLUDES
40 //=============================================================================================================
41 
42 #include "../inverse_global.h"
43 #include "sensorset.h"
45 #include <fiff/fiff_dig_point.h>
46 
47 //=============================================================================================================
48 // QT INCLUDES
49 //=============================================================================================================
50 
51 #include <QSharedPointer>
52 
53 //=============================================================================================================
54 // EIGEN INCLUDES
55 //=============================================================================================================
56 
57 //=============================================================================================================
58 // FORWARD DECLARATIONS
59 //=============================================================================================================
60 
61 namespace FIFFLIB{
62  class FiffInfo;
63  class FiffChInfo;
64  class FiffDigPointSet;
65 }
66 
67 //=============================================================================================================
68 // DEFINE NAMESPACE INVERSELIB
69 //=============================================================================================================
70 
71 namespace INVERSELIB
72 {
73 
74 //=============================================================================================================
75 // Declare all structures to be used
76 //=============================================================================================================
77 
78 //=============================================================================================================
79 // INVERSELIB FORWARD DECLARATIONS
80 //=============================================================================================================
81 
82 //=============================================================================================================
89 {
90 
91 public:
92  typedef QSharedPointer<HpiDataUpdater> SPtr;
93  typedef QSharedPointer<const HpiDataUpdater> ConstSPtr;
95  //=========================================================================================================
99  HpiDataUpdater(const QSharedPointer<FIFFLIB::FiffInfo> pFiffInfo);
100 
101  //=========================================================================================================
108  void checkForUpdate(const QSharedPointer<FIFFLIB::FiffInfo> pFiffInfo);
109 
110  //=========================================================================================================
117  void prepareDataAndProjectors(const Eigen::MatrixXd& matData, const Eigen::MatrixXd& matProjectors);
118 
119  //=========================================================================================================
124  inline const QList<FIFFLIB::FiffChInfo>& getChannels();
125  inline const Eigen::MatrixXd& getProjectors();
126  inline const Eigen::MatrixXd& getHpiDigitizer();
127  inline const Eigen::MatrixXd& getData();
128  inline const Eigen::MatrixXd& getProjectedData();
129  inline const SensorSet& getSensors();
130 
131 private:
132  //=========================================================================================================
139  void updateChannels(QSharedPointer<FIFFLIB::FiffInfo> pFiffInfo);
140 
141  //=========================================================================================================
148  void updateBadChannels(QSharedPointer<FIFFLIB::FiffInfo> pFiffInfo);
149 
150  //=========================================================================================================
156  void updateHpiDigitizer(const QList<FIFFLIB::FiffDigPoint>& lDig);
157 
158  //=========================================================================================================
165  void updateSensors(const QList<FIFFLIB::FiffChInfo>& lChannels);
166 
167  //=========================================================================================================
176  bool checkIfChanged(const QList<QString>& lBads, const QList<FIFFLIB::FiffChInfo>& lChannels);
177 
178  //=========================================================================================================
185  void prepareData(const Eigen::MatrixXd& matData);
186 
187  //=========================================================================================================
194  void prepareProjectors(const Eigen::MatrixXd& matProjectors);
195 
196  QList<FIFFLIB::FiffChInfo> m_lChannels;
197  QVector<int> m_vecInnerind;
198  QList<QString> m_lBads;
199  Eigen::MatrixXd m_matHpiDigitizer;
200  Eigen::MatrixXd m_matProjectors;
201  Eigen::MatrixXd m_matInnerdata;
202  Eigen::MatrixXd m_matDataProjected;
203  SensorSetCreator m_sensorSetCreator;
204  SensorSet m_sensors;
206 };
207 
208 //=============================================================================================================
209 // INLINE DEFINITIONS
210 //=============================================================================================================
211 
212 inline const QList<FIFFLIB::FiffChInfo>& HpiDataUpdater::getChannels()
213 {
214  return m_lChannels;
215 }
216 
217 inline const Eigen::MatrixXd& HpiDataUpdater::getProjectors()
218 {
219  return m_matProjectors;
220 }
221 
222 inline const Eigen::MatrixXd& HpiDataUpdater::getData()
223 {
224  return m_matInnerdata;
225 }
226 
227 inline const Eigen::MatrixXd& HpiDataUpdater::getProjectedData()
228 {
229  return m_matDataProjected;
230 }
231 
232 inline const Eigen::MatrixXd& HpiDataUpdater::getHpiDigitizer()
233 {
234  return m_matHpiDigitizer;
235 }
236 
237 inline const SensorSet& HpiDataUpdater::getSensors()
238 {
239  return m_sensors;
240 }
241 
242 } // namespace INVERSELIB
243 
244 #endif // HPIDATAUPDATER_H
245 
QSharedPointer< const HpiDataUpdater > ConstSPtr
#define INVERSESHARED_EXPORT
Brief description of this class.
Definition: sensorset.h:247
QSharedPointer< HpiDataUpdater > SPtr
Brief description of this class.
FiffDigPointSet class declaration.
SensorSet class declaration.
FiffDigPoint class declaration.