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//=============================================================================================================
81{
82public:
83 using SPtr = QSharedPointer<FiffProj>;
84 using ConstSPtr = QSharedPointer<const FiffProj>;
85 using UPtr = std::unique_ptr<FiffProj>;
86 using ConstUPtr = std::unique_ptr<const FiffProj>;
87
88 //=========================================================================================================
92 FiffProj();
93
94 //=========================================================================================================
100 FiffProj(const FiffProj& p_FiffProj);
101
102 //=========================================================================================================
113 FiffProj& operator=(const FiffProj& other) = default;
114
115 //=========================================================================================================
124 explicit FiffProj(fiff_int_t p_kind,
125 bool p_active,
126 QString p_desc,
127 FiffNamedMatrix& p_data);
128
129 //=========================================================================================================
133 ~FiffProj();
134
135 //=========================================================================================================
141 static void activate_projs(QList<FiffProj>& p_qListFiffProj);
142
143 //=========================================================================================================
159 static fiff_int_t make_projector(const QList<FiffProj>& projs,
160 const QStringList& ch_names,
161 Eigen::MatrixXd& proj,
162 const QStringList& bads = defaultQStringList,
163 Eigen::MatrixXd& U = defaultMatrixXd);
164
165 //=========================================================================================================
184 static QList<FiffProj> compute_from_raw(const FiffRawData& raw,
185 const Eigen::MatrixXi& events,
186 int eventCode,
187 float tmin,
188 float tmax,
189 int nGrad,
190 int nMag,
191 int nEeg,
192 const QMap<QString, double>& mapReject = QMap<QString, double>());
193
194 //=========================================================================================================
203 friend std::ostream& operator<<(std::ostream& out, const FIFFLIB::FiffProj& p_FiffProj);
204
205public:
207 bool active;
208 QString desc;
209
211};
212
213//=============================================================================================================
214// INLINE DEFINITIONS
215//=============================================================================================================
216
217inline std::ostream& operator<<(std::ostream& out, const FIFFLIB::FiffProj& p_FiffProj)
218{
219 out << "#### Fiff Projector ####\n";
220 out << "\tKind: " << p_FiffProj.kind << std::endl;
221 out << "\tactive: " << p_FiffProj.active << std::endl;
222 out << "\tdesc: " << p_FiffProj.desc.toUtf8().constData() << std::endl;
223 out << "\tdata:\n\t" << *p_FiffProj.data.data() << std::endl;
224 return out;
225}
226} // NAMESPACE
227
228#endif // FIFF_PROJ_H
Export/import macros and build-info accessors for the FIFFLIB shared library.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:44
Matrix paired with row and column name lists, the on-disk form of FIFFB_PROJ_ITEM / FIFFB_MNE_NAMED_M...
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:272
qint32 fiff_int_t
Definition fiff_types.h:86
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:81
FiffNamedMatrix::SDPtr data
Definition fiff_proj.h:210
fiff_int_t kind
Definition fiff_proj.h:206
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:85
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:89
std::unique_ptr< const FiffProj > ConstUPtr
Definition fiff_proj.h:86
FiffProj & operator=(const FiffProj &other)=default
friend std::ostream & operator<<(std::ostream &out, const FIFFLIB::FiffProj &p_FiffProj)
Definition fiff_proj.h:217
QSharedPointer< FiffProj > SPtr
Definition fiff_proj.h:83
QSharedPointer< const FiffProj > ConstSPtr
Definition fiff_proj.h:84
Continuous FIFF raw recording: FiffInfo plus a random-access directory of FIFF_DATA_BUFFER tags.