MNE-CPP  beta 1.0
fiff_proj.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef FIFF_PROJ_H
37 #define FIFF_PROJ_H
38 
39 //*************************************************************************************************************
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "fiff_global.h"
45 #include "fiff_types.h"
46 #include "fiff_named_matrix.h"
47 
48 
49 //*************************************************************************************************************
50 //=============================================================================================================
51 // Qt INCLUDES
52 //=============================================================================================================
53 
54 #include <QSharedPointer>
55 #include <QString>
56 #include <QStringList>
57 
58 
59 //*************************************************************************************************************
60 //=============================================================================================================
61 // Eigen INCLUDES
62 //=============================================================================================================
63 
64 #include <Eigen/Core>
65 
66 
67 //*************************************************************************************************************
68 //=============================================================================================================
69 // DEFINE NAMESPACE FIFFLIB
70 //=============================================================================================================
71 
72 namespace FIFFLIB
73 {
74 
75 //*************************************************************************************************************
76 //=============================================================================================================
77 // USED NAMESPACES
78 //=============================================================================================================
79 
80 using namespace Eigen;
81 
82 
83 //=============================================================================================================
90 
91 public:
92  typedef QSharedPointer<FiffProj> SPtr;
93  typedef QSharedPointer<const FiffProj> ConstSPtr;
95  //=========================================================================================================
99  FiffProj();
100 
101  //=========================================================================================================
107  FiffProj(const FiffProj& p_FiffProj);
108 
109  //=========================================================================================================
113  explicit FiffProj( fiff_int_t p_kind,
114  bool p_active,
115  QString p_desc,
116  FiffNamedMatrix& p_data);
117 
118  //=========================================================================================================
122  ~FiffProj();
123 
124  //=========================================================================================================
130  static void activate_projs(QList<FiffProj> &p_qListFiffProj);
131 
132  //=========================================================================================================
150  static fiff_int_t make_projector(const QList<FiffProj>& projs, const QStringList& ch_names, MatrixXd& proj, const QStringList& bads = defaultQStringList, MatrixXd& U = defaultMatrixXd, bool include_active = true);
151 
152  //=========================================================================================================
161  friend std::ostream& operator<<(std::ostream& out, const FIFFLIB::FiffProj &p_FiffProj);
162 
163 public:
164  fiff_int_t kind;
165  bool active;
166  QString desc;
169 };
170 
171 
172 //*************************************************************************************************************
173 //=============================================================================================================
174 // INLINE DEFINITIONS
175 //=============================================================================================================
176 
177 inline std::ostream& operator<<(std::ostream& out, const FIFFLIB::FiffProj &p_FiffProj)
178 {
179  out << "#### Fiff Projector ####\n";
180  out << "\tKind: " << p_FiffProj.kind << std::endl;
181  out << "\tactive: " << p_FiffProj.active << std::endl;
182  out << "\tdesc: " << p_FiffProj.desc.toLatin1().constData() << std::endl;
183  out << "\tdata:\n\t" << *p_FiffProj.data.data() << std::endl;
184  return out;
185 }
186 
187 } // NAMESPACE
188 
189 #endif // FIFF_PROJ_H
fiff_int_t kind
Definition: fiff_proj.h:164
Old fiff_type declarations - replace them.
QSharedDataPointer< FiffNamedMatrix > SDPtr
FiffNamedMatrix class declaration.
FiffNamedMatrix::SDPtr data
Definition: fiff_proj.h:168
QSharedPointer< const FiffProj > ConstSPtr
Definition: fiff_proj.h:93
SSP projector data.
Definition: fiff_proj.h:89
#define FIFFSHARED_EXPORT
Definition: fiff_global.h:58
Fiff library export/import macros.
Definition: fiff.h:98
QSharedPointer< FiffProj > SPtr
Definition: fiff_proj.h:92