v2.0.0
Loading...
Searching...
No Matches
fiff_proj.h
Go to the documentation of this file.
1//=============================================================================================================
27
28#ifndef FIFF_PROJ_H
29#define FIFF_PROJ_H
30
31//=============================================================================================================
32// INCLUDES
33//=============================================================================================================
34
35#include "fiff_global.h"
36#include "fiff_types.h"
37#include "fiff_named_matrix.h"
38
39//=============================================================================================================
40// QT INCLUDES
41//=============================================================================================================
42
43#include <QSharedPointer>
44#include <QString>
45#include <QStringList>
46#include <QMap>
47
48//=============================================================================================================
49// EIGEN INCLUDES
50//=============================================================================================================
51
52#include <Eigen/Core>
53#include <memory>
54
55//=============================================================================================================
56// DEFINE NAMESPACE FIFFLIB
57//=============================================================================================================
58
59namespace FIFFLIB
60{
61
62//=============================================================================================================
63// FORWARD DECLARATIONS
64//=============================================================================================================
65
66class FiffRawData;
67
68//=============================================================================================================
79
80public:
81 using SPtr = QSharedPointer<FiffProj>;
82 using ConstSPtr = QSharedPointer<const FiffProj>;
83 using UPtr = std::unique_ptr<FiffProj>;
84 using ConstUPtr = std::unique_ptr<const FiffProj>;
85
86 //=========================================================================================================
90 FiffProj();
91
92 //=========================================================================================================
98 FiffProj(const FiffProj& p_FiffProj);
99
100 //=========================================================================================================
104 explicit FiffProj(fiff_int_t p_kind,
105 bool p_active,
106 QString p_desc,
107 FiffNamedMatrix& p_data);
108
109 //=========================================================================================================
113 ~FiffProj();
114
115 //=========================================================================================================
121 static void activate_projs(QList<FiffProj> &p_qListFiffProj);
122
123 //=========================================================================================================
139 static fiff_int_t make_projector(const QList<FiffProj>& projs,
140 const QStringList& ch_names,
141 Eigen::MatrixXd& proj,
142 const QStringList& bads = defaultQStringList,
143 Eigen::MatrixXd& U = defaultMatrixXd);
144
145 //=========================================================================================================
164 static QList<FiffProj> compute_from_raw(const FiffRawData &raw,
165 const Eigen::MatrixXi &events,
166 int eventCode,
167 float tmin,
168 float tmax,
169 int nGrad,
170 int nMag,
171 int nEeg,
172 const QMap<QString,double> &mapReject = QMap<QString,double>());
173
174 //=========================================================================================================
183 friend std::ostream& operator<<(std::ostream& out, const FIFFLIB::FiffProj &p_FiffProj);
184
185public:
186 fiff_int_t kind;
187 bool active;
188 QString desc;
189
191};
192
193//=============================================================================================================
194// INLINE DEFINITIONS
195//=============================================================================================================
196
197inline std::ostream& operator<<(std::ostream& out, const FIFFLIB::FiffProj &p_FiffProj)
198{
199 out << "#### Fiff Projector ####\n";
200 out << "\tKind: " << p_FiffProj.kind << std::endl;
201 out << "\tactive: " << p_FiffProj.active << std::endl;
202 out << "\tdesc: " << p_FiffProj.desc.toUtf8().constData() << std::endl;
203 out << "\tdata:\n\t" << *p_FiffProj.data.data() << std::endl;
204 return out;
205}
206} // NAMESPACE
207
208#endif // FIFF_PROJ_H
Matrix paired with row and column name lists, the on-disk form of FIFFB_PROJ_ITEM / FIFFB_MNE_NAMED_M...
Export/import macros and build-info accessors for the FIFFLIB shared library.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:44
Primitive scalar typedefs and forward-compatible aliases backing the FIFF type system.
FIFF file I/O, in-memory data structures and high-level readers/writers.
std::ostream & operator<<(std::ostream &out, const FIFFLIB::FiffCov &p_FiffCov)
Definition fiff_cov.h:268
FIFF named matrix: dense / sparse Eigen matrix plus row-name and column-name string lists.
QSharedDataPointer< FiffNamedMatrix > SDPtr
Single SSP projection item: kind, active flag, desired flag and the named projection vector matrix.
Definition fiff_proj.h:78
FiffNamedMatrix::SDPtr data
Definition fiff_proj.h:190
fiff_int_t kind
Definition fiff_proj.h:186
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:83
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)
Definition fiff_proj.cpp:93
std::unique_ptr< const FiffProj > ConstUPtr
Definition fiff_proj.h:84
friend std::ostream & operator<<(std::ostream &out, const FIFFLIB::FiffProj &p_FiffProj)
Definition fiff_proj.h:197
QSharedPointer< FiffProj > SPtr
Definition fiff_proj.h:81
QSharedPointer< const FiffProj > ConstSPtr
Definition fiff_proj.h:82