MNE-CPP  0.1.9
A Framework for Electrophysiology
fiff_proj.h
Go to the documentation of this file.
1 //=============================================================================================================
37 #ifndef FIFF_PROJ_H
38 #define FIFF_PROJ_H
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 // QT INCLUDES
50 //=============================================================================================================
51 
52 #include <QSharedPointer>
53 #include <QString>
54 #include <QStringList>
55 
56 //=============================================================================================================
57 // EIGEN INCLUDES
58 //=============================================================================================================
59 
60 #include <Eigen/Core>
61 
62 //=============================================================================================================
63 // DEFINE NAMESPACE FIFFLIB
64 //=============================================================================================================
65 
66 namespace FIFFLIB
67 {
68 
69 //=============================================================================================================
76 
77 public:
78  typedef QSharedPointer<FiffProj> SPtr;
79  typedef QSharedPointer<const FiffProj> ConstSPtr;
81  //=========================================================================================================
85  FiffProj();
86 
87  //=========================================================================================================
93  FiffProj(const FiffProj& p_FiffProj);
94 
95  //=========================================================================================================
99  explicit FiffProj(fiff_int_t p_kind,
100  bool p_active,
101  QString p_desc,
102  FiffNamedMatrix& p_data);
103 
104  //=========================================================================================================
108  ~FiffProj();
109 
110  //=========================================================================================================
116  static void activate_projs(QList<FiffProj> &p_qListFiffProj);
117 
118  //=========================================================================================================
136  static fiff_int_t make_projector(const QList<FiffProj>& projs,
137  const QStringList& ch_names,
138  Eigen::MatrixXd& proj,
139  const QStringList& bads = defaultQStringList,
140  Eigen::MatrixXd& U = defaultMatrixXd);
141 
142  //=========================================================================================================
151  friend std::ostream& operator<<(std::ostream& out, const FIFFLIB::FiffProj &p_FiffProj);
152 
153 public:
154  fiff_int_t kind;
155  bool active;
156  QString desc;
159 };
160 
161 //=============================================================================================================
162 // INLINE DEFINITIONS
163 //=============================================================================================================
164 
165 inline std::ostream& operator<<(std::ostream& out, const FIFFLIB::FiffProj &p_FiffProj)
166 {
167  out << "#### Fiff Projector ####\n";
168  out << "\tKind: " << p_FiffProj.kind << std::endl;
169  out << "\tactive: " << p_FiffProj.active << std::endl;
170  out << "\tdesc: " << p_FiffProj.desc.toUtf8().constData() << std::endl;
171  out << "\tdata:\n\t" << *p_FiffProj.data.data() << std::endl;
172  return out;
173 }
174 } // NAMESPACE
175 
176 #endif // FIFF_PROJ_H
Old fiff_type declarations - replace them.
QSharedDataPointer< FiffNamedMatrix > SDPtr
std::ostream & operator<<(std::ostream &out, const FIFFLIB::FiffCov &p_FiffCov)
Definition: fiff_cov.h:237
QSharedPointer< FiffProj > SPtr
Definition: fiff_proj.h:78
fiff_int_t kind
Definition: fiff_proj.h:154
QSharedPointer< const FiffProj > ConstSPtr
Definition: fiff_proj.h:79
FiffNamedMatrix::SDPtr data
Definition: fiff_proj.h:158
SSP projector data.
Definition: fiff_proj.h:75
FiffNamedMatrix class declaration.
#define FIFFSHARED_EXPORT
Definition: fiff_global.h:56
Fiff library export/import macros.