v2.0.0
Loading...
Searching...
No Matches
mne_proj_op.h
Go to the documentation of this file.
1//=============================================================================================================
36
37#ifndef MNEPROJOP_H
38#define MNEPROJOP_H
39
40//=============================================================================================================
41// INCLUDES
42//=============================================================================================================
43
44#include "mne_global.h"
45#include "mne_named_matrix.h"
46#include "mne_proj_item.h"
47
48#include <fiff/fiff_types.h>
49#include <fiff/fiff_stream.h>
50#include <fiff/fiff_dir_node.h>
51
52//=============================================================================================================
53// EIGEN INCLUDES
54//=============================================================================================================
55
56#include <Eigen/Core>
57
58//=============================================================================================================
59// QT INCLUDES
60//=============================================================================================================
61
62#include <QSharedPointer>
63#include <QTextStream>
64
65//=============================================================================================================
66// DEFINE NAMESPACE MNELIB
67//=============================================================================================================
68
69namespace MNELIB
70{
71
72//=============================================================================================================
83{
84public:
85 typedef QSharedPointer<MNEProjOp> SPtr;
86 typedef QSharedPointer<const MNEProjOp> ConstSPtr;
87
89 using RowMajorMatrixXf = Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>;
90
91 //=========================================================================================================
97 MNEProjOp();
98
99 //=========================================================================================================
103 ~MNEProjOp();
104
105 //=========================================================================================================
112 void free_proj();
113
124
135 void add_item_active(const MNENamedMatrix* vecs, int kind, const QString& desc, int is_active);
136
146 void add_item(const MNENamedMatrix* vecs, int kind, const QString& desc);
147
155 MNEProjOp* dup() const;
156
169 static MNEProjOp* create_average_eeg_ref(const QList<FIFFLIB::FiffChInfo>& chs, int nch);
170
181 int affect(const QStringList& list, int nlist);
182
193 int affect_chs(const QList<FIFFLIB::FiffChInfo> &chs, int nch);
194
208 int project_vector(float *vec, int nvec, int do_complement);
209
220 const FIFFLIB::FiffDirNode::SPtr& start);
221
231 static MNEProjOp* read(const QString& name);
232
244 void report_data(QTextStream &out,const char *tag, int list_data, char **exclude, int nexclude);
245
253 void report(QTextStream &out,const char *tag);
254
255public:
256 QList<MNELIB::MNEProjItem> items;
257 int nitems;
258 QStringList names;
259 int nch;
260 int nvec;
262};
263
264} // NAMESPACE MNELIB
265
266#endif // MNEPROJOP_H
FiffStream class declaration.
FiffDirNode class declaration, which provides fiff dir tree processing methods.
Old fiff_type declarations - replace them.
mne library export/import macros.
#define MNESHARED_EXPORT
Definition mne_global.h:52
MNEProjItem class declaration.
MNENamedMatrix class declaration.
Core MNE data structures (source spaces, source estimates, hemispheres).
QSharedPointer< FiffDirNode > SPtr
QSharedPointer< FiffStream > SPtr
A dense matrix with named rows and columns.
QStringList names
void free_proj()
Release the compiled projector data.
static MNEProjOp * read_from_node(FIFFLIB::FiffStream::SPtr &stream, const FIFFLIB::FiffDirNode::SPtr &start)
Read all linear projection items from a FIFF tree node.
RowMajorMatrixXf proj_data
int project_vector(float *vec, int nvec, int do_complement)
static MNEProjOp * read(const QString &name)
static MNEProjOp * create_average_eeg_ref(const QList< FIFFLIB::FiffChInfo > &chs, int nch)
Create an average EEG reference projector.
void report_data(QTextStream &out, const char *tag, int list_data, char **exclude, int nexclude)
Eigen::Matrix< float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > RowMajorMatrixXf
Definition mne_proj_op.h:89
int affect(const QStringList &list, int nlist)
void report(QTextStream &out, const char *tag)
MNEProjOp()
Default constructor.
QSharedPointer< const MNEProjOp > ConstSPtr
Definition mne_proj_op.h:86
MNEProjOp * combine(MNEProjOp *from)
Append all projection items from another operator.
MNEProjOp * dup() const
Create a deep copy of this projection operator.
QSharedPointer< MNEProjOp > SPtr
Definition mne_proj_op.h:85
void add_item(const MNENamedMatrix *vecs, int kind, const QString &desc)
Add a projection item that is active by default.
int affect_chs(const QList< FIFFLIB::FiffChInfo > &chs, int nch)
QList< MNELIB::MNEProjItem > items
void add_item_active(const MNENamedMatrix *vecs, int kind, const QString &desc, int is_active)
Add a projection item with an explicit active/inactive state.