MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
mne_proj_op.h
Go to the documentation of this file.
1//=============================================================================================================
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
47#include <fiff/fiff_types.h>
48#include <fiff/fiff_stream.h>
49#include <fiff/fiff_dir_node.h>
50
51//=============================================================================================================
52// EIGEN INCLUDES
53//=============================================================================================================
54
55#include <Eigen/Core>
56
57//=============================================================================================================
58// QT INCLUDES
59//=============================================================================================================
60
61#include <QSharedPointer>
62#include <QList>
63
64//=============================================================================================================
65// DEFINE NAMESPACE MNELIB
66//=============================================================================================================
67
68namespace MNELIB
69{
70
71//=============================================================================================================
72// FORWARD DECLARATIONS
73//=============================================================================================================
74
75class MneProjItem;
76
77//=============================================================================================================
84{
85public:
86 typedef QSharedPointer<MneProjOp> SPtr;
87 typedef QSharedPointer<const MneProjOp> ConstSPtr;
89 //=========================================================================================================
94 MneProjOp();
95
96 //=========================================================================================================
101 ~MneProjOp();
102
103 //=========================================================================================================
108 static void mne_free_proj_op_proj(MneProjOp* op);
109
110 // mne_lin_proj.c
111 static MneProjOp* mne_proj_op_combine(MneProjOp* to, MneProjOp* from);
112
113 // mne_lin_proj.c
114 static void mne_proj_op_add_item_act(MneProjOp* op, MneNamedMatrix* vecs, int kind, const QString& desc, int is_active);
115
116 // mne_lin_proj.c
117 static void mne_proj_op_add_item(MneProjOp* op, MneNamedMatrix* vecs, int kind, const QString& desc);
118
119 // mne_lin_proj.c
120 static MneProjOp* mne_dup_proj_op(MneProjOp* op);
121
122 // mne_lin_proj.c
123 static MneProjOp* mne_proj_op_average_eeg_ref(const QList<FIFFLIB::FiffChInfo>& chs, int nch);
124
125 static int mne_proj_op_affect(MneProjOp* op, const QStringList& list, int nlist);
126
127 static int mne_proj_op_affect_chs(MneProjOp* op, const QList<FIFFLIB::FiffChInfo> &chs, int nch);
128
129 static int mne_proj_op_proj_vector(MneProjOp* op, float *vec, int nvec, int do_complement);
130
131 //============================= mne_lin_proj_io.c =============================
132
133 static MneProjOp* mne_read_proj_op_from_node(//fiffFile in,
135 const FIFFLIB::FiffDirNode::SPtr& start);
136
137 static MneProjOp* mne_read_proj_op(const QString& name);
138
139 static void mne_proj_op_report_data(FILE *out,const char *tag, MneProjOp* op, int list_data, char **exclude, int nexclude);
140
141 static void mne_proj_op_report(FILE *out,const char *tag, MneProjOp* op);
142
143public:
144 QList<MNELIB::MneProjItem*> items; /* The projection items */
145 int nitems; /* Number of items */
146 QStringList names; /* Names of the channels in the final projector */
147 int nch; /* Number of channels in the final projector */
148 int nvec; /* Number of vectors in the final projector */
149 float** proj_data; /* The orthogonalized projection vectors picked and orthogonalized from the original data */
150
152//typedef struct { /* Collection of projection items and the projector itself */
153// QList<MNELIB::MneProjItem*> items; /* The projection items */
154// int nitems; /* Number of items */
155// char **names; /* Names of the channels in the final projector */
156// int nch; /* Number of channels in the final projector */
157// int nvec; /* Number of vectors in the final projector */
158// float **proj_data; /* The orthogonalized projection vectors picked and orthogonalized from the original data */
159//} *mneProjOp,mneProjOpRec;
160};
161
162//=============================================================================================================
163// INLINE DEFINITIONS
164//=============================================================================================================
165} // NAMESPACE MNELIB
166
167#endif // MNEPROJOP_H
FiffStream class declaration.
FiffDirNode class declaration, which provides fiff dir tree processing methods.
Definitions for describing the objects in a FIFF file.
#define MNESHARED_EXPORT
Definition mne_global.h:56
MNE Named Matrix (MneNamedMatrix) class declaration.
QSharedPointer< FiffDirNode > SPtr
QSharedPointer< FiffStream > SPtr
Matrix specification with a channel list.
One linear projection item.
Definition mne_proj_op.h:84
QSharedPointer< const MneProjOp > ConstSPtr
Definition mne_proj_op.h:87
QSharedPointer< MneProjOp > SPtr
Definition mne_proj_op.h:86