v2.0.0
Loading...
Searching...
No Matches
fiff_proj.h
Go to the documentation of this file.
1//=============================================================================================================
36
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#include <QMap>
56
57//=============================================================================================================
58// EIGEN INCLUDES
59//=============================================================================================================
60
61#include <Eigen/Core>
62#include <memory>
63
64//=============================================================================================================
65// DEFINE NAMESPACE FIFFLIB
66//=============================================================================================================
67
68namespace FIFFLIB
69{
70
71//=============================================================================================================
72// FORWARD DECLARATIONS
73//=============================================================================================================
74
75class FiffRawData;
76
77//=============================================================================================================
84
85public:
86 using SPtr = QSharedPointer<FiffProj>;
87 using ConstSPtr = QSharedPointer<const FiffProj>;
88 using UPtr = std::unique_ptr<FiffProj>;
89 using ConstUPtr = std::unique_ptr<const FiffProj>;
90
91 //=========================================================================================================
95 FiffProj();
96
97 //=========================================================================================================
103 FiffProj(const FiffProj& p_FiffProj);
104
105 //=========================================================================================================
109 explicit FiffProj(fiff_int_t p_kind,
110 bool p_active,
111 QString p_desc,
112 FiffNamedMatrix& p_data);
113
114 //=========================================================================================================
118 ~FiffProj();
119
120 //=========================================================================================================
126 static void activate_projs(QList<FiffProj> &p_qListFiffProj);
127
128 //=========================================================================================================
144 static fiff_int_t make_projector(const QList<FiffProj>& projs,
145 const QStringList& ch_names,
146 Eigen::MatrixXd& proj,
147 const QStringList& bads = defaultQStringList,
148 Eigen::MatrixXd& U = defaultMatrixXd);
149
150 //=========================================================================================================
169 static QList<FiffProj> compute_from_raw(const FiffRawData &raw,
170 const Eigen::MatrixXi &events,
171 int eventCode,
172 float tmin,
173 float tmax,
174 int nGrad,
175 int nMag,
176 int nEeg,
177 const QMap<QString,double> &mapReject = QMap<QString,double>());
178
179 //=========================================================================================================
188 friend std::ostream& operator<<(std::ostream& out, const FIFFLIB::FiffProj &p_FiffProj);
189
190public:
192 bool active;
193 QString desc;
194
196};
197
198//=============================================================================================================
199// INLINE DEFINITIONS
200//=============================================================================================================
201
202inline std::ostream& operator<<(std::ostream& out, const FIFFLIB::FiffProj &p_FiffProj)
203{
204 out << "#### Fiff Projector ####\n";
205 out << "\tKind: " << p_FiffProj.kind << std::endl;
206 out << "\tactive: " << p_FiffProj.active << std::endl;
207 out << "\tdesc: " << p_FiffProj.desc.toUtf8().constData() << std::endl;
208 out << "\tdata:\n\t" << *p_FiffProj.data.data() << std::endl;
209 return out;
210}
211} // NAMESPACE
212
213#endif // FIFF_PROJ_H
Fiff library export/import macros.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:52
FiffNamedMatrix class declaration.
Old fiff_type declarations - replace them.
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
std::ostream & operator<<(std::ostream &out, const FIFFLIB::FiffCov &p_FiffCov)
Definition fiff_cov.h:274
qint32 fiff_int_t
Definition fiff_types.h:89
QSharedDataPointer< FiffNamedMatrix > SDPtr
SSP projector data.
Definition fiff_proj.h:83
FiffNamedMatrix::SDPtr data
Definition fiff_proj.h:195
fiff_int_t kind
Definition fiff_proj.h:191
static QList< FiffProj > compute_from_raw(const FiffRawData &raw, const Eigen::MatrixXi &events, int eventCode, float tmin, float tmax, int nGrad, int nMag, int nEeg, const QMap< QString, double > &mapReject=QMap< QString, double >())
std::unique_ptr< FiffProj > UPtr
Definition fiff_proj.h:88
static fiff_int_t make_projector(const QList< FiffProj > &projs, const QStringList &ch_names, Eigen::MatrixXd &proj, const QStringList &bads=defaultQStringList, Eigen::MatrixXd &U=defaultMatrixXd)
static void activate_projs(QList< FiffProj > &p_qListFiffProj)
std::unique_ptr< const FiffProj > ConstUPtr
Definition fiff_proj.h:89
friend std::ostream & operator<<(std::ostream &out, const FIFFLIB::FiffProj &p_FiffProj)
Definition fiff_proj.h:202
QSharedPointer< FiffProj > SPtr
Definition fiff_proj.h:86
QSharedPointer< const FiffProj > ConstSPtr
Definition fiff_proj.h:87
FIFF raw measurement data.